Skip to content

UIKit tvOS xcode9 beta1

Vincent Dondain edited this page Aug 29, 2017 · 8 revisions

#UIKit.framework ##Vincent

diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSAttributedString.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSAttributedString.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSAttributedString.h	2016-09-23 21:43:02.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSAttributedString.h	2017-05-30 01:57:43.000000000 -0400
@@ -2,42 +2,45 @@
 //  NSAttributedString.h
 //  UIKit
 //
-//  Copyright (c) 2011-2015, Apple Inc. All rights reserved.
+//  Copyright (c) 2011-2017, Apple Inc. All rights reserved.
 //
 
 #import <Foundation/NSAttributedString.h>
+#import <Foundation/NSItemProvider.h>
 #import <UIKit/UIKitDefines.h>
+
+@class NSAttributedString;
 @class NSFileWrapper;
 @class NSURL;
 
 NS_ASSUME_NONNULL_BEGIN
 /************************ Attributes ************************/
 
-// Predefined character attributes for text. If the key is not in the dictionary, then use the default values as described below.
-UIKIT_EXTERN NSString * const NSFontAttributeName NS_AVAILABLE(10_0, 6_0);                // UIFont, default Helvetica(Neue) 12
-UIKIT_EXTERN NSString * const NSParagraphStyleAttributeName NS_AVAILABLE(10_0, 6_0);      // NSParagraphStyle, default defaultParagraphStyle
-UIKIT_EXTERN NSString * const NSForegroundColorAttributeName NS_AVAILABLE(10_0, 6_0);     // UIColor, default blackColor
-UIKIT_EXTERN NSString * const NSBackgroundColorAttributeName NS_AVAILABLE(10_0, 6_0);     // UIColor, default nil: no background
-UIKIT_EXTERN NSString * const NSLigatureAttributeName NS_AVAILABLE(10_0, 6_0);            // NSNumber containing integer, default 1: default ligatures, 0: no ligatures
-UIKIT_EXTERN NSString * const NSKernAttributeName NS_AVAILABLE(10_0, 6_0);                // NSNumber containing floating point value, in points; amount to modify default kerning. 0 means kerning is disabled.
-UIKIT_EXTERN NSString * const NSStrikethroughStyleAttributeName NS_AVAILABLE(10_0, 6_0);  // NSNumber containing integer, default 0: no strikethrough
-UIKIT_EXTERN NSString * const NSUnderlineStyleAttributeName NS_AVAILABLE(10_0, 6_0);      // NSNumber containing integer, default 0: no underline
-UIKIT_EXTERN NSString * const NSStrokeColorAttributeName NS_AVAILABLE(10_0, 6_0);         // UIColor, default nil: same as foreground color
-UIKIT_EXTERN NSString * const NSStrokeWidthAttributeName NS_AVAILABLE(10_0, 6_0);         // NSNumber containing floating point value, in percent of font point size, default 0: no stroke; positive for stroke alone, negative for stroke and fill (a typical value for outlined text would be 3.0)
-UIKIT_EXTERN NSString * const NSShadowAttributeName NS_AVAILABLE(10_0, 6_0);              // NSShadow, default nil: no shadow
-UIKIT_EXTERN NSString *const NSTextEffectAttributeName NS_AVAILABLE(10_10, 7_0);          // NSString, default nil: no text effect
-
-UIKIT_EXTERN NSString * const NSAttachmentAttributeName NS_AVAILABLE(10_0, 7_0);          // NSTextAttachment, default nil
-UIKIT_EXTERN NSString * const NSLinkAttributeName NS_AVAILABLE(10_0, 7_0);                // NSURL (preferred) or NSString
-UIKIT_EXTERN NSString * const NSBaselineOffsetAttributeName NS_AVAILABLE(10_0, 7_0);      // NSNumber containing floating point value, in points; offset from baseline, default 0
-UIKIT_EXTERN NSString * const NSUnderlineColorAttributeName NS_AVAILABLE(10_0, 7_0);      // UIColor, default nil: same as foreground color
-UIKIT_EXTERN NSString * const NSStrikethroughColorAttributeName NS_AVAILABLE(10_0, 7_0);  // UIColor, default nil: same as foreground color
-UIKIT_EXTERN NSString * const NSObliquenessAttributeName NS_AVAILABLE(10_0, 7_0);         // NSNumber containing floating point value; skew to be applied to glyphs, default 0: no skew
-UIKIT_EXTERN NSString * const NSExpansionAttributeName NS_AVAILABLE(10_0, 7_0);           // NSNumber containing floating point value; log of expansion factor to be applied to glyphs, default 0: no expansion
+// Predefined character attributes for text. If the key is not present in the dictionary, it indicates the default value described below.
+UIKIT_EXTERN NSAttributedStringKey const NSFontAttributeName NS_AVAILABLE(10_0, 6_0);                // UIFont, default Helvetica(Neue) 12
+UIKIT_EXTERN NSAttributedStringKey const NSParagraphStyleAttributeName NS_AVAILABLE(10_0, 6_0);      // NSParagraphStyle, default defaultParagraphStyle
+UIKIT_EXTERN NSAttributedStringKey const NSForegroundColorAttributeName NS_AVAILABLE(10_0, 6_0);     // UIColor, default blackColor
+UIKIT_EXTERN NSAttributedStringKey const NSBackgroundColorAttributeName NS_AVAILABLE(10_0, 6_0);     // UIColor, default nil: no background
+UIKIT_EXTERN NSAttributedStringKey const NSLigatureAttributeName NS_AVAILABLE(10_0, 6_0);            // NSNumber containing integer, default 1: default ligatures, 0: no ligatures
+UIKIT_EXTERN NSAttributedStringKey const NSKernAttributeName NS_AVAILABLE(10_0, 6_0);                // NSNumber containing floating point value, in points; amount to modify default kerning. 0 means kerning is disabled.
+UIKIT_EXTERN NSAttributedStringKey const NSStrikethroughStyleAttributeName NS_AVAILABLE(10_0, 6_0);  // NSNumber containing integer, default 0: no strikethrough
+UIKIT_EXTERN NSAttributedStringKey const NSUnderlineStyleAttributeName NS_AVAILABLE(10_0, 6_0);      // NSNumber containing integer, default 0: no underline
+UIKIT_EXTERN NSAttributedStringKey const NSStrokeColorAttributeName NS_AVAILABLE(10_0, 6_0);         // UIColor, default nil: same as foreground color
+UIKIT_EXTERN NSAttributedStringKey const NSStrokeWidthAttributeName NS_AVAILABLE(10_0, 6_0);         // NSNumber containing floating point value, in percent of font point size, default 0: no stroke; positive for stroke alone, negative for stroke and fill (a typical value for outlined text would be 3.0)
+UIKIT_EXTERN NSAttributedStringKey const NSShadowAttributeName NS_AVAILABLE(10_0, 6_0);              // NSShadow, default nil: no shadow
+UIKIT_EXTERN NSAttributedStringKey const NSTextEffectAttributeName NS_AVAILABLE(10_10, 7_0);          // NSString, default nil: no text effect
+
+UIKIT_EXTERN NSAttributedStringKey const NSAttachmentAttributeName NS_AVAILABLE(10_0, 7_0);          // NSTextAttachment, default nil
+UIKIT_EXTERN NSAttributedStringKey const NSLinkAttributeName NS_AVAILABLE(10_0, 7_0);                // NSURL (preferred) or NSString
+UIKIT_EXTERN NSAttributedStringKey const NSBaselineOffsetAttributeName NS_AVAILABLE(10_0, 7_0);      // NSNumber containing floating point value, in points; offset from baseline, default 0
+UIKIT_EXTERN NSAttributedStringKey const NSUnderlineColorAttributeName NS_AVAILABLE(10_0, 7_0);      // UIColor, default nil: same as foreground color
+UIKIT_EXTERN NSAttributedStringKey const NSStrikethroughColorAttributeName NS_AVAILABLE(10_0, 7_0);  // UIColor, default nil: same as foreground color
+UIKIT_EXTERN NSAttributedStringKey const NSObliquenessAttributeName NS_AVAILABLE(10_0, 7_0);         // NSNumber containing floating point value; skew to be applied to glyphs, default 0: no skew
+UIKIT_EXTERN NSAttributedStringKey const NSExpansionAttributeName NS_AVAILABLE(10_0, 7_0);           // NSNumber containing floating point value; log of expansion factor to be applied to glyphs, default 0: no expansion
 
-UIKIT_EXTERN NSString * const NSWritingDirectionAttributeName NS_AVAILABLE(10_6, 7_0);    // NSArray of NSNumbers representing the nested levels of writing direction overrides as defined by Unicode LRE, RLE, LRO, and RLO characters.  The control characters can be obtained by masking NSWritingDirection and NSWritingDirectionFormatType values.  LRE: NSWritingDirectionLeftToRight|NSWritingDirectionEmbedding, RLE: NSWritingDirectionRightToLeft|NSWritingDirectionEmbedding, LRO: NSWritingDirectionLeftToRight|NSWritingDirectionOverride, RLO: NSWritingDirectionRightToLeft|NSWritingDirectionOverride,
+UIKIT_EXTERN NSAttributedStringKey const NSWritingDirectionAttributeName NS_AVAILABLE(10_6, 7_0);    // NSArray of NSNumbers representing the nested levels of writing direction overrides as defined by Unicode LRE, RLE, LRO, and RLO characters.  The control characters can be obtained by masking NSWritingDirection and NSWritingDirectionFormatType values.  LRE: NSWritingDirectionLeftToRight|NSWritingDirectionEmbedding, RLE: NSWritingDirectionRightToLeft|NSWritingDirectionEmbedding, LRO: NSWritingDirectionLeftToRight|NSWritingDirectionOverride, RLO: NSWritingDirectionRightToLeft|NSWritingDirectionOverride,
 
-UIKIT_EXTERN NSString * const NSVerticalGlyphFormAttributeName NS_AVAILABLE(10_7, 6_0);   // An NSNumber containing an integer value.  0 means horizontal text.  1 indicates vertical text.  If not specified, it could follow higher-level vertical orientation settings.  Currently on iOS, it's always horizontal.  The behavior for any other value is undefined.
+UIKIT_EXTERN NSAttributedStringKey const NSVerticalGlyphFormAttributeName NS_AVAILABLE(10_7, 6_0);   // An NSNumber containing an integer value.  0 means horizontal text.  1 indicates vertical text.  If not specified, it could follow higher-level vertical orientation settings.  Currently on iOS, it's always horizontal.  The behavior for any other value is undefined.
 
 
 
@@ -65,7 +68,8 @@
 } NS_ENUM_AVAILABLE(10_11, 9_0);
 
 // NSTextEffectAttributeName values
-UIKIT_EXTERN NSString *const NSTextEffectLetterpressStyle NS_AVAILABLE(10_10, 7_0);
+typedef NSString * NSTextEffectStyle NS_STRING_ENUM;
+UIKIT_EXTERN NSTextEffectStyle const NSTextEffectLetterpressStyle NS_AVAILABLE(10_10, 7_0);
 
 
 /************************ Attribute fixing ************************/
@@ -79,64 +83,76 @@
 
 /************************ Document formats ************************/
 
+typedef NSString * NSAttributedStringDocumentType NS_EXTENSIBLE_STRING_ENUM;
+
 // Supported document types for the NSDocumentTypeDocumentAttribute key in the document attributes dictionary.
-UIKIT_EXTERN NSString * const NSPlainTextDocumentType NS_AVAILABLE(10_0, 7_0);
-UIKIT_EXTERN NSString * const NSRTFTextDocumentType NS_AVAILABLE(10_0, 7_0);
-UIKIT_EXTERN NSString * const NSRTFDTextDocumentType NS_AVAILABLE(10_0, 7_0);
-UIKIT_EXTERN NSString * const NSHTMLTextDocumentType NS_AVAILABLE(10_0, 7_0);
+UIKIT_EXTERN NSAttributedStringDocumentType const NSPlainTextDocumentType NS_AVAILABLE(10_0, 7_0);
+UIKIT_EXTERN NSAttributedStringDocumentType const NSRTFTextDocumentType  NS_AVAILABLE(10_0, 7_0);
+UIKIT_EXTERN NSAttributedStringDocumentType const NSRTFDTextDocumentType NS_AVAILABLE(10_0, 7_0);
+UIKIT_EXTERN NSAttributedStringDocumentType const NSHTMLTextDocumentType  NS_AVAILABLE(10_0, 7_0);
+
+typedef NSString * NSTextLayoutSectionKey NS_STRING_ENUM;
 
 // Keys for NSLayoutOrientationSectionsAttribute.
-UIKIT_EXTERN NSString * const NSTextLayoutSectionOrientation NS_AVAILABLE(10_7, 7_0); // NSNumber containing NSTextLayoutOrientation value. default: NSTextLayoutOrientationHorizontal
-UIKIT_EXTERN NSString * const NSTextLayoutSectionRange NS_AVAILABLE(10_7, 7_0); // NSValue containing NSRange representing a character range. default: a range covering the whole document
+UIKIT_EXTERN NSTextLayoutSectionKey const NSTextLayoutSectionOrientation NS_AVAILABLE(10_7, 7_0); // NSNumber containing NSTextLayoutOrientation value. default: NSTextLayoutOrientationHorizontal
+UIKIT_EXTERN NSTextLayoutSectionKey const NSTextLayoutSectionRange NS_AVAILABLE(10_7, 7_0); // NSValue containing NSRange representing a character range. default: a range covering the whole document
 
+typedef NSString * NSAttributedStringDocumentAttributeKey NS_EXTENSIBLE_STRING_ENUM;
 
 // Keys for options and document attributes dictionaries.  They are in and out document properties used by both read/write methods.
 
-UIKIT_EXTERN NSString * const NSDocumentTypeDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"DocumentType", one of the document types declared above.  For reader methods, this key in options can specify the document type for interpreting the contents.  Upon return, the document attributes can contain this key for indicating the actual format used to read the contents.  For write methods, this key specifies the format for generating the data.
+UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSDocumentTypeDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"DocumentType", one of the document types declared above.  For reader methods, this key in options can specify the document type for interpreting the contents.  Upon return, the document attributes can contain this key for indicating the actual format used to read the contents.  For write methods, this key specifies the format for generating the data.
 
 
 // NSPlainTextDocumentType document attributes
-UIKIT_EXTERN NSString * const NSCharacterEncodingDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"CharacterEncoding", NSNumber containing integer specifying NSStringEncoding for the file; default for plain text is the default encoding.  This key in options can specify the string encoding for reading the data.  Upon return, the document attributes can contain the actual encoding used.  For writing methods, this value is used for generating the plain text data.
-UIKIT_EXTERN NSString * const NSDefaultAttributesDocumentAttribute NS_AVAILABLE(10_11, 7_0);  // @"DefaultAttributes", NSDictionary containing attributes to be applied to plain files.  Used by reader methods.  This key in options can specify the default attributes applied to the entire document contents.  The document attributes can contain this key indicating the actual attributes used.
+UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSCharacterEncodingDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"CharacterEncoding", NSNumber containing integer specifying NSStringEncoding for the file; default for plain text is the default encoding.  This key in options can specify the string encoding for reading the data.  Upon return, the document attributes can contain the actual encoding used.  For writing methods, this value is used for generating the plain text data.
+UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSDefaultAttributesDocumentAttribute NS_AVAILABLE(10_11, 7_0);  // @"DefaultAttributes", NSDictionary containing attributes to be applied to plain files.  Used by reader methods.  This key in options can specify the default attributes applied to the entire document contents.  The document attributes can contain this key indicating the actual attributes used.
 
 
 // NSRTFTextDocumentType and NSRTFDTextDocumentType document attributes
 // Document dimension
 // They are document attributes used by read/write methods.
-UIKIT_EXTERN NSString * const NSPaperSizeDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"PaperSize", NSValue containing CGSize (in points)
-UIKIT_EXTERN NSString * const NSPaperMarginDocumentAttribute NS_AVAILABLE_IOS(7_0);  // @"PaperMargin", NSValue containing UIEdgeInsets
+UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSPaperSizeDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"PaperSize", NSValue containing CGSize (in points)
+UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSPaperMarginDocumentAttribute NS_AVAILABLE_IOS(7_0);  // @"PaperMargin", NSValue containing UIEdgeInsets
 
-UIKIT_EXTERN NSString * const NSViewSizeDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"ViewSize", NSValue containing CGSize (in points)
-UIKIT_EXTERN NSString * const NSViewZoomDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"ViewZoom", NSNumber containing floating point value (100 == 100% zoom)
-UIKIT_EXTERN NSString * const NSViewModeDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"ViewMode", NSNumber containing integer; 0 = normal; 1 = page layout
+UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSViewSizeDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"ViewSize", NSValue containing CGSize (in points)
+UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSViewZoomDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"ViewZoom", NSNumber containing floating point value (100 == 100% zoom)
+UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSViewModeDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"ViewMode", NSNumber containing integer; 0 = normal; 1 = page layout
 
 // Document settings
 // They are document attributes used by read/write methods.
-UIKIT_EXTERN NSString * const NSReadOnlyDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"ReadOnly", NSNumber containing integer; if missing, or 0 or negative, not readonly; 1 or more, readonly. Note that this has nothing to do with the file system protection on the file, but instead, on how the file should be displayed to the user
-UIKIT_EXTERN NSString * const NSBackgroundColorDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"BackgroundColor", UIColor, representing the document-wide page background color
-UIKIT_EXTERN NSString * const NSHyphenationFactorDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"HyphenationFactor", NSNumber containing floating point value (0=off, 1=full hyphenation)
-UIKIT_EXTERN NSString * const NSDefaultTabIntervalDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"DefaultTabInterval", NSNumber containing floating point value, representing the document-wide default tab stop interval, in points
-UIKIT_EXTERN NSString * const NSTextLayoutSectionsAttribute NS_AVAILABLE(10_7, 7_0);  // NSArray of dictionaries.  Each dictionary describing a layout orientation section.  The dictionary can have two attributes: NSTextLayoutSectionOrientation and NSTextLayoutSectionRange.  When there is a gap between sections, it's assumed to have NSTextLayoutOrientationHorizontal.
+UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSReadOnlyDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"ReadOnly", NSNumber containing integer; if missing, or 0 or negative, not readonly; 1 or more, readonly. Note that this has nothing to do with the file system protection on the file, but instead, on how the file should be displayed to the user
+UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSBackgroundColorDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"BackgroundColor", UIColor, representing the document-wide page background color
+UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSHyphenationFactorDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"HyphenationFactor", NSNumber containing floating point value (0=off, 1=full hyphenation)
+UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSDefaultTabIntervalDocumentAttribute NS_AVAILABLE(10_0, 7_0);  // @"DefaultTabInterval", NSNumber containing floating point value, representing the document-wide default tab stop interval, in points
+UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSTextLayoutSectionsAttribute NS_AVAILABLE(10_7, 7_0);  // NSArray of dictionaries.  Each dictionary describing a layout orientation section.  The dictionary can have two attributes: NSTextLayoutSectionOrientation and NSTextLayoutSectionRange.  When there is a gap between sections, it's assumed to have NSTextLayoutOrientationHorizontal.
+
+
+typedef NSString * NSAttributedStringDocumentReadingOptionKey NS_EXTENSIBLE_STRING_ENUM;
+
+UIKIT_EXTERN NSAttributedStringDocumentReadingOptionKey const NSDocumentTypeDocumentOption;  // @"DocumentType", NSString indicating a document type to be forced when loading the document, specified as one of the NSDocumentTypeDocumentAttribute constants listed above
+UIKIT_EXTERN NSAttributedStringDocumentReadingOptionKey const NSDefaultAttributesDocumentOption;  // @"DefaultAttributes", for plain text only; NSDictionary containing attributes to be applied to plain files
+UIKIT_EXTERN NSAttributedStringDocumentReadingOptionKey const NSCharacterEncodingDocumentOption;  // @"CharacterEncoding", for plain text and HTML; NSNumber containing integer specifying NSStringEncoding to be used to interpret the file
 
 
 
 @interface NSAttributedString (NSAttributedStringDocumentFormats)
 // Methods initializing the receiver contents with an external document data.  options specify document attributes for interpreting the document contents.  NSDocumentTypeDocumentAttribute, NSCharacterEncodingDocumentAttribute, and NSDefaultAttributesDocumentAttribute are supported options key.  When they are not specified, these methods will examine the data and do their best to detect the appropriate attributes.  If dict is non-NULL, it will return a dictionary with various document-wide attributes accessible via NS...DocumentAttribute keys.
-- (nullable instancetype)initWithURL:(NSURL *)url options:(NSDictionary<NSString *, id> *)options documentAttributes:(NSDictionary<NSString *, id> * __nullable * __nullable)dict error:(NSError **)error NS_AVAILABLE(10_4, 9_0);
-- (nullable instancetype)initWithData:(NSData *)data options:(NSDictionary<NSString *, id> *)options documentAttributes:(NSDictionary<NSString *, id> * __nullable * __nullable)dict error:(NSError **)error NS_AVAILABLE(10_0, 7_0);
+- (nullable instancetype)initWithURL:(NSURL *)url options:(NSDictionary<NSAttributedStringDocumentReadingOptionKey, id> *)options documentAttributes:(NSDictionary<NSAttributedStringDocumentAttributeKey, id> * __nullable * __nullable)dict error:(NSError **)error NS_AVAILABLE(10_4, 9_0);
+- (nullable instancetype)initWithData:(NSData *)data options:(NSDictionary<NSAttributedStringDocumentReadingOptionKey, id> *)options documentAttributes:(NSDictionary<NSAttributedStringDocumentAttributeKey, id> * __nullable * __nullable)dict error:(NSError **)error NS_AVAILABLE(10_0, 7_0);
 
 // Generates an NSData object for the receiver contents in range.  It requires a document attributes dict specifying at least the NSDocumentTypeDocumentAttribute to determine the format to be written.
-- (nullable NSData *)dataFromRange:(NSRange)range documentAttributes:(NSDictionary<NSString *, id> *)dict error:(NSError **)error NS_AVAILABLE(10_0, 7_0);
+- (nullable NSData *)dataFromRange:(NSRange)range documentAttributes:(NSDictionary<NSAttributedStringDocumentAttributeKey, id> *)dict error:(NSError **)error NS_AVAILABLE(10_0, 7_0);
 
 // Returns an NSFileWrapper object for the receiver contents in range.  It requires a document attributes dict specifying at least the NSDocumentTypeDocumentAttribute to determine the format to be written.  The method returns a directory file wrapper for those document types represented by a file package such as NSRTFDTextDocumentType; otherwise, it returns a regular-file file wrapper.
-- (nullable NSFileWrapper *)fileWrapperFromRange:(NSRange)range documentAttributes:(NSDictionary<NSString *, id> *)dict error:(NSError **)error NS_AVAILABLE(10_0, 7_0);
+- (nullable NSFileWrapper *)fileWrapperFromRange:(NSRange)range documentAttributes:(NSDictionary<NSAttributedStringDocumentAttributeKey, id> *)dict error:(NSError **)error NS_AVAILABLE(10_0, 7_0);
 
 @end
 
 @interface NSMutableAttributedString (NSMutableAttributedStringDocumentFormats)
 // Methods replacing the receiver contents with an external document data.  options specify document attributes for interpreting the document contents.  NSDocumentTypeDocumentAttribute, NSCharacterEncodingDocumentAttribute, and NSDefaultAttributesDocumentAttribute are supported options key.  When they are not specified, these methods will examine the data and do their best to detect the appropriate attributes.  If dict is non-NULL, it will return a dictionary with various document-wide attributes accessible via NS...DocumentAttribute keys.
-- (BOOL)readFromURL:(NSURL *)url options:(NSDictionary<NSString *, id> *)opts documentAttributes:(NSDictionary<NSString *, id> * __nullable * __nullable)dict error:(NSError **)error  NS_AVAILABLE(10_11, 9_0);
-- (BOOL)readFromData:(NSData *)data options:(NSDictionary<NSString *, id> *)opts documentAttributes:(NSDictionary<NSString *, id> * __nullable * __nullable)dict error:(NSError **)error NS_AVAILABLE(10_0, 7_0);
+- (BOOL)readFromURL:(NSURL *)url options:(NSDictionary<NSAttributedStringDocumentReadingOptionKey, id> *)opts documentAttributes:(NSDictionary<NSAttributedStringDocumentAttributeKey, id> * __nullable * __nullable)dict error:(NSError **)error  API_AVAILABLE(macosx(10.5), ios(9.0), watchos(2.0), tvos(9.0));
+- (BOOL)readFromData:(NSData *)data options:(NSDictionary<NSAttributedStringDocumentReadingOptionKey, id> *)opts documentAttributes:(NSDictionary<NSAttributedStringDocumentAttributeKey, id> * __nullable * __nullable)dict error:(NSError **)error NS_AVAILABLE(10_0, 7_0);
 @end
 
 
@@ -146,6 +162,11 @@
 - (BOOL)containsAttachmentsInRange:(NSRange)range NS_AVAILABLE(10_11, 9_0);
 @end
 
+
+@interface NSAttributedString (UINSItemProvider) <NSItemProviderReading, NSItemProviderWriting>
+
+@end
+
 /************************ Deprecated ************************/
 
 typedef NS_ENUM(NSInteger, NSTextWritingDirection) {
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSFileProviderExtension.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSFileProviderExtension.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSFileProviderExtension.h	2016-08-12 00:59:12.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSFileProviderExtension.h	2017-05-27 22:37:29.000000000 -0400
@@ -7,54 +7,10 @@
 
 #import <Foundation/Foundation.h>
 
-NS_ASSUME_NONNULL_BEGIN
+#if __has_include(<FileProvider/NSFileProviderExtension.h>)
 
-NS_CLASS_AVAILABLE_IOS(8_0) __TVOS_PROHIBITED @interface NSFileProviderExtension : NSObject
-// You don't want to override these
+// NSFileProviderExtension has moved to its own framework.
+// Please modify your project to link against and include FileProvider.framework instead of UIKit.
+#import <FileProvider/NSFileProviderExtension.h>
 
-// metadata contains NSURLNameKey, NSURLFileSizeKey, NSURLIsPackageKey
-+ (BOOL)writePlaceholderAtURL:(NSURL *)placeholderURL withMetadata:(NSDictionary *)metadata error:(NSError **)error;
-+ (NSURL *)placeholderURLForURL:(NSURL *)url;
-
-// An identifier unique to this provider.
-// When modifying the files stored in the directory returned by documentStorageURL, you should pass this identifier
-// to your file coordinator's setPurposeIdentifier: method.
-// By default, this returns the bundle identifier of the application containing your extension. You need to make sure to use the same identifier in your containing app.
-#if UIKIT_DEFINE_AS_PROPERTIES
-@property(nonatomic, readonly) NSString *providerIdentifier;
-#else
-- (NSString *)providerIdentifier;
-#endif
-
-// The root URL for provided documents. This URL must be writable from your app extension, and must only be used for the extension's files or their placeholders.
-#if UIKIT_DEFINE_AS_PROPERTIES
-@property(nonatomic, readonly) NSURL *documentStorageURL;
-#else
-- (NSURL *)documentStorageURL;
 #endif
-
-// You may want to override these.
-
-// Should return the URL corresponding to a specific identifier. Fail if it's not a subpath of documentStorageURL.
-// This is a static mapping; each identifier must always return a path corresponding to the same file.
-// By default, this returns the path relative to the path returned by documentStorageURL.
-- (nullable NSURL *)URLForItemWithPersistentIdentifier:(NSString *)identifier;
-- (nullable NSString *)persistentIdentifierForItemAtURL:(NSURL *)url;
-
-// These need to be overridden. None of them should call super.
-
-// Should call + writePlaceholderAtURL: with the placeholder URL, then call the completion handler with that URL.
-- (void)providePlaceholderAtURL:(NSURL *)url completionHandler:(void (^)(NSError * __nullable error))completionHandler;
-
-// Should ensure that the actual file is in the position returned by URLForItemWithIdentifier:, then call the completion handler
-- (void)startProvidingItemAtURL:(NSURL *)url completionHandler:(void (^)(NSError * __nullable error))completionHandler;
-
-// Called at some point after the file has changed; the provider may then trigger an upload
-- (void)itemChangedAtURL:(NSURL *)url;
-
-// Called after the last claim to the file has been released. At this point, it is safe for the file provider to remove the content file.
-// Care should be taken that the corresponding placeholder file stays behind after the content file has been deleted.
-- (void)stopProvidingItemAtURL:(NSURL *)url;
-@end
-
-NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSIndexPath+UIKitAdditions.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSIndexPath+UIKitAdditions.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSIndexPath+UIKitAdditions.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSIndexPath+UIKitAdditions.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,28 @@
+//
+//  NSIndexPath+UIKitAdditions.h
+//  UIKit
+//
+//  Copyright (c) 2005-2016 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+// This category provides convenience methods to make it easier to use an NSIndexPath to represent a section and row/item, for use with UITableView and UICollectionView.
+@interface NSIndexPath (UIKitAdditions)
+
++ (instancetype)indexPathForRow:(NSInteger)row inSection:(NSInteger)section;
++ (instancetype)indexPathForItem:(NSInteger)item inSection:(NSInteger)section NS_AVAILABLE_IOS(6_0);
+
+// Returns the index at position 0.
+@property (nonatomic, readonly) NSInteger section;
+
+// Returns the index at position 1.
+@property (nonatomic, readonly) NSInteger row;
+// Returns the index at position 1 if it exists, otherwise returns NSNotFound.
+@property (nonatomic, readonly) NSInteger item NS_AVAILABLE_IOS(6_0);
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSItemProvider+UIKitAdditions.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSItemProvider+UIKitAdditions.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSItemProvider+UIKitAdditions.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSItemProvider+UIKitAdditions.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,19 @@
+//
+//  NSItemProvider+UIKitAdditions.h
+//  UIKit
+//
+//  Copyright © 2017 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NSItemProvider (UIKitAdditions)
+
+@property (nonatomic, copy, nullable) NSData *teamData API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos);
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutAnchor.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutAnchor.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutAnchor.h	2016-08-12 00:59:13.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutAnchor.h	2017-05-27 22:37:30.000000000 -0400
@@ -3,10 +3,12 @@
 */
 
 #import <Foundation/Foundation.h>
-#import <UIKit/NSLayoutConstraint.h>
+#import <CoreGraphics/CoreGraphics.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
+@class NSLayoutConstraint;
+
 /* An NSLayoutAnchor represents an edge or dimension of a layout item.  Its concrete 
  subclasses allow concise creation of constraints.  
     Instead of invoking 
@@ -39,18 +41,48 @@
 
 /* Axis-specific subclasses for location anchors: top/bottom, leading/trailing, baseline, etc.
  */
-@class NSLayoutXAxisAnchor, NSLayoutYAxisAnchor;
+@class NSLayoutXAxisAnchor, NSLayoutYAxisAnchor, NSLayoutDimension;
 NS_CLASS_AVAILABLE_IOS(9_0)
 @interface NSLayoutXAxisAnchor : NSLayoutAnchor<NSLayoutXAxisAnchor *>
+// A composite anchor for creating constraints relating horizontal distances between locations.
+- (NSLayoutDimension *)anchorWithOffsetToAnchor:(NSLayoutXAxisAnchor *)otherAnchor API_AVAILABLE(ios(10.0),tvos(10.0));
+
+@end
+
+@interface NSLayoutXAxisAnchor (UIViewDynamicSystemSpacingSupport)
+/* Constraints of the form,
+        receiver [= | ≥ | ≤] 'anchor' + 'multiplier' * system space, 
+ where the value of the system space is determined from information available from the anchors.
+    The constraint affects how far the receiver will be positioned trailing 'anchor', per the effective user interface layout direction.
+ */
+- (NSLayoutConstraint *)constraintEqualToSystemSpacingAfterAnchor:(NSLayoutXAxisAnchor *)anchor multiplier:(CGFloat)multiplier API_AVAILABLE(ios(11.0),tvos(11.0));
+- (NSLayoutConstraint *)constraintGreaterThanOrEqualToSystemSpacingAfterAnchor:(NSLayoutXAxisAnchor *)anchor multiplier:(CGFloat)multiplier API_AVAILABLE(ios(11.0),tvos(11.0));
+- (NSLayoutConstraint *)constraintLessThanOrEqualToSystemSpacingAfterAnchor:(NSLayoutXAxisAnchor *)anchor multiplier:(CGFloat)multiplier API_AVAILABLE(ios(11.0),tvos(11.0));
+
 @end
 NS_CLASS_AVAILABLE_IOS(9_0)
 @interface NSLayoutYAxisAnchor : NSLayoutAnchor<NSLayoutYAxisAnchor *>
+// A composite anchor for creating constraints relating vertical distances between locations.
+- (NSLayoutDimension *)anchorWithOffsetToAnchor:(NSLayoutYAxisAnchor *)otherAnchor API_AVAILABLE(ios(10.0),tvos(10.0));
+
+@end
+
+@interface NSLayoutYAxisAnchor (UIViewDynamicSystemSpacingSupport)
+/* Constraints of the form,
+        receiver [= | ≥ | ≤] 'anchor' + 'multiplier' * system space, 
+ where the value of the system space is determined from information available from the anchors.
+    The constraint affects how far the receiver will be positioned below 'anchor'. 
+    If either the receiver or 'anchor' is the firstBaselineAnchor or lastBaselineAnchor of a view with text content
+ then the spacing will depend on the fonts involved and will change when those do.
+ */
+- (NSLayoutConstraint *)constraintEqualToSystemSpacingBelowAnchor:(NSLayoutYAxisAnchor *)anchor multiplier:(CGFloat)multiplier API_AVAILABLE(ios(11.0),tvos(11.0));
+- (NSLayoutConstraint *)constraintGreaterThanOrEqualToSystemSpacingBelowAnchor:(NSLayoutYAxisAnchor *)anchor multiplier:(CGFloat)multiplier API_AVAILABLE(ios(11.0),tvos(11.0));
+- (NSLayoutConstraint *)constraintLessThanOrEqualToSystemSpacingBelowAnchor:(NSLayoutYAxisAnchor *)anchor multiplier:(CGFloat)multiplier API_AVAILABLE(ios(11.0),tvos(11.0));
 @end
 
 
 /* This layout anchor subclass is used for sizes (width & height).
  */
-@class NSLayoutDimension;
 NS_CLASS_AVAILABLE_IOS(9_0)
 @interface NSLayoutDimension : NSLayoutAnchor<NSLayoutDimension *>
 
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutConstraint.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutConstraint.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutConstraint.h	2016-08-12 01:05:53.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutConstraint.h	2017-05-30 01:57:27.000000000 -0400
@@ -69,9 +69,24 @@
     NSLayoutFormatDirectionRightToLeft = 2 << 16,  
     
     NSLayoutFormatDirectionMask = 0x3 << 16,  
+    
+    /* choose only one spacing format
+     */
+    NSLayoutFormatSpacingEdgeToEdge API_AVAILABLE(ios(11.0),tvos(11.0)) = 0 << 19, // default
+    
+    /* Valid only for vertical layouts. Between views with text content the value
+     will be used to determine the distance from the last baseline of the view above
+     to the first baseline of the view below. For views without text content the top
+     or bottom edge will be used in lieu of the baseline position.
+     The default spacing "]-[" will be determined from the line heights of the fonts
+     involved in views with text content, when present.
+     */
+    NSLayoutFormatSpacingBaselineToBaseline API_AVAILABLE(ios(11.0),tvos(11.0)) = 1 << 19,
+    
+    NSLayoutFormatSpacingMask API_AVAILABLE(ios(11.0),tvos(11.0)) = 0x1 << 19,
 };
 
-typedef float UILayoutPriority;
+typedef float UILayoutPriority NS_TYPED_EXTENSIBLE_ENUM;
 static const UILayoutPriority UILayoutPriorityRequired NS_AVAILABLE_IOS(6_0) = 1000; // A required constraint.  Do not exceed this.
 static const UILayoutPriority UILayoutPriorityDefaultHigh NS_AVAILABLE_IOS(6_0) = 750; // This is the priority level with which a button resists compressing its content.
 static const UILayoutPriority UILayoutPriorityDefaultLow NS_AVAILABLE_IOS(6_0) = 250; // This is the priority level at which a button hugs its contents horizontally.
@@ -111,7 +126,7 @@
  firstItem.firstAttribute {==,<=,>=} secondItem.secondAttribute * multiplier + constant
  Access to these properties is not recommended. Use the `firstAnchor` and `secondAnchor` properties instead.
  */
-@property (readonly, assign) id firstItem;
+@property (nullable, readonly, assign) id firstItem;
 @property (readonly) NSLayoutAttribute firstAttribute;
 @property (nullable, readonly, assign) id secondItem;
 @property (readonly) NSLayoutAttribute secondAttribute;
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutManager.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutManager.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutManager.h	2016-08-12 01:05:53.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutManager.h	2017-05-27 22:37:38.000000000 -0400
@@ -2,7 +2,7 @@
 //  NSLayoutManager.h
 //  UIKit
 //
-//  Copyright (c) 2011-2015, Apple Inc. All rights reserved.
+//  Copyright (c) 2011-2017, Apple Inc. All rights reserved.
 //
 
 #import <Foundation/NSObject.h>
@@ -40,7 +40,7 @@
 
 @protocol NSTextLayoutOrientationProvider
 // A property describing the receiver's layout orientation.  This property defines the default value for the range of string laid out in the receiver in absence of explicit NSVerticalGlyphFormAttributeName attribute.  For example, when NSTextLayoutOrientationVertical, the default value for NSVerticalGlyphFormAttributeName is 1.  When rendering into the receiver, the Text System assumes the coordinate system is appropriately rotated.
-@property(readonly, NS_NONATOMIC_IOSONLY) NSTextLayoutOrientation layoutOrientation NS_AVAILABLE(10_7, 7_0);
+@property (readonly, NS_NONATOMIC_IOSONLY) NSTextLayoutOrientation layoutOrientation NS_AVAILABLE(10_7, 7_0);
 @end
 
 
@@ -58,14 +58,14 @@
 
 // Accessor for the NSTextStorage object owning the receiver.
 // Avoid assigning a text storage directly through this property.  Adding a layout manager to a text storage through -[NSTextStorage addLayoutManager:] will use the property for assigning the new text storage.
-@property(nullable, assign, NS_NONATOMIC_IOSONLY) NSTextStorage *textStorage;
+@property (nullable, assign, NS_NONATOMIC_IOSONLY) NSTextStorage *textStorage;
 
 
 
 /**************************** Text containers ****************************/
 
 // NSTextContainer objects owner by the receiver.
-@property(readonly, NS_NONATOMIC_IOSONLY) NSArray<NSTextContainer *> *textContainers;
+@property (readonly, NS_NONATOMIC_IOSONLY) NSArray<NSTextContainer *> *textContainers;
 
 // Add a container to the end of the array.  Must invalidate layout of all glyphs after the previous last container (i.e., glyphs that were not previously laid out because they would not fit anywhere).
 - (void)addTextContainer:(NSTextContainer *)container;
@@ -83,28 +83,28 @@
 
 /**************************** Delegate ****************************/
 
-@property(nullable, assign, NS_NONATOMIC_IOSONLY) id <NSLayoutManagerDelegate> delegate;
+@property (nullable, weak, NS_NONATOMIC_IOSONLY) id <NSLayoutManagerDelegate> delegate;
 
 
 /*********************** Global layout manager options ***********************/
 
 // If YES, then whitespace and other "invisible" characters will be shown with special glyphs or other drawing.  The default is NO.
-@property(NS_NONATOMIC_IOSONLY) BOOL showsInvisibleCharacters;
+@property (NS_NONATOMIC_IOSONLY) BOOL showsInvisibleCharacters;
 
 // If YES, then control characters will be rendered visibly (usually like "^M").  The default is NO.
-@property(NS_NONATOMIC_IOSONLY) BOOL showsControlCharacters;
+@property (NS_NONATOMIC_IOSONLY) BOOL showsControlCharacters;
 
 // 0.0 - 1.0.  Whenever (width of the real contents of the line) / (the line fragment width) is below this value, hyphenation will be attempted when laying out the line.  By default, the value is 0.0, meaning hyphenation is off.  A value of 1.0 causes hyphenation to be attempted always.  Note that hyphenation will slow down text layout and increase memory usage, so it should be used sparingly.  Maybe overridden on a per-paragraph basis by the NSParagraphStyle's hyphenationFactor.
-@property(NS_NONATOMIC_IOSONLY) CGFloat hyphenationFactor;
+@property (NS_NONATOMIC_IOSONLY) CGFloat hyphenationFactor;
 
 // By default, a layout manager will use leading as specified by the font.  However, this is not appropriate for most UI text, for which a fixed leading is usually specified by UI layout guidelines.  These methods allow the use of the font's leading to be turned off.
-@property(NS_NONATOMIC_IOSONLY) BOOL usesFontLeading;
+@property (NS_NONATOMIC_IOSONLY) BOOL usesFontLeading;
 
 // If YES, then the layout manager may perform glyph generation and layout for a given portion of the text, without having glyphs or layout for preceding portions.  The default is NO.  Turning this setting on will significantly alter which portions of the text will have glyph generation or layout performed when a given generation-causing method is invoked.  It also gives significant performance benefits, especially for large documents.
-@property(NS_NONATOMIC_IOSONLY) BOOL allowsNonContiguousLayout NS_AVAILABLE(10_5, 7_0);
+@property (NS_NONATOMIC_IOSONLY) BOOL allowsNonContiguousLayout NS_AVAILABLE(10_5, 7_0);
 
 // Even if non-contiguous layout is allowed, it may not always be used, and there may not always be layout holes.  This method returns YES if there might currently be non-contiguous portions of the text laid out.
-@property(readonly, NS_NONATOMIC_IOSONLY) BOOL hasNonContiguousLayout NS_AVAILABLE(10_5, 7_0);
+@property (readonly, NS_NONATOMIC_IOSONLY) BOOL hasNonContiguousLayout NS_AVAILABLE(10_5, 7_0);
 
 
 
@@ -144,12 +144,12 @@
 /************************ Get glyphs and glyph properties ************************/
 
 // Returns the total number of glyphs.  If non-contiguous layout is not enabled, this will force generation of glyphs for all characters.
-@property(readonly, NS_NONATOMIC_IOSONLY) NSUInteger numberOfGlyphs;
+@property (readonly, NS_NONATOMIC_IOSONLY) NSUInteger numberOfGlyphs;
 
 // If non-contiguous layout is not enabled, these will cause generation of all glyphs up to and including glyphIndex.  The first CGGlyphAtIndex variant returns kCGFontIndexInvalid if the requested index is out of the range (0, numberOfGlyphs), and optionally returns a flag indicating whether the requested index is in range.  The second CGGlyphAtIndex variant raises a NSRangeError if the requested index is out of range.
 - (CGGlyph)CGGlyphAtIndex:(NSUInteger)glyphIndex isValidIndex:(nullable BOOL *)isValidIndex NS_AVAILABLE(10_11,7_0);
 - (CGGlyph)CGGlyphAtIndex:(NSUInteger)glyphIndex NS_AVAILABLE(10_11,7_0);
-- (BOOL)isValidGlyphIndex:(NSUInteger)glyphIndex NS_AVAILABLE(10_11,7_0);
+- (BOOL)isValidGlyphIndex:(NSUInteger)glyphIndex API_AVAILABLE(macosx(10.0), ios(7.0), watchos(2.0), tvos(9.0));
 
 // If non-contiguous layout is not enabled, this will cause generation of all glyphs up to and including glyphIndex.  It will return the glyph property associated with the glyph at the specified index.
 - (NSGlyphProperty)propertyForGlyphAtIndex:(NSUInteger)glyphIndex NS_AVAILABLE(10_5, 7_0);
@@ -192,14 +192,8 @@
 
 // Returns (by reference for the "get" method) the character index or glyph index or both of the first unlaid character/glyph in the layout manager at this time.
 - (void)getFirstUnlaidCharacterIndex:(nullable NSUInteger *)charIndex glyphIndex:(nullable NSUInteger *)glyphIndex;
-
-#if UIKIT_DEFINE_AS_PROPERTIES
-@property(nonatomic, readonly) NSUInteger firstUnlaidCharacterIndex;
-@property(nonatomic, readonly) NSUInteger firstUnlaidGlyphIndex;
-#else
 - (NSUInteger)firstUnlaidCharacterIndex;
 - (NSUInteger)firstUnlaidGlyphIndex;
-#endif
 
 // Returns the container in which the given glyph is laid and (optionally) by reference the whole range of glyphs that are in that container.  This will cause glyph generation and layout for the line fragment containing the specified glyph, or if non-contiguous layout is not enabled, up to and including that line fragment; if non-contiguous layout is not enabled and effectiveGlyphRange is non-NULL, this will additionally cause glyph generation and layout for the entire text container containing the specified glyph.
 - (nullable NSTextContainer *)textContainerForGlyphAtIndex:(NSUInteger)glyphIndex effectiveRange:(nullable NSRangePointer)effectiveGlyphRange;
@@ -218,9 +212,9 @@
 - (CGRect)lineFragmentUsedRectForGlyphAtIndex:(NSUInteger)glyphIndex effectiveRange:(nullable NSRangePointer)effectiveGlyphRange withoutAdditionalLayout:(BOOL)flag NS_AVAILABLE(10_0, 9_0);
 
 // Return info about the extra line fragment.  The extra line fragment is used for displaying the line at the end of document when the last character in the document causes a line or paragraph break.  Since the extra line is not associated with any glyph inside the layout manager, the information is handed separately from other line fragment rects.  Typically the extra line fragment is placed in the last document content text container along with other normal line fragment rects.  Line fragment rects and line fragment used rects are always in container coordinates.
-@property(readonly, NS_NONATOMIC_IOSONLY) CGRect extraLineFragmentRect;
-@property(readonly, NS_NONATOMIC_IOSONLY) CGRect extraLineFragmentUsedRect;
-@property(nullable, readonly, NS_NONATOMIC_IOSONLY) NSTextContainer *extraLineFragmentTextContainer;
+@property (readonly, NS_NONATOMIC_IOSONLY) CGRect extraLineFragmentRect;
+@property (readonly, NS_NONATOMIC_IOSONLY) CGRect extraLineFragmentUsedRect;
+@property (nullable, readonly, NS_NONATOMIC_IOSONLY) NSTextContainer *extraLineFragmentTextContainer;
 
 
 // Returns the location for the given glyph within its line fragment.  If this glyph does not have an explicit location set for it (i.e., it is part of (but not first in) a sequence of nominally spaced characters), the location is calculated by glyph advancements from the location of the most recent preceding glyph with a location set.  Glyph locations are relative to their line fragment rect's origin.  This will cause glyph generation and layout for the line fragment containing the specified glyph, or if non-contiguous layout is not enabled, up to and including that line fragment.
@@ -285,7 +279,7 @@
 - (void)drawGlyphsForGlyphRange:(NSRange)glyphsToShow atPoint:(CGPoint)origin;
 
 // This is the glyph rendering primitive method.  Renders glyphs at positions into the graphicsContext.  The positions are in the user space coordinate system.  graphicsContext that passed in is already configured according to the text attributes arguments: font, textMatrix, and attributes.  The font argument represents the font applied to the graphics state.  The value can be different from the NSFontAttributeName value in the attributes argument because of various font substitutions that the system automatically executes.  The textMatrix is the affine transform mapping the text space coordinate system to the user space coordinate system.  The tx and ty components of textMatrix are ignored since Quartz overrides them with the glyph positions.
-- (void)showCGGlyphs:(const CGGlyph *)glyphs positions:(const CGPoint *)positions count:(NSUInteger)glyphCount font:(UIFont *)font matrix:(CGAffineTransform)textMatrix attributes:(NSDictionary<NSString *, id> *)attributes inContext:(CGContextRef)graphicsContext NS_AVAILABLE(10_7, 7_0);
+- (void)showCGGlyphs:(const CGGlyph *)glyphs positions:(const CGPoint *)positions count:(NSUInteger)glyphCount font:(UIFont *)font matrix:(CGAffineTransform)textMatrix attributes:(NSDictionary<NSAttributedStringKey, id> *)attributes inContext:(CGContextRef)graphicsContext NS_AVAILABLE(10_7, 7_0);
 
 // This is the primitive used by -drawBackgroundForGlyphRange:atPoint: for actually filling rects with a particular background color, whether due to a background color attribute, a selected or marked range highlight, a block decoration, or any other rect fill needed by that method.  As with -showCGGlyphs:..., the character range and color are merely for informational purposes; the color will already be set in the graphics state.  If for any reason you modify it, you must restore it before returning from this method.  You should never call this method, but you might override it.  The default implementation will simply fill the specified rect array.
 - (void)fillBackgroundRectArray:(const CGRect *)rectArray count:(NSUInteger)rectCount forCharacterRange:(NSRange)charRange color:(UIColor *)color NS_AVAILABLE(10_6, 7_0);
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSParagraphStyle.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSParagraphStyle.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSParagraphStyle.h	2016-09-23 19:10:16.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSParagraphStyle.h	2017-05-25 06:42:45.000000000 -0400
@@ -2,7 +2,7 @@
 //  NSParagraphStyle.h
 //  UIKit
 //
-//  Copyright (c) 2011-2015, Apple Inc. All rights reserved.
+//  Copyright (c) 2011-2017, Apple Inc. All rights reserved.
 //
 // NSParagraphStyle and NSMutableParagraphStyle hold paragraph style information
 // NSTextTab holds information about a single tab stop
@@ -15,18 +15,19 @@
 NS_ASSUME_NONNULL_BEGIN
 
 // NSTextTab
-UIKIT_EXTERN NSString *const NSTabColumnTerminatorsAttributeName NS_AVAILABLE(10_0, 7_0); // An attribute for NSTextTab options.  The value is NSCharacterSet.  The character set is used to determine the tab column terminating character.  The tab and newline characters are implied even if not included in the character set.
+typedef NSString * NSTextTabOptionKey NS_STRING_ENUM;
+UIKIT_EXTERN NSTextTabOptionKey const NSTabColumnTerminatorsAttributeName NS_AVAILABLE(10_0, 7_0); // An attribute for NSTextTab options.  The value is NSCharacterSet.  The character set is used to determine the tab column terminating character.  The tab and newline characters are implied even if not included in the character set.
 
 NS_CLASS_AVAILABLE(10_0, 7_0) @interface NSTextTab : NSObject <NSCopying, NSCoding, NSSecureCoding>
 
 + (NSCharacterSet *)columnTerminatorsForLocale:(nullable NSLocale *)aLocale NS_AVAILABLE(10_11, 7_0); // Returns the column terminators for locale. Passing nil returns an instance corresponding to +[NSLocale systemLocale]. For matching user's formatting preferences, pass +[NSLocale currentLocale]. Can be used as the value for NSTabColumnTerminatorsAttributeName to make a decimal tab stop.
 
-- (instancetype)initWithTextAlignment:(NSTextAlignment)alignment location:(CGFloat)loc options:(NSDictionary<NSString *, id> *)options NS_DESIGNATED_INITIALIZER; // Initializes a text tab with the text alignment, location, and options.  The text alignment is used to determine the position of text inside the tab column.
+- (instancetype)initWithTextAlignment:(NSTextAlignment)alignment location:(CGFloat)loc options:(NSDictionary<NSTextTabOptionKey, id> *)options NS_DESIGNATED_INITIALIZER; // Initializes a text tab with the text alignment, location, and options.  The text alignment is used to determine the position of text inside the tab column.
 
 
-@property(readonly, NS_NONATOMIC_IOSONLY) NSTextAlignment alignment;  // Defines the alignment of tab column contents. NSTextAlignmentNatural and NSTextAlignmentJustified are resolved either NSTextAlignmentLeft or NSTextAlignmentRight based on the user's preferred language.
-@property(readonly, NS_NONATOMIC_IOSONLY) CGFloat location; // Location of the tab stop inside the line fragment rect coordinate system
-@property(readonly, NS_NONATOMIC_IOSONLY) NSDictionary<NSString *, id> *options; // Optional configuration attributes
+@property (readonly, NS_NONATOMIC_IOSONLY) NSTextAlignment alignment;  // Defines the alignment of tab column contents. NSTextAlignmentNatural and NSTextAlignmentJustified are resolved either NSTextAlignmentLeft or NSTextAlignmentRight based on the user's preferred language.
+@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat location; // Location of the tab stop inside the line fragment rect coordinate system
+@property (readonly, NS_NONATOMIC_IOSONLY) NSDictionary<NSTextTabOptionKey, id> *options; // Optional configuration attributes
 @end
 
 
@@ -43,62 +44,58 @@
 
 NS_CLASS_AVAILABLE(10_0, 6_0) @interface NSParagraphStyle : NSObject <NSCopying, NSMutableCopying, NSSecureCoding>
 
-#if UIKIT_DEFINE_AS_PROPERTIES
-@property(class, nonatomic, readonly) NSParagraphStyle *defaultParagraphStyle; // This class method returns a shared and cached NSParagraphStyle instance with the default style settings, with same value as the result of [[NSParagraphStyle alloc] init].
-#else
-+ (NSParagraphStyle *)defaultParagraphStyle; // This class method returns a shared and cached NSParagraphStyle instance with the default style settings, with same value as the result of [[NSParagraphStyle alloc] init].
-#endif
+@property (class, readonly, copy, NS_NONATOMIC_IOSONLY) NSParagraphStyle *defaultParagraphStyle; // This class property returns a shared and cached NSParagraphStyle instance with the default style settings, with same value as the result of [[NSParagraphStyle alloc] init].
 
 + (NSWritingDirection)defaultWritingDirectionForLanguage:(nullable NSString *)languageName;  // languageName is in ISO lang region format
 
-@property(readonly, NS_NONATOMIC_IOSONLY) CGFloat lineSpacing; // "Leading": distance between the bottom of one line fragment and top of next (applied between lines in the same container). This value is included in the line fragment heights in layout manager.
-@property(readonly, NS_NONATOMIC_IOSONLY) CGFloat paragraphSpacing; // Distance between the bottom of this paragraph and top of next (or the beginning of its paragraphSpacingBefore, if any).
-@property(readonly, NS_NONATOMIC_IOSONLY) NSTextAlignment alignment;
+@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat lineSpacing; // "Leading": distance between the bottom of one line fragment and top of next (applied between lines in the same container). This value is included in the line fragment heights in layout manager.
+@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat paragraphSpacing; // Distance between the bottom of this paragraph and top of next (or the beginning of its paragraphSpacingBefore, if any).
+@property (readonly, NS_NONATOMIC_IOSONLY) NSTextAlignment alignment;
 
 // The following values are relative to the appropriate margin (depending on the paragraph direction)
 
-@property(readonly, NS_NONATOMIC_IOSONLY) CGFloat headIndent; // Distance from margin to front edge of paragraph
-@property(readonly, NS_NONATOMIC_IOSONLY) CGFloat tailIndent; // Distance from margin to back edge of paragraph; if negative or 0, from other margin
-@property(readonly, NS_NONATOMIC_IOSONLY) CGFloat firstLineHeadIndent; // Distance from margin to edge appropriate for text direction
+@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat headIndent; // Distance from margin to front edge of paragraph
+@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat tailIndent; // Distance from margin to back edge of paragraph; if negative or 0, from other margin
+@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat firstLineHeadIndent; // Distance from margin to edge appropriate for text direction
 
-@property(readonly, NS_NONATOMIC_IOSONLY) CGFloat minimumLineHeight; // Line height is the distance from bottom of descenders to top of ascenders; basically the line fragment height. Does not include lineSpacing (which is added after this computation).
-@property(readonly, NS_NONATOMIC_IOSONLY) CGFloat maximumLineHeight; // 0 implies no maximum.
+@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat minimumLineHeight; // Line height is the distance from bottom of descenders to top of ascenders; basically the line fragment height. Does not include lineSpacing (which is added after this computation).
+@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat maximumLineHeight; // 0 implies no maximum.
 
-@property(readonly, NS_NONATOMIC_IOSONLY) NSLineBreakMode lineBreakMode;
+@property (readonly, NS_NONATOMIC_IOSONLY) NSLineBreakMode lineBreakMode;
 
-@property(readonly, NS_NONATOMIC_IOSONLY) NSWritingDirection baseWritingDirection;
+@property (readonly, NS_NONATOMIC_IOSONLY) NSWritingDirection baseWritingDirection;
 
-@property(readonly, NS_NONATOMIC_IOSONLY) CGFloat lineHeightMultiple; // Natural line height is multiplied by this factor (if positive) before being constrained by minimum and maximum line height.
-@property(readonly, NS_NONATOMIC_IOSONLY) CGFloat paragraphSpacingBefore; // Distance between the bottom of the previous paragraph (or the end of its paragraphSpacing, if any) and the top of this paragraph.
+@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat lineHeightMultiple; // Natural line height is multiplied by this factor (if positive) before being constrained by minimum and maximum line height.
+@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat paragraphSpacingBefore; // Distance between the bottom of the previous paragraph (or the end of its paragraphSpacing, if any) and the top of this paragraph.
 
 // Specifies the threshold for hyphenation.  Valid values lie between 0.0 and 1.0 inclusive.  Hyphenation will be attempted when the ratio of the text width as broken without hyphenation to the width of the line fragment is less than the hyphenation factor.  When this takes on its default value of 0.0, the layout manager's hyphenation factor is used instead.  When both are 0.0, hyphenation is disabled.
-@property(readonly, NS_NONATOMIC_IOSONLY) float hyphenationFactor;
+@property (readonly, NS_NONATOMIC_IOSONLY) float hyphenationFactor;
 
-@property(readonly,copy, NS_NONATOMIC_IOSONLY) NSArray<NSTextTab *> *tabStops NS_AVAILABLE(10_0, 7_0); // An array of NSTextTabs. Contents should be ordered by location. The default value is an array of 12 left-aligned tabs at 28pt interval
-@property(readonly, NS_NONATOMIC_IOSONLY) CGFloat defaultTabInterval NS_AVAILABLE(10_0, 7_0); // The default tab interval used for locations beyond the last element in tabStops
+@property (readonly,copy, NS_NONATOMIC_IOSONLY) NSArray<NSTextTab *> *tabStops NS_AVAILABLE(10_0, 7_0); // An array of NSTextTabs. Contents should be ordered by location. The default value is an array of 12 left-aligned tabs at 28pt interval
+@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat defaultTabInterval NS_AVAILABLE(10_0, 7_0); // The default tab interval used for locations beyond the last element in tabStops
 
-@property(readonly, NS_NONATOMIC_IOSONLY) BOOL allowsDefaultTighteningForTruncation NS_AVAILABLE(10_11, 9_0); // Tightens inter-character spacing in attempt to fit lines wider than the available space if the line break mode is one of the truncation modes before starting to truncate. NO by default. The maximum amount of tightening performed is determined by the system based on contexts such as font, line width, etc.
+@property (readonly, NS_NONATOMIC_IOSONLY) BOOL allowsDefaultTighteningForTruncation NS_AVAILABLE(10_11, 9_0); // Tightens inter-character spacing in attempt to fit lines wider than the available space if the line break mode is one of the truncation modes before starting to truncate. NO by default. The maximum amount of tightening performed is determined by the system based on contexts such as font, line width, etc.
 @end
 
 
 NS_CLASS_AVAILABLE(10_0, 6_0) @interface NSMutableParagraphStyle : NSParagraphStyle
 
-@property(NS_NONATOMIC_IOSONLY) CGFloat lineSpacing;
-@property(NS_NONATOMIC_IOSONLY) CGFloat paragraphSpacing;
-@property(NS_NONATOMIC_IOSONLY) NSTextAlignment alignment;
-@property(NS_NONATOMIC_IOSONLY) CGFloat firstLineHeadIndent;
-@property(NS_NONATOMIC_IOSONLY) CGFloat headIndent;
-@property(NS_NONATOMIC_IOSONLY) CGFloat tailIndent;
-@property(NS_NONATOMIC_IOSONLY) NSLineBreakMode lineBreakMode;
-@property(NS_NONATOMIC_IOSONLY) CGFloat minimumLineHeight;
-@property(NS_NONATOMIC_IOSONLY) CGFloat maximumLineHeight;
-@property(NS_NONATOMIC_IOSONLY) NSWritingDirection baseWritingDirection;
-@property(NS_NONATOMIC_IOSONLY) CGFloat lineHeightMultiple;
-@property(NS_NONATOMIC_IOSONLY) CGFloat paragraphSpacingBefore;
-@property(NS_NONATOMIC_IOSONLY) float hyphenationFactor;
-@property(null_resettable, copy, NS_NONATOMIC_IOSONLY) NSArray<NSTextTab *> *tabStops NS_AVAILABLE(10_0, 7_0);
-@property(NS_NONATOMIC_IOSONLY) CGFloat defaultTabInterval NS_AVAILABLE(10_0, 7_0);
-@property(NS_NONATOMIC_IOSONLY) BOOL allowsDefaultTighteningForTruncation NS_AVAILABLE(10_11, 9_0);
+@property (NS_NONATOMIC_IOSONLY) CGFloat lineSpacing;
+@property (NS_NONATOMIC_IOSONLY) CGFloat paragraphSpacing;
+@property (NS_NONATOMIC_IOSONLY) NSTextAlignment alignment;
+@property (NS_NONATOMIC_IOSONLY) CGFloat firstLineHeadIndent;
+@property (NS_NONATOMIC_IOSONLY) CGFloat headIndent;
+@property (NS_NONATOMIC_IOSONLY) CGFloat tailIndent;
+@property (NS_NONATOMIC_IOSONLY) NSLineBreakMode lineBreakMode;
+@property (NS_NONATOMIC_IOSONLY) CGFloat minimumLineHeight;
+@property (NS_NONATOMIC_IOSONLY) CGFloat maximumLineHeight;
+@property (NS_NONATOMIC_IOSONLY) NSWritingDirection baseWritingDirection;
+@property (NS_NONATOMIC_IOSONLY) CGFloat lineHeightMultiple;
+@property (NS_NONATOMIC_IOSONLY) CGFloat paragraphSpacingBefore;
+@property (NS_NONATOMIC_IOSONLY) float hyphenationFactor;
+@property (null_resettable, copy, NS_NONATOMIC_IOSONLY) NSArray<NSTextTab *> *tabStops NS_AVAILABLE(10_0, 7_0);
+@property (NS_NONATOMIC_IOSONLY) CGFloat defaultTabInterval NS_AVAILABLE(10_0, 7_0);
+@property (NS_NONATOMIC_IOSONLY) BOOL allowsDefaultTighteningForTruncation NS_AVAILABLE(10_11, 9_0);
 
 - (void)addTabStop:(NSTextTab *)anObject NS_AVAILABLE(10_0, 9_0);
 - (void)removeTabStop:(NSTextTab *)anObject NS_AVAILABLE(10_0, 9_0);
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSStringDrawing.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSStringDrawing.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSStringDrawing.h	2016-08-12 00:59:12.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSStringDrawing.h	2017-05-25 06:42:45.000000000 -0400
@@ -2,7 +2,7 @@
 //  NSStringDrawing.h
 //  UIKit
 //
-//  Copyright (c) 2011-2015, Apple Inc. All rights reserved.
+//  Copyright (c) 2011-2017, Apple Inc. All rights reserved.
 //
 
 #import <Foundation/NSString.h>
@@ -19,20 +19,20 @@
 NS_CLASS_AVAILABLE(10_11, 6_0) @interface NSStringDrawingContext : NSObject
 
 // Minimum scale factor for drawWithRect:options:context: and boundingRectWithSize:options:context: methods. If this property is set, the extended string drawing methods will attempt to draw the attributed string in the given bounds by proportionally scaling the font(s) in the attributed string
-@property(NS_NONATOMIC_IOSONLY) CGFloat minimumScaleFactor;
+@property (NS_NONATOMIC_IOSONLY) CGFloat minimumScaleFactor;
 
 // actual scale factor used by the last drawing call where minimum scale factor was specified
-@property(readonly, NS_NONATOMIC_IOSONLY) CGFloat actualScaleFactor;
+@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat actualScaleFactor;
 
 // bounds of the string drawn by the previous invocation of drawWithRect:options:context:
-@property(readonly, NS_NONATOMIC_IOSONLY) CGRect totalBounds;
+@property (readonly, NS_NONATOMIC_IOSONLY) CGRect totalBounds;
 
 @end
 
 @interface NSString(NSStringDrawing)
-- (CGSize)sizeWithAttributes:(nullable NSDictionary<NSString *, id> *)attrs NS_AVAILABLE(10_0, 7_0);
-- (void)drawAtPoint:(CGPoint)point withAttributes:(nullable NSDictionary<NSString *, id> *)attrs NS_AVAILABLE(10_0, 7_0);
-- (void)drawInRect:(CGRect)rect withAttributes:(nullable NSDictionary<NSString *, id> *)attrs NS_AVAILABLE(10_0, 7_0);
+- (CGSize)sizeWithAttributes:(nullable NSDictionary<NSAttributedStringKey, id> *)attrs NS_AVAILABLE(10_0, 7_0);
+- (void)drawAtPoint:(CGPoint)point withAttributes:(nullable NSDictionary<NSAttributedStringKey, id> *)attrs NS_AVAILABLE(10_0, 7_0);
+- (void)drawInRect:(CGRect)rect withAttributes:(nullable NSDictionary<NSAttributedStringKey, id> *)attrs NS_AVAILABLE(10_0, 7_0);
 @end
 
 @interface NSAttributedString(NSStringDrawing)
@@ -53,8 +53,8 @@
 // NOTE: All of the following methods will default to drawing on a baseline, limiting drawing to a single line.
 // To correctly draw and size multi-line text, pass NSStringDrawingUsesLineFragmentOrigin in the options parameter.
 @interface NSString (NSExtendedStringDrawing)
-- (void)drawWithRect:(CGRect)rect options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSString *, id> *)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11, 7_0);
-- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSString *, id> *)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11, 7_0);
+- (void)drawWithRect:(CGRect)rect options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSAttributedStringKey, id> *)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11, 7_0);
+- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSAttributedStringKey, id> *)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11, 7_0);
 @end
 
 @interface NSAttributedString (NSExtendedStringDrawing)
@@ -64,8 +64,8 @@
 
 /************************ Deprecated ************************/
 @interface NSStringDrawingContext (NSStringDrawingContextDeprecated)
-@property(nonatomic) CGFloat minimumTrackingAdjustment NS_DEPRECATED_IOS(6_0,7_0) __TVOS_PROHIBITED;
-@property(nonatomic, readonly) CGFloat actualTrackingAdjustment NS_DEPRECATED_IOS(6_0,7_0) __TVOS_PROHIBITED;
+@property (nonatomic) CGFloat minimumTrackingAdjustment NS_DEPRECATED_IOS(6_0,7_0) __TVOS_PROHIBITED;
+@property (nonatomic, readonly) CGFloat actualTrackingAdjustment NS_DEPRECATED_IOS(6_0,7_0) __TVOS_PROHIBITED;
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextAttachment.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextAttachment.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextAttachment.h	2016-05-03 18:21:26.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextAttachment.h	2017-05-30 01:57:43.000000000 -0400
@@ -2,7 +2,7 @@
 //  NSTextAttachment.h
 //  UIKit
 //
-//  Copyright (c) 2011-2015, Apple Inc. All rights reserved.
+//  Copyright (c) 2011-2017, Apple Inc. All rights reserved.
 //
 
 #import <Foundation/NSObject.h>
@@ -47,22 +47,22 @@
 /**************************** Content properties ****************************/
 
 // These two properties define the contents for the text attachment.  Modifying these properties have a side effect of invalidating -image and -fileWrapper properties. -fileType is an UTI describing the format for -contents.
-@property(nullable, copy, NS_NONATOMIC_IOSONLY) NSData *contents NS_AVAILABLE(10_11, 7_0);
-@property(nullable, copy, NS_NONATOMIC_IOSONLY) NSString *fileType NS_AVAILABLE(10_11, 7_0);
+@property (nullable, copy, NS_NONATOMIC_IOSONLY) NSData *contents NS_AVAILABLE(10_11, 7_0);
+@property (nullable, copy, NS_NONATOMIC_IOSONLY) NSString *fileType NS_AVAILABLE(10_11, 7_0);
 
 /**************************** Rendering/layout properties ****************************/
 
 // Image representing the text attachment contents. Modifying this property invalidates -contents, -fileType, and -FileWrapper properties.
-@property(nullable, strong, NS_NONATOMIC_IOSONLY) UIImage *image NS_AVAILABLE(10_11, 7_0);
+@property (nullable, strong, NS_NONATOMIC_IOSONLY) UIImage *image NS_AVAILABLE(10_11, 7_0);
 
 // Defines the layout bounds of the receiver's graphical representation in the text coordinate system.  The origin is at the glyph location on the text baseline.  The default value is CGRectZero.
-@property(NS_NONATOMIC_IOSONLY) CGRect bounds NS_AVAILABLE(10_11, 7_0);
+@property (NS_NONATOMIC_IOSONLY) CGRect bounds NS_AVAILABLE(10_11, 7_0);
 #endif
 
 /**************************** Non-image contents properties ****************************/
 
 // Optionally, NSTextAttachment can be associated with a file wrapper. Modifying this property has a side effect of invalidating -image, -contents, and fileType properties.
-@property(nullable, strong, NS_NONATOMIC_IOSONLY) NSFileWrapper *fileWrapper;
+@property (nullable, strong, NS_NONATOMIC_IOSONLY) NSFileWrapper *fileWrapper;
 
 
 @end
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContainer.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContainer.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContainer.h	2016-08-12 00:59:12.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContainer.h	2017-05-27 22:37:29.000000000 -0400
@@ -2,7 +2,7 @@
 //  NSTextContainer.h
 //  UIKit
 //
-//  Copyright (c) 2011-2015, Apple Inc. All rights reserved.
+//  Copyright (c) 2011-2017, Apple Inc. All rights reserved.
 //
 
 #import <Foundation/NSObject.h>
@@ -25,7 +25,7 @@
 
 // Accessor for the NSLayoutManager object owning the receiver.
 // Avoid assigning a layout manager directly through this property.  Adding a text container to a layout manager through -[NSLayoutManager addTextContainer:] will use the property for assigning the new layout manager.
-@property(nullable, assign, NS_NONATOMIC_IOSONLY) NSLayoutManager *layoutManager;
+@property (nullable, assign, NS_NONATOMIC_IOSONLY) NSLayoutManager *layoutManager;
 
 // This method should be used instead of the primitive -setLayoutManager: if you need to replace a container's layoutManager with a new one leaving the rest of the web intact.  All the NSTextContainers on the old NSLayoutManager get transferred to the new one.  This method deals with all the work of making sure the containers don't get deallocated and removing the old layoutManager from the text storage and replacing it with the new one.
 - (void)replaceLayoutManager:(NSLayoutManager *)newLayoutManager NS_AVAILABLE(10_0, 9_0);
@@ -34,21 +34,21 @@
 /************************* Container shape properties *************************/
 
 // Default value: CGSizeZero  Defines the maximum size for the layout area returned from -lineFragmentRectForProposedRect:writingDirection:remainingRect:.  0.0 and less means no limitation.
-@property(NS_NONATOMIC_IOSONLY) CGSize size NS_AVAILABLE(10_11, 7_0);
+@property (NS_NONATOMIC_IOSONLY) CGSize size NS_AVAILABLE(10_11, 7_0);
 
 // Default value : empty array  An array of UIBezierPath representing the exclusion paths inside the receiver's bounding rect.
-@property(copy, NS_NONATOMIC_IOSONLY) NSArray<UIBezierPath *> *exclusionPaths NS_AVAILABLE(10_11, 7_0);
+@property (copy, NS_NONATOMIC_IOSONLY) NSArray<UIBezierPath *> *exclusionPaths NS_AVAILABLE(10_11, 7_0);
 
 // Default value: NSLineBreakByWordWrapping  The line break mode defines the behavior of the last line inside the text container.
-@property(NS_NONATOMIC_IOSONLY) NSLineBreakMode lineBreakMode NS_AVAILABLE(10_11, 7_0);
+@property (NS_NONATOMIC_IOSONLY) NSLineBreakMode lineBreakMode NS_AVAILABLE(10_11, 7_0);
 
 /************************* Layout constraint properties *************************/
 
 // Default value: 5.0  The layout padding at the beginning and end of the line fragment rects insetting the layout width available for the contents.  This value is utilized by NSLayoutManager for determining the layout width.
-@property(NS_NONATOMIC_IOSONLY) CGFloat lineFragmentPadding;
+@property (NS_NONATOMIC_IOSONLY) CGFloat lineFragmentPadding;
 
 // Default value: 0 (no limit)  The maximum number of lines that can be stored in the receiver.  This value is utilized by NSLayoutManager for determining the maximum number of lines associated with the text container.
-@property(NS_NONATOMIC_IOSONLY) NSUInteger maximumNumberOfLines NS_AVAILABLE(10_11, 7_0);
+@property (NS_NONATOMIC_IOSONLY) NSUInteger maximumNumberOfLines NS_AVAILABLE(10_11, 7_0);
 
 /**************************** Line fragments ****************************/
 
@@ -62,8 +62,8 @@
 /**************************** View synchronization ****************************/
 
 // Default value: NO  Define whether the text container view bounds changes can affect the text container size.
-@property(NS_NONATOMIC_IOSONLY) BOOL widthTracksTextView;
-@property(NS_NONATOMIC_IOSONLY) BOOL heightTracksTextView;
+@property (NS_NONATOMIC_IOSONLY) BOOL widthTracksTextView;
+@property (NS_NONATOMIC_IOSONLY) BOOL heightTracksTextView;
 
 @end
 
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextStorage.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextStorage.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextStorage.h	2016-08-12 00:59:12.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextStorage.h	2017-05-30 01:57:43.000000000 -0400
@@ -2,7 +2,7 @@
 //  NSTextStorage.h
 //  UIKit
 //
-//  Copyright (c) 2011-2015, Apple Inc. All rights reserved.
+//  Copyright (c) 2011-2017, Apple Inc. All rights reserved.
 //
 
 #import <Foundation/NSObject.h>
@@ -37,7 +37,7 @@
 /**************************** Layout manager ****************************/
 
 // NSLayoutManager objects owned by the receiver.
-@property(readonly, copy, NS_NONATOMIC_IOSONLY) NSArray<NSLayoutManager *> *layoutManagers;
+@property (readonly, copy, NS_NONATOMIC_IOSONLY) NSArray<NSLayoutManager *> *layoutManagers;
 
 // Adds aLayoutManager to the receiver.  Sends -[NSLayoutManager setTextStorage:] to aLayoutManager with the receiver.
 - (void)addLayoutManager:(NSLayoutManager *)aLayoutManager;
@@ -50,18 +50,18 @@
 // These methods return information about the editing status. Especially useful when there are outstanding beginEditing calls or during processEditing...
 
 // The NSTextStorageEditActions mask indicating that there are pending changes for attributes, characters, or both.
-@property(readonly, NS_NONATOMIC_IOSONLY) NSTextStorageEditActions editedMask;
+@property (readonly, NS_NONATOMIC_IOSONLY) NSTextStorageEditActions editedMask;
 
 // The range for pending changes. {NSNotFound, 0} when there is no pending changes.
-@property(readonly, NS_NONATOMIC_IOSONLY) NSRange editedRange;
+@property (readonly, NS_NONATOMIC_IOSONLY) NSRange editedRange;
 
 // The length delta for the pending changes.
-@property(readonly, NS_NONATOMIC_IOSONLY) NSInteger changeInLength;
+@property (readonly, NS_NONATOMIC_IOSONLY) NSInteger changeInLength;
 
 
 /**************************** Delegate ****************************/
 
-@property(nullable, assign, NS_NONATOMIC_IOSONLY) id <NSTextStorageDelegate> delegate;
+@property (nullable, weak, NS_NONATOMIC_IOSONLY) id <NSTextStorageDelegate> delegate;
 
 
 /**************************** Edit management ****************************/
@@ -76,7 +76,7 @@
 /**************************** Attribute fixing ****************************/
 
 // Indicates if the receiver fixes invalidated attributes lazily.  The concrete UIKit subclass fixes attributes lazily by default.  The abstract class (hence, all custom subclasses) is not lazy.
-@property(readonly, NS_NONATOMIC_IOSONLY) BOOL fixesAttributesLazily;
+@property (readonly, NS_NONATOMIC_IOSONLY) BOOL fixesAttributesLazily;
 
 // Notes the range of attributes that requires validation.  If the NSTextStorage is not lazy this just calls fixAttributesInRange:.  If it is lazy this instead just records the range needing fixing in order to do it later.
 - (void)invalidateAttributesInRange:(NSRange)range;
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h	2016-09-23 21:43:03.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h	2017-05-27 22:37:30.000000000 -0400
@@ -13,12 +13,14 @@
 
 #import <UIKit/UIAccessibilityAdditions.h>
 #import <UIKit/UIAccessibilityConstants.h>
+#import <UIKit/UIAccessibilityContainer.h>
 #import <UIKit/UIAccessibilityCustomAction.h>
 #import <UIKit/UIAccessibilityCustomRotor.h>
 #import <UIKit/UIAccessibilityElement.h>
 #import <UIKit/UIAccessibilityIdentification.h>
 #import <UIKit/UIAccessibilityZoom.h>
 #import <UIKit/UIGuidedAccessRestrictions.h>
+#import <UIKit/UIAccessibilityLocationDescriptor.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -61,6 +63,12 @@
 @property (nullable, nonatomic, copy) NSString *accessibilityLabel;
 
 /*
+ The underlying attributed version of the accessibility label. Setting this property will change the
+ value of the accessibilityLabel property and vice-versa.
+ */
+@property (nullable, nonatomic, copy) NSAttributedString *accessibilityAttributedLabel API_AVAILABLE(ios(11.0),tvos(11.0));
+
+/*
  Returns a localized string that describes the result of performing an action on the element, when the result is non-obvious.
  The hint should be a brief phrase.
  For example: "Purchases the item." or "Downloads the attachment."
@@ -70,6 +78,12 @@
 @property (nullable, nonatomic, copy) NSString *accessibilityHint;
 
 /*
+ The underlying attributed version of the accessibility hint. Setting this property will change the
+ value of the accessibilityHint property and vice-versa.
+ */
+@property (nullable, nonatomic, copy) NSAttributedString *accessibilityAttributedHint API_AVAILABLE(ios(11.0),tvos(11.0));
+
+/*
  Returns a localized string that represents the value of the element, such as the value 
  of a slider or the text in a text field. Use only when the label of the element
  differs from a value. For example: A volume slider has a label of "Volume", but a value of "60%".
@@ -80,6 +94,12 @@
 @property (nullable, nonatomic, copy) NSString *accessibilityValue;
 
 /*
+ The underlying attributed version of the accessibility value. Setting this property will change the
+ value of the accessibilityValue property and vice-versa.
+ */
+@property (nullable, nonatomic, copy) NSAttributedString *accessibilityAttributedValue API_AVAILABLE(ios(11.0),tvos(11.0));
+
+/*
  Returns a UIAccessibilityTraits mask that is the OR combination of
  all accessibility traits that best characterize the element.
  See UIAccessibilityConstants.h for a list of traits.
@@ -174,47 +194,6 @@
 @end
 
 
-/*
- UIAccessibilityContainer
- 
- UIAccessibilityContainer methods can be overridden to vend individual elements
- that are managed by a single UIView.
- 
- For example, a single UIView might draw several items that (to an
- end user) have separate meaning and functionality.  It is important to vend
- each item as an individual accessibility element.
- 
- Sub-elements of a container that are not represented by concrete UIView
- instances (perhaps painted text or icons) can be represented using instances
- of UIAccessibilityElement class (see UIAccessibilityElement.h).
- 
- Accessibility containers MUST return NO to -isAccessibilityElement.
- */
-@interface NSObject (UIAccessibilityContainer)
-
-/*
- Returns the number of accessibility elements in the container.
- */
-- (NSInteger)accessibilityElementCount;
-
-/*
- Returns the accessibility element in order, based on index.
- default == nil 
- */
-- (nullable id)accessibilityElementAtIndex:(NSInteger)index;
-
-/*
- Returns the ordered index for an accessibility element
- default == NSNotFound 
- */
-- (NSInteger)indexOfAccessibilityElement:(id)element;
-
-// A list of container elements managed by the receiver.
-// This can be used as an alternative to implementing the dynamic methods.
-// default == nil
-@property (nullable, nonatomic, strong) NSArray *accessibilityElements NS_AVAILABLE_IOS(8_0);
-
-@end
 
 /*
  UIAccessibilityFocus
@@ -333,6 +312,55 @@
 // Returns a string representing the text displayed on the current page.
 - (nullable NSString *)accessibilityPageContent NS_AVAILABLE_IOS(5_0);
 
+@optional
+// If an object adopting this protocol responds to these methods, the system will try sending them before sending the non-attributed versions.
+- (nullable NSAttributedString *)accessibilityAttributedContentForLineNumber:(NSInteger)lineNumber API_AVAILABLE(ios(11.0), tvos(11.0));
+- (nullable NSAttributedString *)accessibilityAttributedPageContent API_AVAILABLE(ios(11.0), tvos(11.0));
+
+@end
+
+@interface NSObject(UIAccessibilityDragging)
+
+/* By default, if an accessible view or its subtree has drag and/or drop interactions, they will be
+ * automatically exposed by assistive technologies. However, if there is more than one such
+ * interaction, each drag or drop should have a name to disambiguate it and give a good user
+ * experience. Also, there may be situations in which you want to expose drags or drops from an
+ * element, and those interactions are installed on views that are not part of that element's view
+ * hierarchy subtree.
+ *
+ * This is trivially the case when the element is not a view at all, but an instance of
+ * UIAccessibilityElement.
+ *
+ * Another example is when a container view maintains interactions that are logically
+ * associated with subviews. For instance, UITableView has associated drag interactions that allow
+ * for dragging its rows; to make the rows draggable by assistive technologies, UITableViewCell has
+ * drag descriptors that describe where in the table view to start a drag to activate dragging of
+ * the cell.
+ * (Note that this implementation detail is noted here for expository purposes only and may change
+ * at any time without warning.)
+ *
+ * Properties defined here allow you to fine-tune how drags and drops are exposed to assistive
+ * technologies. Both of their getter methods can be overridden to provide information on-demand.
+ * For each location descriptor, the associated view should be the UIView with the appropriate
+ * UIInteraction object for that drag or drop.
+ *
+ * `accessibilityDragSourceDescriptors` is an array of UIAccessibilityLocationDescriptor
+ * objects and is used to define and describe what drags are available from an element.
+ *
+ * `accessibilityDropPointDescriptors` is similarly an array of
+ * UIAccessibilityLocationDescriptor objects and is used to define and describe where
+ * drops are possible on this element.
+ *
+ * To restore the default automatic behavior for these properties, assign (or return) the default
+ * value of nil. Note that nil does not describe the same behavior as the empty array, which
+ * specifies that there are no relevant interactions for this element.
+ *
+ */
+@property (nullable, nonatomic, copy) NSArray<UIAccessibilityLocationDescriptor *> *accessibilityDragSourceDescriptors API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos);
+
+@property (nullable, nonatomic, copy) NSArray<UIAccessibilityLocationDescriptor *> *accessibilityDropPointDescriptors API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos);
+
+
 @end
 
 /*
@@ -349,10 +377,11 @@
  Assistive Technology
  
  Use UIAccessibilityIsVoiceOverRunning() to determine if VoiceOver is running.
- Listen for UIAccessibilityVoiceOverStatusChanged to know when VoiceOver starts or stops.
+ Listen for UIAccessibilityVoiceOverStatusDidChangeNotification to know when VoiceOver starts or stops.
  */
 UIKIT_EXTERN BOOL UIAccessibilityIsVoiceOverRunning(void) NS_AVAILABLE_IOS(4_0);
-UIKIT_EXTERN NSString *const UIAccessibilityVoiceOverStatusChanged NS_AVAILABLE_IOS(4_0);
+UIKIT_EXTERN NSString *const UIAccessibilityVoiceOverStatusChanged API_DEPRECATED_WITH_REPLACEMENT("UIAccessibilityVoiceOverStatusDidChangeNotification", ios(4.0, 11.0), tvos(9.0, 11.0));
+UIKIT_EXTERN NSNotificationName const UIAccessibilityVoiceOverStatusDidChangeNotification API_AVAILABLE(ios(11.0), tvos(11.0));
 
 // Returns whether system audio is mixed down from stereo to mono.
 UIKIT_EXTERN BOOL UIAccessibilityIsMonoAudioEnabled(void) NS_AVAILABLE_IOS(5_0);
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityAdditions.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityAdditions.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityAdditions.h	2016-08-12 00:59:13.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityAdditions.h	2017-05-27 22:37:30.000000000 -0400
@@ -25,6 +25,10 @@
 - (nullable NSString *)pickerView:(UIPickerView *)pickerView accessibilityLabelForComponent:(NSInteger)component;
 - (nullable NSString *)pickerView:(UIPickerView *)pickerView accessibilityHintForComponent:(NSInteger)component;
 
+// If an object adopting this protocol responds to these methods, the system will try sending them before sending their non-attributed versions.
+- (nullable NSAttributedString *)pickerView:(UIPickerView *)pickerView accessibilityAttributedLabelForComponent:(NSInteger)component API_AVAILABLE(ios(11.0), tvos(11.0));
+- (nullable NSAttributedString *)pickerView:(UIPickerView *)pickerView accessibilityAttributedHintForComponent:(NSInteger)component API_AVAILABLE(ios(11.0), tvos(11.0));
+
 @end
 
 /*
@@ -38,6 +42,23 @@
 @optional
 - (nullable NSString *)accessibilityScrollStatusForScrollView:(UIScrollView *)scrollView;
 
+// If an object adopting this protocol responds to this method, the system will try sending it before sending its non-attributed version.
+- (nullable NSAttributedString *)accessibilityAttributedScrollStatusForScrollView:(UIScrollView *)scrollView API_AVAILABLE(ios(11.0), tvos(11.0));
+
 @end
 
+/* Invert Colors is often used by those with light or color sensitivities to make bright
+   colors darker. However, this has a destructive effect on content like images and videos.
+  
+   Set accessibilityIgnoresInvertColors to YES on a view that contains content that should
+   not be inverted. This effect will apply to the entire subview hierarchy of a view.
+
+   If a view already uses a dark themed design, it may also be appropriate to set this
+   property.
+ */
+@interface UIView (UIAccessibilityInvertColors)
+@property(nonatomic) BOOL accessibilityIgnoresInvertColors API_AVAILABLE(ios(11_0), tvos(11_0));
+@end
+
+
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityConstants.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityConstants.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityConstants.h	2016-08-12 01:05:53.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityConstants.h	2017-05-25 06:42:45.000000000 -0400
@@ -214,6 +214,14 @@
     UIAccessibilityNavigationStyleCombined = 2,
 } NS_ENUM_AVAILABLE_IOS(8_0);
 
+
+typedef NS_ENUM(NSInteger, UIAccessibilityContainerType) {
+    UIAccessibilityContainerTypeNone = 0,
+    UIAccessibilityContainerTypeDataTable,     // If using this container type, you must also implement the UIAccessibilityContainerDataTable protocol.
+    UIAccessibilityContainerTypeList,
+    UIAccessibilityContainerTypeLandmark,
+} NS_ENUM_AVAILABLE_IOS(11_0);
+
 /*
  Accessibility Speech Attributes
  
@@ -235,5 +243,32 @@
 // Default value == 1.0f.
 UIKIT_EXTERN NSString *const UIAccessibilitySpeechAttributePitch NS_AVAILABLE_IOS(7_0);
 
+// The corresponding value for this key should be a NSNumber with a YES or NO value.
+// If YES, then this announcement will be queued behind existing speech; if NO, then it will interrupt existing speech.
+// Default behavior is to interrupt existing speech.
+UIKIT_EXTERN NSString *const UIAccessibilitySpeechAttributeQueueAnnouncement NS_AVAILABLE_IOS(11_0);
+
+// Use an NSString, containing International Phonetic Alphabet (IPA) symbols.
+// Controls the pronunciation of a word or phrase, e.g. a proper name.
+UIKIT_EXTERN NSString *const UIAccessibilitySpeechAttributeIPANotation NS_AVAILABLE_IOS(11_0);
+
+/*
+ Accessibility Text Attributes
+ 
+ The following attributes can be used in the NSAttributedString returned by attributeText methods of views conforming to UITextInput
+ to convey extra information about the text.
+ 
+ Use existing NSAttributedString attributes for properties not defined here from <UIKit/NSAttributedString.h>
+ 
+ To include an inline element (like an image or table), use NSAttachmentAttributeName and set the value to the element.
+ */
+
+// Use an NSNumber where the value is [0, 6]. Use 0 to indicate the absence of a specific heading level.
+UIKIT_EXTERN NSString *const UIAccessibilityTextAttributeHeadingLevel NS_AVAILABLE_IOS(11_0);
+
+// Use an NSArray of localized NSStrings to convey custom text attributes.
+// For example, a range of text may have multiple custom 'annotation styles, which can be described with this key.
+UIKIT_EXTERN NSString *const UIAccessibilityTextAttributeCustom NS_AVAILABLE_IOS(11_0);
+
 NS_ASSUME_NONNULL_END
 
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityContainer.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityContainer.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityContainer.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityContainer.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,93 @@
+//
+//  UIAccessibilityContainer.h
+//  UIKit
+//
+//  Copyright (c) 2016 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIAccessibilityConstants.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*
+ UIAccessibilityContainer
+ 
+ UIAccessibilityContainer methods can be overridden to vend individual elements
+ that are managed by a single UIView.
+ 
+ For example, a single UIView might draw several items that (to an
+ end user) have separate meaning and functionality.  It is important to vend
+ each item as an individual accessibility element.
+ 
+ Sub-elements of a container that are not represented by concrete UIView
+ instances (perhaps painted text or icons) can be represented using instances
+ of UIAccessibilityElement class (see UIAccessibilityElement.h).
+ 
+ Accessibility containers MUST return NO to -isAccessibilityElement.
+ */
+@interface NSObject (UIAccessibilityContainer)
+
+/*
+ Returns the number of accessibility elements in the container.
+ */
+- (NSInteger)accessibilityElementCount;
+
+/*
+ Returns the accessibility element in order, based on index.
+ default == nil
+ */
+- (nullable id)accessibilityElementAtIndex:(NSInteger)index;
+
+/*
+ Returns the ordered index for an accessibility element
+ default == NSNotFound
+ */
+- (NSInteger)indexOfAccessibilityElement:(id)element;
+
+// A list of container elements managed by the receiver.
+// This can be used as an alternative to implementing the dynamic methods.
+// default == nil
+@property (nullable, nonatomic, strong) NSArray *accessibilityElements NS_AVAILABLE_IOS(8_0);
+
+// Some containers provide more context for accessibility elements, such as tables or lists.
+// Set this property so that assistive technologies can output more information.
+// default == UIAccessibilityContainerTypeNone
+@property (nonatomic) UIAccessibilityContainerType accessibilityContainerType NS_AVAILABLE_IOS(11_0);
+
+@end
+
+/* 
+ The UIAccessibilityContainerDataTable and UIAccessibilityContainerDataTableCell protocols
+ convey more information specific to tables that contain structured data.
+ */
+
+NS_CLASS_AVAILABLE_IOS(11_0) @protocol UIAccessibilityContainerDataTableCell <NSObject>
+@required
+
+// The row/column index + the row/column span.
+// default == { NSNotFound, 0 }
+- (NSRange)accessibilityRowRange;
+- (NSRange)accessibilityColumnRange;
+
+@end
+
+NS_CLASS_AVAILABLE_IOS(11_0) @protocol UIAccessibilityContainerDataTable <NSObject>
+@required
+
+// Return the cell element for a specific row/column, including elements that span rows/columns.
+// default == nil
+- (nullable id<UIAccessibilityContainerDataTableCell>)accessibilityDataTableCellElementForRow:(NSUInteger)row column:(NSUInteger)column;
+
+- (NSUInteger)accessibilityRowCount;
+- (NSUInteger)accessibilityColumnCount;
+
+@optional
+// Return header elements for a specific row or column.
+// default == nil
+- (nullable NSArray<id<UIAccessibilityContainerDataTableCell>> *)accessibilityHeaderElementsForRow:(NSUInteger)row;
+- (nullable NSArray<id<UIAccessibilityContainerDataTableCell>> *)accessibilityHeaderElementsForColumn:(NSUInteger)column;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityContentSizeCategoryImageAdjusting.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityContentSizeCategoryImageAdjusting.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityContentSizeCategoryImageAdjusting.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityContentSizeCategoryImageAdjusting.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,42 @@
+//
+//  UIAccessibilityContentSizeCategoryImageAdjusting.h
+//  UIKit
+//
+//  Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+#import <UIKit/UIImageView.h>
+#import <UIKit/UIButton.h>
+#import <UIKit/NSTextAttachment.h>
+
+// These should be used in conjunction with the "Preserve vector data" checkbox for an asset catalog asset, to allow smooth scaling of symbolic glyphs.
+
+NS_ASSUME_NONNULL_BEGIN
+
+UIKIT_EXTERN API_AVAILABLE(ios(11.0),tvos(11.0))
+@protocol UIAccessibilityContentSizeCategoryImageAdjusting <NSObject>
+
+// When this is equal to YES, the receiver's intrinsic size will increase for users who prefer an accessibility content size category.
+@property (nonatomic) BOOL adjustsImageSizeForAccessibilityContentSizeCategory;
+
+@end
+
+// If the contentMode of the UIImageView is set to a mode that scales the image (e.g. the default one), the image will be scaled for an accessibility content size category. If not, the behavior is undefined.
+@interface UIImageView (UIAccessibilityContentSizeCategoryImageAdjusting) <UIAccessibilityContentSizeCategoryImageAdjusting>
+
+@end
+
+// If applicable, the image (not the background image) will be scaled for an accessibility content size category. Image edge insets are left unchanged.
+@interface UIButton (UIAccessibilityContentSizeCategoryImageAdjusting) <UIAccessibilityContentSizeCategoryImageAdjusting>
+
+@end
+
+// If an image is set, the attachment bounds' size will increase for users who prefer an accessibility content size category.
+// This should be used in a UIContentSizeCategoryAdjusting view that responds YES to adjustsFontForContentSizeCategory and has a font that can be adjusted. If not, the behavior is undefined.
+@interface NSTextAttachment (UIAccessibilityContentSizeCategoryImageAdjusting) <UIAccessibilityContentSizeCategoryImageAdjusting>
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityCustomAction.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityCustomAction.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityCustomAction.h	2016-08-12 00:59:13.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityCustomAction.h	2017-05-27 22:37:30.000000000 -0400
@@ -12,6 +12,7 @@
 NS_CLASS_AVAILABLE_IOS(8_0) @interface UIAccessibilityCustomAction : NSObject
 
 - (instancetype)initWithName:(NSString *)name target:(nullable id)target selector:(SEL)selector;
+- (instancetype)initWithAttributedName:(NSAttributedString *)attributedName target:(nullable id)target selector:(SEL)selector API_AVAILABLE(ios(11.0), tvos(11.0));
 
 /*
  A localized name that describes the action.
@@ -19,6 +20,12 @@
 @property (nonatomic, copy) NSString *name;
 
 /*
+ Underlying attributed version of the "name" property. Setting this property will change the
+ value of the "name" property and vice-versa.
+ */
+@property (nonatomic, copy) NSAttributedString *attributedName API_AVAILABLE(ios(11.0), tvos(11.0));
+
+/*
  The object that will perform the action.
  */
 @property (nullable, nonatomic, weak) id target;
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityCustomRotor.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityCustomRotor.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityCustomRotor.h	2016-08-12 00:59:12.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityCustomRotor.h	2017-05-27 22:37:30.000000000 -0400
@@ -31,6 +31,32 @@
     UIAccessibilityCustomRotorDirectionNext NS_ENUM_AVAILABLE_IOS(10_0),
 };
 
+/*
+ UIAccessibilityCustomSystemRotorType should be used when you want to allow searching for one of the following types.
+ This will allow VoiceOver to use appropriate gestures and keyboard commands for these specific search types.
+ */
+typedef NS_ENUM(NSInteger, UIAccessibilityCustomSystemRotorType) {
+    UIAccessibilityCustomSystemRotorTypeNone = 0,
+    UIAccessibilityCustomSystemRotorTypeLink,
+    UIAccessibilityCustomSystemRotorTypeVisitedLink,
+    UIAccessibilityCustomSystemRotorTypeHeading,
+    UIAccessibilityCustomSystemRotorTypeHeadingLevel1,
+    UIAccessibilityCustomSystemRotorTypeHeadingLevel2,
+    UIAccessibilityCustomSystemRotorTypeHeadingLevel3,
+    UIAccessibilityCustomSystemRotorTypeHeadingLevel4,
+    UIAccessibilityCustomSystemRotorTypeHeadingLevel5,
+    UIAccessibilityCustomSystemRotorTypeHeadingLevel6,
+    UIAccessibilityCustomSystemRotorTypeBoldText,
+    UIAccessibilityCustomSystemRotorTypeItalicText,
+    UIAccessibilityCustomSystemRotorTypeUnderlineText,
+    UIAccessibilityCustomSystemRotorTypeMisspelledWord,
+    UIAccessibilityCustomSystemRotorTypeImage,
+    UIAccessibilityCustomSystemRotorTypeTextField,
+    UIAccessibilityCustomSystemRotorTypeTable,
+    UIAccessibilityCustomSystemRotorTypeList,
+    UIAccessibilityCustomSystemRotorTypeLandmark,
+} NS_AVAILABLE_IOS(11_0);
+
 typedef UIAccessibilityCustomRotorItemResult *_Nullable(^UIAccessibilityCustomRotorSearch)(UIAccessibilityCustomRotorSearchPredicate *predicate);
 
 // Create the array of UIAccessibilityCustomRotors and set it on the target element or ancestor element to which it applies.
@@ -48,16 +74,27 @@
 NS_CLASS_AVAILABLE_IOS(10_0) @interface UIAccessibilityCustomRotor : NSObject
 
 - (instancetype)initWithName:(NSString *)name itemSearchBlock:(UIAccessibilityCustomRotorSearch)itemSearchBlock;
+- (instancetype)initWithAttributedName:(NSAttributedString *)attributedName itemSearchBlock:(UIAccessibilityCustomRotorSearch)itemSearchBlock API_AVAILABLE(ios(11.0), tvos(11.0));
+- (instancetype)initWithSystemType:(UIAccessibilityCustomSystemRotorType)type itemSearchBlock:(UIAccessibilityCustomRotorSearch)itemSearchBlock NS_AVAILABLE_IOS(11_0);
 
 // The localized name the assistive technology will use to describe the custom rotor.
 @property (nonatomic, copy) NSString *name;
 
+// Underlying attributed version of the "name" property. Setting this property will change the
+// value of the "name" property and vice-versa.
+@property (nonatomic, copy) NSAttributedString *attributedName API_AVAILABLE(ios(11.0), tvos(11.0));
+
 // A block that takes a UIAccessibilityCustomRotorItemResult and the search direction and returns the next/previous instance of that rotor item.
 // If the currentItem is nil, that implies the first/last item should be returned.
 @property (nonatomic, copy) UIAccessibilityCustomRotorSearch itemSearchBlock;
 
+// The system rotor type that was optionally used during initialization.
+// default = UIAccessibilityCustomSystemRotorTypeNone
+@property (nonatomic, readonly) UIAccessibilityCustomSystemRotorType systemRotorType;
+
 @end
 
+
 NS_CLASS_AVAILABLE_IOS(10_0) @interface UIAccessibilityCustomRotorItemResult : NSObject
 
 - (instancetype)initWithTargetElement:(id<NSObject>)targetElement targetRange:(nullable UITextRange *)targetRange;
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityLocationDescriptor.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityLocationDescriptor.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityLocationDescriptor.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityLocationDescriptor.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,63 @@
+//
+//  UIAccessibilityLocationDescriptor.h
+//  UIKit
+//
+//  Copyright (c) 2017 Apple Inc. All rights reserved.
+//
+
+
+#import <UIKit/UIKitDefines.h>
+#import <UIKit/UIView.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*
+ * UIAccessibilityLocationDescriptor objects are used to describe to assistive
+ * technologies points of interest within a view; where they are and how an assistive technology
+ * should describe them. For example, the `accessibilityDragSourceDescriptors` and
+ * `accessibilityDropPointDescriptors` properties in the UIAccessibilityDragging informal protocol
+ * use UIAccessibilityLocationDescriptor objects to describe where drags may begin and end.
+ */
+UIKIT_EXTERN API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @interface UIAccessibilityLocationDescriptor : NSObject
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+/* Convenience initializer that uses the view's accessibilityActivationPoint. (This point will be
+ * converted to the coordinate space of the view).
+ *
+ * Note that by default, the accessibilityActivationPoint of a view is its center.
+ */
+- (instancetype)initWithName:(NSString *)name view:(UIView *)view;
+
+/* Provide the view, the point in that view's coordinate space that is of interest, and a name to
+ * use to describe it to the user.
+ */
+- (instancetype)initWithName:(NSString *)name point:(CGPoint)point inView:(UIView *)view;
+- (instancetype)initWithAttributedName:(NSAttributedString *)attributedName point:(CGPoint)point inView:(UIView *)view NS_DESIGNATED_INITIALIZER;
+
+/* The view in which the described point resides.
+ *
+ * This property is weak to make it simple to avoid reference cycles. Descriptors whose views have
+ * been deallocated (or are no longer in a visible window, or are obscured) will be silently
+ * ignored. That said, you should still clean up after yourself.
+ */
+@property (nonatomic, readonly, weak) UIView *view;
+
+/* The point in the view that is being described. The point is in the view's coordinate space.
+ */
+@property (nonatomic, readonly) CGPoint point;
+
+/* The "name" property and initializer are conveniences for referring to the "attributedName"
+ * property, which is the real underlying property.
+ */
+@property (nonatomic, readonly, strong) NSString *name;
+
+/* Assistive technologies will use the attributedName of the descriptor when describing it to the
+ * user (for instance, VoiceOver will speak it).
+ */
+@property (nonatomic, readonly, strong) NSAttributedString *attributedName;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBarItem.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBarItem.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBarItem.h	2016-08-12 00:59:13.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBarItem.h	2017-05-27 22:37:30.000000000 -0400
@@ -24,8 +24,13 @@
 @property(nullable, nonatomic,copy)             NSString    *title;        // default is nil
 @property(nullable, nonatomic,strong)           UIImage     *image;        // default is nil
 @property(nullable, nonatomic,strong)           UIImage     *landscapeImagePhone NS_AVAILABLE_IOS(5_0) __TVOS_PROHIBITED; // default is nil
+
+// Higher-resolution version of the standard image. Default is nil. Used for rendering assistive UI (e.g. for users with visual impairments who need large text). If not provided, the system may attempt to generate an image based on the standard image (for instance, by rasterizing matching PDF representations at a higher resolution).
+@property(nullable, nonatomic,strong)           UIImage     *largeContentSizeImage API_AVAILABLE(ios(11.0));
+
 @property(nonatomic)                  UIEdgeInsets imageInsets;  // default is UIEdgeInsetsZero
 @property(nonatomic)                  UIEdgeInsets landscapeImagePhoneInsets NS_AVAILABLE_IOS(5_0) __TVOS_PROHIBITED;  // default is UIEdgeInsetsZero. These insets apply only when the landscapeImagePhone property is set.
+@property(nonatomic)                  UIEdgeInsets largeContentSizeImageInsets API_AVAILABLE(ios(11.0)); // default is UIEdgeInsetsZero. These insets apply only when the largeContentSizeImage property is set.
 @property(nonatomic)                  NSInteger    tag;          // default is 0
 
 /* You may specify the font, text color, and shadow properties for the title in the text attributes dictionary, using the keys found in NSAttributedString.h.
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBezierPath.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBezierPath.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBezierPath.h	2016-08-12 00:59:12.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBezierPath.h	2017-05-27 22:37:29.000000000 -0400
@@ -19,7 +19,7 @@
     UIRectCornerAllCorners  = ~0UL
 };
 
-NS_CLASS_AVAILABLE_IOS(3_2) @interface UIBezierPath : NSObject<NSCopying, NSCoding>
+NS_CLASS_AVAILABLE_IOS(3_2) @interface UIBezierPath : NSObject<NSCopying, NSSecureCoding>
 
 + (instancetype)bezierPath;
 + (instancetype)bezierPathWithRect:(CGRect)rect;
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBlurEffect.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBlurEffect.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBlurEffect.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBlurEffect.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,28 @@
+//
+//  UIBlurEffect.h
+//  UIKit
+//
+//  Copyright © 2016 Apple Inc. All rights reserved.
+//
+
+#import <UIKit/UIVisualEffect.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, UIBlurEffectStyle) {
+    UIBlurEffectStyleExtraLight,
+    UIBlurEffectStyleLight,
+    UIBlurEffectStyleDark,
+    UIBlurEffectStyleExtraDark __TVOS_AVAILABLE(10_0) __IOS_PROHIBITED __WATCHOS_PROHIBITED,
+    UIBlurEffectStyleRegular NS_ENUM_AVAILABLE_IOS(10_0), // Adapts to user interface style
+    UIBlurEffectStyleProminent NS_ENUM_AVAILABLE_IOS(10_0), // Adapts to user interface style
+} NS_ENUM_AVAILABLE_IOS(8_0);
+
+/* UIBlurEffect will provide a blur that appears to have been applied to the content layered behind the UIVisualEffectView. Views added to the contentView of a blur visual effect are not blurred themselves. */
+NS_CLASS_AVAILABLE_IOS(8.0) @interface UIBlurEffect : UIVisualEffect
+
++ (UIBlurEffect *)effectWithStyle:(UIBlurEffectStyle)style;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentSizeCategory.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentSizeCategory.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentSizeCategory.h	2016-08-12 00:59:12.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentSizeCategory.h	2017-05-27 22:37:29.000000000 -0400
@@ -34,4 +34,7 @@
 UIKIT_EXTERN NSNotificationName const UIContentSizeCategoryDidChangeNotification NS_AVAILABLE_IOS(7_0); // userInfo dictionary will contain new value for UIContentSizeCategoryNewValueKey
 UIKIT_EXTERN NSString *const UIContentSizeCategoryNewValueKey NS_AVAILABLE_IOS(7_0); // NSString instance with new content size category in userInfo
 
+UIKIT_EXTERN BOOL UIContentSizeCategoryIsAccessibilityCategory(UIContentSizeCategory category) API_AVAILABLE(ios(11.0),tvos(11.0),watchos(4.0)) NS_REFINED_FOR_SWIFT;
+UIKIT_EXTERN NSComparisonResult UIContentSizeCategoryCompareToCategory(UIContentSizeCategory lhs, UIContentSizeCategory rhs) API_AVAILABLE(ios(11.0),tvos(11.0),watchos(4.0)) NS_REFINED_FOR_SWIFT;
+
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentSizeCategoryAdjusting.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentSizeCategoryAdjusting.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentSizeCategoryAdjusting.h	2016-08-12 00:59:13.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentSizeCategoryAdjusting.h	2017-05-27 22:37:30.000000000 -0400
@@ -14,7 +14,9 @@
 
 /*
  Indicates whether the corresponding element should automatically update its font when the device’s UIContentSizeCategory is changed.
- For this property to take effect, the element’s font must be a font vended using +preferredFontForTextStyle: or +preferredFontForTextStyle:compatibleWithTraitCollection: with a valid UIFontTextStyle.
+ For this property to take effect, the element’s font must be one of the following:
+ - a font vended using +preferredFontForTextStyle: or +preferredFontForTextStyle:compatibleWithTraitCollection: with a valid UIFontTextStyle
+ - a font vended using - [UIFontMetrics scaledFontForFont:] or one of its variants
  */
 @property (nonatomic) BOOL adjustsFontForContentSizeCategory;
 
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContextualAction.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContextualAction.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContextualAction.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContextualAction.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,39 @@
+//
+//  UIContextualAction.h
+//  UIKit
+//
+//  Copyright © 2017 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+#import <UIKit/UIView.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class UIContextualAction;
+
+// call the completionHandler to reset the context to its normal state (e.g. when swiping, resets to unswiped state)
+// pass YES to the completionHandler if the action was actually performed, to show a visual indication of the successful completion
+typedef void (^UIContextualActionHandler)(UIContextualAction *action, __kindof UIView *sourceView, void(^completionHandler)(BOOL actionPerformed));
+
+typedef NS_ENUM(NSInteger, UIContextualActionStyle) {
+    UIContextualActionStyleNormal,
+    UIContextualActionStyleDestructive
+} NS_SWIFT_NAME(UIContextualAction.Style) API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos);
+
+UIKIT_EXTERN API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos)
+@interface UIContextualAction : NSObject
+
++ (instancetype)contextualActionWithStyle:(UIContextualActionStyle)style title:(nullable NSString *)title handler:(UIContextualActionHandler)handler;
+
+@property (nonatomic, readonly) UIContextualActionStyle style;
+@property (nonatomic, copy, readonly) UIContextualActionHandler handler;
+
+@property (nonatomic, copy, nullable) NSString *title;
+@property (nonatomic, copy, nullable) UIColor *backgroundColor; // a default background color is set from the action style
+@property (nonatomic, copy, nullable) UIImage *image;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDocumentInteractionController.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDocumentInteractionController.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDocumentInteractionController.h	2016-08-12 00:59:13.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDocumentInteractionController.h	2017-05-30 01:57:28.000000000 -0400
@@ -22,11 +22,11 @@
 
 @property(nullable, nonatomic, weak) id<UIDocumentInteractionControllerDelegate> delegate; // default is nil
 
-@property(nullable, strong)   NSURL    *URL;             // default is nil. if set, updates UTI, icon and name
-@property(nullable, nonatomic, copy)     NSString *UTI;             // determined from name if set, URL otherwise, override if the name or URL uses a custom scheme and the UTI can't be determined automatically
-@property(nullable, copy)               NSString *name;            // determined from URL, override if the URL uses a custom scheme and the name can't be determined automatically
-@property(nonatomic, readonly) NSArray<UIImage *>  *icons;           // determined from name if set, URL otherwise. will return a generic document icon if an icon cannot be determined. returns an array of icons sorted from smallest to largest.
-@property(nullable, nonatomic, strong)   id        annotation;      // additional plist information for application to pass to receiver (must be a plist object). default is nil.
+@property(nullable, strong)             NSURL    *URL;              // default is nil. if set, updates UTI, icon and name
+@property(nullable, nonatomic, copy)    NSString *UTI;              // determined from name if set, URL otherwise, override if the name or URL uses a custom scheme and the UTI can't be determined automatically
+@property(nullable, copy)               NSString *name;             // determined from URL, override if the URL uses a custom scheme and the name can't be determined automatically
+@property(nonatomic, readonly)          NSArray<UIImage *>  *icons; // determined from name if set, URL otherwise. will return a generic document icon if an icon cannot be determined. returns an array of icons sorted from smallest to largest.
+@property(nullable, nonatomic, strong)  id annotation;              // additional plist information for application to pass to receiver (must be a plist object). default is nil.
 
 // This is the default method you should call to give your users the option to quick look, open, or copy the document.
 // Presents a menu allowing the user to Quick Look, open, or copy the item specified by URL.
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragInteraction.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragInteraction.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragInteraction.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragInteraction.h	2017-05-27 22:37:39.000000000 -0400
@@ -0,0 +1,218 @@
+//
+//  UIDragInteraction.h
+//  UIKit
+//
+//  Copyright © 2017 Apple Inc. All rights reserved.
+//
+
+#import <UIKit/UIDropInteraction.h>
+#import <UIKit/UIInteraction.h>
+#import <UIKit/UIViewAnimating.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol UIDragInteractionDelegate, UIDragSession;
+@class UIDragItem, UITargetedDragPreview;
+
+
+API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @protocol UIDragAnimating <NSObject>
+
+/* Instances of UIDragAnimating provide you a way to animate your own changes
+ * alongside the drag and drop system's animations.
+ *
+ * Animatable view properties that are set by the animation block will be
+ * animated to their new values. 
+ */
+- (void)addAnimations:(void (^)(void))animations;
+- (void)addCompletion:(void (^)(UIViewAnimatingPosition finalPosition))completion;
+
+@end
+
+
+UIKIT_EXTERN API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @interface UIDragInteraction : NSObject <UIInteraction>
+
+- (instancetype)initWithDelegate:(id<UIDragInteractionDelegate>)delegate NS_DESIGNATED_INITIALIZER;
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@property (nonatomic, nullable, readonly, weak) id<UIDragInteractionDelegate> delegate;
+
+/* Whether this interaction is allowed to drag.
+ * If true, the interaction will use touches to begin drags and/or add items to drags.
+ * If false, it will ignore touches.
+ */
+@property (nonatomic, getter=isEnabled) BOOL enabled;
+
+/* The default value of `enabled` in newly created UIDragInteractions.
+ * The value depends on the device.
+ */
+@property (class, nonatomic, readonly, getter=isEnabledByDefault) BOOL enabledByDefault;
+
+@end
+
+
+API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @protocol UIDragInteractionDelegate <NSObject>
+
+@required
+
+/* Provide items to begin a drag.
+ *
+ * If these items represent things that are displayed in a linear order
+ * (for example, rows in a table), provide them in the same order, first
+ * to last.
+ *
+ * If an empty array is returned, then no drag will begin.
+ */
+- (NSArray<UIDragItem *> *)dragInteraction:(UIDragInteraction *)interaction itemsForBeginningSession:(id<UIDragSession>)session;
+
+@optional
+
+/* Provide a preview to display while lifting the drag item.
+ * Return nil to indicate that this item is not visible and should have no lift animation.
+ * If not implemented, a UITargetedDragPreview initialized with interaction.view will be used.
+ */
+- (nullable UITargetedDragPreview *)dragInteraction:(UIDragInteraction *)interaction previewForLiftingItem:(UIDragItem *)item session:(id<UIDragSession>)session;
+
+/* Called when the lift animation is about to start.
+ * Use the animator to animate your own changes alongside the system animation.
+ * Use the animator completion block to draw the source view differently
+ * and indicate that its items are being dragged.
+ */
+- (void)dragInteraction:(UIDragInteraction *)interaction willAnimateLiftWithAnimator:(id<UIDragAnimating>)animator session:(id<UIDragSession>)session;
+
+/* Drag session lifecycle. */
+
+/* Called when the the items are in their fully lifted appearance,
+ * and the user has started to drag the items away.
+ */
+- (void)dragInteraction:(UIDragInteraction *)interaction sessionWillBegin:(id<UIDragSession>)session;
+
+/* Return whether this drag allows the "move" drop operation to happen.
+ * This only applies to drops inside the same app. Drops in other apps are always copies.
+ *
+ * If true, then a UIDropInteraction's delegate's -dropInteraction:sessionDidUpdate:
+ * may choose to return UIDropOperationMove, and that operation will be provided to
+ * -dragInteraction:session:willEndWithOperation: and -dragInteraction:session:didEndWithOperation:.
+ *
+ * If not implemented, defaults to true.
+ */
+- (BOOL)dragInteraction:(UIDragInteraction *)interaction sessionAllowsMoveOperation:(id<UIDragSession>)session;
+
+/* Return whether this drag is restricted to only this application.
+ *
+ * If true, then the drag will be restricted. Only this application will be
+ * able to see the drag, and other applications will not.
+ * If the user drops it on another application, the drag will be cancelled.
+ *
+ * If false, then the drag is not restricted. Other applications may see the drag,
+ * and the user may drop it onto them.
+ *
+ * If not implemented, defaults to false.
+ */
+- (BOOL)dragInteraction:(UIDragInteraction *)interaction sessionIsRestrictedToDraggingApplication:(id<UIDragSession>)session;
+
+/* Return whether this drag's items' previews should be shown in their full
+ * original size while over the source view. For instance, if you are reordering
+ * items, you may want them not to shrink like they otherwise would.
+ *
+ * If not implemented, defaults to false.
+ */
+- (BOOL)dragInteraction:(UIDragInteraction *)interaction prefersFullSizePreviewsForSession:(id<UIDragSession>)session;
+
+/* Called when the drag has moved (because the user's touch moved).
+ * Use -[UIDragSession locationInView:] to get its new location.
+ */
+- (void)dragInteraction:(UIDragInteraction *)interaction sessionDidMove:(id<UIDragSession>)session;
+
+/* Called when the user is done dragging, and the drag will finish.
+ *
+ * If the operation is UIDropOperationCancel or UIDropOperationForbidden,
+ * the delegate should prepare its views to show an appropriate appearance 
+ * before the cancel animation starts.
+ */
+- (void)dragInteraction:(UIDragInteraction *)interaction session:(id<UIDragSession>)session willEndWithOperation:(UIDropOperation)operation;
+
+/* Called when the user is done dragging and all related animations are
+ * completed. The app should now return to its normal appearance.
+ *
+ * If the operation is UIDropOperationCopy or UIDropOperationMove, 
+ * then data transfer will begin, and -dragInteraction:sessionDidTransferItems: will be called later.
+ */
+- (void)dragInteraction:(UIDragInteraction *)interaction session:(id<UIDragSession>)session didEndWithOperation:(UIDropOperation)operation;
+
+/* Called after a drop happened and the handler of the drop has received
+ * all of the data that it requested. You may now clean up any extra information
+ * relating to those items or their item providers.
+ */
+- (void)dragInteraction:(UIDragInteraction *)interaction sessionDidTransferItems:(id<UIDragSession>)session;
+
+/* Adding items to an existing drag. */
+
+/* To allow touches on this view to add items to an existing drag,
+ * implement `-dragInteraction:itemsForAddingToSession:withTouchAtPoint:`.
+ *
+ * If the provided session is an appropriate one to use, then return an array of items,
+ * just like in `-dragInteraction:itemsForBeginningSession:`. They will be added to the 
+ * drag session.
+ * Afterwards, `-dragInteraction:session:willAddItems:forInteraction:` will be sent
+ * to each interaction which has contributed items to the session, including this one.
+ *
+ * Otherwise, return an empty array. No items will be added, and the touch
+ * will be handled as if the other drag session did not exist.
+ *
+ * If this method is not implemented, acts as though an an empty array was returned.
+ *
+ * Use the point, in the view's coordinate space, to determine what part of your view
+ * has been touched.
+ */
+- (NSArray<UIDragItem *> *)dragInteraction:(UIDragInteraction *)interaction itemsForAddingToSession:(id<UIDragSession>)session withTouchAtPoint:(CGPoint)point;
+
+/* If there are two or more existing drag sessions, it may not be clear to the user
+ * which session items will be added to. Therefore, by default, we do not add to any session.
+ *
+ * If you *do* want to add the item to a session, implement
+ * `-dragInteraction:sessionForAddingItems:withTouchAtPoint:` and return the
+ * appropriate session. This should be rare.
+ *
+ * To continue without adding items, return nil.
+ *
+ * If this method is not implemented, defaults to nil.
+ */
+- (nullable id<UIDragSession>)dragInteraction:(UIDragInteraction *)interaction sessionForAddingItems:(NSArray<id<UIDragSession>> *)sessions withTouchAtPoint:(CGPoint)point;
+
+/* Similar to -dragInteraction:sessionWillBegin:, but for
+ * items added to an session after it has already begun.
+ *
+ * Note that the interaction that is causing the items to be added
+ * may be different than the interaction that started the drag.
+ * This method is called on the delegates of all interactions that ever added items
+ * to this session. `addingInteraction` is the interaction that is causing
+ * these new items to be dragged.
+ */
+- (void)dragInteraction:(UIDragInteraction *)interaction session:(id<UIDragSession>)session willAddItems:(NSArray<UIDragItem *> *)items forInteraction:(UIDragInteraction *)addingInteraction;
+
+/* Drag cancellation animation. */
+
+/* Called when the drag is cancelled, once for each visible item.
+ * Provide a preview to animate the item back to where it belongs.
+ * We provide `defaultPreview` which would move the current preview back to where it came from.
+ * You may return:
+ * - defaultPreview, to use it as-is
+ * - nil, to fade the drag item in place
+ * - [defaultPreview retargetedPreviewWithTarget:] to move the preview to a different target
+ * - a UITargetedDragPreview that you create however you like
+ */
+- (nullable UITargetedDragPreview *)dragInteraction:(UIDragInteraction *)interaction previewForCancellingItem:(UIDragItem *)item withDefault:(UITargetedDragPreview *)defaultPreview;
+
+/* Called when the cancel animation is about to start, once for each
+ * visible item. 
+ * Use the animator to animate your own changes alongside the system animation.
+ *
+ * (Note that the drag shows a limited number of items, so some of the items
+ *  may not be visible.)
+ */
+- (void)dragInteraction:(UIDragInteraction *)interaction item:(UIDragItem *)item willAnimateCancelWithAnimator:(id<UIDragAnimating>)animator;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragItem.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragItem.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragItem.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragItem.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,45 @@
+//
+//  UIDragItem.h
+//  UIKit
+//
+//  Copyright © 2017 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class UIDragPreview;
+
+UIKIT_EXTERN API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @interface UIDragItem : NSObject
+
+- (instancetype)initWithItemProvider:(NSItemProvider *)itemProvider NS_DESIGNATED_INITIALIZER;
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@property (nonatomic, readonly) __kindof NSItemProvider *itemProvider;
+
+/* Use `localObject` to attach additional information to
+ * this drag item, visible only inside the app that started the drag.
+ */
+@property (nonatomic, strong, nullable) id localObject;
+
+/* Use `previewProvider` to change the preview for an item.
+ *
+ * Each item is usually given a preview when the drag begins,
+ * either by the UIDragInteractionDelegate's `-dragInteraction:previewForLiftingItem:session:`
+ * method, or by creating a preview from the dragging view.
+ *
+ * During the drag, applications may attempt to change the item's preview,
+ * by setting `previewProvider` to a block that returns a preview.
+ * It will be called when and if the system requests it.
+ *
+ * To use the default preview, set `previewProvider` to nil.
+ * To hide the preview, set `previewProvider` to a block that returns nil.
+ */
+@property (nonatomic, copy, nullable) UIDragPreview * _Nullable (^previewProvider)(void);
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragPreview.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragPreview.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragPreview.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragPreview.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,46 @@
+//
+//  UIDragPreview.h
+//  UIKit
+//
+//  Copyright © 2017 Apple Inc. All rights reserved.
+//
+
+#import <CoreGraphics/CoreGraphics.h>
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class UIDragPreviewParameters, UIView;
+
+UIKIT_EXTERN API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @interface UIDragPreview : NSObject <NSCopying>
+
+/* UIDragPreview is a preview used after a drag has started,
+ * when no lift, drop, or cancel animation is running.
+ *
+ * A UIDragItem's `previewProvider` may be set to a block that
+ * creates and returns a UIDragPreview.
+ *
+ * The preview will show a static snapshot of the provided view. Subsequent changes
+ * to the view will not appear. The UIDragPreview will not change or move the view.
+ */
+
+/* Create a preview based on a view and parameters.
+ * Note: it doesn't matter whether this view is in a window or not.
+ */
+- (instancetype)initWithView:(UIView *)view parameters:(UIDragPreviewParameters *)parameters NS_DESIGNATED_INITIALIZER;
+
+/* Use the default parameters.
+ */
+- (instancetype)initWithView:(UIView *)view;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@property (nonatomic, readonly) UIView *view;
+
+@property (nonatomic, readonly, copy) UIDragPreviewParameters *parameters;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragPreviewParameters.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragPreviewParameters.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragPreviewParameters.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragPreviewParameters.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,46 @@
+//
+//  UIDragPreviewParameters.h
+//  UIKit
+//
+//  Copyright © 2017 Apple Inc. All rights reserved.
+//
+
+#import <CoreGraphics/CoreGraphics.h>
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class UIBezierPath, UIColor;
+
+UIKIT_EXTERN API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @interface UIDragPreviewParameters : NSObject <NSCopying>
+
+/* The default parameters. Use these for most drags.
+ */
+- (instancetype)init NS_DESIGNATED_INITIALIZER;
+
+/* Parameters to show a preview of text.
+ *
+ * To clip the preview to only specific lines of text, specify one or more
+ * `NSValue`s containing `CGRect`s of those lines, in the view's coordinate
+ * system.
+ *
+ * The `visiblePath` property below will be set to a path based on the rects.
+ * If `textLineRects` is empty, the whole view will be shown.
+ */
+- (instancetype)initWithTextLineRects:(NSArray<NSValue /* CGRect */ *> *)textLineRects;
+
+/* The part of the view that should be shown in the preview.
+ * If `nil`, the whole view will be shown.
+ * Specify a path in the coordinate space of the view.
+ */
+@property (nonatomic, copy, nullable) UIBezierPath *visiblePath;
+
+/* The background color that the preview draws behind the specified view.
+ * Set this to `nil` to reset to the default value.
+ */
+@property (nonatomic, copy, null_resettable) UIColor *backgroundColor;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragSession.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragSession.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragSession.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragSession.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,116 @@
+//
+//  UIDragSession.h
+//  UIKit
+//
+//  Copyright © 2017 Apple Inc. All rights reserved.
+//
+
+#import <CoreGraphics/CoreGraphics.h>
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class UIDragItem, UIView;
+
+API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @protocol UIDragDropSession <NSObject>
+
+/* A common protocol used for both drag and drop sessions. */
+
+/* The items in the session.
+ *
+ * Before the drop happens, the items' NSItemProviders do not allow
+ * the data in the NSItemProvider to be loaded.
+ * However, `registeredTypeIdentifiers` and metadata are available at any time.
+ * You may request the data only inside the UIDropInteractionDelegate's implementation
+ * of `-dropInteraction:performDrop:`.
+ *
+ * When handling the drop, if you display dropped items in a linear order,
+ * place them in this order, first to last.
+ */
+@property (nonatomic, readonly) NSArray<UIDragItem *> *items;
+
+/* The location of the drag in the specified view.
+ */
+- (CGPoint)locationInView:(nullable UIView *)view;
+
+/* Whether this session allows moving, or not.
+ *
+ * This is determined based on the UIDragInteraction's delegate's
+ * `-dragInteraction:sessionAllowsMoveOperation:`.
+ *
+ * If true, then the delegate of UIDropInteraction is allowed to return `UIDropOperationMove`
+ * from `-dropInteraction:sessionDidUpdate:`.
+ */
+@property (nonatomic, readonly) BOOL allowsMoveOperation;
+
+/* Whether this session is restricted to the application that began the drag.
+ *
+ * This is determined based on the UIDragInteraction's delegate's
+ * `-dragInteraction:sessionIsRestrictedToDraggingApplication:`.
+ */
+@property (nonatomic, readonly, getter=isRestrictedToDraggingApplication) BOOL restrictedToDraggingApplication;
+
+/* Convenience methods to iterate through this session's `items`.
+ *
+ * Returns true if any of the session's items conforms to any of the specified UTIs.
+ */
+- (BOOL)hasItemsConformingToTypeIdentifiers:(NSArray<NSString *> *)typeIdentifiers;
+
+/* Returns true if any of the session's items could create any objects of the specified class.
+ */
+- (BOOL)canLoadObjectsOfClass:(Class<NSItemProviderReading>)aClass;
+
+/* DEPRECATED, DO NOT USE. Will be removed in a later seed.
+ */
+- (BOOL)canLoadObjectsOfClasses:(NSArray<Class<NSItemProviderReading>> *)classes API_DEPRECATED_WITH_REPLACEMENT("canLoadObjectsOfClass:", ios(11.0, 11.0));
+
+@end
+
+
+API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @protocol UIDragSession <UIDragDropSession>
+
+/* Use `localContext` to attach additional information to this drag session,
+ * visible only inside the app that started the drag.
+ */
+@property (nonatomic, strong, nullable) id localContext;
+
+@end
+
+
+typedef NS_ENUM(NSUInteger, UIDropSessionProgressIndicatorStyle) {
+    UIDropSessionProgressIndicatorStyleNone,       // No indicator is displayed
+    UIDropSessionProgressIndicatorStyleDefault,    // A default indicator is displayed
+} API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos);
+
+API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @protocol UIDropSession <UIDragDropSession, NSProgressReporting>
+
+/* The `UIDragSession` that corresponds to this `UIDropSession`.
+ * If the drag was started in a different app, this is nil.
+ */
+@property (nonatomic, readonly, nullable) id<UIDragSession> localDragSession;
+
+/* The kind of progress and cancellation UI that UIKit will display
+ * if handling this session's drop takes a significant amount of time.
+ *
+ * The default value is UIDropSessionProgressIndicatorStyleDefault,
+ * meaning that some progress UI will be shown. If you show your own
+ * progress indicator, hide the system progress UI by setting this
+ * property to UIDropSessionProgressIndicatorStyleNone.
+ */
+@property (nonatomic) UIDropSessionProgressIndicatorStyle progressIndicatorStyle;
+
+/* A convenience method that can be used only during the UIDropInteractionDelegate's
+ * implementation of `-dropInteraction:performDrop:`.
+ * Asynchronously instantiates objects of the provided class for each
+ * drag item that can do so. The completion handler is called on the
+ * main queue, with an array of all objects that were created, in the
+ * same order as `items`.
+ * The progress returned is an aggregate of the progress for all objects
+ * that are loaded.
+ */
+- (NSProgress *)loadObjectsOfClass:(Class<NSItemProviderReading>)aClass completion:(void(^)(NSArray<__kindof id<NSItemProviderReading>> *objects))completion;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDropInteraction.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDropInteraction.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDropInteraction.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDropInteraction.h	2017-05-27 22:37:39.000000000 -0400
@@ -0,0 +1,201 @@
+//
+//  UIDropInteraction.h
+//  UIKit
+//
+//  Copyright © 2017 Apple Inc. All rights reserved.
+//
+
+#import <UIKit/UIInteraction.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol UIDragAnimating, UIDropInteractionDelegate, UIDropSession;
+@class UIDragItem, UITargetedDragPreview;
+
+
+UIKIT_EXTERN API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @interface UIDropInteraction : NSObject <UIInteraction>
+
+- (instancetype)initWithDelegate:(id<UIDropInteractionDelegate>)delegate NS_DESIGNATED_INITIALIZER;
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@property (nonatomic, nullable, readonly, weak) id<UIDropInteractionDelegate> delegate;
+
+/* Whether to allow this interaction to handle more than one drop session
+ * at the same time. A well-behaved delegate can handle this correctly,
+ * but many will find it challenging, so the default value is false.
+ * If false, then after one session has entered the view, other sessions will
+ * be ignored until the first session exits and the other session enters again.
+ */
+@property (nonatomic, assign) BOOL allowsSimultaneousDropSessions;
+
+@end
+
+
+/* The UIDropInteraction's delegate uses a UIDropOperation to tell the system
+ * what operation it will perform if the user drops.
+ */
+typedef NS_ENUM(NSUInteger, UIDropOperation) {
+    /* Operations that do NOT cause data transfer.
+     *
+     * If the user drops here, the UIDropInteraction's -dropInteraction:performDrop:
+     * method will NOT be called.
+     */
+
+    /* The drag will be cancelled.
+     */
+    UIDropOperationCancel   = 0,
+
+    /* The drag will be cancelled.
+     * Use this operation to signal that this interaction would *normally* perform
+     * a different operation, but that it explicitly forbids a drop at this specific
+     * time and place.
+     * This may cause a special symbol to be displayed on the drag image.
+     */
+    UIDropOperationForbidden = 1,
+
+    /* Operations that cause data transfer.
+     *
+     * If the user drops here, the UIDropInteraction's -dropInteraction:performDrop:
+     * method will be called.
+     */
+
+    /* The data represented by the drag item(s) will be copied.
+     * This is the most common operation to use.
+     */
+    UIDropOperationCopy      = 2,
+
+    /* The data represented by the drag item(s) will be moved.
+     *
+     * You may use this only if UIDropSession's allowsMoveOperation is true.
+     * Otherwise it will be treated as UIDropOperationCancel.
+     *
+     * Note that the system does not give any special meaning to this operation.
+     * The delegates of both the UIDragInteraction and UIDropInteraction must
+     * cooperate to produce the correct result. For instance, the UIDropInteraction's
+     * delegate might insert the data in the new location, and the UIDragInteraction's
+     * delegate might remove the data from the old location.
+     */
+    UIDropOperationMove      = 3,
+} API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos);
+
+
+UIKIT_EXTERN API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @interface UIDropProposal : NSObject <NSCopying>
+
+- (instancetype)initWithDropOperation:(UIDropOperation)operation NS_DESIGNATED_INITIALIZER;
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+/* The operation that this interaction proposes to perform.
+ */
+@property (nonatomic, readonly) UIDropOperation operation;
+
+/* Set `precise` to true to specify that this drop interaction wants to handle the drop
+ * in a precise way, e.g. dropping into text. The drag system may move the drag point
+ * away from the touch in order to make it easier to hit a small target.
+ */
+@property (nonatomic, getter=isPrecise) BOOL precise;
+
+/* Signals that this drop interaction wants the preview to be shown
+ * at its full original size, not scaled smaller, while this proposal is in effect.
+ * For instance, you might set this to true if the items are being moved from some
+ * other nearby view, and scaling them smaller would be distracting.
+ * This only applies to drags that started in the same app.
+ */
+@property (nonatomic) BOOL prefersFullSizePreview;
+
+@end
+
+
+API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @protocol UIDropInteractionDelegate <NSObject>
+
+@optional
+
+/* Return whether the delegate is interested in the given session.
+ * If this method is not implemented, or if it returns true, then the
+ * other delegate methods will be called, starting with `-dropInteraction:sessionDidEnter:`.
+ * If it returns false, this interaction will ignore this session. (We may ask again
+ * if something significant about the session changes, like the items in it.)
+ *
+ * Note that returning true does not mean that the delegate definitely *will* accept this drop,
+ * just that it *might* want to accept the drop.
+ * To accept it, you must also implement `-dropInteraction:sessionDidUpdate:` and return a
+ * UIDropProposal with an appropriate operation.
+ *
+ * This method is commonly used to check whether the session contains any
+ * items that this delegate can consume. Use `UIDropSession`'s convenience methods
+ * `-hasItemsConformingToTypeIdentifiers:`, `-canLoadObjectsOfClass:`, etc.
+ */
+- (BOOL)dropInteraction:(UIDropInteraction *)interaction canHandleSession:(id<UIDropSession>)session;
+
+/* Called when a drag enters the view.
+ */
+- (void)dropInteraction:(UIDropInteraction *)interaction sessionDidEnter:(id<UIDropSession>)session;
+
+/* Called when the drag enters the interaction's view, or when when the drag 
+ * moves while inside the view, or if items are added to the drag while inside the view.
+ *
+ * You *must* implement this method to accept a drop.
+ * Return a `UIDropProposal` that contains the operation that the delegate
+ * would like to perform. (Note that you may use `UIDropOperationMove` only if
+ * session.allowsMoveOperation is true.)
+ *
+ * You may also set other properties on the `UIDropProposal` to change the appearance
+ * of the drag over this view.
+ *
+ * Use the session's `-locationInView:` to get a point to use for hit testing.
+ */
+- (UIDropProposal *)dropInteraction:(UIDropInteraction *)interaction sessionDidUpdate:(id<UIDropSession>)session;
+
+/* Called when the drag has exited the interaction's view.
+ */
+- (void)dropInteraction:(UIDropInteraction *)interaction sessionDidExit:(id<UIDropSession>)session;
+
+/* Called when the user drops onto this interaction's view.
+ * The delegate should now request data from the session's
+ * items' item providers. Data may be requested *only* during
+ * the scope of this method.
+ */
+- (void)dropInteraction:(UIDropInteraction *)interaction performDrop:(id<UIDropSession>)session;
+
+/* Called when the user has dropped onto this interaction's view,
+ * after `-dropInteraction:performDrop:` has been called,
+ * and all resulting drop animations have completed.
+ *
+ * The delegate should cause the interaction's view to draw in its final post-drop state.
+ */
+- (void)dropInteraction:(UIDropInteraction *)interaction concludeDrop:(id<UIDropSession>)session;
+
+/* When the drag session ends, for any reason, this method will be called
+ * for *every* interaction that ever received `-dropInteraction:sessionDidEnter:`,
+ * `-dropInteraction:sessionDidUpdate:`, or `-dropInteraction:sessionDidExit:`.
+ *
+ * If you were keeping track of the session for any reason, you may now forget it.
+ */
+- (void)dropInteraction:(UIDropInteraction *)interaction sessionDidEnd:(id<UIDropSession>)session;
+
+/* Drop animation. */
+
+/* Called when the drop happens, after `-dropInteraction:performDrop:`, once for each visible item.
+ * Provide a preview to animate the item to where it belongs.
+ * We provide `defaultPreview` which would move the current preview to the center of the interaction's view.
+ * You may return:
+ * - defaultPreview, to use it as-is
+ * - nil, to fade the drag item in place
+ * - [defaultPreview retargetedPreviewWithTarget:] to move the preview to a different target
+ * - a UITargetedDragPreview that you create however you like
+ */
+- (nullable UITargetedDragPreview *)dropInteraction:(UIDropInteraction *)interaction previewForDroppingItem:(UIDragItem *)item withDefault:(UITargetedDragPreview *)defaultPreview;
+
+/* Called when the drop animation is about to start, once for each
+ * visible item. Use the animator to animate your own changes alongside
+ * the system animation.
+ *
+ * (Note that the drag shows a limited number of items, so some of the items
+ *  may not be visible.)
+ */
+- (void)dropInteraction:(UIDropInteraction *)interaction item:(UIDragItem *)item willAnimateDropWithAnimator:(id<UIDragAnimating>)animator;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFont.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFont.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFont.h	2016-08-12 00:59:12.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFont.h	2017-05-27 22:37:30.000000000 -0400
@@ -19,7 +19,7 @@
 // Returns an instance of the font associated with the text style and scaled appropriately for the user's selected content size category. See UIFontDescriptor.h for the complete list.
 + (UIFont *)preferredFontForTextStyle:(UIFontTextStyle)style NS_AVAILABLE_IOS(7_0);
 // Returns an instance of the font associated with the text style and scaled appropriately for the content size category defined in the trait collection.
-+ (UIFont *)preferredFontForTextStyle:(UIFontTextStyle)style compatibleWithTraitCollection:(nullable UITraitCollection *)traitCollection NS_AVAILABLE_IOS(10_0);
++ (UIFont *)preferredFontForTextStyle:(UIFontTextStyle)style compatibleWithTraitCollection:(nullable UITraitCollection *)traitCollection NS_AVAILABLE_IOS(10_0) __WATCHOS_PROHIBITED;
 
 // Returns a font using CSS name matching semantics.
 + (nullable UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize;
@@ -45,8 +45,8 @@
 // Weights used here are analogous to those used with UIFontDescriptor's UIFontWeightTrait.
 // See the UIFontWeight... constants in UIFontDescriptor.h for suggested values.
 // The caveat above about the use of ...systemFont... methods applies to these methods too.
-+ (UIFont *)systemFontOfSize:(CGFloat)fontSize weight:(CGFloat)weight NS_AVAILABLE_IOS(8_2);
-+ (UIFont *)monospacedDigitSystemFontOfSize:(CGFloat)fontSize weight:(CGFloat)weight NS_AVAILABLE_IOS(9_0);
++ (UIFont *)systemFontOfSize:(CGFloat)fontSize weight:(UIFontWeight)weight NS_AVAILABLE_IOS(8_2);
++ (UIFont *)monospacedDigitSystemFontOfSize:(CGFloat)fontSize weight:(UIFontWeight)weight NS_AVAILABLE_IOS(9_0);
 
 
 // Font attributes
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIInteraction.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIInteraction.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIInteraction.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIInteraction.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,31 @@
+//
+//  UIInteraction.h
+//  UIKit
+//
+//  Copyright © 2017 Apple Inc. All rights reserved.
+//
+
+#import <UIKit/UIView.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @protocol UIInteraction <NSObject>
+
+@property (nonatomic, nullable, weak, readonly) __kindof UIView *view;
+
+- (void)willMoveToView:(nullable UIView *)view;
+- (void)didMoveToView:(nullable UIView *)view;
+
+@end
+
+
+@interface UIView (Interactions)
+
+- (void)addInteraction:(id<UIInteraction>)interaction API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos);
+- (void)removeInteraction:(id<UIInteraction>)interaction API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos);
+
+@property (nonatomic, copy) NSArray<id<UIInteraction>> *interactions API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos);
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes	2017-05-30 01:57:28.000000000 -0400
@@ -0,0 +1,936 @@
+#
+# Swift 3 specific notes are at the end of the file.
+# The following are notes applicable to Swift 3 and Swift 4.
+#
+---
+Name: UIKit
+Classes:
+- Name: UIBezierPath
+  Methods:
+  - Selector: 'reversing'
+    SwiftName: 'reversed'
+    MethodKind: Instance
+- Name: UIPrintInfo
+  Methods:
+  - Selector: printInfo
+    MethodKind: Class
+    SwiftName: 'printInfo()'
+- Name: UIPrintInteractionController
+  Properties:
+  - Name: 'sharedPrintController'
+    SwiftName: shared
+- Name: NSLayoutAnchor
+  Methods:
+  - Selector: 'constraintEqualToAnchor:'
+    SwiftName: constraint(equalTo:)
+    MethodKind: Instance
+  - Selector: 'constraintGreaterThanOrEqualToAnchor:'
+    SwiftName: constraint(greaterThanOrEqualTo:)
+    MethodKind: Instance
+  - Selector: 'constraintLessThanOrEqualToAnchor:'
+    SwiftName: constraint(lessThanOrEqualTo:)
+    MethodKind: Instance
+  - Selector: 'constraintEqualToAnchor:constant:'
+    SwiftName: constraint(equalTo:constant:)
+    MethodKind: Instance
+  - Selector: 'constraintGreaterThanOrEqualToAnchor:constant:'
+    SwiftName: constraint(greaterThanOrEqualTo:constant:)
+    MethodKind: Instance
+  - Selector: 'constraintLessThanOrEqualToAnchor:constant:'
+    SwiftName: constraint(lessThanOrEqualTo:constant:)
+    MethodKind: Instance
+- Name: NSLayoutXAxisAnchor
+  Methods:
+  - Selector: 'constraintEqualToSystemSpacingAfterAnchor:multiplier:'
+    SwiftName: constraintEqualToSystemSpacingAfter(_:multiplier:)
+    MethodKind: Instance
+  - Selector: 'constraintGreaterThanOrEqualToSystemSpacingAfterAnchor:multiplier:'
+    SwiftName: constraintGreaterThanOrEqualToSystemSpacingAfter(_:multiplier:)
+    MethodKind: Instance
+  - Selector: 'constraintLessThanOrEqualToSystemSpacingAfterAnchor:multiplier:'
+    SwiftName: constraintLessThanOrEqualToSystemSpacingAfter(_:multiplier:)
+    MethodKind: Instance
+- Name: NSLayoutYAxisAnchor
+  Methods:
+  - Selector: 'constraintEqualToSystemSpacingBelowAnchor:multiplier:'
+    SwiftName: constraintEqualToSystemSpacingBelow(_:multiplier:)
+    MethodKind: Instance
+  - Selector: 'constraintGreaterThanOrEqualToSystemSpacingBelowAnchor:multiplier:'
+    SwiftName: constraintGreaterThanOrEqualToSystemSpacingBelow(_:multiplier:)
+    MethodKind: Instance
+  - Selector: 'constraintLessThanOrEqualToSystemSpacingBelowAnchor:multiplier:'
+    SwiftName: constraintLessThanOrEqualToSystemSpacingBelow(_:multiplier:)
+    MethodKind: Instance
+- Name: NSLayoutDimension
+  Methods:
+  - Selector: 'constraintEqualToConstant:'
+    SwiftName: constraint(equalToConstant:)
+    MethodKind: Instance
+  - Selector: 'constraintGreaterThanOrEqualToConstant:'
+    SwiftName: constraint(greaterThanOrEqualToConstant:)
+    MethodKind: Instance
+  - Selector: 'constraintLessThanOrEqualToConstant:'
+    SwiftName: constraint(lessThanOrEqualToConstant:)
+    MethodKind: Instance
+  - Selector: 'constraintEqualToAnchor:multiplier:'
+    SwiftName: constraint(equalTo:multiplier:)
+    MethodKind: Instance
+  - Selector: 'constraintGreaterThanOrEqualToAnchor:multiplier:'
+    SwiftName: constraint(greaterThanOrEqualTo:multiplier:)
+    MethodKind: Instance
+  - Selector: 'constraintLessThanOrEqualToAnchor:multiplier:'
+    SwiftName: constraint(lessThanOrEqualTo:multiplier:)
+    MethodKind: Instance
+  - Selector: 'constraintEqualToAnchor:multiplier:constant:'
+    SwiftName: constraint(equalTo:multiplier:constant:)
+    MethodKind: Instance
+  - Selector: 'constraintGreaterThanOrEqualToAnchor:multiplier:constant:'
+    SwiftName: constraint(greaterThanOrEqualTo:multiplier:constant:)
+    MethodKind: Instance
+  - Selector: 'constraintLessThanOrEqualToAnchor:multiplier:constant:'
+    SwiftName: constraint(lessThanOrEqualTo:multiplier:constant:)
+    MethodKind: Instance
+- Name: NSLayoutConstraint
+  Properties:
+  - Name: firstItem
+    Nullability: O
+- Name: NSLayoutManager
+  Methods:
+  - Selector: 'getGlyphsInRange:glyphs:properties:characterIndexes:bidiLevels:'
+    SwiftName: getGlyphs(in:glyphs:properties:characterIndexes:bidiLevels:)
+    MethodKind: Instance
+  - Selector: 'textContainerForGlyphAtIndex:effectiveRange:'
+    SwiftName: textContainer(forGlyphAt:effectiveRange:)
+    MethodKind: Instance
+  - Selector: 'textContainerForGlyphAtIndex:effectiveRange:withoutAdditionalLayout:'
+    SwiftName: textContainer(forGlyphAt:effectiveRange:withoutAdditionalLayout:)
+    MethodKind: Instance
+  - Selector: 'lineFragmentRectForGlyphAtIndex:effectiveRange:'
+    SwiftName: lineFragmentRect(forGlyphAt:effectiveRange:)
+    MethodKind: Instance
+  - Selector: 'lineFragmentRectForGlyphAtIndex:effectiveRange:withoutAdditionalLayout:'
+    SwiftName: lineFragmentRect(forGlyphAt:effectiveRange:withoutAdditionalLayout:)
+    MethodKind: Instance
+  - Selector: 'lineFragmentUsedRectForGlyphAtIndex:effectiveRange:'
+    SwiftName: lineFragmentUsedRect(forGlyphAt:effectiveRange:)
+    MethodKind: Instance
+  - Selector: 'lineFragmentUsedRectForGlyphAtIndex:effectiveRange:withoutAdditionalLayout:'
+    SwiftName: lineFragmentUsedRect(forGlyphAt:effectiveRange:withoutAdditionalLayout:)
+    MethodKind: Instance
+  - Selector: 'locationForGlyphAtIndex:'
+    SwiftName: location(forGlyphAt:)
+    MethodKind: Instance
+  - Selector: 'notShownAttributeForGlyphAtIndex:'
+    SwiftName: notShownAttribute(forGlyphAt:)
+    MethodKind: Instance
+  - Selector: 'drawsOutsideLineFragmentForGlyphAtIndex:'
+    SwiftName: drawsOutsideLineFragment(forGlyphAt:)
+    MethodKind: Instance
+  - Selector: 'attachmentSizeForGlyphAtIndex:'
+    SwiftName: attachmentSize(forGlyphAt:)
+    MethodKind: Instance
+  - Selector: 'truncatedGlyphRangeInLineFragmentForGlyphAtIndex:'
+    SwiftName: truncatedGlyphRange(inLineFragmentForGlyphAt:)
+    MethodKind: Instance
+  - Selector: 'getLineFragmentInsertionPointsForCharacterAtIndex:alternatePositions:inDisplayOrder:positions:characterIndexes:'
+    SwiftName: getLineFragmentInsertionPoints(forCharacterAt:alternatePositions:inDisplayOrder:positions:characterIndexes:)
+    MethodKind: Instance
+- Name: NSString
+  Methods:
+  - Selector: 'sizeWithAttributes:'
+    SwiftName: size(withAttributes:)
+    MethodKind: Instance
+- Name: UIApplication
+  Methods:
+  - Selector: 'openURL:'
+    SwiftName: openURL(_:)
+    MethodKind: Instance
+  - Selector: 'canOpenURL:'
+    SwiftName: canOpenURL(_:)
+    MethodKind: Instance
+  - Selector: 'sendEvent:'
+    SwiftName: sendEvent(_:)
+    MethodKind: Instance
+  - Selector: 'registerForRemoteNotificationTypes:'
+    SwiftName: registerForRemoteNotifications(matching:)
+    MethodKind: Instance
+  - Selector: 'cancelLocalNotification:'
+    SwiftName: cancelLocalNotification(_:)
+    MethodKind: Instance
+  - Selector: 'registerUserNotificationSettings:'
+    SwiftName: registerUserNotificationSettings(_:)
+    MethodKind: Instance
+- Name: NSIndexPath
+  Methods:
+  - Selector: 'indexPathForItem:inSection:'
+    SwiftName: init(item:section:)
+    MethodKind: Class
+  - Selector: 'indexPathForRow:inSection:'
+    SwiftName: init(row:section:)
+    MethodKind: Class
+- Name: UICollisionBehavior
+  Methods:
+  - Selector: 'setTranslatesReferenceBoundsIntoBoundaryWithInsets:'
+    SwiftName: setTranslatesReferenceBoundsIntoBoundary(with:)
+    MethodKind: Instance
+- Name: UIControl
+  Methods:
+  - Selector: 'beginTrackingWithTouch:withEvent:'
+    SwiftName: beginTracking(_:with:)
+    MethodKind: Instance
+  - Selector: 'continueTrackingWithTouch:withEvent:'
+    SwiftName: continueTracking(_:with:)
+    MethodKind: Instance
+  - Selector: 'endTrackingWithTouch:withEvent:'
+    SwiftName: endTracking(_:with:)
+    MethodKind: Instance
+- Name: UIFieldBehavior
+  Methods:
+  - Selector: 'radialGravityFieldWithPosition:'
+    SwiftName: radialGravityField(position:)
+    MethodKind: Class
+  - Selector: 'linearGravityFieldWithVector:'
+    SwiftName: linearGravityField(direction:)
+    MethodKind: Class
+  - Selector: 'velocityFieldWithVector:'
+    SwiftName: velocityField(direction:)
+    MethodKind: Class
+  - Selector: 'noiseFieldWithSmoothness:animationSpeed:'
+    SwiftName: noiseField(smoothness:animationSpeed:)
+    MethodKind: Class
+  - Selector: 'turbulenceFieldWithSmoothness:animationSpeed:'
+    SwiftName: turbulenceField(smoothness:animationSpeed:)
+    MethodKind: Class
+- Name: UIFontMetrics
+  Methods:
+  - Selector: 'scaledValueForValue:compatibleWithTraitCollection:'
+    SwiftName: scaledValue(for:compatibleWith:)
+    MethodKind: Instance
+  - Selector: 'scaledValueForValue:'
+    SwiftName: scaledValue(for:)
+    MethodKind: Instance
+- Name: UIImageAsset
+  Methods:
+  - Selector: 'unregisterImageWithTraitCollection:'
+    SwiftName: unregister(imageWith:)
+    MethodKind: Instance
+- Name: UILocalizedIndexedCollation
+  Methods:
+  - Selector: 'sectionForSectionIndexTitleAtIndex:'
+    SwiftName: section(forSectionIndexTitle:)
+    MethodKind: Instance
+- Name: UINavigationBar
+  Methods:
+  - Selector: 'pushNavigationItem:animated:'
+    SwiftName: pushItem(_:animated:)
+    MethodKind: Instance
+  - Selector: 'popNavigationItemAnimated:'
+    SwiftName: popItem(animated:)
+    MethodKind: Instance
+- Name: UINavigationController
+  Methods:
+  - Selector: 'popToViewController:animated:'
+    SwiftName: popToViewController(_:animated:)
+    MethodKind: Instance
+- Name: UIPageControl
+  Methods:
+  - Selector: 'sizeForNumberOfPages:'
+    SwiftName: size(forNumberOfPages:)
+    MethodKind: Instance
+- Name: UIPasteboard
+  Properties:
+  - Name: pasteboardTypes
+    SwiftName: types
+  Methods:
+  - Selector: 'containsPasteboardTypes:'
+    SwiftName: contains(pasteboardTypes:)
+    MethodKind: Instance
+  - Selector: 'pasteboardTypesForItemSet:'
+    SwiftName: types(forItemSet:)
+    MethodKind: Instance
+  - Selector: 'containsPasteboardTypes:inItemSet:'
+    SwiftName: contains(pasteboardTypes:inItemSet:)
+    MethodKind: Instance
+- Name: UIPopoverController
+  Properties:
+  - Name: popoverContentSize
+    SwiftName: contentSize
+  - Name: isPopoverVisible
+    SwiftName: isVisible
+  - Name: popoverArrowDirection
+    SwiftName: arrowDirection
+  - Name: popoverLayoutMargins
+    SwiftName: layoutMargins
+  - Name: popoverBackgroundViewClass
+    SwiftName: backgroundViewClass
+  Methods:
+  - Selector: 'setPopoverContentSize:animated:'
+    SwiftName: setContentSize(_:animated:)
+    MethodKind: Instance
+  - Selector: 'presentPopoverFromRect:inView:permittedArrowDirections:animated:'
+    SwiftName: present(from:in:permittedArrowDirections:animated:)
+    MethodKind: Instance
+  - Selector: 'presentPopoverFromBarButtonItem:permittedArrowDirections:animated:'
+    SwiftName: present(from:permittedArrowDirections:animated:)
+    MethodKind: Instance
+  - Selector: 'dismissPopoverAnimated:'
+    SwiftName: dismiss(animated:)
+    MethodKind: Instance
+- Name: UIScrollView
+  Methods:
+  - Selector: 'touchesShouldBegin:withEvent:inContentView:'
+    SwiftName: touchesShouldBegin(_:with:in:)
+    MethodKind: Instance
+  - Selector: 'touchesShouldCancelInContentView:'
+    SwiftName: touchesShouldCancel(in:)
+    MethodKind: Instance
+- Name: UIStoryboardSegue
+  Properties:
+  - Name: sourceViewController
+    SwiftName: source
+  - Name: destinationViewController
+    SwiftName: destination
+- Name: UIStoryboardUnwindSegueSource
+  Properties:
+  - Name: sourceViewController
+    SwiftName: source
+- Name: UITextDragPreviewRenderer
+  Methods:
+  - Selector: 'adjustFirstLineRect:bodyRect:lastLineRect:textOrigin:'
+    SwiftName: adjust(firstLineRect:bodyRect:lastLineRect:textOrigin:)
+    MethodKind: Instance
+- Name: UIUserNotificationSettings
+  Methods:
+  - Selector: 'settingsForTypes:categories:'
+    SwiftName: init(types:categories:)
+    MethodKind: Class
+- Name: UIView
+  Methods:
+  - Selector: 'willMoveToWindow:'
+    SwiftName: willMove(toWindow:)
+    MethodKind: Instance
+  - Selector: 'viewWithTag:'
+    SwiftName: viewWithTag(_:)
+    MethodKind: Instance
+  - Selector: 'setNeedsDisplayInRect:'
+    SwiftName: setNeedsDisplay(_:)
+    MethodKind: Instance
+- Name: UIViewController
+  Properties:
+  - Name: presentedViewController
+    SwiftName: presentedViewController
+  - Name: presentingViewController
+    SwiftName: presentingViewController
+- Name: UIVibrancyEffect
+  Methods:
+  - Selector: 'effectForBlurEffect:'
+    SwiftName: init(blurEffect:)
+    MethodKind: Class
+- Name: UIWindow
+  Properties:
+  - Name: isKeyWindow
+    SwiftName: isKey
+  Methods:
+  - Selector: becomeKeyWindow
+    SwiftName: becomeKey()
+    MethodKind: Instance
+  - Selector: resignKeyWindow
+    SwiftName: resignKey()
+    MethodKind: Instance
+  - Selector: makeKeyWindow
+    SwiftName: makeKey()
+    MethodKind: Instance
+  - Selector: 'sendEvent:'
+    SwiftName: sendEvent(_:)
+    MethodKind: Instance
+- Name: UIGraphicsImageRendererFormat
+  Methods:
+  - Selector: 'formatForTraitCollection:'
+    SwiftName: init(for:)
+    MethodKind: Class
+- Name: UIDropProposal
+  Methods:
+  - Selector: 'initWithDropOperation:'
+    SwiftName: 'init(operation:)'
+    MethodKind: Instance
+- Name: UIPasteConfiguration
+  Methods:
+  - Selector: 'addTypeIdentifiersForAcceptingClass:'
+    SwiftName: 'addTypeIdentifiers(forAccepting:)'
+    MethodKind: Instance
+  - Selector: 'initWithTypeIdentifiersForAcceptingClass:'
+    MethodKind: Instance
+    SwiftName: 'init(forAccepting:)'
+Protocols:
+- Name: UIAppearance
+  Methods:
+  - Selector: 'appearanceWhenContainedInInstancesOfClasses:'
+    SwiftName: 'appearance(whenContainedInInstancesOf:)'
+    MethodKind: Class
+  - Selector: 'appearanceForTraitCollection:'
+    SwiftName: 'appearance(for:)'
+    MethodKind: Class
+  - Selector: 'appearanceForTraitCollection:whenContainedInInstancesOfClasses:'
+    SwiftName: 'appearance(for:whenContainedInInstancesOf:)'
+    MethodKind: Class
+- Name: UIActivityItemSource
+  Methods:
+  - Selector: 'activityViewController:itemForActivityType:'
+    MethodKind: Instance
+    Parameters:
+    - Position: 0
+      Nullability: N
+    - Position: 1
+      Nullability: O
+- Name: UIBarPositioningDelegate
+  Methods:
+  - Selector: 'positionForBar:'
+    SwiftName: position(for:)
+    MethodKind: Instance
+- Name: UIDocumentInteractionControllerDelegate
+  Methods:
+  - Selector: 'documentInteractionControllerViewControllerForPreview:'
+    SwiftName: documentInteractionControllerViewControllerForPreview(_:)
+    MethodKind: Instance
+  - Selector: 'documentInteractionControllerRectForPreview:'
+    SwiftName: documentInteractionControllerRectForPreview(_:)
+    MethodKind: Instance
+  - Selector: 'documentInteractionControllerViewForPreview:'
+    SwiftName: documentInteractionControllerViewForPreview(_:)
+    MethodKind: Instance
+  - Selector: 'documentInteractionControllerWillPresentOpenInMenu:'
+    SwiftName: documentInteractionControllerWillPresentOpenInMenu(_:)
+    MethodKind: Instance
+  - Selector: 'documentInteractionControllerDidDismissOpenInMenu:'
+    SwiftName: documentInteractionControllerDidDismissOpenInMenu(_:)
+    MethodKind: Instance
+- Name: UIDragInteractionDelegate
+  Methods:
+  - Selector: 'dragInteraction:previewForLiftingItem:session:'
+    SwiftName: 'dragInteraction(_:previewForLifting:session:)'
+    MethodKind: Instance
+  - Selector: 'dragInteraction:willAnimateLiftWithAnimator:session:'
+    SwiftName: 'dragInteraction(_:willAnimateLiftWith:session:)'
+    MethodKind: Instance
+  - Selector: 'dragInteraction:item:willAnimateCancelWithAnimator:'
+    SwiftName: 'dragInteraction(_:item:willAnimateCancelWith:)'
+    MethodKind: Instance
+- Name: UIDropInteractionDelegate
+  Methods:
+  - Selector: 'dropInteraction:item:willAnimateDropWithAnimator:'
+    SwiftName: 'dropInteraction(_:item:willAnimateDropWith:)'
+    MethodKind: Instance
+- Name: UINavigationControllerDelegate
+  Methods:
+  - Selector: 'navigationControllerPreferredInterfaceOrientationForPresentation:'
+    SwiftName: navigationControllerPreferredInterfaceOrientationForPresentation(_:)
+    MethodKind: Instance
+  - Selector: 'navigationController:interactionControllerForAnimationController:'
+    SwiftName: navigationController(_:interactionControllerFor:)
+    MethodKind: Instance
+- Name: UIPageViewControllerDelegate
+  Methods:
+  - Selector: 'pageViewControllerPreferredInterfaceOrientationForPresentation:'
+    SwiftName: pageViewControllerPreferredInterfaceOrientationForPresentation(_:)
+    MethodKind: Instance
+- Name: UIPasteConfigurationSupporting
+  Methods:
+  - Selector: 'pasteItemProviders:'
+    SwiftName: paste(itemProviders:)
+    MethodKind: Instance
+- Name: UIPopoverPresentationControllerDelegate
+  Methods:
+  - Selector: 'prepareForPopoverPresentation:'
+    SwiftName: prepareForPopoverPresentation(_:)
+    MethodKind: Instance
+- Name: UIScrollViewDelegate
+  Methods:
+  - Selector: 'scrollViewShouldScrollToTop:'
+    SwiftName: scrollViewShouldScrollToTop(_:)
+    MethodKind: Instance
+  - Selector: 'scrollViewDidScrollToTop:'
+    SwiftName: scrollViewDidScrollToTop(_:)
+    MethodKind: Instance
+- Name: UISearchControllerDelegate
+  Methods:
+  - Selector: 'willPresentSearchController:'
+    SwiftName: willPresentSearchController(_:)
+    MethodKind: Instance
+  - Selector: 'didPresentSearchController:'
+    SwiftName: didPresentSearchController(_:)
+    MethodKind: Instance
+  - Selector: 'willDismissSearchController:'
+    SwiftName: willDismissSearchController(_:)
+    MethodKind: Instance
+  - Selector: 'didDismissSearchController:'
+    SwiftName: didDismissSearchController(_:)
+    MethodKind: Instance
+  - Selector: 'presentSearchController:'
+    SwiftName: presentSearchController(_:)
+    MethodKind: Instance
+- Name: UISplitViewControllerDelegate
+  Methods:
+  - Selector: 'splitViewController:showDetailViewController:sender:'
+    SwiftName: splitViewController(_:showDetail:sender:)
+    MethodKind: Instance
+  - Selector: 'splitViewController:collapseSecondaryViewController:ontoPrimaryViewController:'
+    SwiftName: splitViewController(_:collapseSecondary:onto:)
+    MethodKind: Instance
+  - Selector: 'splitViewController:separateSecondaryViewControllerFromPrimaryViewController:'
+    SwiftName: splitViewController(_:separateSecondaryFrom:)
+    MethodKind: Instance
+  - Selector: 'splitViewControllerPreferredInterfaceOrientationForPresentation:'
+    SwiftName: splitViewControllerPreferredInterfaceOrientationForPresentation(_:)
+    MethodKind: Instance
+  - Selector: 'splitViewController:willShowViewController:invalidatingBarButtonItem:'
+    SwiftName: splitViewController(_:willShow:invalidating:)
+    MethodKind: Instance
+- Name: UITabBarControllerDelegate
+  Methods:
+  - Selector: 'tabBarControllerPreferredInterfaceOrientationForPresentation:'
+    SwiftName: tabBarControllerPreferredInterfaceOrientationForPresentation(_:)
+    MethodKind: Instance
+  - Selector: 'tabBarController:interactionControllerForAnimationController:'
+    SwiftName: tabBarController(_:interactionControllerFor:)
+    MethodKind: Instance
+- Name: UITextPasteItem
+  Methods:
+  - Selector: 'setStringResult:'
+    SwiftName: setResult(string:)
+    MethodKind: Instance
+  - Selector: 'setAttributedStringResult:'
+    SwiftName: setResult(attributedString:)
+    MethodKind: Instance
+  - Selector: 'setAttachmentResult:'
+    SwiftName: setResult(attachment:)
+    MethodKind: Instance
+- Name: UIViewControllerAnimatedTransitioning
+  Methods:
+  - Selector: 'transitionDuration:'
+    SwiftName: 'transitionDuration(using:)'
+    MethodKind: Instance
+  - Selector: 'animateTransition:'
+    SwiftName: 'animateTransition(using:)'
+    MethodKind: Instance
+  - Selector: 'interruptibleAnimatorForTransition:'
+    SwiftName: 'interruptibleAnimator(using:)'
+    MethodKind: Instance
+- Name: UIViewControllerTransitioningDelegate
+  Methods:
+  - Selector: 'animationControllerForPresentedController:presentingController:sourceController:'
+    SwiftName: 'animationController(forPresented:presenting:source:)'
+    MethodKind: Instance
+  - Selector: 'animationControllerForDismissedController:'
+    SwiftName: 'animationController(forDismissed:)'
+    MethodKind: Instance
+  - Selector: 'interactionControllerForPresentation:'
+    SwiftName: 'interactionControllerForPresentation(using:)'
+    MethodKind: Instance
+  - Selector: 'interactionControllerForDismissal:'
+    SwiftName: 'interactionControllerForDismissal(using:)'
+    MethodKind: Instance
+  - Selector: 'presentationControllerForPresentedViewController:presentingViewController:sourceViewController:'
+    SwiftName: 'presentationController(forPresented:presenting:source:)'
+    MethodKind: Instance
+Tags:
+- Name: NSTextLayoutOrientation
+  SwiftName: NSLayoutManager.TextLayoutOrientation
+- Name: NSGlyphProperty
+  SwiftName: NSLayoutManager.GlyphProperty
+- Name: NSControlCharacterAction
+  SwiftName: NSLayoutManager.ControlCharacterAction
+- Name: NSTypesetterBehavior
+  SwiftName: NSLayoutManager.TypesetterBehavior
+Typedefs:
+- Name: NSAttributedStringDocumentAttributeKey
+  SwiftName: NSAttributedString.DocumentAttributeKey
+- Name: NSAttributedStringDocumentReadingOptionKey
+  SwiftName: NSAttributedString.DocumentReadingOptionKey
+- Name: NSAttributedStringDocumentType
+  SwiftName: NSAttributedString.DocumentType
+- Name: NSTextEffectStyle
+  SwiftName: NSAttributedString.TextEffectStyle
+- Name: NSTextLayoutSectionKey
+  SwiftName: NSAttributedString.TextLayoutSectionKey
+- Name: NSTextTabOptionKey
+  SwiftName: NSTextTab.OptionKey
+- Name: UIFontDescriptorAttributeName
+  SwiftName: UIFontDescriptor.AttributeName
+- Name: UIFontDescriptorTraitKey
+  SwiftName: UIFontDescriptor.TraitKey
+- Name: UIFontDescriptorFeatureKey
+  SwiftName: UIFontDescriptor.FeatureKey
+- Name: UIFontWeight
+  SwiftName: UIFont.Weight
+Enumerators:
+- Name: NSLayoutFormatDirectionLeadingToTrailing
+  SwiftName: directionLeadingToTrailing
+- Name: UIViewAnimationOptionCurveEaseInOut
+  SwiftName: curveEaseInOut
+- Name: UIViewKeyframeAnimationOptionCalculationModeLinear
+  SwiftName: calculationModeLinear
+- Name: UIControlStateNormal
+  SwiftName: normal
+- Name: UIDocumentStateNormal
+  SwiftName: normal
+- Name: UIPrinterJobTypeUnknown
+  SwiftName: unknown
+- Name: UIUserInterfaceIdiomTV
+  SwiftName: tv
+- Name: UITextDragOptionStripTextColorFromPreviews
+  SwiftName: stripTextColorFromPreviews
+Globals:
+- Name: NSDirectionalEdgeInsetsZero
+  SwiftName: NSDirectionalEdgeInsets.zero
+- Name: UIStackViewSpacingUseDefault
+  SwiftName: UIStackView.spacingUseDefault
+- Name: UIStackViewSpacingUseSystem
+  SwiftName: UIStackView.spacingUseSystem
+- Name: NSFontAttributeName
+  SwiftName: font
+- Name: NSParagraphStyleAttributeName
+  SwiftName: paragraphStyle
+- Name: NSForegroundColorAttributeName
+  SwiftName: foregroundColor
+- Name: NSBackgroundColorAttributeName
+  SwiftName: backgroundColor
+- Name: NSLigatureAttributeName
+  SwiftName: ligature
+- Name: NSKernAttributeName
+  SwiftName: kern
+- Name: NSStrikethroughStyleAttributeName
+  SwiftName: strikethroughStyle
+- Name: NSUnderlineStyleAttributeName
+  SwiftName: underlineStyle
+- Name: NSStrokeColorAttributeName
+  SwiftName: strokeColor
+- Name: NSStrokeWidthAttributeName
+  SwiftName: strokeWidth 
+- Name: NSShadowAttributeName
+  SwiftName: shadow
+- Name: NSTextEffectAttributeName
+  SwiftName: textEffect 
+- Name: NSAttachmentAttributeName
+  SwiftName: attachment 
+- Name: NSLinkAttributeName
+  SwiftName: link 
+- Name: NSBaselineOffsetAttributeName
+  SwiftName: baselineOffset
+- Name: NSUnderlineColorAttributeName
+  SwiftName: underlineColor
+- Name: NSStrikethroughColorAttributeName
+  SwiftName: strikethroughColor
+- Name: NSObliquenessAttributeName
+  SwiftName: obliqueness
+- Name: NSExpansionAttributeName
+  SwiftName: expansion
+- Name: NSWritingDirectionAttributeName
+  SwiftName: writingDirection
+- Name: NSVerticalGlyphFormAttributeName
+  SwiftName: verticalGlyphForm
+- Name: NSPlainTextDocumentType
+  SwiftName: plain
+- Name: NSRTFTextDocumentType
+  SwiftName: rtf
+- Name: NSRTFDTextDocumentType
+  SwiftName: rtfd
+- Name: NSHTMLTextDocumentType
+  SwiftName: html
+- Name: NSDocumentTypeDocumentAttribute
+  SwiftName: documentType
+- Name: NSCharacterEncodingDocumentAttribute
+  SwiftName: characterEncoding
+- Name: NSDefaultAttributesDocumentAttribute
+  SwiftName: defaultAttributes
+- Name: NSPaperSizeDocumentAttribute
+  SwiftName: paperSize
+- Name: NSViewSizeDocumentAttribute
+  SwiftName: viewSize
+- Name: NSViewZoomDocumentAttribute
+  SwiftName: viewZoom
+- Name: NSViewModeDocumentAttribute
+  SwiftName: viewMode
+- Name: NSReadOnlyDocumentAttribute
+  SwiftName: readOnly
+- Name: NSBackgroundColorDocumentAttribute
+  SwiftName: backgroundColor
+- Name: NSHyphenationFactorDocumentAttribute
+  SwiftName: hyphenationFactor
+- Name: NSDefaultTabIntervalDocumentAttribute
+  SwiftName: defaultTabInterval
+- Name: NSTextLayoutSectionsAttribute
+  SwiftName: textLayoutSections
+- Name: NSTabColumnTerminatorsAttributeName
+  SwiftName: columnTerminators
+- Name: NSTextEffectLetterpressStyle
+  SwiftName: letterpressStyle
+- Name: NSPaperMarginDocumentAttribute 
+  SwiftName: paperMargin
+- Name: NSDocumentTypeDocumentOption
+  SwiftName: documentType
+- Name: NSDefaultAttributesDocumentOption
+  SwiftName: defaultAttributes
+- Name: NSCharacterEncodingDocumentOption
+  SwiftName: characterEncoding
+- Name: UIFontDescriptorFamilyAttribute
+  SwiftName: family
+- Name: UIFontDescriptorNameAttribute
+  SwiftName: name
+- Name: UIFontDescriptorFaceAttribute
+  SwiftName: face
+- Name: UIFontDescriptorSizeAttribute
+  SwiftName: size
+- Name: UIFontDescriptorVisibleNameAttribute
+  SwiftName: visibleName
+- Name: UIFontDescriptorMatrixAttribute
+  SwiftName: matrix
+- Name: UIFontDescriptorCharacterSetAttribute
+  SwiftName: characterSet
+- Name: UIFontDescriptorCascadeListAttribute
+  SwiftName: cascadeList
+- Name: UIFontDescriptorTraitsAttribute
+  SwiftName: traits
+- Name: UIFontDescriptorFixedAdvanceAttribute
+  SwiftName: fixedAdvance
+- Name: UIFontDescriptorFeatureSettingsAttribute
+  SwiftName: featureSettings
+- Name: UIFontDescriptorTextStyleAttribute
+  SwiftName: textStyle
+- Name: UIFontSymbolicTrait
+  SwiftName: symbolic
+- Name: UIFontWeightTrait
+  SwiftName: weight
+- Name: UIFontWidthTrait
+  SwiftName: width
+- Name: UIFontSlantTrait
+  SwiftName: slant
+- Name: UIFontFeatureTypeIdentifierKey
+  SwiftName: featureIdentifier
+- Name: UIFontFeatureSelectorIdentifierKey
+  SwiftName: typeIdentifier
+- Name: UIFontWeightUltraLight
+  SwiftName: ultraLight
+- Name: UIFontWeightThin
+  SwiftName: thin
+- Name: UIFontWeightLight
+  SwiftName: light
+- Name: UIFontWeightRegular
+  SwiftName: regular
+- Name: UIFontWeightMedium
+  SwiftName: medium
+- Name: UIFontWeightSemibold
+  SwiftName: semibold
+- Name: UIFontWeightBold
+  SwiftName: bold
+- Name: UIFontWeightHeavy
+  SwiftName: heavy
+- Name: UIFontWeightBlack
+  SwiftName: black
+Functions:
+- Name: NSDirectionalEdgeInsetsMake
+  Availability: nonswift
+- Name: NSDirectionalEdgeInsetsEqualToDirectionalEdgeInsets
+  Availability: nonswift
+#
+# Swift 3 specific conversions
+#
+SwiftVersions:
+- Version: 3
+  Classes:
+  - Name: NSLayoutConstraint
+    Properties:
+    - Name: firstItem
+      Nullability: U
+  - Name: UIKeyCommand
+    Properties:
+    - Name: input
+      Nullability: N
+  - Name: NSString
+    Methods:
+    - Selector: 'sizeWithAttributes:'
+      SwiftName: size(attributes:)
+      MethodKind: Instance
+  Protocols:
+  - Name: UIActivityItemSource
+    Methods:
+    - Selector: 'activityViewController:itemForActivityType:'
+      MethodKind: Instance
+      Parameters:
+      - Position: 0
+        Nullability: N
+      - Position: 1
+        Nullability: N
+  Tags:
+  - Name: NSTextLayoutOrientation
+    SwiftName: NSTextLayoutOrientation
+  - Name: NSGlyphProperty
+    SwiftName: NSGlyphProperty
+  - Name: NSControlCharacterAction
+    SwiftName: NSControlCharacterAction
+  - Name: NSTypesetterBehavior
+    SwiftName: NSTypesetterBehavior
+  Typedefs:
+  - Name: NSAttributedStringDocumentAttributeKey
+    SwiftWrapper: none
+  - Name: NSAttributedStringDocumentType
+    SwiftWrapper: none
+  - Name: NSTextLayoutSectionKey
+    SwiftWrapper: none
+  - Name: NSTextEffectStyle
+    SwiftWrapper: none
+  - Name: NSTextTabOptionKey
+    SwiftWrapper: none
+  - Name: NSAttributedStringDocumentReadingOptionKey
+    SwiftWrapper: none
+    Availability: nonswift
+  - Name: UIFontDescriptorAttributeName
+    SwiftWrapper: none
+  - Name: UIFontDescriptorTraitKey
+    SwiftWrapper: none
+  - Name: UIFontDescriptorFeatureKey
+    SwiftWrapper: none
+  - Name: UIFontWeight
+    SwiftWrapper: none
+  - Name: UILayoutPriority
+    SwiftWrapper: none
+  Globals:
+  - Name: NSFontAttributeName
+    SwiftName: NSFontAttributeName
+  - Name: NSParagraphStyleAttributeName
+    SwiftName: NSParagraphStyleAttributeName
+  - Name: NSForegroundColorAttributeName
+    SwiftName: NSForegroundColorAttributeName
+  - Name: NSBackgroundColorAttributeName
+    SwiftName: NSBackgroundColorAttributeName
+  - Name: NSLigatureAttributeName
+    SwiftName: NSLigatureAttributeName
+  - Name: NSKernAttributeName
+    SwiftName: NSKernAttributeName
+  - Name: NSStrikethroughStyleAttributeName
+    SwiftName: NSStrikethroughStyleAttributeName
+  - Name: NSUnderlineStyleAttributeName 
+    SwiftName: NSUnderlineStyleAttributeName
+  - Name: NSStrokeColorAttributeName 
+    SwiftName: NSStrokeColorAttributeName
+  - Name: NSStrokeWidthAttributeName
+    SwiftName: NSStrokeWidthAttributeName
+  - Name: NSShadowAttributeName 
+    SwiftName: NSShadowAttributeName 
+  - Name: NSTextEffectAttributeName
+    SwiftName: NSTextEffectAttributeName 
+  - Name: NSAttachmentAttributeName
+    SwiftName: NSAttachmentAttributeName
+  - Name: NSLinkAttributeName 
+    SwiftName: NSLinkAttributeName
+  - Name: NSBaselineOffsetAttributeName
+    SwiftName: NSBaselineOffsetAttributeName
+  - Name: NSUnderlineColorAttributeName
+    SwiftName: NSUnderlineColorAttributeName
+  - Name: NSStrikethroughColorAttributeName
+    SwiftName: NSStrikethroughColorAttributeName
+  - Name: NSObliquenessAttributeName
+    SwiftName: NSObliquenessAttributeName
+  - Name: NSExpansionAttributeName
+    SwiftName: NSExpansionAttributeName
+  - Name: NSWritingDirectionAttributeName
+    SwiftName: NSWritingDirectionAttributeName
+  - Name: NSVerticalGlyphFormAttributeName 
+    SwiftName: NSVerticalGlyphFormAttributeName
+  - Name: NSPlainTextDocumentType 
+    SwiftName: NSPlainTextDocumentType
+  - Name: NSRTFTextDocumentType 
+    SwiftName: NSRTFTextDocumentType
+  - Name: NSRTFDTextDocumentType 
+    SwiftName: NSRTFDTextDocumentType
+  - Name: NSHTMLTextDocumentType 
+    SwiftName: NSHTMLTextDocumentType
+  - Name: NSDocumentTypeDocumentAttribute 
+    SwiftName: NSDocumentTypeDocumentAttribute
+  - Name: NSCharacterEncodingDocumentAttribute 
+    SwiftName: NSCharacterEncodingDocumentAttribute
+  - Name: NSDefaultAttributesDocumentAttribute 
+    SwiftName: NSDefaultAttributesDocumentAttribute
+  - Name: NSPaperSizeDocumentAttribute
+    SwiftName: NSPaperSizeDocumentAttribute
+  - Name: NSViewSizeDocumentAttribute
+    SwiftName: NSViewSizeDocumentAttribute
+  - Name: NSViewZoomDocumentAttribute
+    SwiftName: NSViewZoomDocumentAttribute
+  - Name: NSViewModeDocumentAttribute
+    SwiftName: NSViewModeDocumentAttribute
+  - Name: NSReadOnlyDocumentAttribute
+    SwiftName: NSReadOnlyDocumentAttribute
+  - Name: NSBackgroundColorDocumentAttribute
+    SwiftName: NSBackgroundColorDocumentAttribute
+  - Name: NSHyphenationFactorDocumentAttribute
+    SwiftName: NSHyphenationFactorDocumentAttribute
+  - Name: NSDefaultTabIntervalDocumentAttribute
+    SwiftName: NSDefaultTabIntervalDocumentAttribute
+  - Name: NSTextLayoutSectionsAttribute
+    SwiftName: NSTextLayoutSectionsAttribute
+  - Name: NSTabColumnTerminatorsAttributeName
+    SwiftName: NSTabColumnTerminatorsAttributeName
+  - Name: NSTextEffectLetterpressStyle
+    SwiftName: NSTextEffectLetterpressStyle
+  - Name: NSPaperMarginDocumentAttribute 
+    SwiftName: NSPaperMarginDocumentAttribute
+  - Name: NSDocumentTypeDocumentOption
+    Availability: nonswift
+  - Name: NSDefaultAttributesDocumentOption
+    Availability: nonswift
+  - Name: NSCharacterEncodingDocumentOption
+    Availability: nonswift
+  - Name: UIFontDescriptorFamilyAttribute
+    SwiftName: UIFontDescriptorFamilyAttribute
+  - Name: UIFontDescriptorNameAttribute
+    SwiftName: UIFontDescriptorNameAttribute
+  - Name: UIFontDescriptorFaceAttribute
+    SwiftName: UIFontDescriptorFaceAttribute
+  - Name: UIFontDescriptorSizeAttribute
+    SwiftName: UIFontDescriptorSizeAttribute
+  - Name: UIFontDescriptorVisibleNameAttribute
+    SwiftName: UIFontDescriptorVisibleNameAttribute
+  - Name: UIFontDescriptorMatrixAttribute
+    SwiftName: UIFontDescriptorMatrixAttribute
+  - Name: UIFontDescriptorCharacterSetAttribute
+    SwiftName: UIFontDescriptorCharacterSetAttribute
+  - Name: UIFontDescriptorCascadeListAttribute
+    SwiftName: UIFontDescriptorCascadeListAttribute
+  - Name: UIFontDescriptorTraitsAttribute
+    SwiftName: UIFontDescriptorTraitsAttribute
+  - Name: UIFontDescriptorFixedAdvanceAttribute
+    SwiftName: UIFontDescriptorFixedAdvanceAttribute
+  - Name: UIFontDescriptorFeatureSettingsAttribute
+    SwiftName: UIFontDescriptorFeatureSettingsAttribute
+  - Name: UIFontDescriptorTextStyleAttribute
+    SwiftName: UIFontDescriptorTextStyleAttribute
+  - Name: UIFontSymbolicTrait
+    SwiftName: UIFontSymbolicTrait
+  - Name: UIFontWeightTrait
+    SwiftName: UIFontWeightTrait
+  - Name: UIFontWidthTrait
+    SwiftName: UIFontWidthTrait
+  - Name: UIFontSlantTrait
+    SwiftName: UIFontSlantTrait
+  - Name: UIFontFeatureTypeIdentifierKey
+    SwiftName: UIFontFeatureTypeIdentifierKey
+  - Name: UIFontFeatureSelectorIdentifierKey
+    SwiftName: UIFontFeatureSelectorIdentifierKey
+  - Name: UIFontWeightUltraLight
+    SwiftName: UIFontWeightUltraLight
+  - Name: UIFontWeightThin
+    SwiftName: UIFontWeightThin
+  - Name: UIFontWeightLight
+    SwiftName: UIFontWeightLight
+  - Name: UIFontWeightRegular
+    SwiftName: UIFontWeightRegular
+  - Name: UIFontWeightMedium
+    SwiftName: UIFontWeightMedium
+  - Name: UIFontWeightSemibold
+    SwiftName: UIFontWeightSemibold
+  - Name: UIFontWeightBold
+    SwiftName: UIFontWeightBold
+  - Name: UIFontWeightHeavy
+    SwiftName: UIFontWeightHeavy
+  - Name: UIFontWeightBlack
+    SwiftName: UIFontWeightBlack
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h	2016-09-23 21:28:34.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h	2017-05-30 01:57:43.000000000 -0400
@@ -14,6 +14,10 @@
 
 #import <UIKit/UIAccessibilityConstants.h>
 
+#if __has_include(<UIKit/UIAccessibilityContentSizeCategoryImageAdjusting.h>)
+#import <UIKit/UIAccessibilityContentSizeCategoryImageAdjusting.h>
+#endif
+
 #if __has_include(<UIKit/UIActivityIndicatorView.h>)
 #import <UIKit/UIActivityIndicatorView.h>
 #import <UIKit/UIActivity.h>
@@ -58,12 +62,16 @@
 #import <UIKit/UIDocumentPickerExtensionViewController.h>
 #import <UIKit/UICloudSharingController.h>
 #import <UIKit/NSFileProviderExtension.h>
+#import <UIKit/UIVisualEffect.h>
+#import <UIKit/UIBlurEffect.h>
+#import <UIKit/UIVibrancyEffect.h>
 #import <UIKit/UIVisualEffectView.h>
 #import <UIKit/UIEvent.h>
 #endif
 
 #import <UIKit/UIFont.h>
 #import <UIKit/UIFontDescriptor.h>
+#import <UIKit/UIFontMetrics.h>
 #import <UIKit/UIGeometry.h>
 
 #if __has_include(<UIKit/UIGestureRecognizer.h>)
@@ -98,8 +106,10 @@
 #import <UIKit/UIApplicationShortcutItem.h>
 #import <UIKit/UIUserNotificationSettings.h>
 #import <UIKit/UIFocus.h>
+#import <UIKit/UIFocusSystem.h>
 #import <UIKit/UIFocusGuide.h>
 #import <UIKit/UIFocusAnimationCoordinator.h>
+#import <UIKit/UIFocusDebugger.h>
 #import <UIKit/UILocalizedIndexedCollation.h>
 #import <UIKit/UILongPressGestureRecognizer.h>
 #import <UIKit/UIManagedDocument.h>
@@ -114,6 +124,8 @@
 #import <UIKit/UIPageViewController.h>
 #import <UIKit/UIPanGestureRecognizer.h>
 #import <UIKit/UIPasteboard.h>
+#import <UIKit/UIPasteConfiguration.h>
+#import <UIKit/UIPasteConfigurationSupporting.h>
 #import <UIKit/UIPickerView.h>
 #import <UIKit/UIPinchGestureRecognizer.h>
 #import <UIKit/UIPopoverController.h>
@@ -172,10 +184,26 @@
 #import <UIKit/UIViewController.h>
 #import <UIKit/UIWebView.h>
 #import <UIKit/UIWindow.h>
+
+#import <UIKit/UIDragInteraction.h>
+#import <UIKit/UIDragItem.h>
+#import <UIKit/UIDragPreview.h>
+#import <UIKit/UIDragPreviewParameters.h>
+#import <UIKit/UIDragSession.h>
+#import <UIKit/UIDropInteraction.h>
+#import <UIKit/UIInteraction.h>
+#import <UIKit/UITargetedDragPreview.h>
+#import <UIKit/UISpringLoadedInteraction.h>
+#import <UIKit/UISpringLoadedInteractionSupporting.h>
+
 #endif
 
 #import <UIKit/NSAttributedString.h>
 
+#if __has_include(<UIKit/NSItemProvider+UIKitAdditions.h>)
+#import <UIKit/NSItemProvider+UIKitAdditions.h>
+#endif
+
 #if __has_include(<UIKit/NSLayoutConstraint.h>)
 #import <UIKit/NSLayoutConstraint.h>
 #import <UIKit/NSLayoutAnchor.h>
@@ -186,6 +214,7 @@
 
 #import <UIKit/NSParagraphStyle.h>
 
+
 #if __has_include(<UIKit/NSShadow.h>)
 #import <UIKit/NSShadow.h>
 #endif
@@ -215,6 +244,15 @@
 #import <UIKit/UIRegion.h>
 #endif
 
+#if __has_include(<UIKit/UITextDragging.h>)
+#import <UIKit/UITextDragging.h>
+#import <UIKit/UITextDropping.h>
+#import <UIKit/UITextDropProposal.h>
+#import <UIKit/UITextDragPreviewRenderer.h>
+#import <UIKit/UITextDragURLPreviews.h>
+#import <UIKit/UIURLDragPreviewView.h>
+#endif
+
 #if __has_include(<UIKit/UIViewPropertyAnimator.h>)
 #import <UIKit/UIViewPropertyAnimator.h>
 #endif
@@ -225,3 +263,7 @@
 #import <UIKit/UIImpactFeedbackGenerator.h>
 #import <UIKit/UINotificationFeedbackGenerator.h>
 #endif
+
+#if __has_include(<DocumentManager/DocumentManager.h>)
+#import <DocumentManager/DocumentManager.h>
+#endif
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILabel.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILabel.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILabel.h	2016-08-12 01:05:53.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILabel.h	2017-05-27 22:37:29.000000000 -0400
@@ -43,7 +43,7 @@
 
 @property(nonatomic) NSInteger numberOfLines;
 
-// these next 3 property allow the label to be autosized to fit a certain width by scaling the font size(s) by a scaling factor >= the minimum scaling factor
+// these next 3 properties allow the label to be autosized to fit a certain width by scaling the font size(s) by a scaling factor >= the minimum scaling factor
 // and to specify how the text baseline moves when it needs to shrink the font.
 
 @property(nonatomic) BOOL adjustsFontSizeToFitWidth;         // default is NO
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILayoutGuide.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILayoutGuide.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILayoutGuide.h	2016-08-12 00:59:12.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILayoutGuide.h	2017-05-27 22:37:29.000000000 -0400
@@ -41,16 +41,16 @@
 
 /* Constraint creation conveniences. See NSLayoutAnchor.h for details.
  */
-@property(readonly, strong) NSLayoutXAxisAnchor *leadingAnchor;
-@property(readonly, strong) NSLayoutXAxisAnchor *trailingAnchor;
-@property(readonly, strong) NSLayoutXAxisAnchor *leftAnchor;
-@property(readonly, strong) NSLayoutXAxisAnchor *rightAnchor;
-@property(readonly, strong) NSLayoutYAxisAnchor *topAnchor;
-@property(readonly, strong) NSLayoutYAxisAnchor *bottomAnchor;
-@property(readonly, strong) NSLayoutDimension *widthAnchor;
-@property(readonly, strong) NSLayoutDimension *heightAnchor;
-@property(readonly, strong) NSLayoutXAxisAnchor *centerXAnchor;
-@property(readonly, strong) NSLayoutYAxisAnchor *centerYAnchor;
+@property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *leadingAnchor;
+@property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *trailingAnchor;
+@property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *leftAnchor;
+@property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *rightAnchor;
+@property(nonatomic,readonly,strong) NSLayoutYAxisAnchor *topAnchor;
+@property(nonatomic,readonly,strong) NSLayoutYAxisAnchor *bottomAnchor;
+@property(nonatomic,readonly,strong) NSLayoutDimension *widthAnchor;
+@property(nonatomic,readonly,strong) NSLayoutDimension *heightAnchor;
+@property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *centerXAnchor;
+@property(nonatomic,readonly,strong) NSLayoutYAxisAnchor *centerYAnchor;
 
 @end
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationBar.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationBar.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationBar.h	2016-08-12 00:59:12.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationBar.h	2017-05-27 22:37:38.000000000 -0400
@@ -11,9 +11,8 @@
 #import <UIKit/UIInterface.h>
 #import <UIKit/UIFont.h>
 #import <UIKit/UIKitDefines.h>
-#import <UIKit/UIButton.h>
-#import <UIKit/UIBarButtonItem.h>
 #import <UIKit/UIBarCommon.h>
+#import <UIKit/UINavigationItem.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -50,6 +49,9 @@
 @property(nullable,nonatomic,copy) NSArray<UINavigationItem *> *items;
 - (void)setItems:(nullable NSArray<UINavigationItem *> *)items animated:(BOOL)animated; // If animated is YES, then simulate a push or pop depending on whether the new top item was previously in the stack.
 
+/// When set to YES, the navigation bar will use a larger out-of-line title view when requested by the current navigation item. To specify when the large out-of-line title view appears, see UINavigationItem.largeTitleDisplayMode. Defaults to NO.
+@property (nonatomic, readwrite, assign) BOOL prefersLargeTitles UI_APPEARANCE_SELECTOR API_AVAILABLE(ios(11.0)); //API_UNAVAILABLE(tvos)
+
 /*
  The behavior of tintColor for bars has changed on iOS 7.0. It no longer affects the bar's background
  and behaves as described for the tintColor property added to UIView.
@@ -105,51 +107,4 @@
 
 @end
 
-NS_CLASS_AVAILABLE_IOS(2_0) @interface UINavigationItem : NSObject <NSCoding>
-
-- (instancetype)initWithTitle:(NSString *)title NS_DESIGNATED_INITIALIZER;
-- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
-
-@property(nullable, nonatomic,copy)   NSString        *title;             // Title when topmost on the stack. default is nil
-@property(nullable, nonatomic,strong) UIView          *titleView;         // Custom view to use in lieu of a title. May be sized horizontally. Only used when item is topmost on the stack.
-
-@property(nullable,nonatomic,copy)   NSString *prompt __TVOS_PROHIBITED;     // Explanatory text to display above the navigation bar buttons.
-@property(nullable,nonatomic,strong) UIBarButtonItem *backBarButtonItem __TVOS_PROHIBITED; // Bar button item to use for the back button in the child navigation item.
-
-@property(nonatomic,assign) BOOL hidesBackButton __TVOS_PROHIBITED; // If YES, this navigation item will hide the back button when it's on top of the stack.
-- (void)setHidesBackButton:(BOOL)hidesBackButton animated:(BOOL)animated __TVOS_PROHIBITED;
-
-/* Use these properties to set multiple items in a navigation bar.
- The older single properties (leftBarButtonItem and rightBarButtonItem) now refer to 
- the first item in the respective array of items.
- 
- NOTE: You'll achieve the best results if you use either the singular properties or
- the plural properties consistently and don't try to mix them.
- 
-   leftBarButtonItems are placed in the navigation bar left to right with the first
- item in the list at the left outside edge and left aligned.
-   rightBarButtonItems are placed right to left with the first item in the list at
- the right outside edge and right aligned.
- */
-@property(nullable,nonatomic,copy) NSArray<UIBarButtonItem *> *leftBarButtonItems NS_AVAILABLE_IOS(5_0);
-@property(nullable,nonatomic,copy) NSArray<UIBarButtonItem *> *rightBarButtonItems NS_AVAILABLE_IOS(5_0);
-- (void)setLeftBarButtonItems:(nullable NSArray<UIBarButtonItem *> *)items animated:(BOOL)animated NS_AVAILABLE_IOS(5_0);
-- (void)setRightBarButtonItems:(nullable NSArray<UIBarButtonItem *> *)items animated:(BOOL)animated NS_AVAILABLE_IOS(5_0);
-
-/* By default, the leftItemsSupplementBackButton property is NO. In this case,
- the back button is not drawn and the left item or items replace it. If you
- would like the left items to appear in addition to the back button (as opposed to instead of it)
- set leftItemsSupplementBackButton to YES.
- */
-@property(nonatomic) BOOL leftItemsSupplementBackButton NS_AVAILABLE_IOS(5_0) __TVOS_PROHIBITED;
-
-// Some navigation items want to display a custom left or right item when they're on top of the stack.
-// A custom left item replaces the regular back button unless you set leftItemsSupplementBackButton to YES
-@property(nullable, nonatomic,strong) UIBarButtonItem *leftBarButtonItem;
-@property(nullable, nonatomic,strong) UIBarButtonItem *rightBarButtonItem;
-- (void)setLeftBarButtonItem:(nullable UIBarButtonItem *)item animated:(BOOL)animated;
-- (void)setRightBarButtonItem:(nullable UIBarButtonItem *)item animated:(BOOL)animated;
-
-@end
-
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationItem.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationItem.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationItem.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationItem.h	2017-05-30 01:57:27.000000000 -0400
@@ -0,0 +1,82 @@
+//
+//  UINavigationItem.h
+//  UIKit
+//
+//  Copyright © 2016 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIView.h>
+#import <UIKit/UIBarButtonItem.h>
+
+@class UISearchController;
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, UINavigationItemLargeTitleDisplayMode) {
+    /// Automatically use the large out-of-line title based on the state of the previous item in the navigation bar. An item with largeTitleDisplayMode=Automatic will show or hide the large title based on the request of the previous navigation item. If the first item pushed is set to Automatic, then it will show the large title if the navigation bar has prefersLargeTitles=YES.
+    UINavigationItemLargeTitleDisplayModeAutomatic,
+    /// Always use a larger title when this item is top most.
+    UINavigationItemLargeTitleDisplayModeAlways,
+    /// Never use a larger title when this item is top most.
+    UINavigationItemLargeTitleDisplayModeNever,
+} NS_SWIFT_NAME(UINavigationItem.LargeTitleDisplayMode);
+
+NS_CLASS_AVAILABLE_IOS(2_0) @interface UINavigationItem : NSObject <NSCoding>
+
+- (instancetype)initWithTitle:(NSString *)title NS_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
+
+@property(nullable, nonatomic,copy)   NSString        *title;             // Title when topmost on the stack. default is nil
+@property(nullable, nonatomic,strong) UIView          *titleView;         // Custom view to use in lieu of a title. May be sized horizontally. Only used when item is topmost on the stack.
+
+@property(nullable,nonatomic,copy)   NSString *prompt __TVOS_PROHIBITED;     // Explanatory text to display above the navigation bar buttons.
+@property(nullable,nonatomic,strong) UIBarButtonItem *backBarButtonItem __TVOS_PROHIBITED; // Bar button item to use for the back button in the child navigation item.
+
+@property(nonatomic,assign) BOOL hidesBackButton __TVOS_PROHIBITED; // If YES, this navigation item will hide the back button when it's on top of the stack.
+- (void)setHidesBackButton:(BOOL)hidesBackButton animated:(BOOL)animated __TVOS_PROHIBITED;
+
+/* Use these properties to set multiple items in a navigation bar.
+ The older single properties (leftBarButtonItem and rightBarButtonItem) now refer to
+ the first item in the respective array of items.
+ 
+ NOTE: You'll achieve the best results if you use either the singular properties or
+ the plural properties consistently and don't try to mix them.
+ 
+ leftBarButtonItems are placed in the navigation bar left to right with the first
+ item in the list at the left outside edge and left aligned.
+ rightBarButtonItems are placed right to left with the first item in the list at
+ the right outside edge and right aligned.
+ */
+@property(nullable,nonatomic,copy) NSArray<UIBarButtonItem *> *leftBarButtonItems NS_AVAILABLE_IOS(5_0);
+@property(nullable,nonatomic,copy) NSArray<UIBarButtonItem *> *rightBarButtonItems NS_AVAILABLE_IOS(5_0);
+- (void)setLeftBarButtonItems:(nullable NSArray<UIBarButtonItem *> *)items animated:(BOOL)animated NS_AVAILABLE_IOS(5_0);
+- (void)setRightBarButtonItems:(nullable NSArray<UIBarButtonItem *> *)items animated:(BOOL)animated NS_AVAILABLE_IOS(5_0);
+
+/* By default, the leftItemsSupplementBackButton property is NO. In this case,
+ the back button is not drawn and the left item or items replace it. If you
+ would like the left items to appear in addition to the back button (as opposed to instead of it)
+ set leftItemsSupplementBackButton to YES.
+ */
+@property(nonatomic) BOOL leftItemsSupplementBackButton NS_AVAILABLE_IOS(5_0) __TVOS_PROHIBITED;
+
+// Some navigation items want to display a custom left or right item when they're on top of the stack.
+// A custom left item replaces the regular back button unless you set leftItemsSupplementBackButton to YES
+@property(nullable, nonatomic,strong) UIBarButtonItem *leftBarButtonItem;
+@property(nullable, nonatomic,strong) UIBarButtonItem *rightBarButtonItem;
+- (void)setLeftBarButtonItem:(nullable UIBarButtonItem *)item animated:(BOOL)animated;
+- (void)setRightBarButtonItem:(nullable UIBarButtonItem *)item animated:(BOOL)animated;
+
+/// When UINavigationBar.prefersLargeTitles=YES, this property controls when the larger out-of-line title is displayed. If prefersLargeTitles=NO, this property has no effect. The default value is Automatic.
+@property (nonatomic, readwrite, assign) UINavigationItemLargeTitleDisplayMode largeTitleDisplayMode API_AVAILABLE(ios(11.0)); //API_UNAVAILABLE(tvos)
+
+// A view controller that will be shown inside of a navigation controller can assign a UISearchController to this property to display the search controller’s search bar in its containing navigation controller’s navigation bar.
+@property (nonatomic, retain, nullable) UISearchController *searchController API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos);
+
+// If this property is true (the default), the searchController’s search bar will hide as the user scrolls in the top view controller’s scroll view. If false, the search bar will remain visible and pinned underneath the navigation bar.
+@property (nonatomic) BOOL hidesSearchBarWhenScrolling API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos);
+
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteConfiguration.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteConfiguration.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteConfiguration.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteConfiguration.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,30 @@
+//
+//  UIPasteConfiguration.h
+//  UIKit
+//
+//  Copyright © 2007-2017 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+UIKIT_EXTERN API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos)
+@interface UIPasteConfiguration : NSObject <NSSecureCoding, NSCopying>
+
+@property (nonatomic, copy) NSArray<NSString *> *acceptableTypeIdentifiers;
+
+- (instancetype)init NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)initWithAcceptableTypeIdentifiers:(NSArray<NSString *> *)acceptableTypeIdentifiers;
+- (void)addAcceptableTypeIdentifiers:(NSArray<NSString *> *)acceptableTypeIdentifiers;
+
+// Uses the readableTypeIdentifiersForItemProvider class property to get acceptable types.
+- (instancetype)initWithTypeIdentifiersForAcceptingClass:(Class<NSItemProviderReading>)aClass;
+- (void)addTypeIdentifiersForAcceptingClass:(Class<NSItemProviderReading>)aClass;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteConfigurationSupporting.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteConfigurationSupporting.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteConfigurationSupporting.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteConfigurationSupporting.h	2017-05-27 22:37:29.000000000 -0400
@@ -0,0 +1,26 @@
+//
+//  UIPasteConfigurationSupporting.h
+//  UIKit
+//
+//  Copyright © 2007-2017 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class UIPasteConfiguration;
+
+UIKIT_EXTERN API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos, watchos)
+@protocol UIPasteConfigurationSupporting <NSObject>
+
+@property (nonatomic, copy, nullable) UIPasteConfiguration *pasteConfiguration;
+
+@optional
+- (void)pasteItemProviders:(NSArray<NSItemProvider *> *)itemProviders;
+- (BOOL)canPasteItemProviders:(NSArray<NSItemProvider *> *)itemProviders;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIURLDragPreviewView.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIURLDragPreviewView.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIURLDragPreviewView.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIURLDragPreviewView.h	2017-05-27 22:37:29.000000000 -0400
@@ -0,0 +1,40 @@
+//
+//  UIURLDragPreviewView.h
+//  UIKit
+//
+//  Copyright © 2017 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIView.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/* A view showing the system representation of a draggable URL.
+ * 
+ * If you set only the URL, it will show a one-line preview with
+ * a proper text representation of the URL.
+ * If you set the title and URL, it will show a two line preview,
+ * with the title on the first line, and a proper text representation
+ * of the URL on the second line.
+ * If the title is empty, the view will fall back to a one line preview.
+ */
+UIKIT_EXTERN API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos)
+@interface UIURLDragPreviewView : UIView
+
+@property (nonatomic, copy, nullable) NSString *title;
+@property (nonatomic, copy, nullable) NSURL *url;
+
+/* Creates a UIURLDragPreviewView with a title and URL.
+ * The view will be automatically sized to fit the content.
+ */
++ (instancetype)viewWithTitle:(NSString * _Nullable)title URL:(NSURL *)url;
+
+/* Creates a UIURLDragPreviewView with only a URL.
+ * The view will be automatically sized to fit the content.
+ */
++ (instancetype)viewWithURL:(NSURL *)url;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewPropertyAnimator.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewPropertyAnimator.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewPropertyAnimator.h	2016-09-23 21:43:02.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewPropertyAnimator.h	2017-05-30 01:57:43.000000000 -0400
@@ -17,21 +17,27 @@
 
 @property(nonatomic, readonly) NSTimeInterval duration;
 
-// Defaults to 0. This property is set when calling -[UIView startAnimationAfterDelay:].
+/// Defaults to 0. This property is set when calling -[UIView startAnimationAfterDelay:].
 @property(nonatomic, readonly) NSTimeInterval delay;
 
 /// Defaults to YES. Raises if set on an active animator.
 @property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled;
 
-// Defaults to NO. Set if you need to manage the the hittesting of animating view hierarchies
+/// Defaults to NO. Set if you need to manage the the hittesting of animating view hierarchies
 @property(nonatomic, getter=isManualHitTestingEnabled) BOOL manualHitTestingEnabled;
 
 /// Defaults to YES. Raises if set on an active animator.
 @property(nonatomic, getter=isInterruptible) BOOL interruptible;
 
+/// Defaults to YES. Provides the ability for an animator to pause and scrub either linearly or using the animator’s current timing.
+@property(nonatomic) BOOL scrubsLinearly NS_AVAILABLE_IOS(11_0);
+
+/// Defaults to NO. Provides the ability for an animator to pause on completion instead of transitioning to the .inactive state.
+@property(nonatomic) BOOL pausesOnCompletion NS_AVAILABLE_IOS(11_0);
+
 - (instancetype)initWithDuration:(NSTimeInterval)duration timingParameters:(id <UITimingCurveProvider>)parameters NS_DESIGNATED_INITIALIZER;
 
-// All convenience initializers return an animator which is not running.
+/// All convenience initializers return an animator which is not running.
 - (instancetype)initWithDuration:(NSTimeInterval)duration curve:(UIViewAnimationCurve)curve animations:(void (^ __nullable)(void))animations;
 - (instancetype)initWithDuration:(NSTimeInterval)duration controlPoint1:(CGPoint)point1 controlPoint2:(CGPoint)point2 animations:(void (^ __nullable)(void))animations;
 - (instancetype)initWithDuration:(NSTimeInterval)duration dampingRatio:(CGFloat)ratio animations:(void (^ __nullable)(void))animations;
@@ -62,7 +68,12 @@
 - (void)addAnimations:(void (^)(void))animation delayFactor:(CGFloat)delayFactor;
 
 /// Animatable view properties that are set by the animation block will be
-/// animated to their new values.
+/// animated to their new values. Starting an animator that does not contain any animation blocks
+/// will start the animator in a transient paused state. While in this state, submitting an animation
+/// block will automatically start animating any animatable view properties set therein. When the
+/// animator is stopped, either naturally completing or explicitly, any animation blocks and completion
+/// handlers are invalidated. Immediately calling `startAnimation` again on the animator, since there
+/// are no animation blocks, will start the animator in a transient paused state.
 - (void)addAnimations:(void (^)(void))animation;
 
 - (void)addCompletion:(void (^)(UIViewAnimatingPosition finalPosition))completion;
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIVisualEffect.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIVisualEffect.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIVisualEffect.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIVisualEffect.h	2017-05-27 22:37:30.000000000 -0400
@@ -0,0 +1,16 @@
+//
+//  UIVisualEffect.h
+//  UIKit
+//
+//  Copyright © 2016 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+NS_CLASS_AVAILABLE_IOS(8_0) @interface UIVisualEffect : NSObject <NSCopying, NSSecureCoding>
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIVisualEffectView.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIVisualEffectView.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIVisualEffectView.h	2016-08-12 00:59:13.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIVisualEffectView.h	2017-05-27 22:37:30.000000000 -0400
@@ -6,6 +6,8 @@
 //
 
 #import <UIKit/UIView.h>
+#import <UIKit/UIBlurEffect.h>
+#import <UIKit/UIVibrancyEffect.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -20,33 +22,15 @@
  • Correctly capturing snapshots - Many effects require support from the window that hosts the view. As such, attempting to take a snapshot of just the UIVisualEffectView will result in the snapshot not containing the effect at all or it appearing incorrectly. To properly snapshot a view hierarchy that contains a UIVisualEffectView, you must snapshot the entire UIWindow or UIScreen that contains it.
  */
 
-typedef NS_ENUM(NSInteger, UIBlurEffectStyle) {
-    UIBlurEffectStyleExtraLight,
-    UIBlurEffectStyleLight,
-    UIBlurEffectStyleDark,
-    UIBlurEffectStyleExtraDark __TVOS_AVAILABLE(10_0) __IOS_PROHIBITED __WATCHOS_PROHIBITED,
-    UIBlurEffectStyleRegular NS_ENUM_AVAILABLE_IOS(10_0), // Adapts to user interface style
-    UIBlurEffectStyleProminent NS_ENUM_AVAILABLE_IOS(10_0), // Adapts to user interface style
-} NS_ENUM_AVAILABLE_IOS(8_0);
-
-NS_CLASS_AVAILABLE_IOS(8_0) @interface UIVisualEffect : NSObject <NSCopying, NSSecureCoding> @end
-
-/* UIBlurEffect will provide a blur that appears to have been applied to the content layered behind the UIVisualEffectView. Views added to the contentView of a blur visual effect are not blurred themselves. */
-NS_CLASS_AVAILABLE_IOS(8_0) @interface UIBlurEffect : UIVisualEffect
-+ (UIBlurEffect *)effectWithStyle:(UIBlurEffectStyle)style;
-@end
-
-/* UIVibrancyEffect amplifies and adjusts the color of content layered behind the view, allowing content placed inside the contentView to become more vivid. It is intended to be placed over, or as a subview of, a UIVisualEffectView that has been configured with a UIBlurEffect. This effect only affects content added to the contentView. Because the vibrancy effect is color dependent, subviews added to the contentView need to be tintColorDidChange aware and must be prepared to update themselves accordingly. UIImageView will need its image to have a rendering mode of UIImageRenderingModeAlwaysTemplate to receive the proper effect.
- */
-NS_CLASS_AVAILABLE_IOS(8_0) @interface UIVibrancyEffect : UIVisualEffect
-+ (UIVibrancyEffect *)effectForBlurEffect:(UIBlurEffect *)blurEffect;
-@end
-
 NS_CLASS_AVAILABLE_IOS(8_0) @interface UIVisualEffectView : UIView <NSSecureCoding>
+
 @property (nonatomic, strong, readonly) UIView *contentView; // Do not add subviews directly to UIVisualEffectView, use this view instead.
+
 @property (nonatomic, copy, nullable) UIVisualEffect *effect;
+
 - (instancetype)initWithEffect:(nullable UIVisualEffect *)effect NS_DESIGNATED_INITIALIZER;
 - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;
+
 @end
 
 NS_ASSUME_NONNULL_END
Clone this wiki locally