[
  {
    "path": ".clang-format",
    "content": "BasedOnStyle: LLVM\nLanguage: Cpp\nColumnLimit: 200\nMaxEmptyLinesToKeep: 1\nPointerBindsToType: false\nAllowShortBlocksOnASingleLine: true\nAllowAllParametersOfDeclarationOnNextLine: false\nAlignTrailingComments: true\nSpaceBeforeParens: ControlStatements\nSpaceBeforeAssignmentOperators: true\nSpacesInContainerLiterals: true\nIndentWidth: 4\nTabWidth: 4"
  },
  {
    "path": ".gitattributes",
    "content": "# Auto detect text files and perform LF normalization\n* text=auto\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\n"
  },
  {
    "path": ".vscode/c_cpp_properties.json",
    "content": "{\n    \"configurations\": [\n        {\n            \"name\": \"Win32\",\n            \"includePath\": [\n                \"${workspaceFolder}/**\"\n            ],\n            \"defines\": [\n                \"_DEBUG\",\n                \"UNICODE\",\n                \"_UNICODE\"\n            ],\n            \"intelliSenseMode\": \"clang-x64\"\n        },\n        {\n            \"name\": \"Mac\",\n            \"includePath\": [\n                \"${workspaceFolder}/**\"\n            ],\n            \"defines\": [\n                \"_DEBUG\",\n                \"UNICODE\",\n                \"_UNICODE\"\n            ],\n            \"intelliSenseMode\": \"clang-x64\"\n        }\n    ],\n    \"version\": 4\n}"
  },
  {
    "path": ".vscode/settings.json",
    "content": "{\n    \"files.associations\": {\n        \"*.h\": \"objective-cpp\"\n    },\n    \"C_Cpp.clang_format_fallbackStyle\": \"LLVM\",\n    \"C_Cpp.clang_format_style\": \"file\"\n}"
  },
  {
    "path": "AVFCapture/AVFCapture.h",
    "content": "#import \"../CoreFoundation/Types.h\"\n#import \"../Foundation/Types.h\"\n\nCFStringRef AVGestaltGetStringAnswer(CFStringRef key);\nCFStringRef AVGestaltGetStringAnswerWithDefault(CFStringRef key, CFStringRef defaultVal);\nCFStringRef AVGestaltGetStringAnswerWithError(CFStringRef key, NSError **error);\n\nNSInteger AVGestaltGetIntegerAnswer(CFStringRef key);\nNSInteger AVGestaltGetIntegerAnswerWithDefault(CFStringRef key, NSInteger defaultVal);\nNSInteger AVGestaltGetIntegerAnswerWithError(CFStringRef key, NSError **error);\n\nfloat AVGestaltGetFloatAnswer(CFStringRef key);\nfloat AVGestaltGetFloatAnswerWithDefault(CFStringRef key, float defaultVal);\nfloat AVGestaltGetFloatAnswerWithError(CFStringRef key, NSError **error);\n\nbool AVGestaltGetBoolAnswer(CFStringRef key);\nbool AVGestaltGetBoolAnswerWithDefault(CFStringRef key, bool defaultVal);\nbool AVGestaltGetBoolAnswerWithError(CFStringRef key, NSError **error);\n\nbool AVGestaltIsQuestionValid(CFStringRef key, int *result);\n"
  },
  {
    "path": "AVFoundation/AVFoundation.h",
    "content": "#import \"../CoreGraphics/Types.h\"\n#import \"../Foundation/Types.h\"\n\nCGRect AVMakeRectWithAspectRatioInsideRect(CGSize aspectRatio, CGRect boundingRect);\n\nvoid AVCGRectFromNSValue(NSValue *value, CGRect *rect);\nvoid AVCGSizeFromNSValue(NSValue *value, CGSize *size);\nvoid AVCGPointFromNSValue(NSValue *value, CGPoint *point);\n\nNSMutableArray *AVNSArrayFromCGColor(CGColorRef color);\n\nNSValue *AVNSValueWithCGRect(CGRect *rect);\nNSValue *AVNSValueWithCGSize(CGSize *size);\nNSValue *AVNSValueWithCGPoint(CGPoint *point);\n"
  },
  {
    "path": "AppSupport/AppSupport.h",
    "content": "#import \"../CoreFoundation/Types.h\"\n#import \"../Kernel/Types.h\"\n#import \"Types.h\"\n\nBOOL CPIsInternalDevice(void);\n\nvoid _CPLogLine(int64_t unk0, CFStringRef category, const char *file, const char *method, int64_t lineNumber, int64_t unk5, CFStringRef format, ...);\n\nCFArrayRef CPBitmapCreateImagesFromData(CFDataRef cpbitmap, void *, int, void *);\n\nCFStringRef CPCopyBundleIdentifierFromAuditToken(audit_token_t *token, bool *unknown);\nCFStringRef CPCopySharedResourcesPreferencesDomainForDomain(CFStringRef domain);\nCFStringRef CPGetDeviceRegionCode();\nCFStringRef CPSystemRootDirectory();\nCFStringRef CPSharedResourcesDirectory();"
  },
  {
    "path": "AppSupport/Types.h",
    "content": "#ifndef APP_SUPPORT_H_\n#define APP_SUPPORT_H_\n\n#endif"
  },
  {
    "path": "AssetsLibraryServices/AssetsLibraryServices.h",
    "content": "#import \"../Darwin/Types.h\"\n\nvoid pl_dispatch_after(dispatch_time_t when, dispatch_queue_t queue, dispatch_block_t block);\nvoid pl_dispatch_async(dispatch_queue_t queue, dispatch_block_t block);\nvoid pl_dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);\nvoid pl_dispatch_group_notify(dispatch_group_t group, dispatch_queue_t queue, dispatch_block_t block);"
  },
  {
    "path": "AudioToolbox/AudioToolbox.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../Kernel/Types.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"Types.h\"\n\nOSStatus AudioServicesCreateSystemSoundID(CFURLRef inFileURL, SystemSoundID *outSystemSoundID);\nOSStatus AudioServicesDisposeSystemSoundID(SystemSoundID inSystemSoundID);\nOSStatus AudioServicesSetProperty(AudioServicesPropertyID inPropertyID, UInt32 inSpecifierSize, const void *inSpecifier, UInt32 inPropertyDataSize, const void *inPropertyData);\n\nvoid AudioServicesStartSystemSound(SystemSoundID inSystemSoundID);\nvoid AudioServicesStopSystemSound(SystemSoundID inSystemSoundID, int64_t unk1);\nvoid AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID);\nvoid AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID);\nvoid AudioServicesPlaySystemSoundWithCompletion(SystemSoundID inSystemSoundID, void (*inCompletionBlock)(void));"
  },
  {
    "path": "AudioToolbox/Types.h",
    "content": "#ifndef AUDIOTOOLBOX_H_\n#define AUDIOTOOLBOX_H_\n\n#import \"../CoreAudio/Types.h\"\n\ntypedef struct AudioFormatListItem {\n    AudioStreamBasicDescription mASBD;\n    AudioChannelLayoutTag mChannelLayoutTag;\n} AudioFormatListItem;\n\n// Credits: https://github.com/TUNER88/iOSSystemSoundsLibrary\nPS_ENUM(UInt32, SystemSoundID) {\n    kSystemSoundID_MailSent = 1000,\n    kSystemSoundID_MailReceived = 1001,\n    kSystemSoundID_VoicemailReceived = 1002,\n    kSystemSoundID_SMSReceivedMessage = 1003,\n    kSystemSoundID_SMSSentMessage = 1004,\n    kSystemSoundID_LowPower = 1006,\n    kSystemSoundID_SMSSentTweet = 1016,\n    kSystemSoundID_PinKeyPressed = 1057,\n    kSystemSoundID_ScreenLocked = 1100,\n    kSystemSoundID_ScreenUnlocked = 1101,\n    kSystemSoundID_FailedUnlock = 1102,\n    kSystemSoundID_ConnectedToPower = 1106,\n    kSystemSoundID_RingerSwitchIndication = 1107,\n    kSystemSoundID_CameraShutter = 1108,\n    kSystemSoundID_ShakeToShuffle = 1109,\n    kSystemSoundID_BeginRecording = 1113,\n    kSystemSoundID_EndRecording = 1114,\n    kSystemSoundID_StartRecording = 1117, // successor of 1113\n    kSystemSoundID_StopRecording = 1118, // successor of 1114\n    kSystemSoundID_BurstCapture = 1119,\n    kSystemSoundID_RingerVibeChanged = 1350,\n    kSystemSoundID_SilentVibeChanged = 1351,\n    kSystemSoundID_Vibrate = 0x00000FFF,\n    kSystemSoundID_UserPreferredAlert = 0x00001000,\n    kSystemSoundID_FlashScreen = 0x00000FFE,\n    kUserPreferredAlert = kSystemSoundID_UserPreferredAlert\n};\n\nPS_ENUM(UInt32, AudioServicesPropertyID) {\n    kAudioServicesPropertyIsUISound = 'isui',\n    kAudioServicesPropertyCompletePlaybackIfAppDies = 'ifdi',\n    kAudioServicesPropertyBeingActive = 'actt',\n};\n\n#endif"
  },
  {
    "path": "BaseTypes.h",
    "content": "#ifndef BASE_TYPES_H_\n#define BASE_TYPES_H_\n\n#ifndef GHIDRA\n    #define PS_ENUM(_type, _name) enum _name : _type\n#else\n    #define PS_ENUM(_type, _name) typedef enum _name\n#endif\n\ntypedef signed char int8;\ntypedef unsigned char uint8;\ntypedef signed short int16;\ntypedef unsigned short uint16;\ntypedef signed long int32;\ntypedef unsigned long uint32;\ntypedef signed long long int64;\ntypedef unsigned long long uint64;\n\ntypedef uint64 __darwin_size_t;\ntypedef __darwin_size_t size_t;\n\ntypedef uint8 UInt8;\ntypedef uint16 UInt16;\ntypedef uint32 UInt32;\ntypedef uint64 UInt64;\ntypedef int8 SInt8;\ntypedef int16 SInt16;\ntypedef int32 SInt32;\ntypedef int64 SInt64;\ntypedef signed char int8_t;\ntypedef unsigned char uint8_t;\ntypedef signed short int16_t;\ntypedef unsigned short uint16_t;\ntypedef int int32_t;\ntypedef unsigned int uint32_t;\ntypedef int64 int64_t;\ntypedef uint64 uint64_t;\ntypedef uint64 uintptr_t;\ntypedef long intptr_t;\n\ntypedef struct {\n    unsigned int gp_offset;\n    unsigned int fp_offset;\n    void *overflow_arg_area;\n    void *reg_save_area;\n} va_list[1];\n\ntypedef int64 __darwin_time_t;\n\nstruct timespec {\n    __darwin_time_t tv_sec;\n    int64 tv_nsec;\n};\n\ntypedef uint8 Boolean;\ntypedef int kern_return_t;\ntypedef unsigned int __darwin_natural_t;\ntypedef unsigned long long u_int64_t;\ntypedef uintptr_t vm_offset_t;\ntypedef vm_offset_t vm_address_t;\ntypedef uint64_t mach_vm_address_t;\ntypedef UInt64 AbsoluteTime;\n\ntypedef struct ipc_port *ipc_port_t;\n\ntypedef ipc_port_t mach_port_t;\n\ntypedef struct task *task_t;\n\n// Just C\ntypedef struct _OSObject *OSObject;\n\ntypedef struct objc_class *Class;\n\ntypedef struct NSObject {\n    Class isa;\n} NSObject;\n\n#ifdef __ARM__\ntypedef bool BOOL;\n#else\ntypedef signed char BOOL;\n#endif\n\ntypedef float Float32;\ntypedef double Float64;\ntypedef unsigned long UniCharCount;\ntypedef UInt32 UTF32Char;\ntypedef UInt16 UniChar;\ntypedef UInt16 UTF16Char;\ntypedef UInt8 UTF8Char;\n\ntypedef int errno_t;\ntypedef int32_t integer_t;\ntypedef int64_t off_t;\ntypedef size_t rsize_t;\n\nextern uintptr_t __stack_chk_guard;\n__attribute__((noreturn)) void __stack_chk_fail(void);\n\n#endif"
  },
  {
    "path": "CommonCrypto/CommonCrypto.h",
    "content": "#import \"Types.h\"\n\nint CCDigest(CCDigestAlgorithm alg, const uint8_t *data, size_t len, uint8_t *out);\n\nint CC_MD4_Init(CC_MD4_CTX *c);\nint CC_MD4_Update(CC_MD4_CTX *c, const void *data, CC_LONG len);\nint CC_MD4_Final(unsigned char *md, CC_MD4_CTX *c);\n\nunsigned char *CC_MD4(const void *data, CC_LONG len, unsigned char *md);\n\nint CC_MD5_Init(CC_MD5_CTX *c);\nint CC_MD5_Update(CC_MD5_CTX *c, const void *data, CC_LONG len);\nint CC_MD5_Final(unsigned char *md, CC_MD5_CTX *c);\n\nunsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md);\n\nint CC_SHA1_Init(CC_SHA1_CTX *c);\nint CC_SHA1_Update(CC_SHA1_CTX *c, const void *data, CC_LONG len);\nint CC_SHA1_Final(unsigned char *md, CC_SHA1_CTX *c);\n\nunsigned char *CC_SHA1(const void *data, CC_LONG len, unsigned char *md);\n\nint CC_SHA224_Init(CC_SHA224_CTX *c);\nint CC_SHA224_Update(CC_SHA224_CTX *c, const void *data, CC_LONG len);\nint CC_SHA224_Final(unsigned char *md, CC_SHA224_CTX *c);\n\nunsigned char *CC_SHA224(const void *data, CC_LONG len, unsigned char *md);\n\nint CC_SHA256_Init(CC_SHA256_CTX *c);\nint CC_SHA256_Update(CC_SHA256_CTX *c, const void *data, CC_LONG len);\nint CC_SHA256_Final(unsigned char *md, CC_SHA256_CTX *c);\n\nunsigned char *CC_SHA256(const void *data, CC_LONG len, unsigned char *md);\n\nint CC_SHA384_Init(CC_SHA512_CTX *c);\nint CC_SHA384_Update(CC_SHA512_CTX *c, const void *data, CC_LONG len);\nint CC_SHA384_Final(unsigned char *md, CC_SHA512_CTX *c);\n\nunsigned char *CC_SHA384(const void *data, CC_LONG len, unsigned char *md);\n\nint CC_SHA512_Init(CC_SHA512_CTX *c);\nint CC_SHA512_Update(CC_SHA512_CTX *c, const void *data, CC_LONG len);\nint CC_SHA512_Final(unsigned char *md, CC_SHA512_CTX *c);\n\nunsigned char *CC_SHA512(const void *data, CC_LONG len, unsigned char *md);\n\nint CCRandomCopyBytes(CCRandomRef rnd, void *bytes, size_t count);\n\nsize_t CCCryptorGetOutputLength(CCCryptorRef cryptorRef, size_t inputLength, bool final);\n\nint CCKeyDerivationPBKDF(CCPBKDFAlgorithm algorithm, const char *password, size_t passwordLen, const uint8_t *salt, size_t saltLen, CCPseudoRandomAlgorithm prf, unsigned rounds, uint8_t *derivedKey, size_t derivedKeyLen);\n\nunsigned CCCalibratePBKDF(CCPBKDFAlgorithm algorithm, size_t passwordLen, size_t saltLen, CCPseudoRandomAlgorithm prf, size_t derivedKeyLen, uint32_t msec);\n\nvoid CCHmacInit(CCHmacContext *ctx, CCHmacAlgorithm algorithm, const void *key, size_t keyLength);\nvoid CCHmacUpdate(CCHmacContext *ctx, const void *data, size_t dataLength);\nvoid CCHmacFinal(CCHmacContext *ctx, void *macOut);\nvoid CCHmac(CCHmacAlgorithm algorithm, const void *key, size_t keyLength, const void *data, size_t dataLength, void *macOut);\nvoid CCKDFParametersDestroy(CCKDFParametersRef params);\n\nCCStatus CCDeriveKey(const CCKDFParametersRef params, CCDigestAlgorithm digest, const void *keyDerivationKey, size_t keyDerivationKeyLen, void *derivedKey, size_t derivedKeyLen);\nCCStatus CCKDFParametersCreateHkdf(CCKDFParametersRef *params, const void *salt, size_t saltLen, const void *context, size_t contextLen);\n\nCCCryptorStatus CCCryptorCreate(CCOperation op, CCAlgorithm alg, CCOptions options, const void *key, size_t keyLength, const void *iv, CCCryptorRef *cryptorRef);\nCCCryptorStatus CCCryptorCreateFromData(CCOperation op, CCAlgorithm alg, CCOptions options, const void *key, size_t keyLength, const void *iv, const void *data, size_t dataLength, CCCryptorRef *cryptorRef, size_t *dataUsed);\nCCCryptorStatus CCCryptorCreateWithMode(CCOperation op, CCMode mode, CCAlgorithm alg, CCPadding padding, const void *iv, const void *key, size_t keyLength, const void *tweak, size_t tweakLength, int numRounds, CCModeOptions options, CCCryptorRef *cryptorRef);\nCCCryptorStatus CCCryptorRelease(CCCryptorRef cryptorRef);\nCCCryptorStatus CCCryptorUpdate(CCCryptorRef cryptorRef, const void *dataIn, size_t dataInLength, void *dataOut, size_t dataOutAvailable, size_t *dataOutMoved);\nCCCryptorStatus CCCryptorFinal(CCCryptorRef cryptorRef, void *dataOut, size_t dataOutAvailable, size_t *dataOutMoved);\nCCCryptorStatus CCCryptorReset(CCCryptorRef cryptorRef, const void *iv);\nCCCryptorStatus CCCrypt(CCOperation op, CCAlgorithm alg, CCOptions options, const void *key, size_t keyLength, const void *iv, const void *dataIn, size_t dataInLength, void *dataOut, size_t dataOutAvailable, size_t *dataOutMoved);\n\nCCDigestRef CCDigestCreate(CCDigestAlgorithm alg);\n\nint CCDigestInit(CCDigestAlgorithm algorithm, CCDigestRef ctx);\nint CCDigestFinal(CCDigestRef ctx, uint8_t *output);\nint CCDigestUpdate(CCDigestRef ctx, const void *data, size_t length);\n\nsize_t CCDigestOutputSize(CCDigestRef ctx);\n\nvoid CCDigestDestroy(CCDigestRef ctx);\nvoid CCDigestReset(CCDigestRef ctx);\n\nCNStatus CNEncode(CNEncodings encoding, CNEncodingDirection direction, const void *in, const size_t inLen, void *out, size_t *outLen);\n"
  },
  {
    "path": "CommonCrypto/Types.h",
    "content": "#ifndef COMMONCRYPTO_H_\n#define COMMONCRYPTO_H_\n\n#import \"../BaseTypes.h\"\n\ntypedef uint32_t CC_LONG;\ntypedef uint64_t CC_LONG64;\n\ntypedef uint32_t CNStatus;\n\ntypedef struct _CCCryptor *CCCryptorRef;\ntypedef struct _CNEncoder *CNEncoderRef;\ntypedef struct CCKDFParameters *CCKDFParametersRef;\ntypedef struct __CCRandom *CCRandomRef;\n\n#define CC_DIGEST_SIZE 1032 \ntypedef struct CCDigestCtx_t {\n    uint8_t context[CC_DIGEST_SIZE];\n} CCDigestCtx, *CCDigestRef;\n\n#define CC_MD2_DIGEST_LENGTH 16\n#define CC_MD2_BLOCK_BYTES 64\n#define CC_MD2_BLOCK_LONG (CC_MD2_BLOCK_BYTES / sizeof(CC_LONG))\n\ntypedef struct CC_MD2state_st {\n    int num;\n    unsigned char data[CC_MD2_DIGEST_LENGTH];\n    CC_LONG cksm[CC_MD2_BLOCK_LONG];\n    CC_LONG state[CC_MD2_BLOCK_LONG];\n} CC_MD2_CTX;\n\nint CC_MD2_Init(CC_MD2_CTX *c);\nint CC_MD2_Update(CC_MD2_CTX *c, const void *data, CC_LONG len);\nint CC_MD2_Final(unsigned char *md, CC_MD2_CTX *c);\n\n#define CC_MD4_DIGEST_LENGTH 16\n#define CC_MD4_BLOCK_BYTES 64\n#define CC_MD4_BLOCK_LONG (CC_MD4_BLOCK_BYTES / sizeof(CC_LONG))\n\ntypedef struct CC_MD4state_st {\n    CC_LONG A, B, C, D;\n    CC_LONG Nl, Nh;\n    CC_LONG data[CC_MD4_BLOCK_LONG];\n    int num;\n} CC_MD4_CTX;\n\n#define CC_MD5_DIGEST_LENGTH 16\n#define CC_MD5_BLOCK_BYTES 64\n#define CC_MD5_BLOCK_LONG (CC_MD5_BLOCK_BYTES / sizeof(CC_LONG))\n\ntypedef struct CC_MD5state_st {\n    CC_LONG A, B, C, D;\n    CC_LONG Nl, Nh;\n    CC_LONG data[CC_MD5_BLOCK_LONG];\n    int num;\n} CC_MD5_CTX;\n\n#define CC_SHA1_DIGEST_LENGTH 20\n#define CC_SHA1_BLOCK_BYTES 64\n#define CC_SHA1_BLOCK_LONG (CC_SHA1_BLOCK_BYTES / sizeof(CC_LONG))\n\ntypedef struct CC_SHA1state_st {\n    CC_LONG h0, h1, h2, h3, h4;\n    CC_LONG Nl, Nh;\n    CC_LONG data[CC_SHA1_BLOCK_LONG];\n    int num;\n} CC_SHA1_CTX;\n\ntypedef struct CC_SHA224state_st {\n    CC_LONG count[2];\n    CC_LONG hash[8];\n    CC_LONG wbuf[16];\n} CC_SHA224_CTX;\n\n#define CC_SHA256_DIGEST_LENGTH 32\n#define CC_SHA256_BLOCK_BYTES 64\n\ntypedef struct CC_SHA256state_st {\n    CC_LONG count[2];\n    CC_LONG hash[8];\n    CC_LONG wbuf[16];\n} CC_SHA256_CTX;\n\n#define CC_SHA384_DIGEST_LENGTH 48\n#define CC_SHA384_BLOCK_BYTES 128\n\ntypedef struct CC_SHA512state_st {\n    CC_LONG64 count[2];\n    CC_LONG64 hash[8];\n    CC_LONG64 wbuf[16];\n} CC_SHA512_CTX;\n\n#define CC_SHA512_DIGEST_LENGTH 64\n#define CC_SHA512_BLOCK_BYTES 128\n\nPS_ENUM(int32_t, CCStatus) {\n    kCCSuccess = 0,\n    kCCParamError = -4300,\n    kCCBufferTooSmall = -4301,\n    kCCMemoryFailure = -4302,\n    kCCAlignmentError = -4303,\n    kCCDecodeError = -4304,\n    kCCUnimplemented = -4305,\n    kCCOverflow = -4306,\n    kCCRNGFailure = -4307,\n    kCCUnspecifiedError = -4308,\n    kCCCallSequenceError = -4309,\n    kCCKeySizeError = -4310,\n    kCCInvalidKey = -4311,\n};\ntypedef int32_t CCCryptorStatus;\n\nPS_ENUM(uint32_t, CCOperation) {\n    kCCEncrypt = 0,\n    kCCDecrypt,\n};\n\nPS_ENUM(uint32_t, CCAlgorithm) {\n    kCCAlgorithmAES128 = 0,\n    kCCAlgorithmAES = 0,\n    kCCAlgorithmDES,\n    kCCAlgorithm3DES,\n    kCCAlgorithmCAST,\n    kCCAlgorithmRC4,\n    kCCAlgorithmRC2,\n    kCCAlgorithmBlowfish\n};\n\nPS_ENUM(uint32_t, CCOptions) { kCCOptionPKCS7Padding = 0x0001, kCCOptionECBMode = 0x0002 };\n\nPS_ENUM(uint32_t, CCMode) {\n    kCCModeECB = 1,\n    kCCModeCBC = 2,\n    kCCModeCFB = 3,\n    kCCModeCTR = 4,\n    kCCModeOFB = 7,\n    kCCModeRC4 = 9,\n    kCCModeCFB8 = 10,\n};\n\nPS_ENUM(uint32_t, CCModeOptions) { kCCModeOptionCTR_BE = 2 };\n\nPS_ENUM(uint32_t, CCPadding) {\n    ccNoPadding = 0,\n    ccPKCS7Padding = 1,\n};\n\n/*\nenum {\n    kCCKeySizeAES128          = 16,\n    kCCKeySizeAES192          = 24,\n    kCCKeySizeAES256          = 32,\n    kCCKeySizeDES             = 8,\n    kCCKeySize3DES            = 24,\n    kCCKeySizeMinCAST         = 5,\n    kCCKeySizeMaxCAST         = 16,\n    kCCKeySizeMinRC4          = 1,\n    kCCKeySizeMaxRC4          = 512,\n    kCCKeySizeMinRC2          = 1,\n    kCCKeySizeMaxRC2          = 128,\n    kCCKeySizeMinBlowfish     = 8,\n    kCCKeySizeMaxBlowfish     = 56,\n};\n\nenum {\n    kCCBlockSizeAES128        = 16,\n    kCCBlockSizeDES           = 8,\n    kCCBlockSize3DES          = 8,\n    kCCBlockSizeCAST          = 8,\n    kCCBlockSizeRC2           = 8,\n    kCCBlockSizeBlowfish      = 8,\n};\n\nenum {\n    kCCContextSizeAES128\t= 404,\n    kCCContextSizeDES\t\t= 240,\n    kCCContextSize3DES\t\t= 496,\n    kCCContextSizeCAST\t\t= 240,\n    kCCContextSizeRC4\t\t= 1072\n};\n*/\n\nPS_ENUM(uint32_t, CCHmacAlgorithm) {\n    kCCHmacAlgSHA1,\n    kCCHmacAlgMD5,\n    kCCHmacAlgSHA256,\n    kCCHmacAlgSHA384,\n    kCCHmacAlgSHA512,\n    kCCHmacAlgSHA224\n};\n\n#define CC_HMAC_CONTEXT_SIZE 96\ntypedef struct CCHmacContext {\n    uint32_t ctx[CC_HMAC_CONTEXT_SIZE];\n} CCHmacContext;\n\nPS_ENUM(uint32_t, CCPBKDFAlgorithm) {\n    kCCPBKDF2 = 2,\n};\n\nPS_ENUM(uint32_t, CCPseudoRandomAlgorithm) {\n    kCCPRFHmacAlgSHA1 = 1,\n    kCCPRFHmacAlgSHA224 = 2,\n    kCCPRFHmacAlgSHA256 = 3,\n    kCCPRFHmacAlgSHA384 = 4,\n    kCCPRFHmacAlgSHA512 = 5,\n};\n\nPS_ENUM(uint32_t, CNEncodings) {\n    kCNEncodingBase64   \t\t\t= 0x0001,\n    kCNEncodingBase32   \t\t\t= 0x0002,\n    kCNEncodingBase32Recovery       = 0x0003,\n    kCNEncodingBase32HEX            = 0x0004,\n    kCNEncodingBase16               = 0x0005,\n    kCNEncodingCustom               = 0xcafe\n};\n\nPS_ENUM(uint32_t, CNEncodingDirection) {\n    kCNEncode            = 0x0001,\n    kCNDecode            = 0x0002,\n};\n\nPS_ENUM(uint32_t, CCDigestAlgorithm) {\n    kCCDigestNone               = 0,\n    kCCDigestMD2\t\t\t\t= 1,\n    kCCDigestMD4\t\t\t\t= 2,\n    kCCDigestMD5\t\t\t\t= 3,\n    kCCDigestRMD128\t\t\t\t= 4,\n    kCCDigestRMD160\t\t\t\t= 5,\n    kCCDigestRMD256\t\t\t\t= 6,\n    kCCDigestRMD320\t\t\t\t= 7,\n    kCCDigestSHA1\t\t\t\t= 8,\n    kCCDigestSHA224\t\t\t\t= 9,\n    kCCDigestSHA256\t\t\t\t= 10,\n    kCCDigestSHA384\t\t\t\t= 11,\n    kCCDigestSHA512\t\t\t\t= 12,\n    kCCDigestSkein128\t\t\t= 13,\n    kCCDigestSkein160\t\t\t= 14,\n    kCCDigestSkein224\t\t\t= 16,\n    kCCDigestSkein256\t\t\t= 17,\n    kCCDigestSkein384\t\t\t= 18,\n    kCCDigestSkein512\t\t\t= 19,\n};\n\n#endif"
  },
  {
    "path": "CoreAnimation/CoreAnimation.h",
    "content": "#import \"../CoreFoundation/Types.h\"\n#import \"Types.h\"\n\nbool CATransform3DIsAffine(CATransform3D t);\nbool CATransform3DIsIdentity(CATransform3D t);\nbool CATransform3DEqualToTransform(CATransform3D a, CATransform3D b);\n\nCFTimeInterval CACurrentMediaTime(void);\n\nCGPoint CA_CGPointApplyTransform(CGPoint p, CATransform3D t);\nCGPoint CA_CGPointUnapplyInverseTransform(CGPoint p, CATransform3D t_inv);\n\nCGRect CA_CGRectApplyTransform(CGRect r, CATransform3D t);\nCGRect CA_CGRectUnapplyInverseTransform(CGRect r, CATransform3D t_inv);\n\nCATransform3D CATransform3DMakeAffineTransform(CGAffineTransform m);\nCATransform3D CATransform3DMakeTranslation(CGFloat tx, CGFloat ty, CGFloat tz);\nCATransform3D CATransform3DMakeScale(CGFloat sx, CGFloat sy, CGFloat sz);\nCATransform3D CATransform3DMakeRotation(CGFloat angle, CGFloat x, CGFloat y, CGFloat z);\nCATransform3D CATransform3DConcat(CATransform3D a, CATransform3D b);\nCATransform3D CATransform3DConcatAffineTransform(CGAffineTransform a, CATransform3D b);\nCATransform3D CATransform3DTranslate(CATransform3D t, CGFloat tx, CGFloat ty, CGFloat tz);\nCATransform3D CATransform3DTranslateRight(CATransform3D t, CGFloat tx, CGFloat ty, CGFloat tz);\nCATransform3D CATransform3DScale(CATransform3D t, CGFloat sx, CGFloat sy, CGFloat sz);\nCATransform3D CATransform3DRotate(CATransform3D t, CGFloat angle, CGFloat x, CGFloat y, CGFloat z);\nCATransform3D CATransform3DInvert(CATransform3D t);\n\nCGAffineTransform CATransform3DGetAffineTransform(CATransform3D t);"
  },
  {
    "path": "CoreAnimation/Types.h",
    "content": "#ifndef COREANIMATION_H_\n#define COREANIMATION_H_\n\n#import \"../CoreGraphics/Types.h\"\n\ntypedef struct CATransform3D {\n    CGFloat _field1;\n    CGFloat _field2;\n    CGFloat _field3;\n    CGFloat _field4;\n    CGFloat _field5;\n    CGFloat _field6;\n    CGFloat _field7;\n    CGFloat _field8;\n    CGFloat _field9;\n    CGFloat _field10;\n    CGFloat _field11;\n    CGFloat _field12;\n    CGFloat _field13;\n    CGFloat _field14;\n    CGFloat _field15;\n    CGFloat _field16;\n} CATransform3D;\n\n#endif"
  },
  {
    "path": "CoreAudio/CoreAudio.h",
    "content": "#import \"Types.h\""
  },
  {
    "path": "CoreAudio/Types.h",
    "content": "#ifndef COREAUDIO_H_\n#define COREAUDIO_H_\n\n#import \"../BaseTypes.h\"\n\ntypedef UInt32 AudioChannelLabel;\ntypedef UInt32 AudioChannelLayoutTag;\n\ntypedef struct AudioValueRange {\n    Float64 mMinimum;\n    Float64 mMaximum;\n} AudioValueRange;\n\ntypedef struct AudioBuffer {\n    UInt32 mNumberChannels;\n    UInt32 mDataByteSize;\n    void *mData;\n} AudioBuffer;\n\ntypedef struct AudioBufferList {\n    UInt32 mNumberBuffers;\n    AudioBuffer mBuffers[1];\n} AudioBufferList;\n\ntypedef struct AudioStreamBasicDescription {\n    Float64 mSampleRate;\n    UInt32 mFormatID;\n    UInt32 mFormatFlags;\n    UInt32 mBytesPerPacket;\n    UInt32 mFramesPerPacket;\n    UInt32 mBytesPerFrame;\n    UInt32 mChannelsPerFrame;\n    UInt32 mBitsPerChannel;\n    UInt32 mReserved;\n} AudioStreamBasicDescription;\n\ntypedef struct AudioStreamPacketDescription {\n    SInt64 mStartOffset;\n    UInt32 mVariableFramesInPacket;\n    UInt32 mDataByteSize;\n} AudioStreamPacketDescription;\n\ntypedef struct AudioChannelDescription {\n    AudioChannelLabel mChannelLabel;\n    UInt32 mChannelFlags;\n    Float32 mCoordinates[3];\n} AudioChannelDescription;\n\ntypedef struct AudioChannelLayout {\n    AudioChannelLayoutTag mChannelLayoutTag;\n    UInt32 mChannelBitmap;\n    UInt32 mNumberChannelDescriptions;\n    AudioChannelDescription mChannelDescriptions[1];\n} AudioChannelLayout;\n\n#endif"
  },
  {
    "path": "CoreFoundation/CoreFoundation.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../Darwin/Types.h\"\n#import \"../xpc/Types.h\"\n#import \"Types.h\"\n\ndouble CFStringGetDoubleValue(CFStringRef str);\n\nbool _CFPropertyListCreateFiltered(CFAllocatorRef allocator, CFDataRef data, CFOptionFlags option, CFSetRef keyPaths, CFPropertyListRef *value, CFErrorRef *error);\nbool CFUniCharIsMemberOf(UTF32Char theChar, uint32_t charset);\n\nSInt32 CFStringGetIntValue(CFStringRef str);\nSInt32 CFURLGetPortNumber(CFURLRef anURL);\nSInt32 CFRunLoopRunSpecific(CFRunLoopRef rl, CFStringRef modeName, CFTimeInterval seconds, Boolean returnAfterSourceHandled);\nSInt32 CFUserNotificationReceiveResponse(CFUserNotificationRef userNotification, CFTimeInterval timeout, CFOptionFlags *responseFlags);\nSInt32 CFUserNotificationCancel(CFUserNotificationRef userNotification);\nSInt32 CFMessagePortSendRequest(CFMessagePortRef remote, SInt32 msgid, CFDataRef data, CFTimeInterval sendTimeout, CFTimeInterval rcvTimeout, CFStringRef replyMode, CFDataRef *returnData);\n\nUInt32 CFBundleGetVersionNumber(CFBundleRef bundle);\n\nconst char **_CFGetProgname(void);\n\nconst char *CFStringGetCStringPtr(CFStringRef theString, CFStringEncoding encoding);\nconst void *CFUniCharGetUnicodePropertyDataForPlane(uint32_t propertyType, uint32_t plane);\nconst void *CFArrayGetValueAtIndex(CFArrayRef theArray, CFIndex idx);\nconst void *CFDictionaryGetValue(CFDictionaryRef theDict, const void *key);\nconst void *CFSetGetValue(CFSetRef theSet, const void *value);\nvoid *CFAllocatorAllocate(CFAllocatorRef allocator, CFIndex size, CFOptionFlags hint);\nvoid *CFAllocatorReallocate(CFAllocatorRef allocator, void *ptr, CFIndex newsize, CFOptionFlags hint);\nvoid *CFBundleGetFunctionPointerForName(CFBundleRef bundle, CFStringRef functionName);\n\nconst uint8_t *CFUniCharGetBitmapPtrForPlane(uint32_t charset, uint32_t plane);\n\nconst UniChar *CFStringGetCharactersPtr(CFStringRef theString);\nUniChar CFStringGetCharacterAtIndex(CFStringRef theString, CFIndex idx);\nUniChar CFStringGetCharacterFromInlineBuffer(CFStringInlineBuffer *buf, CFIndex idx);\n\nUTF32Char CFStringGetLongCharacterFromInlineBuffer(CFStringInlineBuffer *buf, CFIndex idx);\n\nconst UInt8 *CFDataGetBytePtr(CFDataRef theData);\nconst UInt8 *CFReadStreamGetBuffer(CFReadStreamRef stream, CFIndex maxBytesToRead, CFIndex *numBytesRead);\nUInt8 *CFDataGetMutableBytePtr(CFMutableDataRef theData);\n\nmach_port_t CFMachPortGetPort(CFMachPortRef port);\n\nxpc_object_t _CFXPCCreateXPCObjectFromCFObject(CFTypeRef attrs);\n\nconst CFRuntimeClass *_CFRuntimeGetClassWithTypeID(CFTypeID typeID);\n\nvoid CFLog(int32_t level, CFStringRef format, ...);\nvoid CFShow(CFTypeRef obj);\nvoid CFShowStr(CFStringRef str);\nvoid CFRelease(CFTypeRef cf);\nvoid CFArrayAppendValue(CFMutableArrayRef mDict, const void *value);\nvoid CFArrayAppendArray(CFMutableArrayRef theArray, CFArrayRef otherArray, CFRange otherRange);\nvoid CFArrayRemoveValueAtIndex(CFMutableArrayRef theArray, CFIndex idx);\nvoid CFArrayReplaceValues(CFMutableArrayRef theArray, CFRange range, const void **newValues, CFIndex newCount);\nvoid CFArrayInsertValueAtIndex(CFMutableArrayRef theArray, CFIndex idx, const void *value);\nvoid CFArrayGetValues(CFArrayRef theArray, CFRange range, const void **values);\nvoid CFArraySetValueAtIndex(CFMutableArrayRef theArray, CFIndex idx, const void *value);\nvoid CFArraySortValues(CFMutableArrayRef theArray, CFRange range, CFComparatorFunction comparator, void *context);\nvoid CFArrayRemoveAllValues(CFMutableArrayRef theArray);\nvoid CFArrayExchangeValuesAtIndices(CFMutableArrayRef theArray, CFIndex idx1, CFIndex idx2);\nvoid CFArrayApplyFunction(CFArrayRef theArray, CFRange range, CFArrayApplierFunction applier, void *context);\nvoid CFPreferencesSetValue(CFStringRef key, CFPropertyListRef value, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName);\nvoid CFPreferencesSetAppValue(CFStringRef key, CFPropertyListRef value, CFStringRef applicationID);\nvoid CFPreferencesSetMultiple(CFDictionaryRef keysToSet, CFArrayRef keysToRemove, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName);\nvoid CFPreferencesAddSuitePreferencesToApp(CFStringRef applicationID, CFStringRef suiteID);\nvoid CFPreferencesRemoveSuitePreferencesFromApp(CFStringRef applicationID, CFStringRef suiteID);\nvoid CFNotificationCenterAddObserver(CFNotificationCenterRef center, const void *observer, CFNotificationCallback callBack, CFStringRef name, const void *object, CFNotificationSuspensionBehavior suspensionBehavior);\nvoid CFNotificationCenterPostNotification(CFNotificationCenterRef center, CFNotificationName name, const void *object, CFDictionaryRef userInfo, Boolean deliverImmediately);\nvoid CFNotificationCenterRemoveObserver(CFNotificationCenterRef center, const void *observer, CFNotificationName name, const void *object);\nvoid CFNotificationCenterRemoveEveryObserver(CFNotificationCenterRef center, const void *observer);\nvoid CFBurstTrieTraverseFromCursor(CFBurstTrieCursorRef cursor, void *ctx, CFBurstTrieTraversalCallback callback);\nvoid CFBurstTrieRelease(CFBurstTrieRef trie);\nvoid CFBurstTrieCursorRelease(CFBurstTrieCursorRef cursor);\nvoid CFCharacterSetAddCharactersInRange(CFMutableCharacterSetRef theSet, CFRange theRange);\nvoid CFCharacterSetAddCharactersInString(CFMutableCharacterSetRef theSet, CFStringRef theString);\nvoid CFCharacterSetRemoveCharactersInRange(CFMutableCharacterSetRef theSet, CFRange theRange);\nvoid CFCharacterSetIntersect(CFMutableCharacterSetRef theSet, CFCharacterSetRef theOtherSet);\nvoid CFCharacterSetInvert(CFMutableCharacterSetRef theSet);\nvoid CFCharacterSetUnion(CFMutableCharacterSetRef theSet, CFCharacterSetRef theOtherSet);\nvoid CFCharacterSetCompact(CFMutableCharacterSetRef theSet);\nvoid CFCharacterSetInitInlineBuffer(CFCharacterSetRef cset, CFCharacterSetInlineBuffer *buffer);\nvoid CFDataAppendBytes(CFMutableDataRef theData, const UInt8 *bytes, CFIndex length);\nvoid CFDataDeleteBytes(CFMutableDataRef theData, CFRange range);\nvoid CFDataReplaceBytes(CFMutableDataRef theData, CFRange range, const UInt8 *newBytes, CFIndex newLength);\nvoid CFDataGetBytes(CFDataRef theData, CFRange range, UInt8 *buffer);\nvoid CFDataSetLength(CFMutableDataRef theData, CFIndex length);\nvoid CFDataIncreaseLength(CFMutableDataRef theData, CFIndex extraLength);\nvoid CFDictionaryGetKeysAndValues(CFDictionaryRef theDict, const void **keys, const void **values);\nvoid CFDictionaryApplyFunction(CFDictionaryRef theDict, CFDictionaryApplierFunction applier, void *context);\nvoid CFDictionaryRemoveValue(CFMutableDictionaryRef theDict, const void *key);\nvoid CFDictionarySetValue(CFMutableDictionaryRef theDict, const void *key, const void *value);\nvoid CFDictionaryAddValue(CFMutableDictionaryRef theDict, const void *key, const void *value);\nvoid CFDictionaryRemoveAllValues(CFMutableDictionaryRef theDict);\nvoid CFDictionaryReplaceValue(CFMutableDictionaryRef theDict, const void *key, const void *value);\nvoid CFAttributedStringSetAttribute(CFMutableAttributedStringRef aStr, CFRange range, CFStringRef attrName, CFTypeRef value);\nvoid CFAttributedStringReplaceAttributedString(CFMutableAttributedStringRef aStr, CFRange range, CFAttributedStringRef replacement);\nvoid CFAttributedStringReplaceString(CFMutableAttributedStringRef aStr, CFRange range, CFStringRef replacement);\nvoid CFStringGetLineBounds(CFStringRef theString, CFRange range, CFIndex *lineBeginIndex, CFIndex *lineEndIndex, CFIndex *contentsEndIndex);\nvoid CFStringDelete(CFMutableStringRef theString, CFRange range);\nvoid CFStringFold(CFMutableStringRef theString, CFStringCompareFlags theFlags, CFLocaleRef theLocale);\nvoid CFStringNormalize(CFMutableStringRef theString, CFStringNormalizationForm theForm);\nvoid CFStringCapitalize(CFMutableStringRef theString, CFLocaleRef locale);\nvoid CFStringUppercase(CFMutableStringRef theString, CFLocaleRef locale);\nvoid CFStringLowercase(CFMutableStringRef theString, CFLocaleRef locale);\nvoid CFStringInsert(CFMutableStringRef str, CFIndex idx, CFStringRef insertedStr);\nvoid CFStringAppend(CFMutableStringRef theString, CFStringRef appendedString);\nvoid CFStringAppendCharacters(CFMutableStringRef theString, const UniChar *chars, CFIndex numChars);\nvoid CFStringAppendCString(CFMutableStringRef theString, const char *cStr, CFStringEncoding encoding);\nvoid CFStringAppendFormat(CFMutableStringRef theString, CFDictionaryRef formatOptions, CFStringRef format, ...);\nvoid CFStringAppendFormatAndArguments(CFMutableStringRef theString, CFDictionaryRef formatOptions, CFStringRef format, va_list arguments);\nvoid CFStringPad(CFMutableStringRef theString, CFStringRef padString, CFIndex length, CFIndex indexIntoPad);\nvoid CFStringReplace(CFMutableStringRef theString, CFRange range, CFStringRef replacement);\nvoid CFStringReplaceAll(CFMutableStringRef theString, CFStringRef replacement);\nvoid CFStringSetExternalCharactersNoCopy(CFMutableStringRef theString, UniChar *chars, CFIndex length, CFIndex capacity);\nvoid CFStringTrim(CFMutableStringRef theString, CFStringRef trimString);\nvoid CFStringTrimWhitespace(CFMutableStringRef theString);\nvoid CFStringGetCharacters(CFStringRef theString, CFRange range, UniChar *buffer);\nvoid CFStringInitInlineBuffer(CFStringRef str, CFStringInlineBuffer *buf, CFRange range);\nvoid CFStringGetParagraphBounds(CFStringRef string, CFRange range, CFIndex *parBeginIndex, CFIndex *parEndIndex, CFIndex *contentsEndIndex);\nvoid CFStringTokenizerSetString(CFStringTokenizerRef tokenizer, CFStringRef string, CFRange range);\nvoid CFSetAddValue(CFMutableSetRef theSet, const void *value);\nvoid CFSetSetValue(CFMutableSetRef theSet, const void *value);\nvoid CFSetReplaceValue(CFMutableSetRef theSet, const void *value);\nvoid CFSetRemoveValue(CFMutableSetRef theSet, const void *value);\nvoid CFSetRemoveAllValues(CFMutableSetRef theSet);\nvoid CFSetGetValues(CFSetRef theSet, const void **values);\nvoid CFSetApplyFunction(CFSetRef theSet, CFSetApplierFunction applier, void *context);\nvoid CFAllocatorSetDefault(CFAllocatorRef allocator);\nvoid CFAllocatorDeallocate(CFAllocatorRef allocator, void *ptr);\nvoid CFAllocatorGetContext(CFAllocatorRef allocator, CFAllocatorContext *context);\nvoid CFReadStreamSetDispatchQueue(CFReadStreamRef stream, dispatch_queue_t q);\nvoid CFReadStreamClose(CFReadStreamRef stream);\nvoid CFReadStreamScheduleWithRunLoop(CFReadStreamRef stream, CFRunLoopRef runLoop, CFRunLoopMode runLoopMode);\nvoid CFReadStreamUnscheduleFromRunLoop(CFReadStreamRef stream, CFRunLoopRef runLoop, CFRunLoopMode runLoopMode);\nvoid CFWriteStreamScheduleWithRunLoop(CFWriteStreamRef stream, CFRunLoopRef runLoop, CFRunLoopMode runLoopMode);\nvoid CFWriteStreamUnscheduleFromRunLoop(CFWriteStreamRef stream, CFRunLoopRef runLoop, CFRunLoopMode runLoopMode);\nvoid CFWriteStreamSetDispatchQueue(CFWriteStreamRef stream, dispatch_queue_t q);\nvoid CFWriteStreamClose(CFWriteStreamRef stream);\nvoid CFBundleGetPackageInfo(CFBundleRef bundle, UInt32 *packageType, UInt32 *packageCreator);\nvoid CFBundleCloseBundleResourceMap(CFBundleRef bundle, CFBundleRefNum refNum);\nvoid CFRunLoopAddCommonMode(CFRunLoopRef rl, CFRunLoopMode mode);\nvoid CFRunLoopAddTimer(CFRunLoopRef rl, CFRunLoopTimerRef timer, CFRunLoopMode mode);\nvoid CFRunLoopAddSource(CFRunLoopRef rl, CFRunLoopSourceRef source, CFRunLoopMode mode);\nvoid CFRunLoopAddObserver(CFRunLoopRef rl, CFRunLoopObserverRef observer, CFRunLoopMode mode);\nvoid CFRunLoopRemoveTimer(CFRunLoopRef rl, CFRunLoopTimerRef timer, CFRunLoopMode mode);\nvoid CFRunLoopRemoveSource(CFRunLoopRef rl, CFRunLoopSourceRef source, CFRunLoopMode mode);\nvoid CFRunLoopRemoveObserver(CFRunLoopRef rl, CFRunLoopObserverRef observer, CFRunLoopMode mode);\nvoid CFRunLoopRun(void);\nvoid CFRunLoopWakeUp(CFRunLoopRef rl);\nvoid CFRunLoopStop(CFRunLoopRef rl);\nvoid CFRunLoopPerformBlock(CFRunLoopRef rl, CFTypeRef mode, void (*block)(void));\nvoid CFRunLoopSourceInvalidate(CFRunLoopSourceRef source);\nvoid CFRunLoopSourceGetContext(CFRunLoopSourceRef source, CFRunLoopSourceContext *context);\nvoid CFRunLoopSourceSignal(CFRunLoopSourceRef source);\nvoid CFRunLoopTimerSetTolerance(CFRunLoopTimerRef timer, CFTimeInterval tolerance);\nvoid CFRunLoopTimerSetNextFireDate(CFRunLoopTimerRef timer, CFAbsoluteTime fireDate);\nvoid CFRunLoopTimerInvalidate(CFRunLoopTimerRef timer);\nvoid CFRunLoopTimerGetContext(CFRunLoopTimerRef timer, CFRunLoopTimerContext *context);\nvoid CFRunLoopObserverGetContext(CFRunLoopObserverRef observer, CFRunLoopObserverContext *context);\nvoid CFRunLoopObserverInvalidate(CFRunLoopObserverRef observer);\nvoid CFMachPortSetInvalidationCallBack(CFMachPortRef port, CFMachPortInvalidationCallBack callout);\nvoid CFMachPortInvalidate(CFMachPortRef port);\nvoid CFMessagePortInvalidate(CFMessagePortRef ms);\n\nvoid CFDictionaryApply(CFHashRef hc, void (*block)(const void *key, const void *value, Boolean *stop));\nvoid _CFNonObjCRelease(CFTypeRef cf);\nvoid _CFRuntimeInitStaticInstance(void *memory, CFTypeID typeID);\nvoid _CFRuntimeBridgeClasses(CFTypeID cfType, const char *className);\nvoid _CFPreferencesSetValueWithContainer(CFStringRef key, CFPropertyListRef value, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName, CFStringRef containerPath);\n\nBoolean CFEqual(CFTypeRef cf1, CFTypeRef cf2);\nBoolean CFBooleanGetValue(CFBooleanRef boolean);\nBoolean CFArrayContainsValue(CFArrayRef theArray, CFRange range, const void *value);\nBoolean CFPreferencesAppSynchronize(CFStringRef appID);\nBoolean CFPreferencesAppValueIsForced(CFStringRef key, CFStringRef applicationID);\nBoolean CFPreferencesGetAppBooleanValue(CFStringRef key, CFStringRef applicationID, Boolean *keyExistsAndHasValidFormat);\nBoolean CFPreferencesSynchronize(CFStringRef applicationID, CFStringRef userName, CFStringRef hostName);\nBoolean CFBurstTrieContainsUTF8String(CFBurstTrieRef trie, UInt8 *key, CFIndex length, uint32_t *payload);\nBoolean CFBurstTrieCursorGetPayload(CFBurstTrieCursorRef cursor, uint32_t *payload);\nBoolean CFBurstTrieCursorAdvanceForBytes(CFBurstTrieCursorRef cursor, const UInt8 *bytes, CFIndex length);\nBoolean CFBurstTrieSetCursorForBytes(CFBurstTrieRef trie, CFBurstTrieCursorRef cursor, const UInt8 *bytes, CFIndex length);\nBoolean CFCharacterSetHasMemberInPlane(CFCharacterSetRef theSet, CFIndex thePlane);\nBoolean CFCharacterSetIsCharacterMember(CFCharacterSetRef theSet, UniChar theChar);\nBoolean CFCharacterSetIsLongCharacterMember(CFCharacterSetRef theSet, UTF32Char theChar);\nBoolean CFCharacterSetIsSupersetOfSet(CFCharacterSetRef theSet, CFCharacterSetRef theOtherset);\nBoolean CFDictionaryContainsKey(CFDictionaryRef theDict, const void *key);\nBoolean CFDictionaryContainsValue(CFDictionaryRef theDict, const void *value);\nBoolean CFDictionaryGetValueIfPresent(CFDictionaryRef theDict, const void *key, const void **value);\nBoolean CFStringFindCharacterFromSet(CFStringRef theString, CFCharacterSetRef theSet, CFRange rangeToSearch, CFStringCompareFlags searchOptions, CFRange *result);\nBoolean CFStringFindWithOptions(CFStringRef theString, CFStringRef stringToFind, CFRange rangeToSearch, CFStringCompareFlags searchOptions, CFRange *result);\nBoolean CFStringFindWithOptionsAndLocale(CFStringRef theString, CFStringRef stringToFind, CFRange rangeToSearch, CFStringCompareFlags searchOptions, CFLocaleRef locale, CFRange *result);\nBoolean CFStringHasPrefix(CFStringRef theString, CFStringRef prefix);\nBoolean CFStringHasSuffix(CFStringRef theString, CFStringRef suffix);\nBoolean CFStringTransform(CFMutableStringRef string, CFRange *range, CFStringRef transform, Boolean reverse);\nBoolean CFStringGetCString(CFStringRef theString, char *buffer, CFIndex bufferSize, CFStringEncoding encoding);\nBoolean CFStringGetFileSystemRepresentation(CFStringRef string, char *buffer, CFIndex maxBufLen);\nBoolean CFNumberGetValue(CFNumberRef number, CFNumberType theType, void *valuePtr);\nBoolean CFNumberIsFloatType(CFNumberRef number);\nBoolean CFSetContainsValue(CFSetRef theSet, const void *value);\nBoolean CFSetGetValueIfPresent(CFSetRef theSet, const void *candidate, const void **value);\nBoolean CFReadStreamOpen(CFReadStreamRef stream);\nBoolean CFReadStreamHasBytesAvailable(CFReadStreamRef stream);\nBoolean CFReadStreamSetClient(CFReadStreamRef stream, CFOptionFlags streamEvents, CFReadStreamClientCallBack clientCB, CFStreamClientContext *clientContext);\nBoolean CFReadStreamSetProperty(CFReadStreamRef stream, CFStreamPropertyKey propertyName, CFTypeRef propertyValue);\nBoolean CFWriteStreamOpen(CFWriteStreamRef stream);\nBoolean CFWriteStreamCanAcceptBytes(CFWriteStreamRef stream);\nBoolean CFWriteStreamSetClient(CFWriteStreamRef stream, CFOptionFlags streamEvents, CFWriteStreamClientCallBack clientCB, CFStreamClientContext *clientContext);\nBoolean CFWriteStreamSetProperty(CFWriteStreamRef stream, CFStreamPropertyKey propertyName, CFTypeRef propertyValue);\nBoolean CFURLCanBeDecomposed(CFURLRef anURL);\nBoolean CFURLHasDirectoryPath(CFURLRef anURL);\nBoolean CFURLGetFileSystemRepresentation(CFURLRef url, Boolean resolveAgainstBase, UInt8 *buffer, CFIndex maxBufLen);\nBoolean CFURLCreateDataAndPropertiesFromResource(CFAllocatorRef alloc, CFURLRef url, CFDataRef *resourceData, CFDictionaryRef *properties, CFArrayRef desiredProperties, SInt32 *errorCode);\nBoolean CFURLWriteDataAndPropertiesToResource(CFURLRef url, CFDataRef dataToWrite, CFDictionaryRef propertiesToWrite, SInt32 *errorCode);\nBoolean CFURLResourceIsReachable(CFURLRef url, CFErrorRef *error);\nBoolean CFURLCopyResourcePropertyForKey(CFURLRef url, CFStringRef key, void *propertyValueTypeRefPtr, CFErrorRef *error);\nBoolean CFRunLoopObserverIsValid(CFRunLoopObserverRef observer);\nBoolean CFRunLoopIsWaiting(CFRunLoopRef rl);\nBoolean CFRunLoopContainsSource(CFRunLoopRef rl, CFRunLoopSourceRef source, CFRunLoopMode mode);\nBoolean CFRunLoopContainsObserver(CFRunLoopRef rl, CFRunLoopObserverRef observer, CFRunLoopMode mode);\nBoolean CFRunLoopContainsTimer(CFRunLoopRef rl, CFRunLoopTimerRef timer, CFRunLoopMode mode);\nBoolean CFRunLoopSourceIsValid(CFRunLoopSourceRef source);\nBoolean CFRunLoopTimerDoesRepeat(CFRunLoopTimerRef timer);\nBoolean CFRunLoopTimerIsValid(CFRunLoopTimerRef timer);\nBoolean CFLocaleGetLanguageRegionEncodingForLocaleIdentifier(CFStringRef locale, LangCode *, RegionCode *, ScriptCode *, CFStringEncoding *);\nBoolean CFMessagePortIsValid(CFMessagePortRef ms);\n\nBoolean _CFExecutableLinkedOnOrAfter(CFSystemVersion version);\nBoolean _CFDictionaryIsMutable(CFDictionaryRef dictionary);\nBoolean _CFIsDeallocating(CFTypeRef);\nBoolean _CFIsObjC(CFTypeID typeID, CFTypeRef obj);\nBoolean _CFNonObjCEqual(CFTypeRef cf1, CFTypeRef cf2);\nBoolean _CFPreferencesAppSynchronizeWithContainer(CFStringRef appID, CFStringRef containerPath);\nBoolean _CFPreferencesSynchronizeWithContainer(CFStringRef applicationID, CFStringRef userName, CFStringRef hostName, CFStringRef containerPath);\n\nCFTypeRef CFRetain(CFTypeRef cf);\nCFTypeRef CFAutorelease(CFTypeRef arg);\nCFTypeRef CFAttributedStringGetAttribute(CFAttributedStringRef aStr, CFIndex loc, CFStringRef attrName, CFRange *effectiveRange);\nCFTypeRef CFDictionaryGetValue(CFDictionaryRef theDict, const void *key);\nCFTypeRef CFMakeCollectable(CFTypeRef cf);\nCFTypeRef CFWriteStreamCopyProperty(CFWriteStreamRef stream, CFStreamPropertyKey propertyName);\nCFTypeRef CFReadStreamCopyProperty(CFReadStreamRef stream, CFStreamPropertyKey propertyName);\nCFTypeRef CFLocaleGetValue(CFLocaleRef locale, CFLocaleKey key);\nCFTypeRef CFURLCreatePropertyFromResource(CFAllocatorRef alloc, CFURLRef url, CFStringRef property, SInt32 *errorCode);\nCFTypeRef CFBundleGetValueForInfoDictionaryKey(CFBundleRef bundle, CFStringRef key);\n\nCFTypeRef _CFRuntimeCreateInstance(CFAllocatorRef allocator, CFTypeID typeID, CFIndex extraBytes, unsigned char *category);\nCFTypeRef _CFTryRetain(CFTypeRef);\nCFTypeRef _CFNonObjCRetain(CFTypeRef cf);\nCFTypeRef _CFXPCCreateCFObjectFromXPCObject(xpc_object_t xpcattrs);\nCFTypeRef _CFXPCCreateCFObjectFromXPCMessage(xpc_object_t message);\n\nCFTypeID CFGetTypeID(CFTypeRef cf);\nCFTypeID CFBooleanGetTypeID(void);\nCFTypeID CFDictionaryGetTypeID(void);\nCFTypeID CFArrayGetTypeID(void);\nCFTypeID CFCharacterSetGetTypeID(void);\nCFTypeID CFDataGetTypeID(void);\nCFTypeID CFStringGetTypeID(void);\nCFTypeID CFAttributedStringGetTypeID(void);\nCFTypeID CFNumberGetTypeID(void);\nCFTypeID CFSetGetTypeID(void);\nCFTypeID CFURLGetTypeID(void);\nCFTypeID CFNotificationCenterGetTypeID(void);\nCFTypeID CFAllocatorGetTypeID(void);\nCFTypeID CFNullGetTypeID(void);\nCFTypeID CFLocaleGetTypeID(void);\nCFTypeID CFErrorGetTypeID(void);\nCFTypeID CFBagGetTypeID(void);\nCFTypeID CFRunLoopGetTypeID(void);\nCFTypeID CFRunLoopSourceGetTypeID(void);\nCFTypeID CFRunLoopTimerGetTypeID(void);\nCFTypeID CFUUIDGetTypeID(void);\n\nCFTypeID _CFRuntimeRegisterClass(const CFRuntimeClass *const cls);\n\nCFTimeInterval CFRunLoopTimerGetTolerance(CFRunLoopTimerRef timer);\nCFTimeInterval CFRunLoopTimerGetInterval(CFRunLoopTimerRef timer);\n\nCFAbsoluteTime CFRunLoopGetNextTimerFireDate(CFRunLoopRef rl, CFRunLoopMode mode);\nCFAbsoluteTime CFDateGetAbsoluteTime(CFDateRef theDate);\n\nCFHashCode CFHash(CFTypeRef cf);\nCFHashCode CFHashBytes(uint8_t *bytes, CFIndex length);\n\nCFHashCode _CFNonObjCHash(CFTypeRef cf);\n\nCFRunLoopRef CFRunLoopGetCurrent(void);\nCFRunLoopRef CFRunLoopGetMain(void);\n\nCFRunLoopSourceRef CFMessagePortCreateRunLoopSource(CFAllocatorRef allocator, CFMessagePortRef local, CFIndex order);\nCFRunLoopSourceRef CFRunLoopSourceCreate(CFAllocatorRef allocator, CFIndex order, CFRunLoopSourceContext *context);\nCFRunLoopSourceRef CFUserNotificationCreateRunLoopSource(CFAllocatorRef allocator, CFUserNotificationRef userNotification, CFUserNotificationCallBack callout, CFIndex order);\nCFRunLoopSourceRef CFMachPortCreateRunLoopSource(CFAllocatorRef allocator, CFMachPortRef port, CFIndex order);\n\nCFRunLoopObserverRef CFRunLoopObserverCreate(CFAllocatorRef allocator, CFOptionFlags activities, Boolean repeats, CFIndex order, CFRunLoopObserverCallBack callout, CFRunLoopObserverContext *context);\nCFRunLoopObserverRef CFRunLoopObserverCreateWithHandler(CFAllocatorRef allocator, CFOptionFlags activities, Boolean repeats, CFIndex order, void (*block)(CFRunLoopObserverRef observer, CFRunLoopActivity activity));\n\nCFRunLoopTimerRef CFRunLoopTimerCreate(CFAllocatorRef allocator, CFAbsoluteTime fireDate, CFTimeInterval interval, CFOptionFlags flags, CFIndex order, CFRunLoopTimerCallBack callout, CFRunLoopTimerContext *context);\nCFRunLoopTimerRef CFRunLoopTimerCreateWithHandler(CFAllocatorRef allocator, CFAbsoluteTime fireDate, CFTimeInterval interval, CFOptionFlags flags, CFIndex order, void (*block)(CFRunLoopTimerRef timer));\n\nCFRunLoopMode CFRunLoopCopyCurrentMode(CFRunLoopRef rl);\n\nCFRunLoopRunResult CFRunLoopRunInMode(CFRunLoopMode mode, CFTimeInterval seconds, Boolean returnAfterSourceHandled);\n\nCFStringEncoding CFStringGetSystemEncoding(void);\nCFStringEncoding CFStringConvertNSStringEncodingToEncoding(unsigned long encoding);\n\nCFComparisonResult CFStringCompare(CFStringRef theString1, CFStringRef theString2, CFStringCompareFlags compareOptions);\nCFComparisonResult CFStringCompareWithOptions(CFStringRef theString1, CFStringRef theString2, CFRange rangeToCompare, CFStringCompareFlags compareOptions);\nCFComparisonResult CFNumberCompare(CFNumberRef number, CFNumberRef otherNumber, void *context);\n\nCFLocaleRef CFLocaleCreate(CFAllocatorRef allocator, CFLocaleIdentifier localeIdentifier);\nCFLocaleRef CFLocaleCreateCopy(CFAllocatorRef allocator, CFLocaleRef locale);\nCFLocaleRef CFLocaleCopyCurrent(void);\nCFLocaleRef CFLocaleGetSystem(void);\n\nCFLocaleIdentifier CFLocaleGetIdentifier(CFLocaleRef locale);\nCFLocaleIdentifier CFLocaleCreateCanonicalLanguageIdentifierFromString(CFAllocatorRef allocator, CFStringRef localeIdentifier);\nCFLocaleIdentifier CFLocaleCreateCanonicalLocaleIdentifierFromString(CFAllocatorRef allocator, CFStringRef localeIdentifier);\nCFLocaleIdentifier CFLocaleCreateLocaleIdentifierFromComponents(CFAllocatorRef allocator, CFDictionaryRef dictionary);\nCFLocaleIdentifier CFLocaleCreateLocaleIdentifierFromWindowsLocaleCode(CFAllocatorRef allocator, uint32_t lcid);\n\nCFUUIDRef CFUUIDCreate(CFAllocatorRef alloc);\nCFUUIDRef CFUUIDCreateFromString(CFAllocatorRef alloc, CFStringRef uuidStr);\nCFUUIDRef CFUUIDCreateFromUUIDBytes(CFAllocatorRef alloc, CFUUIDBytes bytes);\nCFUUIDRef CFUUIDCreateWithBytes(CFAllocatorRef alloc, UInt8 byte0, UInt8 byte1, UInt8 byte2, UInt8 byte3, UInt8 byte4, UInt8 byte5, UInt8 byte6, UInt8 byte7, UInt8 byte8, UInt8 byte9, UInt8 byte10, UInt8 byte11, UInt8 byte12, UInt8 byte13, UInt8 byte14, UInt8 byte15);\nCFUUIDRef CFUUIDGetConstantUUIDWithBytes(CFAllocatorRef alloc, UInt8 byte0, UInt8 byte1, UInt8 byte2, UInt8 byte3, UInt8 byte4, UInt8 byte5, UInt8 byte6, UInt8 byte7, UInt8 byte8, UInt8 byte9, UInt8 byte10, UInt8 byte11, UInt8 byte12, UInt8 byte13, UInt8 byte14, UInt8 byte15);\n\nCFUUIDBytes CFUUIDGetUUIDBytes(CFUUIDRef uuid);\n\nCFRange CFDataFind(CFDataRef theData, CFDataRef dataToFind, CFRange searchRange, CFDataSearchFlags compareOptions);\nCFRange CFStringFind(CFStringRef theString, CFStringRef stringToFind, CFStringCompareFlags compareOptions);\nCFRange CFStringGetRangeOfComposedCharactersAtIndex(CFStringRef theString, CFIndex theIndex);\nCFRange CFStringGetRangeOfCharacterClusterAtIndex(CFStringRef string, CFIndex charIndex, CFStringCharacterClusterType type);\nCFRange CFURLGetByteRangeForComponent(CFURLRef url, CFURLComponentType component, CFRange *rangeIncludingSeparators);\nCFRange CFStringTokenizerGetCurrentTokenRange(CFStringTokenizerRef tokenizer);\n\nCFAllocatorRef CFAllocatorGetDefault(void);\nCFAllocatorRef CFGetAllocator(CFTypeRef cf);\nCFAllocatorRef CFAllocatorCreate(CFAllocatorRef allocator, CFAllocatorContext *context);\n\nCFErrorRef CFErrorCreate(CFAllocatorRef allocator, CFErrorDomain domain, CFIndex code, CFDictionaryRef userInfo);\nCFErrorRef CFErrorCreateWithUserInfoKeysAndValues(CFAllocatorRef allocator, CFErrorDomain domain, CFIndex code, const void *const *userInfoKeys, const void *const *userInfoValues, CFIndex numUserInfoValues);\nCFErrorRef CFWriteStreamCopyError(CFWriteStreamRef stream);\nCFErrorRef CFReadStreamCopyError(CFReadStreamRef stream);\n\nCFErrorRef _CFBundleCreateError(CFAllocatorRef allocator, CFBundleRef bundle, CFIndex code);\nCFErrorRef _CFBundleCreateErrorDebug(CFAllocatorRef allocator, CFBundleRef bundle, CFIndex code, CFStringRef debugString);\n\nCFStreamStatus CFReadStreamGetStatus(CFReadStreamRef stream);\nCFStreamStatus CFWriteStreamGetStatus(CFWriteStreamRef stream);\n\nCFErrorDomain CFErrorGetDomain(CFErrorRef err);\n\nCFNumberRef CFNumberCreate(CFAllocatorRef allocator, CFNumberType theType, const void *valuePtr);\n\nCFNumberType CFNumberGetType(CFNumberRef number);\n\nCFURLRef CFURLCopyAbsoluteURL(CFURLRef relativeURL);\nCFURLRef CFURLCreateAbsoluteURLWithBytes(CFAllocatorRef alloc, const UInt8 *relativeURLBytes, CFIndex length, CFStringEncoding encoding, CFURLRef baseURL, Boolean useCompatibilityMode);\nCFURLRef CFURLCreateByResolvingBookmarkData(CFAllocatorRef allocator, CFDataRef bookmark, CFURLBookmarkResolutionOptions options, CFURLRef relativeToURL, CFArrayRef resourcePropertiesToInclude, Boolean *isStale, CFErrorRef *error);\nCFURLRef CFURLCreateCopyAppendingPathComponent(CFAllocatorRef allocator, CFURLRef url, CFStringRef pathComponent, Boolean isDirectory);\nCFURLRef CFURLCreateCopyAppendingPathExtension(CFAllocatorRef allocator, CFURLRef url, CFStringRef extension);\nCFURLRef CFURLCreateCopyDeletingLastPathComponent(CFAllocatorRef allocator, CFURLRef url);\nCFURLRef CFURLCreateCopyDeletingPathExtension(CFAllocatorRef allocator, CFURLRef url);\nCFURLRef CFURLCreateFilePathURL(CFAllocatorRef allocator, CFURLRef url, CFErrorRef *error);\nCFURLRef CFURLCreateFileReferenceURL(CFAllocatorRef allocator, CFURLRef url, CFErrorRef *error);\nCFURLRef CFURLCreateFromFileSystemRepresentation(CFAllocatorRef allocator, const UInt8 *buffer, CFIndex bufLen, Boolean isDirectory);\nCFURLRef CFURLCreateFromFileSystemRepresentationRelativeToBase(CFAllocatorRef allocator, const UInt8 *buffer, CFIndex bufLen, Boolean isDirectory, CFURLRef baseURL);\nCFURLRef CFURLCreateWithString(CFAllocatorRef allocator, CFStringRef URLString, CFURLRef baseURL);\nCFURLRef CFURLCreateWithFileSystemPath(CFAllocatorRef allocator, CFStringRef filePath, CFURLPathStyle pathStyle, Boolean isDirectory);\nCFURLRef CFURLCreateWithBytes(CFAllocatorRef allocator, const UInt8 *URLBytes, CFIndex length, CFStringEncoding encoding, CFURLRef baseURL);\nCFURLRef CFCopyHomeDirectoryURLForUser(CFStringRef uName);\nCFURLRef CFBundleCopyExecutableURL(CFBundleRef bundle);\n\nCFURLRef _CFBundleCopyInfoPlistURL(CFBundleRef bundle);\n\nCFDataRef CFDataCreate(CFAllocatorRef allocator, const UInt8 *bytes, CFIndex length);\nCFDataRef CFDataCreateCopy(CFAllocatorRef allocator, CFDataRef theData);\nCFDataRef CFDataCreateWithBytesNoCopy(CFAllocatorRef allocator, const UInt8 *bytes, CFIndex length, CFAllocatorRef bytesDeallocator);\nCFDataRef CFPropertyListCreateData(CFAllocatorRef allocator, CFPropertyListRef propertyList, CFPropertyListFormat format, CFOptionFlags options, CFErrorRef *error);\nCFDataRef CFCharacterSetCreateBitmapRepresentation(CFAllocatorRef alloc, CFCharacterSetRef theSet);\nCFDataRef CFStringCreateExternalRepresentation(CFAllocatorRef alloc, CFStringRef theString, CFStringEncoding encoding, UInt8 lossByte);\nCFDataRef CFURLCreateData(CFAllocatorRef allocator, CFURLRef url, CFStringEncoding encoding, Boolean escapeWhitespace);\n\nCFMutableDataRef CFDataCreateMutable(CFAllocatorRef allocator, CFIndex capacity);\nCFMutableDataRef CFDataCreateMutableCopy(CFAllocatorRef allocator, CFIndex capacity, CFDataRef theData);\n\nCFMutableCharacterSetRef CFCharacterSetCreateMutable(CFAllocatorRef alloc);\nCFMutableCharacterSetRef CFCharacterSetCreateMutableCopy(CFAllocatorRef alloc, CFCharacterSetRef theSet);\n\nCFCharacterSetRef CFCharacterSetCreateCopy(CFAllocatorRef alloc, CFCharacterSetRef theSet);\nCFCharacterSetRef CFCharacterSetCreateInvertedSet(CFAllocatorRef alloc, CFCharacterSetRef theSet);\nCFCharacterSetRef CFCharacterSetCreateWithCharactersInRange(CFAllocatorRef alloc, CFRange theRange);\nCFCharacterSetRef CFCharacterSetCreateWithCharactersInString(CFAllocatorRef alloc, CFStringRef theString);\nCFCharacterSetRef CFCharacterSetCreateWithBitmapRepresentation(CFAllocatorRef alloc, CFDataRef theData);\nCFCharacterSetRef CFCharacterSetGetPredefined(CFCharacterSetPredefinedSet theSetIdentifier);\n\nCFMutableSetRef CFSetCreateMutable(CFAllocatorRef allocator, CFIndex capacity, const CFSetCallBacks *callBacks);\nCFMutableSetRef CFSetCreateMutableCopy(CFAllocatorRef allocator, CFIndex capacity, CFSetRef theSet);\n\nCFSetRef CFSetCreate(CFAllocatorRef allocator, const void **values, CFIndex numValues, const CFSetCallBacks *callBacks);\nCFSetRef CFSetCreateCopy(CFAllocatorRef allocator, CFSetRef theSet);\n\nCFAbsoluteTime CFAbsoluteTimeGetCurrent(void);\n\nCFNotificationCenterRef CFNotificationCenterGetDarwinNotifyCenter(void);\nCFNotificationCenterRef CFNotificationCenterGetDistributedCenter(void);\nCFNotificationCenterRef CFNotificationCenterGetLocalCenter(void);\n\nCFUserNotificationRef CFUserNotificationCreate(CFAllocatorRef allocator, CFTimeInterval timeout, CFOptionFlags flags, SInt32 *error, CFDictionaryRef dictionary);\n\nCFPropertyListRef CFPreferencesCopyValue(CFStringRef key, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName);\nCFPropertyListRef CFPreferencesCopyAppValue(CFStringRef key, CFStringRef applicationID);\nCFPropertyListRef CFPropertyListCreateDeepCopy(CFAllocatorRef allocator, CFPropertyListRef propertyList, CFOptionFlags mutabilityOption);\nCFPropertyListRef CFPropertyListCreateWithData(CFAllocatorRef allocator, CFDataRef data, CFOptionFlags options, CFPropertyListFormat *format, CFErrorRef *error);\nCFPropertyListRef CFPropertyListCreateWithStream(CFAllocatorRef allocator, CFReadStreamRef stream, CFIndex streamLength, CFOptionFlags options, CFPropertyListFormat *format, CFErrorRef *error);\nCFPropertyListRef CFPropertyListCreateFromStream(CFAllocatorRef allocator, CFReadStreamRef stream, CFIndex streamLength, CFOptionFlags mutabilityOption, CFPropertyListFormat *format, CFStringRef *errorString);\nCFPropertyListRef CFPropertyListCreateFromXMLData(CFAllocatorRef allocator, CFDataRef xmlData, CFOptionFlags mutabilityOption, CFStringRef *errorString);\n\nCFPropertyListRef _CFPreferencesCopyValueWithContainer(CFStringRef key, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName, CFStringRef containerPath);\n\nCFReadStreamRef CFReadStreamCreateWithFile(CFAllocatorRef alloc, CFURLRef fileURL);\nCFReadStreamRef CFReadStreamCreateWithFTPURL(CFAllocatorRef alloc, CFURLRef ftpURL);\nCFReadStreamRef CFReadStreamCreateWithBytesNoCopy(CFAllocatorRef alloc, const UInt8 *bytes, CFIndex length, CFAllocatorRef bytesDeallocator);\nCFReadStreamRef CFReadStreamCreateForHTTPRequest(CFAllocatorRef alloc, CFHTTPMessageRef request);\n\nCFWriteStreamRef CFWriteStreamCreateWithFile(CFAllocatorRef alloc, CFURLRef fileURL);\nCFWriteStreamRef CFWriteStreamCreateWithFTPURL(CFAllocatorRef alloc, CFURLRef ftpURL);\nCFWriteStreamRef CFWriteStreamCreateWithBuffer(CFAllocatorRef alloc, UInt8 *buffer, CFIndex bufferCapacity);\nCFWriteStreamRef CFWriteStreamCreateWithAllocatedBuffers(CFAllocatorRef alloc, CFAllocatorRef bufferAllocator);\n\nCFDictionaryRef CFBundleGetInfoDictionary(CFBundleRef bundle);\nCFDictionaryRef CFBundleCopyInfoDictionaryForURL(CFURLRef url);\nCFDictionaryRef CFDictionaryCreate(CFAllocatorRef allocator, const void **keys, const void **values, CFIndex numValues, const CFDictionaryKeyCallBacks *keyCallBacks, const CFDictionaryValueCallBacks *valueCallBacks);\nCFDictionaryRef CFDictionaryCreateCopy(CFAllocatorRef allocator, CFDictionaryRef theDict);\nCFDictionaryRef CFPreferencesCopyMultiple(CFArrayRef keysToFetch, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName);\nCFDictionaryRef CFLocaleCreateComponentsFromLocaleIdentifier(CFAllocatorRef allocator, CFLocaleIdentifier localeID);\nCFDictionaryRef CFUserNotificationGetResponseDictionary(CFUserNotificationRef userNotification);\nCFDictionaryRef CFErrorCopyUserInfo(CFErrorRef err);\nCFDictionaryRef CFAttributedStringGetAttributes(CFAttributedStringRef aStr, CFIndex loc, CFRange *effectiveRange);\n\nCFDictionaryRef _CFPreferencesCopyMultipleWithContainer(CFArrayRef keysToFetch, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName, CFStringRef containerPath);\nCFDictionaryRef _CFCopySystemVersionDictionary(void);\n\nCFMutableDictionaryRef CFDictionaryCreateMutable(CFAllocatorRef allocator, CFIndex capacity, const CFDictionaryKeyCallBacks *keyCallBacks, const CFDictionaryValueCallBacks *valueCallBacks);\nCFMutableDictionaryRef CFDictionaryCreateMutableCopy(CFAllocatorRef allocator, CFIndex capacity, CFDictionaryRef theDict);\n\nCFMutableArrayRef CFArrayCreateMutable(CFAllocatorRef allocator, CFIndex capacity, const CFArrayCallBacks *callBacks);\nCFMutableArrayRef CFArrayCreateMutableCopy(CFAllocatorRef allocator, CFIndex capacity, CFArrayRef theArray);\n\nCFArrayRef CFArrayCreate(CFAllocatorRef allocator, const void **values, CFIndex numValues, const CFArrayCallBacks *callBacks);\nCFArrayRef CFArrayCreateCopy(CFAllocatorRef allocator, CFArrayRef theArray);\nCFArrayRef CFStringCreateArrayBySeparatingStrings(CFAllocatorRef alloc, CFStringRef theString, CFStringRef separatorString);\nCFArrayRef CFStringCreateArrayWithFindResults(CFAllocatorRef alloc, CFStringRef theString, CFStringRef stringToFind, CFRange rangeToSearch, CFStringCompareFlags compareOptions);\nCFArrayRef CFPreferencesCopyKeyList(CFStringRef applicationID, CFStringRef userName, CFStringRef hostName);\nCFArrayRef CFBundleCreateBundlesFromDirectory(CFAllocatorRef allocator, CFURLRef directoryURL, CFStringRef bundleType);\nCFArrayRef CFBundleGetAllBundles(void);\nCFArrayRef CFBundleCopyResourceURLsOfType(CFBundleRef bundle, CFStringRef resourceType, CFStringRef subDirName);\nCFArrayRef CFBundleCopyResourceURLsOfTypeInDirectory(CFURLRef bundleURL, CFStringRef resourceType, CFStringRef subDirName);\nCFArrayRef CFBundleCopyResourceURLsOfTypeForLocalization(CFBundleRef bundle, CFStringRef resourceType, CFStringRef subDirName, CFStringRef localizationName);\nCFArrayRef CFBundleCopyLocalizationsForPreferences(CFArrayRef locArray, CFArrayRef prefArray);\nCFArrayRef CFBundleCopyBundleLocalizations(CFBundleRef bundle);\nCFArrayRef CFRunLoopCopyAllModes(CFRunLoopRef rl);\nCFArrayRef CFLocaleCopyPreferredLanguages(void);\nCFArrayRef CFLocaleCopyAvailableLocaleIdentifiers(void);\nCFArrayRef CFLocaleCopyISOLanguageCodes(void);\nCFArrayRef CFCopySearchPathForDirectoriesInDomains(CFSearchPathDirectory directory, CFSearchPathDomainMask domainMask, Boolean expandTilde);\n\nCFStringTokenizerRef CFStringTokenizerCreate(CFAllocatorRef alloc, CFStringRef string, CFRange range, CFOptionFlags options, CFLocaleRef locale);\n\nCFMutableStringRef CFStringCreateMutable(CFAllocatorRef alloc, CFIndex maxLength);\nCFMutableStringRef CFStringCreateMutableCopy(CFAllocatorRef alloc, CFIndex maxLength, CFStringRef theString);\nCFMutableStringRef CFStringCreateMutableWithExternalCharactersNoCopy(CFAllocatorRef alloc, UniChar *chars, CFIndex numChars, CFIndex capacity, CFAllocatorRef externalCharactersAllocator);\n\nCFStringRef CFCopySystemVersionString(void);\nCFStringRef CFCopyDescription(CFTypeRef cf);\nCFStringRef CFCopyTypeIDDescription(CFTypeID type_id);\nCFStringRef CFCopyUserName(void);\nCFStringRef CFErrorCopyDescription(CFErrorRef err);\nCFStringRef CFErrorCopyFailureReason(CFErrorRef err);\nCFStringRef CFAttributedStringGetString(CFAttributedStringRef aStr);\nCFStringRef CFStringCreateCopy(CFAllocatorRef alloc, CFStringRef theString);\nCFStringRef CFStringCreateByCombiningStrings(CFAllocatorRef alloc, CFArrayRef theArray, CFStringRef separatorString);\nCFStringRef CFStringCreateFromExternalRepresentation(CFAllocatorRef alloc, CFDataRef data, CFStringEncoding encoding);\nCFStringRef CFStringCreateWithPascalString(CFAllocatorRef alloc, ConstStr255Param pStr, CFStringEncoding encoding);\nCFStringRef CFStringCreateWithBytes(CFAllocatorRef alloc, const UInt8 *bytes, CFIndex numBytes, CFStringEncoding encoding, Boolean isExternalRepresentation);\nCFStringRef CFStringCreateWithBytesNoCopy(CFAllocatorRef alloc, const UInt8 *bytes, CFIndex numBytes, CFStringEncoding encoding, Boolean isExternalRepresentation, CFAllocatorRef contentsDeallocator);\nCFStringRef CFStringCreateWithCharacters(CFAllocatorRef alloc, const UniChar *chars, CFIndex numChars);\nCFStringRef CFStringCreateWithCharactersNoCopy(CFAllocatorRef alloc, const UniChar *chars, CFIndex numChars, CFAllocatorRef contentsDeallocator);\nCFStringRef CFStringCreateWithFormat(CFAllocatorRef alloc, CFDictionaryRef formatOptions, CFStringRef format, ...);\nCFStringRef CFStringCreateWithFormatAndArguments(CFAllocatorRef alloc, CFDictionaryRef formatOptions, CFStringRef format, va_list arguments);\nCFStringRef CFStringCreateWithCString(CFAllocatorRef alloc, const char *cStr, CFStringEncoding encoding);\nCFStringRef CFStringCreateWithCStringNoCopy(CFAllocatorRef alloc, const char *cStr, CFStringEncoding encoding, CFAllocatorRef contentsDeallocator);\nCFStringRef CFStringCreateWithSubstring(CFAllocatorRef alloc, CFStringRef str, CFRange range);\nCFStringRef CFStringCreateWithFileSystemRepresentation(CFAllocatorRef alloc, const char *buffer);\nCFStringRef CFStringTokenizerCopyBestStringLanguage(CFStringRef string, CFRange range);\nCFStringRef CFBundleGetIdentifier(CFBundleRef bundle);\nCFStringRef CFBundleCopyLocalizedString(CFBundleRef bundle, CFStringRef key, CFStringRef value, CFStringRef tableName);\nCFStringRef CFBundleCopyLocalizedStringForLocalization(CFBundleRef bundle, CFStringRef key, CFStringRef value, CFStringRef tableName, CFStringRef localizationName);\nCFStringRef CFUUIDCreateString(CFAllocatorRef alloc, CFUUIDRef uuid);\nCFStringRef CFURLCopyFileSystemPath(CFURLRef anURL, CFURLPathStyle pathStyle);\nCFStringRef CFURLCopyFragment(CFURLRef anURL, CFStringRef charactersToLeaveEscaped);\nCFStringRef CFURLCopyHostName(CFURLRef anURL);\nCFStringRef CFURLCopyLastPathComponent(CFURLRef url);\nCFStringRef CFURLCopyNetLocation(CFURLRef anURL);\nCFStringRef CFURLCopyParameterString(CFURLRef anURL, CFStringRef charactersToLeaveEscaped);\nCFStringRef CFURLCopyPassword(CFURLRef anURL);\nCFStringRef CFURLCopyPath(CFURLRef anURL);\nCFStringRef CFURLCopyPathExtension(CFURLRef url);\nCFStringRef CFURLCopyQueryString(CFURLRef anURL, CFStringRef charactersToLeaveEscaped);\nCFStringRef CFURLCopyResourceSpecifier(CFURLRef anURL);\nCFStringRef CFURLCopyScheme(CFURLRef anURL);\nCFStringRef CFURLCopyUserName(CFURLRef anURL);\nCFStringRef CFURLCreateStringByReplacingPercentEscapes(CFAllocatorRef allocator, CFStringRef originalString, CFStringRef charactersToLeaveEscaped);\nCFStringRef CFURLCreateStringByReplacingPercentEscapesUsingEncoding(CFAllocatorRef allocator, CFStringRef origString, CFStringRef charsToLeaveEscaped, CFStringEncoding encoding);\nCFStringRef CFURLCreateStringByAddingPercentEscapes(CFAllocatorRef allocator, CFStringRef originalString, CFStringRef charactersToLeaveUnescaped, CFStringRef legalURLCharactersToBeEscaped, CFStringEncoding encoding);\nCFStringRef CFURLGetString(CFURLRef anURL);\nCFStringRef CFLocaleCopyDisplayNameForPropertyValue(CFLocaleRef displayLocale, CFLocaleKey key, CFStringRef value);\nCFStringRef CFUserNotificationGetResponseValue(CFUserNotificationRef userNotification, CFStringRef key, CFIndex idx);\n\nCFStringRef _CFGetProductName(void);\n\nCFStringTokenizerTokenType CFStringTokenizerAdvanceToNextToken(CFStringTokenizerRef tokenizer);\nCFStringTokenizerTokenType CFStringTokenizerGoToTokenAtIndex(CFStringTokenizerRef tokenizer, CFIndex index);\n\nCFAttributedStringRef CFAttributedStringCreate(CFAllocatorRef alloc, CFStringRef str, CFDictionaryRef attributes);\nCFAttributedStringRef CFAttributedStringCreateCopy(CFAllocatorRef alloc, CFAttributedStringRef aStr);\nCFAttributedStringRef CFAttributedStringCreateWithSubstring(CFAllocatorRef alloc, CFAttributedStringRef aStr, CFRange range);\n\nCFMutableAttributedStringRef CFAttributedStringCreateMutableCopy(CFAllocatorRef alloc, CFIndex maxLength, CFAttributedStringRef aStr);\n\nCFBurstTrieRef CFBurstTrieCreateFromMapBytes(char *mapBase);\n\nCFBurstTrieCursorRef CFBurstTrieCursorCreateByCopy(CFBurstTrieCursorRef cursor);\nCFBurstTrieCursorRef CFBurstTrieCreateCursorForBytes(CFBurstTrieRef trie, const UInt8 *bytes, CFIndex length);\n\nCFBundleRef CFBundleCreate(CFAllocatorRef allocator, CFURLRef bundleURL);\nCFBundleRef CFBundleGetBundleWithIdentifier(CFStringRef bundleID);\nCFBundleRef CFBundleGetMainBundle(void);\n\nCFBundleRef _CFBundleCreateUnique(CFAllocatorRef allocator, CFURLRef bundleURL);\nCFBundleRef _CFBundleCreateIfMightBeBundle(CFAllocatorRef allocator, CFURLRef url);\nCFBundleRef _CFBundleCreateWithExecutableURLIfMightBeBundle(CFAllocatorRef allocator, CFURLRef url);\nCFBundleRef _CFBundleGetMainBundleIfLooksLikeBundle(void);\n\nCFURLRef CFBundleCopyBundleURL(CFBundleRef bundle);\nCFURLRef CFBundleCopyResourcesDirectoryURL(CFBundleRef bundle);\nCFURLRef CFBundleCopyResourceURL(CFBundleRef bundle, CFStringRef resourceName, CFStringRef resourceType, CFStringRef subDirName);\nCFURLRef CFBundleCopyResourceURLInDirectory(CFURLRef bundleURL, CFStringRef resourceName, CFStringRef resourceType, CFStringRef subDirName);\nCFURLRef CFBundleCopyResourceURLForLocalization(CFBundleRef bundle, CFStringRef resourceName, CFStringRef resourceType, CFStringRef subDirName, CFStringRef localizationName);\nCFURLRef CFURLGetBaseURL(CFURLRef anURL);\n\nCFMessagePortRef CFMessagePortCreateLocal(CFAllocatorRef allocator, CFStringRef name, CFMessagePortCallBack callout, CFMessagePortContext *context, Boolean *shouldFreeInfo);\nCFMessagePortRef CFMessagePortCreateRemote(CFAllocatorRef allocator, CFStringRef name);\n\nCFMachPortRef CFMachPortCreate(CFAllocatorRef allocator, CFMachPortCallBack callout, CFMachPortContext *context, Boolean *shouldFreeInfo);\nCFMachPortRef CFMachPortCreateWithPort(CFAllocatorRef allocator, mach_port_t portNum, CFMachPortCallBack callout, CFMachPortContext *context, Boolean *shouldFreeInfo);\n\nCFIndex CFGetRetainCount(CFTypeRef cf);\nCFIndex CFAttributedStringGetLength(CFAttributedStringRef aStr);\nCFIndex CFArrayGetFirstIndexOfValue(CFArrayRef theArray, CFRange range, const void *value);\nCFIndex CFArrayGetLastIndexOfValue(CFArrayRef theArray, CFRange range, const void *value);\nCFIndex CFArrayGetCountOfValue(CFArrayRef theArray, CFRange range, const void *value);\nCFIndex CFArrayGetCount(CFArrayRef theArray);\nCFIndex CFArrayBSearchValues(CFArrayRef theArray, CFRange range, const void *value, CFComparatorFunction comparator, void *context);\nCFIndex CFPreferencesGetAppIntegerValue(CFStringRef key, CFStringRef applicationID, Boolean *keyExistsAndHasValidFormat);\nCFIndex CFDataGetLength(CFDataRef theData);\nCFIndex CFDictionaryGetCount(CFDictionaryRef theDict);\nCFIndex CFDictionaryGetCountOfKey(CFDictionaryRef theDict, const void *key);\nCFIndex CFDictionaryGetCountOfValue(CFDictionaryRef theDict, const void *value);\nCFIndex CFStringFindAndReplace(CFMutableStringRef theString, CFStringRef stringToFind, CFStringRef replacementString, CFRange rangeToSearch, CFStringCompareFlags compareOptions);\nCFIndex CFStringGetLength(CFStringRef theString);\nCFIndex CFStringGetBytes(CFStringRef theString, CFRange range, CFStringEncoding encoding, UInt8 lossByte, Boolean isExternalRepresentation, UInt8 *buffer, CFIndex maxBufLen, CFIndex *usedBufLen);\nCFIndex CFStringGetMaximumSizeForEncoding(CFIndex length, CFStringEncoding encoding);\nCFIndex CFStringGetMaximumSizeOfFileSystemRepresentation(CFStringRef string);\nCFIndex CFNumberGetByteSize(CFNumberRef number);\nCFIndex CFSetGetCount(CFSetRef theSet);\nCFIndex CFReadStreamRead(CFReadStreamRef stream, UInt8 *buffer, CFIndex bufferLength);\nCFIndex CFWriteStreamWrite(CFWriteStreamRef stream, const UInt8 *buffer, CFIndex bufferLength);\nCFIndex CFErrorGetCode(CFErrorRef err);\nCFIndex CFAllocatorGetPreferredSizeForSize(CFAllocatorRef allocator, CFIndex size, CFOptionFlags hint);\nCFIndex CFPropertyListWrite(CFPropertyListRef propertyList, CFWriteStreamRef stream, CFPropertyListFormat format, CFOptionFlags options, CFErrorRef *error);\nCFIndex CFPropertyListWriteToStream(CFPropertyListRef propertyList, CFWriteStreamRef stream, CFPropertyListFormat format, CFStringRef *errorString);\nCFIndex CFURLGetBytes(CFURLRef url, UInt8 *buffer, CFIndex bufferLength);\nCFIndex CFRunLoopSourceGetOrder(CFRunLoopSourceRef source);\nCFIndex CFRunLoopTimerGetOrder(CFRunLoopTimerRef timer);\n"
  },
  {
    "path": "CoreFoundation/Types.h",
    "content": "#ifndef COREFOUNDATION_H_\n#define COREFOUNDATION_H_\n\n#import \"../BaseTypes.h\"\n\n#ifdef __EA64__\n\nstruct __CFString {\n    void *isa;\n    int64 info;\n    char *data;\n    int64 length;\n};\n\n#else\n\nstruct __CFString {\n    void *isa;\n    int32 info;\n    char *data;\n    int32 length;\n};\n\n#endif\n\ntypedef struct __CFError *CFErrorRef;\ntypedef const struct __CFAllocator *CFAllocatorRef;\ntypedef struct __CFArray *CFArrayRef;\ntypedef struct __CFArray *CFMutableArrayRef;\ntypedef const __CFString *CFStringRef;\ntypedef const __CFString *CFMutableStringRef;\ntypedef const struct __CFDictionary *CFDictionaryRef;\ntypedef struct __CFDictionary *CFMutableDictionaryRef;\ntypedef struct _CFBurstTrie *CFBurstTrieRef;\ntypedef struct _CFBurstTrieCursor *CFBurstTrieCursorRef;\ntypedef struct __CFBundle *CFBundleRef;\ntypedef struct __CFLocale *CFLocaleRef;\ntypedef struct __CFBoolean *CFBooleanRef;\ntypedef struct __CFNumber *CFNumberRef;\ntypedef struct __CFDate *CFDateRef;\ntypedef struct __CFData *CFDataRef;\ntypedef struct __CFData *CFMutableDataRef;\ntypedef struct __CFURL *CFURLRef;\ntypedef struct __CFRunLoop *CFRunLoopRef;\ntypedef struct __CFRunLoopSource *CFRunLoopSourceRef;\ntypedef struct __CFRunLoopObserver *CFRunLoopObserverRef;\ntypedef struct __CFRunLoopTimer *CFRunLoopTimerRef;\ntypedef struct __CFAttributedString *CFAttributedStringRef;\ntypedef struct __CFMutableAttributedString *CFMutableAttributedStringRef;\ntypedef struct __CFNotificationCenter *CFNotificationCenterRef;\ntypedef struct __CFUserNotification *CFUserNotificationRef;\ntypedef struct __CFCharacterSet *CFCharacterSetRef;\ntypedef struct __CFCharacterSet *CFMutableCharacterSetRef;\ntypedef struct __CFSet *CFSetRef;\ntypedef struct __CFSet *CFMutableSetRef;\ntypedef struct __CFReadStream *CFReadStreamRef;\ntypedef struct __CFWriteStream *CFWriteStreamRef;\ntypedef struct __CFUUID *CFUUIDRef;\ntypedef const struct __CFBag *CFBagRef;\ntypedef struct __CFBag *CFMutableBagRef;\ntypedef struct __CFStringTokenizer *CFStringTokenizerRef;\ntypedef struct __CFMachPort *CFMachPortRef;\ntypedef struct __CFMessagePort *CFMessagePortRef;\ntypedef struct __CFMessagePortContext CFMessagePortContext;\ntypedef struct __CFHTTPMessage *CFHTTPMessageRef;\ntypedef struct __CFBitVector *CFBitVectorRef;\n\ntypedef const void *CFTypeRef;\ntypedef const unsigned char *ConstStr255Param;\n\ntypedef CFTypeRef CFPropertyListRef;\n\ntypedef int CFBundleRefNum;\n\n#ifdef __EA64__\ntypedef long CFIndex;\n#else\ntypedef int32 CFIndex;\n#endif\n\ntypedef unsigned long CFTypeID;\ntypedef unsigned long CFOptionFlags;\ntypedef unsigned long CFHashCode;\n\ntypedef SInt16 LangCode;\ntypedef SInt16 RegionCode;\ntypedef SInt16 ScriptCode;\n\ntypedef double CFTimeInterval;\n\ntypedef CFOptionFlags CFURLBookmarkResolutionOptions;\n\ntypedef CFIndex CFSystemVersion;\n\nPS_ENUM(CFOptionFlags, CFDataSearchFlags) {\n    kCFDataSearchBackwards = 1UL << 0,\n    kCFDataSearchAnchored = 1UL << 1\n};\n\nPS_ENUM(CFOptionFlags, CFBurstTrieOpts) {\n    kCFBurstTrieReadOnly            = 1<<1,\n    kCFBurstTrieBitmapCompression   = 1<<2,\n    kCFBurstTriePrefixCompression   = 1<<3,\n    kCFBurstTrieSortByKey = 1 << 4\n};\n\nPS_ENUM(CFIndex, CFNotificationSuspensionBehavior) {\n    CFNotificationSuspensionBehaviorDrop = 1,\n    CFNotificationSuspensionBehaviorCoalesce = 2,\n    CFNotificationSuspensionBehaviorHold = 3,\n    CFNotificationSuspensionBehaviorDeliverImmediately = 4\n};\n\nPS_ENUM(CFIndex, CFStreamStatus) {\n    kCFStreamStatusNotOpen = 0,\n    kCFStreamStatusOpening,\n    kCFStreamStatusOpen,\n    kCFStreamStatusReading,\n    kCFStreamStatusWriting,\n    kCFStreamStatusAtEnd,\n    kCFStreamStatusClosed,\n    kCFStreamStatusError\n};\n\nPS_ENUM(CFIndex, CFStringNormalizationForm) {\n    kCFStringNormalizationFormD = 0,\n    kCFStringNormalizationFormKD,\n    kCFStringNormalizationFormC,\n    kCFStringNormalizationFormKC\n};\n\nPS_ENUM(CFIndex, CFStringCharacterClusterType) {\n    kCFStringComposedCharacterCluster = 2,\n    kCFStringCursorMovementCluster = 3,\n    kCFStringBackwardDeletionCluster = 4\n};\n\nPS_ENUM(CFIndex, CFURLComponentType) {\n    kCFURLComponentScheme = 1,\n    kCFURLComponentNetLocation = 2,\n    kCFURLComponentPath = 3,\n    kCFURLComponentResourceSpecifier = 4,\n    kCFURLComponentUser = 5,\n    kCFURLComponentPassword = 6,\n    kCFURLComponentUserInfo = 7,\n    kCFURLComponentHost = 8,\n    kCFURLComponentPort = 9,\n    kCFURLComponentParameterString = 10,\n    kCFURLComponentQuery = 11,\n    kCFURLComponentFragment = 12\n};\n\nPS_ENUM(CFIndex, CFURLPathStyle) {\n    kCFURLPOSIXPathStyle = 0,\n    kCFURLHFSPathStyle,\n    kCFURLWindowsPathStyle\n};\n\nPS_ENUM(SInt32, CFRunLoopRunResult) {\n    kCFRunLoopRunFinished = 1,\n    kCFRunLoopRunStopped = 2,\n    kCFRunLoopRunTimedOut = 3,\n    kCFRunLoopRunHandledSource = 4\n};\n\nPS_ENUM(CFIndex, CFComparisonResult) { kCFCompareLessThan = -1, kCFCompareEqualTo = 0, kCFCompareGreaterThan = 1 };\n\nPS_ENUM(CFIndex, CFSearchPathDirectory) {\n    kCFApplicationDirectory = 1,\n    kCFDemoApplicationDirectory,\n    kCFDeveloperApplicationDirectory,\n    kCFAdminApplicationDirectory,\n    kCFLibraryDirectory,\n    kCFDeveloperDirectory,\n    kCFUserDirectory,\n    kCFDocumentationDirectory,\n    kCFDocumentDirectory,\n    kCFAllApplicationsDirectory = 100,\n    kCFAllLibrariesDirectory = 101\n};\n\nPS_ENUM(CFIndex, CFPropertyListFormat) {\n    kCFPropertyListOpenStepFormat = 1,\n    kCFPropertyListXMLFormat_v1_0 = 100,\n    kCFPropertyListBinaryFormat_v1_0 = 200\n};\n\nPS_ENUM(CFOptionFlags, CFSearchPathDomainMask) {\n    kCFUserDomainMask = 1,\n    kCFLocalDomainMask = 2,\n    kCFNetworkDomainMask = 4,\n    kCFSystemDomainMask = 8,\n    kCFAllDomainsMask = 0x0ffff\n};\n\nPS_ENUM(CFOptionFlags, CFRunLoopActivity) {\n    kCFRunLoopEntry = (1UL << 0),\n    kCFRunLoopBeforeTimers = (1UL << 1),\n    kCFRunLoopBeforeSources = (1UL << 2),\n    kCFRunLoopBeforeWaiting = (1UL << 5),\n    kCFRunLoopAfterWaiting = (1UL << 6),\n    kCFRunLoopExit = (1UL << 7),\n    kCFRunLoopAllActivities = 0x0FFFFFFFU\n};\n\ntypedef CFStringRef CFNotificationName;\ntypedef CFStringRef CFErrorDomain;\ntypedef CFStringRef CFRunLoopMode;\ntypedef CFStringRef CFStreamPropertyKey;\ntypedef CFStringRef CFLocaleKey;\ntypedef CFStringRef CFLocaleIdentifier;\n\ntypedef CFComparisonResult (*CFComparatorFunction)(const void *val1, const void *val2, void *context);\n\ntypedef const void *(*CFArrayRetainCallBack)(CFAllocatorRef allocator, const void *value);\ntypedef void (*CFArrayApplierFunction)(const void *value, void *context);\ntypedef void (*CFArrayReleaseCallBack)(CFAllocatorRef allocator, const void *value);\ntypedef void (*CFNotificationCallback)(CFNotificationCenterRef center, void *observer, CFNotificationName name, const void *object,\n                                       CFDictionaryRef userInfo);\n\ntypedef CFStringRef (*CFArrayCopyDescriptionCallBack)(const void *value);\n\ntypedef CFTimeInterval CFAbsoluteTime;\n\ntypedef Boolean (*CFArrayEqualCallBack)(const void *value1, const void *value2);\n\ntypedef struct CFArrayCallBacks {\n    CFIndex version;\n    CFArrayRetainCallBack retain;\n    CFArrayReleaseCallBack release;\n    CFArrayCopyDescriptionCallBack copyDescription;\n    CFArrayEqualCallBack equal;\n} CFArrayCallBacks;\n\ntypedef const void *(*CFDictionaryRetainCallBack)(CFAllocatorRef allocator, const void *value);\ntypedef void (*CFDictionaryApplierFunction)(const void *key, const void *value, void *context);\ntypedef void (*CFDictionaryReleaseCallBack)(CFAllocatorRef allocator, const void *value);\ntypedef CFStringRef (*CFDictionaryCopyDescriptionCallBack)(const void *value);\ntypedef Boolean (*CFDictionaryEqualCallBack)(const void *value1, const void *value2);\ntypedef CFHashCode (*CFDictionaryHashCallBack)(const void *value);\n\ntypedef struct CFDictionaryKeyCallBacks {\n    CFIndex version;\n    CFDictionaryRetainCallBack retain;\n    CFDictionaryReleaseCallBack release;\n    CFDictionaryCopyDescriptionCallBack copyDescription;\n    CFDictionaryEqualCallBack equal;\n    CFDictionaryHashCallBack hash;\n} CFDictionaryKeyCallBacks;\n\nextern const CFDictionaryKeyCallBacks kCFTypeDictionaryKeyCallBacks;\nextern const CFDictionaryKeyCallBacks kCFCopyStringDictionaryKeyCallBacks;\n\ntypedef struct CFDictionaryValueCallBacks {\n    CFIndex version;\n    CFDictionaryRetainCallBack retain;\n    CFDictionaryReleaseCallBack release;\n    CFDictionaryCopyDescriptionCallBack copyDescription;\n    CFDictionaryEqualCallBack equal;\n} CFDictionaryValueCallBacks;\n\nextern const CFDictionaryValueCallBacks kCFTypeDictionaryValueCallBacks;\n\ntypedef CFDataRef (*CFMessagePortCallBack)(CFMessagePortRef local, SInt32 msgid, CFDataRef data, void *info);\n\ntypedef const void *(*CFSetRetainCallBack)(CFAllocatorRef allocator, const void *value);\ntypedef void (*CFSetReleaseCallBack)(CFAllocatorRef allocator, const void *value);\ntypedef void (*CFSetApplierFunction)(const void *value, void *context);\ntypedef CFStringRef (*CFSetCopyDescriptionCallBack)(const void *value);\ntypedef Boolean (*CFSetEqualCallBack)(const void *value1, const void *value2);\ntypedef CFHashCode (*CFSetHashCallBack)(const void *value);\n\ntypedef void *(*CFAllocatorAllocateCallBack)(CFIndex allocSize, CFOptionFlags hint, void *info);\ntypedef void (*CFAllocatorDeallocateCallBack)(void *ptr, void *info);\ntypedef void *(*CFAllocatorReallocateCallBack)(void *ptr, CFIndex newsize, CFOptionFlags hint, void *info);\ntypedef CFIndex (*CFAllocatorPreferredSizeCallBack)(CFIndex size, CFOptionFlags hint, void *info);\ntypedef const void *(*CFAllocatorRetainCallBack)(const void *info);\ntypedef void (*CFAllocatorReleaseCallBack)(const void *info);\ntypedef CFStringRef (*CFAllocatorCopyDescriptionCallBack)(const void *info);\n\ntypedef struct CFAllocatorContext {\n    CFIndex version;\n    void *info;\n    CFAllocatorRetainCallBack retain;\n    CFAllocatorReleaseCallBack release;\n    CFAllocatorCopyDescriptionCallBack copyDescription;\n    CFAllocatorAllocateCallBack allocate;\n    CFAllocatorReallocateCallBack reallocate;\n    CFAllocatorDeallocateCallBack deallocate;\n    CFAllocatorPreferredSizeCallBack preferredSize;\n} CFAllocatorContext;\n\ntypedef struct CFSetCallBacks {\n    CFIndex version;\n    CFSetRetainCallBack retain;\n    CFSetReleaseCallBack release;\n    CFSetCopyDescriptionCallBack copyDescription;\n    CFSetEqualCallBack equal;\n    CFSetHashCallBack hash;\n} CFSetCallBacks;\n\ntypedef struct CFRange {\n    CFIndex location;\n    CFIndex length;\n} CFRange;\n\ntypedef struct CFCharacterSetInlineBuffer {\n    CFCharacterSetRef cset;\n    uint32_t flags;\n    uint32_t rangeStart;\n    uint32_t rangeLimit;\n    const uint8_t *bitmap;\n} CFCharacterSetInlineBuffer;\n\ntypedef struct CFStringInlineBuffer {\n    UniChar buffer[64];\n    CFStringRef theString;\n    const UniChar *directBuffer;\n    CFRange rangeToBuffer;\n    CFIndex bufferedRangeStart;\n    CFIndex bufferedRangeEnd;\n} CFStringInlineBuffer;\n\nPS_ENUM(CFIndex, CFNumberType) {\n    kCFNumberSInt8Type = 1,\n    kCFNumberSInt16Type = 2,\n    kCFNumberSInt32Type = 3,\n    kCFNumberSInt64Type = 4,\n    kCFNumberFloat32Type = 5,\n    kCFNumberFloat64Type = 6,\n    kCFNumberCharType = 7,\n    kCFNumberShortType = 8,\n    kCFNumberIntType = 9,\n    kCFNumberLongType = 10,\n    kCFNumberLongLongType = 11,\n    kCFNumberFloatType = 12,\n    kCFNumberDoubleType = 13,\n    kCFNumberCFIndexType = 14,\n    kCFNumberNSIntegerType = 15,\n    kCFNumberCGFloatType = 16,\n    kCFNumberMaxType = 16\n};\n\nPS_ENUM(UInt32, CFStringEncoding) {\n    kCFStringEncodingMacRoman = 0,\n    kCFStringEncodingWindowsLatin1 = 0x0500,\n    kCFStringEncodingISOLatin1 = 0x0201,\n    kCFStringEncodingNextStepLatin = 0x0B01,\n    kCFStringEncodingASCII = 0x0600,\n    kCFStringEncodingUnicode = 0x0100,\n    kCFStringEncodingUTF8 = 0x08000100,\n    kCFStringEncodingNonLossyASCII = 0x0BFF,\n    kCFStringEncodingUTF16 = 0x0100,\n    kCFStringEncodingUTF16BE = 0x10000100,\n    kCFStringEncodingUTF16LE = 0x14000100,\n    kCFStringEncodingUTF32 = 0x0c000100,\n    kCFStringEncodingUTF32BE = 0x18000100,\n    kCFStringEncodingUTF32LE = 0x1c000100\n};\n\nPS_ENUM(CFOptionFlags, CFStringCompareFlags) {\n    kCFCompareCaseInsensitive = 1,\n    kCFCompareBackwards = 4,\n    kCFCompareAnchored = 8,\n    kCFCompareNonliteral = 16,\n    kCFCompareLocalized = 32,\n    kCFCompareNumerically = 64,\n    kCFCompareDiacriticInsensitive = 128,\n    kCFCompareWidthInsensitive = 256,\n    kCFCompareForcedOrdering = 512\n};\n\nPS_ENUM(CFOptionFlags, CFStringTokenizerTokenType) {\n    kCFStringTokenizerTokenNone = 0,\n    kCFStringTokenizerTokenNormal = 1UL << 0,\n    kCFStringTokenizerTokenHasSubTokensMask = 1UL << 1,\n    kCFStringTokenizerTokenHasDerivedSubTokensMask = 1UL << 2,\n    kCFStringTokenizerTokenHasHasNumbersMask = 1UL << 3,\n    kCFStringTokenizerTokenHasNonLettersMask = 1UL << 4,\n    kCFStringTokenizerTokenIsCJWordMask = 1UL << 5\n};\n\nPS_ENUM(CFIndex, CFCharacterSetPredefinedSet) {\n    kCFCharacterSetControl = 1,\n    kCFCharacterSetWhitespace,\n    kCFCharacterSetWhitespaceAndNewline,\n    kCFCharacterSetDecimalDigit,\n    kCFCharacterSetLetter,\n    kCFCharacterSetLowercaseLetter,\n    kCFCharacterSetUppercaseLetter,\n    kCFCharacterSetNonBase,\n    kCFCharacterSetDecomposable,\n    kCFCharacterSetAlphaNumeric,\n    kCFCharacterSetPunctuation,\n    kCFCharacterSetCapitalizedLetter = 13,\n    kCFCharacterSetSymbol = 14,\n    kCFCharacterSetNewline = 15,\n    kCFCharacterSetIllegal = 12\n};\n\ntypedef enum CFStreamEventType {\n    kCFStreamEventNone = 0,\n    kCFStreamEventOpenCompleted = (1 << 0),\n    kCFStreamEventHasBytesAvailable = (1 << 1),\n    kCFStreamEventCanAcceptBytes = (1 << 2),\n    kCFStreamEventErrorOccurred = (1 << 3),\n    kCFStreamEventEndEncountered = (1 << 4)\n} CFStreamEventType;\n\ntypedef struct __CFRuntimeClass {\n    CFIndex version;\n    const char *className;\n    void (*init)(CFTypeRef cf);\n    CFTypeRef (*copy)(CFAllocatorRef allocator, CFTypeRef cf);\n    void (*finalize)(CFTypeRef cf);\n    Boolean (*equal)(CFTypeRef cf1, CFTypeRef cf2);\n    CFHashCode (*hash)(CFTypeRef cf);\n    CFStringRef (*copyFormattingDesc)(CFTypeRef cf, CFDictionaryRef formatOptions);\n    CFStringRef (*copyDebugDesc)(CFTypeRef cf);\n    void (*reclaim)(CFTypeRef cf);\n    uint32_t (*refcount)(intptr_t op, CFTypeRef cf);\n    uintptr_t requiredAlignment;\n} CFRuntimeClass;\n\ntypedef struct CFUUIDBytes {\n    UInt8 byte0;\n    UInt8 byte1;\n    UInt8 byte2;\n    UInt8 byte3;\n    UInt8 byte4;\n    UInt8 byte5;\n    UInt8 byte6;\n    UInt8 byte7;\n    UInt8 byte8;\n    UInt8 byte9;\n    UInt8 byte10;\n    UInt8 byte11;\n    UInt8 byte12;\n    UInt8 byte13;\n    UInt8 byte14;\n    UInt8 byte15;\n} CFUUIDBytes;\n\nextern const CFAllocatorRef kCFAllocatorDefault;\nextern const CFAllocatorRef kCFAllocatorSystemDefault;\nextern const CFAllocatorRef kCFAllocatorMalloc;\nextern const CFAllocatorRef kCFAllocatorMallocZone;\nextern const CFAllocatorRef kCFAllocatorNull;\nextern const CFAllocatorRef kCFAllocatorUseContext;\n\nextern const CFArrayCallBacks kCFTypeArrayCallBacks;\n\nextern const CFBooleanRef kCFBooleanTrue;\nextern const CFBooleanRef kCFBooleanFalse;\n\nextern const CFRunLoopMode kCFRunLoopDefaultMode;\nextern const CFRunLoopMode kCFRunLoopCommonModes;\n\ntypedef void (*CFBurstTrieTraversalCallback)(void *context, const UInt8 *key, uint32_t keyLength, uint32_t payload, Boolean *stop);\n\ntypedef const void *(*CFBagRetainCallBack)(CFAllocatorRef allocator, const void *value);\ntypedef void (*CFBagReleaseCallBack)(CFAllocatorRef allocator, const void *value);\ntypedef CFStringRef (*CFBagCopyDescriptionCallBack)(const void *value);\ntypedef Boolean (*CFBagEqualCallBack)(const void *value1, const void *value2);\ntypedef CFHashCode (*CFBagHashCallBack)(const void *value);\n\ntypedef struct CFBagCallBacks {\n    CFIndex version;\n    CFBagRetainCallBack retain;\n    CFBagReleaseCallBack release;\n    CFBagCopyDescriptionCallBack copyDescription;\n    CFBagEqualCallBack equal;\n    CFBagHashCallBack hash;\n} CFBagCallBacks;\n\nextern const CFBagCallBacks kCFTypeBagCallBacks;\nextern const CFBagCallBacks kCFCopyStringBagCallBacks;\n\ntypedef void (*CFBagApplierFunction)(const void *value, void *context);\n\n#ifndef NULL\n#define NULL 0\n#endif\nstatic const CFBagCallBacks __kCFNullBagCallBacks = {0, NULL, NULL, NULL, NULL, NULL};\n\ntypedef struct __CFRuntimeBase {\n    uintptr_t _cfisa;\n    uint8_t _cfinfo[4];\n#ifdef __EA64__\n    uint32_t _rc;\n#endif\n} CFRuntimeBase;\n\ntypedef struct CFStreamClientContext {\n    CFIndex version;\n    void *info;\n    void *(*retain)(void *info);\n    void (*release)(void *info);\n    CFStringRef (*copyDescription)(void *info);\n} CFStreamClientContext;\n\ntypedef struct CFRunLoopSourceContext {\n    CFIndex version;\n    void *info;\n    const void *(*retain)(const void *info);\n    void (*release)(const void *info);\n    CFStringRef (*copyDescription)(const void *info);\n    Boolean (*equal)(const void *info1, const void *info2);\n    CFHashCode (*hash)(const void *info);\n    void (*schedule)(void *info, CFRunLoopRef rl, CFRunLoopMode mode);\n    void (*cancel)(void *info, CFRunLoopRef rl, CFRunLoopMode mode);\n    void (*perform)(void *info);\n} CFRunLoopSourceContext;\n\ntypedef struct CFRunLoopSourceContext1 {\n    CFIndex version;\n    void *info;\n    const void *(*retain)(const void *info);\n    void (*release)(const void *info);\n    CFStringRef (*copyDescription)(const void *info);\n    Boolean (*equal)(const void *info1, const void *info2);\n    CFHashCode (*hash)(const void *info);\n    mach_port_t (*getPort)(void *info);\n    void *(*perform)(void *msg, CFIndex size, CFAllocatorRef allocator, void *info);\n} CFRunLoopSourceContext1;\n\ntypedef struct CFRunLoopObserverContext {\n    CFIndex version;\n    void *info;\n    const void *(*retain)(const void *info);\n    void (*release)(const void *info);\n    CFStringRef (*copyDescription)(const void *info);\n} CFRunLoopObserverContext;\n\ntypedef void (*CFRunLoopObserverCallBack)(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info);\n\ntypedef struct CFRunLoopTimerContext {\n    CFIndex version;\n    void *info;\n    const void *(*retain)(const void *info);\n    void (*release)(const void *info);\n    CFStringRef (*copyDescription)(const void *info);\n} CFRunLoopTimerContext;\n\ntypedef struct {\n    CFIndex version;\n    void *info;\n    const void *(*retain)(const void *info);\n    void (*release)(const void *info);\n    CFStringRef (*copyDescription)(const void *info);\n} CFMachPortContext;\n\ntypedef void (*CFRunLoopTimerCallBack)(CFRunLoopTimerRef timer, void *info);\ntypedef void (*CFUserNotificationCallBack)(CFUserNotificationRef userNotification, CFOptionFlags responseFlags);\ntypedef void (*CFReadStreamClientCallBack)(CFReadStreamRef stream, CFStreamEventType type, void *clientCallBackInfo);\ntypedef void (*CFWriteStreamClientCallBack)(CFWriteStreamRef stream, CFStreamEventType type, void *clientCallBackInfo);\ntypedef void (*CFMachPortCallBack)(CFMachPortRef port, void *msg, CFIndex size, void *info);\ntypedef void (*CFMachPortInvalidationCallBack)(CFMachPortRef port, void *info);\n\n#define CFBagKeyCallBacks CFBagCallBacks\n#define CFBagValueCallBacks CFBagCallBacks\n\n#define CFHashRef CFBagRef\n#define CFMutableHashRef CFMutableBagRef\n#define CFHashKeyCallBacks CFBagCallBacks\n#define CFHashValueCallBacks CFBagCallBacks\n\n#endif\n"
  },
  {
    "path": "CoreGraphics/CoreGraphics.h",
    "content": "#import \"../CoreFoundation/Types.h\"\n#import \"../Foundation/Types.h\"\n#import \"../IOSurface/Types.h\"\n#import \"Types.h\"\n\nCFTypeID CGPathGetTypeID(void);\nCFTypeID CGImageGetTypeID(void);\nCFTypeID CGColorGetTypeID(void);\nCFTypeID CGColorSpaceGetTypeID(void);\nCFTypeID CGColorTransformGetTypeID(void);\nCFTypeID CGPatternGetTypeID(void);\nCFTypeID CGFontGetTypeID(void);\n\nCFTypeRef CGCFRetain(CFTypeRef cf);\nCFTypeRef CGTypeCreateInstance(CFTypeID typeID, CFIndex extraBytes);\nCFTypeRef CGCFDictionaryGetValueWithType(CFDictionaryRef theDict, const void *key, CFTypeID typeID);\n\nCFDataRef CGFontCopyTableForTag(CGFontRef font, uint32_t tag);\nCFDataRef CGColorSpaceCopyICCData(CGColorSpaceRef space);\n\nCFDictionaryRef CGFontCopyVariations(CGFontRef font);\nCFDictionaryRef CGRectCreateDictionaryRepresentation(CGRect rect);\nCFDictionaryRef CGSizeCreateDictionaryRepresentation(CGSize size);\nCFDictionaryRef CGPointCreateDictionaryRepresentation(CGPoint point);\nCFDictionaryRef CGImageSourceCopyProperties(CGImageSourceRef isrc, CFDictionaryRef options);\nCFDictionaryRef CGImageSourceCopyPropertiesAtIndex(CGImageSourceRef isrc, size_t index, CFDictionaryRef options);\n\nCFMutableDictionaryRef CGCFDictionaryCreate(void);\nCFMutableDictionaryRef CGCFDictionaryCreateCopy(CFDictionaryRef theDict);\n\nCFArrayRef CGCFDictionaryCopyKeys(CFDictionaryRef theDict, const CFArrayCallBacks *callBacks);\nCFArrayRef CGCFDictionaryCopyValues(CFDictionaryRef theDict, const CFArrayCallBacks *callBacks);\nCFArrayRef CGFontCreateFontsWithPath(CFStringRef path);\nCFArrayRef CGFontCopyTableTags(CGFontRef font);\nCFArrayRef CGFontCopyVariationAxes(CGFontRef font);\n\nCFPropertyListRef CGColorSpaceCopyPropertyList(CGColorSpaceRef space);\n\nCFStringRef CGFontCopyFullName(CGFontRef font);\nCFStringRef CGFontCopyFamilyName(CGFontRef font);\nCFStringRef CGFontCopyPostScriptName(CGFontRef font);\nCFStringRef CGFontCopyGlyphNameForGlyph(CGFontRef font, CGGlyph glyph);\nCFStringRef CGImageSourceGetType(CGImageSourceRef isrc); // ImageIO ?\nCFStringRef CGImageSourceGetTypeWithData(CFDataRef, CFStringRef, bool *); // ImageIO ?\nCFStringRef CGImageMetadataCopyStringValueWithPath(CGImageMetadataRef metadata, CGImageMetadataTagRef parent, CFStringRef path);\nCFStringRef CGColorSpaceGetName(CGColorSpaceRef space);\n\nCGRect CGPatternGetBounds(CGPatternRef pattern);\nCGRect CGContextGetPathBoundingBox(CGContextRef c);\nCGRect CGContextGetClipBoundingBox(CGContextRef c);\nCGRect CGPathGetBoundingBox(CGPathRef path);\nCGRect CGPathGetPathBoundingBox(CGPathRef path);\nCGRect CGFontGetFontBBox(CGFontRef font);\nCGRect CGRectInset(CGRect rect, CGFloat dx, CGFloat dy);\nCGRect CGRectUnion(CGRect rect1, CGRect rect2);\nCGRect CGRectApplyAffineTransform(CGRect rect, CGAffineTransform t);\nCGRect CGRectStandardize(CGRect rect);\nCGRect CGRectOffset(CGRect rect, CGFloat dx, CGFloat dy);\nCGRect CGRectIntegral(CGRect rect);\nCGRect CGRectIntersection(CGRect r1, CGRect r2);\n\nCGRect *CGSNextRect(CGSRegionEnumeratorRef enumerator);\n\nCGPoint CGPointApplyAffineTransform(CGPoint point, CGAffineTransform t);\nCGPoint CGContextGetPathCurrentPoint(CGContextRef context);\nCGPoint CGContextGetTextPosition(CGContextRef c);\nCGPoint CGPathGetCurrentPoint(CGPathRef path);\n\nCGSize CGSizeApplyAffineTransform(CGSize size, CGAffineTransform t);\nCGSize CGContextConvertSizeToUserSpace(CGContextRef c, CGSize size);\n\nCGFloat CGFontGetItalicAngle(CGFontRef font);\nCGFloat CGFontGetStemV(CGFontRef font);\nCGFloat CGRectGetWidth(CGRect rect);\nCGFloat CGRectGetHeight(CGRect rect);\nCGFloat CGRectGetMaxX(CGRect rect);\nCGFloat CGRectGetMidX(CGRect rect);\nCGFloat CGRectGetMinX(CGRect rect);\nCGFloat CGRectGetMaxY(CGRect rect);\nCGFloat CGRectGetMidY(CGRect rect);\nCGFloat CGRectGetMinY(CGRect rect);\nCGFloat CGColorGetAlpha(CGColorRef color);\nCGFloat CGContextGetAlpha(CGContextRef c);\nCGFloat CGContextGetLineWidth(CGContextRef c);\nCGFloat CGContextGetFontSize(CGContextRef c);\n\nCGBlendMode CGContextGetBlendMode(CGContextRef c);\n\nCGPathRef CGPathRetain(CGPathRef path);\nCGPathRef CGPathCreateWithEllipseInRect(CGRect rect, const CGAffineTransform *transform);\nCGPathRef CGPathCreateWithRect(CGRect rect, const CGAffineTransform *transform);\nCGPathRef CGPathCreateWithRoundedRect(CGRect rect, CGFloat cornerWidth, CGFloat cornerHeight, const CGAffineTransform *transform);\nCGPathRef CGPathCreateCopy(CGPathRef path);\nCGPathRef CGPathCreateCopyByTransformingPath(CGPathRef path, const CGAffineTransform *transform);\nCGPathRef CGPathCreateCopyByDashingPath(CGPathRef path, const CGAffineTransform *transform, CGFloat phase, const CGFloat *lengths, size_t count);\nCGPathRef CGPathCreateCopyByStrokingPath(CGPathRef path, const CGAffineTransform *transform, CGFloat lineWidth, CGLineCap lineCap, CGLineJoin lineJoin, CGFloat miterLimit);\nCGPathRef CGContextCopyPath(CGContextRef c);\n\nCGMutablePathRef CGPathCreateMutable(void);\nCGMutablePathRef CGPathCreateMutableCopy(CGPathRef path);\nCGMutablePathRef CGPathCreateMutableCopyByTransformingPath(CGPathRef path, const CGAffineTransform *transform);\n\nCGImageRef CGImageCreate(size_t width, size_t height, size_t bitsPerComponent, size_t bitsPerPixel, size_t bytesPerRow, CGColorSpaceRef space, CGBitmapInfo bitmapInfo, CGDataProviderRef provider, const CGFloat *decode, bool shouldInterpolate, CGColorRenderingIntent intent);\nCGImageRef CGImageCreateWithPNGDataProvider(CGDataProviderRef source, const CGFloat *decode, bool shouldInterpolate, CGColorRenderingIntent intent);\nCGImageRef CGImageCreateWithJPEGDataProvider(CGDataProviderRef source, const CGFloat *decode, bool shouldInterpolate, CGColorRenderingIntent intent);\nCGImageRef CGImageCreateWithImageInRect(CGImageRef image, CGRect rect);\nCGImageRef CGImageCreateWithMask(CGImageRef image, CGImageRef mask);\nCGImageRef CGImageCreateFromIOSurface(IOSurfaceRef surface, CFDictionaryRef options);\nCGImageRef CGImageCreateCopy(CGImageRef image);\nCGImageRef CGImageMaskCreate(size_t width, size_t height, size_t bitsPerComponent, size_t bitsPerPixel, size_t bytesPerRow, CGDataProviderRef provider, const CGFloat *decode, bool shouldInterpolate);\nCGImageRef CGImageRetain(CGImageRef image);\nCGImageRef CGImageSourceCreateImageAtIndex(CGImageSourceRef isrc, size_t index, CFDictionaryRef options);\nCGImageRef CGImageSourceCreateThumbnailAtIndex(CGImageSourceRef isrc, size_t index, CFDictionaryRef options);\nCGImageRef CGPatternGetImage(CGPatternRef pattern);\nCGImageRef CGBitmapContextCreateImage(CGContextRef context);\nCGImageRef CGIOSurfaceContextCreateImage(CGContextRef);\nCGImageRef CGIOSurfaceContextCreateImageReference(CGContextRef);\n\nCGImageMetadataRef CGImageSourceCopyMetadataAtIndex(CGImageSourceRef isrc, size_t index, CFDictionaryRef options);\n\nCGImageMetadataTagRef CGImageMetadataTagCreate(CFStringRef xmlns, CFStringRef prefix, CFStringRef name, CGImageMetadataType type, CFTypeRef value);\n\nCGMutableImageMetadataRef CGImageMetadataCreateMutable(void);\n\nCGImageSourceRef CGImageSourceCreateWithData(CFDataRef data, CFDictionaryRef options);\nCGImageSourceRef CGImageSourceCreateWithDataProvider(CGDataProviderRef provider, CFDictionaryRef options);\nCGImageSourceRef CGImageSourceCreateWithURL(CFURLRef url, CFDictionaryRef options);\nCGImageSourceRef CGImageSourceCreateWithFile(CFStringRef path, CFDictionaryRef options);\nCGImageSourceRef CGImageSourceCreateIncremental(CFDictionaryRef options);\n\nCGImageDestinationRef CGImageDestinationCreateWithData(CFMutableDataRef data, CFStringRef type, size_t count, CFDictionaryRef options);\nCGImageDestinationRef CGImageDestinationCreateWithURL(CFURLRef url, CFStringRef type, size_t count, CFDictionaryRef options);\n\nCGImageProviderRef CGImageGetImageProvider(CGImageRef image);\n\nCGFontRef CGFontRetain(CGFontRef font);\nCGFontRef CGFontCreateWithFontName(CFStringRef name);\nCGFontRef CGFontCreateWithDataProvider(CGDataProviderRef provider);\nCGFontRef CGFontCreateCopyWithVariations(CGFontRef font, CFDictionaryRef variations);\n\nCGFontRef CGFontCreateWithName(const char *name);\nCGFontRef CGFontCreateMatchingFont(const char *, const char *, int, bool, CGFloat);\n\nCFMutableArrayRef CGFontCreateFontsWithPath(CFStringRef path);\nCFMutableArrayRef CGCFArrayCreate(void);\n\nCGContextRef CGBitmapContextCreate(void *data, size_t width, size_t height, size_t bitsPerComponent, size_t bytesPerRow, CGColorSpaceRef space, uint32_t bitmapInfo);\nCGContextRef CGContextRetain(CGContextRef c);\nCGContextRef CGIOSurfaceContextCreate(IOSurfaceRef, size_t, size_t, size_t, size_t, CGColorSpaceRef, CGBitmapInfo);\n\nCGColorRef CGColorRetain(CGColorRef color);\nCGColorRef CGColorGetConstantColor(CFStringRef colorName);\nCGColorRef CGColorCreate(CGColorSpaceRef space, const CGFloat *components);\nCGColorRef CGColorCreateCopy(CGColorRef color);\nCGColorRef CGColorCreateCopyWithAlpha(CGColorRef color, CGFloat alpha);\nCGColorRef CGColorCreateSRGB(CGFloat red, CGFloat green, CGFloat blue, CGFloat alpha);\nCGColorRef CGColorCreateGenericGray(CGFloat gray, CGFloat alpha);\nCGColorRef CGColorCreateGenericRGB(CGFloat red, CGFloat green, CGFloat blue, CGFloat alpha);\nCGColorRef CGColorCreateGenericCMYK(CGFloat cyan, CGFloat magenta, CGFloat yellow, CGFloat black, CGFloat alpha);\nCGColorRef CGColorCreateWithPattern(CGColorSpaceRef space, CGPatternRef pattern, const CGFloat *components);\nCGColorRef CGColorCreateCopyByMatchingToColorSpace(CGColorSpaceRef, CGColorRenderingIntent intent, CGColorRef color, CFDictionaryRef options);\nCGColorRef CGColorTransformConvertColor(CGColorTransformRef, CGColorRef, CGColorRenderingIntent);\nCGColorRef CGContextGetFillColorAsColor(CGContextRef);\n\nCGColorSpaceRef CGImageGetColorSpace(CGImageRef image);\nCGColorSpaceRef CGGradientGetColorSpace(CGGradientRef gradient);\nCGColorSpaceRef CGColorGetColorSpace(CGColorRef color);\nCGColorSpaceRef CGColorSpaceRetain(CGColorSpaceRef space);\nCGColorSpaceRef CGColorSpaceCreateWithName(CFStringRef name);\nCGColorSpaceRef CGColorSpaceCreateDeviceRGB(void);\nCGColorSpaceRef CGColorSpaceCreateDeviceCMYK(void);\nCGColorSpaceRef CGColorSpaceCreateDeviceGray(void);\nCGColorSpaceRef CGColorSpaceCreateLab(const CGFloat *whitePoint, const CGFloat *blackPoint, const CGFloat *range);\nCGColorSpaceRef CGColorSpaceCreatePattern(CGColorSpaceRef baseSpace);\nCGColorSpaceRef CGColorSpaceCreateWithPropertyList(CFPropertyListRef plist);\nCGColorSpaceRef CGColorSpaceCreateWithICCData(CFTypeRef data);\nCGColorSpaceRef CGColorSpaceCreateCalibratedRGB(const CGFloat *whitePoint, const CGFloat *blackPoint, const CGFloat *gamma, const CGFloat *matrix);\nCGColorSpaceRef CGColorSpaceGetBaseColorSpace(CGColorSpaceRef space);\nCGColorSpaceRef CGIOSurfaceContextGetColorSpace(CGContextRef context);\nCGColorSpaceRef CGBitmapContextGetColorSpace(CGContextRef context);\n\nCGColorSpaceModel CGColorSpaceGetModel(CGColorSpaceRef space);\n\nCGColorTransformRef CGColorTransformCreate(CGColorSpaceRef, CFDictionaryRef attributes);\nCGColorTransformRef CGColorTransformRetain(CGColorTransformRef colorTransform);\n\nCGColorRenderingIntent CGImageGetRenderingIntent(CGImageRef image);\n\nCGPatternRef CGPatternRetain(CGPatternRef pattern);\nCGPatternRef CGPatternCreate(void *info, CGRect bounds, CGAffineTransform matrix, CGFloat xStep, CGFloat yStep, CGPatternTiling tiling, bool isColored, const CGPatternCallbacks *callbacks);\nCGPatternRef CGPatternCreateWithImage2(CGImageRef, CGAffineTransform, CGPatternTiling);\nCGPatternRef CGColorGetPattern(CGColorRef color);\n\nCGGradientRef CGGradientCreateWithColors(CGColorSpaceRef space, CFArrayRef colors, const CGFloat *locations);\nCGGradientRef CGGradientCreateWithColorComponents(CGColorSpaceRef space, const CGFloat *components, const CGFloat *locations, size_t count);\n\nCGImageAlphaInfo CGImageGetAlphaInfo(CGImageRef image);\nCGImageAlphaInfo CGBitmapContextGetAlphaInfo(CGContextRef context);\n\nCGBitmapInfo CGImageGetBitmapInfo(CGImageRef image);\nCGBitmapInfo CGBitmapContextGetBitmapInfo(CGContextRef context);\n\nCGDataProviderRef CGImageGetDataProvider(CGImageRef image);\n\nconst CGFloat *CGImageGetDecode(CGImageRef image);\nconst CGFloat *CGColorGetComponents(CGColorRef color);\n\nconst void *CGImageGetProperty(CGImageRef image, CFStringRef property);\n\nCGAffineTransform CGAffineTransformMake(CGFloat a, CGFloat b, CGFloat c, CGFloat d, CGFloat tx, CGFloat ty);\nCGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy);\nCGAffineTransform CGAffineTransformMakeRotation(CGFloat angle);\nCGAffineTransform CGAffineTransformMakeTranslation(CGFloat tx, CGFloat ty);\nCGAffineTransform CGAffineTransformTranslate(CGAffineTransform t, CGFloat tx, CGFloat ty);\nCGAffineTransform CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy);\nCGAffineTransform CGAffineTransformRotate(CGAffineTransform t, CGFloat angle);\nCGAffineTransform CGAffineTransformTranslate(CGAffineTransform t, CGFloat tx, CGFloat ty);\nCGAffineTransform CGAffineTransformInvert(CGAffineTransform t);\nCGAffineTransform CGAffineTransformConcat(CGAffineTransform t1, CGAffineTransform t2);\nCGAffineTransform CGAffineTransformFromString(CFNSString string);\nCGAffineTransform CGContextGetCTM(CGContextRef c);\nCGAffineTransform CGContextGetBaseCTM(CGContextRef c);\nCGAffineTransform CGContextGetTextMatrix(CGContextRef c);\nCGAffineTransform CGContextGetUserSpaceToDeviceSpaceTransform(CGContextRef c);\n\nCGDataProviderRef CGPDFDocumentGetDataProvider(CGPDFDocumentRef);\n\nCGError CGSPackagesEnableConnectionOcclusionNotifications(CGSConnectionID, bool flag, bool *outCurrentVisibilityState);\nCGError CGSPackagesEnableConnectionWindowModificationNotifications(CGSConnectionID, bool flag, bool *outConnectionIsCurrentlyIdle);\nCGError CGSNewRegionWithRect(const CGRect*, CGRegionRef *);\nCGError CGSNewEmptyRegion(CGSRegionObj *outRegion);\nCGError CGSCopyRegion(CGSRegionObj region, CGSRegionObj *outRegion);\nCGError CGSUnionRegion(CGSRegionObj region1, CGSRegionObj region2, CGSRegionObj *outRegion);\nCGError CGSUnionRegionWithRect(CGSRegionObj region, CGRect *rect, CGSRegionObj *outRegion);\nCGError CGSDiffRegion(CGSRegionRef region1, CGSRegionRef region2, CGSRegionRef *outRegion);\nCGError CGSXorRegion(CGSRegionRef region1, CGSRegionRef region2, CGSRegionRef *outRegion);\nCGError CGSOffsetRegion(CGSRegionRef region, CGFloat offsetLeft, CGFloat offsetTop, CGSRegionRef *outRegion);\nCGError CGSIntersectRegionWithRect(const CGSRegionObj region,const CGRect *rect, CGSRegionObj *intersectRegion);\nCGError CGSReleaseRegion(const CGRegionRef);\nCGError CGSGetRegionBounds(CGSRegionRef region, CGRect *outRect);\nCGError CGSSetWindowAlpha(CGSConnectionID, CGSWindowID, float alpha);\nCGError CGSSetWindowClipShape(CGSConnectionID, CGSWindowID, CGRegionRef shape);\nCGError CGSSetWindowWarp(CGSConnectionID, CGSWindowID, int w, int h, const float *mesh);\nCGError CGSFetchDirtyScreenRegion(CGSConnectionID cid, CGSRegionRef *outDirtyRegion);\n\nCGFontAntialiasingStyle CGContextGetFontAntialiasingStyle(CGContextRef);\n\nCGFontRef CGFontCreateWithPathAndName(CFStringRef path, CFStringRef name);\n\nCGImageCachingFlags CGImageGetCachingFlags(CGImageRef image);\n\nCGContextType CGContextGetType(CGContextRef c);\n\nCGGlyph CGFontGetGlyphWithGlyphName(CGFontRef font, CFStringRef name);\n\nCGCompositeOperation CGContextGetCompositeOperation(CGContextRef c);\n\nCGSRegionEnumeratorRef CGSRegionEnumerator(CGSRegionRef region);\nCGSRegionEnumeratorObj CGSRegionPathEnumerator(const CGSRegionObj region);\n\nconst char *CGFontGetPostScriptName(CGFontRef font);\n\nbool CGSRegionIsEmpty(CGSRegionObj region);\nbool CGSRegionIsRectangular(CGSRegionObj region);\nbool CGSPointInRegion(CGSRegionObj region, const CGPoint *point);\nbool CGSRectInRegion(CGSRegionObj region, const CGRect *rect);\nbool CGSRegionInRegion(CGSRegionObj region1, CGSRegionObj region2);\nbool CGSRegionIntersectsRect(CGSRegionObj obj, const CGRect *rect);\nbool CGSRegionIntersectsRegion(CGSRegionObj region1, CGSRegionObj region2);\n\nsize_t CGFontGetNumberOfGlyphs(CGFontRef font);\nsize_t CGImageGetWidth(CGImageRef image);\nsize_t CGImageGetHeight(CGImageRef image);\nsize_t CGImageGetBitsPerComponent(CGImageRef image);\nsize_t CGImageGetBitsPerPixel(CGImageRef image);\nsize_t CGImageGetBytesPerRow(CGImageRef image);\nsize_t CGImageSourceGetCount(CGImageSourceRef isrc);\nsize_t CGBitmapContextGetBitsPerComponent(CGContextRef context);\nsize_t CGBitmapContextGetBitsPerPixel(CGContextRef context);\nsize_t CGBitmapContextGetBytesPerRow(CGContextRef context);\nsize_t CGBitmapContextGetWidth(CGContextRef context);\nsize_t CGBitmapContextGetHeight(CGContextRef context);\nsize_t CGBitmapGetAlignedBytesPerRow(size_t);\nsize_t CGColorGetNumberOfComponents(CGColorRef color);\nsize_t CGColorSpaceGetNumberOfComponents(CGColorSpaceRef space);\n\nbool CGFontGetGlyphBBoxes(CGFontRef font, const CGGlyph *glyphs, size_t count, CGRect *bboxes);\nbool CGFontGetGlyphAdvances(CGFontRef font, const CGGlyph *glyphs, size_t count, int *advances);\nbool CGFontGetGlyphAdvancesForStyle(CGFontRef font, const CGAffineTransform *transform, CGFontRenderingStyle style, const CGGlyph *glyphs, size_t count, CGSize *advances);\nbool CGRectEqualToRect(CGRect rect1, CGRect rect2);\nbool CGRectIsNull(CGRect rect);\nbool CGRectIsEmpty(CGRect rect);\nbool CGRectIsInfinite(CGRect rect);\nbool CGRectContainsPoint(CGRect rect, CGPoint point);\nbool CGRectContainsRect(CGRect rect1, CGRect rect2);\nbool CGRectIntersectsRect(CGRect rect1, CGRect rect2);\nbool CGRectMakeWithDictionaryRepresentation(CFDictionaryRef dict, CGRect *rect);\nbool CGSizeMakeWithDictionaryRepresentation(CFDictionaryRef dict, CGSize *size);\nbool CGSizeEqualToSize(CGSize size1, CGSize size2);\nbool CGAffineTransformIsIdentity(CGAffineTransform t);\nbool CGAffineTransformIsRectilinear(CGAffineTransform t);\nbool CGAffineTransformEqualToTransform(CGAffineTransform t1, CGAffineTransform t2);\nbool CGContextIsPathEmpty(CGContextRef context);\nbool CGContextDrawsWithCorrectShadowOffsets(CGContextRef);\nbool CGContextGetAllowsFontSubpixelPositioning(CGContextRef);\nbool CGImageGetShouldInterpolate(CGImageRef image);\nbool CGImageDestinationCopyImageSource(CGImageDestinationRef idst, CGImageSourceRef isrc, CFDictionaryRef options, CFErrorRef *err);\nbool CGImageDestinationFinalize(CGImageDestinationRef idst);\nbool CGImageHasAlpha(CGImageRef image);\nbool CGImageIsMask(CGImageRef image);\nbool CGImageMetadataRegisterNamespaceForPrefix(CGMutableImageMetadataRef metadata, CFStringRef xmlns, CFStringRef prefix, CFErrorRef *err);\nbool CGImageMetadataSetTagWithPath(CGMutableImageMetadataRef metadata, CGImageMetadataTagRef parent, CFStringRef path, CGImageMetadataTagRef tag);\nbool CGImageMetadataSetValueWithPath(CGMutableImageMetadataRef metadata, CGImageMetadataTagRef parent, CFStringRef path, CFTypeRef value);\nbool CGPathEqualToPath(CGPathRef path1, CGPathRef path2);\nbool CGPathIsEmpty(CGPathRef path);\nbool CGPathIsRect(CGPathRef path, CGRect *rect);\nbool CGPathContainsPoint(CGPathRef path, const CGAffineTransform *m, CGPoint point, bool eoFill);\nbool CGPointMakeWithDictionaryRepresentation(CFDictionaryRef dict, CGPoint *point);\nbool CGColorEqualToColor(CGColorRef color1, CGColorRef color2);\nbool CGColorSpaceIsUncalibrated(CGColorSpaceRef space);\nbool CGColorSpaceIsWideGamutRGB(CGColorSpaceRef space);\nbool CGColorSpaceSupportsOutput(CGColorSpaceRef space);\nbool CGColorSpaceUsesExtendedRange(CGColorSpaceRef space);\nbool CGColorSpaceEqualToColorSpace(CGColorSpaceRef space1, CGColorSpaceRef space2);\nbool CGColorSpaceEqualToColorSpaceIgnoringRange(CGColorSpaceRef space1, CGColorSpaceRef space2);\nbool CGFloatIsValid(CGFloat value);\n\nbool CGCFDictionaryGetBoolean(CFDictionaryRef theDict, const void *key, bool *result);\nbool CGCFDictionaryGetBooleanWithDefault(CFDictionaryRef theDict, const void *key, bool defaultValue);\nbool CGCFDictionaryGetFloat(CFMutableDictionaryRef theDict, const void *key, double *value);\nbool CGCFDictionaryGetNumber(CFMutableDictionaryRef theDict, const void *key, CFNumberType type, void *valuePtr);\nbool CGCFDictionaryGetInteger(CFMutableDictionaryRef theDict, const void *key, int *valuePtr);\nbool CGCFDictionaryGetCFTypeRef(CFDictionaryRef theDict, const void *key, CFTypeID typeID, CFTypeRef *valuePtr);\n\ndouble CGCFDictionaryGetFloatWithDefault(CFMutableDictionaryRef theDict, const void *key, double defaultValue);\n\nint CGCFDictionaryGetIntegerWithDefault(CFMutableDictionaryRef theDict, const void *key, int defaultValue);\n\nint CGFontGetAscent(CGFontRef font);\nint CGFontGetDescent(CGFontRef font);\nint CGFontGetLeading(CGFontRef font);\nint CGFontGetCapHeight(CGFontRef font);\nint CGFontGetXHeight(CGFontRef font);\nint CGFontGetUnitsPerEm(CGFontRef font);\n\nint CGSNextPoint(const CGSRegionEnumeratorObj enumerator, CGPoint *point);\n\nint32_t CGImageGetIdentifier(CGImageRef image);\n\nvoid CGContextDestroy(CFTypeRef c);\nvoid CGContextSaveGState(CGContextRef c);\nvoid CGContextRestoreGState(CGContextRef c);\nvoid CGContextScaleCTM(CGContextRef c, CGFloat sx, CGFloat sy);\nvoid CGContextTranslateCTM(CGContextRef c, CGFloat tx, CGFloat ty);\nvoid CGContextRotateCTM(CGContextRef c, CGFloat angle);\nvoid CGContextConcatCTM(CGContextRef c, CGAffineTransform transform);\nvoid CGContextSetLineCap(CGContextRef c, CGLineCap cap);\nvoid CGContextSetLineJoin(CGContextRef c, CGLineJoin join);\nvoid CGContextSetLineDash(CGContextRef c, CGFloat phase, const CGFloat *lengths, size_t count);\nvoid CGContextSetLineWidth(CGContextRef c, CGFloat width);\nvoid CGContextSetAlpha(CGContextRef c, CGFloat alpha);\nvoid CGContextSetGrayFillColor(CGContextRef c, CGFloat gray, CGFloat alpha);\nvoid CGContextSetGrayStrokeColor(CGContextRef c, CGFloat gray, CGFloat alpha);\nvoid CGContextSetRGBFillColor(CGContextRef c, CGFloat red, CGFloat green, CGFloat blue, CGFloat alpha);\nvoid CGContextSetCMYKFillColor(CGContextRef c, CGFloat cyan, CGFloat magenta, CGFloat yellow, CGFloat black, CGFloat alpha);\nvoid CGContextSetFillColor(CGContextRef context, const CGFloat components[]);\nvoid CGContextSetFillColorWithColor(CGContextRef c, CGColorRef color);\nvoid CGContextSetFillColorSpace(CGContextRef c, CGColorSpaceRef space);\nvoid CGContextSetFillPattern(CGContextRef c, CGPatternRef pattern, const CGFloat *components);\nvoid CGContextSetRGBStrokeColor(CGContextRef c, CGFloat red, CGFloat green, CGFloat blue, CGFloat alpha);\nvoid CGContextSetStrokeColor(CGContextRef context, const CGFloat components[]);\nvoid CGContextSetStrokeColorWithColor(CGContextRef c, CGColorRef color);\nvoid CGContextSetStrokeColorSpace(CGContextRef c, CGColorSpaceRef space);\nvoid CGContextSetInterpolationQuality(CGContextRef c, CGInterpolationQuality quality);\nvoid CGContextSetShadowWithColor(CGContextRef c, CGSize offset, CGFloat blur, CGColorRef color);\nvoid CGContextSetTextDrawingMode(CGContextRef c, CGTextDrawingMode mode);\nvoid CGContextSetTextPosition(CGContextRef c, CGFloat x, CGFloat y);\nvoid CGContextSetTextMatrix(CGContextRef c, CGAffineTransform t);\nvoid CGContextSetFont(CGContextRef c, CGFontRef font);\nvoid CGContextSetFontSize(CGContextRef c, CGFloat size);\nvoid CGContextSetFontAntialiasingStyle(CGContextRef c, CGFontAntialiasingStyle style);\nvoid CGContextSetShouldSmoothFonts(CGContextRef c, bool shouldSmoothFonts);\nvoid CGContextSetShouldAntialias(CGContextRef c, bool shouldAntialias);\nvoid CGContextSetShouldSubpixelPositionFonts(CGContextRef c, bool shouldSubpixelPositionFonts);\nvoid CGContextSetShouldSubpixelQuantizeFonts(CGContextRef c, bool shouldSubpixelQuantizeFonts);\nvoid CGContextSetAllowsAntialiasing(CGContextRef c, bool allowsAntialiasing);\nvoid CGContextSetAllowsFontSubpixelPositioning(CGContextRef c, bool allowsFontSubpixelPositioning);\nvoid CGContextSetAllowsFontSubpixelQuantization(CGContextRef c, bool allowsFontSubpixelQuantization);\nvoid CGContextSetRenderingIntent(CGContextRef c, CGColorRenderingIntent intent);\nvoid CGContextSetCompositeOperation(CGContextRef c, CGCompositeOperation operation);\nvoid CGContextSetCTM(CGContextRef, CGAffineTransform);\nvoid CGContextSetBaseCTM(CGContextRef, CGAffineTransform);\nvoid CGContextResetCTM(CGContextRef c);\nvoid CGContextSetBlendMode(CGContextRef c, CGBlendMode mode);\nvoid CGContextSetFlatness(CGContextRef c, CGFloat flatness);\nvoid CGContextSetMiterLimit(CGContextRef c, CGFloat limit);\nvoid CGContextSetPatternPhase(CGContextRef c, CGSize phase);\nvoid CGContextBeginPath(CGContextRef c);\nvoid CGContextAddPath(CGContextRef c, CGPathRef path);\nvoid CGContextFillPath(CGContextRef c);\nvoid CGContextEOFillPath(CGContextRef c);\nvoid CGContextStrokePath(CGContextRef c);\nvoid CGContextClosePath(CGContextRef c);\nvoid CGContextMoveToPoint(CGContextRef c, CGFloat x, CGFloat y);\nvoid CGContextAddLineToPoint(CGContextRef c, CGFloat x, CGFloat y);\nvoid CGContextAddCurveToPoint(CGContextRef c, CGFloat cp1x, CGFloat cp1y, CGFloat cp2x, CGFloat cp2y, CGFloat x, CGFloat y);\nvoid CGContextAddQuadCurveToPoint(CGContextRef c, CGFloat cpx, CGFloat cpy, CGFloat x, CGFloat y);\nvoid CGContextAddRect(CGContextRef c, CGRect rect);\nvoid CGContextAddRects(CGContextRef c, const CGRect rects[], size_t count);\nvoid CGContextAddLines(CGContextRef c, const CGPoint points[], size_t count);\nvoid CGContextAddEllipseInRect(CGContextRef context, CGRect rect);\nvoid CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise);\nvoid CGContextAddArcToPoint(CGContextRef c, CGFloat x1, CGFloat y1, CGFloat x2, CGFloat y2, CGFloat radius);\nvoid CGContextReplacePathWithStrokedPath(CGContextRef c);\nvoid CGContextDrawImage(CGContextRef c, CGRect rect, CGImageRef image);\nvoid CGContextDrawTiledImage(CGContextRef c, CGRect rect, CGImageRef image);\nvoid CGContextDrawRadialGradient(CGContextRef c, CGGradientRef gradient, CGPoint startCenter, CGFloat startRadius, CGPoint endCenter, CGFloat endRadius, CGGradientDrawingOptions options);\nvoid CGContextDrawLinearGradient(CGContextRef c, CGGradientRef gradient, CGPoint startPoint, CGPoint endPoint, CGGradientDrawingOptions options);\nvoid CGContextDrawPath(CGContextRef c, CGPathDrawingMode mode);\nvoid CGContextDrawShading(CGContextRef c, CGShadingRef shading);\nvoid CGContextFillRect(CGContextRef c, CGRect rect);\nvoid CGContextFillRects(CGContextRef c, const CGRect rects[], size_t count);\nvoid CGContextFillEllipseInRect(CGContextRef context, CGRect rect);\nvoid CGContextStrokeRect(CGContextRef c, CGRect rect);\nvoid CGContextStrokeRectWithWidth(CGContextRef c, CGRect rect, CGFloat width);\nvoid CGContextStrokeEllipseInRect(CGContextRef context, CGRect rect);\nvoid CGContextStrokeLineSegments(CGContextRef c, const CGPoint points[], size_t count);\nvoid CGContextClearRect(CGContextRef c, CGRect rect);\nvoid CGContextClip(CGContextRef c);\nvoid CGContextEOClip(CGContextRef c);\nvoid CGContextClipToMask(CGContextRef c, CGRect rect, CGImageRef mask);\nvoid CGContextClipToRect(CGContextRef c, CGRect rect);\nvoid CGContextClipToRects(CGContextRef c, const CGRect rects[], size_t count);\nvoid CGContextResetState(CGContextRef c);\nvoid CGContextRelease(CGContextRef c);\nvoid CGContextFlush(CGContextRef c);\nvoid CGContextSynchronize(CGContextRef c);\nvoid CGContextEndPage(CGContextRef c);\nvoid CGContextBeginPage(CGContextRef c, const CGRect *mediaBox);\nvoid CGContextBeginTransparencyLayer(CGContextRef c, CFDictionaryRef auxiliaryInfo);\nvoid CGContextBeginTransparencyLayerWithRect(CGContextRef c, CGRect rect, CFDictionaryRef auxInfo);\nvoid CGContextEndTransparencyLayer(CGContextRef c);\nvoid CGContextShowGlyphsAtPositions(CGContextRef c, const CGGlyph *glyphs, const CGPoint *Lpositions, size_t count);\nvoid CGContextShowGlyphsWithAdvances(CGContextRef c, const CGGlyph *glyphs, const CGSize *advances, size_t count);\nvoid CGContextResetClip(CGContextRef c);\nvoid CGContextClear(CGContextRef c);\nvoid CGContextDrawPDFPage(CGContextRef c, CGPDFPageRef page);\nvoid CGContextDrawPDFPageWithAnnotations(CGContextRef c, CGPDFPageRef page, CGPDFAnnotationDrawCallbackType);\nvoid CGContextDrawPathDirect(CGContextRef, CGPathDrawingMode, CGPathRef, const CGRect *boundingBox);\nvoid CGBitmapContextSetData(CGContextRef c, size_t x, size_t y, size_t width, size_t height, void* data, size_t bitsPerComponent, size_t bitsPerPixel, size_t bytesPerRow);\nvoid CGGradientRetain(CGGradientRef gradient);\nvoid CGGradientRelease(CGGradientRef gradient);\nvoid CGImageSourceUpdateData(CGImageSourceRef isrc, CFDataRef data, bool final);\nvoid CGImageSourceUpdateDataProvider(CGImageSourceRef isrc, CGDataProviderRef provider, bool final);\nvoid CGImageSourceRemoveCacheAtIndex(CGImageSourceRef isrc, size_t index);\nvoid CGImageDestinationAddImage(CGImageDestinationRef idst, CGImageRef image, CFDictionaryRef properties);\nvoid CGImageDestinationAddImageFromSource(CGImageDestinationRef idst, CGImageSourceRef isrc, size_t index, CFDictionaryRef properties);\nvoid CGImageDestinationAddImageAndMetadata(CGImageDestinationRef idst, CGImageRef image, CGImageMetadataRef metadata, CFDictionaryRef options);\nvoid CGImageDestinationSetProperties(CGImageDestinationRef idst, CFDictionaryRef properties);\nvoid CGImageSetProperty(CGImageRef image, CFStringRef property, const void *value);\nvoid CGImageSetCachingFlags(CGImageRef image, CGImageCachingFlags flags);\nvoid CGImageRelease(CGImageRef image);\nvoid CGPathAddPath(CGMutablePathRef path1, const CGAffineTransform *m, CGPathRef path2);\nvoid CGPathAddArc(CGMutablePathRef path, const CGAffineTransform *m, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, bool clockwise);\nvoid CGPathAddRelativeArc(CGMutablePathRef path, const CGAffineTransform *matrix, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat delta);\nvoid CGPathAddArcToPoint(CGMutablePathRef path, const CGAffineTransform *m, CGFloat x1, CGFloat y1, CGFloat x2, CGFloat y2, CGFloat radius);\nvoid CGPathAddCurveToPoint(CGMutablePathRef path, const CGAffineTransform *m, CGFloat cp1x, CGFloat cp1y, CGFloat cp2x, CGFloat cp2y, CGFloat x, CGFloat y);\nvoid CGPathAddLines(CGMutablePathRef path, const CGAffineTransform *m, const CGPoint *points, size_t count);\nvoid CGPathAddLineToPoint(CGMutablePathRef path, const CGAffineTransform *m, CGFloat x, CGFloat y);\nvoid CGPathAddQuadCurveToPoint(CGMutablePathRef path, const CGAffineTransform *m, CGFloat cpx, CGFloat cpy, CGFloat x, CGFloat y);\nvoid CGPathAddRect(CGMutablePathRef path, const CGAffineTransform *m, CGRect rect);\nvoid CGPathAddRects(CGMutablePathRef path, const CGAffineTransform *m, const CGRect *rects, size_t count);\nvoid CGPathAddRoundedRect(CGMutablePathRef path, const CGAffineTransform *transform, CGRect rect, CGFloat cornerWidth, CGFloat cornerHeight);\nvoid CGPathAddEllipseInRect(CGMutablePathRef path, const CGAffineTransform *m, CGRect rect);\nvoid CGPathApply(CGPathRef path, void *info, CGPathApplierFunction function);\nvoid CGPathApplyWithBlock(CGPathRef path, CGPathApplyBlock block);\nvoid CGPathMoveToPoint(CGMutablePathRef path, const CGAffineTransform *m, CGFloat x, CGFloat y);\nvoid CGPathCloseSubpath(CGMutablePathRef path);\nvoid CGPathRelease(CGPathRef path);\nvoid CGRectDivide(CGRect rect, CGRect *slice, CGRect *remainder, CGFloat amount, CGRectEdge edge);\nvoid CGColorSpaceRelease(CGColorSpaceRef space);\nvoid CGColorTransformRelease(CGColorTransformRef colorTransform);\nvoid CGColorRelease(CGColorRef color);\nvoid CGPatternRelease(CGPatternRef pattern);\nvoid CGFontGetGlyphsForUnichars(CGFontRef font, const UniChar chars[], CGGlyph glyphs[], size_t length);\nvoid CGFontRelease(CGFontRef font);\nvoid CGPostError(const char *format, ...);\nvoid CGIOSurfaceContextSetDisplayMask(CGContextRef, uint32_t mask);\n\nvoid CGCFRelease(CFTypeRef cf);\nvoid CGCFDictionaryApplyBlock(CFDictionaryRef theDict, void *context);\nvoid CGCFDictionarySetCString(CFMutableDictionaryRef theDict, const char *cStr);\nvoid CGCFDictionarySetBoolean(CFMutableDictionaryRef theDict, const void *key, bool value);\nvoid CGCFDictionarySetFloat(CFMutableDictionaryRef theDict, const void *key, double value);\nvoid CGCFDictionarySetInteger(CFMutableDictionaryRef theDict, const void *key, int value);\nvoid CGCFDictionarySetLongInteger(CFMutableDictionaryRef theDict, const void *key, long value);\nvoid CGCFDictionarySetNumber(CFMutableDictionaryRef theDict, const void *key, CFNumberType type, const void *valuePtr);\nvoid CGCFDictionarySetCFTypeRef(CFMutableDictionaryRef theDict, const void *key, const void *value);\n\nvoid *CGBitmapContextGetData(CGContextRef context);"
  },
  {
    "path": "CoreGraphics/Types.h",
    "content": "#ifndef COREGRAPHICS_H_\n#define COREGRAPHICS_H_\n\n#import \"../BaseTypes.h\"\n#import \"../CoreFoundation/Types.h\"\n\n#ifdef __EA64__\ntypedef double CGFloat;\n#else\ntypedef float CGFloat;\n#endif\n\ntypedef struct CGPoint {\n    CGFloat x;\n    CGFloat y;\n} CGPoint;\n\ntypedef struct CGSize {\n    CGFloat width;\n    CGFloat height;\n} CGSize;\n\ntypedef struct CGRect {\n    CGPoint origin;\n    CGSize size;\n} CGRect;\n\ntypedef struct CGVector {\n   CGFloat dx;\n   CGFloat dy;\n} CGVector;\n\ntypedef struct CGAffineTransform {\n    CGFloat a;\n    CGFloat b;\n    CGFloat c;\n    CGFloat d;\n    CGFloat tx;\n    CGFloat ty;\n} CGAffineTransform;\n\ntypedef struct CGContext *CGContextRef;\ntypedef struct CGImage *CGImageRef;\ntypedef struct CGColorSpace *CGColorSpaceRef;\ntypedef struct CGColor *CGColorRef;\ntypedef struct CGGradient *CGGradientRef;\ntypedef struct CGDataProvider *CGDataProviderRef;\ntypedef const struct CGPath *CGPathRef;\ntypedef struct CGPath *CGMutablePathRef;\ntypedef struct CGPattern *CGPatternRef;\ntypedef struct CGFont *CGFontRef;\ntypedef const struct CGColorTransform *CGColorTransformRef;\ntypedef struct CGImageDestination *CGImageDestinationRef;\ntypedef struct CGImageSource *CGImageSourceRef;\ntypedef struct CGImageMetadata *CGImageMetadataRef;\ntypedef struct CGImageMetadata *CGMutableImageMetadataRef;\ntypedef struct CGImageMetadataTag *CGImageMetadataTagRef;\ntypedef struct CGShading *CGShadingRef;\ntypedef struct CGPDFAnnotation *CGPDFAnnotationRef;\ntypedef struct CGPDFPage *CGPDFPageRef;\ntypedef struct CGPDFDocument *CGPDFDocumentRef;\ntypedef struct CGImageProvider *CGImageProviderRef;\n\ntypedef struct CGSRegionEnumeratorObject *CGSRegionEnumeratorObj;\ntypedef struct CGSRegionObject *CGSRegionObj;\ntypedef struct CGSRegionObject *CGRegionRef;\n\ntypedef uint32_t CGRectEdge;\n\ntypedef uint32_t CGSByteCount;\ntypedef uint32_t CGSConnectionID;\ntypedef uint32_t CGSWindowCount;\ntypedef uint32_t CGSWindowID;\n\ntypedef unsigned short CGFontIndex;\n\ntypedef CGFontIndex CGGlyph;\n\ntypedef CFTypeRef CGSRegionRef;\ntypedef CFTypeRef CGSRegionEnumeratorRef;\n\nPS_ENUM(uint32_t, CGImageCachingFlags) {\n    kCGImageCachingTransient = 1,\n    kCGImageCachingTemporary = 3,\n};\n\nPS_ENUM(int32_t, CGError) {\n    kCGErrorSuccess = 0,\n    kCGErrorFailure = 1000,\n    kCGErrorIllegalArgument = 1001,\n    kCGErrorInvalidConnection = 1002,\n    kCGErrorInvalidContext = 1003,\n    kCGErrorCannotComplete = 1004,\n    kCGErrorNotImplemented = 1006,\n    kCGErrorRangeCheck = 1007,\n    kCGErrorTypeCheck = 1008,\n    kCGErrorInvalidOperation = 1010,\n    kCGErrorNoneAvailable = 1011\n};\n\ntypedef enum CGCompositeOperation {\n    kCGCompositeCopy = 1,\n    kCGCompositeSover = 2,\n} CGCompositeOperation;\n\nPS_ENUM(int32_t, CGImageMetadataType) {\n    kCGImageMetadataTypeInvalid = -1,\n    kCGImageMetadataTypeDefault = 0,\n    kCGImageMetadataTypeString = 1,\n    kCGImageMetadataTypeArrayUnordered = 2,\n    kCGImageMetadataTypeArrayOrdered = 3,\n    kCGImageMetadataTypeAlternateArray = 4,\n    kCGImageMetadataTypeAlternateText = 5,\n    kCGImageMetadataTypeStructure = 6\n};\n\nPS_ENUM(int32_t, CGBlendMode) {\n    kCGBlendModeNormal,\n    kCGBlendModeMultiply,\n    kCGBlendModeScreen,\n    kCGBlendModeOverlay,\n    kCGBlendModeDarken,\n    kCGBlendModeLighten,\n    kCGBlendModeColorDodge,\n    kCGBlendModeColorBurn,\n    kCGBlendModeSoftLight,\n    kCGBlendModeHardLight,\n    kCGBlendModeDifference,\n    kCGBlendModeExclusion,\n    kCGBlendModeHue,\n    kCGBlendModeSaturation,\n    kCGBlendModeColor,\n    kCGBlendModeLuminosity,\n    kCGBlendModeClear,\n    kCGBlendModeCopy,\n    kCGBlendModeSourceIn,\n    kCGBlendModeSourceOut,\n    kCGBlendModeSourceAtop,\n    kCGBlendModeDestinationOver,\n    kCGBlendModeDestinationIn,\n    kCGBlendModeDestinationOut,\n    kCGBlendModeDestinationAtop,\n    kCGBlendModeXOR,\n    kCGBlendModePlusDarker,\n    kCGBlendModePlusLighter\n};\n\nPS_ENUM(int32_t, CGInterpolationQuality) {\n    kCGInterpolationDefault = 0,\n    kCGInterpolationNone = 1,\n    kCGInterpolationLow = 2,\n    kCGInterpolationMedium = 4,\n    kCGInterpolationHigh = 3\n};\n\nPS_ENUM(int32_t, CGPathDrawingMode) {\n    kCGPathFill,\n    kCGPathEOFill,\n    kCGPathStroke,\n    kCGPathFillStroke,\n    kCGPathEOFillStroke\n};\n\nPS_ENUM(int32_t, CGTextDrawingMode) {\n    kCGTextFill,\n    kCGTextStroke,\n    kCGTextFillStroke,\n    kCGTextInvisible,\n    kCGTextFillClip,\n    kCGTextStrokeClip,\n    kCGTextFillStrokeClip,\n    kCGTextClip\n};\n\nPS_ENUM(int32_t, CGPatternTiling) {\n    kCGPatternTilingNoDistortion,\n    kCGPatternTilingConstantSpacingMinimalDistortion,\n    kCGPatternTilingConstantSpacing\n};\n\nPS_ENUM(uint32_t, CGImageAlphaInfo) {\n    kCGImageAlphaNone,\n    kCGImageAlphaPremultipliedLast,\n    kCGImageAlphaPremultipliedFirst,\n    kCGImageAlphaLast,\n    kCGImageAlphaFirst,\n    kCGImageAlphaNoneSkipLast,\n    kCGImageAlphaNoneSkipFirst,\n    kCGImageAlphaOnly\n};\n\nPS_ENUM(uint32_t, CGGradientDrawingOptions) {\n    kCGGradientDrawsBeforeStartLocation = (1 << 0),\n    kCGGradientDrawsAfterEndLocation = (1 << 1)\n};\n\nPS_ENUM(int32_t, CGColorRenderingIntent) {\n    kCGRenderingIntentDefault,\n    kCGRenderingIntentAbsoluteColorimetric,\n    kCGRenderingIntentRelativeColorimetric,\n    kCGRenderingIntentPerceptual,\n    kCGRenderingIntentSaturation\n};\n\nPS_ENUM(int32_t, CGColorSpaceModel) {\n    kCGColorSpaceModelUnknown = -1,\n    kCGColorSpaceModelMonochrome,\n    kCGColorSpaceModelRGB,\n    kCGColorSpaceModelCMYK,\n    kCGColorSpaceModelLab,\n    kCGColorSpaceModelDeviceN,\n    kCGColorSpaceModelIndexed,\n    kCGColorSpaceModelPattern,\n    kCGColorSpaceModelXYZ\n};\n\nPS_ENUM(int32_t, CGLineCap) { kCGLineCapButt, kCGLineCapRound, kCGLineCapSquare };\n\nPS_ENUM(int32_t, CGLineJoin) { kCGLineJoinMiter, kCGLineJoinRound, kCGLineJoinBevel };\n\nPS_ENUM(int32_t, CGPathElementType) {\n    kCGPathElementMoveToPoint,\n    kCGPathElementAddLineToPoint,\n    kCGPathElementAddQuadCurveToPoint,\n    kCGPathElementAddCurveToPoint,\n    kCGPathElementCloseSubpath\n};\n\nPS_ENUM(uint32_t, CGImageByteOrderInfo) {\n    kCGImageByteOrderMask = 0x7000,\n    kCGImageByteOrderDefault = (0 << 12),\n    kCGImageByteOrder16Little = (1 << 12),\n    kCGImageByteOrder32Little = (2 << 12),\n    kCGImageByteOrder16Big = (3 << 12),\n    kCGImageByteOrder32Big = (4 << 12)\n};\n\nPS_ENUM(uint32_t, CGImagePixelFormatInfo) {\n    kCGImagePixelFormatMask = 0xF0000,\n    kCGImagePixelFormatPacked = (0 << 16),\n    kCGImagePixelFormatRGB555 = (1 << 16),\n    kCGImagePixelFormatRGB565 = (2 << 16),\n    kCGImagePixelFormatRGB101010 = (3 << 16),\n    kCGImagePixelFormatRGBCIF10 = (4 << 16),\n};\n\nPS_ENUM(uint32_t, CGBitmapInfo) {\n    kCGBitmapAlphaInfoMask = 0x1F,\n    kCGBitmapFloatInfoMask = 0xF00,\n    kCGBitmapFloatComponents = (1 << 8),\n    kCGBitmapByteOrderMask = kCGImageByteOrderMask,\n    kCGBitmapByteOrderDefault = kCGImageByteOrderDefault,\n    kCGBitmapByteOrder16Little = kCGImageByteOrder16Little,\n    kCGBitmapByteOrder32Little = kCGImageByteOrder32Little,\n    kCGBitmapByteOrder16Big = kCGImageByteOrder16Big,\n    kCGBitmapByteOrder32Big = kCGImageByteOrder32Big\n};\n\nPS_ENUM(uint32_t, CGFontAntialiasingStyle) {\n    kCGFontAntialiasingStyleUnfiltered = 0 << 7,\n    kCGFontAntialiasingStyleFilterLight = 1 << 7,\n    kCGFontAntialiasingStyleUnfilteredCustomDilation = (8 << 7),\n};\n\ntypedef enum CGContextType {\n    kCGContextTypeUnknown,\n    kCGContextTypePDF,\n    kCGContextTypePostScript,\n    kCGContextTypeWindow,\n    kCGContextTypeBitmap,\n    kCGContextTypeGL,\n    kCGContextTypeDisplayList,\n    kCGContextTypeKSeparation,\n    kCGContextTypeIOSurface,\n    kCGContextTypeCount\n} CGContextType;\n\nPS_ENUM(uint32_t, CGFontRenderingStyle) {\n    kCGFontRenderingStyleAntialiasing = 1 << 0,\n    kCGFontRenderingStyleSmoothing = 1 << 1,\n    kCGFontRenderingStyleSubpixelPositioning = 1 << 2,\n    kCGFontRenderingStyleSubpixelQuantization = 1 << 3,\n    kCGFontRenderingStylePlatformNative = 1 << 9,\n    kCGFontRenderingStyleMask = 0x20F,\n};\n\ntypedef struct CGPathElement {\n    CGPathElementType type;\n    CGPoint *points;\n} CGPathElement;\n\ntypedef void (*CGPathApplyBlock)(const CGPathElement *element);\ntypedef void (*CGPathApplierFunction)(void *info, const CGPathElement *element);\ntypedef void (*CGPatternDrawPatternCallback)(void *info, CGContextRef context);\ntypedef void (*CGPatternReleaseInfoCallback)(void *info);\n\ntypedef bool (*CGPDFAnnotationDrawCallbackType)(CGContextRef context, CGPDFPageRef page, CGPDFAnnotationRef annotation);\n\ntypedef struct CGPatternCallbacks {\n    unsigned int version;\n    CGPatternDrawPatternCallback drawPattern;\n    CGPatternReleaseInfoCallback releaseInfo;\n} CGPatternCallbacks;\n\nextern const CGAffineTransform CGAffineTransformIdentity;\n\nextern const CGRect CGRectZero;\nextern const CGRect CGRectNull;\nextern const CGSize CGSizeZero;\nextern const CGPoint CGPointZero;\n\n#endif"
  },
  {
    "path": "CoreMedia/CoreMedia.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../Kernel/Types.h\"\n#import \"../AudioToolbox/Types.h\"\n#import \"../CoreGraphics/Types.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"../CoreVideo/Types.h\"\n#import \"Types.h\"\n\nBoolean CMAudioFormatDescriptionEqual(CMAudioFormatDescriptionRef formatDescription, CMAudioFormatDescriptionRef otherFormatDescription, CMAudioFormatDescriptionMask equalityMask, CMAudioFormatDescriptionMask *equalityMaskOut);\nBoolean CMDoesBigEndianSoundDescriptionRequireLegacyCBRSampleTableLayout(CMBlockBufferRef soundDescriptionBlockBuffer, CMSoundDescriptionFlavor flavor);\nBoolean CMFormatDescriptionEqual(CMFormatDescriptionRef formatDescription, CMFormatDescriptionRef otherFormatDescription);\nBoolean CMFormatDescriptionEqualIgnoringExtensionKeys(CMFormatDescriptionRef formatDescription, CMFormatDescriptionRef otherFormatDescription, CFTypeRef formatDescriptionExtensionKeysToIgnore, CFTypeRef sampleDescriptionExtensionAtomKeysToIgnore);\nBoolean CMSampleBufferDataIsReady(CMSampleBufferRef sbuf);\nBoolean CMSampleBufferHasDataFailed(CMSampleBufferRef sbuf, OSStatus *statusOut);\nBoolean CMSampleBufferIsValid(CMSampleBufferRef sbuf);\nBoolean CMTimeRangeContainsTime(CMTimeRange range, CMTime time);\nBoolean CMTimeRangeContainsTimeRange(CMTimeRange range, CMTimeRange otherRange);\nBoolean CMTimeRangeEqual(CMTimeRange range1, CMTimeRange range2);\nBoolean CMVideoFormatDescriptionGetVideoDynamicRange(CMVideoFormatDescriptionRef desc);\nBoolean CMVideoFormatDescriptionMatchesImageBuffer(CMVideoFormatDescriptionRef desc, CVImageBufferRef imageBuffer);\n\nCFArrayRef CMSampleBufferGetSampleAttachmentsArray(CMSampleBufferRef sbuf, Boolean createIfNecessary);\nCFArrayRef CMVideoFormatDescriptionGetExtensionKeysCommonWithImageBuffers(void);\n\nCFDictionaryRef CMCopyDictionaryOfAttachments(CFAllocatorRef allocator, CMAttachmentBearerRef target, CMAttachmentMode attachmentMode);\nCFDictionaryRef CMFormatDescriptionGetExtensions(CMFormatDescriptionRef desc);\nCFDictionaryRef CMTimeCopyAsDictionary(CMTime time, CFAllocatorRef allocator);\n\nCMNotificationCenterRef CMNotificationCenterCreate(void);\n\nCFPropertyListRef CMFormatDescriptionGetExtension(CMFormatDescriptionRef desc, CFStringRef extensionKey);\n\nCFStringRef CMTimeCopyDescription(CFAllocatorRef allocator, CMTime time);\n\nCFTypeID CMFormatDescriptionGetTypeID(void);\nCFTypeID FigEndpointManagerGetTypeID(void);\n\nCFTypeRef CMGetAttachment(CMAttachmentBearerRef target, CFStringRef key, CMAttachmentMode *attachmentModeOut);\n\nCGRect CMVideoFormatDescriptionGetCleanAperture(CMVideoFormatDescriptionRef videoDesc, Boolean originIsAtTopLeft);\n\nCGSize CMVideoFormatDescriptionGetPresentationDimensions(CMVideoFormatDescriptionRef videoDesc, Boolean usePixelAspectRatio, Boolean useCleanAperture);\n\nCMBlockBufferRef CMSampleBufferGetDataBuffer(CMSampleBufferRef sbuf);\n\nCMClockRef CMClockGetHostTimeClock(void);\n\nCMFormatDescriptionRef CMSampleBufferGetFormatDescription(CMSampleBufferRef sbuf);\n\nCMItemCount CMSampleBufferGetNumSamples(CMSampleBufferRef sbuf);\n\nCMMediaType CMFormatDescriptionGetMediaType(CMFormatDescriptionRef desc);\n\nCMNotificationCenterRef CMNotificationCenterGetDefaultLocalCenter(void);\n\nCMTime CMClockGetTime(CMClockRef clock);\nCMTime CMClockMakeHostTimeFromSystemUnits(uint64_t hostTime);\nCMTime CMSampleBufferGetDecodeTimeStamp(CMSampleBufferRef sbuf);\nCMTime CMSampleBufferGetDuration(CMSampleBufferRef sbuf);\nCMTime CMSampleBufferGetOutputDecodeTimeStamp(CMSampleBufferRef sbuf);\nCMTime CMSampleBufferGetOutputDuration(CMSampleBufferRef sbuf);\nCMTime CMSampleBufferGetOutputPresentationTimeStamp(CMSampleBufferRef sbuf);\nCMTime CMSampleBufferGetPresentationTimeStamp(CMSampleBufferRef sbuf);\nCMTime CMTimeAbsoluteValue(CMTime time);\nCMTime CMTimeAdd(CMTime lhs, CMTime rhs);\nCMTime CMTimeClampToRange(CMTime time, CMTimeRange range);\nCMTime CMTimeConvertScale(CMTime time, int32_t newTimescale, CMTimeRoundingMethod method);\nCMTime CMTimeMake(int64_t value, int32_t timescale);\nCMTime CMTimeMakeFromDictionary(CFDictionaryRef dictionaryRepresentation);\nCMTime CMTimeMakeWithEpoch(int64_t value, int32_t timescale, int64_t epoch);\nCMTime CMTimeMakeWithSeconds(Float64 seconds, int32_t preferredTimescale);\nCMTime CMTimeMaximum(CMTime time1, CMTime time2);\nCMTime CMTimeMinimum(CMTime time1, CMTime time2);\nCMTime CMTimeMultiply(CMTime time, int32_t multiplier);\nCMTime CMTimeMultiplyByFloat64(CMTime time, Float64 multiplier);\nCMTime CMTimeMultiplyByRatio(CMTime time, int32_t multiplier, int32_t divisor);\nCMTime CMTimeRangeGetEnd(CMTimeRange range);\nCMTime CMTimeSubtract(CMTime lhs, CMTime rhs);\n\nCMTimeRange CMTimeRangeFromTimeToTime(CMTime start, CMTime end);\nCMTimeRange CMTimeRangeGetIntersection(CMTimeRange range, CMTimeRange otherRange);\nCMTimeRange CMTimeRangeGetUnion(CMTimeRange range, CMTimeRange otherRange);\nCMTimeRange CMTimeRangeMake(CMTime start, CMTime duration);\nCMTimeRange CMTimeRangeMakeFromDictionary(CFDictionaryRef dictionaryRepresentation);\n\nCMVideoDimensions CMVideoFormatDescriptionGetDimensions(CMVideoFormatDescriptionRef videoDesc);\n\nconst AudioChannelLayout *CMAudioFormatDescriptionGetChannelLayout(CMAudioFormatDescriptionRef desc, size_t *sizeOut);\nconst AudioFormatListItem *CMAudioFormatDescriptionGetFormatList(CMAudioFormatDescriptionRef desc, size_t *sizeOut);\nconst AudioFormatListItem *CMAudioFormatDescriptionGetMostCompatibleFormat(CMAudioFormatDescriptionRef desc);\nconst AudioFormatListItem *CMAudioFormatDescriptionGetRichestDecodableFormat(CMAudioFormatDescriptionRef desc);\nconst AudioStreamBasicDescription *CMAudioFormatDescriptionGetStreamBasicDescription(CMAudioFormatDescriptionRef desc);\n\nconst void *CMAudioFormatDescriptionGetMagicCookie(CMAudioFormatDescriptionRef desc, size_t *sizeOut);\n\nCVImageBufferRef CMSampleBufferGetImageBuffer(CMSampleBufferRef sbuf);\n\nFloat64 CMTimeGetSeconds(CMTime time);\n\nFourCharCode CMFormatDescriptionGetMediaSubType(CMFormatDescriptionRef desc);\n\nint32_t CMTimeCompare(CMTime time1, CMTime time2);\n\nOSStatus CMAudioFormatDescriptionCopyAsBigEndianSoundDescriptionBlockBuffer(CFAllocatorRef allocator, CMAudioFormatDescriptionRef audioFormatDescription, CMSoundDescriptionFlavor flavor, CMBlockBufferRef *blockBufferOut);\nOSStatus CMAudioFormatDescriptionCreate(CFAllocatorRef allocator, const AudioStreamBasicDescription *asbd, size_t layoutSize, const AudioChannelLayout *layout, size_t magicCookieSize, const void *magicCookie, CFDictionaryRef extensions, CMAudioFormatDescriptionRef *formatDescriptionOut);\nOSStatus CMAudioFormatDescriptionCreateFromBigEndianSoundDescriptionBlockBuffer(CFAllocatorRef allocator, CMBlockBufferRef soundDescriptionBlockBuffer, CMSoundDescriptionFlavor flavor, CMAudioFormatDescriptionRef *formatDescriptionOut);\nOSStatus CMAudioFormatDescriptionCreateFromBigEndianSoundDescriptionData(CFAllocatorRef allocator, const uint8_t *soundDescriptionData, size_t size, CMSoundDescriptionFlavor flavor, CMAudioFormatDescriptionRef *formatDescriptionOut);\nOSStatus CMAudioFormatDescriptionCreateSummary(CFAllocatorRef allocator, CFArrayRef formatDescriptionArray, uint32_t flags, CMAudioFormatDescriptionRef  *formatDescriptionOut);\nOSStatus CMAudioSampleBufferCreateReadyWithPacketDescriptions(CFAllocatorRef allocator, CMBlockBufferRef dataBuffer, CMFormatDescriptionRef formatDescription, CMItemCount numSamples, CMTime presentationTimeStamp, const AudioStreamPacketDescription *packetDescriptions, CMSampleBufferRef *sampleBufferOut);\nOSStatus CMAudioSampleBufferCreateWithPacketDescriptions(CFAllocatorRef allocator, CMBlockBufferRef dataBuffer, Boolean dataReady, CMSampleBufferMakeDataReadyCallback makeDataReadyCallback, void *makeDataReadyRefcon, CMFormatDescriptionRef formatDescription, CMItemCount numSamples, CMTime presentationTimeStamp, const AudioStreamPacketDescription *packetDescriptions, CMSampleBufferRef *sampleBufferOut);\nOSStatus CMClockGetAnchorTime(CMClockRef clock, CMTime *clockTimeOut, CMTime *referenceClockTimeOut);\nOSStatus CMFormatDescriptionCreate(CFAllocatorRef allocator, CMMediaType mediaType, FourCharCode mediaSubType, CFDictionaryRef extensions, CMFormatDescriptionRef *formatDescriptionOut);\nOSStatus CMNotificationCenterAddListener(CMNotificationCenterRef inCenter, const void *inListener, CMNotificationCallback inCallBack, CFStringRef inNotificationName, const void *inObjectToObserve, UInt32 inFlags);\nOSStatus CMNotificationCenterRemoveListener(CMNotificationCenterRef inCenter, const void *inListener, CMNotificationCallback inCallBack, CFStringRef inNotificationName, const void *inObject);\nOSStatus CMSampleBufferCallBlockForEachSample(CMSampleBufferRef sbuf, OSStatus (*handler)(CMSampleBufferRef sampleBuffer, CMItemCount index));\nOSStatus CMSampleBufferCallForEachSample(CMSampleBufferRef sbuf, OSStatus (*callback)(CMSampleBufferRef sampleBuffer, CMItemCount index, void *refcon), void *refcon);\nOSStatus CMSampleBufferCopyPCMDataIntoAudioBufferList(CMSampleBufferRef sbuf, int32_t frameOffset, int32_t numFrames, AudioBufferList *bufferList);\nOSStatus CMSampleBufferCopySampleBufferForRange(CFAllocatorRef allocator, CMSampleBufferRef sbuf, CFRange sampleRange, CMSampleBufferRef *sampleBufferOut);\nOSStatus CMSampleBufferCreate(CFAllocatorRef allocator, CMBlockBufferRef dataBuffer, Boolean dataReady, CMSampleBufferMakeDataReadyCallback makeDataReadyCallback, void *makeDataReadyRefcon, CMFormatDescriptionRef formatDescription, CMItemCount numSamples, CMItemCount numSampleTimingEntries, const CMSampleTimingInfo *sampleTimingArray, CMItemCount numSampleSizeEntries, const size_t *sampleSizeArray, CMSampleBufferRef *sampleBufferOut);\nOSStatus CMSampleBufferCreateCopy(CFAllocatorRef allocator, CMSampleBufferRef sbuf, CMSampleBufferRef *sampleBufferOut);\nOSStatus CMSampleBufferCreateCopyWithNewTiming(CFAllocatorRef allocator, CMSampleBufferRef originalSBuf, CMItemCount numSampleTimingEntries, const CMSampleTimingInfo *sampleTimingArray, CMSampleBufferRef *sampleBufferOut);\nOSStatus CMSampleBufferCreateForImageBuffer(CFAllocatorRef allocator, CVImageBufferRef imageBuffer, Boolean dataReady, CMSampleBufferMakeDataReadyCallback makeDataReadyCallback, void *makeDataReadyRefcon, CMVideoFormatDescriptionRef formatDescription, const CMSampleTimingInfo *sampleTiming, CMSampleBufferRef *sampleBufferOut);\nOSStatus CMSampleBufferCreateReady(CFAllocatorRef allocator, CMBlockBufferRef dataBuffer, CMFormatDescriptionRef formatDescription, CMItemCount numSamples, CMItemCount numSampleTimingEntries, const CMSampleTimingInfo *sampleTimingArray, CMItemCount numSampleSizeEntries, const size_t *sampleSizeArray, CMSampleBufferRef *sampleBufferOut);\nOSStatus CMSampleBufferCreateReadyWithImageBuffer(CFAllocatorRef allocator, CVImageBufferRef imageBuffer, CMVideoFormatDescriptionRef formatDescription, const CMSampleTimingInfo *sampleTiming, CMSampleBufferRef *sampleBufferOut);\nOSStatus CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer(CMSampleBufferRef sbuf, size_t *bufferListSizeNeededOut, AudioBufferList *bufferListOut, size_t bufferListSize, CFAllocatorRef blockBufferStructureAllocator, CFAllocatorRef blockBufferBlockAllocator, uint32_t flags, CMBlockBufferRef *blockBufferOut);\nOSStatus CMSampleBufferGetAudioStreamPacketDescriptions(CMSampleBufferRef sbuf, size_t packetDescriptionsSize, AudioStreamPacketDescription *packetDescriptionsOut, size_t *packetDescriptionsSizeNeededOut);\nOSStatus CMSampleBufferGetAudioStreamPacketDescriptionsPtr(CMSampleBufferRef sbuf, const AudioStreamPacketDescription **packetDescriptionsPtrOut, size_t *packetDescriptionsSizeOut);\nOSStatus CMSampleBufferGetOutputSampleTimingInfoArray(CMSampleBufferRef sbuf, CMItemCount timingArrayEntries, CMSampleTimingInfo *timingArrayOut, CMItemCount *timingArrayEntriesNeededOut);\nOSStatus CMSampleBufferGetSampleSizeArray(CMSampleBufferRef sbuf, CMItemCount sizeArrayEntries, size_t *sizeArrayOut, CMItemCount *sizeArrayEntriesNeededOut);\nOSStatus CMSampleBufferGetSampleTimingInfo(CMSampleBufferRef sbuf, CMItemIndex sampleIndex, CMSampleTimingInfo *timingInfoOut);\nOSStatus CMSampleBufferGetSampleTimingInfoArray(CMSampleBufferRef sbuf, CMItemCount numSampleTimingEntries, CMSampleTimingInfo *timingArrayOut, CMItemCount *timingArrayEntriesNeededOut);\nOSStatus CMSampleBufferInvalidate(CMSampleBufferRef sbuf);\nOSStatus CMSampleBufferMakeDataReady(CMSampleBufferRef sbuf);\nOSStatus CMSampleBufferSetDataBuffer(CMSampleBufferRef sbuf, CMBlockBufferRef dataBuffer);\nOSStatus CMSampleBufferSetDataBufferFromAudioBufferList(CMSampleBufferRef sbuf, CFAllocatorRef blockBufferStructureAllocator, CFAllocatorRef blockBufferBlockAllocator, uint32_t flags, const AudioBufferList *bufferList);\nOSStatus CMSampleBufferSetDataFailed(CMSampleBufferRef sbuf, OSStatus status);\nOSStatus CMSampleBufferSetDataReady(CMSampleBufferRef sbuf);\nOSStatus CMSampleBufferSetInvalidateCallback(CMSampleBufferRef sbuf, CMSampleBufferInvalidateCallback invalidateCallback, uint64_t invalidateRefCon);\nOSStatus CMSampleBufferSetInvalidateHandler(CMSampleBufferRef sbuf, CMSampleBufferInvalidateHandler invalidateHandler);\nOSStatus CMSampleBufferSetOutputPresentationTimeStamp(CMSampleBufferRef sbuf, CMTime outputPresentationTimeStamp);\nOSStatus CMSampleBufferTrackDataReadiness(CMSampleBufferRef sbuf, CMSampleBufferRef sampleBufferToTrack);\nOSStatus CMSwapBigEndianSoundDescriptionToHost(uint8_t *soundDescriptionData, size_t soundDescriptionSize);\nOSStatus CMSwapHostEndianSoundDescriptionToBig(uint8_t *soundDescriptionData, size_t soundDescriptionSize);\nOSStatus CMVideoFormatDescriptionCreate(CFAllocatorRef allocator, CMVideoCodecType codecType, int32_t width, int32_t height, CFDictionaryRef extensions, CMVideoFormatDescriptionRef *formatDescriptionOut);\nOSStatus CMVideoFormatDescriptionCreateForImageBuffer(CFAllocatorRef allocator, CVImageBufferRef imageBuffer, CMVideoFormatDescriptionRef *formatDescriptionOut);\nOSStatus CMVideoFormatDescriptionCreateFromH264ParameterSets(CFAllocatorRef allocator, size_t parameterSetCount, const uint8_t *const *parameterSetPointers, const size_t *parameterSetSizes, int NALUnitHeaderLength, CMFormatDescriptionRef *formatDescriptionOut);\nOSStatus CMVideoFormatDescriptionCreateFromHEVCParameterSets(CFAllocatorRef allocator, size_t parameterSetCount, const uint8_t *const *parameterSetPointers, const size_t *parameterSetSizes, int NALUnitHeaderLength, CFDictionaryRef extensions, CMFormatDescriptionRef *formatDescriptionOut);\nOSStatus CMVideoFormatDescriptionGetH264ParameterSetAtIndex(CMFormatDescriptionRef videoDesc, size_t parameterSetIndex, const uint8_t ** parameterSetPointerOut, size_t *parameterSetSizeOut, size_t *parameterSetCountOut, int *NALUnitHeaderLengthOut);\nOSStatus CMVideoFormatDescriptionGetHEVCParameterSetAtIndex(CMFormatDescriptionRef videoDesc, size_t parameterSetIndex, const uint8_t **parameterSetPointerOut, size_t *parameterSetSizeOut, size_t *parameterSetCountOut, int *NALUnitHeaderLengthOut);\n\nsize_t CMSampleBufferGetSampleSize(CMSampleBufferRef sbuf, CMItemIndex sampleIndex);\nsize_t CMSampleBufferGetTotalSampleSize(CMSampleBufferRef sbuf);\n\nuint64_t CMClockConvertHostTimeToSystemUnits(CMTime hostTime);\n\nvoid CMNotificationCenterPostNotification(CFNotificationCenterRef center, CFNotificationName name, const void *object, CFDictionaryRef userInfo);\nvoid CMSetAttachment(CMAttachmentBearerRef target, CFStringRef key, CFTypeRef value, CMAttachmentMode attachmentMode);\nvoid CMTimeShow(CMTime time);\n\nvoid *CMBaseObjectGetDerivedStorage(CMBaseObjectRef o);\n\nconst CMBaseVTable *CMBaseObjectGetVTable(CMBaseObjectRef o);\n"
  },
  {
    "path": "CoreMedia/Types.h",
    "content": "#ifndef COREMEDIA_H_\n#define COREMEDIA_H_\n\n#import \"../BaseTypes.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"../Kernel/Types.h\"\n\ntypedef int64_t CMTimeValue;\ntypedef int64_t CMTimeEpoch;\n\ntypedef int32_t CMTimeScale;\n\ntypedef uint32_t CMBaseClassVersion;\ntypedef uint32_t CMStructVersion;\n\ntypedef double Float64;\n\ntypedef long CMItemCount;\ntypedef long CMItemIndex;\n\nPS_ENUM(uint32_t, CMAttachmentMode) {\n    kCMAttachmentMode_ShouldNotPropagate    = 0,\n    kCMAttachmentMode_ShouldPropagate       = 1\n};\n\nPS_ENUM(uint32_t, CMTimeFlags) {\n    kCMTimeFlags_Valid = 1UL<<0,\n    kCMTimeFlags_HasBeenRounded = 1UL<<1,\n    kCMTimeFlags_PositiveInfinity = 1UL<<2,\n    kCMTimeFlags_NegativeInfinity = 1UL<<3,\n    kCMTimeFlags_Indefinite = 1UL<<4,\n    kCMTimeFlags_ImpliedValueFlagsMask = kCMTimeFlags_PositiveInfinity | kCMTimeFlags_NegativeInfinity | kCMTimeFlags_Indefinite\n};\n\nPS_ENUM(uint32_t, CMAudioFormatDescriptionMask) {\n    kCMAudioFormatDescriptionMask_StreamBasicDescription\t= (1<<0),\n    kCMAudioFormatDescriptionMask_MagicCookie\t\t\t\t= (1<<1),\n    kCMAudioFormatDescriptionMask_ChannelLayout\t\t\t\t= (1<<2),\n    kCMAudioFormatDescriptionMask_Extensions\t\t\t\t= (1<<3),\n    kCMAudioFormatDescriptionMask_All\t\t\t\t\t\t= kCMAudioFormatDescriptionMask_StreamBasicDescription | kCMAudioFormatDescriptionMask_MagicCookie | kCMAudioFormatDescriptionMask_ChannelLayout | kCMAudioFormatDescriptionMask_Extensions\n};\n\nPS_ENUM(uint32_t, CMTimeRoundingMethod) {\n   kCMTimeRoundingMethod_RoundHalfAwayFromZero = 1,\n   kCMTimeRoundingMethod_RoundTowardZero = 2,\n   kCMTimeRoundingMethod_RoundAwayFromZero = 3,\n   kCMTimeRoundingMethod_QuickTime = 4,\n   kCMTimeRoundingMethod_RoundTowardPositiveInfinity = 5,\n   kCMTimeRoundingMethod_RoundTowardNegativeInfinity = 6,\n\n   kCMTimeRoundingMethod_Default = kCMTimeRoundingMethod_RoundHalfAwayFromZero\n};\n\nPS_ENUM(FourCharCode, CMMediaType) {\n    kCMMediaType_Video\t\t\t\t= 'vide',\n    kCMMediaType_Audio\t\t\t\t= 'soun',\n    kCMMediaType_Muxed\t\t\t\t= 'muxx',\n    kCMMediaType_Text\t\t\t\t= 'text',\n    kCMMediaType_ClosedCaption\t\t= 'clcp',\n    kCMMediaType_Subtitle\t\t\t= 'sbtl',\n    kCMMediaType_TimeCode\t\t\t= 'tmcd',\n    kCMMediaType_Metadata\t\t\t= 'meta'\n};\n\nPS_ENUM(FourCharCode, CMPixelFormatType) {\n    kCMPixelFormat_32ARGB                   = 32,\n    kCMPixelFormat_32BGRA                   = 'BGRA',\n    kCMPixelFormat_24RGB                    = 24,\n    kCMPixelFormat_16BE555                  = 16,\n    kCMPixelFormat_16BE565                  = 'B565',\n    kCMPixelFormat_16LE555                  = 'L555',\n    kCMPixelFormat_16LE565                  = 'L565',\n    kCMPixelFormat_16LE5551                 = '5551',\n    kCMPixelFormat_422YpCbCr8               = '2vuy',\n    kCMPixelFormat_422YpCbCr8_yuvs          = 'yuvs',\n    kCMPixelFormat_444YpCbCr8               = 'v308',\n    kCMPixelFormat_4444YpCbCrA8             = 'v408',\n    kCMPixelFormat_422YpCbCr16              = 'v216',\n    kCMPixelFormat_422YpCbCr10              = 'v210',\n    kCMPixelFormat_444YpCbCr10              = 'v410',\n    kCMPixelFormat_8IndexedGray_WhiteIsZero = 0x00000028\n};\n\nPS_ENUM(FourCharCode, CMVideoCodecType) {\n    kCMVideoCodecType_422YpCbCr8       = kCMPixelFormat_422YpCbCr8,\n    kCMVideoCodecType_Animation        = 'rle ',\n    kCMVideoCodecType_Cinepak          = 'cvid',\n    kCMVideoCodecType_JPEG             = 'jpeg',\n    kCMVideoCodecType_JPEG_OpenDML     = 'dmb1',\n    kCMVideoCodecType_SorensonVideo    = 'SVQ1',\n    kCMVideoCodecType_SorensonVideo3   = 'SVQ3',\n    kCMVideoCodecType_H263             = 'h263',\n    kCMVideoCodecType_H264             = 'avc1',\n    kCMVideoCodecType_HEVC             = 'hvc1',\n    kCMVideoCodecType_HEVCWithAlpha    = 'muxa',\n    kCMVideoCodecType_VP9              = 'vp09',\n    kCMVideoCodecType_AV1              = 'av01',\n    kCMVideoCodecType_MPEG4Video       = 'mp4v',\n    kCMVideoCodecType_MPEG2Video       = 'mp2v',\n    kCMVideoCodecType_MPEG1Video       = 'mp1v',\n\n    kCMVideoCodecType_DVCNTSC          = 'dvc ',\n    kCMVideoCodecType_DVCPAL           = 'dvcp',\n    kCMVideoCodecType_DVCProPAL        = 'dvpp',\n    kCMVideoCodecType_DVCPro50NTSC     = 'dv5n',\n    kCMVideoCodecType_DVCPro50PAL      = 'dv5p',\n    kCMVideoCodecType_DVCPROHD720p60   = 'dvhp',\n    kCMVideoCodecType_DVCPROHD720p50   = 'dvhq',\n    kCMVideoCodecType_DVCPROHD1080i60  = 'dvh6',\n    kCMVideoCodecType_DVCPROHD1080i50  = 'dvh5',\n    kCMVideoCodecType_DVCPROHD1080p30  = 'dvh3',\n    kCMVideoCodecType_DVCPROHD1080p25  = 'dvh2',\n\n    kCMVideoCodecType_AppleProRes4444XQ = 'ap4x',\n    kCMVideoCodecType_AppleProRes4444  = 'ap4h',\n    kCMVideoCodecType_AppleProRes422HQ = 'apch',\n    kCMVideoCodecType_AppleProRes422   = 'apcn',\n    kCMVideoCodecType_AppleProRes422LT = 'apcs',\n    kCMVideoCodecType_AppleProRes422Proxy = 'apco',\n\n    kCMVideoCodecType_AppleProResRAW   = 'aprn',\n    kCMVideoCodecType_AppleProResRAWHQ = 'aprh'\n};\n\ntypedef CFTypeRef CMAttachmentBearerRef;\n\ntypedef CFStringRef CMSoundDescriptionFlavor;\n\ntypedef struct OpaqueCMBaseObject *CMBaseObjectRef;\ntypedef struct OpaqueCMBaseClass *CMBaseClassID;\ntypedef struct OpaqueCMBlockBuffer *CMBlockBufferRef;\ntypedef struct OpaqueCMClock *CMClockRef;\ntypedef struct opaqueCMSampleBuffer *CMSampleBufferRef;\ntypedef struct opaqueCMFormatDescription *CMFormatDescriptionRef;\ntypedef struct opaqueCMNotificationCenter *CMNotificationCenterRef;\n\ntypedef struct CMBaseProtocolTable CMBaseProtocolTable;\n\ntypedef CMFormatDescriptionRef CMVideoFormatDescriptionRef;\ntypedef CMFormatDescriptionRef CMAudioFormatDescriptionRef;\n\ntypedef OSStatus (*CMBaseObjectCopyPropertyFunction)(CMBaseObjectRef object, CFStringRef propertyKey, CFAllocatorRef allocator, void *propertyValueOut);\ntypedef OSStatus (*CMBaseObjectSetPropertyFunction)(CMBaseObjectRef object, CFStringRef propertyKey, CFTypeRef propertyValue);\ntypedef OSStatus (*CMSampleBufferMakeDataReadyCallback)(CMSampleBufferRef sbuf, void *makeDataReadyRefcon);\ntypedef void (*CMSampleBufferInvalidateHandler)(CMSampleBufferRef sbuf);\ntypedef void (*CMSampleBufferInvalidateCallback)(CMSampleBufferRef sbuf, uint64_t invalidateRefCon);\ntypedef void (*CMNotificationCallback)(CMNotificationCenterRef inCenter, const void *inListener, CFStringRef inNotificationName, const void *inNotifyingObject, CFTypeRef inNotificationPayload);\n\ntypedef struct CMVideoDimensions {\n    int32_t width;\n    int32_t height;\n} CMVideoDimensions;\n\ntypedef struct CMTime {\n    CMTimeValue value;\n    CMTimeScale timescale;\n    CMTimeFlags flags;\n    CMTimeEpoch epoch;\n} CMTime;\n\ntypedef struct CMTimeRange {\n    CMTime duration;\n    CMTime start;\n} CMTimeRange;\n\ntypedef struct CMSampleTimingInfo {\n    CMTime duration;\n    CMTime presentationTimeStamp;\n    CMTime decodeTimeStamp;\n} CMSampleTimingInfo;\n\ntypedef struct CMBaseClass {\n    CMBaseClassVersion version;\n    size_t derivedStorageSize;\n    Boolean (*equal)(CMBaseObjectRef o, CMBaseObjectRef compareTo);\n    OSStatus (*invalidate)(CMBaseObjectRef o);\n    void (*finalize)(CMBaseObjectRef o);\n    CFStringRef (*copyDebugDescription)(CMBaseObjectRef o);\n    CMBaseObjectCopyPropertyFunction copyProperty;\n    CMBaseObjectSetPropertyFunction setProperty;\n    OSStatus (*notificationBarrier)(CMBaseObjectRef o);\n    const CMBaseProtocolTable *protocolTable;\n} CMBaseClass;\n\ntypedef struct CMBaseVTable {\n    const struct OpaqueCMBaseVTableReserved *reserved;\n    const CMBaseClass *baseClass;\n} CMBaseVTable;\n\nCMTime kCMTimeZero;\n\n#endif"
  },
  {
    "path": "CoreServices/CoreServices.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"Types.h\"\n\nBoolean UTTypeConformsTo(CFStringRef inUTI, CFStringRef inConformsToUTI);\nBoolean UTTypeEqual(CFStringRef inUTI1, CFStringRef inUTI2);\n\nCFArrayRef UTTypeCreateAllIdentifiersForTag(CFStringRef inTagClass, CFStringRef inTag, CFStringRef inConformingToUTI);\n\nCFStringRef UTTypeCopyDescription(CFStringRef inUTI);\nCFStringRef UTTypeCopyPreferredTagWithClass(CFStringRef inUTI, CFStringRef inTagClass);\nCFStringRef UTTypeCreatePreferredIdentifierForTag(CFStringRef inTagClass, CFStringRef inTag, CFStringRef inConformingToUTI);\n"
  },
  {
    "path": "CoreServices/Types.h",
    "content": "#ifndef CORESERVICES_H_\n#define CORESERVICES_H_\n\n#endif"
  },
  {
    "path": "CoreText/CoreText.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"../CoreGraphics/Types.h\"\n#import \"Types.h\"\n\nCGAffineTransform CTRunGetTextMatrix(CTRunRef run);\n\nCGPathRef CTFontCreatePathForGlyph(CTFontRef font, CGGlyph glyph, const CGAffineTransform *matrix);\nCGPathRef CTFrameGetPath(CTFrameRef frame);\n\nCGFontRef CTFontCopyGraphicsFont(CTFontRef font, CTFontDescriptorRef *attributes);\n\nCGGlyph CTFontGetGlyphWithName(CTFontRef font, CFStringRef glyphName);\n\nconst CGGlyph *CTRunGetGlyphsPtr(CTRunRef run);\nconst CGPoint *CTRunGetPositionsPtr(CTRunRef run);\nconst CGSize *CTRunGetAdvancesPtr(CTRunRef run);\nconst CFIndex *CTRunGetStringIndicesPtr(CTRunRef run);\n\nCGFloat CTFontGetSize(CTFontRef font);\nCGFloat CTFontGetAscent(CTFontRef font);\nCGFloat CTFontGetDescent(CTFontRef font);\nCGFloat CTFontGetLeading(CTFontRef font);\nCGFloat CTFontGetUnderlinePosition(CTFontRef font);\nCGFloat CTFontGetUnderlineThickness(CTFontRef font);\nCGFloat CTFontGetSlantAngle(CTFontRef font);\nCGFloat CTFontGetCapHeight(CTFontRef font);\nCGFloat CTFontGetXHeight(CTFontRef font);\nCGFloat CTLineGetOffsetForStringIndex(CTLineRef line, CFIndex charIndex, CGFloat *secondaryOffset);\n\nCGRect CTFontGetBoundingRectsForGlyphs(CTFontRef font, CTFontOrientation orientation, const CGGlyph glyphs[], CGRect *boundingRects, CFIndex count);\nCGRect CTFontGetOpticalBoundsForGlyphs(CTFontRef font, const CGGlyph glyphs[], CGRect *boundingRects, CFIndex count, CFOptionFlags options);\nCGRect CTFontGetBoundingBox(CTFontRef font);\nCGRect CTLineGetBoundsWithOptions(CTLineRef line, CTLineBoundsOptions options);\nCGRect CTLineGetImageBounds(CTLineRef line, CGContextRef context);\nCGRect CTRunGetImageBounds(CTRunRef run, CGContextRef context, CFRange range);\n\nCGSize CTFramesetterSuggestFrameSizeWithConstraints(CTFramesetterRef framesetter, CFRange stringRange, CFDictionaryRef frameAttributes, CGSize constraints, CFRange *fitRange);\nCGSize CTFontShapeGlyphs(CTFontRef, CGGlyph glyphs[], CGSize advances[], CGPoint origins[], CFIndex indexes[], const UniChar chars[], CFIndex count, CTFontShapeOptions, CFStringRef language, void (*handler)(CFRange, CGGlyph**, CGSize**, CGPoint**, CFIndex**));\nCGSize CTRunGetInitialAdvance(CTRunRef);\n\nCGAffineTransform CTFontGetMatrix(CTFontRef font);\n\nCFTypeID CTRunGetTypeID(void);\nCFTypeID CTFontGetTypeID(void);\nCFTypeID CTFontDescriptorGetTypeID(void);\n\nCFRange CTRunGetStringRange(CTRunRef run);\nCFRange CTLineGetStringRange(CTLineRef line);\nCFRange CTFrameGetStringRange(CTFrameRef frame);\nCFRange CTFrameGetVisibleStringRange(CTFrameRef frame);\n\nCFStringEncoding CTFontGetStringEncoding(CTFontRef font);\n\nCFIndex CTRunGetGlyphCount(CTRunRef run);\nCFIndex CTFontGetGlyphCount(CTFontRef font);\nCFIndex CTFontGetLigatureCaretPositions(CTFontRef font, CGGlyph glyph, CGFloat *positions, CFIndex maxPositions);\nCFIndex CTLineGetGlyphCount(CTLineRef line);\nCFIndex CTLineGetStringIndexForPosition(CTLineRef line, CGPoint position);\n\nCFTypeRef CTFontCopyAttribute(CTFontRef font, CFStringRef attribute);\nCFTypeRef CTFontDescriptorCopyAttribute(CTFontDescriptorRef descriptor, CFStringRef attribute);\nCFTypeRef CTFontDescriptorCopyLocalizedAttribute(CTFontDescriptorRef descriptor, CFStringRef attribute, CFStringRef *language);\n\nCFStringRef CTFontCopyFullName(CTFontRef font);\nCFStringRef CTFontCopyPostScriptName(CTFontRef font);\nCFStringRef CTFontCopyFamilyName(CTFontRef font);\nCFStringRef CTFontCopyDisplayName(CTFontRef font);\nCFStringRef CTFontCopyName(CTFontRef font, CFStringRef nameKey);\nCFStringRef CTFontCopyLocalizedName(CTFontRef font, CFStringRef nameKey, CFStringRef *actualLanguage);\nCFStringRef CTFontCopyLocalizedNameWithLanguages(CTFontRef font, CFStringRef nameKey, int unk, CFStringRef *actualLanguage);\nCFStringRef CTFontCopyNameForGlyph(CTFontRef font, CGGlyph glyph);\n\nCFDictionaryRef CTRunGetAttributes(CTRunRef run);\nCFDictionaryRef CTFrameGetFrameAttributes(CTFrameRef frame);\nCFDictionaryRef CTFontDescriptorCopyAttributes(CTFontDescriptorRef descriptor);\nCFDictionaryRef CTFontCopyTraits(CTFontRef font);\n\nCFArrayRef CTLineGetGlyphRuns(CTLineRef line);\nCFArrayRef CTFrameGetLines(CTFrameRef frame);\nCFArrayRef CTFontCopySupportedLanguages(CTFontRef font);\nCFArrayRef CTFontCopyFeatures(CTFontRef font);\nCFArrayRef CTFontCopyDefaultCascadeListForLanguages(CTFontRef font, CFArrayRef languagePrefList);\nCFArrayRef CTFontCollectionCreateMatchingFontDescriptors(CTFontCollectionRef collection);\nCFArrayRef CTFontManagerCreateFontDescriptorsFromData(CFDataRef);\n\nCFCharacterSetRef CTFontCopyCharacterSet(CTFontRef font);\nCFCharacterSetRef CTFontCopyLogicalCharacterSet(CTFontRef font);\n\nCFBitVectorRef CTFontCopyGlyphCoverageForFeature(CTFontRef, CFDictionaryRef feature);\n\nCTRunStatus CTRunGetStatus(CTRunRef run);\n\ndouble CTFontGetAdvancesForGlyphs(CTFontRef font, CTFontOrientation orientation, const CGGlyph glyphs[], CGSize advances[], CFIndex count);\ndouble CTLineGetPenOffsetForFlush(CTLineRef line, CGFloat flushFactor, double flushWidth);\ndouble CTLineGetTypographicBounds(CTLineRef line, CGFloat *ascent, CGFloat *descent, CGFloat *leading);\ndouble CTLineGetTrailingWhitespaceWidth(CTLineRef line);\ndouble CTRunGetTypographicBounds(CTRunRef run, CFRange range, CGFloat *ascent, CGFloat *descent, CGFloat *leading);\n\nunsigned int CTFontGetUnitsPerEm(CTFontRef font);\n\nbool CTFontGetGlyphsForCharacters(CTFontRef font, const UniChar characters[], CGGlyph glyphs[], CFIndex count);\nbool CTFontGetVerticalGlyphsForCharacters(CTFontRef, const UniChar characters[], CGGlyph glyphs[], CFIndex count);\nbool CTFontGetGlyphsForCharacterRange(CTFontRef, CGGlyph glyphs[], CFRange);\nbool CTFontTransformGlyphs(CTFontRef, CGGlyph *glyphs, CGSize *advances, CFIndex count, CTFontTransformOptions);\nbool CTFontIsAppleColorEmoji(CTFontRef font);\nbool CTFontIsSystemUIFont(CTFontRef font);\nbool CTFontDescriptorIsSystemUIFont(CTFontDescriptorRef);\n\nvoid CTFontGetVerticalTranslationsForGlyphs(CTFontRef font, const CGGlyph glyphs[], CGSize translations[], CFIndex count);\nvoid CTFontGetUnsummedAdvancesForGlyphsAndStyle(CTFontRef, CTFontOrientation, CGFontRenderingStyle, const CGGlyph[], CGSize advances[], CFIndex count);\nvoid CTFontGetTransformedAdvancesForGlyphsAndStyle(CTFontRef, CTFontOrientation, CGFontRenderingStyle, const CGAffineTransform *, const CGGlyph[], CGSize advances[], CFIndex count);\nvoid CTFontDrawGlyphs(CTFontRef font, const CGGlyph glyphs[], const CGPoint positions[], size_t count, CGContextRef context);\nvoid CTFontDrawGlyphsAtPositions(CTFontRef font, const CGGlyph glyphs[], CGPoint positions[], size_t count, CGContextRef context);\nvoid CTRunGetGlyphs(CTRunRef run, CFRange range, CGGlyph *buffer);\nvoid CTRunGetPositions(CTRunRef run, CFRange range, CGPoint *buffer);\nvoid CTRunGetAdvances(CTRunRef run, CFRange range, CGSize *buffer);\nvoid CTRunGetStringIndices(CTRunRef run, CFRange range, CFIndex *buffer);\nvoid CTRunGetBaseAdvancesAndOrigins(CTRunRef runRef, CFRange range, CGSize *advancesBuffer, CGPoint *originsBuffer);\nvoid CTRunDraw(CTRunRef run, CGContextRef context, CFRange range);\nvoid CTFrameDraw(CTFrameRef frame, CGContextRef context);\nvoid CTFrameGetLineOrigins(CTFrameRef frame, CFRange range, CGPoint *origins);\nvoid CTLineDraw(CTLineRef line, CGContextRef context);\nvoid CTParagraphStyleSetCompositionLanguage(CTParagraphStyleRef, CTCompositionLanguage);\n\nCTFontRef CTFontCreateWithName(CFStringRef name, CGFloat size, const CGAffineTransform *matrix);\nCTFontRef CTFontCreateWithNameAndOptions(CFStringRef name, CGFloat size, const CGAffineTransform *matrix, CTFontOptions options);\nCTFontRef CTFontCreateWithFontDescriptor(CTFontDescriptorRef descriptor, CGFloat size, const CGAffineTransform *matrix);\nCTFontRef CTFontCreateWithFontDescriptorAndOptions(CTFontDescriptorRef descriptor, CGFloat size, const CGAffineTransform *matrix, CTFontOptions options);\nCTFontRef CTFontCreateWithGraphicsFont(CGFontRef graphicsFont, CGFloat size, const CGAffineTransform *matrix, CTFontDescriptorRef attributes);\nCTFontRef CTFontCreateForCharacters(CTFontRef currentFont, const UTF16Char *characters, CFIndex length, CFIndex *coveredLength);\nCTFontRef CTFontCreateForCharactersWithLanguage(CTFontRef currentFont, const UTF16Char *characters, CFIndex length, CFStringRef language, CFIndex *coveredLength);\nCTFontRef CTFontCreateForCharactersWithLanguageAndOption(CTFontRef currentFont, const UTF16Char *characters, CFIndex length, CFStringRef language, CTFontFallbackOption option, CFIndex *coveredLength);\nCTFontRef CTFontCreateUIFontForLanguage(CTFontUIFontType uiType, CGFloat size, CFStringRef language);\nCTFontRef CTFontCreateCopyWithAttributes(CTFontRef font, CGFloat size, const CGAffineTransform *matrix, CTFontDescriptorRef attributes);\nCTFontRef CTFontCreateCopyWithSymbolicTraits(CTFontRef font, CGFloat size, const CGAffineTransform *matrix, CTFontSymbolicTraits symTraitValue, CTFontSymbolicTraits symTraitMask);\nCTFontRef CTFontCreateCopyWithFamily(CTFontRef font, CGFloat size, const CGAffineTransform *matrix, CFStringRef family);\nCTFontRef CTFontCreateForString(CTFontRef currentFont, CFStringRef string, CFRange range);\nCTFontRef CTFontCreateForStringWithLanguage(CTFontRef currentFont, CFStringRef string, CFRange range, CFStringRef language);\nCTFontRef CTFontCopyPhysicalFont(CTFontRef);\n\nCTFontDescriptorRef CTFontDescriptorCreateMatchingFontDescriptor(CTFontDescriptorRef descriptor, CFSetRef mandatoryAttributes);\nCTFontDescriptorRef CTFontDescriptorCreateWithAttributes(CFDictionaryRef attributes);\nCTFontDescriptorRef CTFontDescriptorCreateWithAttributesAndOptions(CFDictionaryRef attributes, CTFontDescriptorOptions);\nCTFontDescriptorRef CTFontDescriptorCreateWithNameAndSize(CFStringRef name, CGFloat size);\nCTFontDescriptorRef CTFontDescriptorCreateWithTextStyle(CFStringRef style, CFStringRef size, CFStringRef language);\nCTFontDescriptorRef CTFontDescriptorCreateForUIType(CTFontUIFontType, CGFloat size, CFStringRef language);\nCTFontDescriptorRef CTFontDescriptorCreateCopyWithSymbolicTraits(CTFontDescriptorRef original, CTFontSymbolicTraits symTraitValue, CTFontSymbolicTraits symTraitMask);\nCTFontDescriptorRef CTFontDescriptorCreateCopyWithAttributes(CTFontDescriptorRef original, CFDictionaryRef attributes);\nCTFontDescriptorRef CTFontDescriptorCreateForCSSFamily(CFStringRef cssFamily, CFStringRef language);\nCTFontDescriptorRef CTFontDescriptorCreateLastResort(void);\nCTFontDescriptorRef CTFontCopyFontDescriptor(CTFontRef font);\n\nCTFontCollectionRef CTFontCollectionCreateFromAvailableFonts(CFDictionaryRef options);\n\nCTFontSymbolicTraits CTFontGetSymbolicTraits(CTFontRef font);\nCTFontSymbolicTraits CTFontGetPhysicalSymbolicTraits(CTFontRef font);\n\nCTFrameRef CTFramesetterCreateFrame(CTFramesetterRef framesetter, CFRange stringRange, CGPathRef path, CFDictionaryRef frameAttributes);\n\nCTFramesetterRef CTFramesetterCreateWithAttributedString(CFAttributedStringRef string);\n\nCTTypesetterRef CTFramesetterGetTypesetter(CTFramesetterRef framesetter);\nCTTypesetterRef CTTypesetterCreateWithUniCharProviderAndOptions(CTUniCharProviderCallback, CTUniCharDisposeCallback, void *refCon, CFDictionaryRef options);\n\nCTLineRef CTLineCreateWithAttributedString(CFAttributedStringRef attrString);\nCTLineRef CTLineCreateWithUniCharProvider(CTUniCharProviderCallback, CTUniCharDisposeCallback, void *refCon);\nCTLineRef CTLineCreateTruncatedLine(CTLineRef line, double width, CTLineTruncationType truncationType, CTLineRef truncationToken);\nCTLineRef CTLineCreateJustifiedLine(CTLineRef line, CGFloat justificationFactor, double justificationWidth);\n"
  },
  {
    "path": "CoreText/Types.h",
    "content": "#ifndef CORETEXT_H_\n#define CORETEXT_H_\n\n#import \"../BaseTypes.h\"\n#import \"../CoreFoundation/Types.h\"\n\ntypedef struct __CTFont *CTFontRef;\ntypedef struct __CTFontDescriptor *CTFontDescriptorRef;\ntypedef struct __CTFontCollection *CTFontCollectionRef;\ntypedef struct __CTRun *CTRunRef;\ntypedef struct __CTLine *CTLineRef;\ntypedef struct __CTTypesetter *CTTypesetterRef;\ntypedef struct __CTFrame *CTFrameRef;\ntypedef struct __CTFramesetter *CTFramesetterRef;\ntypedef struct __CTParagraphStyle *CTParagraphStyleRef;\n\nenum { kCTFontOptionsPreferSystemFont = 1 << 2 };\n\nPS_ENUM(uint32_t, CTFontOrientation) {\n    kCTFontOrientationDefault = 0,\n    kCTFontOrientationHorizontal = 1,\n    kCTFontOrientationVertical = 2\n};\n\nPS_ENUM(uint32_t, CTFontDescriptorOptions) { kCTFontDescriptorOptionSystemUIFont = 1 << 1, kCTFontDescriptorOptionPreferAppleSystemFont = kCTFontOptionsPreferSystemFont };\n\nenum { kCTFontClassMaskShift = 28 };\n\nPS_ENUM(uint32_t, CTFontSymbolicTraits) {\n    kCTFontTraitItalic = (1 << 0),\n    kCTFontTraitBold = (1 << 1),\n    kCTFontTraitExpanded = (1 << 5),\n    kCTFontTraitCondensed = (1 << 6),\n    kCTFontTraitMonoSpace = (1 << 10),\n    kCTFontTraitVertical = (1 << 11),\n    kCTFontTraitUIOptimized = (1 << 12),\n    kCTFontTraitColorGlyphs = (1 << 13),\n    kCTFontTraitComposite = (1 << 14),\n    kCTFontTraitClassMask = (15U << kCTFontClassMaskShift),\n    kCTFontItalicTrait = kCTFontTraitItalic,\n    kCTFontBoldTrait = kCTFontTraitBold,\n    kCTFontExpandedTrait = kCTFontTraitExpanded,\n    kCTFontCondensedTrait = kCTFontTraitCondensed,\n    kCTFontMonoSpaceTrait = kCTFontTraitMonoSpace,\n    kCTFontVerticalTrait = kCTFontTraitVertical,\n    kCTFontUIOptimizedTrait = kCTFontTraitUIOptimized,\n    kCTFontColorGlyphsTrait = kCTFontTraitColorGlyphs,\n    kCTFontCompositeTrait = kCTFontTraitComposite,\n    kCTFontClassMaskTrait = kCTFontTraitClassMask\n};\n\nPS_ENUM(uint32_t, CTFontUIFontType) {\n    kCTFontUIFontNone = (uint32_t)-1,\n    kCTFontUIFontUser = 0,\n    kCTFontUIFontUserFixedPitch = 1,\n    kCTFontUIFontSystem = 2,\n    kCTFontUIFontEmphasizedSystem = 3,\n    kCTFontUIFontSmallSystem = 4,\n    kCTFontUIFontSmallEmphasizedSystem = 5,\n    kCTFontUIFontMiniSystem = 6,\n    kCTFontUIFontMiniEmphasizedSystem = 7,\n    kCTFontUIFontViews = 8,\n    kCTFontUIFontApplication = 9,\n    kCTFontUIFontLabel = 10,\n    kCTFontUIFontMenuTitle = 11,\n    kCTFontUIFontMenuItem = 12,\n    kCTFontUIFontMenuItemMark = 13,\n    kCTFontUIFontMenuItemCmdKey = 14,\n    kCTFontUIFontWindowTitle = 15,\n    kCTFontUIFontPushButton = 16,\n    kCTFontUIFontUtilityWindowTitle = 17,\n    kCTFontUIFontAlertHeader = 18,\n    kCTFontUIFontSystemDetail = 19,\n    kCTFontUIFontEmphasizedSystemDetail = 20,\n    kCTFontUIFontToolbar = 21,\n    kCTFontUIFontSmallToolbar = 22,\n    kCTFontUIFontMessage = 23,\n    kCTFontUIFontPalette = 24,\n    kCTFontUIFontToolTip = 25,\n    kCTFontUIFontControlContent = 26,\n\n    kCTFontNoFontType = kCTFontUIFontNone,\n    kCTFontUserFontType = kCTFontUIFontUser,\n    kCTFontUserFixedPitchFontType = kCTFontUIFontUserFixedPitch,\n    kCTFontSystemFontType = kCTFontUIFontSystem,\n    kCTFontEmphasizedSystemFontType = kCTFontUIFontEmphasizedSystem,\n    kCTFontSmallSystemFontType = kCTFontUIFontSmallSystem,\n    kCTFontSmallEmphasizedSystemFontType = kCTFontUIFontSmallEmphasizedSystem,\n    kCTFontMiniSystemFontType = kCTFontUIFontMiniSystem,\n    kCTFontMiniEmphasizedSystemFontType = kCTFontUIFontMiniEmphasizedSystem,\n    kCTFontViewsFontType = kCTFontUIFontViews,\n    kCTFontApplicationFontType = kCTFontUIFontApplication,\n    kCTFontLabelFontType = kCTFontUIFontLabel,\n    kCTFontMenuTitleFontType = kCTFontUIFontMenuTitle,\n    kCTFontMenuItemFontType = kCTFontUIFontMenuItem,\n    kCTFontMenuItemMarkFontType = kCTFontUIFontMenuItemMark,\n    kCTFontMenuItemCmdKeyFontType = kCTFontUIFontMenuItemCmdKey,\n    kCTFontWindowTitleFontType = kCTFontUIFontWindowTitle,\n    kCTFontPushButtonFontType = kCTFontUIFontPushButton,\n    kCTFontUtilityWindowTitleFontType = kCTFontUIFontUtilityWindowTitle,\n    kCTFontAlertHeaderFontType = kCTFontUIFontAlertHeader,\n    kCTFontSystemDetailFontType = kCTFontUIFontSystemDetail,\n    kCTFontEmphasizedSystemDetailFontType = kCTFontUIFontEmphasizedSystemDetail,\n    kCTFontToolbarFontType = kCTFontUIFontToolbar,\n    kCTFontSmallToolbarFontType = kCTFontUIFontSmallToolbar,\n    kCTFontMessageFontType = kCTFontUIFontMessage,\n    kCTFontPaletteFontType = kCTFontUIFontPalette,\n    kCTFontToolTipFontType = kCTFontUIFontToolTip,\n    kCTFontControlContentFontType = kCTFontUIFontControlContent\n};\n\nPS_ENUM(uint32_t, CTRunStatus) { kCTRunStatusNoStatus = 0, kCTRunStatusRightToLeft = (1 << 0), kCTRunStatusNonMonotonic = (1 << 1), kCTRunStatusHasNonIdentityMatrix = (1 << 2) };\n\nPS_ENUM(uint32_t, CTLineBoundsOptions) {\n    kCTLineBoundsExcludeTypographicLeading = 1 << 0,\n    kCTLineBoundsExcludeTypographicShifts = 1 << 1,\n    kCTLineBoundsUseHangingPunctuation = 1 << 2,\n    kCTLineBoundsUseGlyphPathBounds = 1 << 3,\n    kCTLineBoundsUseOpticalBounds = 1 << 4,\n    kCTLineBoundsIncludeLanguageExtents = 1 << 5,\n};\n\nPS_ENUM(uint32_t, CTLineTruncationType) { kCTLineTruncationStart = 0, kCTLineTruncationEnd = 1, kCTLineTruncationMiddle = 2 };\n\nPS_ENUM(CFOptionFlags, CTFontFallbackOption) {\n    kCTFontFallbackOptionNone = 0,\n    kCTFontFallbackOptionSystem = 1 << 0,\n    kCTFontFallbackOptionUserInstalled = 1 << 1,\n    kCTFontFallbackOptionDefault = kCTFontFallbackOptionSystem | kCTFontFallbackOptionUserInstalled,\n};\n\nPS_ENUM(uint32_t, CTFontTransformOptions) {\n    kCTFontTransformApplyShaping = (1 << 0),\n    kCTFontTransformApplyPositioning = (1 << 1)\n};\n\nPS_ENUM(CFOptionFlags, CTFontShapeOptions) {\n    kCTFontShapeWithKerning = (1 << 0),\n    kCTFontShapeWithClusterComposition = (1 << 1),\n    kCTFontShapeRightToLeft = (1 << 2),\n};\n\nPS_ENUM(uint8_t, CTCompositionLanguage) {\n    kCTCompositionLanguageUnset,\n    kCTCompositionLanguageNone,\n    kCTCompositionLanguageJapanese,\n    kCTCompositionLanguageSimplifiedChinese,\n    kCTCompositionLanguageTraditionalChinese,\n};\n\ntypedef CFOptionFlags CTFontOptions;\n\ntypedef const UniChar *(*CTUniCharProviderCallback)(CFIndex stringIndex, CFIndex *charCount, CFDictionaryRef *attributes, void *refCon);\ntypedef void (*CTUniCharDisposeCallback)(const UniChar *chars, void *refCon);\n\n#endif"
  },
  {
    "path": "CoreVideo/CoreVideo.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../Kernel/Types.h\"\n#import \"../CoreGraphics/Types.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"../IOSurface/Types.h\"\n#import \"Types.h\"\n\nBoolean CVImageBufferIsFlipped(CVImageBufferRef imageBuffer);\nBoolean CVPixelBufferIsPlanar(CVPixelBufferRef pixelBuffer);\n\nCFDictionaryRef CVBufferGetAttachments(CVBufferRef buffer, CVAttachmentMode attachmentMode);\nCFDictionaryRef CVPixelBufferPoolGetPixelBufferAttributes(CVPixelBufferPoolRef pool);\nCFDictionaryRef CVPixelFormatDescriptionGetDescriptionWithPixelFormatType(OSType pixelFormatType);\n\nCFTypeID CVPixelBufferGetTypeID(void);\n\nCFTypeRef CVBufferGetAttachment(CVBufferRef buffer, CFStringRef key, CVAttachmentMode *attachmentMode);\n\nCGColorSpaceRef CVImageBufferCreateColorSpaceFromAttachments(CFDictionaryRef attachments);\n\nCGRect CVImageBufferGetCleanRect(CVImageBufferRef imageBuffer);\n\nCGSize CVImageBufferGetDisplaySize(CVImageBufferRef imageBuffer);\nCGSize CVImageBufferGetEncodedSize(CVImageBufferRef imageBuffer);\n\nCVPixelBufferRef CVPixelBufferRetain(CVPixelBufferRef texture);\n\nCVPixelBufferPoolRef CVPixelBufferPoolRetain(CVPixelBufferPoolRef pixelBufferPool);\n\nCVReturn CVPixelBufferCreate(CFAllocatorRef allocator, size_t width, size_t height, OSType pixelFormatType, CFDictionaryRef pixelBufferAttributes, CVPixelBufferRef *pixelBufferOut);\nCVReturn CVPixelBufferCreateResolvedAttributesDictionary(CFAllocatorRef allocator, CFArrayRef attributes, CFDictionaryRef *resolvedDictionaryOut);\nCVReturn CVPixelBufferCreateWithBytes(CFAllocatorRef allocator, size_t width, size_t height, OSType pixelFormatType, void *baseAddress, size_t bytesPerRow, CVPixelBufferReleaseBytesCallback releaseCallback, void *releaseRefCon, CFDictionaryRef pixelBufferAttributes, CVPixelBufferRef *pixelBufferOut);\nCVReturn CVPixelBufferLockBaseAddress(CVPixelBufferRef pixelBuffer, CVPixelBufferLockFlags lockFlags);\nCVReturn CVPixelBufferPoolCreate(CFAllocatorRef allocator, CFDictionaryRef poolAttributes, CFDictionaryRef pixelBufferAttributes, CVPixelBufferPoolRef *poolOut);\nCVReturn CVPixelBufferPoolCreatePixelBuffer(CFAllocatorRef allocator, CVPixelBufferPoolRef pixelBufferPool, CVPixelBufferRef *pixelBufferOut);\nCVReturn CVPixelBufferPoolCreatePixelBufferWithAuxAttributes(CFAllocatorRef allocator, CVPixelBufferPoolRef pixelBufferPool, CFDictionaryRef auxAttributes, CVPixelBufferRef *pixelBufferOut);\nCVReturn CVPixelBufferUnlockBaseAddress(CVPixelBufferRef pixelBuffer, CVPixelBufferLockFlags unlockFlags);\n\nIOSurfaceRef CVPixelBufferGetIOSurface(CVPixelBufferRef pixelBuffer);\n\nOSType CVPixelBufferGetPixelFormatType(CVPixelBufferRef pixelBuffer);\n\nsize_t CVPixelBufferGetBytesPerRow(CVPixelBufferRef pixelBuffer);\nsize_t CVPixelBufferGetBytesPerRowOfPlane(CVPixelBufferRef pixelBuffer, size_t planeIndex);\nsize_t CVPixelBufferGetDataSize(CVPixelBufferRef pixelBuffer);\nsize_t CVPixelBufferGetHeight(CVPixelBufferRef pixelBuffer);\nsize_t CVPixelBufferGetHeightOfPlane(CVPixelBufferRef pixelBuffer, size_t planeIndex);\nsize_t CVPixelBufferGetPlaneCount(CVPixelBufferRef pixelBuffer);\nsize_t CVPixelBufferGetWidth(CVPixelBufferRef pixelBuffer);\nsize_t CVPixelBufferGetWidthOfPlane(CVPixelBufferRef pixelBuffer, size_t planeIndex);\n\nvoid *CVPixelBufferGetBaseAddress(CVPixelBufferRef pixelBuffer);\nvoid *CVPixelBufferGetBaseAddressOfPlane(CVPixelBufferRef pixelBuffer, size_t planeIndex);\n\nvoid CVPixelBufferGetExtendedPixels(CVPixelBufferRef pixelBuffer, size_t *extraColumnsOnLeft, size_t *extraColumnsOnRight, size_t *extraRowsOnTop, size_t *extraRowsOnBottom);\nvoid CVPixelBufferPoolFlush(CVPixelBufferPoolRef pool, CVPixelBufferPoolFlushFlags options);\nvoid CVPixelBufferPoolRelease(CVPixelBufferPoolRef pixelBufferPool);\nvoid CVPixelBufferRelease(CVPixelBufferRef texture);\n"
  },
  {
    "path": "CoreVideo/Types.h",
    "content": "#ifndef COREVIDEO_H_\n#define COREVIDEO_H_\n\n#import \"../BaseTypes.h\"\n\ntypedef struct __CVBuffer *CVBufferRef;\ntypedef struct __CVPixelBufferPool *CVPixelBufferPoolRef;\n\ntypedef CVBufferRef CVImageBufferRef;\ntypedef CVImageBufferRef CVPixelBufferRef;\n\ntypedef uint64_t CVOptionFlags;\n\ntypedef int32_t CVReturn;\n\nPS_ENUM(uint32_t, CVAttachmentMode) {\n    kCVAttachmentMode_ShouldNotPropagate    = 0,\n    kCVAttachmentMode_ShouldPropagate       = 1\n};\n\nPS_ENUM(CVOptionFlags, CVPixelBufferLockFlags) {\n    kCVPixelBufferLock_ReadOnly = 0x00000001,\n};\n\nPS_ENUM(CVOptionFlags, CVPixelBufferPoolFlushFlags) {\n    kCVPixelBufferPoolFlushExcessBuffers = 1,\n};\n\ntypedef void (*CVPixelBufferReleaseBytesCallback)(void *releaseRefCon, const void *baseAddress);\n\n#endif"
  },
  {
    "path": "CydiaSubstrate/CydiaSubstrate.h",
    "content": "/* Cydia Substrate - Powerful Code Insertion Platform\n * Copyright (C) 2008-2019  Jay Freeman (saurik)\n*/\n\n/*\n *        Redistribution and use in source and binary\n * forms, with or without modification, are permitted\n * provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the\n *    above copyright notice, this list of conditions\n *    and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the\n *    above copyright notice, this list of conditions\n *    and the following disclaimer in the documentation\n *    and/or other materials provided with the\n *    distribution.\n * 3. The name of the author may not be used to endorse\n *    or promote products derived from this software\n *    without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,\n * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\n * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n\n#import \"Types.h\"\n#import \"../Kernel/Types.h\"\n#import \"../objc/Types.h\"\n\nbool MSHookProcess(pid_t pid, const char *library);\n\nMSImageRef MSMapImage(const char *file);\nMSImageRef MSGetImageByName(const char *file);\n\nconst MSImageHeader *MSImageAddress(MSImageRef image);\n\nvoid *MSFindSymbol(MSImageRef image, const char *name);\n\nchar *MSFindAddress(MSImageRef image, void **address);\n\nvoid MSCloseImage(MSImageRef);\nvoid MSHookFunction(void *symbol, void *replace, void **result);\nvoid MSHookMemory(void *target, const void *data, size_t size);\nvoid MSHookMessageEx(Class _class, SEL sel, IMP imp, IMP *result);\nvoid _MSHookMessageEx(Class _class, SEL sel, IMP imp, IMP *result);\nvoid MSHookClassPair(Class target, Class hook, Class old);\n\n#ifdef __arm__\nIMP MSHookMessage(Class _class, SEL sel, IMP imp, const char *prefix);\n#endif\n"
  },
  {
    "path": "CydiaSubstrate/Types.h",
    "content": "#ifndef SUBSTRATE_H_\n#define SUBSTRATE_H_\n\n#ifndef __EA64__\ntypedef struct mach_header MSImageHeader;\n#else\ntypedef struct mach_header_64 MSImageHeader;\n#endif\n\ntypedef const void *MSImageRef;\n\n#endif\n"
  },
  {
    "path": "Darwin/Darwin.h",
    "content": "#import \"../pthread/Types.h\"\n#import \"Types.h\"\n\nbool dispatch_data_apply(dispatch_data_t data, dispatch_data_applier_t applier);\nbool dispatch_mach_mig_demux(void *context, const struct mig_subsystem *const subsystems[], size_t count, dispatch_mach_msg_t dmsg);\nbool notify_is_valid_token(int val);\n\nchar *__strcat_chk(char *dest, const char *src, size_t destlen);\nchar *__strcpy_chk(char *dest, const char *src, size_t destlen);\nchar *__strncat_chk(char *dest, const char *src, size_t len, size_t dstlen);\nchar **backtrace_symbols(void * const *array, int size);\n\ndispatch_block_t dispatch_block_create(dispatch_block_flags_t flags, dispatch_block_t block);\ndispatch_block_t dispatch_block_create_with_qos_class(dispatch_block_flags_t flags, dispatch_qos_class_t qos_class, int relative_priority, dispatch_block_t block);\ndispatch_block_t dispatch_block_create_with_voucher(dispatch_block_flags_t flags, voucher_t voucher, dispatch_block_t block);\ndispatch_block_t dispatch_block_create_with_voucher_and_qos_class(dispatch_block_flags_t flags, voucher_t voucher, dispatch_qos_class_t qos_class, int relative_priority, dispatch_block_t block);\n\ndispatch_data_t dispatch_data_copy_region(dispatch_data_t data, size_t location, size_t *offset_ptr);\ndispatch_data_t dispatch_data_create_alloc(size_t size, void** buffer_ptr);\ndispatch_data_t dispatch_data_create_concat(dispatch_data_t data1, dispatch_data_t data2);\ndispatch_data_t dispatch_data_create_map(dispatch_data_t data, const void **buffer_ptr, size_t *size_ptr);\ndispatch_data_t dispatch_data_create_subrange(dispatch_data_t data, size_t offset, size_t length);\ndispatch_data_t dispatch_data_create(const void *buffer, size_t size, dispatch_queue_t queue, dispatch_block_t destructor);\n\ndispatch_io_t dispatch_io_create_with_io(dispatch_io_type_t type, dispatch_io_t io, dispatch_queue_t queue, void (*cleanup_handler)(int error));\ndispatch_io_t dispatch_io_create_with_path(dispatch_io_type_t type, const char *path, int oflag, mode_t mode, dispatch_queue_t queue, void (*cleanup_handler)(int error));\ndispatch_io_t dispatch_io_create(dispatch_io_type_t type, dispatch_fd_t fd, dispatch_queue_t queue, void (*cleanup_handler)(int error));\n\ndispatch_mach_msg_t dispatch_mach_msg_create(mach_msg_header_t *msg, size_t size, dispatch_mach_msg_destructor_t destructor, mach_msg_header_t **msg_ptr);\n\ndispatch_mach_t dispatch_mach_create_f(const char *label, dispatch_queue_t queue, void *context, dispatch_mach_handler_function_t handler);\ndispatch_mach_t dispatch_mach_create(const char *label, dispatch_queue_t queue, dispatch_mach_handler_t handler);\n\ndispatch_queue_attr_t dispatch_queue_attr_make_initially_inactive(dispatch_queue_attr_t attr);\ndispatch_queue_attr_t dispatch_queue_attr_make_with_autorelease_frequency(dispatch_queue_attr_t attr, dispatch_autorelease_frequency_t frequency);\ndispatch_queue_attr_t dispatch_queue_attr_make_with_overcommit(dispatch_queue_attr_t attr, bool overcommit);\ndispatch_queue_attr_t dispatch_queue_attr_make_with_qos_class(dispatch_queue_attr_t attr, dispatch_qos_class_t qos_class, int relative_priority);\n\ndispatch_queue_global_t _dispatch_pthread_root_queue_create_with_observer_hooks_4IOHID(const char *label, unsigned long flags, const pthread_attr_t *attr, dispatch_pthread_root_queue_observer_hooks_t observer_hooks, dispatch_block_t configure);\ndispatch_queue_global_t dispatch_get_global_queue(intptr_t identifier, uintptr_t flags);\n\ndispatch_queue_t dispatch_pthread_root_queue_create(const char *label, unsigned long flags,\tconst pthread_attr_t *attr, dispatch_block_t configure);\ndispatch_queue_t dispatch_queue_create_with_target$V2(const char *label, dispatch_queue_attr_t attr, dispatch_queue_t target);\n\ndispatch_semaphore_t dispatch_semaphore_create(intptr_t value);\n\ndispatch_source_t dispatch_source_create(dispatch_source_type_t type, uintptr_t handle, uintptr_t mask, dispatch_queue_t queue);\n\ndispatch_workloop_t dispatch_workloop_create_inactive(const char *label);\ndispatch_workloop_t dispatch_workloop_create(const char *label);\n\ndouble __exp10(double);\n\nerrno_t memset_s(void *dest, rsize_t destsz, int ch, rsize_t count);\n\nfloat __exp10f(float);\n\nint _stdlib_memcmp(const void *s1, const void *s2, size_t n);\nint backtrace(void **array, int size);\nint reboot3(uint64_t flags, ...);\n\nintptr_t dispatch_block_testcancel(dispatch_block_t block);\nintptr_t dispatch_block_wait(dispatch_block_t block, dispatch_time_t timeout);\nintptr_t dispatch_group_wait(dispatch_group_t group, dispatch_time_t timeout);\nintptr_t dispatch_semaphore_signal(dispatch_semaphore_t dsema);\nintptr_t dispatch_semaphore_wait(dispatch_semaphore_t dsema, dispatch_time_t timeout);\nintptr_t dispatch_source_testcancel(dispatch_source_t source);\n\nmach_msg_header_t *dispatch_mach_msg_get_msg(dispatch_mach_msg_t message, size_t *size_ptr);\n\nmach_msg_return_t dispatch_mig_server(dispatch_source_t ds, size_t maxmsgsz, dispatch_mig_callback_t callback);\n\nmach_port_t dispatch_mach_get_checkin_port(dispatch_mach_t channel);\n\nsize_t __strlcat_chk(char *dest, char *src, size_t len, size_t dstlen);\nsize_t __strlcpy_chk(char *dest, char *src, size_t len, size_t dstlen);\nsize_t _stdlib_malloc_size(const void *ptr);\nsize_t dispatch_data_get_size(dispatch_data_t data);\n\nstruct __double2 __sincos_stret(double);\nstruct __double2 __sincospi_stret(double);\nstruct __double2 { double __sinval; double __cosval; };\nstruct __float2 __sincosf_stret(float);\nstruct __float2 __sincospif_stret(float);\nstruct __float2 { float __sinval; float __cosval; };\n\nuint32_t notify_register_dispatch(const char *name, int *out_token, dispatch_queue_t queue, notify_handler_t handler);\n\nuintptr_t dispatch_source_get_mask(dispatch_source_t source);\n\nvoid *__memcpy_chk(void *dest, const void *src, size_t len, size_t dstlen);\nvoid *__memmove_chk(void *dest, const void *src, size_t len, size_t dstlen);\nvoid *__memset_chk(void *dstpp, int c, size_t len, size_t dstlen);\nvoid *__strncpy_chk(char *dest, char *src, size_t len, size_t dstlen);\nvoid *bsearch_b(const void *, const void *, size_t, size_t, int (*)(const void *, const void *));\nvoid *dispatch_mach_mig_demux_get_context(void);\n\nvoid abort_report_np(const char *, ...);\nvoid backtrace_symbols_fd(void * const *array, int size, int fd);\nvoid dispatch_activate(dispatch_object_t object);\nvoid dispatch_after(dispatch_time_t when, dispatch_queue_t queue, dispatch_block_t block);\nvoid dispatch_apply(size_t iterations, dispatch_queue_t queue, void (*block)(size_t));\nvoid dispatch_assert_queue_not$V2(dispatch_queue_t queue);\nvoid dispatch_assert_queue(dispatch_queue_t queue);\nvoid dispatch_assert_queue$V2(dispatch_queue_t queue);\nvoid dispatch_async_and_wait(dispatch_queue_t queue, dispatch_block_t block);\nvoid dispatch_async(dispatch_queue_t queue, dispatch_block_t block);\nvoid dispatch_barrier_async(dispatch_queue_t queue, dispatch_block_t block);\nvoid dispatch_barrier_sync(dispatch_queue_t queue, dispatch_block_t block);\nvoid dispatch_block_cancel(dispatch_block_t block);\nvoid dispatch_group_async(dispatch_group_t group, dispatch_queue_t queue, dispatch_block_t block);\nvoid dispatch_group_notify(dispatch_group_t group, dispatch_queue_t queue, dispatch_block_t block);\nvoid dispatch_io_barrier(dispatch_io_t channel, dispatch_block_t barrier);\nvoid dispatch_io_close(dispatch_io_t channel, dispatch_io_close_flags_t flags);\nvoid dispatch_io_read(dispatch_io_t channel, off_t offset, size_t length, dispatch_queue_t queue, dispatch_io_handler_t io_handler);\nvoid dispatch_mach_cancel(dispatch_mach_t channel);\nvoid dispatch_mach_connect(dispatch_mach_t channel, mach_port_t receive, mach_port_t send, dispatch_mach_msg_t checkin);\nvoid dispatch_mach_receive_barrier_f(dispatch_mach_t channel, void *context, dispatch_function_t barrier);\nvoid dispatch_mach_receive_barrier(dispatch_mach_t channel, dispatch_block_t barrier);\nvoid dispatch_mach_reconnect(dispatch_mach_t channel, mach_port_t send, dispatch_mach_msg_t checkin);\nvoid dispatch_mach_send_barrier_f(dispatch_mach_t channel, void *context, dispatch_function_t barrier);\nvoid dispatch_mach_send_barrier(dispatch_mach_t channel, dispatch_block_t barrier);\nvoid dispatch_once(dispatch_once_t *predicate, dispatch_block_t block);\nvoid dispatch_queue_set_label_nocopy(dispatch_queue_t queue, const char *label);\nvoid dispatch_read(dispatch_fd_t fd, size_t length, dispatch_queue_t queue, void (*handler)(dispatch_data_t data, int error));\nvoid dispatch_set_qos_class_fallback(dispatch_object_t object, dispatch_qos_class_t qos_class);\nvoid dispatch_set_qos_class_floor(dispatch_object_t object, dispatch_qos_class_t qos_class, int relative_priority);\nvoid dispatch_source_merge_data(dispatch_source_t source, uintptr_t value);\nvoid dispatch_source_set_cancel_handler(dispatch_source_t source, dispatch_block_t handler);\nvoid dispatch_source_set_event_handler(dispatch_source_t source, dispatch_block_t handler);\nvoid dispatch_source_set_mandatory_cancel_handler(dispatch_source_t source, dispatch_block_t handler);\nvoid dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);\nvoid dispatch_workloop_set_autorelease_frequency(dispatch_workloop_t workloop, dispatch_autorelease_frequency_t frequency);\nvoid dispatch_workloop_set_scheduler_priority(dispatch_workloop_t workloop, int priority, dispatch_workloop_param_flags_t flags);\nvoid dispatch_write(dispatch_fd_t fd, dispatch_data_t data, dispatch_queue_t queue, void (*handler)(dispatch_data_t data, int error));\nvoid qsort_b(void *base, size_t nel, size_t width, int (*compar)(const void *, const void *));\n"
  },
  {
    "path": "Darwin/Types.h",
    "content": "#ifndef MY_DARWIN_H_\n#define MY_DARWIN_H_\n\n#import \"../BaseTypes.h\"\n#import \"../Foundation/Types.h\"\n#import \"../Kernel/Types.h\"\n\ntypedef uint32_t mach_error_t;\ntypedef uint32_t dispatch_lock;\ntypedef uint32_t dispatch_priority_t;\ntypedef uint64_t dispatch_time_t;\ntypedef intptr_t dispatch_once_t;\ntypedef unsigned long dispatch_io_type_t;\ntypedef unsigned long dispatch_io_close_flags_t;\ntypedef unsigned long dispatch_block_flags_t;\ntypedef unsigned long dispatch_workloop_param_flags_t;\ntypedef unsigned long dispatch_autorelease_frequency_t;\ntypedef int opaque_t;\ntypedef int dispatch_fd_t;\ntypedef long dispatch_queue_priority_t;\n\nPS_ENUM(unsigned int, qos_class_t) {\n    QOS_CLASS_USER_INTERACTIVE = 0x21,\n    QOS_CLASS_USER_INITIATED = 0x19,\n    QOS_CLASS_DEFAULT = 0x15,\n    QOS_CLASS_UTILITY = 0x11,\n    QOS_CLASS_BACKGROUND = 0x09,\n    QOS_CLASS_UNSPECIFIED = 0x00\n};\n\ntypedef NSObject *dispatch_object_t;\ntypedef NSObject *dispatch_source_t;\ntypedef NSObject *dispatch_group_t;\ntypedef NSObject *dispatch_data_t;\ntypedef NSObject *dispatch_workloop_t;\ntypedef NSObject *dispatch_queue_global_t;\ntypedef NSObject *dispatch_io_t;\ntypedef NSObject *dispatch_semaphore_t;\n\ntypedef const struct dispatch_source_type_s *dispatch_source_type_t;\ntypedef struct dispatch_queue_s *dispatch_queue_t;\ntypedef struct dispatch_queue_attr_s *dispatch_queue_attr_t;\ntypedef struct dispatch_mach_s *dispatch_mach_t;\ntypedef struct dispatch_mach_msg_s *dispatch_mach_msg_t;\ntypedef struct voucher_s *voucher_t;\n\ntypedef struct dispatch_unfair_lock_s {\n    dispatch_lock dul_lock;\n} dispatch_unfair_lock_s, *dispatch_unfair_lock_t;\n\ntypedef struct dispatch_pthread_root_queue_observer_hooks_s {\n    void (*queue_will_execute)(dispatch_queue_t queue);\n    void (*queue_did_execute)(dispatch_queue_t queue);\n} * dispatch_pthread_root_queue_observer_hooks_t;\n\ntypedef qos_class_t dispatch_qos_class_t;\n\nenum dispatch_mach_reason_t {\n    DISPATCH_MACH_CONNECTED = 1,\n    DISPATCH_MACH_MESSAGE_RECEIVED,\n    DISPATCH_MACH_MESSAGE_SENT,\n    DISPATCH_MACH_MESSAGE_SEND_FAILED,\n    DISPATCH_MACH_MESSAGE_NOT_SENT,\n    DISPATCH_MACH_BARRIER_COMPLETED,\n    DISPATCH_MACH_DISCONNECTED,\n    DISPATCH_MACH_CANCELED,\n    DISPATCH_MACH_REASON_LAST,\n};\n\nenum dispatch_mach_msg_destructor_t {\n    DISPATCH_MACH_MSG_DESTRUCTOR_DEFAULT = 0,\n    DISPATCH_MACH_MSG_DESTRUCTOR_FREE,\n    DISPATCH_MACH_MSG_DESTRUCTOR_VM_DEALLOCATE,\n};\n\ntypedef mach_msg_context_trailer_t dispatch_mach_trailer_t;\n\n#define DISPATCH_MACH_RECEIVE_MAX_INLINE_MESSAGE_SIZE (0x4000 - sizeof(dispatch_mach_trailer_t))\n\ntypedef void (*notify_handler_t)(int token);\ntypedef void (*dispatch_block_t)(void);\ntypedef void (*dispatch_function_t)(void *);\ntypedef void (*dispatch_io_handler_t)(bool done, dispatch_data_t data, int error);\ntypedef void (*dispatch_mach_handler_t)(dispatch_mach_reason_t reason, dispatch_mach_msg_t message,\n                                        mach_error_t error);\ntypedef void (*dispatch_mach_handler_function_t)(void *context, dispatch_mach_reason_t reason,\n                                                 dispatch_mach_msg_t message, mach_error_t error);\n\ntypedef bool (*dispatch_data_applier_t)(dispatch_data_t region, size_t offset, const void *buffer,\n                                        size_t size);\n\ntypedef boolean_t (*dispatch_mig_callback_t)(mach_msg_header_t *message, mach_msg_header_t *reply);\n\n// problematic\nextern struct dispatch_queue_s _dispatch_main_q;\nextern struct dispatch_queue_attr_s _dispatch_queue_attr_concurrent;\n\n#endif"
  },
  {
    "path": "Foundation/Foundation.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../CoreGraphics/Types.h\"\n#import \"../UIKit/Types.h\"\n#import \"Types.h\"\n\nBOOL NSCompareHashTables(NSHashTable *table1, NSHashTable *table2);\nBOOL NSCompareMapTables(NSMapTable *table1, NSMapTable *table2);\nBOOL NSContainsRect(NSRect aRect, NSRect bRect);\nBOOL NSEqualPoints(NSPoint aPoint, NSPoint bPoint);\nBOOL NSEqualRects(NSRect aRect, NSRect bRect);\nBOOL NSEqualSizes(NSSize aSize, NSSize bSize);\nBOOL NSIntersectsRange(NSRange aRange, NSRange bRange);\nBOOL NSIntersectsRect(NSRect aRect, NSRect bRect);\nBOOL NSIsEmptyRect(NSRect aRect);\nBOOL NSMapMember(NSMapTable *table, const void *key, void **originalKey, void **value);\nBOOL NSNextMapEnumeratorPair(NSMapEnumerator *enumerator, void **key, void **value);\nBOOL NSPointInRect(NSPoint aPoint, NSRect aRect);\n\nCGFloat NSHeight(NSRect aRect);\nCGFloat NSMaxX(NSRect aRect);\nCGFloat NSMaxY(NSRect aRect);\nCGFloat NSMidX(NSRect aRect);\nCGFloat NSMidY(NSRect aRect);\nCGFloat NSMinX(NSRect aRect);\nCGFloat NSMinY(NSRect aRect);\nCGFloat NSWidth(NSRect aRect);\n\nClass NSClassFromString(CFStringRef string);\n\nconst char *NSGetSizeAndAlignment(const char *typePtr, NSUInteger *sizep, NSUInteger *alignp);\n\nid NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone);\n\nNSArray *NSAllMapTableKeys(NSMapTable *table);\nNSArray *NSAllMapTableValues(NSMapTable *table);\nNSArray *NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask, BOOL expandTilde);\n\nNSDictionary *_NSDictionaryOfVariableBindings(NSString *commaSeparatedKeysString, id firstValue, ...);\n\nNSHashEnumerator NSEnumerateHashTable(NSHashTable *table);\n\nNSHashTable *NSCreateHashTable(NSHashTableCallBacks callBacks, NSUInteger capacity);\n\nNSMapEnumerator NSEnumerateMapTable(NSMapTable *table);\n\nNSMapTable *NSCreateMapTable(NSMapTableKeyCallBacks keyCallBacks, NSMapTableValueCallBacks valueCallBacks, NSUInteger capacity);\nNSMapTable *NSCreateMapTableWithZone(NSMapTableKeyCallBacks keyCallBacks, NSMapTableValueCallBacks valueCallBacks, NSUInteger capacity, NSZone *zone);\n\nNSPoint NSPointFromString(CFNSString aString);\n\nNSRange NSIntersectionRange(NSRange range1, NSRange range2);\nNSRange NSRangeFromString(CFNSString aString);\nNSRange NSUnionRange(NSRange range1, NSRange range2);\n\nNSRect NSInsetRect(NSRect aRect, CGFloat dX, CGFloat dY);\nNSRect NSIntegralRect(NSRect aRect);\nNSRect NSIntegralRectWithOptions(NSRect aRect, NSAlignmentOptions opts);\nNSRect NSIntersectionRect(NSRect aRect, NSRect bRect);\nNSRect NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h);\nNSRect NSRectFromString(NSString *aString);\nNSRect NSUnionRect(NSRect aRect, NSRect bRect);\n\nNSString *NSHomeDirectory(void);\nNSString *NSOpenStepRootDirectory(void);\nNSString *NSStringFromBOOL(BOOL theBOOL);\nNSString *NSStringFromClass(Class aClass);\nNSString *NSStringFromPoint(NSPoint aPoint);\nNSString *NSStringFromProtocol(Protocol *proto);\nNSString *NSStringFromRange(NSRange range);\nNSString *NSStringFromRect(NSRect aRect);\nNSString *NSStringFromSelector(SEL aSelector);\nNSString *NSStringFromSize(NSSize aSize);\nNSString *NSTemporaryDirectory(void);\n\nNSUInteger NSCountMapTable(NSMapTable *table);\nNSUInteger NSPageSize(void);\nNSUInteger NSRoundUpToMultipleOfPageSize(NSUInteger bytes);\n\nNSUncaughtExceptionHandler *NSGetUncaughtExceptionHandler(void);\n\nNSZone *NSZoneFromPointer(void *ptr);\n\nProtocol *NSProtocolFromString(CFStringRef namestr);\n\nSEL NSSelectorFromString(CFStringRef aSelectorName);\n\nunsigned __NSHashCString(void *table, const void *anObject);\nunsigned NSHashCString(unsigned char *str, int n);\n\nvoid *NSHashGet(NSHashTable *table, const void *pointer);\nvoid *NSMapGet(NSMapTable *table, const void *key);\nvoid *NSMapInsertIfAbsent(NSMapTable *table, const void *key, const void *value);\nvoid *NSNextHashEnumeratorItem(NSHashEnumerator *enumerator);\nvoid *NSPushAutoreleasePool(NSUInteger capacity);\nvoid *NSReallocateCollectable(void *ptr, NSUInteger size, NSUInteger options);\nvoid *NSZoneCalloc(NSZone *zone, NSUInteger numElems, NSUInteger byteSize);\nvoid *NSZoneMalloc(NSZone *zone, NSUInteger size);\nvoid *NSZoneRealloc(NSZone *zone, void *ptr, NSUInteger size);\n\nvoid NSDeallocateObject(id object);\nvoid NSDivideRect(NSRect inRect, NSRect *slice, NSRect *rem, CGFloat amount, NSRectEdge edge);\nvoid NSEndHashTableEnumeration(NSHashEnumerator *enumerator);\nvoid NSEndMapTableEnumeration(NSMapEnumerator *enumerator);\nvoid NSFreeMapTable(NSMapTable *table);\nvoid NSHashInsert(NSHashTable *table, const void *pointer);\nvoid NSHashRemove(NSHashTable *table, const void *pointer);\nvoid NSLog(CFNSString format, ...);\nvoid NSLogv(CFNSString format, va_list args);\nvoid NSMapInsert(NSMapTable *table, const void *key, const void *value);\nvoid NSMapInsertKnownAbsent(NSMapTable *table, const void *key, const void *value);\nvoid NSMapRemove(NSMapTable *table, const void *key);\nvoid NSPopAutoreleasePool(void *token);\nvoid NSRequestConcreteImplementation(id self, SEL _cmd, Class absClass);\nvoid NSSetUncaughtExceptionHandler(NSUncaughtExceptionHandler *);\nvoid NSZoneFree(NSZone *zone, void *ptr);\n"
  },
  {
    "path": "Foundation/Types.h",
    "content": "#ifndef FOUNDATION_H_\n#define FOUNDATION_H_\n\n#import \"../BaseTypes.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"../CoreGraphics/Types.h\"\n#import \"../objc/Types.h\"\n\n#ifdef __EA64__\ntypedef unsigned long NSUInteger;\ntypedef long NSInteger;\n#else\ntypedef unsigned int NSUInteger;\ntypedef int NSInteger;\n#endif\n\ntypedef double NSTimeInterval;\n\ntypedef struct __NSValue NSValue;\ntypedef struct __NSObject NSString;\n#define CFNSString const __CFString\ntypedef struct __NSData NSData;\ntypedef struct __NSArray NSArray;\ntypedef struct __NSArray NSMutableArray;\ntypedef struct __NSDictionary NSDictionary;\ntypedef struct __NSException NSException;\ntypedef struct _NSZone NSZone;\n\ntypedef unsigned long long NSAlignmentOptions;\n\ntypedef NSUInteger NSRectEdge;\ntypedef NSUInteger NSSearchPathDirectory;\ntypedef NSUInteger NSSearchPathDomainMask;\n\nPS_ENUM(NSInteger, NSComparisonResult) {\n    NSOrderedAscending = -1L,\n    NSOrderedSame,\n    NSOrderedDescending\n};\n\nstruct _NSMapTable;\n\nstruct _NSMapNode {\n    void *key;\n    void *value;\n    struct _NSMapNode *next;\n};\n\ntypedef NSObject *NSHashTable;\n\ntypedef struct NSError {\n    NSObject super;\n    void *_reserved;\n    int64 _code;\n    NSString *_domain;\n    NSDictionary *_userInfo;\n} NSError;\n\ntypedef struct _NSMapTableKeyCallBacks {\n    unsigned (*hash)(struct _NSMapTable *table, const void *anObject);\n    BOOL (*isEqual)(struct _NSMapTable *table, const void *anObject1, const void *anObject2);\n    void (*retain)(struct _NSMapTable *table, const void *anObject);\n    void (*release)(struct _NSMapTable *table, void *anObject);\n    NSString *(*describe)(struct _NSMapTable *table, const void *anObject);\n    const void *notAKeyMarker;\n} NSMapTableKeyCallBacks;\n\ntypedef struct NSHashTableCallBacks {\n    unsigned (*hash)(NSHashTable *table, const void *);\n    BOOL (*isEqual)(NSHashTable *table, const void *, const void *);\n    void (*retain)(NSHashTable *table, const void *);\n    void (*release)(NSHashTable *table, void *);\n    NSString *(*describe)(NSHashTable *table, const void *);\n} NSHashTableCallBacks;\n\ntypedef struct _NSMapTableValueCallBacks {\n    void (*retain)(struct _NSMapTable *table, const void *anObject);\n    void (*release)(struct _NSMapTable *table, void *anObject);\n    NSString *(*describe)(struct _NSMapTable *table, const void *anObject);\n} NSMapTableValueCallBacks;\n\ntypedef struct _NSMapTable {\n    struct _NSMapNode **nodes;\n    unsigned int hashSize;\n    unsigned int itemsCount;\n    NSMapTableKeyCallBacks keyCallbacks;\n    NSMapTableValueCallBacks valueCallbacks;\n    NSZone *zone;\n    BOOL keysInvisible;\n    BOOL valuesInvisible;\n} NSMapTable;\n\ntypedef struct NSMapEnumerator {\n    struct _NSMapTable *table;\n    struct _NSMapNode *node;\n    int bucket;\n} NSMapEnumerator;\n\ntypedef struct NSHashEnumerator {\n    unsigned _pi;\n    unsigned _si;\n    void *_bs;\n} NSHashEnumerator;\n\ntypedef struct NSFastEnumerationState {\n    unsigned long state;\n    id *itemsPtr;\n    unsigned long *mutationsPtr;\n    unsigned long extra[5];\n} NSFastEnumerationState;\n\ntypedef struct _NSRange {\n    NSUInteger location;\n    NSUInteger length;\n} NSRange;\n\ntypedef struct NSEdgeInsets {\n    CGFloat top, left, bottom, right;\n} NSEdgeInsets;\n\ntypedef CGPoint NSPoint;\ntypedef CGSize NSSize;\ntypedef CGRect NSRect;\n\ntypedef CFNSString NSNotificationName;\n\ntypedef void NSUncaughtExceptionHandler(NSException *exception);\n\nextern const NSPoint NSZeroPoint;\nextern const NSSize NSZeroSize;\nextern const NSRect NSZeroRect;\n\nextern const NSEdgeInsets NSEdgeInsetsZero;\n\n#endif\n"
  },
  {
    "path": "GraphicsServices/GraphicsServices.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../Kernel/Types.h\"\n#import \"Types.h\"\n\nfloat GSEventGetDeltaX(GSEventRef event);\nfloat GSEventGetDeltaY(GSEventRef event);\nfloat GSEventAccelerometerAxisX(GSEventRef event);\nfloat GSEventAccelerometerAxisY(GSEventRef event);\nfloat GSEventAccelerometerAxisZ(GSEventRef event);\n\nint GSEventDeviceOrientation(GSEventRef event);\n\nuint64_t GSCurrentEventTimestamp();\n\nUInt8 GSEventGetHardwareKeyboardCountry();\nUInt8 GSEventGetHardwareKeyboardType();\n\nUInt32 GSKeyboardGetHWKeyboardType();\n\nBoolean GSEventIsHardwareKeyboardEvent(GSEventRef event);\nBoolean GSEventIsHardwareKeyboardAttached(void);\nBoolean GSEventIsKeyCharacterEventType(GSEventRef event, UniChar expected_keycode);\nBoolean GSEventIsTabKeyEvent(GSEventRef event);\nBoolean GSEventIsHandEvent(GSEventRef event);\nBoolean GSEventIsChordingHandEvent(GSEventRef event);\nBoolean GSEventShouldRouteToFrontMost(GSEventRef event);\nBoolean GSEventQueueContainsMouseEvent();\n\nvoid GSInitialize(void);\nvoid GSEventPopRunLoopMode(CFStringRef mode);\nvoid GSEventPushRunLoopMode(CFStringRef mode);\nvoid GSEventStopModal();\nvoid GSEventRunModal(Boolean disallow_restart);\nvoid GSEventRun();\nvoid GSEventInitialize(Boolean registerPurple);\nvoid GSEventInitializeAsExtension();\nvoid GSEventResetIdleTimer();\nvoid GSEventResetIdleDuration(int a, int b);\nvoid GSEventSetBacklightLevel(float level);\nvoid GSEventSetBacklightFactor(int factor);\nvoid GSEventSetType(GSEventRef event, GSEventType type);\nvoid GSEventSetPathInfoAtIndex(GSEventRef event, GSPathInfo pathInfo, CFIndex index);\nvoid GSEventSetSensitivity(unsigned sensitivity);\nvoid GSEventSetHardwareKeyboardAttached(Boolean attached);\nvoid GSEventRemoveShouldRouteToFrontMost(GSEventRef event);\nvoid GSEventRotateSimulator(int x);\nvoid GSEventRestoreSensitivity();\nvoid GSEventLockDevice();\nvoid GSEventRegisterEventCallBack(void (*callback)(GSEventRef event));\nvoid GSEventSendKeyEvent(GSEventType event, CFStringRef key);\nvoid GSSendEvent(const GSEventRecord* record, mach_port_t port);\nvoid GSSendSimpleEvent(GSEventType type, mach_port_t port);\nvoid GSSendSystemEvent(const GSEventRecord* record);\nvoid GSSendKeyEvent(GSEventType type, CGPoint windowLocation, CFStringRef characters, CFStringRef unmodifiedCharacters, GSEventFlags modifiers, uint16_t usagePage, unsigned short options7, unsigned short options8);\nvoid GSKeyboardRelease(GSKeyboardRef keyboard);\nvoid GSKeyboardReset(GSKeyboardRef keyboard);\n\nmach_port_t GSGetPurpleApplicationPort();\n\nmach_port_name_t GSCopyPurpleNamedPort(const char *appId);\n\nCGPoint GSEventGetLocationInWindow(GSEventRef event);\nCGPoint GSEventGetOuterMostPathPosition(GSEventRef event);\nCGPoint GSEventGetInnerMostPathPosition(GSEventRef event);\n\nCGSize GSMainScreenPixelSize(void);\nCGSize GSMainScreenPointSize(void);\n\nOSStatus GSKeyTranslate(GSKeyboardRef keyboard, UInt16 virtualKeyCode, UInt16 keyAction, UInt32 modifierKeyState, UInt32 keyboardType, OptionBits keyTranslateOptions, UInt32 *deadKeyState, UniCharCount maxStringLength, UniCharCount *actualStringLength, UniChar unicodeString[]);\nOSStatus GSKeyboardTranslateKey(GSKeyboardRef keyboard, UInt16 virtualKeyCode, UInt16 unknown, OptionBits keyTranslateOptions, UniCharCount maxStringLength, UniCharCount *actualStringLength, UniChar unicodeString[], UniCharCount *actualStringLength2, UniChar unicodeString2[]);\n\nCFTypeID GSEventGetTypeID(void);\nCFTypeID GSKeyboardGetTypeID(void);\n\nCFAbsoluteTime GSEventGetTimestamp(GSEventRef event);\nCFAbsoluteTime GSEventGetHIDTimestamp(GSEventRef event);\n\nCFStringRef GSSystemRootDirectory();\nCFStringRef GSEventCopyCharactersIgnoringModifiers(GSEventRef event);\nCFStringRef GSEventCopyCharacters(GSEventRef event);\nCFStringRef GSKeyboardGetLayout(GSKeyboardRef keyboard);\n\nCFDictionaryRef GSEventCreatePlistRepresentation(GSEventRef event);\n\nGSEventType GSEventGetType(GSEventRef event);\nGSEventSubType GSEventGetSubType(GSEventRef event);\n\nGSWindowRef GSEventGetWindow(GSEventRef event);\n\nGSEventRef GSEventCopy(GSEventRef event);\nGSEventRef GSEventCreateWithEventRecord(const GSEventRecord* record);\nGSEventRef GSEventCreateWithPlist(CFDictionaryRef dictionary);\n\nconst GSEventRecord *GSEventRecordGetRecordDataWithPlist(CFDictionaryRef plist);\n\nGSKeyboardRef GSKeyboardCreate(CFStringRef layoutName, UInt32 keyboardType);\n\nGSHandInfo GSEventGetHandInfo(GSEventRef event);\n\nGSPathInfo GSEventGetPathInfoAtIndex(GSEventRef event, CFIndex index);\n"
  },
  {
    "path": "GraphicsServices/Types.h",
    "content": "#ifndef GRAPHICSSERVICES_H_\n#define GRAPHICSSERVICES_H_\n\n#import \"../CoreFoundation/Types.h\"\n#import \"../CoreGraphics/Types.h\"\n\ntypedef void *GSWindowRef;\ntypedef struct __GSKeyboard * GSKeyboardRef;\n\nPS_ENUM(int, GSEventType) {\n    kGSEventLeftMouseDown    = 1,\n    kGSEventLeftMouseUp      = 2,\n    kGSEventMouseMoved       = 5,\n    kGSEventLeftMouseDragged = 6,\n\n    kGSEventKeyDown = 10,\n    kGSEventKeyUp = 11,\n    kGSEventModifiersChanged = 12,\n    kGSEventSimulatorKeyDown = 13,\n    kGSEventHardwareKeyDown = 14,\n    kGSEventScrollWheel = 22,\n    kGSEventAccelerate = 23,\n    kGSEventProximityStateChanged = 24,\n    kGSEventDeviceOrientationChanged = 50,\n    kGSAppPreferencesChanged = 60,\n    kGSEventUserDefaultsDidChange = 60,\n\n    kGSEventResetIdleTimer = 100,\n    kGSEventResetIdleDuration = 101,\n    kGSEventProcessScript = 200,\n    kGSEventDumpUIHierarchy = 500,\n    kGSEventDumpScreenContents = 501,\n\n    kGSEventMenuButtonDown = 1000,\n    kGSEventMenuButtonUp = 1001,\n    kGSEventVolumeChanged = 1006,\n    kGSEventVolumeUpButtonDown = 1006,\n    kGSEventVolumeUpButtonUp = 1007,\n    kGSEventVolumeDownButtonDown = 1008,\n    kGSEventVolumeDownButtonUp = 1009,\n    kGSEventLockButtonDown = 1010,\n    kGSEventLockButtonUp = 1011,\n    kGSEventRingerOff = 1012,\n    kGSEventRingerOn = 1013,\n    kGSEventRingerChanged = 1013,\n    kGSEventLockDevice = 1014,\n    kGSEventStatusBarMouseDown = 1015,\n    kGSEventStatusBarMouseDragged = 1016,\n    kGSEventStatusBarMouseUp = 1017,\n    kGSEventHeadsetButtonDown = 1018,\n    kGSEventHeadsetButtonUp = 1019,\n    kGSEventMotionBegin = 1020,\n    kGSEventHeadsetAvailabilityChanged = 1021,\n    kGSEventMediaKeyDown = 1022,\n    kGSEventMediaKeyUp = 1023,\n\n    kGSEventVibrate = 1100,\n    kGSEventSetBacklightFactor = 1102,\n    kGSEventSetBacklightLevel = 1103,\n\n    kGSEventApplicationLaunch = 2000,\n    kGSEventAnotherApplicationFinishedLaunching = 2001,\n    kGSEventSetAppThreadPriority = 2002,\n    kGSEventApplicationResume = 2003,\n    kGSEventApplicationDidEndResumeAnimation = 2004,\n    kGSEventApplicationBeginSuspendAnimation = 2005,\n    kGSEventApplicationHandleTestURL = 2006,\n    kGSEventApplicationSuspendEventsOnly = 2007,\n    kGSEventApplicationSuspend = 2008,\n    kGSEventApplicationExit = 2009,\n    kGSEventQuitTopApplication = 2010,\n    kGSEventApplicationUpdateSuspendedSettings = 2011,\n\n    kGSEventHand = 3001,\n\n    kGSEventAccessoryAvailabilityChanged = 4000,\n    kGSEventAccessoryKeyStateChanged = 4001,\n    kGSEventAccessory = 4002,\n\n    kGSEventOutOfLineDataRequest = 5000,\n    kGSEventOutOfLineDataResponse = 5001,\n\n    kGSEventUrgentMemoryWarning = 6000,\n\n    kGSEventShouldRouteToFrontMost = 1<<17\n};\n\nPS_ENUM(unsigned, GSEventSubType) {\n    kGSEventSubTypeUnknown,\n};\n\nPS_ENUM(unsigned, GSEventFlags) {\n    kGSEventFlagMaskShift = 1 << 17,\n    kGSEventFlagMaskControl = 1 << 18,\n    kGSEventFlagMaskAlternate = 1 << 19,\n    kGSEventFlagMaskCommand = 1 << 20\n};\n\nPS_ENUM(unsigned, GSHandInfoType) {\n    kGSHandInfoTypeTouchDown = 0,\n    kGSHandInfoTypeTouchDragged = 1,\n    kGSHandInfoTypeTouchMoved = 4,\n    kGSHandInfoTypeTouchUp = 5,\n    kGSHandInfoTypeCancel = 8\n};\n\ntypedef struct GSAccelerometerInfo {\n\tfloat axisX, axisY, axisZ;\n} GSAccelerometerInfo;\n\ntypedef struct GSDeviceOrientationInfo {\n\tint orientation;\n} GSDeviceOrientationInfo;\n\ntypedef struct GSHardwareKeyInfo {\n    UniChar keyCode;\n    UniChar characterIgnoringModifier;\n    UniChar charCode;\n    unsigned short characterSet;\n    uint16_t characters_length;\n    UniChar characters[32];\n    uint16_t unmodified_characters_length;\n    UniChar unmodified_characters[32];\n    int unknown0 : 1;\n    int isKeyVariant : 1;\n    int unknown2 : 14;\n    int unknown10 : 16;\n} GSHardwareKeyInfo;\n\ntypedef struct GSKeyInfo {\n\tUniChar keyCode, characterIgnoringModifier, charCode;\n\tunsigned short characterSet;\n\tBoolean isKeyRepeating;\n} GSKeyInfo;\n\ntypedef struct GSPathInfo {\n    unsigned char pathIndex;\n    unsigned char pathIdentity;\n    unsigned char pathProximity;\n    CGFloat pathPressure;\n    CGFloat pathMajorRadius;\n    CGPoint pathLocation;\n    GSWindowRef pathWindow;\n} GSPathInfo;\n\ntypedef struct GSHandInfo {\n\tGSHandInfoType type;\n\tshort deltaX, deltaY;\n\tfloat _0x44;\n\tfloat _0x48;\n\tfloat width;\n\tfloat _0x50;\n\tfloat height;\n\tfloat _0x58;\n\tunsigned char _0x5C;\n\tunsigned char pathInfosCount;\n\tGSPathInfo pathInfos[0];\n} GSHandInfo;\n\ntypedef struct GSScrollWheelInfo {\n    int deltaY;\n    int deltaX;\n} GSScrollWheelInfo;\n\ntypedef struct GSEventRecord {\n    GSEventType type;\n    GSEventSubType subtype;\n    CGPoint location;\n    CGPoint windowLocation;\n    int windowContextId;\n    uint64_t timestamp;\n    GSWindowRef window;\n    GSEventFlags flags;\n    pid_t senderPID;\n    CFIndex infoSize;\n#if !TARGET_OS_SIMULATOR && !TARGET_OS_OSX\n    uint64_t    HIDtime;\n#endif\n    uint8_t data[];\n} GSEventRecord;\n\ntypedef struct __GSEvent {\n    CFRuntimeBase _base;\n    GSEventRecord record;\n} GSEvent;\n\ntypedef struct __GSEvent *GSEventRef;\n\n#endif"
  },
  {
    "path": "IDA.h",
    "content": "// #define SWIFT\n// #define IOS14\n#import \"Types.h\"\n#import \"Kernel/Kernel.h\"\n#import \"dyld/dyld.h\"\n#import \"pthread/pthread.h\"\n#import \"Darwin/Darwin.h\"\n#import \"icu/icu.h\"\n#import \"AppSupport/AppSupport.h\"\n#import \"AssetsLibraryServices/AssetsLibraryServices.h\"\n#import \"AudioToolbox/AudioToolbox.h\"\n#import \"AVFCapture/AVFCapture.h\"\n#import \"AVFoundation/AVFoundation.h\"\n#import \"CommonCrypto/CommonCrypto.h\"\n#import \"CoreAnimation/CoreAnimation.h\"\n#import \"CoreAudio/CoreAudio.h\"\n#import \"CoreFoundation/CoreFoundation.h\"\n#import \"CoreGraphics/CoreGraphics.h\"\n#import \"CoreMedia/CoreMedia.h\"\n#import \"CoreText/CoreText.h\"\n#import \"CoreServices/CoreServices.h\"\n#import \"CoreVideo/CoreVideo.h\"\n#import \"CydiaSubstrate/CydiaSubstrate.h\"\n#import \"Foundation/Foundation.h\"\n#import \"GraphicsServices/GraphicsServices.h\"\n#import \"IOMobileFramebuffer/IOMobileFramebuffer.h\"\n#import \"IOKit/IOKit.h\"\n#import \"IOSurface/IOSurface.h\"\n#import \"MediaRemote/MediaRemote.h\"\n#import \"MobileGestalt/MobileGestalt.h\"\n#import \"PowerLog/PowerLog.h\"\n#import \"QuartzCore/QuartzCore.h\"\n#import \"UIKit/UIKit.h\"\n#import \"objc/objc.h\"\n#import \"os/os.h\"\n#import \"sandbox/sandbox.h\"\n#import \"Security/Security.h\"\n#import \"SoftLinking/SoftLinking.h\"\n#import \"xpc/xpc.h\"\n#import \"sqlite/sqlite.h\"\n#ifdef SWIFT\n#import \"Swift/Swift.h\"\n#endif\n#import \"System/System.h\"\n#import \"SystemConfiguration/SystemConfiguration.h\"\n#import \"fishhook/fishhook.h\"\n"
  },
  {
    "path": "IOKit/IOKit.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../Darwin/Types.h\"\n#import \"../Kernel/Types.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"../Foundation/Types.h\"\n#import \"Types.h\"\n\nkern_return_t IOConnectCallMethod(mach_port_t connection, uint32_t selector, const uint64_t *input, uint32_t inputCnt, const void *inputStruct, size_t inputStructCnt, uint64_t *output, uint32_t *outputCnt, void *outputStruct, size_t *outputStructCnt);\nkern_return_t IOConnectCallAsyncMethod(mach_port_t connection, uint32_t selector, mach_port_t wake_port, uint64_t *reference, uint32_t referenceCnt, const uint64_t *input, uint32_t inputCnt, const void *inputStruct, size_t inputStructCnt, uint64_t *output, uint32_t *outputCnt, void *outputStruct, size_t *outputStructCnt);\nkern_return_t IOConnectCallScalarMethod(mach_port_t connection, uint32_t selector, const uint64_t *input, uint32_t inputCnt, uint64_t *output, uint32_t *outputCnt);\nkern_return_t IOConnectCallStructMethod(mach_port_t connection, uint32_t selector, const void *inputStruct, size_t inputStructCnt, void *outputStruct, size_t *outputStructCnt);\nkern_return_t IOConnectCallAsyncStructMethod(mach_port_t connection, uint32_t selector, mach_port_t wake_port, uint64_t *reference, uint32_t referenceCnt, const void *inputStruct, size_t inputStructCnt, void *outputStruct, size_t *outputStructCnt);\nkern_return_t IOConnectCallAsyncScalarMethod(mach_port_t connection, uint32_t selector, mach_port_t wake_port, uint64_t *reference, uint32_t referenceCnt, const uint64_t *input, uint32_t inputCnt, uint64_t *output, uint32_t *outputCnt);\nkern_return_t IOConnectSetCFProperty(io_connect_t connect, CFStringRef propertyName, CFTypeRef property);\nkern_return_t IOConnectSetCFProperties(io_connect_t connect, CFTypeRef properties);\nkern_return_t IOConnectAddClient(io_connect_t connect, io_connect_t client);\nkern_return_t IOConnectMapMemory64(io_connect_t connect, uint32_t memoryType, task_port_t intoTask, mach_vm_address_t *atAddress, mach_vm_size_t *ofSize, IOOptionBits options);\nkern_return_t IOObjectGetClass(io_object_t object, io_name_t className);\nkern_return_t IOObjectRelease(io_object_t object);\nkern_return_t IOObjectRetain(io_object_t object);\nkern_return_t IOServiceOpen(io_service_t service, task_port_t owningTask, uint32_t type, io_connect_t *connect);\nkern_return_t IOServiceClose(io_connect_t connect);\nkern_return_t IOServiceGetMatchingServices(mach_port_t masterPort, CFDictionaryRef matching, io_iterator_t *existing);\nkern_return_t IOServiceGetState(io_service_t service, uint64_t *state);\nkern_return_t IOServiceMatchPropertyTable(io_service_t service, CFDictionaryRef matching, boolean_t *matches);\nkern_return_t IOServiceAddMatchingNotification(IONotificationPortRef notifyPort, const io_name_t notificationType, CFDictionaryRef matching, IOServiceMatchingCallback callback, void *refCon, io_iterator_t *notification);\nkern_return_t IORegistryCreateIterator(mach_port_t masterPort, const io_name_t plane, IOOptionBits options, io_iterator_t *iterator);\nkern_return_t IORegistryEntryGetPath(io_registry_entry_t entry, const io_name_t plane, io_string_t path);\nkern_return_t IORegistryEntryGetName(io_registry_entry_t entry, io_name_t name);\nkern_return_t IORegistryEntryGetNameInPlane(io_registry_entry_t entry, const io_name_t plane, io_name_t name);\nkern_return_t IORegistryEntryGetLocationInPlane(io_registry_entry_t entry, const io_name_t plane, io_name_t location);\nkern_return_t IORegistryEntryGetParentEntry(io_registry_entry_t entry, const io_name_t plane, io_registry_entry_t *parent);\nkern_return_t IORegistryEntryGetChildEntry(io_registry_entry_t entry, const io_name_t plane, io_registry_entry_t *child);\nkern_return_t IORegistryEntryGetChildIterator(io_registry_entry_t entry, const io_name_t plane, io_iterator_t *iterator);\nkern_return_t IORegistryEntryGetParentIterator(io_registry_entry_t entry, const io_name_t plane, io_iterator_t *iterator);\nkern_return_t IORegistryEntryGetProperty(io_registry_entry_t entry, const io_name_t propertyName, io_struct_inband_t buffer, uint32_t *size);\nkern_return_t IORegistryEntryCreateCFProperties(io_registry_entry_t entry, CFMutableDictionaryRef *, CFAllocatorRef, NSInteger);\nkern_return_t IORegistryEntryCreateIterator(io_registry_entry_t entry, const io_name_t plane, IOOptionBits options, io_iterator_t *iterator);\nkern_return_t IORegistryEntrySetCFProperty(io_registry_entry_t entry, CFStringRef propertyName, CFTypeRef property);\nkern_return_t IORegistryEntrySetCFProperties(io_registry_entry_t entry, CFTypeRef properties);\nkern_return_t IORegistryIteratorEnterEntry(io_iterator_t iterator);\nkern_return_t IORegistryIteratorExitEntry(io_iterator_t iterator);\n#ifndef GHIDRA\nkern_return_t IOHIDPostEvent(io_connect_t connect, UInt32 eventType, IOGPoint location, const NXEventData *eventData, UInt32 eventDataVersion, IOOptionBits eventFlags, IOOptionBits options);\n#endif\n\nio_service_t IOServiceGetMatchingService(mach_port_t masterPort, CFDictionaryRef matching);\n\nio_object_t IOIteratorNext(io_iterator_t iterator);\n\nio_registry_entry_t IORegistryEntryFromPath(mach_port_t masterPort, const io_string_t path);\nio_registry_entry_t IORegistryEntryCopyFromPath(mach_port_t masterPort, CFStringRef path);\n\nAbsoluteTime IOHIDEventGetTimeStamp(IOHIDEventRef event);\n\nboolean_t IOHIDServiceClientConformsTo(IOHIDServiceClientRef service, uint32_t usagePage, uint32_t usage);\nboolean_t IORegistryEntryInPlane(io_registry_entry_t entry, const io_name_t plane);\n\nCFTypeID IOHIDEventGetTypeID(void);\nCFTypeID IOHIDEventQueueGetTypeID(void);\nCFTypeID IOHIDDeviceGetTypeID(void);\nCFTypeID IOHIDManagerGetTypeID(void);\nCFTypeID IOHIDUserDeviceGetTypeID(void);\nCFTypeID IOUSBDeviceControllerGetTypeID(void);\n\nCFDictionaryRef IOPMCopyActivePMPreferences(void);\nCFDictionaryRef IOPMCopySystemPowerSettings(void);\n\nCFMutableDictionaryRef IOPMCopyPMPreferences(void);\nCFMutableDictionaryRef IOBSDNameMatching(mach_port_t masterPort, uint32_t options, const char *bsdName);\nCFMutableDictionaryRef IOServiceMatching(const char *name);\nCFMutableDictionaryRef IOServiceNameMatching(const char *name);\nCFMutableDictionaryRef IORegistryEntryIDMatching(uint64_t entryID);\n\nCFMutableDataRef IOHIDEventCreateData(CFAllocatorRef allocator, IOHIDEventRef event);\n\nCFArrayRef IOHIDDeviceCopyMatchingElements(IOHIDDeviceRef device, CFDictionaryRef matching, IOOptionBits options);\nCFArrayRef IOHIDEventGetChildren(IOHIDEventRef event);\nCFArrayRef IOHIDEventSystemClientCopyServices(IOHIDEventSystemClientRef client);\n\nCFIndex IOHIDEventGetIntegerValueWithOptions(IOHIDEventRef event, IOHIDEventField field, IOOptionBits options);\nCFIndex IOHIDEventGetIntegerValue(IOHIDEventRef event, IOHIDEventField field);\nCFIndex IOHIDElementGetLogicalMax(IOHIDElementRef element);\nCFIndex IOHIDElementGetLogicalMin(IOHIDElementRef element);\nCFIndex IOHIDValueGetIntegerValue(IOHIDValueRef value);\n\nCFSetRef IOHIDManagerCopyDevices(IOHIDManagerRef manager);\n\nCFTypeRef IOHIDDeviceGetProperty(IOHIDDeviceRef device, CFStringRef key);\nCFTypeRef IOHIDManagerGetProperty(IOHIDManagerRef manager, CFStringRef key);\nCFTypeRef IOHIDServiceClientCopyProperty(IOHIDServiceClientRef service, CFStringRef key);\nCFTypeRef IORegistryEntryCreateCFProperty(io_registry_entry_t entry, CFStringRef key, CFAllocatorRef allocator, IOOptionBits options);\nCFTypeRef IORegistryEntrySearchCFProperty(io_registry_entry_t entry, const io_name_t plane, CFStringRef key, CFAllocatorRef allocator, IOOptionBits options);\n\nCFStringRef IORegistryEntryCopyPath(io_registry_entry_t entry, const io_name_t plane);\nCFStringRef IOHIDEventTypeGetName(IOHIDEventType type);\nCFStringRef IOPMSleepWakeCopyUUID(void);\n\nIOHIDUserDeviceRef IOHIDUserDeviceCreate(CFAllocatorRef allocator, CFDictionaryRef properties);\n\nIOHIDEventQueueRef IOHIDEventQueueCreateWithToken(CFAllocatorRef allocator, uint32_t token);\nIOHIDEventQueueRef IOHIDEventQueueCreate(CFAllocatorRef allocator, int notificationPortType, uint32_t token);\n\nIOHIDEventSystemClientRef IOHIDEventSystemClientCreate(CFAllocatorRef allocator);\nIOHIDEventSystemClientRef IOHIDEventSystemClientCreateSimpleClient(CFAllocatorRef allocator);\n\nIOHIDEventRef IOHIDEventQueueDequeueCopy(IOHIDEventQueueRef queue);\nIOHIDEventRef IOHIDEventCreateCopy(CFAllocatorRef allocator, IOHIDEventRef event);\nIOHIDEventRef IOHIDEventCreate(CFAllocatorRef allocator, IOHIDEventType type, AbsoluteTime timeStamp, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateWithData(CFAllocatorRef allocator, CFDataRef data);\nIOHIDEventRef IOHIDEventCreateProgressEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, uint32_t eventType, IOHIDFloat level, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateVendorDefinedEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, uint16_t usagePage, uint16_t usage, uint32_t version, const uint8_t *data, uint32_t length, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateSwipeEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDSwipeMask swipeMask, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateDigitizerEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDDigitizerTransducerType type, uint32_t index, uint32_t identity, uint32_t eventMask, uint32_t buttonMask, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOHIDFloat tipPressure, IOHIDFloat barrelPressure, Boolean range, Boolean touch, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateDigitizerFingerEventWithQuality(CFAllocatorRef allocator, AbsoluteTime timeStamp, uint32_t index, uint32_t identity, uint32_t eventMask, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOHIDFloat tipPressure, IOHIDFloat twist, IOHIDFloat minorRadius, IOHIDFloat majorRadius, IOHIDFloat quality, IOHIDFloat density, IOHIDFloat irregularity, Boolean range, Boolean touch, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateDigitizerFingerEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, uint32_t index, uint32_t identity, uint32_t eventMask, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOHIDFloat tipPressure, IOHIDFloat twist, Boolean range, Boolean touch, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateDigitizerStylusEventWithPolarOrientation(CFAllocatorRef allocator, AbsoluteTime timeStamp, uint32_t index, uint32_t identity, uint32_t eventMask, uint32_t buttonMask, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOHIDFloat tipPressure, IOHIDFloat barrelPressure, IOHIDFloat twist, IOHIDFloat altitude, IOHIDFloat azimuth, Boolean range, Boolean invert, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateDigitizerStylusEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, uint32_t index, uint32_t identity, uint32_t eventMask, uint32_t buttonMask, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOHIDFloat tipPressure, IOHIDFloat barrelPressure, IOHIDFloat twist, IOHIDFloat altitude, IOHIDFloat azimuth, Boolean range, Boolean invert, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateProximtyEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDProximityDetectionMask detectionMask, IOOptionBits options);\n#define IOHIDEventCreateProximityEvent IOHIDEventCreateProximtyEvent\nIOHIDEventRef IOHIDEventCreateAmbientLightSensorEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDFloat level, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateMouseEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, uint32_t buttonMask, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateMouseEventWithPressure(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, uint32_t buttonMask, IOHIDFloat pressure, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateButtonEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, uint32_t buttonMask, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateButtonEventWithPressure(CFAllocatorRef allocator, AbsoluteTime timeStamp, uint32_t buttonMask, IOHIDFloat pressure, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateKeyboardEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, uint16_t usagePage, uint16_t usage, Boolean down, IOHIDEventOptionBits flags);\nIOHIDEventRef IOHIDEventCreateAccelerometerEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreatePolarOrientationEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateOrientationEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateVelocityEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateScaleEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateScrollEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateRotationEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOOptionBits options);\nIOHIDEventRef IOHIDEventCreateTranslationEvent(CFAllocatorRef allocator, AbsoluteTime timeStamp, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOOptionBits options);\nIOHIDEventRef IOHIDEventGetParent(IOHIDEventRef event);\nIOHIDEventRef IOHIDEventGetEventWithOptions(IOHIDEventRef event, IOHIDEventType type, IOOptionBits options);\nIOHIDEventRef IOHIDEventGetEvent(IOHIDEventRef event, IOHIDEventType type);\nIOHIDEventRef IOHIDServiceClientCopyEvent(IOHIDServiceClientRef, int64_t, int32_t, int64_t);\n\nIOHIDEventRef _IOHIDEventGetContext(IOHIDEventRef event);\n\nIOHIDEventType IOHIDEventGetType(IOHIDEventRef event);\n\nIOHIDElementRef IOHIDValueGetElement(IOHIDValueRef value);\n\nIOPMNotificationHandle IOPMRegisterPrefsChangeNotification(dispatch_queue_t queue, void (*block)());\n\nint IOHIDEventSystemClientSetMatching(IOHIDEventSystemClientRef client, CFDictionaryRef match);\nint IOHIDServiceClientSetProperty(IOHIDServiceClientRef, CFStringRef, CFNumberRef);\n\nunsigned int IOHIDEventIsRepeat(IOHIDEventRef event);\n\nuint32_t IOHIDEventGetEventFlags(IOHIDEventRef event);\nuint32_t IOHIDEventQueueGetToken(IOHIDEventQueueRef queue);\nuint32_t IOHIDElementGetUsage(IOHIDElementRef element);\nuint32_t IOHIDElementGetUsagePage(IOHIDElementRef element);\n\nuint64_t IOHIDEventGetSenderID(IOHIDEventRef event);\n\nvoid IOHIDDeviceRegisterInputReportCallback(IOHIDDeviceRef device, uint8_t *report, CFIndex reportLength, IOHIDReportCallback callback, void *context);\nvoid IOHIDDeviceRegisterInputValueCallback(IOHIDDeviceRef device, IOHIDValueCallback callback, void *context);\nvoid IOHIDDeviceRegisterRemovalCallback(IOHIDDeviceRef device, IOHIDCallback callback, void *context);\nvoid IOHIDDeviceUnscheduleFromRunLoop(IOHIDDeviceRef device, CFRunLoopRef runLoop, CFStringRef runLoopMode);\nvoid IOHIDEventGetVendorDefinedData(IOHIDEventRef event, uint32_t *length, uint8_t **data);\nvoid IOHIDEventSetFloatValueWithOptions(IOHIDEventRef event, IOHIDEventField field, IOHIDFloat value, IOOptionBits options);\nvoid IOHIDEventSetFloatValue(IOHIDEventRef event, IOHIDEventField field, IOHIDFloat value);\nvoid IOHIDEventSetDoubleValue(IOHIDEventRef event, IOHIDEventField field, double value);\nvoid IOHIDEventSetIntegerValueWithOptions(IOHIDEventRef event, IOHIDEventField field, CFIndex value, IOOptionBits options);\nvoid IOHIDEventSetIntegerValue(IOHIDEventRef event, IOHIDEventField field, CFIndex value);\nvoid IOHIDEventSetPositionWithOptions(IOHIDEventRef event, IOHIDEventField field, IOHID3DPoint position, IOOptionBits options);\nvoid IOHIDEventSetPosition(IOHIDEventRef event, IOHIDEventField field, IOHID3DPoint position);\nvoid IOHIDEventSetEventFlags(IOHIDEventRef event, uint32_t eventFlags);\nvoid IOHIDEventSetTimeStamp(IOHIDEventRef event, AbsoluteTime timeStamp);\nvoid IOHIDEventSetSenderID(IOHIDEventRef event, uint64_t senderID);\nvoid IOHIDEventRemoveEvent(IOHIDEventRef event, IOHIDEventRef childEvent);\nvoid IOHIDEventAppendEvent(IOHIDEventRef event, IOHIDEventRef childEvent);\nvoid IOHIDEventQueueEnqueue(IOHIDEventQueueRef queue, IOHIDEventRef event);\nvoid IOHIDEventSystemClientDispatchEvent(IOHIDEventSystemClientRef client, IOHIDEventRef event);\nvoid IOHIDEventSystemClientSetMatchingMultiple(IOHIDEventSystemClientRef, CFArrayRef);\nvoid IOHIDEventSystemClientRegisterEventCallback(IOHIDEventSystemClientRef client, IOHIDEventSystemClientEventCallback callback, void *target, void *refcon);\nvoid IOHIDEventSystemClientUnregisterEventCallback(IOHIDEventSystemClientRef client);\nvoid IOHIDEventSystemClientUnregisterEventFilterCallback(IOHIDEventSystemClientRef client, IOHIDEventSystemEventFilterCallback callback, void *target, void *refcon);\nvoid IOHIDEventSystemClientUnscheduleWithRunLoop(IOHIDEventSystemClientRef client, CFRunLoopRef runloop, CFStringRef mode);\nvoid IOHIDEventSystemClientScheduleWithRunLoop(IOHIDEventSystemClientRef client, CFRunLoopRef runloop, CFStringRef mode);\nvoid IOHIDManagerSetDeviceMatching(IOHIDManagerRef manager, CFDictionaryRef matching);\nvoid IOHIDManagerSetDeviceMatchingMultiple(IOHIDManagerRef manager, CFArrayRef multiple);\nvoid IOHIDManagerScheduleWithRunLoop(IOHIDManagerRef manager, CFRunLoopRef runLoop, CFStringRef runLoopMode);\nvoid IOHIDManagerUnscheduleFromRunLoop(IOHIDManagerRef manager, CFRunLoopRef runLoop, CFStringRef runLoopMode);\nvoid IOHIDManagerRegisterDeviceMatchingCallback(IOHIDManagerRef manager, IOHIDDeviceCallback callback, void *context);\nvoid IOHIDManagerRegisterDeviceRemovalCallback(IOHIDManagerRef manager, IOHIDDeviceCallback callback, void *context);\nvoid IOHIDManagerRegisterInputReportCallback(IOHIDManagerRef manager, IOHIDReportCallback callback, void *context);\nvoid IOHIDManagerRegisterInputValueCallback(IOHIDManagerRef manager, IOHIDValueCallback callback, void *context);\nvoid IOHIDUserDeviceScheduleWithRunLoop(IOHIDUserDeviceRef device, CFRunLoopRef runLoop, CFStringRef runLoopMode);\nvoid IOHIDUserDeviceUnscheduleFromRunLoop(IOHIDUserDeviceRef device, CFRunLoopRef runLoop, CFStringRef runLoopMode);\nvoid IOHIDUserDeviceRegisterGetReportCallback(IOHIDUserDeviceRef device, IOHIDUserDeviceReportCallback callback, void *refcon);\nvoid IOHIDUserDeviceRegisterSetReportCallback(IOHIDUserDeviceRef device, IOHIDUserDeviceReportCallback callback, void *refcon);\nvoid IOUSBDeviceDescriptionSetSerialString(IOUSBDeviceDescriptionRef ref, CFStringRef serial);\nvoid IOUSBDeviceDescriptionRemoveAllConfigurations(IOUSBDeviceDescriptionRef devDesc);\n\nIOHIDFloat IOHIDEventGetFloatValueWithOptions(IOHIDEventRef event, IOHIDEventField field, IOOptionBits options);\nIOHIDFloat IOHIDEventGetFloatValue(IOHIDEventRef event, IOHIDEventField field);\n\ndouble IOHIDEventGetDoubleValue(IOHIDEventRef event, IOHIDEventField field);\ndouble IOHIDEventGetDoubleValueWithOptions(IOHIDEventRef event, IOHIDEventField field, IOOptionBits options);\n\nIOHID3DPoint IOHIDEventGetPositionWithOptions(IOHIDEventRef event, IOHIDEventField field, IOOptionBits options);\nIOHID3DPoint IOHIDEventGetPosition(IOHIDEventRef event, IOHIDEventField field);\n\nvoid *IOHIDEventGetDataValue(IOHIDEventRef event, IOHIDEventType type);\n\nbool IOPSDrawingUnlimitedPower(void);\nbool IOPMFeatureIsAvailableWithSupportedTable(CFStringRef PMFeature, CFStringRef power_source, CFDictionaryRef supportedFeatures);\n\nBoolean IOHIDDeviceConformsTo(IOHIDDeviceRef device, uint32_t usagePage, uint32_t usage);\nBoolean IOHIDEventIsAbsolute(IOHIDEventRef event);\nBoolean IOHIDEventConformsToWithOptions(IOHIDEventRef event, IOHIDEventType type, IOOptionBits options);\nBoolean IOHIDEventConformsTo(IOHIDEventRef event, IOHIDEventType type);\n\nIOHIDManagerRef IOHIDManagerCreate(CFAllocatorRef allocator, IOOptionBits options);\n\nIOHIDEventSystemClientRef IOHIDEventSystemClientCreateWithType(CFAllocatorRef allocator, IOHIDEventSystemClientType type, void *unk);\n\nIOUSBDeviceDescriptionRef IOUSBDeviceDescriptionCreateWithType(CFAllocatorRef allocator, CFStringRef type);\nIOUSBDeviceDescriptionRef IOUSBDeviceDescriptionCreateFromController(CFAllocatorRef allocator, IOUSBDeviceControllerRef);\n\nIOReturn IOHIDDeviceOpen(IOHIDDeviceRef device, IOOptionBits options);\nIOReturn IOHIDDeviceClose(IOHIDDeviceRef device, IOOptionBits options);\nIOReturn IOHIDManagerOpen(IOHIDManagerRef manager, IOOptionBits options);\nIOReturn IOHIDManagerClose(IOHIDManagerRef manager, IOOptionBits options);\nIOReturn IOHIDUserDeviceHandleReport(IOHIDUserDeviceRef device, uint8_t *report, CFIndex reportLength);\nIOReturn IOHIDUserDeviceHandleReportAsync(IOHIDUserDeviceRef device, uint8_t *report, CFIndex reportLength, IOHIDUserDeviceHandleReportAsyncCallback callback, void *refcon);\nIOReturn IOUSBDeviceControllerCreate(CFAllocatorRef allocator, IOUSBDeviceControllerRef *deviceRef);\nIOReturn IOUSBDeviceControllerSetDescription(IOUSBDeviceControllerRef device, IOUSBDeviceDescriptionRef description);\nIOReturn IOUSBDeviceControllerSendCommand(IOUSBDeviceControllerRef device, CFStringRef command, CFTypeRef param);\nIOReturn IOPSGetPercentRemaining(int *percent, bool *isCharging, bool *isFullyCharged);\nIOReturn IOPSRequestBatteryUpdate(int type);\nIOReturn IOPMRequestSysWake(CFDictionaryRef request); \nIOReturn IOPMGetLastWakeTime(CFAbsoluteTime *whenWoke, CFTimeInterval *adjustedForPhysicalWake);\nIOReturn IOPMCopySleepPreventersList(int preventerType, CFArrayRef *outArray);\nIOReturn IOPMCopySleepPreventersListWithID(int preventerType, CFArrayRef *outArray);\n"
  },
  {
    "path": "IOKit/NXTypes.h",
    "content": "#ifndef _NX_TYPES\n#define _NX_TYPES\n#ifndef GHIDRA\n\n// Doesn't work correctly on IDA Pro 7.0\n\n#import \"../BaseTypes.h\"\n\ntypedef struct _NXTabletPointData {\n    SInt32 x;\n    SInt32 y;\n    SInt32 z;\n    UInt16 buttons;\n    UInt16 pressure;\n    struct {\n        SInt16 x;\n        SInt16 y;\n    } tilt;\n    UInt16 rotation;\n    SInt16 tangentialPressure;\n    UInt16 deviceID;\n    SInt16 vendor1;\n    SInt16 vendor2;\n    SInt16 vendor3;\n} NXTabletPointData, *NXTabletPointDataPtr;\n\ntypedef struct _NXTabletProximityData {\n    UInt16 vendorID;\n    UInt16 tabletID;\n    UInt16 pointerID;\n    UInt16 deviceID;\n    UInt16 systemTabletID;\n    UInt16 vendorPointerType;\n    UInt32 pointerSerialNumber;\n    UInt64 uniqueID __attribute__((packed));\n    UInt32 capabilityMask;\n    UInt8 pointerType;\n    UInt8 enterProximity;\n    SInt16 reserved1;\n} NXTabletProximityData, *NXTabletProximityDataPtr;\n\ntypedef union NXEventData {\n    typedef struct mouse {\n        UInt8 subx;\n        UInt8 suby;\n        SInt16 eventNum;\n        SInt32 click;\n        UInt8 pressure;\n        UInt8 buttonNumber;\n        UInt8 subType;\n        UInt8 reserved2;\n        SInt32 reserved3;\n        typedef union tablet {\n            NXTabletPointData point;\n            NXTabletProximityData proximity;\n        } tablet;\n    } mouse;\n    typedef struct mouseMove {\n        SInt32 dx;\n        SInt32 dy;\n        UInt8 subx;\n        UInt8 suby;\n        UInt8 subType;\n        UInt8 reserved1;\n        SInt32 reserved2;\n        typedef union tablet {\n            NXTabletPointData point;\n            NXTabletProximityData proximity;\n        } tablet;\n    } mouseMove;\n    typedef struct key {\n        UInt16 origCharSet;\n        SInt16 repeat;\n        UInt16 charSet;\n        UInt16 charCode;\n        UInt16 keyCode;\n        UInt16 origCharCode;\n        SInt32 reserved1;\n        UInt32 keyboardType;\n        SInt32 reserved2;\n        SInt32 reserved3;\n        SInt32 reserved4;\n        SInt32 reserved5[4];\n    } key;\n    typedef struct tracking {\n        SInt16 reserved;\n        SInt16 eventNum;\n        SInt32 trackingNum;\n        SInt32 userData;\n        SInt32 reserved1;\n        SInt32 reserved2;\n        SInt32 reserved3;\n        SInt32 reserved4;\n        SInt32 reserved5;\n        SInt32 reserved6[4];\n    } tracking;\n    typedef struct zoom {\n        SInt16 deltaAxis1;\n        SInt16 deltaAxis2;\n        SInt16 deltaAxis3;\n        SInt16 reserved1;\n        SInt32 fixedDeltaAxis1;\n        SInt32 fixedDeltaAxis2;\n        SInt32 fixedDeltaAxis3;\n        SInt32 pointDeltaAxis1;\n        SInt32 pointDeltaAxis2;\n        SInt32 pointDeltaAxis3;\n        SInt32 reserved8[4];\n    } scrollWheel, zoom;\n    typedef struct compound {\n        SInt16 reserved;\n        SInt16 subType;\n        typedef union misc {\n            float F[11];\n            SInt32 L[11];\n            SInt16 S[22];\n            char C[44];\n        } misc;\n    } compound;\n    typedef struct tablet {\n        SInt32 x;\n        SInt32 y;\n        SInt32 z;\n        UInt16 buttons;\n        UInt16 pressure;\n        typedef struct tilt {\n            SInt16 x;\n            SInt16 y;\n        } tilt;\n        UInt16 rotation;\n        SInt16 tangentialPressure;\n        UInt16 deviceID;\n        SInt16 vendor1;\n        SInt16 vendor2;\n        SInt16 vendor3;\n        SInt32 reserved[4];\n    } tablet;\n    typedef struct proximity {\n        UInt16 vendorID;\n        UInt16 tabletID;\n        UInt16 pointerID;\n        UInt16 deviceID;\n        UInt16 systemTabletID;\n        UInt16 vendorPointerType;\n        UInt32 pointerSerialNumber;\n        UInt64 uniqueID __attribute__((packed));\n        UInt32 capabilityMask;\n        UInt8 pointerType;\n        UInt8 enterProximity;\n        SInt16 reserved1;\n        SInt32 reserved2[4];\n    } proximity;\n} NXEventData;\n\n#endif\n#endif"
  },
  {
    "path": "IOKit/Types.h",
    "content": "#ifndef IOKIT_H_\n#define IOKIT_H_\n\n#import \"../BaseTypes.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"NXTypes.h\"\n\n#define IOHIDEventFieldBase(type) (type << 16)\n#define IOHIDEventFieldOffsetOf(field) (field & 0xffff)\n\ntypedef OSObject *io_object_t;\n\ntypedef io_object_t *io_service_t;\ntypedef io_object_t *io_connect_t;\ntypedef io_object_t *io_registry_entry_t;\ntypedef io_object_t *io_iterator_t;\n\ntypedef char io_name_t[128];\ntypedef char io_string_t[512];\ntypedef char io_struct_inband_t[4096];\n\ntypedef kern_return_t IOReturn;\n\nPS_ENUM(UInt32, IOOptionBits) {\n    kIOHIDEventOptionNone = 0,\n};\n\ntypedef SInt32 IOFixed;\ntypedef UInt32 IOVersion;\ntypedef UInt32 IOItemCount;\ntypedef UInt32 IOCacheMode;\n\ntypedef UInt32 IOByteCount32;\ntypedef UInt64 IOByteCount64;\n\ntypedef UInt32 IOPhysicalAddress32;\ntypedef UInt64 IOPhysicalAddress64;\ntypedef UInt32 IOPhysicalLength32;\ntypedef UInt64 IOPhysicalLength64;\n\n#ifdef __EA64__\ntypedef mach_vm_address_t IOVirtualAddress;\n#else\ntypedef vm_address_t IOVirtualAddress;\n#endif\n\ntypedef IOVirtualAddress IOLogicalAddress;\n\ntypedef struct __IOHIDManager *IOHIDManagerRef;\ntypedef struct __IOHIDValue *IOHIDValueRef;\ntypedef struct __IOHIDDevice *IOHIDDeviceRef;\ntypedef struct IONotificationPort *IONotificationPortRef;\ntypedef struct __IOHIDEventSystemClient *IOHIDEventSystemClientRef;\ntypedef struct __IOHIDEventQueue *IOHIDEventQueueRef;\ntypedef struct __IOHIDServiceClient *IOHIDServiceClientRef;\ntypedef struct __IOHIDElement *IOHIDElementRef;\ntypedef struct __IOHIDUserDevice *IOHIDUserDeviceRef;\ntypedef struct __IOUSBDeviceController *IOUSBDeviceControllerRef;\ntypedef struct __IOUSBDeviceDescription *IOUSBDeviceDescriptionRef;\n\nextern const mach_port_t kIOMasterPortDefault;\n\ntypedef struct IOGPoint {\n    SInt16 x;\n    SInt16 y;\n} IOGPoint;\n\ntypedef struct __IOHIDEvent {\n    CFRuntimeBase base;\n    AbsoluteTime _timeStamp;\n    int x10;\n    int x14;\n    IOOptionBits _options;\n    unsigned _typeMask;\n    CFMutableArrayRef _children;\n    struct __IOHIDEvent *_parent;\n    size_t recordSize;\n    void *record;\n} * IOHIDEventRef;\n\nPS_ENUM(uint32_t, IOHIDEventType) {\n    kIOHIDEventTypeNULL = 0,\n    kIOHIDEventTypeVendorDefined,\n    kIOHIDEventTypeButton,\n    kIOHIDEventTypeKeyboard,\n    kIOHIDEventTypeTranslation,\n    kIOHIDEventTypeRotation,\n    kIOHIDEventTypeScroll,\n    kIOHIDEventTypeScale,\n    kIOHIDEventTypeZoom,\n    kIOHIDEventTypeVelocity,\n    kIOHIDEventTypeOrientation,\n    kIOHIDEventTypeDigitizer,\n    kIOHIDEventTypeAmbientLightSensor,\n    kIOHIDEventTypeAccelerometer,\n    kIOHIDEventTypeProximity,\n    kIOHIDEventTypeTemperature,\n    kIOHIDEventTypeNavigationSwipe,\n    kIOHIDEventTypePointer,\n    kIOHIDEventTypeProgress,\n    kIOHIDEventTypeMultiAxisPointer,\n    kIOHIDEventTypeGyro,\n    kIOHIDEventTypeCompass,\n    kIOHIDEventTypeZoomToggle,\n    kIOHIDEventTypeDockSwipe,\n    kIOHIDEventTypeSymbolicHotKey,\n    kIOHIDEventTypePower,\n    kIOHIDEventTypeLED,\n    kIOHIDEventTypeFluidTouchGesture,\n    kIOHIDEventTypeBoundaryScroll,\n    kIOHIDEventTypeBiometric,\n    kIOHIDEventTypeUnicode,\n    kIOHIDEventTypeAtmosphericPressure,\n    kIOHIDEventTypeForce,\n    kIOHIDEventTypeMotionActivity,\n    kIOHIDEventTypeMotionGesture,\n    kIOHIDEventTypeGameController,\n    kIOHIDEventTypeHumidity,\n    kIOHIDEventTypeCollection,\n    kIOHIDEventTypeBrightness,\n    kIOHIDEventTypeGenericGesture,\n    kIOHIDEventTypeCount,\n\n    kIOHIDEventTypeSwipe = kIOHIDEventTypeNavigationSwipe,\n    kIOHIDEventTypeMouse = kIOHIDEventTypePointer\n};\n\nPS_ENUM(uint32_t, IOHIDAccelerometerType) { kIOHIDAccelerometerTypeNormal = 0, kIOHIDAccelerometerTypeShake = 1 };\n\nPS_ENUM(uint32_t, IOHIDSwipeMask) {\n    kIOHIDSwipeNone = 0,\n    kIOHIDSwipeUp = 1 << 0,\n    kIOHIDSwipeDown = 1 << 1,\n    kIOHIDSwipeLeft = 1 << 2,\n    kIOHIDSwipeRight = 1 << 3,\n    kIOHIDScaleExpand = 1 << 4,\n    kIOHIDScaleContract = 1 << 5,\n    kIOHIDRotateCW = 1 << 6,\n    kIOHIDRotateCCW = 1 << 7,\n};\n\nPS_ENUM(uint32_t, IOHIDProximityDetectionMask) {\n    kIOHIDProximityDetectionLargeBodyContact = 0x0001,\n    kIOHIDProximityDetectionLargeBodyFarField = 0x0002,\n    kIOHIDProximityDetectionIrregularObjects = 0x0004,\n    kIOHIDProximityDetectionEdgeStraddling = 0x0008,\n    kIOHIDProximityDetectionFlatFingerClasp = 0x0010,\n    kIOHIDProximityDetectionFingerTouch = 0x0020,\n    kIOHIDProximityDetectionReceiver = 0x0040,\n    kIOHIDProximityDetectionSmallObjectsHovering = 0x0080,\n    kIOHIDProximityDetectionReceiverCrude = 0x0100\n};\n\nPS_ENUM(uint32_t, IOHIDDigitizerTransducerType) {\n    kIOHIDDigitizerTransducerTypeStylus = 0x20,\n    kIOHIDDigitizerTransducerTypePuck,\n    kIOHIDDigitizerTransducerTypeFinger,\n    kIOHIDDigitizerTransducerTypeHand\n};\n\nPS_ENUM(uint32_t, IOHIDDigitizerEventMask) {\n    kIOHIDDigitizerEventRange = 1 << 0,\n    kIOHIDDigitizerEventTouch = 1 << 1,\n    kIOHIDDigitizerEventPosition = 1 << 2,\n    kIOHIDDigitizerEventStop = 1 << 3,\n    kIOHIDDigitizerEventPeak = 1 << 4,\n    kIOHIDDigitizerEventIdentity = 1 << 5,\n    kIOHIDDigitizerEventAttribute = 1 << 6,\n    kIOHIDDigitizerEventCancel = 1 << 7,\n    kIOHIDDigitizerEventStart = 1 << 8,\n    kIOHIDDigitizerEventResting = 1 << 9,\n    kIOHIDDigitizerEventFromEdgeFlat = 1 << 10,\n    kIOHIDDigitizerEventFromEdgeTip = 1 << 11,\n    kIOHIDDigitizerEventFromCorner = 1 << 12,\n    kIOHIDDigitizerEventSwipePending = 1 << 13,\n    kIOHIDDigitizerEventFromEdgeForcePending = 1 << 14,\n    kIOHIDDigitizerEventFromEdgeForceActive = 1 << 15,\n    kIOHIDDigitizerEventForcePopped = 1 << 16,\n    kIOHIDDigitizerEventSwipeUp = 1 << 24,\n    kIOHIDDigitizerEventSwipeDown = 1 << 25,\n    kIOHIDDigitizerEventSwipeLeft = 1 << 26,\n    kIOHIDDigitizerEventSwipeRight = 1 << 27,\n    kIOHIDDigitizerEventEstimatedAltitude = 1 << 28,\n    kIOHIDDigitizerEventEstimatedAzimuth = 1 << 29,\n    kIOHIDDigitizerEventEstimatedPressure = 1 << 30,\n    kIOHIDDigitizerEventSwipeMask = 0xF << 24,\n};\n\nPS_ENUM(uint32_t, IOHIDEventOptionBits) {\n    kIOHIDEventOptionIsAbsolute = 0x00000001,\n    kIOHIDEventOptionIsCollection = 0x00000002,\n    kIOHIDEventOptionPixelUnits = 0x00000004\n};\n\nPS_ENUM(uint32_t, IOHIDReportType) { kIOHIDReportTypeInput = 0, kIOHIDReportTypeOutput, kIOHIDReportTypeFeature, kIOHIDReportTypeCount };\n\n#ifdef __EA64__\ntypedef double IOHIDFloat;\n#else\ntypedef float IOHIDFloat;\n#endif\n\ntypedef struct _IOHID3DPoint {\n    IOHIDFloat x;\n    IOHIDFloat y;\n    IOHIDFloat z;\n} IOHID3DPoint;\n\nPS_ENUM(uint32_t, IOHIDEventField) {\n    kIOHIDEventFieldAccelerometerX = IOHIDEventFieldBase(kIOHIDEventTypeAccelerometer),\n    kIOHIDEventFieldAccelerometerY,\n    kIOHIDEventFieldAccelerometerZ,\n    kIOHIDEventFieldAccelerometerType,\n    kIOHIDEventFieldAccelerometerSubType,\n    kIOHIDEventFieldAccelerometerSequence,\n    kIOHIDEventFieldMouseX = IOHIDEventFieldBase(kIOHIDEventTypeMouse),\n    kIOHIDEventFieldMouseY,\n    kIOHIDEventFieldMouseZ,\n    kIOHIDEventFieldMouseButtonMask,\n    kIOHIDEventFieldMouseNumber,\n    kIOHIDEventFieldMouseClickCount,\n    kIOHIDEventFieldMousePressure,\n    kIOHIDEventFieldAmbientLightSensorLevel = IOHIDEventFieldBase(kIOHIDEventTypeAmbientLightSensor),\n    kIOHIDEventFieldAmbientLightSensorRawChannel0,\n    kIOHIDEventFieldAmbientLightSensorRawChannel1,\n    kIOHIDEventFieldAmbientLightDisplayBrightnessChanged,\n    kIOHIDEventFieldTemperatureLevel = IOHIDEventFieldBase(kIOHIDEventTypeTemperature),\n    kIOHIDEventFieldProximityDetectionMask = IOHIDEventFieldBase(kIOHIDEventTypeProximity),\n    kIOHIDEventFieldOrientationRadius = IOHIDEventFieldBase(kIOHIDEventTypeOrientation),\n    kIOHIDEventFieldOrientationAzimuth,\n    kIOHIDEventFieldOrientationAltitude,\n    kIOHIDEventFieldKeyboardUsagePage = IOHIDEventFieldBase(kIOHIDEventTypeKeyboard),\n    kIOHIDEventFieldKeyboardUsage,\n    kIOHIDEventFieldKeyboardDown,\n    kIOHIDEventFieldKeyboardRepeat,\n    kIOHIDEventFieldKeyboardPressCount,\n    kIOHIDEventFieldKeyboardLongPress,\n    kIOHIDEventFieldKeyboardClickSpeed,\n    kIOHIDEventFieldKeyboardSlowKeyPhase,\n    kIOHIDEventFieldKeyboardMouseKeyToggle,\n    kIOHIDEventFieldDigitizerX = IOHIDEventFieldBase(kIOHIDEventTypeDigitizer),\n    kIOHIDEventFieldDigitizerY,\n    kIOHIDEventFieldDigitizerZ,\n    kIOHIDEventFieldDigitizerButtonMask,\n    kIOHIDEventFieldDigitizerType,\n    kIOHIDEventFieldDigitizerIndex,\n    kIOHIDEventFieldDigitizerIdentity,\n    kIOHIDEventFieldDigitizerEventMask,\n    kIOHIDEventFieldDigitizerRange,\n    kIOHIDEventFieldDigitizerTouch,\n    kIOHIDEventFieldDigitizerPressure,\n    kIOHIDEventFieldDigitizerBarrelPressure,\n    kIOHIDEventFieldDigitizerTwist,\n    kIOHIDEventFieldDigitizerTiltX,\n    kIOHIDEventFieldDigitizerTiltY,\n    kIOHIDEventFieldDigitizerAltitude,\n    kIOHIDEventFieldDigitizerAzimuth,\n    kIOHIDEventFieldDigitizerQuality,\n    kIOHIDEventFieldDigitizerDensity,\n    kIOHIDEventFieldDigitizerIrregularity,\n    kIOHIDEventFieldDigitizerMajorRadius,\n    kIOHIDEventFieldDigitizerMinorRadius,\n    kIOHIDEventFieldDigitizerCollection,\n    kIOHIDEventFieldDigitizerCollectionChord,\n    kIOHIDEventFieldDigitizerChildEventMask,\n    kIOHIDEventFieldDigitizerIsDisplayIntegrated,\n    kIOHIDEventFieldDigitizerQualityRadiiAccuracy,\n    kIOHIDEventFieldDigitizerGenerationCount,\n    kIOHIDEventFieldDigitizerWillUpdateMask,\n    kIOHIDEventFieldDigitizerDidUpdateMask,\n    kIOHIDEventFieldDigitizerEstimatedMask,\n    kIOHIDEventFieldDigitizerAuxiliaryPressure = kIOHIDEventFieldDigitizerBarrelPressure,\n    kIOHIDEventFieldGenericGestureType = IOHIDEventFieldBase(kIOHIDEventTypeGenericGesture),\n    kIOHIDEventFieldGenericGestureTypeTapCount,\n    kIOHIDEventFieldGenericGestureTypeSwipeProgress,\n    kIOHIDEventFieldSwipeMask = IOHIDEventFieldBase(kIOHIDEventTypeSwipe),\n    kIOHIDEventFieldSwipeMotion,\n    kIOHIDEventFieldSwipeProgress,\n    kIOHIDEventFieldSwipePositionX,\n    kIOHIDEventFieldSwipePositionY,\n    kIOHIDEventFieldSwipeFlavor,\n    kIOHIDEventFieldProgressEventType = IOHIDEventFieldBase(kIOHIDEventTypeProgress),\n    kIOHIDEventFieldProgressLevel,\n    kIOHIDEventFieldFluidTouchGestureMask = IOHIDEventFieldBase(kIOHIDEventTypeFluidTouchGesture),\n    kIOHIDEventFieldFluidTouchGestureMotion,\n    kIOHIDEventFieldFluidTouchGestureProgress,\n    kIOHIDEventFieldFluidTouchGesturePositionX,\n    kIOHIDEventFieldFluidTouchGesturePositionY,\n    kIOHIDEventFieldFluidTouchGestureFlavor,\n    kIOHIDEventFieldBoundaryScrollMask = IOHIDEventFieldBase(kIOHIDEventTypeBoundaryScroll),\n    kIOHIDEventFieldBoundaryScrollMotion,\n    kIOHIDEventFieldBoundaryScrollProgress,\n    kIOHIDEventFieldBoundaryScrollPositionX,\n    kIOHIDEventFieldBoundaryScrollPositionY,\n    kIOHIDEventFieldBoundaryScrollFlavor,\n    kIOHIDEventFieldDockSwipeMask = IOHIDEventFieldBase(kIOHIDEventTypeDockSwipe),\n    kIOHIDEventFieldDockSwipeMotion,\n    kIOHIDEventFieldDockSwipeProgress,\n    kIOHIDEventFieldDockSwipePositionX,\n    kIOHIDEventFieldDockSwipePositionY,\n    kIOHIDEventFieldDockSwipeFlavor,\n    kIOHIDEventFieldNavigationSwipeMask = IOHIDEventFieldBase(kIOHIDEventTypeNavigationSwipe),\n    kIOHIDEventFieldNavigationSwipeMotion,\n    kIOHIDEventFieldNavigationSwipeProgress,\n    kIOHIDEventFieldNavigationSwipePositionX,\n    kIOHIDEventFieldNavigationSwipePositionY,\n    kIOHIDEventFieldNavagationSwipeFlavor,\n    kIOHIDEventFieldButtonMask = IOHIDEventFieldBase(kIOHIDEventTypeButton),\n    kIOHIDEventFieldButtonNumber,\n    kIOHIDEventFieldButtonClickCount,\n    kIOHIDEventFieldButtonPressure,\n    kIOHIDEventFieldButtonState,\n    kIOHIDEventFieldPointerX = IOHIDEventFieldBase(kIOHIDEventTypePointer),\n    kIOHIDEventFieldPointerY,\n    kIOHIDEventFieldPointerZ,\n    kIOHIDEventFieldPointerButtonMask,\n    kIOHIDEventFieldPointerButtonNumber = kIOHIDEventFieldButtonNumber,\n    kIOHIDEventFieldPointerButtonClickCount = kIOHIDEventFieldButtonClickCount,\n    kIOHIDEventFieldPointerButtonPressure = kIOHIDEventFieldButtonPressure,\n    kIOHIDEventFieldVelocityX = IOHIDEventFieldBase(kIOHIDEventTypeVelocity),\n    kIOHIDEventFieldVelocityY,\n    kIOHIDEventFieldVelocityZ,\n    kIOHIDEventFieldScaleX = IOHIDEventFieldBase(kIOHIDEventTypeScale),\n    kIOHIDEventFieldScaleY,\n    kIOHIDEventFieldScaleZ,\n    kIOHIDEventFieldScrollX = IOHIDEventFieldBase(kIOHIDEventTypeScroll),\n    kIOHIDEventFieldScrollY,\n    kIOHIDEventFieldScrollZ,\n    kIOHIDEventFieldScrollIsPixels,\n    kIOHIDEventFieldRotationX = IOHIDEventFieldBase(kIOHIDEventTypeRotation),\n    kIOHIDEventFieldRotationY,\n    kIOHIDEventFieldRotationZ,\n    kIOHIDEventFieldTranslationX = IOHIDEventFieldBase(kIOHIDEventTypeTranslation),\n    kIOHIDEventFieldTranslationY,\n    kIOHIDEventFieldTranslationZ,\n    kIOHIDEventFieldVendorDefinedUsagePage = IOHIDEventFieldBase(kIOHIDEventTypeVendorDefined),\n    kIOHIDEventFieldVendorDefinedUsage,\n    kIOHIDEventFieldVendorDefinedVersion,\n    kIOHIDEventFieldVendorDefinedDataLength,\n    kIOHIDEventFieldVendorDefinedData,\n    kIOHIDEventFieldIsRelative = IOHIDEventFieldBase(kIOHIDEventTypeNULL),\n    kIOHIDEventFieldIsCollection,\n    kIOHIDEventFieldIsPixelUnits,\n    kIOHIDEventFieldIsCenterOrigin,\n    kIOHIDEventFieldIsBuiltIn,\n    kIOHIDEventFieldMultiAxisPointerX = IOHIDEventFieldBase(kIOHIDEventTypeMultiAxisPointer),\n    kIOHIDEventFieldMultiAxisPointerY,\n    kIOHIDEventFieldMultiAxisPointerZ,\n    kIOHIDEventFieldMultiAxisPointerRx,\n    kIOHIDEventFieldMultiAxisPointerRy,\n    kIOHIDEventFieldMultiAxisPointerRz,\n    kIOHIDEventFieldMultiAxisPointerButtonMask,\n    kIOHIDEventFieldMultiAxisPointerButtonNumber = kIOHIDEventFieldButtonNumber,\n    kIOHIDEventFieldMultiAxisPointerButtonClickCount = kIOHIDEventFieldButtonClickCount,\n    kIOHIDEventFieldMultiAxisPointerButtonPressure = kIOHIDEventFieldButtonPressure,\n};\n\nPS_ENUM(uint32_t, IOHIDDigitizerEventUpdateMask) {\n    kIOHIDDigitizerEventUpdateXMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerX),\n    kIOHIDDigitizerEventUpdateYMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerY),\n    kIOHIDDigitizerEventUpdateZMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerZ),\n    kIOHIDDigitizerEventUpdateButtonMaskMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerButtonMask),\n    kIOHIDDigitizerEventUpdateTypeMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerType),\n    kIOHIDDigitizerEventUpdateIndexMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerIndex),\n    kIOHIDDigitizerEventUpdateIdentityMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerIdentity),\n    kIOHIDDigitizerEventUpdateEventMaskMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerEventMask),\n    kIOHIDDigitizerEventUpdateRangeMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerRange),\n    kIOHIDDigitizerEventUpdateTouchMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerTouch),\n    kIOHIDDigitizerEventUpdatePressureMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerPressure),\n    kIOHIDDigitizerEventUpdateAuxiliaryPressureMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerAuxiliaryPressure),\n    kIOHIDDigitizerEventUpdateTwistMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerTwist),\n    kIOHIDDigitizerEventUpdateTiltXMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerTiltX),\n    kIOHIDDigitizerEventUpdateTiltYMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerTiltY),\n    kIOHIDDigitizerEventUpdateAltitudeMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerAltitude),\n    kIOHIDDigitizerEventUpdateAzimuthMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerAzimuth),\n    kIOHIDDigitizerEventUpdateQualityMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerQuality),\n    kIOHIDDigitizerEventUpdateDensityMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerDensity),\n    kIOHIDDigitizerEventUpdateIrregularityMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerIrregularity),\n    kIOHIDDigitizerEventUpdateMajorRadiusMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerMajorRadius),\n    kIOHIDDigitizerEventUpdateMinorRadiusMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerMinorRadius),\n    kIOHIDDigitizerEventUpdateCollectionMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerCollection),\n    kIOHIDDigitizerEventUpdateCollectionChordMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerCollectionChord),\n    kIOHIDDigitizerEventUpdateChildEventMaskMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerChildEventMask),\n    kIOHIDDigitizerEventUpdateIsDisplayIntegratedMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerIsDisplayIntegrated),\n    kIOHIDDigitizerEventUpdateQualityRadiiAccuracyMask = 1 << IOHIDEventFieldOffsetOf(kIOHIDEventFieldDigitizerQualityRadiiAccuracy),\n};\n\nPS_ENUM(int, IOHIDEventSystemClientType) {\n    kIOHIDEventSystemClientTypeMonitor = 1,\n    kIOHIDEventSystemClientTypeAdmin = 2,\n    kIOHIDEventSystemClientTypeSimple = 4\n};\n\nenum { kIOPMIdleSleepPreventers = 0, kIOPMSystemSleepPreventers = 1 };\n\nenum { kIOHIDGenericGestureTypeTap = 0, kIOHIDGenericGestureTypeSwipe };\n\ntypedef struct IOHIDEventData {\n    uint32_t size;\n    IOHIDEventType type;\n    uint32_t options;\n    uint8_t depth;\n    uint8_t reserved[3];\n} IOHIDEventData;\n\ntypedef void (*IOHIDCallback)(void *context, IOReturn result, void *sender);\ntypedef void (*IOHIDValueCallback)(void *context, IOReturn result, void *sender, IOHIDValueRef value);\ntypedef void (*IOHIDReportCallback)(void *context, IOReturn result, void *sender, IOHIDReportType type, uint32_t reportID, uint8_t *report,\n                                    CFIndex reportLength);\ntypedef void (*IOHIDDeviceCallback)(void *context, IOReturn result, void *sender, IOHIDDeviceRef device);\ntypedef void (*IOServiceMatchingCallback)(void *refcon, io_iterator_t iterator);\ntypedef void (*IOHIDEventSystemClientEventCallback)(void *target, void *refcon, IOHIDEventQueueRef queue, IOHIDEventRef event);\ntypedef bool (*IOHIDEventSystemEventFilterCallback)(void *target, void *refcon, void *sender, IOHIDEventRef event);\ntypedef IOReturn (*IOHIDUserDeviceReportCallback)(void *refcon, IOHIDReportType type, uint32_t reportID, uint8_t *report, CFIndex reportLength);\ntypedef IOReturn (*IOHIDUserDeviceHandleReportAsyncCallback)(void *refcon, IOReturn result);\n\ntypedef uintptr_t IOPMNotificationHandle;\n\n#endif"
  },
  {
    "path": "IOMobileFramebuffer/IOMobileFramebuffer.h",
    "content": "#import \"../Kernel/Types.h\"\n#import \"../IOSurface/Types.h\"\n#import \"Types.h\"\n\nIOMobileFramebufferReturn IOMobileFramebufferOpen(IOMobileFramebufferService service, task_port_t owningTask, unsigned int type, IOMobileFramebufferRef *pointer);\nIOMobileFramebufferReturn IOMobileFramebufferOpenByName(IOMobileFramebufferDisplayType name, IOMobileFramebufferRef *pointer);\nIOMobileFramebufferReturn IOMobileFramebufferGetMainDisplay(IOMobileFramebufferRef *pointer);\nIOMobileFramebufferReturn IOMobileFramebufferGetDisplayArea(IOMobileFramebufferRef pointer, IOMobileFramebufferDisplayArea *displayArea);\nIOMobileFramebufferReturn IOMobileFramebufferGetDisplaySize(IOMobileFramebufferRef pointer, IOMobileFramebufferDisplaySize *size);\nIOMobileFramebufferReturn IOMobileFramebufferGetDotPitch(IOMobileFramebufferRef pointer, IOMobileFramebufferDotPitch *dotPitch);\nIOMobileFramebufferReturn IOMobileFramebufferSwapBegin(IOMobileFramebufferRef pointer, int *token);\nIOMobileFramebufferReturn IOMobileFramebufferSwapEnd(IOMobileFramebufferRef pointer);\nIOMobileFramebufferReturn IOMobileFramebufferSwapSetLayer(IOMobileFramebufferRef pointer, int layerid, IOSurfaceRef buffer);\nIOMobileFramebufferReturn IOMobileFramebufferSwapWait(IOMobileFramebufferRef pointer, int token, int something);\n"
  },
  {
    "path": "IOMobileFramebuffer/Types.h",
    "content": "#ifndef IOMOBILEFRAMEBUFFER_H_\n#define IOMOBILEFRAMEBUFFER_H_\n\n#import \"../CoreGraphics/Types.h\"\n#import \"../IOKit/Types.h\"\n\ntypedef struct __IOMobileFramebuffer *IOMobileFramebufferRef;\n\ntypedef IOReturn IOMobileFramebufferReturn;\n\ntypedef io_service_t IOMobileFramebufferService;\n\ntypedef CGSize IOMobileFramebufferDisplaySize;\ntypedef CGFloat IOMobileFramebufferDisplayArea;\n\ntypedef CFTypeID IOMobileFramebufferID;\n\ntypedef CFStringRef IOMobileFramebufferDisplayType;\n\ntypedef int IOMobileFramebufferContrastLevel;\ntypedef int IOMobileFramebufferDotPitch;\n\n#endif\n"
  },
  {
    "path": "IOSurface/IOSurface.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../Kernel/Types.h\"\n#import \"../CoreGraphics/Types.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"../IOKit/Types.h\"\n#import \"Types.h\"\n\nBoolean IOSurfaceIsInUse(IOSurfaceRef buffer);\nBoolean IOSurfaceIsTiled(IOSurfaceRef buffer);\n\nCFTypeID IOSurfaceGetTypeID(void);\n\nCFTypeRef IOSurfaceCopyValue(IOSurfaceRef buffer, CFStringRef key);\n\nCGContextRef CGIOSurfaceContextCreate(IOSurfaceRef, size_t, size_t, size_t, size_t, CGColorSpaceRef, CGBitmapInfo);\n\nCGImageRef CGIOSurfaceContextCreateImage(CGContextRef);\n\nIOReturn IOSurfaceLock(IOSurfaceRef buffer, uint32_t options, uint32_t *seed);\nIOReturn IOSurfaceSetPurgeable(IOSurfaceRef buffer, uint32_t newState, uint32_t *oldState);\nIOReturn IOSurfaceUnlock(IOSurfaceRef buffer, uint32_t options, uint32_t *seed);\n\nIOSurfaceID IOSurfaceGetID(IOSurfaceRef buffer);\n\nIOSurfaceRef IOSurfaceCreate(CFDictionaryRef properties);\nIOSurfaceRef IOSurfaceLookup(IOSurfaceID csid);\nIOSurfaceRef IOSurfaceLookupFromMachPort(mach_port_t);\n\nmach_port_t IOSurfaceCreateMachPort(IOSurfaceRef buffer);\n\nOSType IOSurfaceGetPixelFormat(IOSurfaceRef buffer);\n\nsize_t IOSurfaceAlignProperty(CFStringRef property, size_t value);\nsize_t IOSurfaceGetAllocSize(IOSurfaceRef buffer);\nsize_t IOSurfaceGetBytesPerElement(IOSurfaceRef buffer);\nsize_t IOSurfaceGetBytesPerElementOfPlane(IOSurfaceRef buffer, size_t planeIndex);\nsize_t IOSurfaceGetBytesPerRow(IOSurfaceRef buffer);\nsize_t IOSurfaceGetBytesPerRowOfPlane(IOSurfaceRef buffer, size_t planeIndex);\nsize_t IOSurfaceGetElementHeight(IOSurfaceRef buffer);\nsize_t IOSurfaceGetElementHeightOfPlane(IOSurfaceRef buffer, size_t planeIndex);\nsize_t IOSurfaceGetElementWidth(IOSurfaceRef buffer);\nsize_t IOSurfaceGetElementWidthOfPlane(IOSurfaceRef buffer, size_t planeIndex);\nsize_t IOSurfaceGetHeight(IOSurfaceRef buffer);\nsize_t IOSurfaceGetHeightOfPlane(IOSurfaceRef buffer, size_t planeIndex);\nsize_t IOSurfaceGetPlaneCount(IOSurfaceRef buffer);\nsize_t IOSurfaceGetPropertyMaximum(CFStringRef property);\nsize_t IOSurfaceGetWidth(IOSurfaceRef buffer);\nsize_t IOSurfaceGetWidthOfPlane(IOSurfaceRef buffer, size_t planeIndex);\n\nvoid *IOSurfaceGetBaseAddress(IOSurfaceRef buffer);\nvoid *IOSurfaceGetBaseAddressOfPlane(IOSurfaceRef buffer, size_t planeIndex);\n\nvoid IOSurfaceDecrementUseCount(IOSurfaceRef buffer);\nvoid IOSurfaceIncrementUseCount(IOSurfaceRef buffer);\nvoid IOSurfaceRemoveValue(IOSurfaceRef buffer, CFStringRef key);\nvoid IOSurfaceSetValue(IOSurfaceRef buffer, CFStringRef key, CFTypeRef value);\n"
  },
  {
    "path": "IOSurface/Types.h",
    "content": "#ifndef IOSURFACE_H_\n#define IOSURFACE_H_\n\n#import \"../BaseTypes.h\"\n\ntypedef struct __IOSurface *IOSurfaceRef;\n\ntypedef uint32_t IOSurfaceID;\n\n#endif"
  },
  {
    "path": "Kernel/Kernel.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"Types.h\"\n\nint kdebug_trace(uint32_t debugid, uint64_t arg1, uint64_t arg2, uint64_t arg3, uint64_t arg4);\nint mig_strncpy_zerofill(char *dest, const char *src, int len);\nint proc_setthread_cpupercent(uint8_t percentage, uint32_t ms_refill);\n\nkern_return_t mach_port_construct(ipc_space_t task, mach_port_options_ptr_t options, uint64_t context, mach_port_name_t *name);\nkern_return_t mach_port_destruct(ipc_space_t task, mach_port_name_t name, mach_port_delta_t srdelta, uint64_t guard);\nkern_return_t mach_port_peek(ipc_space_t task, mach_port_name_t name, mach_msg_trailer_type_t trailer_type, mach_port_seqno_t *request_seqnop, mach_msg_size_t *msg_sizep, mach_msg_id_t *msg_idp, mach_msg_trailer_info_t trailer_infop, mach_msg_type_number_t *trailer_infopCnt);\nkern_return_t mach_get_times(uint64_t *absolute_time, uint64_t *cont_time, struct timespec *tp);\n\nuint64_t mach_continuous_approximate_time(void);\nuint64_t mach_continuous_time(void);\n"
  },
  {
    "path": "Kernel/Types.h",
    "content": "#ifndef KERNEL_H_\n#define KERNEL_H_\n\n#import \"../BaseTypes.h\"\n\ntypedef __darwin_natural_t natural_t;\ntypedef natural_t mach_port_name_t;\ntypedef natural_t mach_port_seqno_t;\ntypedef natural_t mach_port_msgcount_t;\ntypedef natural_t mach_msg_type_number_t;\ntypedef natural_t mach_msg_size_t;\ntypedef kern_return_t mach_msg_return_t;\n\n#define BOOTSTRAP_MAX_NAME_LEN 128\n\ntypedef char name_t[BOOTSTRAP_MAX_NAME_LEN];\n\n#ifdef __EA64__\ntypedef long __darwin_ptrdiff_t;\n#else\ntypedef int __darwin_ptrdiff_t;\n#endif\n\ntypedef unsigned char __darwin_uuid_t[16];\n\ntypedef __darwin_uuid_t uuid_t;\n\ntypedef __darwin_ptrdiff_t ptrdiff_t;\n\ntypedef struct task *task_t;\ntypedef task_t task_port_t;\n\ntypedef integer_t mach_msg_id_t;\ntypedef integer_t mach_port_delta_t;\n\ntypedef char *mach_msg_trailer_info_t;\n\ntypedef uint16_t mode_t;\ntypedef uint64_t mach_vm_size_t;\ntypedef u_int64_t user_addr_t;\n\ntypedef int boolean_t;\n\ntypedef char gid_t;\ntypedef short uid_t;\ntypedef int pid_t;\n\ntypedef unsigned int FourCharCode;\ntypedef unsigned int mach_msg_trailer_type_t;\ntypedef unsigned int mach_msg_trailer_size_t;\ntypedef unsigned int mach_msg_bits_t;\n\ntypedef vm_offset_t pointer_t;\n\ntypedef SInt16 OSErr;\ntypedef SInt32 OSStatus;\ntypedef UInt32 OptionBits;\n\ntypedef FourCharCode OSType;\n\ntypedef struct ipc_space *ipc_space_t;\n\ntypedef struct mach_port_limits {\n    mach_port_msgcount_t mpl_qlimit;\n} mach_port_limits_t;\n\ntypedef struct mach_port_options {\n    uint32_t flags;\n    mach_port_limits_t mpl;\n    uint64_t reserved[2];\n} mach_port_options_t;\n\ntypedef struct mach_msg_header {\n    mach_msg_bits_t msgh_bits;\n    mach_msg_size_t msgh_size;\n    mach_port_t msgh_remote_port;\n    mach_port_t msgh_local_port;\n    mach_msg_size_t msgh_reserved;\n    mach_msg_id_t msgh_id;\n} mach_msg_header_t;\n\ntypedef mach_vm_address_t mach_port_context_t;\ntypedef mach_port_options_t *mach_port_options_ptr_t;\n\ntypedef struct security_token {\n    unsigned int val[2];\n} security_token_t;\n\ntypedef struct audit_token {\n    unsigned int val[8];\n} audit_token_t;\n\ntypedef struct mach_msg_context_trailer {\n    mach_msg_trailer_type_t msgh_trailer_type;\n    mach_msg_trailer_size_t msgh_trailer_size;\n    mach_port_seqno_t msgh_seqno;\n    security_token_t msgh_sender;\n    audit_token_t msgh_audit;\n    mach_port_context_t msgh_context;\n} mach_msg_context_trailer_t;\n\n#endif"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 - 2025 PoomSmart\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nCopyright (C) Apple Inc. All rights reserved\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution\nTHIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\nEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\nPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\nOF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "MediaRemote/MediaRemote.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../Darwin/Types.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"../Foundation/Types.h\"\n#import \"Types.h\"\n\nBoolean MRMediaRemotePickedRouteHasVolumeControl();\nBoolean MRMediaRemoteSendCommand(MRMediaRemoteCommand command, NSDictionary *userInfo);\nBoolean MRMediaRemoteSetCanBeNowPlayingApplication(Boolean can);\n\nCFArrayRef MRMediaRemoteCopyPickableRoutes();\nCFArrayRef MRMediaRemoteCopyPickableRoutesForCategory(CFNSString category);\n\nint MRMediaRemoteSelectSourceWithID(CFStringRef identifier);\n\nvoid MRMediaRemoteBeginRouteDiscovery();\nvoid MRMediaRemoteEndRouteDiscovery();\nvoid MRMediaRemoteGetMediaPlaybackVolume(dispatch_queue_t queue, MRMediaRemoteGetMediaPlaybackVolumeCompletion completion);\nvoid MRMediaRemoteGetNowPlayingApplicationIsPlaying(dispatch_queue_t queue, MRMediaRemoteGetNowPlayingApplicationIsPlayingCompletion completion);\nvoid MRMediaRemoteGetNowPlayingApplicationPID(dispatch_queue_t queue, MRMediaRemoteGetNowPlayingApplicationPIDCompletion completion);\nvoid MRMediaRemoteGetNowPlayingInfo(dispatch_queue_t queue, MRMediaRemoteGetNowPlayingInfoCompletion completion);\nvoid MRMediaRemoteGetSavedAVRoutePassword(CFStringRef route, dispatch_queue_t queue, MRMediaRemoteGetSavedAVRoutePasswordCompletion completion);\nvoid MRMediaRemoteGetSupportedCommands(dispatch_queue_t queue, MRMediaRemoteGetSupportedCommandsCompletion completion);\nvoid MRMediaRemoteKeepAlive();\nvoid MRMediaRemoteRegisterForNowPlayingNotifications(dispatch_queue_t queue);\nvoid MRMediaRemoteSetElapsedTime(double elapsedTime);\nvoid MRMediaRemoteSetElapsedTime(double time);\nvoid MRMediaRemoteSetMediaPlaybackVolume(float volume, Boolean bypassVolumeWarning, dispatch_queue_t queue, MRMediaRemoteSetMediaPlaybackVolumeCompletion completion);\nvoid MRMediaRemoteSetNowPlayingApplicationOverrideEnabled(Boolean enabled);\nvoid MRMediaRemoteSetNowPlayingInfo(CFDictionaryRef information);\nvoid MRMediaRemoteSetPickedRouteWithPassword(CFStringRef route, CFStringRef password);\nvoid MRMediaRemoteSetPlaybackSpeed(int speed);\nvoid MRMediaRemoteSetRepeatMode(int mode);\nvoid MRMediaRemoteSetShuffleMode(int mode);\nvoid MRMediaRemoteUnregisterForNowPlayingNotifications();\n"
  },
  {
    "path": "MediaRemote/Types.h",
    "content": "#ifndef MEDIAREMOTE_H_\n#define MEDIAREMOTE_H_\n\n#import \"../CoreFoundation/Types.h\"\n#import \"../Foundation/Types.h\"\n\nPS_ENUM(NSInteger, MRMediaRemoteCommand) {\n    MRMediaRemoteCommandPlay = 0,\n    MRMediaRemoteCommandPause = 1,\n    MRMediaRemoteCommandTogglePlayPause = 2,\n    MRMediaRemoteCommandStop = 3,\n    MRMediaRemoteCommandNextTrack = 4,\n    MRMediaRemoteCommandPreviousTrack = 5,\n    MRMediaRemoteCommandAdvanceShuffleMode = 6,\n    MRMediaRemoteCommandAdvanceRepeatMode = 7,\n    MRMediaRemoteCommandBeginFastForward = 8,\n    MRMediaRemoteCommandEndFastForward = 9,\n    MRMediaRemoteCommandBeginRewind = 10,\n    MRMediaRemoteCommandEndRewind = 11,\n    MRMediaRemoteCommandRewind15Seconds = 12,\n    MRMediaRemoteCommandFastForward15Seconds = 13,\n    MRMediaRemoteCommandRewind30Seconds = 14,\n    MRMediaRemoteCommandFastForward30Seconds = 15,\n    MRMediaRemoteCommandToggleRecord = 16,\n    MRMediaRemoteCommandSkipForward = 17,\n    MRMediaRemoteCommandSkipBackward = 18,\n    MRMediaRemoteCommandChangePlaybackRate = 19,\n\n    MRMediaRemoteCommandRateTrack = 20,\n    MRMediaRemoteCommandLikeTrack = 21,\n    MRMediaRemoteCommandDislikeTrack = 22,\n    MRMediaRemoteCommandBookmarkTrack = 23,\n\n    MRMediaRemoteCommandSeekToPlaybackPosition = 24,\n    MRMediaRemoteCommandChangeRepeatMode = 25,\n    MRMediaRemoteCommandChangeShuffleMode = 26,\n    MRMediaRemoteCommandEnableLanguageOption = 27,\n    MRMediaRemoteCommandDisableLanguageOption = 28,\n\n    MRMediaRemoteCommandNextChapter = 100,\n    MRMediaRemoteCommandPreviousChapter = 101,\n    MRMediaRemoteCommandNextAlbum = 102,\n    MRMediaRemoteCommandPreviousAlbum = 103,\n    MRMediaRemoteCommandNextPlaylist = 104,\n    MRMediaRemoteCommandPreviousPlaylist = 105,\n\n    MRMediaRemoteCommandBanTrack = 106,\n    MRMediaRemoteCommandAddTrackToWishList = 107,\n    MRMediaRemoteCommandRemoveTrackFromWishList = 108,\n    MRMediaRemoteCommandNextInContext = 109,\n    MRMediaRemoteCommandPreviousInContext = 110,\n\n    MRMediaRemoteCommandMenu = 111,\n    MRMediaRemoteCommandSelect = 112,\n    MRMediaRemoteCommandUpArrow = 113,\n    MRMediaRemoteCommandDownArrow = 114,\n    MRMediaRemoteCommandBacklightOff = 115,\n\n    MRMediaRemoteCommandResetPlaybackTimeout = 116,\n    MRMediaRemoteCommandBuyTrack = 117,\n    MRMediaRemoteCommandBuyAlbum = 118,\n    MRMediaRemoteCommandPreOrderAlbum = 119,\n    MRMediaRemoteCommandCancelDownload = 120,\n    MRMediaRemoteCommandCreateRadioStation = 121,\n    MRMediaRemoteCommandSetPlaybackQueue = 122,\n    MRMediaRemoteCommandPresentUpNext = 123,\n    MRMediaRemoteCommandSetSleepTimer = 124,\n    MRMediaRemoteCommandInsertIntoPlaybackQueue = 125,\n    MRMediaRemoteCommandPresentSharingOptions = 126,\n\n    MRMediaRemoteCommandAddNowPlayingItemToLibrary = 127,\n    MRMediaRemoteCommandAddItemToLibrary = 128,\n    MRMediaRemoteCommandRemoveFromPlaybackQueue = 129,\n    MRMediaRemoteCommandReorderPlaybackQueue = 130,\n    MRMediaRemoteCommandPlayItemInPlaybackQueue = 131,\n    MRMediaRemoteCommandPrepareForSetQueue = 132,\n    MRMediaRemoteCommandSetPlaybackSession = 133,\n    MRMediaRemoteCommandReshuffle = 134,\n    MRMediaRemoteCommandChangeQueueEndAction = 135,\n    MRMediaRemoteCommandPreloadPlaybackSession = 136,\n    MRMediaRemoteCommandSetPriorityForPlaybackSession = 137,\n    MRMediaRemoteCommandDiscardPlaybackSession = 138\n};\n\ntypedef void (*MRMediaRemoteGetMediaPlaybackVolumeCompletion)(float volume);\ntypedef void (*MRMediaRemoteGetNowPlayingInfoCompletion)(CFDictionaryRef information);\ntypedef void (*MRMediaRemoteGetNowPlayingApplicationPIDCompletion)(int PID);\ntypedef void (*MRMediaRemoteGetNowPlayingApplicationIsPlayingCompletion)(Boolean isPlaying);\ntypedef void (*MRMediaRemoteGetSavedAVRoutePasswordCompletion)(CFStringRef password);\ntypedef void (*MRMediaRemoteGetSupportedCommandsCompletion)(CFArrayRef commands);\ntypedef void (*MRMediaRemoteSetMediaPlaybackVolumeCompletion)(CFErrorRef error);\n\nCFStringRef kMRMediaRemoteNowPlayingInfoDidChangeNotification;\nCFStringRef kMRMediaRemoteNowPlayingPlaybackQueueDidChangeNotification;\nCFStringRef kMRMediaRemotePickableRoutesDidChangeNotification;\nCFStringRef kMRMediaRemoteNowPlayingApplicationDidChangeNotification;\nCFStringRef kMRMediaRemoteNowPlayingApplicationIsPlayingDidChangeNotification;\nCFStringRef kMRMediaRemoteRouteStatusDidChangeNotification;\n\nCFStringRef kMRMediaRemoteNowPlayingApplicationPIDUserInfoKey;\nCFStringRef kMRMediaRemoteNowPlayingApplicationIsPlayingUserInfoKey;\nCFStringRef kMRMediaRemoteNowPlayingInfoAlbum;\nCFStringRef kMRMediaRemoteNowPlayingInfoArtist;\nCFStringRef kMRMediaRemoteNowPlayingInfoArtworkData;\nCFStringRef kMRMediaRemoteNowPlayingInfoArtworkMIMEType;\nCFStringRef kMRMediaRemoteNowPlayingInfoChapterNumber;\nCFStringRef kMRMediaRemoteNowPlayingInfoComposer;\nCFStringRef kMRMediaRemoteNowPlayingInfoDuration;\nCFStringRef kMRMediaRemoteNowPlayingInfoElapsedTime;\nCFStringRef kMRMediaRemoteNowPlayingInfoGenre;\nCFStringRef kMRMediaRemoteNowPlayingInfoIsAdvertisement;\nCFStringRef kMRMediaRemoteNowPlayingInfoIsBanned;\nCFStringRef kMRMediaRemoteNowPlayingInfoIsInWishList;\nCFStringRef kMRMediaRemoteNowPlayingInfoIsLiked;\nCFStringRef kMRMediaRemoteNowPlayingInfoIsMusicApp;\nCFStringRef kMRMediaRemoteNowPlayingInfoPlaybackRate;\nCFStringRef kMRMediaRemoteNowPlayingInfoProhibitsSkip;\nCFStringRef kMRMediaRemoteNowPlayingInfoQueueIndex;\nCFStringRef kMRMediaRemoteNowPlayingInfoRadioStationIdentifier;\nCFStringRef kMRMediaRemoteNowPlayingInfoRepeatMode;\nCFStringRef kMRMediaRemoteNowPlayingInfoShuffleMode;\nCFStringRef kMRMediaRemoteNowPlayingInfoStartTime;\nCFStringRef kMRMediaRemoteNowPlayingInfoSupportsFastForward15Seconds;\nCFStringRef kMRMediaRemoteNowPlayingInfoSupportsIsBanned;\nCFStringRef kMRMediaRemoteNowPlayingInfoSupportsIsLiked;\nCFStringRef kMRMediaRemoteNowPlayingInfoSupportsRewind15Seconds;\nCFStringRef kMRMediaRemoteNowPlayingInfoTimestamp;\nCFStringRef kMRMediaRemoteNowPlayingInfoTitle;\nCFStringRef kMRMediaRemoteNowPlayingInfoTotalChapterCount;\nCFStringRef kMRMediaRemoteNowPlayingInfoTotalDiscCount;\nCFStringRef kMRMediaRemoteNowPlayingInfoTotalQueueCount;\nCFStringRef kMRMediaRemoteNowPlayingInfoTotalTrackCount;\nCFStringRef kMRMediaRemoteNowPlayingInfoTrackNumber;\nCFStringRef kMRMediaRemoteNowPlayingInfoUniqueIdentifier;\nCFStringRef kMRMediaRemoteNowPlayingInfoRadioStationHash;\nCFStringRef kMRMediaRemoteOptionMediaType;\nCFStringRef kMRMediaRemoteOptionSourceID;\nCFStringRef kMRMediaRemoteOptionTrackID;\nCFStringRef kMRMediaRemoteOptionStationID;\nCFStringRef kMRMediaRemoteOptionStationHash;\nCFStringRef kMRMediaRemoteRouteDescriptionUserInfoKey;\nCFStringRef kMRMediaRemoteRouteStatusUserInfoKey;\n\n#endif\n"
  },
  {
    "path": "MobileGestalt/MobileGestalt.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"../Foundation/Types.h\"\n#import \"Types.h\"\n\nSInt32 MGGetSInt32Answer(CFStringRef key, SInt32 defaultVal);\nSInt64 MGGetSInt64Answer(CFStringRef key, SInt64 defaultVal);\n\nFloat32 MGGetFloat32Answer(CFStringRef key, Float32 defaultVal);\n\nbool MGGetBoolAnswer(CFStringRef key);\nbool MGIsQuestionValid(CFStringRef key);\nbool MGIsDeviceOfType(uint8_t *type);\nbool MGIsDeviceOneOfType(uint8_t *type, ...) __attribute__((sentinel));\n\nCFTypeRef MGCopyAnswer(CFStringRef key, CFDictionaryRef options);\nCFTypeRef MGCopyAnswerWithError(CFStringRef key, CFDictionaryRef options, int *error);\nCFPropertyListRef MGCopyMultipleAnswers(CFArrayRef keys, CFDictionaryRef options);\nCFStringRef MGGetStringAnswer(CFStringRef key);\n\nMGProductType MGGetProductType(void);\n\nint MGSetAnswer(CFStringRef key, CFTypeRef answer);\n\nvoid _MGLog(CFStringRef filePath, NSInteger lineNumber, CFStringRef format, ...);\n"
  },
  {
    "path": "MobileGestalt/Types.h",
    "content": "#import \"../BaseTypes.h\"\n\nPS_ENUM(int, MGProductType) {\n    MGProductTypeUnknown = -1,\n};\n\nPS_ENUM(int, MGDeviceClass) {\n    MGDeviceClassInvalid            = -1,\n    MGDeviceClassiPhone             = 1,\n    MGDeviceClassiPod               = 2,\n    MGDeviceClassiPad               = 3,\n    MGDeviceClassAppleTV            = 4,\n    MGDeviceClassiFPGA              = 5,\n    MGDeviceClassWatch              = 6,\n    MGDeviceClassAudioAccessory     = 7,\n    MGDeviceClassiBridge            = 8,\n    MGDeviceClassMac                = 9,\n    MGDeviceClassAppleDisplay       = 10,\n    MGDeviceClassRealityDevice      = 11,\n    MGDeviceClassComputeModule      = 12,\n};\n"
  },
  {
    "path": "PowerLog/PowerLog.h",
    "content": "#import \"../CoreFoundation/Types.h\"\n\nbool PLShouldLogRegisteredEvent(int clientID, CFStringRef event);\n\nvoid PLLogRegisteredEvent(int clientID, CFStringRef eventName, CFDictionaryRef eventDictionary);\nvoid PLLogTimeSensitiveRegisteredEvent(int clientID, CFStringRef eventName, CFDictionaryRef eventDictionary);\n"
  },
  {
    "path": "QuartzCore/QuartzCore.h",
    "content": "#import \"Types.h\"\n\nbool CAFrameRateRangeIsEqualToRange(CAFrameRateRange range, CAFrameRateRange other);\n\nCAFrameRateRange CAFrameRateRangeMake(float minimum, float maximum, float preferred);\n"
  },
  {
    "path": "QuartzCore/Types.h",
    "content": "#ifndef QUARTZCORE_H_\n#define QUARTZCORE_H_\n\ntypedef struct CAFrameRateRange {\n    float minimum;\n    float maximum;\n    float preferred;\n} CAFrameRateRange;\n\nextern const CAFrameRateRange CAFrameRateRangeDefault;\n\n#endif\n"
  },
  {
    "path": "README.md",
    "content": "# IDAObjcTypes\nA collection of (public and private) types and functions definitions useful for iOS/macOS binaries analysis.\n\n## Why even?\nWould you rather re-define the same functions or types over and over as you work with different binaries?\n\n## Usage (IDA Pro 8+)\n\n1. Go to `File > Load file > Parse C header file` then choose `IDA.h` to import everything at once. Or, run this IDA command: `idaapi.idc_parse_types(\"/path/to/IDAObjcTypes/IDA.h\", idc.PT_FILE)`.\n2. Copy `IDA.til` and `IDA32.til` to `til` folder inside IDA application directory.\n3. In IDA Pro, open `Type Libraries` window via `View > Open subviews > Type libraries` or press `Shift + F11`.\n4. Right-click the type list and select `Load type library...`.\n5. Select `IDA` (or `IDA32` if you target 32-bit binaries) and click `OK` button.\n\nTIL created via this command:\n\n```bash\ntilib -c -hIDA.h IDA.til -D__EA64__ -P -tIDAObjcTypes\ntilib -c -hIDA.h IDA32.til -P -tIDAObjcTypes32\n```\n\n## Usage (IDA Pro 7)\nGo to `File > Load file > Parse C header file` then choose `IDA.h` to import everything at once.\n\nOr, run this IDA command: `idaapi.idc_parse_types(\"/path/to/IDAObjcTypes/IDA.h\", idc.PT_FILE)`\n\n## Usage (Binary Ninja)\n1. Go to `Analysis > Import Header File...`.\n2. In `Header File(s)`, browse for `IDA.h` in this project.\n3. In `Compiler Flag(s)`, add `-D__EA64__ -D__BINJA__`.\n4. Click `Import` button.\n\n## Usage (Ghidra)\n1. Go to `File > Parse C Source`.\n2. (Go to 6. if it's not the first time you do this) Clone `objc_mac_carbon.prf` profile into a new profile, called `OBJC.prf`, for example.\n3. Remove everything in `Source files to parse`, and add `IDA.h` in this project to the list.\n4. Add two additional flags: `-D__EA64__ -DGHIDRA` to Parse Options.\n5. Save `OBJC.prf` profile as you might use it later.\n6. Click `Parse to Program`, click `Proceed` if anything pops up.\n7. Check `Data Type Manager` window (at bottom-left), (long) right-click at `<your-binary-name>` and select `Apply Function Data Types`.\n\n### Ghidra limitation\nYou have to manually specify the size of enum members if what you get is incorrect.\n\n## iOS version-specific analysis\n\nUncomment `// #define IOS14` inside `IDA.h` before you import it if you are reversing iOS 14 or lower binaries.\n\n## Included Frameworks/Libraries\nMore to be added as the owner reverses more binaries.\n- AppSupport\n- AssetsLibraryServices\n- AudioToolbox\n- AVFCapture\n- AVFoundation\n- CommonCrypto\n- CoreAnimation\n- CoreAudio\n- CoreFoundation\n- CoreGraphics\n- CoreMedia\n- CoreServices\n- CoreText\n- CoreVideo\n- CydiaSubstrate (if you ever want to RE tweaks)\n- Darwin\n- Foundation\n- GraphicsServices\n- IOMobileFramebuffer\n- IOKit\n- IOSurface\n- Kernel\n- MediaRemote\n- MobileGestalt\n- PowerLog\n- Security\n- SoftLinking\n- SpringBoard\n- SpringBoardHome\n- Swift (WIP, PRs welcome)\n- System (libSystem)\n- SystemConfiguration\n- UIKit\n- dyld\n- icu\n- objc\n- os\n- pthread\n- sandbox\n- sqlite\n- xpc\n- fishhook"
  },
  {
    "path": "Security/Security.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"../Darwin/Types.h\"\n#import \"../Kernel/Types.h\"\n#import \"../xpc/Types.h\"\n#import \"Types.h\"\n\nBoolean SecTaskEntitlementsValidated(SecTaskRef task);\n\nCFAbsoluteTime SecTrustGetVerifyTime(SecTrustRef trust);\n\nCFArrayRef CFArrayCreateForCFTypes(CFAllocatorRef allocator, ...);\n\nCFArrayRef SecCertificateCopyCommonNames(SecCertificateRef certificate);\nCFArrayRef SecCertificateCopyDNSNames(SecCertificateRef certificate);\nCFArrayRef SecCertificateCopyIPAddresses(SecCertificateRef certificate);\nCFArrayRef SecTrustCopyCertificateChain(SecTrustRef trust);\nCFArrayRef SecTrustCopyProperties(SecTrustRef trust);\n\nCFDataRef SecCertificateCopyData(SecCertificateRef certificate);\nCFDataRef SecCertificateCopyNormalizedIssuerSequence(SecCertificateRef certificate);\nCFDataRef SecCertificateCopyNormalizedSubjectSequence(SecCertificateRef certificate);\n#ifdef TARGET_OS_MAC\nCFDataRef SecCertificateCopySerialNumber(SecCertificateRef certificate, CFErrorRef *error);\n#else\nCFDataRef SecCertificateCopySerialNumber(SecCertificateRef certificate);\n#endif\nCFDataRef SecCertificateCopySerialNumberData(SecCertificateRef certificate, CFErrorRef *error);\nCFDataRef SecTrustCopyExceptions(SecTrustRef trust);\nCFDataRef SecTrustSerialize(SecTrustRef trust, CFErrorRef *error);\n\nCFDictionaryRef SecTrustCopyResult(SecTrustRef trust);\n\nCFIndex SecTrustGetCertificateCount(SecTrustRef trust);\n\nCFStringRef SecCertificateCopySubjectSummary(SecCertificateRef certificate);\nCFStringRef SecCopyErrorMessageString(OSStatus status, void *reserved);\nCFStringRef SecTaskCopySigningIdentifier(SecTaskRef task, CFErrorRef *error);\nCFStringRef SecTaskCopyDebugDescription(CFTypeRef cfTask);\nCFStringRef SecTaskCopyIdentifier(SecTaskRef task, int op, CFErrorRef *error);\n\nCFTypeID SecAccessControlGetTypeID(void);\nCFTypeID SecCertificateGetTypeID(void);\nCFTypeID SecPolicyGetTypeID(void);\nCFTypeID SecTaskGetTypeID(void);\nCFTypeID SecTrustGetTypeID(void);\n\nCFTypeRef SecTaskCopyValueForEntitlement(SecTaskRef task, CFStringRef entitlement, CFErrorRef *error);\n\nOSStatus SecCertificateAddToKeychain(SecCertificateRef certificate, SecKeychainRef keychain);\nOSStatus SecCertificateCopyCommonName(SecCertificateRef certificate, CFStringRef *commonName);\nOSStatus SecCertificateCopyEmailAddresses(SecCertificateRef certificate, CFArrayRef *emailAddresses);\nOSStatus SecCertificateGetData(SecCertificateRef certificate, CSSM_DATA_PTR data);\nOSStatus SecCodeCheckValidity(SecCodeRef code, SecCSFlags flags, SecRequirementRef requirement);\nOSStatus SecIdentityCopyCertificate(SecIdentityRef identityRef, SecCertificateRef *certificateRef);\nOSStatus SecItemAdd(CFDictionaryRef attributes, CFTypeRef *result);\nOSStatus SecItemCopyMatching(CFDictionaryRef query, CFTypeRef *result);\nOSStatus SecItemDelete(CFDictionaryRef query);\nOSStatus SecItemUpdate(CFDictionaryRef query, CFDictionaryRef attributesToUpdate);\nOSStatus SecKeyRawVerify(SecKeyRef key, SecPadding padding, const uint8_t *signedData, size_t signedDataLen, const uint8_t *sig, size_t sigLen);\nOSStatus SecPKCS12Import(CFDataRef pkcs12_data, CFDictionaryRef options, CFArrayRef *items);\nOSStatus SecTrustCopyAnchorCertificates(CFArrayRef *anchors);\nOSStatus SecTrustCopyCustomAnchorCertificates(SecTrustRef trust, CFArrayRef *anchors);\nOSStatus SecTrustCopyPolicies(SecTrustRef trust, CFArrayRef *policies);\nOSStatus SecTrustCreateWithCertificates(CFTypeRef certificates, CFTypeRef policies, SecTrustRef *trust);\nOSStatus SecTrustEvaluate(SecTrustRef trust, SecTrustResultType *result);\nOSStatus SecTrustEvaluateAsync(SecTrustRef trust, dispatch_queue_t queue, SecTrustCallback result);\nOSStatus SecTrustEvaluateWithError(SecTrustRef trust, CFErrorRef *error);\nOSStatus SecTrustGetCssmResult(SecTrustRef trust, CSSM_TP_VERIFY_CONTEXT_RESULT_PTR *result);\nOSStatus SecTrustGetCssmResultCode(SecTrustRef trust, OSStatus *resultCode);\nOSStatus SecTrustGetNetworkFetchAllowed(SecTrustRef trust, Boolean *allowFetch);\nOSStatus SecTrustGetResult(SecTrustRef trustRef, SecTrustResultType *result, CFArrayRef *certChain, CSSM_TP_APPLE_EVIDENCE_INFO **statusChain);\nOSStatus SecTrustGetTPHandle(SecTrustRef trust, CSSM_TP_HANDLE *handle);\nOSStatus SecTrustGetTrustResult(SecTrustRef trust, SecTrustResultType *result);\nOSStatus SecTrustSetAnchorCertificates(SecTrustRef trust, CFArrayRef anchorCertificates);\nOSStatus SecTrustSetAnchorCertificatesOnly(SecTrustRef trust, Boolean anchorCertificatesOnly);\nOSStatus SecTrustSetKeychains(SecTrustRef trust, CFTypeRef keychainOrArray);\nOSStatus SecTrustSetNetworkFetchAllowed(SecTrustRef trust, Boolean allowFetch);\nOSStatus SecTrustSetOCSPResponse(SecTrustRef trust, CFTypeRef responseData);\nOSStatus SecTrustSetOptions(SecTrustRef trustRef, SecTrustOptionFlags options);\nOSStatus SecTrustSetParameters(SecTrustRef trustRef, CSSM_TP_ACTION action, CFDataRef actionData);\nOSStatus SecTrustSetPolicies(SecTrustRef trust, CFTypeRef policies);\nOSStatus SecTrustSetSignedCertificateTimestamps(SecTrustRef trust, CFArrayRef sctArray);\nOSStatus SecTrustSetVerifyDate(SecTrustRef trust, CFDateRef verifyDate);\n\nSecSignatureHashAlgorithm SecCertificateGetSignatureHashAlgorithm(SecCertificateRef certificate);\n\nSecAccessControlRef SecAccessControlCreateWithFlags(CFAllocatorRef allocator, CFTypeRef protection, SecAccessControlCreateFlags flags, CFErrorRef *error);\n\nSecCertificateRef SecCertificateCreateWithData(CFAllocatorRef allocator, CFDataRef data);\nSecCertificateRef SecTrustGetCertificateAtIndex(SecTrustRef trust, CFIndex ix);\n\nSecKeyRef SecCertificateCopyKey(SecCertificateRef certificate);\nSecKeyRef SecKeyCreateRSAPublicKey(CFAllocatorRef allocator, const uint8_t *keyData, CFIndex keyDataLength, SecKeyEncoding encoding);\nSecKeyRef SecKeyCreateWithData(CFDataRef keyData, CFDictionaryRef attributes, CFErrorRef *error);\nSecKeyRef SecTrustCopyPublicKey(SecTrustRef trust);\n\nSecPolicyRef SecPolicyCreateBasicX509(void);\nSecPolicyRef SecPolicyCreateRevocation(CFOptionFlags revocationFlags);\nSecPolicyRef SecPolicyCreateSSL(Boolean server, CFStringRef hostname);\nSecPolicyRef SecPolicyCreateAppleIDAuthorityPolicy(void);\n\nSecTaskRef SecTaskCreateFromSelf(CFAllocatorRef allocator);\nSecTaskRef SecTaskCreateWithAuditToken(CFAllocatorRef allocator, audit_token_t token);\nSecTaskRef SecTaskCreateWithXPCMessage(xpc_object_t message);\n\nSecTrustRef SecTrustDeserialize(CFDataRef serializedTrust, CFErrorRef *error);\n\nuint32_t SecTaskGetCodeSignStatus(SecTaskRef task);\n\nint SecRandomCopyBytes(SecRandomRef rnd, size_t count, void *bytes);\n\nbool SecTaskLoadEntitlements(SecTaskRef task, CFErrorRef *error);\nbool SecTrustSetExceptions(SecTrustRef trust, CFDataRef exceptions);\n\nvoid SecTaskFinalize(CFTypeRef cfTask);\n\n#if TARGET_OS_OSX\nOSStatus SecCertificateCopyPublicKey(SecCertificateRef certificate, SecKeyRef *key);\n#else\nSecKeyRef SecCertificateCopyPublicKey(SecCertificateRef certificate);\n#endif\n"
  },
  {
    "path": "Security/Types.h",
    "content": "#ifndef SECURITY_H_\n#define SECURITY_H_\n\n#import \"../BaseTypes.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"../Kernel/Types.h\"\n\nstruct __SecTask {\n    CFRuntimeBase base;\n    audit_token_t token;\n    Boolean entitlementsLoaded;\n    CFDictionaryRef entitlements;\n    int lastFailure;\n};\n\ntypedef struct __SecCertificate *SecCertificateRef;\ntypedef struct __SecIdentity *SecIdentityRef;\ntypedef struct __SecKey *SecKeyRef;\ntypedef struct __SecPolicy *SecPolicyRef;\ntypedef struct __SecAccessControl *SecAccessControlRef;\ntypedef struct __SecKeychain *SecKeychainRef;\ntypedef struct __SecKeychainItem *SecKeychainItemRef;\ntypedef struct __SecKeychainSearch *SecKeychainSearchRef;\ntypedef struct __SecTrustedApplication *SecTrustedApplicationRef;\ntypedef struct __SecAccess *SecAccessRef;\ntypedef struct __SecTrust *SecACLRef;\ntypedef struct __SecPassword *SecPasswordRef;\ntypedef struct __SecTrust *SecTrustRef;\ntypedef struct __SecTask *SecTaskRef;\ntypedef struct __SecCode *SecCodeRef;\ntypedef struct __SecRequirement *SecRequirementRef;\n\ntypedef const struct __SecRandom *SecRandomRef;\n\ntypedef uint32 CSSM_TP_ACTION;\ntypedef uint32 CSSM_TP_HANDLE;\ntypedef uint32 CSSM_EVIDENCE_FORM;\ntypedef uint32 CSSM_DL_HANDLE;\ntypedef uint32 CSSM_DB_HANDLE;\n\n#define CSSM_EVIDENCE_FORM_UNSPECIFIC 0x0\n#define CSSM_EVIDENCE_FORM_CERT 0x1\n#define CSSM_EVIDENCE_FORM_CRL 0x2\n#define CSSM_EVIDENCE_FORM_CERT_ID 0x3\n#define CSSM_EVIDENCE_FORM_CRL_ID 0x4\n#define CSSM_EVIDENCE_FORM_VERIFIER_TIME 0x5\n#define CSSM_EVIDENCE_FORM_CRL_THISTIME 0x6\n#define CSSM_EVIDENCE_FORM_CRL_NEXTTIME 0x7\n#define CSSM_EVIDENCE_FORM_POLICYINFO 0x8\n#define CSSM_EVIDENCE_FORM_TUPLEGROUP 0x9\n\ntypedef enum cssm_return { CSSM_OK = 0, CSSM_FAIL = -1 } CSSM_RETURN;\n\ntypedef struct cssm_evidence {\n    CSSM_EVIDENCE_FORM EvidenceForm;\n    void *Evidence;\n} CSSM_EVIDENCE, *CSSM_EVIDENCE_PTR;\n\ntypedef struct cssm_tp_verify_context_result {\n    uint32 NumberOfEvidences;\n    CSSM_EVIDENCE_PTR Evidence;\n} CSSM_TP_VERIFY_CONTEXT_RESULT, *CSSM_TP_VERIFY_CONTEXT_RESULT_PTR;\n\nPS_ENUM(uint32, CSSM_TP_APPLE_CERT_STATUS) {\n    CSSM_CERT_STATUS_EXPIRED = 0x00000001,\n    CSSM_CERT_STATUS_NOT_VALID_YET = 0x00000002,\n    CSSM_CERT_STATUS_IS_IN_INPUT_CERTS = 0x00000004,\n    CSSM_CERT_STATUS_IS_IN_ANCHORS = 0x00000008,\n    CSSM_CERT_STATUS_IS_ROOT = 0x00000010,\n    CSSM_CERT_STATUS_IS_FROM_NET = 0x00000020,\n    CSSM_CERT_STATUS_TRUST_SETTINGS_FOUND_USER = 0x00000040,\n    CSSM_CERT_STATUS_TRUST_SETTINGS_FOUND_ADMIN = 0x00000080,\n    CSSM_CERT_STATUS_TRUST_SETTINGS_FOUND_SYSTEM = 0x00000100,\n    CSSM_CERT_STATUS_TRUST_SETTINGS_TRUST = 0x00000200,\n    CSSM_CERT_STATUS_TRUST_SETTINGS_DENY = 0x00000400,\n    CSSM_CERT_STATUS_TRUST_SETTINGS_IGNORED_ERROR = 0x00000800\n};\n\ntypedef enum cssm_db_index_type {\n    CSSM_DB_INDEX_UNIQUE = 0,\n    CSSM_DB_INDEX_NONUNIQUE = 1\n} CSSM_DB_INDEX_TYPE;\n\ntypedef enum cssm_db_indexed_data_location {\n    CSSM_DB_INDEX_ON_UNKNOWN = 0,\n    CSSM_DB_INDEX_ON_ATTRIBUTE = 1,\n    CSSM_DB_INDEX_ON_RECORD = 2\n} CSSM_DB_INDEXED_DATA_LOCATION;\n\ntypedef struct cssm_dl_db_handle {\n    CSSM_DL_HANDLE DLHandle;\n    CSSM_DB_HANDLE DBHandle;\n} CSSM_DL_DB_HANDLE, *CSSM_DL_DB_HANDLE_PTR;\n\ntypedef enum cssm_db_attribute_name_format {\n    CSSM_DB_ATTRIBUTE_NAME_AS_STRING = 0,\n    CSSM_DB_ATTRIBUTE_NAME_AS_OID = 1,\n    CSSM_DB_ATTRIBUTE_NAME_AS_NUMBER = 2\n} CSSM_DB_ATTRIBUTE_NAME_FORMAT,\n    *CSSM_DB_ATTRIBUTE_NAME_FORMAT_PTR;\n\ntypedef struct cssm_data {\n    uint32 Length;\n    uint8 *Data;\n} CSSM_DATA, *CSSM_DATA_PTR;\ntypedef CSSM_DATA CSSM_OID, *CSSM_OID_PTR;\n\ntypedef struct cssm_db_attribute_info {\n    CSSM_DB_ATTRIBUTE_NAME_FORMAT AttributeNameFormat;\n    union {\n        char *AttributeName;\n        CSSM_OID AttributeID;\n        uint32 AttributeNumber;\n    };\n} CSSM_DB_ATTRIBUTE_INFO, *CSSM_DB_ATTRIBUTE_INFO_PTR;\n\ntypedef struct cssm_db_index_info {\n    CSSM_DB_INDEX_TYPE IndexType;\n    CSSM_DB_INDEXED_DATA_LOCATION IndexedDataLocation;\n    CSSM_DB_ATTRIBUTE_INFO Info;\n} CSSM_DB_INDEX_INFO, *CSSM_DB_INDEX_INFO_PTR;\n\ntypedef struct cssm_db_unique_record {\n    CSSM_DB_INDEX_INFO RecordLocator;\n    CSSM_DATA RecordIdentifier;\n} CSSM_DB_UNIQUE_RECORD, *CSSM_DB_UNIQUE_RECORD_PTR;\n\ntypedef struct CSSM_TP_APPLE_EVIDENCE_INFO {\n    CSSM_TP_APPLE_CERT_STATUS StatusBits;\n    uint32 NumStatusCodes;\n    CSSM_RETURN *StatusCodes;\n    uint32 Index;\n    CSSM_DL_DB_HANDLE DlDbHandle;\n    CSSM_DB_UNIQUE_RECORD_PTR UniqueRecord;\n} CSSM_TP_APPLE_EVIDENCE_INFO;\n\ntypedef OSType SecKeychainAttrType;\n\ntypedef struct SecKeychainAttribute {\n    SecKeychainAttrType tag;\n    UInt32 length;\n    void *data;\n} SecKeychainAttribute;\n\ntypedef SecKeychainAttribute *SecKeychainAttributePtr;\n\ntypedef struct SecKeychainAttributeList {\n    UInt32 count;\n    SecKeychainAttribute *attr;\n} SecKeychainAttributeList;\n\ntypedef struct SecKeychainAttributeInfo {\n    UInt32 count;\n    UInt32 *tag;\n    UInt32 *format;\n} SecKeychainAttributeInfo;\n\ntypedef UInt32 SecKeychainStatus;\n\nPS_ENUM(uint32_t, SecTrustResultType) {\n    kSecTrustResultInvalid = 0,\n    kSecTrustResultProceed = 1,\n    kSecTrustResultConfirm = 2,\n    kSecTrustResultDeny = 3,\n    kSecTrustResultUnspecified = 4,\n    kSecTrustResultRecoverableTrustFailure = 5,\n    kSecTrustResultFatalTrustFailure = 6,\n    kSecTrustResultOtherError = 7\n};\n\ntypedef void (*SecTrustCallback)(SecTrustRef trustRef, SecTrustResultType trustResult);\n\ntypedef SecTrustResultType SecTrustUserSetting;\n\nPS_ENUM(uint32_t, SecPadding) {\n    kSecPaddingNone = 0,\n    kSecPaddingPKCS1 = 1,\n    kSecPaddingOAEP = 2,\n    kSecPaddingPKCS1MD2 = 0x8000,\n    kSecPaddingPKCS1MD5 = 0x8001,\n    kSecPaddingPKCS1SHA1 = 0x8002\n};\n\nPS_ENUM(uint32_t, SecCSFlags) {\n    kSecCSDefaultFlags = 0,\n    kSecCSConsiderExpiration = 1u << 31,\n    kSecCSEnforceRevocationChecks = 1 << 30,\n    kSecCSNoNetworkAccess = 1 << 29,\n    kSecCSReportProgress = 1 << 28,\n    kSecCSCheckTrustedAnchors = 1 << 27,\n    kSecCSQuickCheck = 1 << 26,\n};\n\nPS_ENUM(uint32_t, SecTrustOptionFlags) {\n    kSecTrustOptionAllowExpired = 0x00000001,\n    kSecTrustOptionLeafIsCA = 0x00000002,\n    kSecTrustOptionFetchIssuerFromNet = 0x00000004,\n    kSecTrustOptionAllowExpiredRoot = 0x00000008,\n    kSecTrustOptionRequireRevPerCert = 0x00000010,\n    kSecTrustOptionUseTrustSettings = 0x00000020,\n    kSecTrustOptionImplicitAnchors = 0x00000040\n};\n\nPS_ENUM(CFOptionFlags, SecAccessControlCreateFlags) {\n    kSecAccessControlUserPresence = 1u << 0,\n    kSecAccessControlBiometryAny = 1u << 1,\n    kSecAccessControlTouchIDAny = 1u << 1,\n    kSecAccessControlBiometryCurrentSet = 1u << 3,\n    kSecAccessControlTouchIDCurrentSet = 1u << 3,\n    kSecAccessControlDevicePasscode = 1u << 4,\n    kSecAccessControlWatch = 1u << 5,\n    kSecAccessControlOr = 1u << 14,\n    kSecAccessControlAnd = 1u << 15,\n    kSecAccessControlPrivateKeyUsage = 1u << 30,\n    kSecAccessControlApplicationPassword = 1u << 31\n};\n\nPS_ENUM(uint32_t, SecKeyEncoding) {\n    kSecKeyEncodingRaw = 0,\n    kSecKeyEncodingPkcs1 = 1,\n    kSecKeyEncodingApplePkcs1 = 2,\n    kSecKeyEncodingRSAPublicParams = 3,\n    kSecDERKeyEncoding = 4,\n    kSecGenerateKey = 5,\n    kSecExtractPublicFromPrivate = 6,\n    kSecKeyEncodingBytes = 7,\n    kSecKeyCoreCrypto = 8\n};\n\nPS_ENUM(uint32_t, SecSignatureHashAlgorithm) {\n    kSecSignatureHashAlgorithmUnknown = 0,\n    kSecSignatureHashAlgorithmMD2 = 1,\n    kSecSignatureHashAlgorithmMD4 = 2,\n    kSecSignatureHashAlgorithmMD5 = 3,\n    kSecSignatureHashAlgorithmSHA1 = 4,\n    kSecSignatureHashAlgorithmSHA224 = 5,\n    kSecSignatureHashAlgorithmSHA256 = 6,\n    kSecSignatureHashAlgorithmSHA384 = 7,\n    kSecSignatureHashAlgorithmSHA512 = 8\n};\n\nextern const CFStringRef kSecPropertyTypeTitle;\nextern const CFStringRef kSecPropertyTypeError;\nextern const CFStringRef kSecTrustEvaluationDate;\nextern const CFStringRef kSecTrustExtendedValidation;\nextern const CFStringRef kSecTrustOrganizationName;\nextern const CFStringRef kSecTrustResultValue;\nextern const CFStringRef kSecTrustRevocationChecked;\nextern const CFStringRef kSecTrustRevocationValidUntilDate;\nextern const CFStringRef kSecTrustCertificateTransparency;\nextern const CFStringRef kSecTrustCertificateTransparencyWhiteList;\n\nextern const CFStringRef kSecClassInternetPassword;\nextern const CFStringRef kSecClassGenericPassword;\nextern const CFStringRef kSecClassCertificate;\nextern const CFStringRef kSecClassKey;\nextern const CFStringRef kSecClassIdentity;\n\nextern const CFStringRef kSecAttrAccessible;\nextern const CFStringRef kSecAttrAccess;\nextern const CFStringRef kSecAttrAccessControl;\nextern const CFStringRef kSecAttrAccessGroup;\nextern const CFStringRef kSecAttrSynchronizable;\nextern const CFStringRef kSecAttrSynchronizableAny;\nextern const CFStringRef kSecAttrCreationDate;\nextern const CFStringRef kSecAttrModificationDate;\nextern const CFStringRef kSecAttrDescription;\nextern const CFStringRef kSecAttrComment;\nextern const CFStringRef kSecAttrCreator;\nextern const CFStringRef kSecAttrType;\nextern const CFStringRef kSecAttrLabel;\nextern const CFStringRef kSecAttrIsInvisible;\nextern const CFStringRef kSecAttrIsNegative;\nextern const CFStringRef kSecAttrAccount;\nextern const CFStringRef kSecAttrService;\nextern const CFStringRef kSecAttrGeneric;\nextern const CFStringRef kSecAttrSecurityDomain;\nextern const CFStringRef kSecAttrServer;\nextern const CFStringRef kSecAttrProtocol;\nextern const CFStringRef kSecAttrAuthenticationType;\nextern const CFStringRef kSecAttrPort;\nextern const CFStringRef kSecAttrPath;\nextern const CFStringRef kSecAttrSubject;\nextern const CFStringRef kSecAttrIssuer;\nextern const CFStringRef kSecAttrSerialNumber;\nextern const CFStringRef kSecAttrSubjectKeyID;\nextern const CFStringRef kSecAttrPublicKeyHash;\nextern const CFStringRef kSecAttrCertificateType;\nextern const CFStringRef kSecAttrCertificateEncoding;\nextern const CFStringRef kSecAttrKeyClass;\nextern const CFStringRef kSecAttrApplicationLabel;\nextern const CFStringRef kSecAttrIsPermanent;\nextern const CFStringRef kSecAttrIsSensitive;\nextern const CFStringRef kSecAttrIsExtractable;\nextern const CFStringRef kSecAttrApplicationTag;\nextern const CFStringRef kSecAttrKeyType;\nextern const CFStringRef kSecAttrPRF;\nextern const CFStringRef kSecAttrSalt;\nextern const CFStringRef kSecAttrRounds;\nextern const CFStringRef kSecAttrKeySizeInBits;\nextern const CFStringRef kSecAttrEffectiveKeySize;\nextern const CFStringRef kSecAttrCanEncrypt;\nextern const CFStringRef kSecAttrCanDecrypt;\nextern const CFStringRef kSecAttrCanDerive;\nextern const CFStringRef kSecAttrCanSign;\nextern const CFStringRef kSecAttrCanVerify;\nextern const CFStringRef kSecAttrCanWrap;\nextern const CFStringRef kSecAttrCanUnwrap;\nextern const CFStringRef kSecAttrSyncViewHint;\nextern const CFStringRef kSecAttrTokenID;\nextern const CFStringRef kSecAttrPersistantReference;\nextern const CFStringRef kSecAttrPersistentReference;\n\nextern const CFStringRef kSecAttrAccessibleWhenUnlocked;\nextern const CFStringRef kSecAttrAccessibleAfterFirstUnlock;\nextern const CFStringRef kSecAttrAccessibleAlways;\nextern const CFStringRef kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly;\nextern const CFStringRef kSecAttrAccessibleWhenUnlockedThisDeviceOnly;\nextern const CFStringRef kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly;\nextern const CFStringRef kSecAttrAccessibleAlwaysThisDeviceOnly;\n\nextern const CFStringRef kSecAttrProtocolFTP;\nextern const CFStringRef kSecAttrProtocolFTPAccount;\nextern const CFStringRef kSecAttrProtocolHTTP;\nextern const CFStringRef kSecAttrProtocolIRC;\nextern const CFStringRef kSecAttrProtocolNNTP;\nextern const CFStringRef kSecAttrProtocolPOP3;\nextern const CFStringRef kSecAttrProtocolSMTP;\nextern const CFStringRef kSecAttrProtocolSOCKS;\nextern const CFStringRef kSecAttrProtocolIMAP;\nextern const CFStringRef kSecAttrProtocolLDAP;\nextern const CFStringRef kSecAttrProtocolAppleTalk;\nextern const CFStringRef kSecAttrProtocolAFP;\nextern const CFStringRef kSecAttrProtocolTelnet;\nextern const CFStringRef kSecAttrProtocolSSH;\nextern const CFStringRef kSecAttrProtocolFTPS;\nextern const CFStringRef kSecAttrProtocolHTTPS;\nextern const CFStringRef kSecAttrProtocolHTTPProxy;\nextern const CFStringRef kSecAttrProtocolHTTPSProxy;\nextern const CFStringRef kSecAttrProtocolFTPProxy;\nextern const CFStringRef kSecAttrProtocolSMB;\nextern const CFStringRef kSecAttrProtocolRTSP;\nextern const CFStringRef kSecAttrProtocolRTSPProxy;\nextern const CFStringRef kSecAttrProtocolDAAP;\nextern const CFStringRef kSecAttrProtocolEPPC;\nextern const CFStringRef kSecAttrProtocolIPP;\nextern const CFStringRef kSecAttrProtocolNNTPS;\nextern const CFStringRef kSecAttrProtocolLDAPS;\nextern const CFStringRef kSecAttrProtocolTelnetS;\nextern const CFStringRef kSecAttrProtocolIMAPS;\nextern const CFStringRef kSecAttrProtocolIRCS;\nextern const CFStringRef kSecAttrProtocolPOP3S;\n\nextern const CFStringRef kSecAttrAuthenticationTypeNTLM;\nextern const CFStringRef kSecAttrAuthenticationTypeMSN;\nextern const CFStringRef kSecAttrAuthenticationTypeDPA;\nextern const CFStringRef kSecAttrAuthenticationTypeRPA;\nextern const CFStringRef kSecAttrAuthenticationTypeHTTPBasic;\nextern const CFStringRef kSecAttrAuthenticationTypeHTTPDigest;\nextern const CFStringRef kSecAttrAuthenticationTypeHTMLForm;\nextern const CFStringRef kSecAttrAuthenticationTypeDefault;\n\nextern const CFStringRef kSecAttrKeyClassPublic;\nextern const CFStringRef kSecAttrKeyClassPrivate;\nextern const CFStringRef kSecAttrKeyClassSymmetric;\n\nextern const CFStringRef kSecAttrKeyTypeRSA;\nextern const CFStringRef kSecAttrKeyTypeDSA;\nextern const CFStringRef kSecAttrKeyTypeAES;\nextern const CFStringRef kSecAttrKeyTypeDES;\nextern const CFStringRef kSecAttrKeyType3DES;\nextern const CFStringRef kSecAttrKeyTypeRC4;\nextern const CFStringRef kSecAttrKeyTypeRC2;\nextern const CFStringRef kSecAttrKeyTypeCAST;\nextern const CFStringRef kSecAttrKeyTypeECDSA;\nextern const CFStringRef kSecAttrKeyTypeEC;\nextern const CFStringRef kSecAttrKeyTypeECSECPrimeRandom;\n\nextern const CFStringRef kSecAttrPRFHmacAlgSHA1;\nextern const CFStringRef kSecAttrPRFHmacAlgSHA224;\nextern const CFStringRef kSecAttrPRFHmacAlgSHA256;\nextern const CFStringRef kSecAttrPRFHmacAlgSHA384;\nextern const CFStringRef kSecAttrPRFHmacAlgSHA512;\n\nextern const CFStringRef kSecMatchPolicy;\nextern const CFStringRef kSecMatchItemList;\nextern const CFStringRef kSecMatchSearchList;\nextern const CFStringRef kSecMatchIssuers;\nextern const CFStringRef kSecMatchEmailAddressIfPresent;\nextern const CFStringRef kSecMatchSubjectContains;\nextern const CFStringRef kSecMatchSubjectStartsWith;\nextern const CFStringRef kSecMatchSubjectEndsWith;\nextern const CFStringRef kSecMatchSubjectWholeString;\nextern const CFStringRef kSecMatchCaseInsensitive;\nextern const CFStringRef kSecMatchDiacriticInsensitive;\nextern const CFStringRef kSecMatchWidthInsensitive;\nextern const CFStringRef kSecMatchTrustedOnly;\nextern const CFStringRef kSecMatchValidOnDate;\nextern const CFStringRef kSecMatchLimit;\nextern const CFStringRef kSecMatchLimitOne;\nextern const CFStringRef kSecMatchLimitAll;\n\nextern const CFStringRef kSecReturnData;\nextern const CFStringRef kSecReturnAttributes;\nextern const CFStringRef kSecReturnRef;\nextern const CFStringRef kSecReturnPersistentRef;\n\nextern const CFStringRef kSecValueData;\nextern const CFStringRef kSecValueRef;\nextern const CFStringRef kSecValuePersistentRef;\n\nextern const CFStringRef kSecUseItemList;\nextern const CFStringRef kSecUseKeychain;\nextern const CFStringRef kSecUseOperationPrompt;\nextern const CFStringRef kSecUseNoAuthenticationUI;\nextern const CFStringRef kSecUseAuthenticationUI;\nextern const CFStringRef kSecUseAuthenticationContext;\nextern const CFStringRef kSecUseDataProtectionKeychain;\nextern const CFStringRef kSecUseAuthenticationUIAllow;\nextern const CFStringRef kSecUseAuthenticationUIFail;\nextern const CFStringRef kSecUseAuthenticationUISkip;\n\nextern const CFStringRef kSecAttrTokenIDSecureEnclave;\nextern const CFStringRef kSecAttrAccessGroupToken;\n\nextern const SecRandomRef kSecRandomDefault;\n\n#endif"
  },
  {
    "path": "SoftLinking/SoftLinking.h",
    "content": "void *_sl_dlopen(const char **);\nvoid *_sl_dlopen_audited(const char **);"
  },
  {
    "path": "SpringBoard/Types.h",
    "content": "#ifndef SPRINGBOARD_H_\n#define SPRINGBOARD_H_\n\n#import \"../CoreFoundation/Types.h\"\n#import \"../Foundation/Types.h\"\n\nPS_ENUM(NSInteger, SBApplicationClassicMode) {\n    SBApplicationClassicModeNone = 0,\n    SBApplicationClassicModePhone = 1,\n    SBApplicationClassicModePhone4 = 2,\n    SBApplicationClassicModePhone4_7 = 3,\n    SBApplicationClassicModePhone5_5 = 4,\n    SBApplicationClassicModePhone5_8_Zoomed = 5,\n    SBApplicationClassicModePhone5_8 = 6,\n    SBApplicationClassicModePhone6_1 = 7,\n    SBApplicationClassicModePhone6_5 = 8,\n    SBApplicationClassicModePhone6_7 = 9,\n    SBApplicationClassicModePad = 10,\n    SBApplicationClassicModePad_10_5 = 11,\n    SBApplicationClassicModePad_12_9 = 12,\n    SBApplicationClassicModePad_11 = 13\n};\n\ntypedef struct SBIconImageInfo {\n    CGSize size;\n    CGFloat scale;\n    CGFloat continuousCornerRadius;\n} SBIconImageInfo;\n\n#endif\n"
  },
  {
    "path": "SpringBoardHome/Types.h",
    "content": "#ifndef SPRINGBOARDHOME_H_\n#define SPRINGBOARDHOME_H_\n\n#import \"../Foundation/Types.h\"\n\nPS_ENUM(NSUInteger, SBHScreenType) {\n    SBHScreenTypeiPhone5,\n    SBHScreenTypeiPhone6,\n    SBHScreenTypeiPhone6Plus,\n    SBHScreenTypeiPhoneX,\n    SBHScreenTypeiPhoneXZoomed,\n    SBHScreenTypeiPhoneXsMax,\n    SBHScreenTypeiPhoneXsMaxZoomed,\n    SBHScreenTypeiPhoneXr,\n    SBHScreenTypeiPhoneXrZoomed,\n    SBHScreenTypeiPhone12Mini,\n    SBHScreenTypeiPhone12MiniZoomed,\n    SBHScreenTypeiPhone12,\n    SBHScreenTypeiPhone12Zoomed,\n    SBHScreenTypeiPhone12ProMax,\n    SBHScreenTypeiPhone12ProMaxZoomed,\n#ifndef IOS14\n    SBHScreenTypeiPhone13Mini,\n    SBHScreenTypeiPhone13MiniZoomed,\n    SBHScreenTypeiPhone13Pro,\n    SBHScreenTypeiPhone13ProZoomed,\n    SBHScreenTypeiPhone13ProMax,\n    SBHScreenTypeiPhone13ProMaxZoomed,\n#endif\n    SBHScreenTypeiPad3,\n    SBHScreenTypeiPadMini2,\n    SBHScreenTypeiPad7,\n    SBHScreenTypeiPadPro1,\n    SBHScreenTypeiPadPro2,\n#ifndef IOS14\n    SBHScreenTypeiPadMini6,\n#endif\n    SBHScreenTypeiPadAir4,\n    SBHScreenTypeiPadPro3,\n    SBHScreenTypeiPadPro3Large,\n    SBHScreenTypeiPadPro3LargeZoomed,\n};\n\n#endif\n"
  },
  {
    "path": "Swift/Swift.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../objc/Types.h\"\n#import \"Types.h\"\n\nbool swift_dynamicCast(opaque*, opaque*, type*, type*, size_t);\nbool swift_isClassType(type*);\nbool swift_isDeallocating(void *ptr);\nbool swift_isEscapingClosureAtFileLocation(const struct HeapObject *object, const unsigned char *filename, int32_t filenameLength, int32_t line, int32_t col, unsigned type);\nbool swift_isOptionalType(type*);\nbool swift_isUniquelyReferenced_native(const struct HeapObject *);\nbool swift_isUniquelyReferenced_nonNull_native(const struct HeapObject *);\nbool swift_isUniquelyReferencedNonObjC_nonNull_bridgeObject(uintptr_t bits);\nbool swift_isUniquelyReferencedNonObjC_nonNull(const void *);\nbool swift_isUniquelyReferencedNonObjC(const void *);\n\nBoxPair swift_makeBoxUnique(OpaqueValue *buffer, Metadata *type, size_t alignMask);\n\nconst ProtocolWitnessTable *swift_getWitnessTable(const ProtocolConformanceDescriptor *conf, const Metadata *type, const void  *const *instantiationArgs);\nconst WitnessTable *swift_getAssociatedConformanceWitness(WitnessTable *wtable, const Metadata *conformingType, const Metadata *assocType, const ProtocolRequirement *reqBase, const ProtocolRequirement *assocConformance);\nconst WitnessTable *swift_getOpaqueTypeConformance(const void  *const *arguments, const OpaqueTypeDescriptor *descriptor, uintptr_t index);\n\nerror *swift_errorRetain(error *ptr);\n\nfloat swift_intToFloat32(const size_t *data, IntegerLiteralFlags flags);\n\nHeapObject *swift_initStackObject(HeapMetadata const *metadata, HeapObject *object);\nHeapObject *swift_initStaticObject(HeapMetadata const *metadata, HeapObject *object);\n\nid swift_dynamicCastMetatypeToObjectConditional(type *type);\nid swift_dynamicCastMetatypeToObjectUnconditional(type *type);\nid swift_dynamicCastObjCProtocolConditional(id object, size_t numProtocols, Protocol  *const *protocols);\nid swift_dynamicCastObjCProtocolUnconditional(id object, size_t numProtocols, Protocol  *const *protocols);\n\nint swift_getEnumCaseMultiPayload(opaque_t *obj, Metadata *enumTy);\nint swift_getEnumTagSinglePayloadGeneric(opaque_t *obj, unsigned num_empty_cases, Metadata *payloadType, int (*getExtraInhabitantIndex)(opaque_t *obj, unsigned numPayloadXI, Metadata *payload));\n\nMetadata *swift_allocateGenericClassMetadata(ClassDescriptor *type, const void  *const *arguments, const void *template);\nMetadata *swift_allocateGenericValueMetadata(ValueTypeDescriptor *type, const void  *const *arguments, const void *template, size_t extraSize);\nMetadata *swift_getDynamicType(opaque_t *obj, Metadata *self);\nMetadata *swift_getExistentialMetatypeMetadata(Metadata *instanceTy);\nMetadata *swift_getExistentialTypeMetadata(ProtocolClassConstraint classConstraint, const Metadata *superclassConstraint, size_t numProtocols, const ProtocolDescriptorRef *protocols);\nMetadata *swift_getForeignTypeMetadata(Metadata *nonUnique);\nMetadata *swift_getFunctionTypeMetadata(unsigned long flags, const Metadata **parameters, const uint32_t *parameterFlags, const Metadata *result);\nMetadata *swift_getFunctionTypeMetadata0(unsigned long flags, const Metadata *resultMetadata);\nMetadata *swift_getFunctionTypeMetadata1(unsigned long flags, const Metadata *arg0, const Metadata *resultMetadata);\nMetadata *swift_getFunctionTypeMetadata2(unsigned long flags, const Metadata *arg0, const Metadata *arg1, const Metadata *resultMetadata);\nMetadata *swift_getFunctionTypeMetadata3(unsigned long flags, const Metadata *arg0, const Metadata *arg1, const Metadata *arg2, const Metadata *resultMetadata);\nMetadata *swift_getMetatypeMetadata(Metadata *instanceTy);\nMetadata *swift_getObjCClassFromMetadata(objc_class *theClass);\nMetadata *swift_getObjCClassFromObject(id object);\nMetadata *swift_getObjCClassMetadata(objc_class *theClass);\nMetadata *swift_getObjectType(id object);\nMetadata *swift_relocateClassMetadata(TypeContextDescriptor *descriptor, const void *pattern);\n\nMetadataDependency swift_initClassMetadata2(Metadata *self, ClassLayoutFlags flags, size_t numFields, TypeLayout  *const *fieldTypes, size_t *fieldOffsets);\nMetadataDependency swift_updateClassMetadata2(Metadata *self, ClassLayoutFlags flags, size_t numFields, TypeLayout  *const *fieldTypes, size_t *fieldOffsets);\n\nMetadataResponse swift_checkMetadataState(MetadataRequest request, const Metadata *type);\nMetadataResponse swift_getAssociatedTypeWitness(MetadataRequest request, WitnessTable *wtable, const Metadata *conformingType, ProtocolRequirement *reqBase, ProtocolRequirement *assocType);\nMetadataResponse swift_getGenericMetadata(MetadataRequest request, const void  *const *arguments, TypeContextDescriptor *type);\nMetadataResponse swift_getOpaqueTypeMetadata(MetadataRequest request, const void  *const *arguments, const OpaqueTypeDescriptor *descriptor, uintptr_t index);\nMetadataResponse swift_getSingletonMetadata(MetadataRequest request, TypeContextDescriptor *type);\nMetadataResponse swift_getTupleTypeMetadata(MetadataRequest request, TupleTypeFlags flags, Metadata  *const *elts, const char *labels, value_witness_table_t *proposed);\nMetadataResponse swift_getTupleTypeMetadata2(MetadataRequest request, Metadata *elt0, Metadata *elt1, const char *labels, value_witness_table_t *proposed);\nMetadataResponse swift_getTupleTypeMetadata3(MetadataRequest request, Metadata *elt0, Metadata *elt1, Metadata *elt2, const char *labels, value_witness_table_t *proposed);\n\nobjc_class *swift_dynamicCastObjCClassMetatype(objc_class*, objc_class*);\nobjc_class *swift_dynamicCastObjCClassMetatypeUnconditional(objc_class*, objc_class*);\n\nOffsetPair swift_getTupleTypeLayout3(TypeLayout *layout, const TypeLayout *elt0, const TypeLayout *elt1, const TypeLayout *elt2);\n\nRefCounted *swift_allocObject(Metadata *type, size_t size, size_t alignMask);\n\nsize_t swift_getTupleTypeLayout2(TypeLayout *layout, const TypeLayout *elt0, const TypeLayout *elt1);\n\ntype *swift_dynamicCastMetatype(type*, type*);\ntype *swift_dynamicCastMetatypeUnconditional(type*, type*);\ntype *swift_dynamicCastTypeToObjCProtocolConditional(type *object, size_t numProtocols, Protocol  *const *protocols);\ntype *swift_dynamicCastTypeToObjCProtocolUnconditional(type *object, size_t numProtocols, Protocol  *const *protocols);\n\nvoid __tsan_external_write(void *addr, void *caller_pc, void *tag);\nvoid _Block_release(void *block);\n\nvoid *_Block_copy(void *block);\nvoid *swift_bridgeObjectRetain(void *ptr);\nvoid *swift_copyPOD(void *dest, void *src, Metadata *self);\nvoid *swift_dynamicCastClass(void *, void *);\nvoid *swift_dynamicCastClassUnconditional(void *, void *);\nvoid *swift_dynamicCastObjCClass(void *, void *);\nvoid *swift_dynamicCastObjCClassUnconditional(void *, void *);\nvoid *swift_dynamicCastUnknownClass(void *, void *);\nvoid *swift_dynamicCastUnknownClassUnconditional(void *, void *);\nvoid *swift_lookUpClassMethod(Metadata *metadata, ClassDescriptor *description, MethodDescriptor *method);\nvoid *swift_nonatomic_bridgeObjectRetain(void *ptr);\nvoid *swift_nonatomic_retain_n(void *ptr, int32_t n);\nvoid *swift_nonatomic_retain(void *ptr);\nvoid *swift_nonatomic_unknownObjectRetain_n(void *ptr, int32_t n);\nvoid *swift_nonatomic_unknownObjectRetain(void *ptr);\nvoid *swift_release_n(void *ptr, int32_t n);\nvoid *swift_retain_n(void *ptr, int32_t n);\nvoid *swift_retain(void *ptr);\nvoid *swift_slowAlloc(size_t size, size_t alignMask);\nvoid *swift_tryRetain(void *ptr);\nvoid *swift_unknownObjectRetain_n(void *ptr, int32_t n);\nvoid *swift_unknownObjectRetain(void *ptr);\n\nvoid swift_arrayAssignWithCopyBackToFront(opaque*, opaque*, size_t, type*);\nvoid swift_arrayAssignWithCopyFrontToBack(opaque*, opaque*, size_t, type*);\nvoid swift_arrayAssignWithCopyNoAlias(opaque*, opaque*, size_t, type*);\nvoid swift_arrayAssignWithTake(opaque*, opaque*, size_t, type*);\nvoid swift_arrayDestroy(opaque*, size_t, type*);\nvoid swift_arrayInitWithCopy(opaque*, opaque*, size_t, type*);\nvoid swift_arrayInitWithTakeBackToFront(opaque*, opaque*, size_t, type*);\nvoid swift_arrayInitWithTakeFrontToBack(opaque*, opaque*, size_t, type*);\nvoid swift_arrayInitWithTakeNoAlias(opaque*, opaque*, size_t, type*);\nvoid swift_beginAccess(void *pointer, ValueBuffer *scratch, size_t flags);\nvoid swift_bridgeObjectRelease_n(void *ptr, int32_t n);\nvoid swift_bridgeObjectRetain_n(void *ptr, int32_t n);\nvoid swift_bridgeRelease(void *ptr);\nvoid swift_deallocClassInstance(HeapObject *obj, size_t size, size_t alignMask);\nvoid swift_deallocObject(HeapObject *obj, size_t size, size_t alignMask);\nvoid swift_deallocPartialClassInstance(HeapObject *obj, HeapMetadata *type, size_t size, size_t alignMask);\nvoid swift_deallocUninitializedObject(HeapObject *obj, size_t size, size_t alignMask);\nvoid swift_deletedMethodError();\nvoid swift_endAccess(ValueBuffer *scratch);\nvoid swift_errorInMain(error *ptr);\nvoid swift_errorRelease(void *ptr);\nvoid swift_getTupleTypeLayout(TypeLayout *result, uint32_t offsets, TupleTypeFlags flags, const TypeLayout  *const *elts);\nvoid swift_initClassMetadata(Metadata *self, ClassLayoutFlags flags, size_t numFields, TypeLayout  *const *fieldTypes, size_t *fieldOffsets);\nvoid swift_initEnumMetadataMultiPayload(Metadata *enumType, size_t numPayloads, TypeLayout  *const *payloadTypes);\nvoid swift_initEnumMetadataSingleCase(Metadata *enumType, EnumLayoutFlags flags, TypeLayout *payload);\nvoid swift_initEnumMetadataSinglePayload(Metadata *enumType, EnumLayoutFlags flags, TypeLayout *payload, unsigned num_empty_cases);\nvoid swift_initStructMetadata(Metadata *structType, StructLayoutFlags flags, size_t numFields, TypeLayout  *const *fieldTypes, uint32_t *fieldOffsets);\nvoid swift_nonatomic_bridgeObjectRelease_n(void *ptr, int32_t n);\nvoid swift_nonatomic_bridgeObjectRetain_n(void *ptr, int32_t n);\nvoid swift_nonatomic_bridgeRelease(void *ptr);\nvoid swift_nonatomic_release_n(void *ptr, int32_t n);\nvoid swift_nonatomic_release(void *ptr);\nvoid swift_nonatomic_unknownObjectRelease_n(void *ptr, int32_t n);\nvoid swift_nonatomic_unknownObjectRelease(void *ptr);\nvoid swift_objc_swift3ImplicitObjCEntrypoint(id self, SEL selector);\nvoid swift_once(swift_once_t *predicate, void (*function_code)(RefCounted*), void *context);\nvoid swift_registerProtocolConformances(const ProtocolConformanceRecord *begin, const ProtocolConformanceRecord *end);\nvoid swift_registerProtocols(const ProtocolRecord *begin, const ProtocolRecord *end);\nvoid swift_release(void *ptr);\nvoid swift_setDeallocating(void *ptr);\nvoid swift_slowDealloc(void *ptr, size_t size, size_t alignMask);\nvoid swift_storeEnumTagMultiPayload(opaque_t *obj, Metadata *enumTy, int case_index);\nvoid swift_storeEnumTagSinglePayloadGeneric(opaque_t *obj, unsigned case_index, unsigned num_empty_cases, Metadata *payloadType, void (*storeExtraInhabitant)(opaque_t *obj, unsigned case_index, unsigned numPayloadXI, Metadata *payload));\nvoid swift_unexpectedError(error *ptr);\nvoid swift_unknownObjectRelease_n(void *ptr, int32_t n);\nvoid swift_unknownObjectRelease(void *ptr);\nvoid swift_updateClassMetadata(Metadata *self, ClassLayoutFlags flags, size_t numFields, TypeLayout  *const *fieldTypes, size_t *fieldOffsets);\nvoid swift_verifyEndOfLifetime(HeapObject *object);\nvoid swift_willThrow(error *ptr);\n\nwitness_table *swift_conformsToProtocol(type*, protocol*);"
  },
  {
    "path": "Swift/Types.h",
    "content": "#ifndef SWIFT_H_\n#define SWIFT_H_\n\ntypedef struct HeapObject *HeapObject;\ntypedef struct OpaqueValue *OpaqueValue;\ntypedef struct Metadata *Metadata;\ntypedef struct HeapMetadata *HeapMetadata;\ntypedef struct WitnessTable *WitnessTable;\ntypedef struct ProtocolRequirement *ProtocolRequirement;\ntypedef struct ClassDescriptor *ClassDescriptor;\ntypedef struct MethodDescriptor *MethodDescriptor;\ntypedef struct TypeContextDescriptor *TypeContextDescriptor;\ntypedef struct ValueTypeDescriptor *ValueTypeDescriptor;\ntypedef struct OpaqueTypeDescriptor *OpaqueTypeDescriptor;\ntypedef struct ProtocolConformanceDescriptor *ProtocolConformanceDescriptor;\ntypedef struct TypeLayout *TypeLayout;\ntypedef struct ProtocolRecord *ProtocolRecord;\ntypedef struct ProtocolConformanceRecord *ProtocolConformanceRecord;\ntypedef struct ProtocolClassConstraint *ProtocolClassConstraint;\ntypedef struct MetadataDependency *MetadataDependency;\ntypedef struct MetadataResponse *MetadataResponse;\ntypedef struct MetadataRequest *MetadataRequest;\ntypedef struct ProtocolDescriptorRef *ProtocolDescriptorRef;\ntypedef struct BoxPair *BoxPair;\ntypedef struct ValueBuffer *ValueBuffer;\n\ntypedef struct opaque *opaque;\ntypedef struct type *type;\ntypedef struct error *error;\n\nclass ProtocolWitnessTable;\nclass IntegerLiteralFlags;\nclass TupleTypeFlags;\nclass EnumLayoutFlags;\nclass ClassLayoutFlags;\nclass StructLayoutFlags;\n\nstruct HeapObject {\n    void *HeapMetadata_Kind;\n};\n\nstruct MetadataResponse {\n    struct Metadata *Value;\n    size_t State;\n};\n\n#endif"
  },
  {
    "path": "System/System.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../Darwin/Types.h\"\n#import \"../Kernel/Types.h\"\n#import \"Types.h\"\n\nvoid asl_release(asl_object_t obj);\n\nvoid *__memccpy_chk(void *dest, const void *src, int c, size_t len, size_t dstlen);\n\nint renamex_np(const char *from, const char *to, unsigned int flags);\nint memorystatus_get_level(user_addr_t level);\nint memorystatus_control(uint32_t command, int32_t pid, uint32_t flags, void *buffer, size_t buffersize);\nint csops(pid_t pid, unsigned int ops, void *useraddr, size_t usersize);\nint csops_audittoken(pid_t pid, unsigned int ops, void *useraddr, size_t usersize, audit_token_t *token);\n\nint _get_cpu_capabilities(void);\n\nbool malloc_zone_claimed_address(malloc_zone_t *zone, void *ptr);\n\nconst char *container_system_group_path_for_identifier(int, const char *group, container_error_t *error);\n\nasl_object_t asl_next(asl_object_t obj);\n\nqos_class_t qos_class_main(void);\n\nkern_return_t bootstrap_register2(mach_port_t, name_t, mach_port_t, uint64_t);\nkern_return_t bootstrap_look_up2(mach_port_t bp, const name_t service_name, mach_port_t *sp, pid_t target_pid, uint64_t flags);\n\nboolean_t voucher_mach_msg_set(mach_msg_header_t *msg);\n\nOSThermalNotificationLevel OSThermalNotificationCurrentLevel(void);\n"
  },
  {
    "path": "System/Types.h",
    "content": "#ifndef SYSTEM_H_\n#define SYSTEM_H_\n\n#import \"../BaseTypes.h\"\n\ntypedef struct __asl_object_s *asl_object_t;\n\ntypedef int clockid_t;\ntypedef long container_error_t; // guessed\n\ntypedef struct _malloc_zone_t {\n    void *reserved1;\n    void *reserved2;\n    size_t (*size)(struct _malloc_zone_t *zone, const void *ptr);\n    void *(*malloc)(struct _malloc_zone_t *zone, size_t size);\n    void *(*calloc)(struct _malloc_zone_t *zone, size_t num_items, size_t size);\n    void *(*valloc)(struct _malloc_zone_t *zone, size_t size);\n    void (*free)(struct _malloc_zone_t *zone, void *ptr);\n    void *(*realloc)(struct _malloc_zone_t *zone, void *ptr, size_t size);\n    void (*destroy)(struct _malloc_zone_t *zone);\n    const char *zone_name;\n    unsigned (*batch_malloc)(struct _malloc_zone_t *zone, size_t size, void **results, unsigned num_requested);\n    void (*batch_free)(struct _malloc_zone_t *zone, void **to_be_freed, unsigned num_to_be_freed);\n    struct malloc_introspection_t *introspect;\n    unsigned version;\n} malloc_zone_t;\n\nPS_ENUM(int, OSThermalNotificationLevel) {\n\tOSThermalNotificationLevelAny      = -1,\n\tOSThermalNotificationLevelNormal   =  0,\n};\n\n#endif"
  },
  {
    "path": "SystemConfiguration/SystemConfiguration.h",
    "content": "#import \"../CoreFoundation/Types.h\"\n#import \"Types.h\"\n\nCFDictionaryRef SCDynamicStoreCopyDHCPInfo(SCDynamicStoreRef store, CFStringRef serviceID);\nCFDictionaryRef CNCopyCurrentNetworkInfo(CFStringRef interfaceName);\n\nCFArrayRef CNCopySupportedInterfaces(void);\n\nSCNetworkReachabilityRef SCNetworkReachabilityCreateWithOptions(CFAllocatorRef allocator, CFDictionaryRef options);\n\nvoid SCDynamicStoreSetDisconnectCallBack(SCDynamicStoreRef store, SCDynamicStoreDisconnectCallBack callback);"
  },
  {
    "path": "SystemConfiguration/Types.h",
    "content": "#ifndef SYSTEMCONFIGURATION_H_\n#define SYSTEMCONFIGURATION_H_\n\ntypedef struct __SCDynamicStore *SCDynamicStoreRef;\ntypedef struct __SCNetworkReachability *SCNetworkReachabilityRef;\n\ntypedef void (*SCDynamicStoreDisconnectCallBack)(SCDynamicStoreRef store);\n\n#endif\n"
  },
  {
    "path": "Types.h",
    "content": "#ifndef IDATYPES_H_\n#define IDATYPES_H_\n\n#import \"BaseTypes.h\"\n\n#import \"AppSupport/Types.h\"\n#import \"AudioToolbox/Types.h\"\n#import \"CommonCrypto/Types.h\"\n#import \"CoreAnimation/Types.h\"\n#import \"CoreAudio/Types.h\"\n#import \"CoreFoundation/Types.h\"\n#import \"CoreGraphics/Types.h\"\n#import \"CoreMedia/Types.h\"\n#import \"CoreText/Types.h\"\n#import \"CoreVideo/Types.h\"\n#import \"CydiaSubstrate/Types.h\"\n#import \"Darwin/Types.h\"\n#import \"Foundation/Types.h\"\n#import \"GraphicsServices/Types.h\"\n#import \"MediaRemote/Types.h\"\n#import \"IOMobileFramebuffer/Types.h\"\n#import \"IOKit/Types.h\"\n#import \"IOSurface/Types.h\"\n#import \"Kernel/Types.h\"\n#import \"Security/Types.h\"\n#import \"UIKit/Types.h\"\n#import \"QuartzCore/Types.h\"\n#import \"SpringBoard/Types.h\"\n#import \"SpringBoardHome/Types.h\"\n#import \"SystemConfiguration/Types.h\"\n#import \"dyld/Types.h\"\n#import \"icu/Types.h\"\n#import \"objc/Types.h\"\n#import \"os/Types.h\"\n#import \"pthread/Types.h\"\n#import \"sandbox/Types.h\"\n#import \"xpc/Types.h\"\n\n#ifdef SWIFT\n#import \"Swift/Types.h\"\n#endif\n#import \"System/Types.h\"\n\n#endif"
  },
  {
    "path": "UIKit/Types.h",
    "content": "#ifndef UIKIT_H_\n#define UIKIT_H_\n\n#import \"../CoreFoundation/Types.h\"\n#import \"../CoreGraphics/Types.h\"\n#import \"../Foundation/Types.h\"\n\ntypedef struct __UIImage *UIImage;\n\ntypedef struct UIEdgeInsets {\n    CGFloat top, left, bottom, right;\n} UIEdgeInsets;\n\ntypedef struct UIOffset {\n    CGFloat horizontal, vertical;\n} UIOffset;\n\ntypedef struct NSDirectionalEdgeInsets {\n    CGFloat top;\n    CGFloat leading;\n    CGFloat bottom;\n    CGFloat trailing;\n} NSDirectionalEdgeInsets;\n\nPS_ENUM(NSInteger, UIEventType) {\n    UIEventTypeTouches,\n    UIEventTypeMotion,\n    UIEventTypeRemoteControl,\n    UIEventTypePresses,\n    UIEventTypePhysicalKeyboard,   // from research\n    UIEventTypeMove,               // from research\n    UIEventTypeWheel = 7,          // from research\n    UIEventTypeGameController = 8, // from research\n    UIEventTypeScroll = 10,\n    UIEventTypeHover = 11,\n    UIEventTypePencil = 13, // from research\n    UIEventTypeTransform = 14\n};\n\nPS_ENUM(NSInteger, UIEventSubtype) {\n    UIEventSubtypeNone = 0,\n    UIEventSubtypeMotionShake = 1,\n    UIEventSubtypeRemoteControlPlay = 100,\n    UIEventSubtypeRemoteControlPause = 101,\n    UIEventSubtypeRemoteControlStop = 102,\n    UIEventSubtypeRemoteControlTogglePlayPause = 103,\n    UIEventSubtypeRemoteControlNextTrack = 104,\n    UIEventSubtypeRemoteControlPreviousTrack = 105,\n    UIEventSubtypeRemoteControlBeginSeekingBackward = 106,\n    UIEventSubtypeRemoteControlEndSeekingBackward = 107,\n    UIEventSubtypeRemoteControlBeginSeekingForward = 108,\n    UIEventSubtypeRemoteControlEndSeekingForward = 109,\n};\n\nPS_ENUM(NSInteger, UIEventButtonMask) {\n    UIEventButtonMaskPrimary = 1 << 0,\n    UIEventButtonMaskSecondary = 1 << 1\n};\n\nPS_ENUM(NSInteger, UIButtonType) {\n    UIButtonTypeCustom = 0,\n    UIButtonTypeSystem, // iOS 7+\n    UIButtonTypeDetailDisclosure,\n    UIButtonTypeInfoLight,\n    UIButtonTypeInfoDark,\n    UIButtonTypeContactAdd,\n    UIButtonTypeClose,\n    UIButtonTypeRoundedRect = UIButtonTypeSystem\n};\n\nPS_ENUM(NSInteger, UITouchPhase) {\n    UITouchPhaseBegan,\n    UITouchPhaseMoved,\n    UITouchPhaseStationary,\n    UITouchPhaseEnded,\n    UITouchPhaseCancelled,\n    UITouchPhaseRegionEntered,\n    UITouchPhaseRegionMoved,\n    UITouchPhaseRegionExited\n};\n\nPS_ENUM(NSInteger, UITouchType) {\n    UITouchTypeDirect,\n    UITouchTypeIndirect,\n    UITouchTypePencil,\n    UITouchTypeStylus,\n    UITouchTypeIndirectPointer\n};\n\nPS_ENUM(NSInteger, UITouchProperties) {\n    UITouchPropertyForce = (1UL << 0),\n    UITouchPropertyAzimuth = (1UL << 1),\n    UITouchPropertyAltitude = (1UL << 2),\n    UITouchPropertyLocation = (1UL << 3)\n};\n\nPS_ENUM(NSInteger, UIForceTouchCapability) {\n    UIForceTouchCapabilityUnknown = 0,\n    UIForceTouchCapabilityUnavailable = 1,\n    UIForceTouchCapabilityAvailable = 2\n};\n\nPS_ENUM(NSUInteger, UIControlEvents) {\n    UIControlEventTouchDown = 1 << 0,\n    UIControlEventTouchDownRepeat = 1 << 1,\n    UIControlEventTouchDragInside = 1 << 2,\n    UIControlEventTouchDragOutside = 1 << 3,\n    UIControlEventTouchDragEnter = 1 << 4,\n    UIControlEventTouchDragExit = 1 << 5,\n    UIControlEventTouchUpInside = 1 << 6,\n    UIControlEventTouchUpOutside = 1 << 7,\n    UIControlEventTouchCancel = 1 << 8,\n    UIControlEventValueChanged = 1 << 12,\n    UIControlEventPrimaryActionTriggered = 1 << 13,\n    UIControlEventEditingDidBegin = 1 << 16,\n    UIControlEventEditingChanged = 1 << 17,\n    UIControlEventEditingDidEnd = 1 << 18,\n    UIControlEventEditingDidEndOnExit = 1 << 19,\n    UIControlEventAllTouchEvents = 0x00000FFF,\n    UIControlEventAllEditingEvents = 0x000F0000,\n    UIControlEventApplicationReserved = 0x0F000000,\n    UIControlEventSystemReserved = 0xF0000000,\n    UIControlEventAllEvents = 0xFFFFFFFF\n};\n\nPS_ENUM(NSInteger, UIControlContentVerticalAlignment) {\n    UIControlContentVerticalAlignmentCenter = 0,\n    UIControlContentVerticalAlignmentTop = 1,\n    UIControlContentVerticalAlignmentBottom = 2,\n    UIControlContentVerticalAlignmentFill = 3\n};\n\nPS_ENUM(NSInteger, UIControlContentHorizontalAlignment) {\n    UIControlContentHorizontalAlignmentCenter = 0,\n    UIControlContentHorizontalAlignmentLeft = 1,\n    UIControlContentHorizontalAlignmentRight = 2,\n    UIControlContentHorizontalAlignmentFill = 3,\n    UIControlContentHorizontalAlignmentLeading = 4,\n    UIControlContentHorizontalAlignmentTrailing = 5\n};\n\nPS_ENUM(NSUInteger, UIControlState) {\n    UIControlStateNormal = 0,\n    UIControlStateHighlighted = 1 << 0,\n    UIControlStateDisabled = 1 << 1,\n    UIControlStateSelected = 1 << 2,\n    UIControlStateFocused = 1 << 3,\n    UIControlStateApplication = 0x00FF0000,\n    UIControlStateReserved = 0xFF000000\n};\n\nPS_ENUM(NSInteger, UIUserInterfaceSizeClass) {\n    UIUserInterfaceSizeClassUnspecified = 0,\n    UIUserInterfaceSizeClassCompact = 1,\n    UIUserInterfaceSizeClassRegular = 2,\n};\n\nPS_ENUM(NSInteger, UIUserInterfaceStyle) {\n    UIUserInterfaceStyleUnspecified,\n    UIUserInterfaceStyleLight,\n    UIUserInterfaceStyleDark,\n};\n\nPS_ENUM(NSInteger, UIDisplayGamut) {\n    UIDisplayGamutUnspecified = -1,\n    UIDisplayGamutSRGB,\n    UIDisplayGamutP3\n};\n\nPS_ENUM(NSInteger, UIDeviceOrientation) {\n    UIDeviceOrientationUnknown,\n    UIDeviceOrientationPortrait,\n    UIDeviceOrientationPortraitUpsideDown,\n    UIDeviceOrientationLandscapeLeft,\n    UIDeviceOrientationLandscapeRight,\n    UIDeviceOrientationFaceUp,\n    UIDeviceOrientationFaceDown\n};\n\nPS_ENUM(NSInteger, UIInterfaceOrientation) {\n    UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,\n    UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,\n    UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeLeft,\n    UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeRight\n};\n\nPS_ENUM(NSInteger, UIDeviceBatteryState) {\n    UIDeviceBatteryStateUnknown,\n    UIDeviceBatteryStateUnplugged,\n    UIDeviceBatteryStateCharging,\n    UIDeviceBatteryStateFull,\n};\n\nPS_ENUM(NSInteger, UIUserInterfaceIdiom) {\n    UIUserInterfaceIdiomUnspecified = -1,\n    UIUserInterfaceIdiomPhone,\n    UIUserInterfaceIdiomPad,\n    UIUserInterfaceIdiomTV,\n    UIUserInterfaceIdiomCarPlay,\n    UIUserInterfaceIdiomWatch,\n    UIUserInterfaceIdiomMac = 5,\n};\n\nPS_ENUM(NSInteger, UIUserInterfaceLevel) {\n    UIUserInterfaceLevelUnspecified = -1,\n    UIUserInterfaceLevelBase,\n    UIUserInterfaceLevelElevated\n};\n\nPS_ENUM(NSUInteger, UIRectEdge) {\n    UIRectEdgeNone   = 0,\n    UIRectEdgeTop    = 1 << 0,\n    UIRectEdgeLeft   = 1 << 1,\n    UIRectEdgeBottom = 1 << 2,\n    UIRectEdgeRight  = 1 << 3,\n    UIRectEdgeAll    = UIRectEdgeTop | UIRectEdgeLeft | UIRectEdgeBottom | UIRectEdgeRight\n};\n\nextern const UIOffset UIOffsetZero;\n\nextern const UIEdgeInsets UIEdgeInsetsZero;\n\ntypedef CFNSString UIContentSizeCategory;\n\nextern const float UITableCellDefaultFontSize;\nextern const float UITableViewCellDefaultFontSize;\nextern const float UIWebViewGrowsAndShrinksToFitHeight;\nextern const float UIWebViewScalesToFitScale;\nextern const float UIWebViewStandardViewportWidth;\n\nextern CFNSString UIWindowDidMoveToScreenNotification;\nextern CFNSString UIWindowDidRotateNotification;\nextern CFNSString UIWindowNewScreenUserInfoKey;\nextern CFNSString UIWindowWillRotateNotification;\nextern CFNSString UIKeyboardIsLocalUserInfoKey;\nextern CFNSString UIKeyInputPageUp;\nextern CFNSString UIKeyInputPageDown;\n\nextern NSNotificationName UIApplicationDidReceiveMemoryWarningNotification;\nextern NSNotificationName UIApplicationBackgroundRefreshStatusDidChangeNotification;\nextern NSNotificationName UIApplicationDidChangeStatusBarFrameNotification;\nextern NSNotificationName UIApplicationDidBecomeActiveNotification;\n\n#endif\n"
  },
  {
    "path": "UIKit/UIKit.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../CoreGraphics/Types.h\"\n#import \"../IOSurface/Types.h\"\n#import \"Types.h\"\n\nUIEdgeInsets UIEdgeInsetsFromString(NSString *str);\nUIEdgeInsets UIEdgeInsetsAdd(UIEdgeInsets a, UIEdgeInsets b);\nUIEdgeInsets UIEdgeInsetsMax(UIEdgeInsets a, UIEdgeInsets b);\nUIEdgeInsets UIEdgeInsetsSubtract(UIEdgeInsets a, UIEdgeInsets b);\n\nUIOffset UIOffsetFromString(NSString *str);\n\nNSString *NSStringFromDirectionalEdgeInsets(NSDirectionalEdgeInsets insets);\nNSString *NSStringFromCGAffineTransform(CGAffineTransform t);\nNSString *NSStringFromCGPoint(CGPoint point);\nNSString *NSStringFromCGRect(CGRect rect);\nNSString *NSStringFromCGSize(CGSize size);\nNSString *NSStringFromCGVector(CGVector vector);\nNSString *NSStringFromUIEdgeInsets(UIEdgeInsets insets);\nNSString *NSStringFromUIOffset(UIOffset offset);\n\nNSData *UIImagePNGRepresentation(UIImage *image);\nNSData *UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality);\n\nUIImage *UIGraphicsGetImageFromCurrentImageContext(void);\n\nCGRect UIRectCenteredAboutPoint(CGRect rect, CGPoint center);\nCGRect UIRectCenteredAboutPointScale(CGRect rect, CGPoint center, CGFloat scale);\nCGRect UIRectCenteredXInRect(CGRect rect, CGRect bounds);\nCGRect UIRectCenteredYInRect(CGRect rect, CGRect bounds);\nCGRect UIRectCenteredIntegralRect(CGRect rect, CGRect bounds);\nCGRect UIRectCenteredIntegralRectScale(CGRect rect, CGRect bounds, CGFloat scale);\nCGRect UIRectInset(CGRect rect, CGFloat top, CGFloat right, CGFloat bottom, CGFloat left);\nCGRect UIRectInsetEdges(CGRect rect, UIRectEdge edges, CGFloat v);\nCGRect UIRectIntegralWithScale(CGRect rect, CGFloat scale);\nCGRect UIRectRoundToScale(CGRect value, CGFloat scale);\nCGRect CGRectFromString(NSString *str);\n\nCGSize CGSizeFromString(NSString *str);\n\nCGPoint UIRectGetCenter(CGRect rect);\nCGPoint UIMidPointBetweenPoints(CGPoint a, CGPoint b);\nCGPoint CGPointFromString(NSString *str);\n\nCGVector CGVectorFromString(NSString *str);\n\nCGFloat UIRoundToScale(CGFloat value, CGFloat scale);\nCGFloat UIRoundToViewScale(CGFloat value, id view);\nCGFloat UIRoundToScreenScale(CGFloat value, id screen);\nCGFloat UIFloorToScale(CGFloat value, CGFloat scale);\nCGFloat UIFloorToViewScale(CGFloat value, id view);\nCGFloat UIFloorToScreenScale(CGFloat value, id screen);\nCGFloat UICeilToScale(CGFloat value, CGFloat scale);\nCGFloat UICeilToViewScale(CGFloat value, id view);\nCGFloat UICeilToScreenScale(CGFloat value, id screen);\nCGFloat UIAnimationDragCoefficient(void);\nCGFloat UIDistanceBetweenPoints(CGPoint a, CGPoint b);\n\nCGAffineTransform UIIntegralTransform(CGAffineTransform t);\n\nCGContextRef UIGraphicsGetCurrentContext(void);\n\nCGImageRef UICreateCGImageFromIOSurface(IOSurfaceRef surface);\n\nNSComparisonResult UIContentSizeCategoryCompareToCategory(UIContentSizeCategory lhs, UIContentSizeCategory rhs);\n\nNSDirectionalEdgeInsets NSDirectionalEdgeInsetsFromString(NSString *str);\n\nvoid UIRectFrame(CGRect rect);\nvoid UIRectFill(CGRect rect);\nvoid UIRectFillUsingBlendMode(CGRect rect, CGBlendMode blendMode);\nvoid UIRectClip(CGRect rect);\nvoid UIImageWriteToSavedPhotosAlbum(UIImage *image, id completionTarget, SEL completionSelector, void *contextInfo);\nvoid UIImageDataWriteToSavedPhotosAlbum(NSData *imageData, id completionTarget, SEL completionSelector, void *contextInfo);\nvoid UISaveVideoAtPathToSavedPhotosAlbum(CFNSString videoPath, id completionTarget, SEL completionSelector, void *contextInfo);\nvoid UIGraphicsPushContext(CGContextRef context);\nvoid UIGraphicsPopContext(void);\nvoid UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale);\nvoid UIGraphicsBeginImageContext(CGSize size);\nvoid UIGraphicsEndImageContext(void);\n\nvoid _UIApplicationLoadWebKit(void);\n\nint UIApplicationMain(int argc, char **argv, NSString *principalClassName, NSString *delegateClassName);\n\nBOOL UIContentSizeCategoryIsAccessibilityCategory(UIContentSizeCategory category);\n\nBOOL _UIApplicationIsExtension(void);\nBOOL _UIApplicationUsesLegacyUI(void);\n\nbool UIRectIsDiscrete(CGRect rect);\n\nbool __UIApplicationLinkedOnOrAfter(NSInteger);\n"
  },
  {
    "path": "dyld/Types.h",
    "content": "#ifndef DYLD_H_\n#define DYLD_H_\n\n#import \"../BaseTypes.h\"\n\ntypedef uint32_t dyld_platform_t;\n\ntypedef struct dyld_build_version_t {\n    dyld_platform_t platform;\n    uint32_t version;\n} dyld_build_version_t;\n\ntypedef const struct dyld_process_info_base *dyld_process_info;\n\ntypedef struct dyld_unwind_sections {\n    const struct mach_header *mh;\n    const void *dwarf_section;\n    uintptr_t dwarf_section_length;\n    const void *compact_unwind_section;\n    uintptr_t compact_unwind_section_length;\n} dyld_unwind_sections;\n\ntypedef enum Platform {\n    unknown             = 0,\n    macOS               = 1,    // PLATFORM_MACOS\n    iOS                 = 2,    // PLATFORM_IOS\n    tvOS                = 3,    // PLATFORM_TVOS\n    watchOS             = 4,    // PLATFORM_WATCHOS\n    bridgeOS            = 5,    // PLATFORM_BRIDGEOS\n    iOSMac              = 6,    // PLATFORM_MACCATALYST\n    iOS_simulator       = 7,    // PLATFORM_IOSSIMULATOR\n    tvOS_simulator      = 8,    // PLATFORM_TVOSSIMULATOR\n    watchOS_simulator   = 9,    // PLATFORM_WATCHOSSIMULATOR\n    driverKit           = 10,   // PLATFORM_DRIVERKIT\n} Platform;\n\ntypedef struct PlatformInfo {\n    const char* name;\n    Platform    platform;\n    uint32_t    loadCommand;\n} PlatformInfo;\n\n#endif"
  },
  {
    "path": "dyld/dyld.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"Types.h\"\n\ndyld_platform_t dyld_get_active_platform(void);\ndyld_platform_t dyld_get_base_platform(dyld_platform_t platform);\n\nint _dyld_func_lookup(const char *dyld_func_name, void **address);\n\nuint32_t dyld_get_program_sdk_version(void);\nuint32_t dyld_get_min_os_version(const struct mach_header *mh);\nuint32_t dyld_get_program_min_os_version(void);\n\nintptr_t _dyld_get_image_slide(const struct mach_header *mh);\n\nbool dyld_program_minos_at_least(dyld_build_version_t version);\nbool dyld_program_sdk_at_least(dyld_build_version_t version);\nbool dyld_has_inserted_or_interposing_libraries(void);\nbool dyld_is_simulator_platform(dyld_platform_t platform);\nbool _dyld_is_memory_immutable(char *ptr, int64_t unk1);\nbool _dyld_find_unwind_sections(void *addr, struct dyld_unwind_sections *info);\n\nconst char *dyld_image_path_containing_address(const void *addr);\n\nconst struct mach_header *dyld_image_header_containing_address(const void *addr);\n\ndyld_process_info _dyld_process_info_create(task_t task, uint64_t timestamp, kern_return_t* kr);\n\nvoid *dlopen_from(const char *path, int mode, void *addressInCaller);\n\nvoid dyld_get_image_versions(const struct mach_header *mh, void (*callback)(dyld_platform_t platform, uint32_t sdk_version, uint32_t min_version));\n"
  },
  {
    "path": "fishhook/fishhook.h",
    "content": "#import \"../BaseTypes.h\"\n\nstruct rebinding {\n    const char *name;\n    void *replacement;\n    void **replaced;\n};\n\nint rebind_symbols(struct rebinding rebindings[], size_t rebindings_nel);\n\nint rebind_symbols_image(void *header, intptr_t slide, struct rebinding rebindings[], size_t rebindings_nel);"
  },
  {
    "path": "icu/Types.h",
    "content": "\n#ifndef ICU_H_\n#define ICU_H_\n\n#import \"../BaseTypes.h\"\n\ntypedef struct USet USet;\n\ntypedef int8_t UBool;\ntypedef uint16_t UChar;\ntypedef int32_t UChar32;\n\n#define U_MAX_VERSION_LENGTH 4\n#define U_MAX_VERSION_STRING_LENGTH 20\ntypedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH];\n\n#define U_UNICODE_VERSION \"11.0\"\n#define UCHAR_MIN_VALUE 0\n#define UCHAR_MAX_VALUE 0x10ffff\n#define U_MASK(x) ((uint32_t)1 << (x))\n\ntypedef enum UProperty {\n    UCHAR_ALPHABETIC = 0,\n    UCHAR_BINARY_START = UCHAR_ALPHABETIC,\n    UCHAR_ASCII_HEX_DIGIT = 1,\n    UCHAR_BIDI_CONTROL = 2,\n    UCHAR_BIDI_MIRRORED = 3,\n    UCHAR_DASH = 4,\n    UCHAR_DEFAULT_IGNORABLE_CODE_POINT = 5,\n    UCHAR_DEPRECATED = 6,\n    UCHAR_DIACRITIC = 7,\n    UCHAR_EXTENDER = 8,\n    UCHAR_FULL_COMPOSITION_EXCLUSION = 9,\n    UCHAR_GRAPHEME_BASE = 10,\n    UCHAR_GRAPHEME_EXTEND = 11,\n    UCHAR_GRAPHEME_LINK = 12,\n    UCHAR_HEX_DIGIT = 13,\n    UCHAR_HYPHEN = 14,\n    UCHAR_ID_CONTINUE = 15,\n    UCHAR_ID_START = 16,\n    UCHAR_IDEOGRAPHIC = 17,\n    UCHAR_IDS_BINARY_OPERATOR = 18,\n    UCHAR_IDS_TRINARY_OPERATOR = 19,\n    UCHAR_JOIN_CONTROL = 20,\n    UCHAR_LOGICAL_ORDER_EXCEPTION = 21,\n    UCHAR_LOWERCASE = 22,\n    UCHAR_MATH = 23,\n    UCHAR_NONCHARACTER_CODE_POINT = 24,\n    UCHAR_QUOTATION_MARK = 25,\n    UCHAR_RADICAL = 26,\n    UCHAR_SOFT_DOTTED = 27,\n    UCHAR_TERMINAL_PUNCTUATION = 28,\n    UCHAR_UNIFIED_IDEOGRAPH = 29,\n    UCHAR_UPPERCASE = 30,\n    UCHAR_WHITE_SPACE = 31,\n    UCHAR_XID_CONTINUE = 32,\n    UCHAR_XID_START = 33,\n    UCHAR_CASE_SENSITIVE = 34,\n    UCHAR_S_TERM = 35,\n    UCHAR_VARIATION_SELECTOR = 36,\n    UCHAR_NFD_INERT = 37,\n    UCHAR_NFKD_INERT = 38,\n    UCHAR_NFC_INERT = 39,\n    UCHAR_NFKC_INERT = 40,\n    UCHAR_SEGMENT_STARTER = 41,\n    UCHAR_PATTERN_SYNTAX = 42,\n    UCHAR_PATTERN_WHITE_SPACE = 43,\n    UCHAR_POSIX_ALNUM = 44,\n    UCHAR_POSIX_BLANK = 45,\n    UCHAR_POSIX_GRAPH = 46,\n    UCHAR_POSIX_PRINT = 47,\n    UCHAR_POSIX_XDIGIT = 48,\n    UCHAR_CASED = 49,\n    UCHAR_CASE_IGNORABLE = 50,\n    UCHAR_CHANGES_WHEN_LOWERCASED = 51,\n    UCHAR_CHANGES_WHEN_UPPERCASED = 52,\n    UCHAR_CHANGES_WHEN_TITLECASED = 53,\n    UCHAR_CHANGES_WHEN_CASEFOLDED = 54,\n    UCHAR_CHANGES_WHEN_CASEMAPPED = 55,\n    UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED = 56,\n    UCHAR_EMOJI = 57,\n    UCHAR_EMOJI_PRESENTATION = 58,\n    UCHAR_EMOJI_MODIFIER = 59,\n    UCHAR_EMOJI_MODIFIER_BASE = 60,\n    UCHAR_EMOJI_COMPONENT = 61,\n    UCHAR_REGIONAL_INDICATOR = 62,\n    UCHAR_PREPENDED_CONCATENATION_MARK = 63,\n    UCHAR_EXTENDED_PICTOGRAPHIC = 64,\n\n#ifndef U_HIDE_DEPRECATED_API\n    UCHAR_BINARY_LIMIT,\n#endif\n    UCHAR_BIDI_CLASS = 0x1000,\n    UCHAR_INT_START = UCHAR_BIDI_CLASS,\n    UCHAR_BLOCK = 0x1001,\n    UCHAR_CANONICAL_COMBINING_CLASS = 0x1002,\n    UCHAR_DECOMPOSITION_TYPE = 0x1003,\n    UCHAR_EAST_ASIAN_WIDTH = 0x1004,\n    UCHAR_GENERAL_CATEGORY = 0x1005,\n    UCHAR_JOINING_GROUP = 0x1006,\n    UCHAR_JOINING_TYPE = 0x1007,\n    UCHAR_LINE_BREAK = 0x1008,\n    UCHAR_NUMERIC_TYPE = 0x1009,\n    UCHAR_SCRIPT = 0x100A,\n    UCHAR_HANGUL_SYLLABLE_TYPE = 0x100B,\n    UCHAR_NFD_QUICK_CHECK = 0x100C,\n    UCHAR_NFKD_QUICK_CHECK = 0x100D,\n    UCHAR_NFC_QUICK_CHECK = 0x100E,\n    UCHAR_NFKC_QUICK_CHECK = 0x100F,\n    UCHAR_LEAD_CANONICAL_COMBINING_CLASS = 0x1010,\n    UCHAR_TRAIL_CANONICAL_COMBINING_CLASS = 0x1011,\n    UCHAR_GRAPHEME_CLUSTER_BREAK = 0x1012,\n    UCHAR_SENTENCE_BREAK = 0x1013,\n    UCHAR_WORD_BREAK = 0x1014,\n    UCHAR_BIDI_PAIRED_BRACKET_TYPE = 0x1015,\n\n#ifndef U_HIDE_DEPRECATED_API\n    UCHAR_INT_LIMIT = 0x1016,\n#endif\n    UCHAR_GENERAL_CATEGORY_MASK = 0x2000,\n    UCHAR_MASK_START = UCHAR_GENERAL_CATEGORY_MASK,\n\n#ifndef U_HIDE_DEPRECATED_API\n    UCHAR_MASK_LIMIT = 0x2001,\n#endif\n    UCHAR_NUMERIC_VALUE = 0x3000,\n    UCHAR_DOUBLE_START = UCHAR_NUMERIC_VALUE,\n\n#ifndef U_HIDE_DEPRECATED_API\n    UCHAR_DOUBLE_LIMIT = 0x3001,\n#endif\n    UCHAR_AGE = 0x4000,\n    UCHAR_STRING_START = UCHAR_AGE,\n    UCHAR_BIDI_MIRRORING_GLYPH = 0x4001,\n    UCHAR_CASE_FOLDING = 0x4002,\n\n#ifndef U_HIDE_DEPRECATED_API\n    UCHAR_ISO_COMMENT = 0x4003,\n#endif\n    UCHAR_LOWERCASE_MAPPING = 0x4004,\n    UCHAR_NAME = 0x4005,\n    UCHAR_SIMPLE_CASE_FOLDING = 0x4006,\n    UCHAR_SIMPLE_LOWERCASE_MAPPING = 0x4007,\n    UCHAR_SIMPLE_TITLECASE_MAPPING = 0x4008,\n    UCHAR_SIMPLE_UPPERCASE_MAPPING = 0x4009,\n    UCHAR_TITLECASE_MAPPING = 0x400A,\n\n#ifndef U_HIDE_DEPRECATED_API\n    UCHAR_UNICODE_1_NAME = 0x400B,\n#endif\n    UCHAR_UPPERCASE_MAPPING = 0x400C,\n    UCHAR_BIDI_PAIRED_BRACKET = 0x400D,\n\n#ifndef U_HIDE_DEPRECATED_API\n    UCHAR_STRING_LIMIT = 0x400E,\n#endif\n    UCHAR_SCRIPT_EXTENSIONS = 0x7000,\n    UCHAR_OTHER_PROPERTY_START = UCHAR_SCRIPT_EXTENSIONS,\n\n#ifndef U_HIDE_DEPRECATED_API\n    UCHAR_OTHER_PROPERTY_LIMIT = 0x7001,\n#endif\n    UCHAR_INVALID_CODE = -1\n} UProperty;\n\ntypedef enum UScriptCode {\n    USCRIPT_INVALID_CODE = -1,\n    USCRIPT_COMMON = 0,\n    USCRIPT_INHERITED = 1,\n    USCRIPT_ARABIC = 2,\n    USCRIPT_ARMENIAN = 3,\n    USCRIPT_BENGALI = 4,\n    USCRIPT_BOPOMOFO = 5,\n    USCRIPT_CHEROKEE = 6,\n    USCRIPT_COPTIC = 7,\n    USCRIPT_CYRILLIC = 8,\n    USCRIPT_DESERET = 9,\n    USCRIPT_DEVANAGARI = 10,\n    USCRIPT_ETHIOPIC = 11,\n    USCRIPT_GEORGIAN = 12,\n    USCRIPT_GOTHIC = 13,\n    USCRIPT_GREEK = 14,\n    USCRIPT_GUJARATI = 15,\n    USCRIPT_GURMUKHI = 16,\n    USCRIPT_HAN = 17,\n    USCRIPT_HANGUL = 18,\n    USCRIPT_HEBREW = 19,\n    USCRIPT_HIRAGANA = 20,\n    USCRIPT_KANNADA = 21,\n    USCRIPT_KATAKANA = 22,\n    USCRIPT_KHMER = 23,\n    USCRIPT_LAO = 24,\n    USCRIPT_LATIN = 25,\n    USCRIPT_MALAYALAM = 26,\n    USCRIPT_MONGOLIAN = 27,\n    USCRIPT_MYANMAR = 28,\n    USCRIPT_OGHAM = 29,\n    USCRIPT_OLD_ITALIC = 30,\n    USCRIPT_ORIYA = 31,\n    USCRIPT_RUNIC = 32,\n    USCRIPT_SINHALA = 33,\n    USCRIPT_SYRIAC = 34,\n    USCRIPT_TAMIL = 35,\n    USCRIPT_TELUGU = 36,\n    USCRIPT_THAANA = 37,\n    USCRIPT_THAI = 38,\n    USCRIPT_TIBETAN = 39,\n    USCRIPT_CANADIAN_ABORIGINAL = 40,\n    USCRIPT_UCAS = USCRIPT_CANADIAN_ABORIGINAL,\n    USCRIPT_YI = 41,\n    USCRIPT_TAGALOG = 42,\n    USCRIPT_HANUNOO = 43,\n    USCRIPT_BUHID = 44,\n    USCRIPT_TAGBANWA = 45,\n    USCRIPT_BRAILLE = 46,\n    USCRIPT_CYPRIOT = 47,\n    USCRIPT_LIMBU = 48,\n    USCRIPT_LINEAR_B = 49,\n    USCRIPT_OSMANYA = 50,\n    USCRIPT_SHAVIAN = 51,\n    USCRIPT_TAI_LE = 52,\n    USCRIPT_UGARITIC = 53,\n    USCRIPT_KATAKANA_OR_HIRAGANA = 54,\n\n    USCRIPT_BUGINESE = 55,\n    USCRIPT_GLAGOLITIC = 56,\n    USCRIPT_KHAROSHTHI = 57,\n    USCRIPT_SYLOTI_NAGRI = 58,\n    USCRIPT_NEW_TAI_LUE = 59,\n    USCRIPT_TIFINAGH = 60,\n    USCRIPT_OLD_PERSIAN = 61,\n    USCRIPT_BALINESE = 62,\n    USCRIPT_BATAK = 63,\n    USCRIPT_BLISSYMBOLS = 64,\n    USCRIPT_BRAHMI = 65,\n    USCRIPT_CHAM = 66,\n    USCRIPT_CIRTH = 67,\n    USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC = 68,\n    USCRIPT_DEMOTIC_EGYPTIAN = 69,\n    USCRIPT_HIERATIC_EGYPTIAN = 70,\n    USCRIPT_EGYPTIAN_HIEROGLYPHS = 71,\n    USCRIPT_KHUTSURI = 72,\n    USCRIPT_SIMPLIFIED_HAN = 73,\n    USCRIPT_TRADITIONAL_HAN = 74,\n    USCRIPT_PAHAWH_HMONG = 75,\n    USCRIPT_OLD_HUNGARIAN = 76,\n    USCRIPT_HARAPPAN_INDUS = 77,\n    USCRIPT_JAVANESE = 78,\n    USCRIPT_KAYAH_LI = 79,\n    USCRIPT_LATIN_FRAKTUR = 80,\n    USCRIPT_LATIN_GAELIC = 81,\n    USCRIPT_LEPCHA = 82,\n    USCRIPT_LINEAR_A = 83,\n    USCRIPT_MANDAIC = 84,\n    USCRIPT_MANDAEAN = USCRIPT_MANDAIC,\n    USCRIPT_MAYAN_HIEROGLYPHS = 85,\n    USCRIPT_MEROITIC_HIEROGLYPHS = 86,\n    USCRIPT_MEROITIC = USCRIPT_MEROITIC_HIEROGLYPHS,\n    USCRIPT_NKO = 87,\n    USCRIPT_ORKHON = 88,\n    USCRIPT_OLD_PERMIC = 89,\n    USCRIPT_PHAGS_PA = 90,\n    USCRIPT_PHOENICIAN = 91,\n    USCRIPT_MIAO = 92,\n    USCRIPT_PHONETIC_POLLARD = USCRIPT_MIAO,\n    USCRIPT_RONGORONGO = 93,\n    USCRIPT_SARATI = 94,\n    USCRIPT_ESTRANGELO_SYRIAC = 95,\n    USCRIPT_WESTERN_SYRIAC = 96,\n    USCRIPT_EASTERN_SYRIAC = 97,\n    USCRIPT_TENGWAR = 98,\n    USCRIPT_VAI = 99,\n    USCRIPT_VISIBLE_SPEECH = 100,\n    USCRIPT_CUNEIFORM = 101,\n    USCRIPT_UNWRITTEN_LANGUAGES = 102,\n    USCRIPT_UNKNOWN = 103,\n    USCRIPT_CARIAN = 104,\n    USCRIPT_JAPANESE = 105,\n    USCRIPT_LANNA = 106,\n    USCRIPT_LYCIAN = 107,\n    USCRIPT_LYDIAN = 108,\n    USCRIPT_OL_CHIKI = 109,\n    USCRIPT_REJANG = 110,\n    USCRIPT_SAURASHTRA = 111,\n    USCRIPT_SIGN_WRITING = 112,\n    USCRIPT_SUNDANESE = 113,\n    USCRIPT_MOON = 114,\n    USCRIPT_MEITEI_MAYEK = 115,\n    USCRIPT_IMPERIAL_ARAMAIC = 116,\n    USCRIPT_AVESTAN = 117,\n    USCRIPT_CHAKMA = 118,\n    USCRIPT_KOREAN = 119,\n    USCRIPT_KAITHI = 120,\n    USCRIPT_MANICHAEAN = 121,\n    USCRIPT_INSCRIPTIONAL_PAHLAVI = 122,\n    USCRIPT_PSALTER_PAHLAVI = 123,\n    USCRIPT_BOOK_PAHLAVI = 124,\n    USCRIPT_INSCRIPTIONAL_PARTHIAN = 125,\n    USCRIPT_SAMARITAN = 126,\n    USCRIPT_TAI_VIET = 127,\n    USCRIPT_MATHEMATICAL_NOTATION = 128,\n    USCRIPT_SYMBOLS = 129,\n    USCRIPT_BAMUM = 130,\n    USCRIPT_LISU = 131,\n    USCRIPT_NAKHI_GEBA = 132,\n    USCRIPT_OLD_SOUTH_ARABIAN = 133,\n    USCRIPT_BASSA_VAH = 134,\n    USCRIPT_DUPLOYAN = 135,\n#ifndef U_HIDE_DEPRECATED_API\n    USCRIPT_DUPLOYAN_SHORTAND = USCRIPT_DUPLOYAN,\n#endif\n    USCRIPT_ELBASAN = 136,\n    USCRIPT_GRANTHA = 137,\n    USCRIPT_KPELLE = 138,\n    USCRIPT_LOMA = 139,\n    USCRIPT_MENDE = 140,\n    USCRIPT_MEROITIC_CURSIVE = 141,\n    USCRIPT_OLD_NORTH_ARABIAN = 142,\n    USCRIPT_NABATAEAN = 143,\n    USCRIPT_PALMYRENE = 144,\n    USCRIPT_KHUDAWADI = 145,\n    USCRIPT_SINDHI = USCRIPT_KHUDAWADI,\n    USCRIPT_WARANG_CITI = 146,\n    USCRIPT_AFAKA = 147,\n    USCRIPT_JURCHEN = 148,\n    USCRIPT_MRO = 149,\n    USCRIPT_NUSHU = 150,\n    USCRIPT_SHARADA = 151,\n    USCRIPT_SORA_SOMPENG = 152,\n    USCRIPT_TAKRI = 153,\n    USCRIPT_TANGUT = 154,\n    USCRIPT_WOLEAI = 155,\n    USCRIPT_ANATOLIAN_HIEROGLYPHS = 156,\n    USCRIPT_KHOJKI = 157,\n    USCRIPT_TIRHUTA = 158,\n    USCRIPT_CAUCASIAN_ALBANIAN = 159,\n    USCRIPT_MAHAJANI = 160,\n    USCRIPT_AHOM = 161,\n    USCRIPT_HATRAN = 162,\n    USCRIPT_MODI = 163,\n    USCRIPT_MULTANI = 164,\n    USCRIPT_PAU_CIN_HAU = 165,\n    USCRIPT_SIDDHAM = 166,\n    USCRIPT_ADLAM = 167,\n    USCRIPT_BHAIKSUKI = 168,\n    USCRIPT_MARCHEN = 169,\n    USCRIPT_NEWA = 170,\n    USCRIPT_OSAGE = 171,\n    USCRIPT_HAN_WITH_BOPOMOFO = 172,\n    USCRIPT_JAMO = 173,\n    USCRIPT_SYMBOLS_EMOJI = 174,\n    USCRIPT_MASARAM_GONDI = 175,\n    USCRIPT_SOYOMBO = 176,\n    USCRIPT_ZANABAZAR_SQUARE = 177,\n    USCRIPT_DOGRA = 178,\n    USCRIPT_GUNJALA_GONDI = 179,\n    USCRIPT_MAKASAR = 180,\n    USCRIPT_MEDEFAIDRIN = 181,\n    USCRIPT_HANIFI_ROHINGYA = 182,\n    USCRIPT_SOGDIAN = 183,\n    USCRIPT_OLD_SOGDIAN = 184,\n    USCRIPT_ELYMAIC = 185,\n    USCRIPT_NYIAKENG_PUACHUE_HMONG = 186,\n    USCRIPT_NANDINAGARI = 187,\n    USCRIPT_WANCHO = 188,\n    USCRIPT_CHORASMIAN = 189,\n    USCRIPT_DIVES_AKURU = 190,\n    USCRIPT_KHITAN_SMALL_SCRIPT = 191,\n    USCRIPT_YEZIDI = 192,\n#ifndef U_HIDE_DEPRECATED_API\n    USCRIPT_CODE_LIMIT = 193\n#endif\n} UScriptCode;\n\ntypedef enum UCharCategory {\n    U_UNASSIGNED = 0,\n    U_GENERAL_OTHER_TYPES = 0,\n    U_UPPERCASE_LETTER = 1,\n    U_LOWERCASE_LETTER = 2,\n    U_TITLECASE_LETTER = 3,\n    U_MODIFIER_LETTER = 4,\n    U_OTHER_LETTER = 5,\n    U_NON_SPACING_MARK = 6,\n    U_ENCLOSING_MARK = 7,\n    U_COMBINING_SPACING_MARK = 8,\n    U_DECIMAL_DIGIT_NUMBER = 9,\n    U_LETTER_NUMBER = 10,\n    U_OTHER_NUMBER = 11,\n    U_SPACE_SEPARATOR = 12,\n    U_LINE_SEPARATOR = 13,\n    U_PARAGRAPH_SEPARATOR = 14,\n    U_CONTROL_CHAR = 15,\n    U_FORMAT_CHAR = 16,\n    U_PRIVATE_USE_CHAR = 17,\n    U_SURROGATE = 18,\n    U_DASH_PUNCTUATION = 19,\n    U_START_PUNCTUATION = 20,\n    U_END_PUNCTUATION = 21,\n    U_CONNECTOR_PUNCTUATION = 22,\n    U_OTHER_PUNCTUATION = 23,\n    U_MATH_SYMBOL = 24,\n    U_CURRENCY_SYMBOL = 25,\n    U_MODIFIER_SYMBOL = 26,\n    U_OTHER_SYMBOL = 27,\n    U_INITIAL_PUNCTUATION = 28,\n    U_FINAL_PUNCTUATION = 29,\n    U_CHAR_CATEGORY_COUNT\n} UCharCategory;\n\n#define U_GC_CN_MASK U_MASK(U_GENERAL_OTHER_TYPES)\n#define U_GC_LU_MASK U_MASK(U_UPPERCASE_LETTER)\n#define U_GC_LL_MASK U_MASK(U_LOWERCASE_LETTER)\n#define U_GC_LT_MASK U_MASK(U_TITLECASE_LETTER)\n#define U_GC_LM_MASK U_MASK(U_MODIFIER_LETTER)\n#define U_GC_LO_MASK U_MASK(U_OTHER_LETTER)\n#define U_GC_MN_MASK U_MASK(U_NON_SPACING_MARK)\n#define U_GC_ME_MASK U_MASK(U_ENCLOSING_MARK)\n#define U_GC_MC_MASK U_MASK(U_COMBINING_SPACING_MARK)\n#define U_GC_ND_MASK U_MASK(U_DECIMAL_DIGIT_NUMBER)\n#define U_GC_NL_MASK U_MASK(U_LETTER_NUMBER)\n#define U_GC_NO_MASK U_MASK(U_OTHER_NUMBER)\n#define U_GC_ZS_MASK U_MASK(U_SPACE_SEPARATOR)\n#define U_GC_ZL_MASK U_MASK(U_LINE_SEPARATOR)\n#define U_GC_ZP_MASK U_MASK(U_PARAGRAPH_SEPARATOR)\n#define U_GC_CC_MASK U_MASK(U_CONTROL_CHAR)\n#define U_GC_CF_MASK U_MASK(U_FORMAT_CHAR)\n#define U_GC_CO_MASK U_MASK(U_PRIVATE_USE_CHAR)\n#define U_GC_CS_MASK U_MASK(U_SURROGATE)\n#define U_GC_PD_MASK U_MASK(U_DASH_PUNCTUATION)\n#define U_GC_PS_MASK U_MASK(U_START_PUNCTUATION)\n#define U_GC_PE_MASK U_MASK(U_END_PUNCTUATION)\n#define U_GC_PC_MASK U_MASK(U_CONNECTOR_PUNCTUATION)\n#define U_GC_PO_MASK U_MASK(U_OTHER_PUNCTUATION)\n#define U_GC_SM_MASK U_MASK(U_MATH_SYMBOL)\n#define U_GC_SC_MASK U_MASK(U_CURRENCY_SYMBOL)\n#define U_GC_SK_MASK U_MASK(U_MODIFIER_SYMBOL)\n#define U_GC_SO_MASK U_MASK(U_OTHER_SYMBOL)\n#define U_GC_PI_MASK U_MASK(U_INITIAL_PUNCTUATION)\n#define U_GC_PF_MASK U_MASK(U_FINAL_PUNCTUATION)\n#define U_GC_L_MASK (U_GC_LU_MASK | U_GC_LL_MASK | U_GC_LT_MASK | U_GC_LM_MASK | U_GC_LO_MASK)\n#define U_GC_LC_MASK (U_GC_LU_MASK | U_GC_LL_MASK | U_GC_LT_MASK)\n#define U_GC_M_MASK (U_GC_MN_MASK | U_GC_ME_MASK | U_GC_MC_MASK)\n#define U_GC_N_MASK (U_GC_ND_MASK | U_GC_NL_MASK | U_GC_NO_MASK)\n#define U_GC_Z_MASK (U_GC_ZS_MASK | U_GC_ZL_MASK | U_GC_ZP_MASK)\n#define U_GC_C_MASK (U_GC_CN_MASK | U_GC_CC_MASK | U_GC_CF_MASK | U_GC_CO_MASK | U_GC_CS_MASK)\n#define U_GC_P_MASK (U_GC_PD_MASK | U_GC_PS_MASK | U_GC_PE_MASK | U_GC_PC_MASK | U_GC_PO_MASK | U_GC_PI_MASK | U_GC_PF_MASK)\n#define U_GC_S_MASK (U_GC_SM_MASK | U_GC_SC_MASK | U_GC_SK_MASK | U_GC_SO_MASK)\n\ntypedef enum UCharDirection {\n    U_LEFT_TO_RIGHT = 0,\n    U_RIGHT_TO_LEFT = 1,\n    U_EUROPEAN_NUMBER = 2,\n    U_EUROPEAN_NUMBER_SEPARATOR = 3,\n    U_EUROPEAN_NUMBER_TERMINATOR = 4,\n    U_ARABIC_NUMBER = 5,\n    U_COMMON_NUMBER_SEPARATOR = 6,\n    U_BLOCK_SEPARATOR = 7,\n    U_SEGMENT_SEPARATOR = 8,\n    U_WHITE_SPACE_NEUTRAL = 9,\n    U_OTHER_NEUTRAL = 10,\n    U_LEFT_TO_RIGHT_EMBEDDING = 11,\n    U_LEFT_TO_RIGHT_OVERRIDE = 12,\n    U_RIGHT_TO_LEFT_ARABIC = 13,\n    U_RIGHT_TO_LEFT_EMBEDDING = 14,\n    U_RIGHT_TO_LEFT_OVERRIDE = 15,\n    U_POP_DIRECTIONAL_FORMAT = 16,\n    U_DIR_NON_SPACING_MARK = 17,\n    U_BOUNDARY_NEUTRAL = 18,\n    U_FIRST_STRONG_ISOLATE = 19,\n    U_LEFT_TO_RIGHT_ISOLATE = 20,\n    U_RIGHT_TO_LEFT_ISOLATE = 21,\n    U_POP_DIRECTIONAL_ISOLATE = 22,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_CHAR_DIRECTION_COUNT\n#endif\n} UCharDirection;\n\ntypedef enum UBidiPairedBracketType {\n    U_BPT_NONE,\n    U_BPT_OPEN,\n    U_BPT_CLOSE,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_BPT_COUNT\n#endif\n} UBidiPairedBracketType;\n\ntypedef enum UBlockCode {\n    UBLOCK_NO_BLOCK = 0,\n    UBLOCK_BASIC_LATIN = 1,\n    UBLOCK_LATIN_1_SUPPLEMENT = 2,\n    UBLOCK_LATIN_EXTENDED_A = 3,\n    UBLOCK_LATIN_EXTENDED_B = 4,\n    UBLOCK_IPA_EXTENSIONS = 5,\n    UBLOCK_SPACING_MODIFIER_LETTERS = 6,\n    UBLOCK_COMBINING_DIACRITICAL_MARKS = 7,\n    UBLOCK_GREEK = 8,\n    UBLOCK_CYRILLIC = 9,\n    UBLOCK_ARMENIAN = 10,\n    UBLOCK_HEBREW = 11,\n    UBLOCK_ARABIC = 12,\n    UBLOCK_SYRIAC = 13,\n    UBLOCK_THAANA = 14,\n    UBLOCK_DEVANAGARI = 15,\n    UBLOCK_BENGALI = 16,\n    UBLOCK_GURMUKHI = 17,\n    UBLOCK_GUJARATI = 18,\n    UBLOCK_ORIYA = 19,\n    UBLOCK_TAMIL = 20,\n    UBLOCK_TELUGU = 21,\n    UBLOCK_KANNADA = 22,\n    UBLOCK_MALAYALAM = 23,\n    UBLOCK_SINHALA = 24,\n    UBLOCK_THAI = 25,\n    UBLOCK_LAO = 26,\n    UBLOCK_TIBETAN = 27,\n    UBLOCK_MYANMAR = 28,\n    UBLOCK_GEORGIAN = 29,\n    UBLOCK_HANGUL_JAMO = 30,\n    UBLOCK_ETHIOPIC = 31,\n    UBLOCK_CHEROKEE = 32,\n    UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS = 33,\n    UBLOCK_OGHAM = 34,\n    UBLOCK_RUNIC = 35,\n    UBLOCK_KHMER = 36,\n    UBLOCK_MONGOLIAN = 37,\n    UBLOCK_LATIN_EXTENDED_ADDITIONAL = 38,\n    UBLOCK_GREEK_EXTENDED = 39,\n    UBLOCK_GENERAL_PUNCTUATION = 40,\n    UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS = 41,\n    UBLOCK_CURRENCY_SYMBOLS = 42,\n    UBLOCK_COMBINING_MARKS_FOR_SYMBOLS = 43,\n    UBLOCK_LETTERLIKE_SYMBOLS = 44,\n    UBLOCK_NUMBER_FORMS = 45,\n    UBLOCK_ARROWS = 46,\n    UBLOCK_MATHEMATICAL_OPERATORS = 47,\n    UBLOCK_MISCELLANEOUS_TECHNICAL = 48,\n    UBLOCK_CONTROL_PICTURES = 49,\n    UBLOCK_OPTICAL_CHARACTER_RECOGNITION = 50,\n    UBLOCK_ENCLOSED_ALPHANUMERICS = 51,\n    UBLOCK_BOX_DRAWING = 52,\n    UBLOCK_BLOCK_ELEMENTS = 53,\n    UBLOCK_GEOMETRIC_SHAPES = 54,\n    UBLOCK_MISCELLANEOUS_SYMBOLS = 55,\n    UBLOCK_DINGBATS = 56,\n    UBLOCK_BRAILLE_PATTERNS = 57,\n    UBLOCK_CJK_RADICALS_SUPPLEMENT = 58,\n    UBLOCK_KANGXI_RADICALS = 59,\n    UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS = 60,\n    UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION = 61,\n    UBLOCK_HIRAGANA = 62,\n    UBLOCK_KATAKANA = 63,\n    UBLOCK_BOPOMOFO = 64,\n    UBLOCK_HANGUL_COMPATIBILITY_JAMO = 65,\n    UBLOCK_KANBUN = 66,\n    UBLOCK_BOPOMOFO_EXTENDED = 67,\n    UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS = 68,\n    UBLOCK_CJK_COMPATIBILITY = 69,\n    UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A = 70,\n    UBLOCK_CJK_UNIFIED_IDEOGRAPHS = 71,\n    UBLOCK_YI_SYLLABLES = 72,\n    UBLOCK_YI_RADICALS = 73,\n    UBLOCK_HANGUL_SYLLABLES = 74,\n    UBLOCK_HIGH_SURROGATES = 75,\n    UBLOCK_HIGH_PRIVATE_USE_SURROGATES = 76,\n    UBLOCK_LOW_SURROGATES = 77,\n    UBLOCK_PRIVATE_USE_AREA = 78,\n    UBLOCK_PRIVATE_USE = UBLOCK_PRIVATE_USE_AREA,\n    UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS = 79,\n    UBLOCK_ALPHABETIC_PRESENTATION_FORMS = 80,\n    UBLOCK_ARABIC_PRESENTATION_FORMS_A = 81,\n    UBLOCK_COMBINING_HALF_MARKS = 82,\n    UBLOCK_CJK_COMPATIBILITY_FORMS = 83,\n    UBLOCK_SMALL_FORM_VARIANTS = 84,\n    UBLOCK_ARABIC_PRESENTATION_FORMS_B = 85,\n    UBLOCK_SPECIALS = 86,\n    UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS = 87,\n    UBLOCK_OLD_ITALIC = 88,\n    UBLOCK_GOTHIC = 89,\n    UBLOCK_DESERET = 90,\n    UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91,\n    UBLOCK_MUSICAL_SYMBOLS = 92,\n    UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93,\n    UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94,\n    UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95,\n    UBLOCK_TAGS = 96,\n    UBLOCK_CYRILLIC_SUPPLEMENT = 97,\n    UBLOCK_CYRILLIC_SUPPLEMENTARY = UBLOCK_CYRILLIC_SUPPLEMENT,\n    UBLOCK_TAGALOG = 98,\n    UBLOCK_HANUNOO = 99,\n    UBLOCK_BUHID = 100,\n    UBLOCK_TAGBANWA = 101,\n    UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102,\n    UBLOCK_SUPPLEMENTAL_ARROWS_A = 103,\n    UBLOCK_SUPPLEMENTAL_ARROWS_B = 104,\n    UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105,\n    UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106,\n    UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107,\n    UBLOCK_VARIATION_SELECTORS = 108,\n    UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109,\n    UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110,\n    UBLOCK_LIMBU = 111,\n    UBLOCK_TAI_LE = 112,\n    UBLOCK_KHMER_SYMBOLS = 113,\n    UBLOCK_PHONETIC_EXTENSIONS = 114,\n    UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115,\n    UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116,\n    UBLOCK_LINEAR_B_SYLLABARY = 117,\n    UBLOCK_LINEAR_B_IDEOGRAMS = 118,\n    UBLOCK_AEGEAN_NUMBERS = 119,\n    UBLOCK_UGARITIC = 120,\n    UBLOCK_SHAVIAN = 121,\n    UBLOCK_OSMANYA = 122,\n    UBLOCK_CYPRIOT_SYLLABARY = 123,\n    UBLOCK_TAI_XUAN_JING_SYMBOLS = 124,\n    UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125,\n    UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION = 126,\n    UBLOCK_ANCIENT_GREEK_NUMBERS = 127,\n    UBLOCK_ARABIC_SUPPLEMENT = 128,\n    UBLOCK_BUGINESE = 129,\n    UBLOCK_CJK_STROKES = 130,\n    UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131,\n    UBLOCK_COPTIC = 132,\n    UBLOCK_ETHIOPIC_EXTENDED = 133,\n    UBLOCK_ETHIOPIC_SUPPLEMENT = 134,\n    UBLOCK_GEORGIAN_SUPPLEMENT = 135,\n    UBLOCK_GLAGOLITIC = 136,\n    UBLOCK_KHAROSHTHI = 137,\n    UBLOCK_MODIFIER_TONE_LETTERS = 138,\n    UBLOCK_NEW_TAI_LUE = 139,\n    UBLOCK_OLD_PERSIAN = 140,\n    UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT = 141,\n    UBLOCK_SUPPLEMENTAL_PUNCTUATION = 142,\n    UBLOCK_SYLOTI_NAGRI = 143,\n    UBLOCK_TIFINAGH = 144,\n    UBLOCK_VERTICAL_FORMS = 145,\n    UBLOCK_NKO = 146,\n    UBLOCK_BALINESE = 147,\n    UBLOCK_LATIN_EXTENDED_C = 148,\n    UBLOCK_LATIN_EXTENDED_D = 149,\n    UBLOCK_PHAGS_PA = 150,\n    UBLOCK_PHOENICIAN = 151,\n    UBLOCK_CUNEIFORM = 152,\n    UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153,\n    UBLOCK_COUNTING_ROD_NUMERALS = 154,\n    UBLOCK_SUNDANESE = 155,\n    UBLOCK_LEPCHA = 156,\n    UBLOCK_OL_CHIKI = 157,\n    UBLOCK_CYRILLIC_EXTENDED_A = 158,\n    UBLOCK_VAI = 159,\n    UBLOCK_CYRILLIC_EXTENDED_B = 160,\n    UBLOCK_SAURASHTRA = 161,\n    UBLOCK_KAYAH_LI = 162,\n    UBLOCK_REJANG = 163,\n    UBLOCK_CHAM = 164,\n    UBLOCK_ANCIENT_SYMBOLS = 165,\n    UBLOCK_PHAISTOS_DISC = 166,\n    UBLOCK_LYCIAN = 167,\n    UBLOCK_CARIAN = 168,\n    UBLOCK_LYDIAN = 169,\n    UBLOCK_MAHJONG_TILES = 170,\n    UBLOCK_DOMINO_TILES = 171,\n    UBLOCK_SAMARITAN = 172,\n    UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = 173,\n    UBLOCK_TAI_THAM = 174,\n    UBLOCK_VEDIC_EXTENSIONS = 175,\n    UBLOCK_LISU = 176,\n    UBLOCK_BAMUM = 177,\n    UBLOCK_COMMON_INDIC_NUMBER_FORMS = 178,\n    UBLOCK_DEVANAGARI_EXTENDED = 179,\n    UBLOCK_HANGUL_JAMO_EXTENDED_A = 180,\n    UBLOCK_JAVANESE = 181,\n    UBLOCK_MYANMAR_EXTENDED_A = 182,\n    UBLOCK_TAI_VIET = 183,\n    UBLOCK_MEETEI_MAYEK = 184,\n    UBLOCK_HANGUL_JAMO_EXTENDED_B = 185,\n    UBLOCK_IMPERIAL_ARAMAIC = 186,\n    UBLOCK_OLD_SOUTH_ARABIAN = 187,\n    UBLOCK_AVESTAN = 188,\n    UBLOCK_INSCRIPTIONAL_PARTHIAN = 189,\n    UBLOCK_INSCRIPTIONAL_PAHLAVI = 190,\n    UBLOCK_OLD_TURKIC = 191,\n    UBLOCK_RUMI_NUMERAL_SYMBOLS = 192,\n    UBLOCK_KAITHI = 193,\n    UBLOCK_EGYPTIAN_HIEROGLYPHS = 194,\n    UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT = 195,\n    UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = 196,\n    UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = 197,\n    UBLOCK_MANDAIC = 198,\n    UBLOCK_BATAK = 199,\n    UBLOCK_ETHIOPIC_EXTENDED_A = 200,\n    UBLOCK_BRAHMI = 201,\n    UBLOCK_BAMUM_SUPPLEMENT = 202,\n    UBLOCK_KANA_SUPPLEMENT = 203,\n    UBLOCK_PLAYING_CARDS = 204,\n    UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS = 205,\n    UBLOCK_EMOTICONS = 206,\n    UBLOCK_TRANSPORT_AND_MAP_SYMBOLS = 207,\n    UBLOCK_ALCHEMICAL_SYMBOLS = 208,\n    UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D = 209,\n    UBLOCK_ARABIC_EXTENDED_A = 210,\n    UBLOCK_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS = 211,\n    UBLOCK_CHAKMA = 212,\n    UBLOCK_MEETEI_MAYEK_EXTENSIONS = 213,\n    UBLOCK_MEROITIC_CURSIVE = 214,\n    UBLOCK_MEROITIC_HIEROGLYPHS = 215,\n    UBLOCK_MIAO = 216,\n    UBLOCK_SHARADA = 217,\n    UBLOCK_SORA_SOMPENG = 218,\n    UBLOCK_SUNDANESE_SUPPLEMENT = 219,\n    UBLOCK_TAKRI = 220,\n    UBLOCK_BASSA_VAH = 221,\n    UBLOCK_CAUCASIAN_ALBANIAN = 222,\n    UBLOCK_COPTIC_EPACT_NUMBERS = 223,\n    UBLOCK_COMBINING_DIACRITICAL_MARKS_EXTENDED = 224,\n    UBLOCK_DUPLOYAN = 225,\n    UBLOCK_ELBASAN = 226,\n    UBLOCK_GEOMETRIC_SHAPES_EXTENDED = 227,\n    UBLOCK_GRANTHA = 228,\n    UBLOCK_KHOJKI = 229,\n    UBLOCK_KHUDAWADI = 230,\n    UBLOCK_LATIN_EXTENDED_E = 231,\n    UBLOCK_LINEAR_A = 232,\n    UBLOCK_MAHAJANI = 233,\n    UBLOCK_MANICHAEAN = 234,\n    UBLOCK_MENDE_KIKAKUI = 235,\n    UBLOCK_MODI = 236,\n    UBLOCK_MRO = 237,\n    UBLOCK_MYANMAR_EXTENDED_B = 238,\n    UBLOCK_NABATAEAN = 239,\n    UBLOCK_OLD_NORTH_ARABIAN = 240,\n    UBLOCK_OLD_PERMIC = 241,\n    UBLOCK_ORNAMENTAL_DINGBATS = 242,\n    UBLOCK_PAHAWH_HMONG = 243,\n    UBLOCK_PALMYRENE = 244,\n    UBLOCK_PAU_CIN_HAU = 245,\n    UBLOCK_PSALTER_PAHLAVI = 246,\n    UBLOCK_SHORTHAND_FORMAT_CONTROLS = 247,\n    UBLOCK_SIDDHAM = 248,\n    UBLOCK_SINHALA_ARCHAIC_NUMBERS = 249,\n    UBLOCK_SUPPLEMENTAL_ARROWS_C = 250,\n    UBLOCK_TIRHUTA = 251,\n    UBLOCK_WARANG_CITI = 252,\n    UBLOCK_AHOM = 253,\n    UBLOCK_ANATOLIAN_HIEROGLYPHS = 254,\n    UBLOCK_CHEROKEE_SUPPLEMENT = 255,\n    UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E = 256,\n    UBLOCK_EARLY_DYNASTIC_CUNEIFORM = 257,\n    UBLOCK_HATRAN = 258,\n    UBLOCK_MULTANI = 259,\n    UBLOCK_OLD_HUNGARIAN = 260,\n    UBLOCK_SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS = 261,\n    UBLOCK_SUTTON_SIGNWRITING = 262,\n    UBLOCK_ADLAM = 263,\n    UBLOCK_BHAIKSUKI = 264,\n    UBLOCK_CYRILLIC_EXTENDED_C = 265,\n    UBLOCK_GLAGOLITIC_SUPPLEMENT = 266,\n    UBLOCK_IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION = 267,\n    UBLOCK_MARCHEN = 268,\n    UBLOCK_MONGOLIAN_SUPPLEMENT = 269,\n    UBLOCK_NEWA = 270,\n    UBLOCK_OSAGE = 271,\n    UBLOCK_TANGUT = 272,\n    UBLOCK_TANGUT_COMPONENTS = 273,\n    UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F = 274,\n    UBLOCK_KANA_EXTENDED_A = 275,\n    UBLOCK_MASARAM_GONDI = 276,\n    UBLOCK_NUSHU = 277,\n    UBLOCK_SOYOMBO = 278,\n    UBLOCK_SYRIAC_SUPPLEMENT = 279,\n    UBLOCK_ZANABAZAR_SQUARE = 280,\n    UBLOCK_CHESS_SYMBOLS = 281,\n    UBLOCK_DOGRA = 282,\n    UBLOCK_GEORGIAN_EXTENDED = 283,\n    UBLOCK_GUNJALA_GONDI = 284,\n    UBLOCK_HANIFI_ROHINGYA = 285,\n    UBLOCK_INDIC_SIYAQ_NUMBERS = 286,\n    UBLOCK_MAKASAR = 287,\n    UBLOCK_MAYAN_NUMERALS = 288,\n    UBLOCK_MEDEFAIDRIN = 289,\n    UBLOCK_OLD_SOGDIAN = 290,\n    UBLOCK_SOGDIAN = 291,\n\n#ifndef U_HIDE_DEPRECATED_API\n    UBLOCK_COUNT = 292,\n#endif\n    UBLOCK_INVALID_CODE = -1\n} UBlockCode;\n\ntypedef enum UEastAsianWidth {\n    U_EA_NEUTRAL,\n    U_EA_AMBIGUOUS,\n    U_EA_HALFWIDTH,\n    U_EA_FULLWIDTH,\n    U_EA_NARROW,\n    U_EA_WIDE,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_EA_COUNT\n#endif\n} UEastAsianWidth;\n\ntypedef enum UCharNameChoice {\n    U_UNICODE_CHAR_NAME,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_UNICODE_10_CHAR_NAME,\n#endif\n    U_EXTENDED_CHAR_NAME = U_UNICODE_CHAR_NAME + 2,\n    U_CHAR_NAME_ALIAS,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_CHAR_NAME_CHOICE_COUNT\n#endif\n} UCharNameChoice;\n\ntypedef enum UPropertyNameChoice {\n    U_SHORT_PROPERTY_NAME,\n    U_LONG_PROPERTY_NAME,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_PROPERTY_NAME_CHOICE_COUNT\n#endif\n} UPropertyNameChoice;\n\ntypedef enum UDecompositionType {\n    U_DT_NONE,\n    U_DT_CANONICAL,\n    U_DT_COMPAT,\n    U_DT_CIRCLE,\n    U_DT_FINAL,\n    U_DT_FONT,\n    U_DT_FRACTION,\n    U_DT_INITIAL,\n    U_DT_ISOLATED,\n    U_DT_MEDIAL,\n    U_DT_NARROW,\n    U_DT_NOBREAK,\n    U_DT_SMALL,\n    U_DT_SQUARE,\n    U_DT_SUB,\n    U_DT_SUPER,\n    U_DT_VERTICAL,\n    U_DT_WIDE,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_DT_COUNT\n#endif\n} UDecompositionType;\n\ntypedef enum UJoiningType {\n    U_JT_NON_JOINING,\n    U_JT_JOIN_CAUSING,\n    U_JT_DUAL_JOINING,\n    U_JT_LEFT_JOINING,\n\n    U_JT_RIGHT_JOINING,\n    U_JT_TRANSPARENT,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_JT_COUNT\n#endif\n} UJoiningType;\n\ntypedef enum UJoiningGroup {\n    U_JG_NO_JOINING_GROUP,\n    U_JG_AIN,\n    U_JG_ALAPH,\n    U_JG_ALEF,\n    U_JG_BEH,\n    U_JG_BETH,\n    U_JG_DAL,\n    U_JG_DALATH_RISH,\n    U_JG_E,\n    U_JG_FEH,\n    U_JG_FINAL_SEMKATH,\n    U_JG_GAF,\n    U_JG_GAMAL,\n    U_JG_HAH,\n    U_JG_TEH_MARBUTA_GOAL,\n    U_JG_HAMZA_ON_HEH_GOAL = U_JG_TEH_MARBUTA_GOAL,\n    U_JG_HE,\n    U_JG_HEH,\n    U_JG_HEH_GOAL,\n    U_JG_HETH,\n    U_JG_KAF,\n    U_JG_KAPH,\n    U_JG_KNOTTED_HEH,\n    U_JG_LAM,\n    U_JG_LAMADH,\n    U_JG_MEEM,\n    U_JG_MIM,\n    U_JG_NOON,\n    U_JG_NUN,\n    U_JG_PE,\n    U_JG_QAF,\n    U_JG_QAPH,\n    U_JG_REH,\n    U_JG_REVERSED_PE,\n    U_JG_SAD,\n    U_JG_SADHE,\n    U_JG_SEEN,\n    U_JG_SEMKATH,\n    U_JG_SHIN,\n    U_JG_SWASH_KAF,\n    U_JG_SYRIAC_WAW,\n    U_JG_TAH,\n    U_JG_TAW,\n    U_JG_TEH_MARBUTA,\n    U_JG_TETH,\n    U_JG_WAW,\n    U_JG_YEH,\n    U_JG_YEH_BARREE,\n    U_JG_YEH_WITH_TAIL,\n    U_JG_YUDH,\n    U_JG_YUDH_HE,\n    U_JG_ZAIN,\n    U_JG_FE,\n    U_JG_KHAPH,\n    U_JG_ZHAIN,\n    U_JG_BURUSHASKI_YEH_BARREE,\n    U_JG_FARSI_YEH,\n    U_JG_NYA,\n    U_JG_ROHINGYA_YEH,\n    U_JG_MANICHAEAN_ALEPH,\n    U_JG_MANICHAEAN_AYIN,\n    U_JG_MANICHAEAN_BETH,\n    U_JG_MANICHAEAN_DALETH,\n    U_JG_MANICHAEAN_DHAMEDH,\n    U_JG_MANICHAEAN_FIVE,\n    U_JG_MANICHAEAN_GIMEL,\n    U_JG_MANICHAEAN_HETH,\n    U_JG_MANICHAEAN_HUNDRED,\n    U_JG_MANICHAEAN_KAPH,\n    U_JG_MANICHAEAN_LAMEDH,\n    U_JG_MANICHAEAN_MEM,\n    U_JG_MANICHAEAN_NUN,\n    U_JG_MANICHAEAN_ONE,\n    U_JG_MANICHAEAN_PE,\n    U_JG_MANICHAEAN_QOPH,\n    U_JG_MANICHAEAN_RESH,\n    U_JG_MANICHAEAN_SADHE,\n    U_JG_MANICHAEAN_SAMEKH,\n    U_JG_MANICHAEAN_TAW,\n    U_JG_MANICHAEAN_TEN,\n    U_JG_MANICHAEAN_TETH,\n    U_JG_MANICHAEAN_THAMEDH,\n    U_JG_MANICHAEAN_TWENTY,\n    U_JG_MANICHAEAN_WAW,\n    U_JG_MANICHAEAN_YODH,\n    U_JG_MANICHAEAN_ZAYIN,\n    U_JG_STRAIGHT_WAW,\n    U_JG_AFRICAN_FEH,\n    U_JG_AFRICAN_NOON,\n    U_JG_AFRICAN_QAF,\n    U_JG_MALAYALAM_BHA,\n    U_JG_MALAYALAM_JA,\n    U_JG_MALAYALAM_LLA,\n    U_JG_MALAYALAM_LLLA,\n    U_JG_MALAYALAM_NGA,\n    U_JG_MALAYALAM_NNA,\n    U_JG_MALAYALAM_NNNA,\n    U_JG_MALAYALAM_NYA,\n    U_JG_MALAYALAM_RA,\n    U_JG_MALAYALAM_SSA,\n    U_JG_MALAYALAM_TTA,\n    U_JG_HANIFI_ROHINGYA_KINNA_YA,\n    U_JG_HANIFI_ROHINGYA_PA,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_JG_COUNT\n#endif\n} UJoiningGroup;\n\ntypedef enum UGraphemeClusterBreak {\n    U_GCB_OTHER = 0,\n    U_GCB_CONTROL = 1,\n    U_GCB_CR = 2,\n    U_GCB_EXTEND = 3,\n    U_GCB_L = 4,\n    U_GCB_LF = 5,\n    U_GCB_LV = 6,\n    U_GCB_LVT = 7,\n    U_GCB_T = 8,\n    U_GCB_V = 9,\n    U_GCB_SPACING_MARK = 10,\n    U_GCB_PREPEND = 11,\n    U_GCB_REGIONAL_INDICATOR = 12,\n    U_GCB_E_BASE = 13,\n    U_GCB_E_BASE_GAZ = 14,\n    U_GCB_E_MODIFIER = 15,\n    U_GCB_GLUE_AFTER_ZWJ = 16,\n    U_GCB_ZWJ = 17,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_GCB_COUNT = 18\n#endif\n} UGraphemeClusterBreak;\n\ntypedef enum UWordBreakValues {\n    U_WB_OTHER = 0,\n    U_WB_ALETTER = 1,\n    U_WB_FORMAT = 2,\n    U_WB_KATAKANA = 3,\n    U_WB_MIDLETTER = 4,\n    U_WB_MIDNUM = 5,\n    U_WB_NUMERIC = 6,\n    U_WB_EXTENDNUMLET = 7,\n    U_WB_CR = 8,\n    U_WB_EXTEND = 9,\n    U_WB_LF = 10,\n    U_WB_MIDNUMLET = 11,\n    U_WB_NEWLINE = 12,\n    U_WB_REGIONAL_INDICATOR = 13,\n    U_WB_HEBREW_LETTER = 14,\n    U_WB_SINGLE_QUOTE = 15,\n    U_WB_DOUBLE_QUOTE = 16,\n    U_WB_E_BASE = 17,\n    U_WB_E_BASE_GAZ = 18,\n    U_WB_E_MODIFIER = 19,\n    U_WB_GLUE_AFTER_ZWJ = 20,\n    U_WB_ZWJ = 21,\n    U_WB_WSEGSPACE = 22,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_WB_COUNT = 23\n#endif\n} UWordBreakValues;\n\ntypedef enum USentenceBreak {\n    U_SB_OTHER = 0,\n    U_SB_ATERM = 1,\n    U_SB_CLOSE = 2,\n    U_SB_FORMAT = 3,\n    U_SB_LOWER = 4,\n    U_SB_NUMERIC = 5,\n    U_SB_OLETTER = 6,\n    U_SB_SEP = 7,\n    U_SB_SP = 8,\n    U_SB_STERM = 9,\n    U_SB_UPPER = 10,\n    U_SB_CR = 11,\n    U_SB_EXTEND = 12,\n    U_SB_LF = 13,\n    U_SB_SCONTINUE = 14,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_SB_COUNT = 15\n#endif\n} USentenceBreak;\ntypedef enum ULineBreak {\n    U_LB_UNKNOWN = 0,\n    U_LB_AMBIGUOUS = 1,\n    U_LB_ALPHABETIC = 2,\n    U_LB_BREAK_BOTH = 3,\n    U_LB_BREAK_AFTER = 4,\n    U_LB_BREAK_BEFORE = 5,\n    U_LB_MANDATORY_BREAK = 6,\n    U_LB_CONTINGENT_BREAK = 7,\n    U_LB_CLOSE_PUNCTUATION = 8,\n    U_LB_COMBINING_MARK = 9,\n    U_LB_CARRIAGE_RETURN = 10,\n    U_LB_EXCLAMATION = 11,\n    U_LB_GLUE = 12,\n    U_LB_HYPHEN = 13,\n    U_LB_IDEOGRAPHIC = 14,\n    U_LB_INSEPARABLE = 15,\n    U_LB_INSEPERABLE = U_LB_INSEPARABLE,\n    U_LB_INFIX_NUMERIC = 16,\n    U_LB_LINE_FEED = 17,\n    U_LB_NONSTARTER = 18,\n    U_LB_NUMERIC = 19,\n    U_LB_OPEN_PUNCTUATION = 20,\n    U_LB_POSTFIX_NUMERIC = 21,\n    U_LB_PREFIX_NUMERIC = 22,\n    U_LB_QUOTATION = 23,\n    U_LB_COMPLEX_CONTEXT = 24,\n    U_LB_SURROGATE = 25,\n    U_LB_SPACE = 26,\n    U_LB_BREAK_SYMBOLS = 27,\n    U_LB_ZWSPACE = 28,\n    U_LB_NEXT_LINE = 29,\n    U_LB_WORD_JOINER = 30,\n    U_LB_H2 = 31,\n    U_LB_H3 = 32,\n    U_LB_JL = 33,\n    U_LB_JT = 34,\n    U_LB_JV = 35,\n    U_LB_CLOSE_PARENTHESIS = 36,\n    U_LB_CONDITIONAL_JAPANESE_STARTER = 37,\n    U_LB_HEBREW_LETTER = 38,\n    U_LB_REGIONAL_INDICATOR = 39,\n    U_LB_E_BASE = 40,\n    U_LB_E_MODIFIER = 41,\n    U_LB_ZWJ = 42,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_LB_COUNT = 43\n#endif\n} ULineBreak;\n\ntypedef enum UNumericType {\n    U_NT_NONE,\n    U_NT_DECIMAL,\n    U_NT_DIGIT,\n    U_NT_NUMERIC,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_NT_COUNT\n#endif\n} UNumericType;\n\ntypedef enum UHangulSyllableType {\n    U_HST_NOT_APPLICABLE,\n    U_HST_LEADING_JAMO,\n    U_HST_VOWEL_JAMO,\n    U_HST_TRAILING_JAMO,\n    U_HST_LV_SYLLABLE,\n    U_HST_LVT_SYLLABLE,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_HST_COUNT\n#endif\n} UHangulSyllableType;\n\ntypedef enum UErrorCode {\n    U_USING_FALLBACK_WARNING = -128,\n    U_ERROR_WARNING_START = -128,\n    U_USING_DEFAULT_WARNING = -127,\n    U_SAFECLONE_ALLOCATED_WARNING = -126,\n    U_STATE_OLD_WARNING = -125,\n    U_STRING_NOT_TERMINATED_WARNING = -124,\n    U_SORT_KEY_TOO_SHORT_WARNING = -123,\n    U_AMBIGUOUS_ALIAS_WARNING = -122,\n    U_DIFFERENT_UCA_VERSION = -121,\n    U_PLUGIN_CHANGED_LEVEL_WARNING = -120,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_ERROR_WARNING_LIMIT,\n#endif\n    U_ZERO_ERROR = 0,\n    U_ILLEGAL_ARGUMENT_ERROR = 1,\n    U_MISSING_RESOURCE_ERROR = 2,\n    U_INVALID_FORMAT_ERROR = 3,\n    U_FILE_ACCESS_ERROR = 4,\n    U_INTERNAL_PROGRAM_ERROR = 5,\n    U_MESSAGE_PARSE_ERROR = 6,\n    U_MEMORY_ALLOCATION_ERROR = 7,\n    U_INDEX_OUTOFBOUNDS_ERROR = 8,\n    U_PARSE_ERROR = 9,\n    U_INVALID_CHAR_FOUND = 10,\n    U_TRUNCATED_CHAR_FOUND = 11,\n    U_ILLEGAL_CHAR_FOUND = 12,\n    U_INVALID_TABLE_FORMAT = 13,\n    U_INVALID_TABLE_FILE = 14,\n    U_BUFFER_OVERFLOW_ERROR = 15,\n    U_UNSUPPORTED_ERROR = 16,\n    U_RESOURCE_TYPE_MISMATCH = 17,\n    U_ILLEGAL_ESCAPE_SEQUENCE = 18,\n    U_UNSUPPORTED_ESCAPE_SEQUENCE = 19,\n    U_NO_SPACE_AVAILABLE = 20,\n    U_CE_NOT_FOUND_ERROR = 21,\n    U_PRIMARY_TOO_LONG_ERROR = 22,\n    U_STATE_TOO_OLD_ERROR = 23,\n    U_TOO_MANY_ALIASES_ERROR = 24,\n    U_ENUM_OUT_OF_SYNC_ERROR = 25,\n    U_INVARIANT_CONVERSION_ERROR = 26,\n    U_INVALID_STATE_ERROR = 27,\n    U_COLLATOR_VERSION_MISMATCH = 28,\n    U_USELESS_COLLATOR_ERROR = 29,\n    U_NO_WRITE_PERMISSION = 30,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_STANDARD_ERROR_LIMIT,\n#endif\n    U_BAD_VARIABLE_DEFINITION = 0x10000,\n    U_PARSE_ERROR_START = 0x10000,\n    U_MALFORMED_RULE,\n    U_MALFORMED_SET,\n    U_MALFORMED_SYMBOL_REFERENCE,\n    U_MALFORMED_UNICODE_ESCAPE,\n    U_MALFORMED_VARIABLE_DEFINITION,\n    U_MALFORMED_VARIABLE_REFERENCE,\n    U_MISMATCHED_SEGMENT_DELIMITERS,\n    U_MISPLACED_ANCHOR_START,\n    U_MISPLACED_CURSOR_OFFSET,\n    U_MISPLACED_QUANTIFIER,\n    U_MISSING_OPERATOR,\n    U_MISSING_SEGMENT_CLOSE,\n    U_MULTIPLE_ANTE_CONTEXTS,\n    U_MULTIPLE_CURSORS,\n    U_MULTIPLE_POST_CONTEXTS,\n    U_TRAILING_BACKSLASH,\n    U_UNDEFINED_SEGMENT_REFERENCE,\n    U_UNDEFINED_VARIABLE,\n    U_UNQUOTED_SPECIAL,\n    U_UNTERMINATED_QUOTE,\n    U_RULE_MASK_ERROR,\n    U_MISPLACED_COMPOUND_FILTER,\n    U_MULTIPLE_COMPOUND_FILTERS,\n    U_INVALID_RBT_SYNTAX,\n    U_INVALID_PROPERTY_PATTERN,\n    U_MALFORMED_PRAGMA,\n    U_UNCLOSED_SEGMENT,\n    U_ILLEGAL_CHAR_IN_SEGMENT,\n    U_VARIABLE_RANGE_EXHAUSTED,\n    U_VARIABLE_RANGE_OVERLAP,\n    U_ILLEGAL_CHARACTER,\n    U_INTERNAL_TRANSLITERATOR_ERROR,\n    U_INVALID_ID,\n    U_INVALID_FUNCTION,\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_PARSE_ERROR_LIMIT,\n#endif\n    U_UNEXPECTED_TOKEN = 0x10100,\n    U_FMT_PARSE_ERROR_START = 0x10100,\n    U_MULTIPLE_DECIMAL_SEPARATORS,\n    U_MULTIPLE_DECIMAL_SEPERATORS = U_MULTIPLE_DECIMAL_SEPARATORS,\n    U_MULTIPLE_EXPONENTIAL_SYMBOLS,\n    U_MALFORMED_EXPONENTIAL_PATTERN,\n    U_MULTIPLE_PERCENT_SYMBOLS,\n    U_MULTIPLE_PERMILL_SYMBOLS,\n    U_MULTIPLE_PAD_SPECIFIERS,\n    U_PATTERN_SYNTAX_ERROR,\n    U_ILLEGAL_PAD_POSITION,\n    U_UNMATCHED_BRACES,\n    U_UNSUPPORTED_PROPERTY,\n    U_UNSUPPORTED_ATTRIBUTE,\n    U_ARGUMENT_TYPE_MISMATCH,\n    U_DUPLICATE_KEYWORD,\n    U_UNDEFINED_KEYWORD,\n    U_DEFAULT_KEYWORD_MISSING,\n    U_DECIMAL_NUMBER_SYNTAX_ERROR,\n    U_FORMAT_INEXACT_ERROR,\n\n#ifndef U_HIDE_DRAFT_API\n    U_NUMBER_ARG_OUTOFBOUNDS_ERROR,\n#endif\n\n#ifndef U_HIDE_DRAFT_API\n    U_NUMBER_SKELETON_SYNTAX_ERROR,\n#endif\n\n#ifndef U_HIDE_DEPRECATED_API\n    U_FMT_PARSE_ERROR_LIMIT = 0x10114,\n#endif\n    U_BRK_INTERNAL_ERROR = 0x10200,\n    U_BRK_ERROR_START = 0x10200,\n    U_BRK_HEX_DIGITS_EXPECTED,\n    U_BRK_SEMICOLON_EXPECTED,\n    U_BRK_RULE_SYNTAX,\n    U_BRK_UNCLOSED_SET,\n    U_BRK_ASSIGN_ERROR,\n    U_BRK_VARIABLE_REDFINITION,\n    U_BRK_MISMATCHED_PAREN,\n    U_BRK_NEW_LINE_IN_QUOTED_STRING,\n    U_BRK_UNDEFINED_VARIABLE,\n    U_BRK_INIT_ERROR,\n    U_BRK_RULE_EMPTY_SET,\n    U_BRK_UNRECOGNIZED_OPTION,\n    U_BRK_MALFORMED_RULE_TAG,\n#ifndef U_HIDE_DEPRECATED_API\n    U_BRK_ERROR_LIMIT,\n#endif\n    U_REGEX_INTERNAL_ERROR = 0x10300,\n    U_REGEX_ERROR_START = 0x10300,\n    U_REGEX_RULE_SYNTAX,\n    U_REGEX_INVALID_STATE,\n    U_REGEX_BAD_ESCAPE_SEQUENCE,\n    U_REGEX_PROPERTY_SYNTAX,\n    U_REGEX_UNIMPLEMENTED,\n    U_REGEX_MISMATCHED_PAREN,\n    U_REGEX_NUMBER_TOO_BIG,\n    U_REGEX_BAD_INTERVAL,\n    U_REGEX_MAX_LT_MIN,\n    U_REGEX_INVALID_BACK_REF,\n    U_REGEX_INVALID_FLAG,\n    U_REGEX_LOOK_BEHIND_LIMIT,\n    U_REGEX_SET_CONTAINS_STRING,\n#ifndef U_HIDE_DEPRECATED_API\n    U_REGEX_OCTAL_TOO_BIG,\n#endif\n    U_REGEX_MISSING_CLOSE_BRACKET = U_REGEX_SET_CONTAINS_STRING + 2,\n    U_REGEX_INVALID_RANGE,\n    U_REGEX_STACK_OVERFLOW,\n    U_REGEX_TIME_OUT,\n    U_REGEX_STOPPED_BY_CALLER,\n    U_REGEX_PATTERN_TOO_BIG,\n    U_REGEX_INVALID_CAPTURE_GROUP_NAME,\n#ifndef U_HIDE_DEPRECATED_API\n    U_REGEX_ERROR_LIMIT = U_REGEX_STOPPED_BY_CALLER + 3,\n#endif\n    U_IDNA_PROHIBITED_ERROR = 0x10400,\n    U_IDNA_ERROR_START = 0x10400,\n    U_IDNA_UNASSIGNED_ERROR,\n    U_IDNA_CHECK_BIDI_ERROR,\n    U_IDNA_STD3_ASCII_RULES_ERROR,\n    U_IDNA_ACE_PREFIX_ERROR,\n    U_IDNA_VERIFICATION_ERROR,\n    U_IDNA_LABEL_TOO_LONG_ERROR,\n    U_IDNA_ZERO_LENGTH_LABEL_ERROR,\n    U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR,\n#ifndef U_HIDE_DEPRECATED_API\n    U_IDNA_ERROR_LIMIT,\n#endif\n\n    U_STRINGPREP_PROHIBITED_ERROR = U_IDNA_PROHIBITED_ERROR,\n    U_STRINGPREP_UNASSIGNED_ERROR = U_IDNA_UNASSIGNED_ERROR,\n    U_STRINGPREP_CHECK_BIDI_ERROR = U_IDNA_CHECK_BIDI_ERROR,\n    U_PLUGIN_ERROR_START = 0x10500,\n    U_PLUGIN_TOO_HIGH = 0x10500,\n    U_PLUGIN_DIDNT_SET_LEVEL,\n#ifndef U_HIDE_DEPRECATED_API\n    U_PLUGIN_ERROR_LIMIT,\n#endif\n#ifndef U_HIDE_DEPRECATED_API\n    U_ERROR_LIMIT = U_PLUGIN_ERROR_LIMIT\n#endif\n} UErrorCode;\n\nstruct BinaryProperty;\n\ntypedef UBool BinaryPropertyContains(const BinaryProperty &prop, UChar32 c, UProperty which);\n\ntypedef struct BinaryProperty {\n    int32_t column;\n    uint32_t mask;\n    BinaryPropertyContains *contains;\n} BinaryProperty;\n\ntypedef struct UBreakIterator UBreakIterator;\n\n#endif"
  },
  {
    "path": "icu/icu.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"Types.h\"\n\n#define U_NO_NUMERIC_VALUE ((double)-123456789.)\n\nUBool u_hasBinaryProperty(UChar32 c, UProperty which);\nUBool u_isUAlphabetic(UChar32 c);\nUBool u_isULowercase(UChar32 c);\nUBool u_isUUppercase(UChar32 c);\nUBool u_isUWhiteSpace(UChar32 c);\nUBool u_islower(UChar32 c);\nUBool u_isupper(UChar32 c);\nUBool u_istitle(UChar32 c);\nUBool u_isdigit(UChar32 c);\nUBool u_isalpha(UChar32 c);\nUBool u_isalnum(UChar32 c);\nUBool u_isxdigit(UChar32 c);\nUBool u_ispunct(UChar32 c);\nUBool u_isgraph(UChar32 c);\nUBool u_isblank(UChar32 c);\nUBool u_isdefined(UChar32 c);\nUBool u_isspace(UChar32 c);\nUBool u_isJavaSpaceChar(UChar32 c);\nUBool u_isWhitespace(UChar32 c);\nUBool u_iscntrl(UChar32 c);\nUBool u_isISOControl(UChar32 c);\nUBool u_isprint(UChar32 c);\nUBool u_isbase(UChar32 c);\nUBool u_isMirrored(UChar32 c);\nUBool u_isIDStart(UChar32 c);\nUBool u_isIDPart(UChar32 c);\nUBool u_isIDIgnorable(UChar32 c);\nUBool u_isJavaIDStart(UChar32 c);\nUBool u_isJavaIDPart(UChar32 c);\n\nUBool uscript_hasScript(UChar32 c, UScriptCode sc);\n\nUBool uset_contains(const USet *set, UChar32 c);\nUBool uset_containsRange(const USet *set, UChar32 start, UChar32 end);\nUBool uset_containsString(const USet *set, const UChar *str, int32_t strLen);\nUBool uset_isFrozen(const USet *set);\n\nUCharDirection u_charDirection(UChar32 c);\n\nUChar32 u_charMirror(UChar32 c);\nUChar32 u_getBidiPairedBracket(UChar32 c);\nUChar32 u_charFromName(UCharNameChoice nameChoice, const char *name, UErrorCode *pErrorCode);\nUChar32 u_tolower(UChar32 c);\nUChar32 u_toupper(UChar32 c);\nUChar32 u_totitle(UChar32 c);\nUChar32 u_foldCase(UChar32 c, uint32_t options);\nUChar32 u_forDigit(int32_t digit, int8_t radix);\n\nint8_t u_charType(UChar32 c);\n\nuint8_t u_getCombiningClass(UChar32 c);\n\n#define U_GET_GC_MASK(c) U_MASK(u_charType(c))\ntypedef UBool UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);\ntypedef UBool UEnumCharNamesFn(void *context, UChar32 code, UCharNameChoice nameChoice, const char *name, int32_t length);\n\nUBlockCode ublock_getCode(UChar32 c);\n\nUScriptCode uscript_getScript(UChar32 codepoint, UErrorCode *err);\n\ndouble u_getNumericValue(UChar32 c);\n\nint32_t u_getIntPropertyValue(UChar32 c, UProperty which);\nint32_t u_getIntPropertyMinValue(UProperty which);\nint32_t u_getIntPropertyMaxValue(UProperty which);\nint32_t u_getISOComment(UChar32 c, char *dest, int32_t destCapacity, UErrorCode *pErrorCode);\nint32_t u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);\nint32_t u_getPropertyValueEnum(UProperty property, const char *alias);\nint32_t u_charDigitValue(UChar32 c);\nint32_t u_charName(UChar32 code, UCharNameChoice nameChoice, char *buffer, int32_t bufferLength, UErrorCode *pErrorCode);\nint32_t uscript_getCode(const char *nameOrAbbrOrLocale, UScriptCode *fillIn, int32_t capacity, UErrorCode *err);\nint32_t u_strlen(const UChar *str);\nint32_t u_strToUpper(UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, const char *locale, UErrorCode *pErrorCode);\nint32_t u_strToLower(UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, const char *locale, UErrorCode *pErrorCode);\nint32_t u_strToTitle(UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, UBreakIterator *titleIter, const char *locale, UErrorCode *pErrorCode);\nint32_t u_digit(UChar32 ch, int8_t radix);\nint32_t u_formatMessage(const char *locale, const UChar *pattern, int32_t patternLength, UChar *result, int32_t resultLength, UErrorCode *status, ...);\nint32_t uset_getItemCount(const USet *set);\nint32_t uset_getItem(const USet *set, int32_t itemIndex, UChar32 *start, UChar32 *end, UChar *str, int32_t strCapacity, UErrorCode *ec);\n\nconst char *u_errorName(UErrorCode code);\nconst char *u_getPropertyName(UProperty property, UPropertyNameChoice nameChoice);\nconst char *u_getPropertyValueName(UProperty property, int32_t value, UPropertyNameChoice nameChoice);\nUProperty u_getPropertyEnum(const char *alias);\n\nchar *u_strToUTF8(char *dest, int32_t destCapacity, int32_t *pDestLength, const UChar *src, int32_t srcLength, UErrorCode *pErrorCode);\n\nvoid u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);\nvoid u_enumCharNames(UChar32 start, UChar32 limit, UEnumCharNamesFn *fn, void *context, UCharNameChoice nameChoice, UErrorCode *pErrorCode);\nvoid u_charAge(UChar32 c, UVersionInfo versionArray);\nvoid u_charsToUChars(const char *cs, UChar *us, int32_t length);\nvoid u_getVersion(UVersionInfo versionArray);\nvoid u_getUnicodeVersion(UVersionInfo versionArray);\nvoid u_versionToString(UVersionInfo versionArray, char *versionString);\n\nvoid uset_set(USet *set, UChar32 start, UChar32 end);\nvoid uset_add(USet *set, UChar32 c);\nvoid uset_addAll(USet *set, const USet *additionalSet);\nvoid uset_addRange(USet *set, UChar32 start, UChar32 end);\nvoid uset_addString(USet *set, const UChar *str, int32_t strLen);\nvoid uset_remove(USet *set, UChar32 c);\nvoid uset_close(USet *set);\nvoid uset_freeze(USet *set);\nvoid uset_applyIntPropertyValue(USet *set, UProperty prop, int32_t value, UErrorCode *ec);\n\nUSet *uset_openEmpty(void);\nUSet *uset_open(UChar32 start, UChar32 end);\nUSet *uset_openPattern(const UChar *pattern, int32_t patternLength, UErrorCode *ec);\nUSet *uset_openPatternOptions(const UChar *pattern, int32_t patternLength, uint32_t options, UErrorCode *ec);\nUSet *uset_clone (const USet *set);\n\nUChar *u_strFromUTF32(UChar *dest, int32_t destCapacity, int32_t *pDestLength, const UChar32 *src, int32_t srcLength, UErrorCode *pErrorCode);\nUChar *u_strFromUTF8(UChar *dest, int32_t destCapacity, int32_t *pDestLength, const char *src, int32_t srcLength, UErrorCode *pErrorCode);\n"
  },
  {
    "path": "objc/Types.h",
    "content": "#ifndef OBJC_H_\n#define OBJC_H_\n\n#import \"../BaseTypes.h\"\n\nstruct objc_object {\n    Class isa;\n};\n\ntypedef void *id;\n\ntypedef struct Protocol {\n    NSObject super;\n} Protocol;\n\n// typedef struct objc_selector *SEL;\ntypedef const char *SEL;\ntypedef struct objc_ivar *Ivar;\ntypedef struct objc_category *Category;\ntypedef struct objc_property *objc_property_t;\ntypedef struct objc_method *Method;\n\ntypedef uintptr_t objc_AssociationPolicy;\n\ntypedef void (*IMP)(void);\n\ntypedef struct objc_property_attribute {\n    const char *name;\n    const char *value;\n} objc_property_attribute_t;\n\ntypedef struct objc_super {\n    id receiver;\n    Class super_class;\n} objc_super;\n\ntypedef enum objc_tag_index_t {\n    OBJC_TAG_NSAtom = 0,\n    OBJC_TAG_1 = 1,\n    OBJC_TAG_NSString = 2,\n    OBJC_TAG_NSNumber = 3,\n    OBJC_TAG_NSIndexPath = 4,\n    OBJC_TAG_NSManagedObjectID = 5,\n    OBJC_TAG_NSDate = 6,\n    OBJC_TAG_RESERVED_7 = 7,\n    OBJC_TAG_Photos_1 = 8,\n    OBJC_TAG_Photos_2 = 9,\n    OBJC_TAG_Photos_3 = 10,\n    OBJC_TAG_Photos_4 = 11,\n    OBJC_TAG_XPC_1 = 12,\n    OBJC_TAG_XPC_2 = 13,\n    OBJC_TAG_XPC_3 = 14,\n    OBJC_TAG_XPC_4 = 15,\n    OBJC_TAG_NSColor = 16,\n    OBJC_TAG_UIColor = 17,\n    OBJC_TAG_CGColor = 18,\n    OBJC_TAG_NSIndexSet = 19,\n    OBJC_TAG_First60BitPayload = 0,\n    OBJC_TAG_Last60BitPayload = 6,\n    OBJC_TAG_First52BitPayload = 8,\n    OBJC_TAG_Last52BitPayload = 263,\n    OBJC_TAG_RESERVED_264 = 264\n} objc_tag_index_t;\n\ntypedef BOOL (*objc_hook_getClass)(const char *name, Class *outClass);\n\ntypedef const char *(*objc_hook_lazyClassNamer)(Class cls);\n\n#endif"
  },
  {
    "path": "objc/objc.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../Kernel/Types.h\"\n#import \"../System/Types.h\"\n#import \"../Foundation/Types.h\"\n#import \"Types.h\"\n\nbool _objc_rootTryRetain(id obj);\nbool _objc_rootReleaseWasZero(id obj);\nbool _objc_rootIsDeallocating(id obj);\n\nBOOL class_addIvar(Class cls, const char *name, size_t size, uint8_t alignment, const char *types);\nBOOL class_addMethod(Class cls, SEL name, IMP imp, const char *types);\nBOOL class_addProperty(Class cls, const char *name, const objc_property_attribute_t *attributes, unsigned int attributeCount);\nBOOL class_addProtocol(Class cls, Protocol *protocol);\nBOOL class_conformsToProtocol(Class cls, Protocol *protocol);\nBOOL class_isMetaClass(Class cls);\nBOOL class_respondsToSelector(Class cls, SEL sel);\nBOOL objc_opt_isKindOfClass(id obj, Class cls);\nBOOL objc_opt_respondsToSelector(id obj, SEL sel);\nBOOL protocol_conformsToProtocol(Protocol *proto, Protocol *other);\nBOOL protocol_isEqual(Protocol *proto, Protocol *other);\nBOOL sel_isEqual(SEL lhs, SEL rhs);\nBOOL sel_isMapped(SEL aSelector);\n\nchar *method_copyArgumentType(Method m, unsigned int index);\nchar *method_copyReturnType(Method m);\nchar *property_copyAttributeValue(objc_property_t property, const char *attributeName);\n\nconst char **objc_copyClassNamesForImageHeader(const struct mach_header *mh, unsigned int *outCount);\n\nClass _objc_getClassForTag(objc_tag_index_t tag);\nClass _objc_getFreedObjectClass(void);\nClass class_getSuperclass(Class cls);\nClass class_setSuperclass(Class cls, Class newSuper);\nClass objc_allocateClassPair(Class superclass, const char *name, size_t extraBytes);\nClass objc_duplicateClass(Class original, const char *name, size_t extraBytes);\nClass objc_getFutureClass(const char *name);\nClass objc_getRequiredClass(const char *name);\nClass objc_initializeClassPair(Class superclass, const char *name, Class cls, Class metacls);\nClass objc_lookUpClass(const char *name);\nClass objc_opt_class(id obj);\nClass object_getClass(id obj);\nClass object_setClass(id obj, Class cls);\n\nconst char *_protocol_getMethodTypeEncoding(Protocol *, SEL, BOOL isRequiredMethod, BOOL isInstanceMethod);\nconst char **objc_copyImageNames(unsigned int *outCount);\nconst char *class_getImageName(Class cls);\nconst char *class_getName(Class cls);\nconst char *ivar_getName(Ivar v);\nconst char *ivar_getTypeEncoding(Ivar v);\nconst char *method_getTypeEncoding(Method m);\nconst char *object_getClassName(id obj);\nconst char *property_getAttributes(objc_property_t property);\nconst char *property_getName(objc_property_t property);\nconst char *protocol_getName(Protocol *proto);\nconst char *sel_getName(SEL sel);\n\nconst uint8_t *class_getIvarLayout(Class cls);\n\n#ifdef __EA64__\nlong double objc_msgSend_fpret(id self, SEL op, ...);\n#else\ndouble objc_msgSend_fpret(id self, SEL op, ...);\n#endif\n\nid _objc_rootAlloc(Class cls);\nid _objc_rootAllocWithZone(Class cls, malloc_zone_t *zone);\nid _objc_rootAutorelease(id object);\nid _objc_rootRetain(id object);\nid class_createInstance(Class cls, size_t extraBytes);\nid method_invoke(id receiver, Method m, ...);\nid objc_alloc_init(Class);\nid objc_alloc(Class);\nid objc_allocWithZone(Class cls);\nid objc_autorelease(id value);\nid objc_autoreleaseReturnValue(id value);\nid objc_claimAutoreleasedReturnValue(id value);\nid objc_begin_catch(void *exc_buf);\nid objc_constructInstance(Class cls, void *bytes);\nid objc_getAssociatedObject(id object, const void *key);\nid objc_getClass(const char *name);\nid objc_getMetaClass(const char *name);\nid objc_getProperty(id self, SEL _cmd, ptrdiff_t offset, BOOL atomic);\nid objc_initWeak(id *object, id value);\nid objc_loadWeak(id *object);\nid objc_loadWeakRetained(id *object);\nid objc_msgSendSuper(struct objc_super *super, SEL op, ...);\nid objc_msgSendSuper2(struct objc_super *super, SEL op, ...);\nid objc_opt_new(Class cls);\nid objc_opt_self(id self);\nid objc_retain(id value);\nid objc_retainAutorelease(id value);\nid objc_retainAutoreleasedReturnValue(id value);\nid objc_retainAutoreleaseReturnValue(id value);\nid objc_retainBlock(id value);\nid objc_storeWeak(id *object, id value);\nid objc_storeWeakOrNil(id *location, id obj);\nid objc_unsafeClaimAutoreleasedReturnValue(id value);\nid object_dispose(id obj);\nid object_getIvar(id obj, Ivar ivar);\n\nIMP class_getMethodImplementation(Class cls, SEL name);\nIMP class_replaceMethod(Class cls, SEL name, IMP imp, const char *types);\nIMP imp_implementationWithBlock(id block);\nIMP method_getImplementation(Method m);\nIMP method_setImplementation(Method m, IMP imp);\nIMP object_getMethodImplementation(id obj, SEL name);\n\nint objc_getClassList(Class *buffer, int bufferCount);\nint objc_sync_enter(id obj);\nint objc_sync_exit(id obj);\n\nuintptr_t _objc_rootHash(id obj);\nuintptr_t _objc_rootRetainCount(id obj);\n\nIvar *class_copyIvarList(Class cls, unsigned int *outCount);\nIvar class_getClassVariable(Class cls, const char *name);\nIvar class_getInstanceVariable(Class cls, const char *name);\nIvar object_getInstanceVariable(id obj, const char *name, void **outValue);\nIvar object_setInstanceVariable(id obj, const char *name, void *value);\n\nMethod *class_copyMethodList(Class cls, unsigned int *outCount);\nMethod class_getClassMethod(Class cls, SEL name);\nMethod class_getInstanceMethod(Class cls, SEL name);\n\nobjc_property_attribute_t *property_copyAttributeList(objc_property_t property, unsigned int *outCount);\n\nobjc_property_t *class_copyPropertyList(Class cls, unsigned int *outCount);\nobjc_property_t *protocol_copyPropertyList(Protocol *proto, unsigned int *outCount);\nobjc_property_t class_getProperty(Class cls, const char *name);\n\nProtocol **class_copyProtocolList(Class cls, unsigned int *outCount);\nProtocol *objc_allocateProtocol(const char *name);\nProtocol *objc_getProtocol(const char *name);\n\nptrdiff_t ivar_getOffset(Ivar v);\n\nSEL method_getName(Method m);\nSEL sel_getUid(const char *str);\nSEL sel_registerName(const char *str);\n\nsize_t class_getInstanceSize(Class cls);\n\nstruct objc_method_description *method_getDescription(Method m);\nstruct objc_method_description *protocol_copyMethodDescriptionList(Protocol *proto, BOOL isRequiredMethod, BOOL isInstanceMethod, unsigned int *outCount);\nstruct objc_method_description protocol_getMethodDescription(Protocol *proto, SEL aSel, BOOL isRequiredMethod, BOOL isInstanceMethod);\n\nunsigned int method_getNumberOfArguments(Method m);\n\nvoid _objc_autoreleasePoolPrint();\nvoid _objc_registerTaggedPointerClass(objc_tag_index_t tag, Class cls);\nvoid _objc_rootDealloc(id obj);\nvoid _objc_rootRelease(id obj);\nvoid _objc_setBadAllocHandler(id (*newHandler)(Class isa));\n\nvoid *objc_autoreleasePoolPush(void);\nvoid *objc_destructInstance(id obj);\nvoid *object_getIndexedIvars(id obj);\n\nvoid class_replaceProperty(Class cls, const char *name, const objc_property_attribute_t *attributes, unsigned int attributeCount);\nvoid method_exchangeImplementations(Method m1, Method m2);\nvoid method_getArgumentType(Method m, unsigned int index, char *dst, size_t dst_len);\nvoid method_getReturnType(Method m, char *dst, size_t dst_len);\nvoid method_invoke_stret(id receiver, Method m, ...);\nvoid objc_autoreleasePoolPop(void *pool);\nvoid objc_copyStruct(void *dest, const void *src, ptrdiff_t size, BOOL atomic, BOOL hasStrong);\nvoid objc_copyWeak(id *dest, id *src);\nvoid objc_destroyWeak(id *object);\nvoid objc_disposeClassPair(Class cls);\nvoid objc_end_catch(void);\nvoid objc_enumerationMutation(id obj);\nvoid objc_exception_rethrow(void);\nvoid objc_exception_throw(id exception);\nvoid objc_moveWeak(id *dest, id *src);\nvoid objc_msgSend_stret(void *val, id self, SEL op, ...);\nvoid objc_msgSendSuper2_stret(struct objc_super *super, SEL op,...);\nvoid objc_registerClassPair(Class cls);\nvoid objc_registerProtocol(Protocol *proto);\nvoid objc_release(id value);\nvoid objc_removeAssociatedObjects(id object);\nvoid objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy);\nvoid objc_setHook_getClass(objc_hook_getClass newValue, objc_hook_getClass *outOldValue);\nvoid objc_setHook_lazyClassNamer(objc_hook_lazyClassNamer newValue, objc_hook_lazyClassNamer *outOldValue);\nvoid objc_setProperty_atomic_copy(id self, SEL _cmd, id newValue, ptrdiff_t offset);\nvoid objc_setProperty_atomic(id self, SEL _cmd, id newValue, ptrdiff_t offset);\nvoid objc_setProperty_nonatomic_copy(id self, SEL _cmd, id newValue, ptrdiff_t offset);\nvoid objc_setProperty_nonatomic(id self, SEL _cmd, id newValue, ptrdiff_t offset);\nvoid objc_setProperty(id self, SEL _cmd, ptrdiff_t offset, id newValue, BOOL atomic, BOOL shouldCopy);\nvoid objc_storeStrong(id *object, id value);\nvoid objc_terminate(void);\nvoid object_setIvar(id obj, Ivar ivar, id value);\nvoid protocol_addMethodDescription(Protocol *proto, SEL name, const char *types, BOOL isRequiredMethod, BOOL isInstanceMethod);\nvoid protocol_addProperty(Protocol *proto, const char *name, const objc_property_attribute_t *attributes, unsigned int attributeCount, BOOL isRequiredProperty, BOOL isInstanceProperty);\nvoid protocol_addProtocol(Protocol *proto, Protocol *addition);\n\nvoid _objc_rootFinalize(id obj);\n\nNSZone *_objc_rootZone(id obj);\n"
  },
  {
    "path": "os/Types.h",
    "content": "#ifndef OS_H_\n#define OS_H_\n\n#import \"../BaseTypes.h\"\n#import \"../Foundation/Types.h\"\n\n#ifdef __EA64__\n#define __OS_WORKGROUP_ATTR_SIZE__ 60\n#define __OS_WORKGROUP_INTERVAL_DATA_SIZE__ 56\n#define __OS_WORKGROUP_JOIN_TOKEN_SIZE__ 36\n#else\n#define __OS_WORKGROUP_ATTR_SIZE__ 60\n#define __OS_WORKGROUP_INTERVAL_DATA_SIZE__ 56\n#define __OS_WORKGROUP_JOIN_TOKEN_SIZE__ 28\n#endif\n\ntypedef struct _os_object_s *_os_object_t;\n\ntypedef struct os_log_s *os_log_t;\ntypedef struct os_activity_s *os_activity_t;\ntypedef struct os_transaction_s *os_transaction_t;\ntypedef struct os_activity_scope_state_s *os_activity_scope_state_t;\n\nstruct os_workgroup_attr_opaque_s {\n    uint32_t sig;\n    char opaque[__OS_WORKGROUP_ATTR_SIZE__];\n};\n\nstruct os_workgroup_interval_data_opaque_s {\n    uint32_t sig;\n    char opaque[__OS_WORKGROUP_INTERVAL_DATA_SIZE__];\n};\n\nstruct os_workgroup_join_token_opaque_s {\n    uint32_t sig;\n    char opaque[__OS_WORKGROUP_JOIN_TOKEN_SIZE__];\n};\n\ntypedef struct os_workgroup_interval_data_opaque_s os_workgroup_interval_data_s;\ntypedef struct os_workgroup_interval_data_opaque_s *os_workgroup_interval_data_t;\ntypedef struct os_workgroup_attr_opaque_s os_workgroup_attr_s;\ntypedef struct os_workgroup_attr_opaque_s *os_workgroup_attr_t;\ntypedef struct os_workgroup_max_parallel_threads_attr_s os_workgroup_mpt_attr_s;\ntypedef struct os_workgroup_max_parallel_threads_attr_s *os_workgroup_mpt_attr_t;\ntypedef struct os_workgroup_join_token_opaque_s os_workgroup_join_token_s;\ntypedef struct os_workgroup_join_token_opaque_s *os_workgroup_join_token_t;\n\ntypedef struct os_unfair_lock_s {\n    uint32_t _os_unfair_lock_opaque;\n} os_unfair_lock, *os_unfair_lock_t;\n\ntypedef struct os_unfair_recursive_lock_s {\n    os_unfair_lock ourl_lock;\n    uint32_t ourl_count;\n} os_unfair_recursive_lock, *os_unfair_recursive_lock_t;\n\ntypedef NSObject *os_workgroup_t;\ntypedef os_workgroup_t *os_workgroup_interval_t;\n\nPS_ENUM(uint8_t, os_log_type_t) {\n    OS_LOG_TYPE_DEFAULT = 0x00,\n    OS_LOG_TYPE_INFO = 0x01,\n    OS_LOG_TYPE_DEBUG = 0x02,\n    OS_LOG_TYPE_ERROR = 0x10,\n    OS_LOG_TYPE_FAULT = 0x11,\n};\n\nPS_ENUM(uint32_t, os_activity_flag_t) {\n    OS_ACTIVITY_FLAG_DEFAULT = 0,\n    OS_ACTIVITY_FLAG_DETACHED = 0x1,\n    OS_ACTIVITY_FLAG_IF_NONE_PRESENT = 0x2\n};\n\nPS_ENUM(uint32_t, os_unfair_lock_options_t) {\n    OS_UNFAIR_LOCK_NONE = 0x00000000,\n    OS_UNFAIR_LOCK_DATA_SYNCHRONIZATION = 0x00010000,\n    OS_UNFAIR_LOCK_ADAPTIVE_SPIN = 0x0004000\n};\n\nPS_ENUM(uint32_t, os_state_reason_t) {\n    OS_STATE_REASON_GENERAL          = 0x0001,\n    OS_STATE_REASON_NETWORKING       = 0x0002,\n    OS_STATE_REASON_CELLULAR         = 0x0004,\n    OS_STATE_REASON_AUTHENTICATION   = 0x0008,\n};\n\nPS_ENUM(uint32_t, os_state_api_t) {\n    OS_STATE_API_ERROR = 1,\n    OS_STATE_API_FAULT = 2,\n    OS_STATE_API_REQUEST = 3,\n};\n\nPS_ENUM(uint32_t, os_state_data_type_t) {\n    OS_STATE_DATA_SERIALIZED_NSCF_OBJECT = 1,\n    OS_STATE_DATA_PROTOCOL_BUFFER = 2,\n    OS_STATE_DATA_CUSTOM = 3,\n};\n\ntypedef struct os_state_hints_s {\n    uint32_t osh_version;\n    const char *osh_requestor;\n    os_state_api_t osh_api;\n    os_state_reason_t osh_reason;\n} *os_state_hints_t;\n\ntypedef struct os_state_data_decoder_s {\n    char osdd_library[64];\n    char osdd_type[64];\n} *os_state_data_decoder_t;\n\nunion os_state_unk_stru_1 {\n    int32 var0 : 32;\n    unsigned int var1;\n};\n\ntypedef struct os_state_data_s {\n    os_state_data_type_t osd_type;\n    union {\n        uint64_t osd_size:32;\n        uint32_t osd_data_size;\n    } __attribute__((packed, aligned(4)));\n    struct os_state_data_decoder_s osd_decoder;\n    char osd_title[64];\n    uint8_t osd_data[];\n} *os_state_data_t;\n\ntypedef uint64_t os_state_handle_t;\ntypedef os_state_data_t (*os_state_block_t)(os_state_hints_t hints);\n\ntypedef uint32_t os_workgroup_index;\n\ntypedef uint64_t os_activity_id_t;\ntypedef uint64_t os_signpost_id_t;\n\ntypedef long os_once_t;\ntypedef os_once_t os_alloc_token_t;\n\nPS_ENUM(uint8_t, os_signpost_type_t) {\n    OS_SIGNPOST_EVENT = 0x00,\n    OS_SIGNPOST_INTERVAL_BEGIN = 0x01,\n    OS_SIGNPOST_INTERVAL_END = 0x02,\n};\n\nstruct _os_alloc_once_s {\n    os_alloc_token_t once;\n    void *ptr;\n};\n\ntypedef void (*os_function_t)(void *);\ntypedef void (*os_block_t)(void);\n\n#define OS_LOCK_TYPE_STRUCT(type) const struct _os_lock_type_##type##_s\n#define OS_LOCK_TYPE_REF(type) _os_lock_type_##type\n#define OS_LOCK(type) os_lock_##type##_s\n#define OS_LOCK_STRUCT(type) struct OS_LOCK(type)\n\n#define OS_LOCK_DECL(type, size)                                                                                                                                                                                                                         \\\n    typedef OS_LOCK_STRUCT(type) {                                                                                                                                                                                                                       \\\n        OS_LOCK_TYPE_STRUCT(type) *const osl_type;                                                                                                                                                                                                       \\\n        uintptr_t _osl_##type##_opaque[size - 1];                                                                                                                                                                                                        \\\n    }                                                                                                                                                                                                                                                    \\\n    OS_LOCK(type)\n\n#define OS_LOCK_T_MEMBER(type) OS_LOCK_STRUCT(type) * _osl_##type\n\ntypedef union os_lock {\n    OS_LOCK_T_MEMBER(base);\n    OS_LOCK_T_MEMBER(unfair);\n    OS_LOCK_T_MEMBER(nospin);\n    OS_LOCK_T_MEMBER(spin);\n    OS_LOCK_T_MEMBER(handoff);\n    OS_LOCK_T_MEMBER(eliding);\n    OS_LOCK_T_MEMBER(transactional);\n} os_lock_t;\n\ntypedef struct os_log_pack_s {\n    uint64_t olp_continuous_time;\n    struct timespec olp_wall_time;\n    const void *olp_mh;\n    const void *olp_pc;\n    const char *olp_format;\n    uint8_t olp_data[0];\n} os_log_pack_s, *os_log_pack_t;\n\ntypedef struct _os_nospin_lock_s *_os_nospin_lock_t;\n\ntypedef bool (*_os_log_NSCF_callback)(const void *obj, char *string_value, size_t string_sz, bool *publicData);\n\nextern struct os_log_s _os_log_default;\n\n#endif"
  },
  {
    "path": "os/os.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../Darwin/Types.h\"\n#import \"../CoreFoundation/Types.h\"\n#import \"Types.h\"\n\nbool _os_feature_enabled_impl(const char *domain, const char *feature);\nbool _os_nospin_lock_trylock(_os_nospin_lock_t lock);\nbool os_log_shim_enabled(void *);\nbool os_log_type_enabled(os_log_t oslog, os_log_type_t type);\nbool os_signpost_enabled(os_log_t log);\nbool os_unfair_lock_trylock(os_unfair_lock_t lock);\nbool os_unfair_recursive_lock_trylock(os_unfair_recursive_lock_t lock);\nbool os_unfair_recursive_lock_tryunlock4objc(os_unfair_recursive_lock_t lock);\nbool os_variant_allows_internal_security_policies(const char *subsystem);\nbool os_variant_check(const char *subsystem, const char *variant);\nbool os_variant_has_factory_content(const char *subsystem);\nbool os_variant_has_internal_content(const char *subsystem);\nbool os_variant_has_internal_diagnostics(const char *subsystem);\nbool os_variant_has_internal_ui(const char *subsystem);\nbool os_variant_is_darwinos(const char *subsystem);\nbool os_workgroup_testcancel(os_workgroup_t wg);\nbool os_parse_boot_arg_int(const char *which, int64_t *where);\n\nint os_workgroup_copy_port(os_workgroup_t wg, mach_port_t *mach_port_out);\nint os_workgroup_interval_finish(os_workgroup_interval_t wg, os_workgroup_interval_data_t data);\nint os_workgroup_interval_start(os_workgroup_interval_t wg, uint64_t start, uint64_t deadline, os_workgroup_interval_data_t data);\nint os_workgroup_interval_update(os_workgroup_interval_t wg, uint64_t deadline, os_workgroup_interval_data_t data);\nint os_workgroup_join_self(os_workgroup_t wg, os_workgroup_join_token_t token_out, os_workgroup_index *id_out);\nint os_workgroup_max_parallel_threads(os_workgroup_t wh, os_workgroup_mpt_attr_t attr);\n\nuint64_t os_simple_hash(const void *buff, size_t len);\nuint64_t os_simple_hash_string(const char *string);\nuint64_t os_simple_hash_string_with_seed(const char *string, uint64_t seed);\n\nchar *_os_assert_log(uint64_t code);\n\nos_activity_id_t os_activity_get_identifier(os_activity_t activity, os_activity_id_t *parent_id);\n\nos_activity_t _os_activity_create(void *dso, const char *description, os_activity_t activity, os_activity_flag_t flags);\nos_activity_t _os_activity_start(void *dso, const char *description, os_activity_flag_t flags);\n\nos_log_t _os_log_create(void *dso, const char *subsystem, const char *category);\nos_log_t os_log_create(const char *subsystem, const char *category);\n\nos_signpost_id_t os_signpost_id_generate(os_log_t log);\nos_signpost_id_t os_signpost_id_make_with_pointer(os_log_t log, const void *ptr);\n\nos_state_handle_t os_state_add_handler(dispatch_queue_t, os_state_block_t);\n\nos_transaction_t os_transaction_create(const char *description);\n\nos_workgroup_t os_workgroup_create_with_port(const char *name, mach_port_t mach_port);\nos_workgroup_t os_workgroup_create_with_workgroup(const char *name, os_workgroup_t wg);\n\n_os_object_t _os_object_alloc(const void *cls, size_t size);\n\nsize_t os_proc_available_memory(void);\nsize_t _os_log_pack_size(size_t os_log_format_buffer_size);\n\nuint8_t *_os_log_pack_fill(os_log_pack_t pack, size_t size, int saved_errno, const void *dso, const char *fmt);\n\nvoid _os_assumes_log(kern_return_t);\nvoid _os_crash(const char *message);\nvoid _os_log_debug_impl(void *dso, os_log_t log, os_log_type_t type, const char *format, uint8_t *buf, uint32_t size);\nvoid _os_log_error_impl(void *dso, os_log_t log, os_log_type_t type, const char *format, uint8_t *buf, unsigned int size);\nvoid _os_log_fault_impl(void *dso, os_log_t log, os_log_type_t type, const char *format, uint8_t *buf, unsigned int size);\nvoid _os_log_impl(void *dso, os_log_t log, os_log_type_t type, const char *format, uint8_t *buf, unsigned int size);\nvoid _os_log_internal(void *dso, os_log_t log, os_log_type_t type, const char *message, ...);\nvoid _os_log_set_nscf_formatter(_os_log_NSCF_callback function);\nvoid _os_nospin_lock_lock(_os_nospin_lock_t lock);\nvoid _os_nospin_lock_unlock(_os_nospin_lock_t lock);\nvoid _os_once(os_once_t *val, void *ctxt, os_function_t func);\nvoid _os_signpost_emit_with_name_impl(void *dso, os_log_t log, os_signpost_type_t type, os_signpost_id_t spid, const char *name, const char *format, uint8_t *buf, uint32_t size);\nvoid _os_signpost_emit_unreliably_with_name_impl(void *dso, os_log_t log, os_signpost_type_t type, os_signpost_id_t spid, const char *name, const char *format, uint8_t *buf, uint32_t size);\n\nvoid *_os_alloc_once(struct _os_alloc_once_s *slot, size_t sz, os_function_t init);\nvoid *os_retain(void *object);\nvoid *os_workgroup_get_context(os_workgroup_t wg);\nvoid *os_workgroup_set_context(os_workgroup_t wg, void *context);\n\nvoid os_activity_apply_f(os_activity_t activity, void *context, os_function_t function);\nvoid os_activity_apply(os_activity_t activity, os_block_t block);\nvoid os_activity_end(os_activity_t activity);\nvoid os_activity_scope_enter(os_activity_t activity, os_activity_scope_state_t state);\nvoid os_activity_scope_leave(os_activity_scope_state_t state);\nvoid os_lock_lock(os_lock_t lock);\nvoid os_lock_unlock(os_lock_t lock);\nvoid os_log_pack_send(os_log_pack_t pack, os_log_t log, os_log_type_t type);\nvoid os_log_shim_with_CFString(void *, os_log_type_t, const uint8_t, CFStringRef, va_list args, void *ret_addr);\nvoid os_log_with_args(os_log_t oslog, os_log_type_t type, const char *format, va_list args, void *ret_addr);\nvoid os_release(void *object);\nvoid os_state_remove_handler(os_state_handle_t);\nvoid os_unfair_lock_assert_not_owner(os_unfair_lock_t lock);\nvoid os_unfair_lock_assert_owner(os_unfair_lock_t lock);\nvoid os_unfair_lock_lock_with_options(os_unfair_lock_t lock, os_unfair_lock_options_t options);\nvoid os_unfair_lock_lock(os_unfair_lock_t lock);\nvoid os_unfair_lock_unlock(os_unfair_lock_t lock);\nvoid os_unfair_recursive_lock_lock_with_options(os_unfair_recursive_lock_t lock, os_unfair_lock_options_t options);\nvoid os_unfair_recursive_lock_unlock(os_unfair_recursive_lock_t lock);\nvoid os_workgroup_cancel(os_workgroup_t wg);\nvoid os_workgroup_leave_self(os_workgroup_t wg, os_workgroup_join_token_t token);\n"
  },
  {
    "path": "pthread/Types.h",
    "content": "#ifndef DARWIN_H_\n#define DARWIN_H_\n\n#import \"../BaseTypes.h\"\n\n#ifdef __EA64__\n#define __PTHREAD_SIZE__ 8176\n#define __PTHREAD_ATTR_SIZE__ 56\n#define __PTHREAD_COND_SIZE__ 40\n#else\n#define __PTHREAD_SIZE__ 4088\n#define __PTHREAD_ATTR_SIZE__ 36\n#define __PTHREAD_COND_SIZE__ 24\n#endif\n\nstruct __darwin_pthread_handler_rec {\n    void (*__routine)(void *);\n    void *__arg;\n    struct __darwin_pthread_handler_rec *__next;\n};\n\nstruct _opaque_pthread_attr_t {\n    long __sig;\n    char __opaque[__PTHREAD_ATTR_SIZE__];\n};\n\nstruct _opaque_pthread_t {\n    long __sig;\n    struct __darwin_pthread_handler_rec *__cleanup_stack;\n    char __opaque[__PTHREAD_SIZE__];\n};\n\nstruct _opaque_pthread_mutex_t {\n    int64 __sig;\n    char __opaque[56];\n};\n\ntypedef _opaque_pthread_mutex_t __darwin_pthread_mutex_t;\ntypedef __darwin_pthread_mutex_t pthread_mutex_t;\n\nstruct _opaque_pthread_cond_t {\n    long __sig;\n    char __opaque[__PTHREAD_COND_SIZE__];\n};\n\ntypedef struct _opaque_pthread_cond_t __darwin_pthread_cond_t;\ntypedef __darwin_pthread_cond_t pthread_cond_t;\n\ntypedef struct pthread_mutexattr_t {\n    int pshared;\n    int kind;\n    int protocol;\n    int robustness;\n} pthread_mutexattr_t;\n\ntypedef struct _opaque_pthread_t *__darwin_pthread_t;\ntypedef struct _opaque_pthread_attr_t __darwin_pthread_attr_t;\n\ntypedef __darwin_pthread_t pthread_t;\ntypedef __darwin_pthread_attr_t pthread_attr_t;\n\n#endif"
  },
  {
    "path": "pthread/pthread.h",
    "content": "#import \"../Kernel/Types.h\"\n#import \"../Darwin/Types.h\"\n#import \"Types.h\"\n\n\nint pthread_main_np(void);\nint pthread_attr_set_qos_class_np(pthread_attr_t *__attr, qos_class_t __qos_class, int __relative_priority);\nint pthread_cond_timedwait_relative_np(pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime);\nint pthread_getname_np(pthread_t thread, char *name, size_t len);\nint pthread_is_threaded_np(void);\nint pthread_key_init_np(int, void (*)(void *));\nint pthread_mutexattr_setpolicy_np(pthread_mutexattr_t *, int);\nint pthread_set_qos_class_self_np(qos_class_t __qos_class, int __relative_priority);\nint pthread_set_fixedpriority_self(void);\nint pthread_setname_np(pthread_t thread, const char *name);\n\nmach_port_t pthread_mach_thread_np(pthread_t thread);\n\npthread_t pthread_from_mach_thread_np(mach_port_t kernel_thread);\npthread_t pthread_main_thread_np(void);\n\nsize_t pthread_get_stacksize_np(pthread_t t);\n\nvoid *pthread_get_stackaddr_np(pthread_t t);\n"
  },
  {
    "path": "sandbox/Types.h",
    "content": "#ifndef SANDBOX_H_\n#define SANDBOX_H_\n\n#import \"../BaseTypes.h\"\n\nenum sandbox_filter_type {\n    SANDBOX_FILTER_NONE,\n    SANDBOX_FILTER_PATH,\n    SANDBOX_FILTER_GLOBAL_NAME,\n    SANDBOX_FILTER_LOCAL_NAME,\n    SANDBOX_FILTER_APPLEEVENT_DESTINATION,\n    SANDBOX_FILTER_RIGHT_NAME,\n    SANDBOX_FILTER_PREFERENCE_DOMAIN,\n    SANDBOX_FILTER_KEXT_BUNDLE_ID,\n    SANDBOX_FILTER_INFO_TYPE,\n    SANDBOX_FILTER_NOTIFICATION,\n    SANDBOX_FILTER_DESCRIPTOR,\n    SANDBOX_FILTER_FILE_ID,\n    SANDBOX_FILTER_XPC_SERVICE_NAME,\n    SANDBOX_FILTER_IOKIT_CONNECTION,\n    SANDBOX_FILTER_SYSCALL_NUMBER,\n} sandbox_filter_type;\n\ntypedef struct sandbox_profile {\n    char *builtin;\n    unsigned char *data;\n    size_t size;\n} *sandbox_profile_t;\n\ntypedef struct sandbox_params {\n    const char **params;\n    size_t size;\n    size_t available;\n} *sandbox_params_t;\n\nextern const char *const APP_SANDBOX_READ;\nextern const char *const APP_SANDBOX_READ_WRITE;\nextern const enum sandbox_filter_type SANDBOX_CHECK_NO_REPORT;\nextern const enum sandbox_filter_type SANDBOX_CHECK_CANONICAL;\nextern const enum sandbox_filter_type SANDBOX_CHECK_NOFOLLOW;\nextern const enum sandbox_filter_type SANDBOX_CHECK_NO_APPROVAL;\n\n#endif"
  },
  {
    "path": "sandbox/sandbox.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../Kernel/Types.h\"\n#import \"Types.h\"\n\nchar *sandbox_extension_issue_file(const char *extension_class, const char *path, uint32_t flags);\nchar *sandbox_extension_issue_file_to_process(const char *extension_class, const char *path, uint32_t flags, audit_token_t);\nchar *sandbox_extension_issue_mach(const char *ext, const char *name, int reserved, uint32_t flags);\nchar *sandbox_extension_issue_generic(const char *extension_class, uint32_t flags);\n\nconst char *_amkrtemp(const char *);\n\nint sandbox_check(pid_t, const char *operation, enum sandbox_filter_type, ...);\nint sandbox_check_by_audit_token(audit_token_t, const char *operation, enum sandbox_filter_type, ...);\nint sandbox_container_path_for_audit_token(char *buffer, size_t bufsize);\nint sandbox_container_path_for_pid(pid_t, char *buffer, size_t bufsize);\nint sandbox_extension_release(int64_t extension_handle);\nint sandbox_init_with_parameters(const char *profile, uint64_t flags, const char *const parameters[], char **errorbuf);\nint sandbox_apply(sandbox_profile_t);\nint sandbox_set_param(sandbox_params_t, const char *key, const char *value);\n\nint64_t sandbox_extension_consume(const char *extension_token);\n\nvoid sandbox_free_params(sandbox_params_t);\nvoid sandbox_free_profile(sandbox_profile_t);\n\nsandbox_params_t sandbox_create_params(void);\n\nsandbox_profile_t sandbox_compile_file(const char *path, sandbox_params_t, char **error);\nsandbox_profile_t sandbox_compile_string(const char *data, sandbox_params_t, char **error);"
  },
  {
    "path": "sqlite/Types.h",
    "content": "#ifndef MY_SQLITE_H_\n#define MY_SQLITE_H_\n\ntypedef long long int sqlite_int64;\ntypedef unsigned long long int sqlite_uint64;\ntypedef sqlite_int64 sqlite3_int64;\ntypedef sqlite_uint64 sqlite3_uint64;\n\ntypedef struct sqlite3 sqlite3;\ntypedef struct sqlite3_stmt sqlite3_stmt;\n\n#endif"
  },
  {
    "path": "sqlite/sqlite.h",
    "content": "#import \"Types.h\"\n#import \"../BaseTypes.h\"\n\nint sqlite3_prepare_v3(sqlite3 *db, const char *zSql, int nByte, unsigned int prepFlags, sqlite3_stmt **ppStmt, const char **pzTail);\nint sqlite3_wal_checkpoint_v2(sqlite3 *db, const char *zDb, int eMode, int *pnLog, int *pnCkpt);\nint sqlite3_bind_blob64(sqlite3_stmt *, int, const void *, sqlite3_uint64, void(*)(void *));\nint sqlite3_close_v2(sqlite3 *);\n\nconst char *sqlite3_errstr(int);\n\nchar *sqlite3_expanded_sql(sqlite3_stmt *pStmt);"
  },
  {
    "path": "xpc/Types.h",
    "content": "#ifndef XPC_H_\n#define XPC_H_\n\n#import \"../Foundation/Types.h\"\n\ntypedef NSObject *xpc_object_t;\ntypedef NSObject *OS_xpc_mach_send;\n\ntypedef const struct _xpc_type_s *xpc_type_t;\ntypedef struct _xpc_pipe_s *xpc_pipe_t;\n\ntypedef xpc_object_t xpc_connection_t;\ntypedef xpc_object_t xpc_bundle_t;\ntypedef xpc_object_t xpc_endpoint_t;\ntypedef xpc_object_t xpc_activity_t;\n\ntypedef void (*xpc_handler_t)(xpc_object_t object);\ntypedef void (*xpc_finalizer_t)(void *value);\ntypedef void (*xpc_activity_handler_t)(xpc_activity_t activity);\ntypedef bool (*xpc_dictionary_applier_t)(const char *key, xpc_object_t value);\ntypedef bool (*xpc_array_applier_t)(size_t index, xpc_object_t value);\n\ntypedef long xpc_activity_state_t;\n\nextern const struct _xpc_type_s _xpc_type_array;\nextern const struct _xpc_type_s _xpc_type_bool;\nextern const struct _xpc_type_s _xpc_type_connection;\nextern const struct _xpc_type_s _xpc_type_dictionary;\nextern const struct _xpc_type_s _xpc_type_endpoint;\nextern const struct _xpc_type_s _xpc_type_error;\nextern const struct _xpc_type_s _xpc_type_string;\nextern const struct _xpc_type_s _xpc_type_null;\n\n#endif"
  },
  {
    "path": "xpc/xpc.h",
    "content": "#import \"../BaseTypes.h\"\n#import \"../Kernel/Types.h\"\n#import \"../Darwin/Types.h\"\n#import \"Types.h\"\n\nxpc_type_t xpc_get_type(xpc_object_t object);\n\nxpc_connection_t xpc_connection_create(const char *name, dispatch_queue_t targetq);\nxpc_connection_t xpc_connection_create_from_endpoint(xpc_endpoint_t endpoint);\nxpc_connection_t xpc_connection_create_mach_service(const char *name, dispatch_queue_t targetq, uint64_t flags);\nxpc_connection_t xpc_dictionary_get_remote_connection(xpc_object_t xdict);\nxpc_connection_t xpc_array_create_connection(xpc_object_t xarray, size_t index);\n\nxpc_endpoint_t xpc_endpoint_create(xpc_connection_t connection);\n\nxpc_object_t xpc_copy(xpc_object_t object);\nxpc_object_t xpc_copy_entitlement_for_self(const char *);\nxpc_object_t xpc_copy_entitlement_for_token(const char *, audit_token_t *);\nxpc_object_t xpc_create_from_plist(void *data, size_t size);\nxpc_object_t xpc_data_create(const void *bytes, size_t length);\nxpc_object_t xpc_data_create_with_dispatch_data(dispatch_data_t ddata);\nxpc_object_t xpc_connection_send_message_with_reply_sync(xpc_connection_t connection, xpc_object_t message);\nxpc_object_t xpc_connection_copy_entitlement_value(xpc_connection_t, const char *entitlement);\nxpc_object_t xpc_dictionary_create(const char *const *keys, xpc_object_t const *values, size_t count);\nxpc_object_t xpc_dictionary_create_reply(xpc_object_t original);\nxpc_object_t xpc_dictionary_get_value(xpc_object_t xdict, const char *key);\nxpc_object_t xpc_dictionary_get_dictionary(xpc_object_t xdict, const char *key);\nxpc_object_t xpc_dictionary_get_array(xpc_object_t xdict, const char *key);\nxpc_object_t xpc_array_create(const xpc_object_t *objects, size_t count);\nxpc_object_t xpc_array_get_value(xpc_object_t xarray, size_t index);\nxpc_object_t xpc_array_get_dictionary(xpc_object_t xarray, size_t index);\nxpc_object_t xpc_array_get_array(xpc_object_t xarray, size_t index);\nxpc_object_t xpc_string_create(const char *string);\nxpc_object_t xpc_string_create_with_format(const char *fmt, ...);\nxpc_object_t xpc_string_create_with_format_and_arguments(const char *fmt, va_list ap);\nxpc_object_t xpc_null_create(void);\nxpc_object_t xpc_fd_create(int fd);\nxpc_object_t xpc_date_create(int64_t interval);\nxpc_object_t xpc_bool_create(bool value);\nxpc_object_t xpc_double_create(double value);\nxpc_object_t xpc_int64_create(int64_t value);\nxpc_object_t xpc_uint64_create(uint64_t value);\nxpc_object_t xpc_uuid_create(const unsigned char *uuid);\nxpc_object_t xpc_shmem_create(void *region, size_t length);\nxpc_object_t xpc_copy_bootstrap(void);\nxpc_object_t xpc_retain(xpc_object_t);\nxpc_object_t xpc_activity_copy_criteria(xpc_activity_t activity);\nxpc_object_t xpc_bundle_get_info_dictionary(xpc_bundle_t bundle);\n\nxpc_bundle_t xpc_bundle_create(const char *path, int64 __unk);\n\nxpc_activity_state_t xpc_activity_get_state(xpc_activity_t activity);\n\nOS_xpc_mach_send *xpc_mach_send_create(mach_port_t);\n\nClass xpc_get_class4NSXPC(xpc_type_t type);\n\npid_t xpc_connection_get_pid(xpc_connection_t connection);\n\ngid_t xpc_connection_get_egid(xpc_connection_t connection);\n\nuid_t xpc_connection_get_euid(xpc_connection_t connection);\n\nbool xpc_equal(xpc_object_t object1, xpc_object_t object2);\nbool xpc_dictionary_apply(xpc_object_t xdict, xpc_dictionary_applier_t applier);\nbool xpc_dictionary_get_bool(xpc_object_t xdict, const char *key);\nbool xpc_array_apply(xpc_object_t xarray, xpc_array_applier_t applier);\nbool xpc_array_get_bool(xpc_object_t xarray, size_t index);\nbool xpc_bool_get_value(xpc_object_t xbool);\nbool xpc_activity_set_state(xpc_activity_t activity, xpc_activity_state_t state);\nbool xpc_activity_should_defer(xpc_activity_t activity);\n\ndouble xpc_dictionary_get_double(xpc_object_t xdict, const char *key);\ndouble xpc_array_get_double(xpc_object_t xarray, size_t index);\ndouble xpc_double_get_value(xpc_object_t xdouble);\n\nint64_t xpc_dictionary_get_date(xpc_object_t xdict, const char *key);\nint64_t xpc_dictionary_get_int64(xpc_object_t xdict, const char *key);\nint64_t xpc_array_get_date(xpc_object_t xarray, size_t index);\nint64_t xpc_array_get_int64(xpc_object_t xarray, size_t index);\nint64_t xpc_int64_get_value(xpc_object_t xint);\nint64_t xpc_date_get_value(xpc_object_t xdate);\n\nuint64_t xpc_dictionary_get_uint64(xpc_object_t xdict, const char *key);\nuint64_t xpc_array_get_uint64(xpc_object_t xarray, size_t index);\nuint64_t xpc_uint64_get_value(xpc_object_t xuint);\n\nsize_t xpc_dictionary_get_count(xpc_object_t xdict);\nsize_t xpc_array_get_count(xpc_object_t xarray);\nsize_t xpc_data_get_length(xpc_object_t xdata);\nsize_t xpc_string_get_length(xpc_object_t xstring);\nsize_t xpc_shmem_map(xpc_object_t xshmem, void **region);\n\nint xpc_pipe_routine(xpc_pipe_t pipe, xpc_object_t request, xpc_object_t* reply);\nint xpc_dictionary_dup_fd(xpc_object_t xdict, const char *key);\nint xpc_array_dup_fd(xpc_object_t xarray, size_t index);\nint xpc_fd_dup(xpc_object_t xfd);\n\nint _xpc_runtime_is_app_sandboxed();\n\nmach_port_t xpc_dictionary_copy_mach_send(xpc_object_t, const char *);\nmach_port_t xpc_mach_send_copy_right(OS_xpc_mach_send *);\n\npointer_t xpc_array_get_pointer(xpc_object_t xarray, size_t index);\n\nvoid xpc_release(xpc_object_t object);\nvoid xpc_connection_activate(xpc_connection_t connection);\nvoid xpc_connection_resume(xpc_connection_t connection);\nvoid xpc_connection_suspend(xpc_connection_t connection);\nvoid xpc_connection_cancel(xpc_connection_t connection);\nvoid xpc_connection_send_barrier(xpc_connection_t connection, dispatch_block_t barrier);\nvoid xpc_connection_send_message(xpc_connection_t connection, xpc_object_t message);\nvoid xpc_connection_send_message_with_reply(xpc_connection_t connection, xpc_object_t message, dispatch_queue_t replyq, xpc_handler_t handler);\nvoid xpc_connection_send_notification(xpc_connection_t connection, xpc_object_t notification);\nvoid xpc_connection_set_context(xpc_connection_t connection, void *context);\nvoid xpc_connection_set_event_handler(xpc_connection_t connection, xpc_handler_t handler);\nvoid xpc_connection_set_legacy(xpc_connection_t connection);\nvoid xpc_connection_set_target_queue(xpc_connection_t connection, dispatch_queue_t targetq);\nvoid xpc_connection_set_target_uid(xpc_connection_t connection, uid_t uid);\nvoid xpc_connection_set_bootstrap(xpc_connection_t, xpc_object_t bootstrap);\nvoid xpc_connection_set_instance(xpc_connection_t, uuid_t);\nvoid xpc_connection_set_oneshot_instance(xpc_connection_t, uuid_t instance);\nvoid xpc_connection_set_finalizer_f(xpc_connection_t connection, xpc_finalizer_t finalizer);\nvoid xpc_connection_set_privileged(xpc_connection_t connection);\nvoid xpc_connection_get_audit_token(xpc_connection_t, audit_token_t *);\nvoid xpc_connection_kill(xpc_connection_t, int);\n\nvoid xpc_array_append_value(xpc_object_t xarray, xpc_object_t value);\nvoid xpc_array_set_double(xpc_object_t xarray, size_t index, double value);\nvoid xpc_array_set_int64(xpc_object_t xarray, size_t index, int64_t value);\nvoid xpc_array_set_uint64(xpc_object_t xarray, size_t index, uint64_t value);\nvoid xpc_array_set_uuid(xpc_object_t xarray, size_t index, const uuid_t uuid);\nvoid xpc_array_set_fd(xpc_object_t xarray, size_t index, int fd);\nvoid xpc_array_set_string(xpc_object_t xarray, size_t index, const char *string);\nvoid xpc_array_set_data(xpc_object_t xarray, size_t index, const void *bytes, size_t length);\nvoid xpc_array_set_date(xpc_object_t xarray, size_t index, int64_t value);\nvoid xpc_array_set_value(xpc_object_t xarray, size_t index, xpc_object_t value);\nvoid xpc_array_set_pointer(xpc_object_t xarray, size_t index, pointer_t value);\n\nvoid xpc_dictionary_send_reply(xpc_object_t xdict);\nvoid xpc_dictionary_set_mach_send(xpc_object_t, const char *, mach_port_t);\nvoid xpc_dictionary_set_uuid(xpc_object_t xdict, const char *key, const uuid_t uuid);\nvoid xpc_dictionary_set_connection(xpc_object_t xdict, const char *key,\txpc_connection_t connection);\nvoid xpc_dictionary_set_bool(xpc_object_t xdict, const char *key, bool value);\nvoid xpc_dictionary_set_double(xpc_object_t xdict, const char *key, double value);\nvoid xpc_dictionary_set_string(xpc_object_t xdict, const char *key, const char *string);\nvoid xpc_dictionary_set_int64(xpc_object_t xdict, const char *key, int64_t value);\nvoid xpc_dictionary_set_uint64(xpc_object_t xdict, const char *key, uint64_t value);\nvoid xpc_dictionary_set_data(xpc_object_t xdict, const char *key, const void *bytes, size_t length);\nvoid xpc_dictionary_set_date(xpc_object_t xdict, const char *key, int64_t value);\nvoid xpc_dictionary_set_value(xpc_object_t xdict, const char *key, xpc_object_t value);\nvoid xpc_dictionary_set_fd(xpc_object_t xdict, const char *key, int fd);\nvoid xpc_dictionary_set_mach_recv(xpc_object_t xdict, const char *, mach_port_t);\nvoid xpc_dictionary_set_mach_send(xpc_object_t xdict, const char *, mach_port_t);\nvoid xpc_dictionary_get_audit_token(xpc_object_t xdict, audit_token_t *);\n\nvoid xpc_set_event(const char *stream, const char *key, xpc_object_t event);\nvoid xpc_set_event_with_flags(const char *stream, const char *key, xpc_object_t event, uint64_t flags);\n\nvoid xpc_transaction_begin(void);\nvoid xpc_transaction_end(void);\nvoid xpc_transaction_exit_clean(void);\nvoid xpc_track_activity(void);\n\nvoid xpc_activity_register(const char *identifier, xpc_object_t criteria, xpc_activity_handler_t handler);\nvoid xpc_activity_unregister(const char *identifier);\nvoid xpc_activity_set_criteria(xpc_activity_t activity, xpc_object_t criteria);\n\nvoid xpc_handle_service(const char *service_name, void (*)(xpc_connection_t), int);\n\nconst uint8_t *xpc_uuid_get_bytes(xpc_object_t xuuid);\nconst void *xpc_data_get_bytes_ptr(xpc_object_t xdata);\nconst void *xpc_dictionary_get_data(xpc_object_t xdict, const char *key, size_t *length);\nconst void *xpc_array_get_data(xpc_object_t xarray, size_t index, size_t *length);\nvoid *xpc_connection_get_context(xpc_connection_t connection);\n\nchar *xpc_activity_copy_identifier(xpc_activity_t activity);\nchar *xpc_copy_description(xpc_object_t object);\nchar *xpc_copy_short_description(xpc_object_t object);\nconst char *xpc_connection_copy_bundle_id(xpc_object_t object);\nconst char *xpc_connection_get_name(xpc_connection_t connection);\nconst char *xpc_dictionary_get_string(xpc_object_t xdict, const char *key);\nconst char *xpc_array_get_string(xpc_object_t xarray, size_t index);\nconst char *xpc_string_get_string_ptr(xpc_object_t);\nconst char *xpc_bundle_get_executable_path(xpc_object_t bundle);\nconst char *xpc_strerror(int error);\n"
  }
]