···11/*
22- * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
22+ * Copyright (c) 2000-2016 Apple Computer, Inc. All rights reserved.
33 *
44 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
55 *
···301301 vm_size_t size;
302302};
303303304304-#if VM32_SUPPORT
304304+#ifdef VM32_SUPPORT
305305struct vm32_read_entry {
306306 vm32_address_t address;
307307 vm32_size_t size;
···313313314314typedef struct mach_vm_read_entry mach_vm_read_entry_t[VM_MAP_ENTRY_MAX];
315315typedef struct vm_read_entry vm_read_entry_t[VM_MAP_ENTRY_MAX];
316316-#if VM32_SUPPORT
316316+#ifdef VM32_SUPPORT
317317typedef struct vm32_read_entry vm32_read_entry_t[VM_MAP_ENTRY_MAX];
318318#endif
319319
+2-2
platform-include/sys/fcntl.h
···376376377377/* file descriptor flags (F_GETFD, F_SETFD) */
378378#define FD_CLOEXEC 1 /* close-on-exec flag */
379379-#if PRIVATE
379379+#ifdef PRIVATE
380380#define FD_CLOFORK 2 /* close-on-fork flag */
381381#endif
382382···394394#define F_OFD_LOCK 0x400 /* Use "OFD" semantics for lock */
395395#endif
396396397397-#if PRIVATE
397397+#ifdef PRIVATE
398398/*
399399 * ISOCHRONOUS attempts to sustain a minimum platform-dependent throughput
400400 * for the duration of the I/O delivered to the driver.
+1-1
platform-include/xpc/availability.h
···110110#define XPC_SIMULATOR_AVAILABILITY_STRING(version) \
111111 "Use of this interface on the iOS Simulator requires that its minimum supported OS be OS X v" version " or later."
112112113113-#if __XPC_BUILDING_XPC__
113113+#ifdef __XPC_BUILDING_XPC__
114114#define __XPC_IOS_SIMULATOR_AVAILABLE_STARTING__MAC_10_7
115115#define __XPC_IOS_SIMULATOR_AVAILABLE_STARTING__MAC_10_8
116116#define __XPC_IOS_SIMULATOR_AVAILABLE_STARTING__MAC_10_9
···1818#include <unistd.h>
1919#include <fcntl.h>
20202121+#ifndef __XPC_INDIRECT__
2222+#define __XPC_INDIRECT__
2323+#endif // __XPC_INDIRECT__
2424+2525+#include <xpc/base.h>
2626+2727+XPC_ASSUME_NONNULL_BEGIN
2128__BEGIN_DECLS
22292330#ifndef __OSX_AVAILABLE_STARTING
2431#define __OSX_AVAILABLE_STARTING(x, y)
2532#endif // __OSX_AVAILABLE_STARTING
2626-2727-#ifndef __XPC_INDIRECT__
2828-#define __XPC_INDIRECT__
2929-#endif // __XPC_INDIRECT__
3030-3131-#include <xpc/base.h>
32333334#define XPC_API_VERSION 20121012
3435···105106__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
106107XPC_EXPORT
107108XPC_TYPE(_xpc_type_connection);
108108-//XPC_DECL(xpc_connection);
109109-typedef xpc_object_t xpc_connection_t;
109109+XPC_DECL(xpc_connection);
110110111111/*!
112112 * @typedef xpc_connection_handler_t
···320320XPC_EXPORT
321321const char *const _xpc_event_key_name;
322322323323+XPC_ASSUME_NONNULL_END
323324#ifndef __XPC_BUILDING_XPC__
324325#include <xpc/endpoint.h>
325326#include <xpc/debug.h>
···329330#endif // __BLOCKS__
330331#undef __XPC_INDIRECT__
331332#include <launch.h>
332332-#endif // __XPC_BUILDING_XPC__
333333+#endif // __XPC_BUILDING_XPC__
334334+XPC_ASSUME_NONNULL_BEGIN
333335334336#pragma mark XPC Object Protocol
335337/*!
···423425 */
424426__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
425427XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT XPC_RETURNS_RETAINED
426426-xpc_object_t
428428+xpc_object_t _Nullable
427429xpc_copy(xpc_object_t object);
428430429431/*!
···732734__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
733735XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
734736xpc_object_t
735735-xpc_data_create(const void *bytes, size_t length);
737737+xpc_data_create(const void * _Nullable bytes, size_t length);
736738737739/*!
738740 * @function xpc_data_create_with_dispatch_data
···791793 */
792794__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
793795XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
794794-const void *
796796+const void * _Nullable
795797xpc_data_get_bytes_ptr(xpc_object_t xdata);
796798797799/*!
···922924 */
923925__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
924926XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
925925-const char *
927927+const char * _Nullable
926928xpc_string_get_string_ptr(xpc_object_t xstring);
927929928930#pragma mark UUID
···940942 * A new UUID object.
941943 */
942944__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
943943-XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
945945+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
944946xpc_object_t
945945-xpc_uuid_create(const uuid_t uuid);
947947+xpc_uuid_create(const uuid_t XPC_NONNULL_ARRAY uuid);
946948947949/*!
948950 * @function xpc_uuid_get_bytes
···960962 */
961963__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
962964XPC_EXPORT XPC_NONNULL1
963963-const uint8_t *
965965+const uint8_t * _Nullable
964966xpc_uuid_get_bytes(xpc_object_t xuuid);
965967966968#pragma mark File Descriptors
···994996 */
995997__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
996998XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
997997-xpc_object_t
999999+xpc_object_t _Nullable
9981000xpc_fd_create(int fd);
999100110001002/*!
···10931095__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
10941096XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
10951097size_t
10961096-xpc_shmem_map(xpc_object_t xshmem, void **region);
10981098+xpc_shmem_map(xpc_object_t xshmem, void * _Nullable * _Nonnull region);
1097109910981100#pragma mark Array
10991101/*!
···11101112 * A Boolean indicating whether iteration should continue.
11111113 */
11121114#ifdef __BLOCKS__
11131113-typedef bool (^xpc_array_applier_t)(size_t index, xpc_object_t value);
11151115+typedef bool (^xpc_array_applier_t)(size_t index, xpc_object_t _Nonnull value);
11141116#endif // __BLOCKS__
1115111711161118/*!
···11411143__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
11421144XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
11431145xpc_object_t
11441144-xpc_array_create(const xpc_object_t *objects, size_t count);
11461146+xpc_array_create(const xpc_object_t _Nonnull * _Nullable objects, size_t count);
1145114711461148/*!
11471149 * @function xpc_array_set_value
···12521254__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
12531255XPC_EXPORT XPC_NONNULL_ALL
12541256bool
12551255-xpc_array_apply(xpc_object_t xarray, xpc_array_applier_t applier);
12571257+xpc_array_apply(xpc_object_t xarray, XPC_NOESCAPE xpc_array_applier_t applier);
12561258#endif // __BLOCKS__
1257125912581260#pragma mark Array Primitive Setters
···14641466 * {@link xpc_array_get_value()}.
14651467 */
14661468__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
14671467-XPC_EXPORT XPC_NONNULL1
14691469+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3
14681470void
14691469-xpc_array_set_uuid(xpc_object_t xarray, size_t index, const uuid_t uuid);
14711471+xpc_array_set_uuid(xpc_object_t xarray, size_t index,
14721472+ const uuid_t XPC_NONNULL_ARRAY uuid);
1470147314711474/*!
14721475 * @function xpc_array_set_fd
···15141517 * {@link xpc_array_get_value()}. The connection is NOT retained by the array.
15151518 */
15161519__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
15171517-XPC_EXPORT XPC_NONNULL1
15201520+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3
15181521void
15191522xpc_array_set_connection(xpc_object_t xarray, size_t index,
15201523 xpc_connection_t connection);
···16591662 */
16601663__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
16611664XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
16621662-const void *
16631663-xpc_array_get_data(xpc_object_t xarray, size_t index, size_t *length);
16651665+const void * _Nullable
16661666+xpc_array_get_data(xpc_object_t xarray, size_t index,
16671667+ size_t * _Nullable length);
1664166816651669/*!
16661670 * @function xpc_array_get_string
···16821686 */
16831687__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
16841688XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
16851685-const char *
16891689+const char * _Nullable
16861690xpc_array_get_string(xpc_object_t xarray, size_t index);
1687169116881692/*!
···17061710 */
17071711__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
17081712XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
17091709-const uint8_t *
17131713+const uint8_t * _Nullable
17101714xpc_array_get_uuid(xpc_object_t xarray, size_t index);
1711171517121716/*!
···17581762 */
17591763__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
17601764XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
17611761-xpc_connection_t
17651765+xpc_connection_t _Nullable
17621766xpc_array_create_connection(xpc_object_t xarray, size_t index);
1763176717681768+/*!
17691769+ * @function xpc_array_get_dictionary
17701770+ *
17711771+ * @abstract
17721772+ * Returns the dictionary at the specified index in the array.
17731773+ *
17741774+ * @param xarray
17751775+ * The array object which is to be examined.
17761776+ *
17771777+ * @param index
17781778+ * The index of the value to obtain. This value must lie within the range of
17791779+ * indexes as specified in xpc_array_set_value().
17801780+ *
17811781+ * @result
17821782+ * The object at the specified index within the array or NULL if the given
17831783+ * object was not an XPC array or if the the value at the specified index was
17841784+ * not a dictionary.
17851785+ *
17861786+ * @discussion
17871787+ * This method does not grant the caller a reference to the underlying object,
17881788+ * and thus the caller is not responsible for releasing the object.
17891789+ */
17901790+__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0)
17911791+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
17921792+xpc_object_t _Nullable
17931793+xpc_array_get_dictionary(xpc_object_t self, size_t index);
17941794+17951795+/*!
17961796+ * @function xpc_array_get_array
17971797+ *
17981798+ * @abstract
17991799+ * Returns the array at the specified index in the array.
18001800+ *
18011801+ * @param xarray
18021802+ * The array object which is to be examined.
18031803+ *
18041804+ * @param index
18051805+ * The index of the value to obtain. This value must lie within the range of
18061806+ * indexes as specified in xpc_array_set_value().
18071807+ *
18081808+ * @result
18091809+ * The object at the specified index within the array or NULL if the given
18101810+ * object was not an XPC array or if the the value at the specified index was
18111811+ * not an array.
18121812+ *
18131813+ * @discussion
18141814+ * This method does not grant the caller a reference to the underlying object,
18151815+ * and thus the caller is not responsible for releasing the object.
18161816+ */
18171817+__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0)
18181818+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
18191819+xpc_object_t _Nullable
18201820+xpc_array_get_array(xpc_object_t self, size_t index);
18211821+17641822#pragma mark Dictionary
17651823/*!
17661824 * @typedef xpc_dictionary_applier_t
···17761834 * A Boolean indicating whether iteration should continue.
17771835 */
17781836#ifdef __BLOCKS__
17791779-typedef bool (^xpc_dictionary_applier_t)(const char *key, xpc_object_t value);
18371837+typedef bool (^xpc_dictionary_applier_t)(const char * _Nonnull key,
18381838+ xpc_object_t _Nonnull value);
17801839#endif // __BLOCKS__
1781184017821841/*!
···17891848 * @param keys
17901849 * An array of C-strings that are to be the keys for the values to be inserted.
17911850 * Each element of this array is copied into the dictionary's internal storage.
17921792- * If any element of this array is NULL, the behavior is undefined.
18511851+ * Elements of this array may NOT be NULL.
17931852 *
17941853 * @param values
17951854 * A C-array that is parallel to the array of keys, consisting of objects that
···18121871__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
18131872XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
18141873xpc_object_t
18151815-xpc_dictionary_create(const char * const *keys, const xpc_object_t *values,
18161816- size_t count);
18741874+xpc_dictionary_create(const char * _Nonnull const * _Nullable keys,
18751875+ const xpc_object_t _Nullable * _Nullable values, size_t count);
1817187618181877/*!
18191878 * @function xpc_dictionary_create_reply
···18371896 */
18381897__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
18391898XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL_ALL
18401840-xpc_object_t
18991899+xpc_object_t _Nullable
18411900xpc_dictionary_create_reply(xpc_object_t original);
1842190118431902/*!
···18621921XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
18631922void
18641923xpc_dictionary_set_value(xpc_object_t xdict, const char *key,
18651865- xpc_object_t value);
19241924+ xpc_object_t _Nullable value);
1866192518671926/*!
18681927 * @function xpc_dictionary_get_value
···18871946 */
18881947__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
18891948XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 XPC_NONNULL2
18901890-xpc_object_t
19491949+xpc_object_t _Nullable
18911950xpc_dictionary_get_value(xpc_object_t xdict, const char *key);
1892195118931952/*!
···19351994__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
19361995XPC_EXPORT XPC_NONNULL_ALL
19371996bool
19381938-xpc_dictionary_apply(xpc_object_t xdict, xpc_dictionary_applier_t applier);
19971997+xpc_dictionary_apply(xpc_object_t xdict,
19981998+ XPC_NOESCAPE xpc_dictionary_applier_t applier);
19391999#endif // __BLOCKS__
1940200019412001/*!
···19552015 */
19562016__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
19572017XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
19581958-xpc_connection_t
20182018+xpc_connection_t _Nullable
19592019xpc_dictionary_get_remote_connection(xpc_object_t xdict);
1960202019612021#pragma mark Dictionary Primitive Setters
···20902150 * The length of the data.
20912151 */
20922152__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
20932093-XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
21532153+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3
20942154void
20952155xpc_dictionary_set_data(xpc_object_t xdict, const char *key, const void *bytes,
20962156 size_t length);
···21132173 * {@link xpc_dictionary_get_value()}.
21142174 */
21152175__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
21162116-XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
21762176+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3
21172177void
21182178xpc_dictionary_set_string(xpc_object_t xdict, const char *key,
21192179 const char *string);
···21362196 * with {@link xpc_dictionary_get_value()}.
21372197 */
21382198__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
21392139-XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
21992199+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3
21402200void
21412141-xpc_dictionary_set_uuid(xpc_object_t xdict, const char *key, const uuid_t uuid);
22012201+xpc_dictionary_set_uuid(xpc_object_t xdict, const char *key,
22022202+ const uuid_t XPC_NONNULL_ARRAY uuid);
2142220321432204/*!
21442205 * @function xpc_dictionary_set_fd
···21812242 * the dictionary.
21822243 */
21832244__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
21842184-XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
22452245+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3
21852246void
21862247xpc_dictionary_set_connection(xpc_object_t xdict, const char *key,
21872248 xpc_connection_t connection);
···23202381 */
23212382__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
23222383XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
23232323-const void *
23242324-xpc_dictionary_get_data(xpc_object_t xdict, const char *key, size_t *length);
23842384+const void * _Nullable
23852385+xpc_dictionary_get_data(xpc_object_t xdict, const char *key,
23862386+ size_t * _Nullable length);
2325238723262388/*!
23272389 * @function xpc_dictionary_get_string
···23422404 */
23432405__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
23442406XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
23452345-const char *
24072407+const char * _Nullable
23462408xpc_dictionary_get_string(xpc_object_t xdict, const char *key);
2347240923482410/*!
···23642426 */
23652427__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
23662428XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 XPC_NONNULL2
23672367-const uint8_t *
24292429+const uint8_t * _Nullable
23682430xpc_dictionary_get_uuid(xpc_object_t xdict, const char *key);
2369243123702432/*!
···24132475 */
24142476__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
24152477XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL_ALL
24162416-xpc_connection_t
24782478+xpc_connection_t _Nullable
24172479xpc_dictionary_create_connection(xpc_object_t xdict, const char *key);
2418248024812481+/*!
24822482+ * @function xpc_dictionary_get_dictionary
24832483+ *
24842484+ * @abstract
24852485+ * Returns the dictionary value for the specified key.
24862486+ *
24872487+ * @param xdict
24882488+ * The dictionary object which is to be examined.
24892489+ *
24902490+ * @param key
24912491+ * The key whose value is to be obtained.
24922492+ *
24932493+ * @result
24942494+ * The object for the specified key within the dictionary. NULL if there is no
24952495+ * value associated with the specified key, if the given object was not an
24962496+ * XPC dictionary, or if the object for the specified key is not a dictionary.
24972497+ *
24982498+ * @discussion
24992499+ * This method does not grant the caller a reference to the underlying object,
25002500+ * and thus the caller is not responsible for releasing the object.
25012501+ */
25022502+__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0)
25032503+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
25042504+xpc_object_t _Nullable
25052505+xpc_dictionary_get_dictionary(xpc_object_t self, const char *key);
25062506+25072507+/*!
25082508+ * @function xpc_dictionary_get_array
25092509+ *
25102510+ * @abstract
25112511+ * Returns the array value for the specified key.
25122512+ *
25132513+ * @param xdict
25142514+ * The dictionary object which is to be examined.
25152515+ *
25162516+ * @param key
25172517+ * The key whose value is to be obtained.
25182518+ *
25192519+ * @result
25202520+ * The object for the specified key within the dictionary. NULL if there is no
25212521+ * value associated with the specified key, if the given object was not an
25222522+ * XPC dictionary, or if the object for the specified key is not an array.
25232523+ *
25242524+ * @discussion
25252525+ * This method does not grant the caller a reference to the underlying object,
25262526+ * and thus the caller is not responsible for releasing the object.
25272527+ */
25282528+__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0)
25292529+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
25302530+xpc_object_t _Nullable
25312531+xpc_dictionary_get_array(xpc_object_t self, const char *key);
25322532+24192533#pragma mark Runtime
24202534/*!
24212535 * @function xpc_main
···24672581 * and xpc_transaction_end() to inform the XPC runtime about activity that
24682582 * occurs outside of this common pattern.
24692583 *
24702470- * When the XPC runtime has determined that the service should exit, the event
24712471- * handlers for all active peer connections will receive
25842584+ * On macOS, when the XPC runtime has determined that the service should exit,
25852585+ * the event handlers for all active peer connections will receive
24722586 * {@link XPC_ERROR_TERMINATION_IMMINENT} as an indication that they should
24732587 * unwind their existing transactions. After this error is delivered to a
24742474- * connection's event handler, no more messages will be delivered to the
25882588+ * connection's event handler, no more messages will be delivered to the
24752589 * connection.
24762590 */
24772591__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
···25232637__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
25242638XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3
25252639void
25262526-xpc_set_event_stream_handler(const char *stream, dispatch_queue_t targetq,
25272527- xpc_handler_t handler);
26402640+xpc_set_event_stream_handler(const char *stream,
26412641+ dispatch_queue_t _Nullable targetq, xpc_handler_t handler);
25282642#endif // __BLOCKS__
2529264325302644__END_DECLS
26452645+XPC_ASSUME_NONNULL_END
2531264625322647#endif // __XPC_H__