diff --git a/AUTHORS b/AUTHORS index f28b47a4f5..e86b35b29c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -237,5 +237,7 @@ Other contributors, listed alphabetically, are: * Hubert Gruniaux -- C and C++ lexer improvements * Thomas Symalla -- AMDGPU Lexer * 15b3 -- Image Formatter improvements +* Fabian Neumann -- CDDL lexer +* Thomas Duboucher -- CDDL lexer Many thanks for all contributions! diff --git a/CHANGES b/CHANGES index cb9e7b58ce..b4c0498703 100644 --- a/CHANGES +++ b/CHANGES @@ -39,8 +39,26 @@ Version 2.8.0 - Changed setuptools to use a declarative config through ``setup.cfg``. Building Pygments now requires setuptools 39.2+. - Added markdown to MarkdownLexer aliases (#1687) +- Changed line number handling + + * In ```` based output, the ``td.linenos`` element will have either a + ``normal`` or ``special`` class attached. Previously, only ``special`` line + numbers got a class. This prevents styles from getting applied twice - + once via ``
``, once via ````. This also means
+    that ``td.linenos pre`` is no longer styled, instead, use
+    ``td.linenos .normal`` and ``td.linenos .special``.
+  * In the "inline" style, the DOM element order was changed. The line number
+    is added first, then the line is wrapped is wrapped by the highlighter.
+    This fixes lines not being fully highlighted.
+  * The visual output for inline and non-inline line numbers & highlighting,
+    as well as class-based and inline styling is now consistent.
+  * Line number styles are set to ``background-color: transparent`` and
+    ``color: inherit`` by default. This works much better with dark styles
+    which don't have colors set for line numbers.
+
 - Removed "raw" alias from RawTokenLexer, so that it cannot be
   selected by alias.
+- Fixed RawTokenLexer to work in Python 3 and handle exceptions.
 - Added prompt colors to the Solarized theme (#1529)
 
 Version 2.7.4
diff --git a/doc/languages.rst b/doc/languages.rst
index 3ccb3b8f90..f9adb9078a 100644
--- a/doc/languages.rst
+++ b/doc/languages.rst
@@ -220,6 +220,7 @@ Other markup
 * BBCode
 * CapDL
 * `Cap'n Proto `_
+* `CDDL `_
 * CMake
 * `Csound `_ scores
 * CSS
diff --git a/pygments/formatters/html.py b/pygments/formatters/html.py
index 6b36183d79..3ba104f347 100644
--- a/pygments/formatters/html.py
+++ b/pygments/formatters/html.py
@@ -552,9 +552,9 @@ def get_background_style_defs(self, arg=None):
     def get_linenos_style_defs(self):
         lines = [
             'pre { %s }' % self._pre_style,
-            'td.linenos pre { %s }' % self._linenos_style,
+            'td.linenos .normal { %s }' % self._linenos_style,
             'span.linenos { %s }' % self._linenos_style,
-            'td.linenos pre.special { %s }' % self._linenos_special_style,
+            'td.linenos .special { %s }' % self._linenos_special_style,
             'span.linenos.special { %s }' % self._linenos_special_style,
         ]
 
@@ -682,7 +682,7 @@ def _wrap_tablelinenos(self, inner):
                 if special_line:
                     style = ' class="special"'
                 else:
-                    style = ''
+                    style = ' class="normal"'
 
             if style:
                 line = '%s' % (style, line)
@@ -930,11 +930,16 @@ def format_unencoded(self, tokensource, outfile):
         linewise, e.g. line number generators.
         """
         source = self._format_lines(tokensource)
+
+        # As a special case, we wrap line numbers before line highlighting
+        # so the line numbers get wrapped in the highlighting tag.
+        if not self.nowrap and self.linenos == 2:
+            source = self._wrap_inlinelinenos(source)
+
         if self.hl_lines:
             source = self._highlight_lines(source)
+
         if not self.nowrap:
-            if self.linenos == 2:
-                source = self._wrap_inlinelinenos(source)
             if self.lineanchors:
                 source = self._wrap_lineanchors(source)
             if self.linespans:
diff --git a/pygments/formatters/img.py b/pygments/formatters/img.py
index 78176e1458..f481afc4a4 100644
--- a/pygments/formatters/img.py
+++ b/pygments/formatters/img.py
@@ -452,6 +452,16 @@ def _get_text_color(self, style):
             fill = '#000'
         return fill
 
+    def _get_text_bg_color(self, style):
+        """
+        Get the correct background color for the token from the style.
+        """
+        if style['bgcolor'] is not None:
+            bg_color = '#' + style['bgcolor']
+        else:
+            bg_color = None
+        return bg_color
+
     def _get_style_font(self, style):
         """
         Get the correct font for the style.
@@ -474,14 +484,15 @@ def _draw_linenumber(self, posno, lineno):
             str(lineno).rjust(self.line_number_chars),
             font=self.fonts.get_font(self.line_number_bold,
                                      self.line_number_italic),
-            fill=self.line_number_fg,
+            text_fg=self.line_number_fg,
+            text_bg=None,
         )
 
-    def _draw_text(self, pos, text, font, **kw):
+    def _draw_text(self, pos, text, font, text_fg, text_bg):
         """
         Remember a single drawable tuple to paint later.
         """
-        self.drawables.append((pos, text, font, kw))
+        self.drawables.append((pos, text, font, text_fg, text_bg))
 
     def _create_drawables(self, tokensource):
         """
@@ -506,7 +517,8 @@ def _create_drawables(self, tokensource):
                         self._get_text_pos(linelength, lineno),
                         temp,
                         font = self._get_style_font(style),
-                        fill = self._get_text_color(style)
+                        text_fg = self._get_text_color(style),
+                        text_bg = self._get_text_bg_color(style),
                     )
                     temp_width, temp_hight = self.fonts.get_text_size(temp)
                     linelength += temp_width
@@ -576,8 +588,11 @@ def format(self, tokensource, outfile):
                 y = self._get_line_y(linenumber - 1)
                 draw.rectangle([(x, y), (x + rectw, y + recth)],
                                fill=self.hl_color)
-        for pos, value, font, kw in self.drawables:
-            draw.text(pos, value, font=font, **kw)
+        for pos, value, font, text_fg, text_bg in self.drawables:
+            if text_bg:
+                text_size = draw.textsize(text=value, font=font)
+                draw.rectangle([pos[0], pos[1], pos[0] + text_size[0], pos[1] + text_size[1]], fill=text_bg)
+            draw.text(pos, value, font=font, fill=text_fg)
         im.save(outfile, self.image_format.upper())
 
 
diff --git a/pygments/formatters/latex.py b/pygments/formatters/latex.py
index bd7ef9fadf..304f70f4bd 100644
--- a/pygments/formatters/latex.py
+++ b/pygments/formatters/latex.py
@@ -299,13 +299,13 @@ def rgbcolor(col):
                 cmndef += (r'\def\$$@tc##1{\textcolor[rgb]{%s}{##1}}' %
                            rgbcolor(ndef['color']))
             if ndef['border']:
-                cmndef += (r'\def\$$@bc##1{\setlength{\fboxsep}{0pt}'
-                           r'\fcolorbox[rgb]{%s}{%s}{\strut ##1}}' %
+                cmndef += (r'\def\$$@bc##1{{\setlength{\fboxsep}{-\fboxrule}'
+                           r'\fcolorbox[rgb]{%s}{%s}{\strut ##1}}}' %
                            (rgbcolor(ndef['border']),
                             rgbcolor(ndef['bgcolor'])))
             elif ndef['bgcolor']:
-                cmndef += (r'\def\$$@bc##1{\setlength{\fboxsep}{0pt}'
-                           r'\colorbox[rgb]{%s}{\strut ##1}}' %
+                cmndef += (r'\def\$$@bc##1{{\setlength{\fboxsep}{0pt}'
+                           r'\colorbox[rgb]{%s}{\strut ##1}}}' %
                            rgbcolor(ndef['bgcolor']))
             if cmndef == '':
                 continue
@@ -321,8 +321,7 @@ def get_style_defs(self, arg=''):
         cp = self.commandprefix
         styles = []
         for name, definition in self.cmd2def.items():
-            styles.append(r'\expandafter\def\csname %s@tok@%s\endcsname{%s}' %
-                          (cp, name, definition))
+            styles.append(r'\@namedef{%s@tok@%s}{%s}' % (cp, name, definition))
         return STYLE_TEMPLATE % {'cp': self.commandprefix,
                                  'styles': '\n'.join(styles)}
 
@@ -342,7 +341,8 @@ def format_unencoded(self, tokensource, outfile):
                           (start and ',firstnumber=%d' % start or '') +
                           (step and ',stepnumber=%d' % step or ''))
         if self.mathescape or self.texcomments or self.escapeinside:
-            outfile.write(',codes={\\catcode`\\$=3\\catcode`\\^=7\\catcode`\\_=8}')
+            outfile.write(',codes={\\catcode`\\$=3\\catcode`\\^=7'
+                          '\\catcode`\\_=8\\relax}')
         if self.verboptions:
             outfile.write(',' + self.verboptions)
         outfile.write(']\n')
diff --git a/pygments/formatters/other.py b/pygments/formatters/other.py
index 16c2fceb6f..1a12c42b96 100644
--- a/pygments/formatters/other.py
+++ b/pygments/formatters/other.py
@@ -87,34 +87,32 @@ def format(self, tokensource, outfile):
             import gzip
             outfile = gzip.GzipFile('', 'wb', 9, outfile)
 
-            def write(text):
-                outfile.write(text.encode())
-            flush = outfile.flush
+            write = outfile.write
+            flush = outfile.close
         elif self.compress == 'bz2':
             import bz2
             compressor = bz2.BZ2Compressor(9)
 
             def write(text):
-                outfile.write(compressor.compress(text.encode()))
+                outfile.write(compressor.compress(text))
 
             def flush():
                 outfile.write(compressor.flush())
                 outfile.flush()
         else:
-            def write(text):
-                outfile.write(text.encode())
+            write = outfile.write
             flush = outfile.flush
 
         if self.error_color:
             for ttype, value in tokensource:
-                line = "%s\t%r\n" % (ttype, value)
+                line = b"%r\t%r\n" % (ttype, value)
                 if ttype is Token.Error:
                     write(colorize(self.error_color, line))
                 else:
                     write(line)
         else:
             for ttype, value in tokensource:
-                write("%s\t%r\n" % (ttype, value))
+                write(b"%r\t%r\n" % (ttype, value))
         flush()
 
 
diff --git a/pygments/lexers/_cocoa_builtins.py b/pygments/lexers/_cocoa_builtins.py
index 1d714e0483..72d86db1e7 100644
--- a/pygments/lexers/_cocoa_builtins.py
+++ b/pygments/lexers/_cocoa_builtins.py
@@ -11,15 +11,15 @@
     :license: BSD, see LICENSE for details.
 """
 
-COCOA_INTERFACES = {'UITableViewCell', 'HKCorrelationQuery', 'NSURLSessionDataTask', 'PHFetchOptions', 'NSLinguisticTagger', 'NSStream', 'AVAudioUnitDelay', 'GCMotion', 'SKPhysicsWorld', 'NSString', 'CMAttitude', 'AVAudioEnvironmentDistanceAttenuationParameters', 'HKStatisticsCollection', 'SCNPlane', 'CBPeer', 'JSContext', 'SCNTransaction', 'SCNTorus', 'AVAudioUnitEffect', 'UICollectionReusableView', 'MTLSamplerDescriptor', 'AVAssetReaderSampleReferenceOutput', 'AVMutableCompositionTrack', 'GKLeaderboard', 'NSFetchedResultsController', 'SKRange', 'MKTileOverlayRenderer', 'MIDINetworkSession', 'UIVisualEffectView', 'CIWarpKernel', 'PKObject', 'MKRoute', 'MPVolumeView', 'UIPrintInfo', 'SCNText', 'ADClient', 'PKPayment', 'AVMutableAudioMix', 'GLKEffectPropertyLight', 'WKScriptMessage', 'AVMIDIPlayer', 'PHCollectionListChangeRequest', 'UICollectionViewLayout', 'NSMutableCharacterSet', 'SKPaymentTransaction', 'NEOnDemandRuleConnect', 'NSShadow', 'SCNView', 'NSURLSessionConfiguration', 'MTLVertexAttributeDescriptor', 'CBCharacteristic', 'HKQuantityType', 'CKLocationSortDescriptor', 'NEVPNIKEv2SecurityAssociationParameters', 'CMStepCounter', 'NSNetService', 'AVAssetWriterInputMetadataAdaptor', 'UICollectionView', 'UIViewPrintFormatter', 'SCNLevelOfDetail', 'CAShapeLayer', 'MCPeerID', 'MPRatingCommand', 'WKNavigation', 'NSDictionary', 'NSFileVersion', 'CMGyroData', 'AVAudioUnitDistortion', 'CKFetchRecordsOperation', 'SKPhysicsJointSpring', 'SCNHitTestResult', 'AVAudioTime', 'CIFilter', 'UIView', 'SCNConstraint', 'CAPropertyAnimation', 'MKMapItem', 'MPRemoteCommandCenter', 'PKPaymentSummaryItem', 'UICollectionViewFlowLayoutInvalidationContext', 'UIInputViewController', 'PKPass', 'SCNPhysicsBehavior', 'MTLRenderPassColorAttachmentDescriptor', 'MKPolygonRenderer', 'CKNotification', 'JSValue', 'PHCollectionList', 'CLGeocoder', 'NSByteCountFormatter', 'AVCaptureScreenInput', 'MPFeedbackCommand', 'CAAnimation', 'MKOverlayPathView', 'UIActionSheet', 'UIMotionEffectGroup', 'NSLengthFormatter', 'UIBarItem', 'SKProduct', 'AVAssetExportSession', 'NSKeyedUnarchiver', 'NSMutableSet', 'SCNPyramid', 'PHAssetCollection', 'MKMapView', 'HMHomeManager', 'CATransition', 'MTLCompileOptions', 'UIVibrancyEffect', 'CLCircularRegion', 'MKTileOverlay', 'SCNShape', 'ACAccountCredential', 'SKPhysicsJointLimit', 'MKMapSnapshotter', 'AVMediaSelectionGroup', 'NSIndexSet', 'CBPeripheralManager', 'CKRecordZone', 'AVAudioRecorder', 'NSURL', 'CBCentral', 'NSNumber', 'AVAudioOutputNode', 'MTLVertexAttributeDescriptorArray', 'MKETAResponse', 'SKTransition', 'SSReadingList', 'HKSourceQuery', 'UITableViewRowAction', 'UITableView', 'SCNParticlePropertyController', 'AVCaptureStillImageOutput', 'GCController', 'AVAudioPlayerNode', 'AVAudioSessionPortDescription', 'NSHTTPURLResponse', 'NEOnDemandRuleEvaluateConnection', 'SKEffectNode', 'HKQuantity', 'GCControllerElement', 'AVPlayerItemAccessLogEvent', 'SCNBox', 'NSExtensionContext', 'MKOverlayRenderer', 'SCNPhysicsVehicle', 'NSDecimalNumber', 'EKReminder', 'MKPolylineView', 'CKQuery', 'AVAudioMixerNode', 'GKAchievementDescription', 'EKParticipant', 'NSBlockOperation', 'UIActivityItemProvider', 'CLLocation', 'NSBatchUpdateRequest', 'PHContentEditingOutput', 'PHObjectChangeDetails', 'HKWorkoutType', 'MPMoviePlayerController', 'AVAudioFormat', 'HMTrigger', 'MTLRenderPassDepthAttachmentDescriptor', 'SCNRenderer', 'GKScore', 'UISplitViewController', 'HKSource', 'NSURLConnection', 'ABUnknownPersonViewController', 'SCNTechnique', 'UIMenuController', 'NSEvent', 'SKTextureAtlas', 'NSKeyedArchiver', 'GKLeaderboardSet', 'NSSimpleCString', 'AVAudioPCMBuffer', 'CBATTRequest', 'GKMatchRequest', 'AVMetadataObject', 'SKProductsRequest', 'UIAlertView', 'NSIncrementalStore', 'MFMailComposeViewController', 'SCNFloor', 'NSSortDescriptor', 'CKFetchNotificationChangesOperation', 'MPMovieAccessLog', 'NSManagedObjectContext', 'AVAudioUnitGenerator', 'WKBackForwardList', 'SKMutableTexture', 'AVCaptureAudioDataOutput', 'ACAccount', 'AVMetadataItem', 'MPRatingCommandEvent', 'AVCaptureDeviceInputSource', 'CLLocationManager', 'MPRemoteCommand', 'AVCaptureSession', 'UIStepper', 'UIRefreshControl', 'NEEvaluateConnectionRule', 'CKModifyRecordsOperation', 'UICollectionViewTransitionLayout', 'CBCentralManager', 'NSPurgeableData', 'PKShippingMethod', 'SLComposeViewController', 'NSHashTable', 'MKUserTrackingBarButtonItem', 'UILexiconEntry', 'CMMotionActivity', 'SKAction', 'SKShader', 'AVPlayerItemOutput', 'MTLRenderPassAttachmentDescriptor', 'UIDocumentInteractionController', 'UIDynamicItemBehavior', 'NSMutableDictionary', 'UILabel', 'AVCaptureInputPort', 'NSExpression', 'CAInterAppAudioTransportView', 'SKMutablePayment', 'UIImage', 'PHCachingImageManager', 'SCNTransformConstraint', 'HKCorrelationType', 'UIColor', 'SCNGeometrySource', 'AVCaptureAutoExposureBracketedStillImageSettings', 'UIPopoverBackgroundView', 'UIToolbar', 'NSNotificationCenter', 'UICollectionViewLayoutAttributes', 'AVAssetReaderOutputMetadataAdaptor', 'NSEntityMigrationPolicy', 'HMUser', 'NSLocale', 'NSURLSession', 'SCNCamera', 'NSTimeZone', 'UIManagedDocument', 'AVMutableVideoCompositionLayerInstruction', 'AVAssetTrackGroup', 'NSInvocationOperation', 'ALAssetRepresentation', 'AVQueuePlayer', 'HMServiceGroup', 'UIPasteboard', 'PHContentEditingInput', 'NSLayoutManager', 'EKCalendarChooser', 'EKObject', 'CATiledLayer', 'GLKReflectionMapEffect', 'NSManagedObjectID', 'NSEnergyFormatter', 'SLRequest', 'HMCharacteristic', 'AVPlayerLayer', 'MTLRenderPassDescriptor', 'SKPayment', 'NSPointerArray', 'AVAudioMix', 'SCNLight', 'MCAdvertiserAssistant', 'MKMapSnapshotOptions', 'HKCategorySample', 'AVAudioEnvironmentReverbParameters', 'SCNMorpher', 'AVTimedMetadataGroup', 'CBMutableCharacteristic', 'NSFetchRequest', 'UIDevice', 'NSManagedObject', 'NKAssetDownload', 'AVOutputSettingsAssistant', 'SKPhysicsJointPin', 'UITabBar', 'UITextInputMode', 'NSFetchRequestExpression', 'HMActionSet', 'CTSubscriber', 'PHAssetChangeRequest', 'NSPersistentStoreRequest', 'UITabBarController', 'HKQuantitySample', 'AVPlayerItem', 'AVSynchronizedLayer', 'MKDirectionsRequest', 'NSMetadataItem', 'UIPresentationController', 'UINavigationItem', 'PHFetchResultChangeDetails', 'PHImageManager', 'AVCaptureManualExposureBracketedStillImageSettings', 'UIStoryboardPopoverSegue', 'SCNLookAtConstraint', 'UIGravityBehavior', 'UIWindow', 'CBMutableDescriptor', 'NEOnDemandRuleDisconnect', 'UIBezierPath', 'UINavigationController', 'ABPeoplePickerNavigationController', 'EKSource', 'AVAssetWriterInput', 'AVPlayerItemTrack', 'GLKEffectPropertyTexture', 'NSHTTPCookie', 'NSURLResponse', 'SKPaymentQueue', 'NSAssertionHandler', 'MKReverseGeocoder', 'GCControllerAxisInput', 'NSArray', 'NSOrthography', 'NSURLSessionUploadTask', 'NSCharacterSet', 'AVMutableVideoCompositionInstruction', 'AVAssetReaderOutput', 'EAGLContext', 'WKFrameInfo', 'CMPedometer', 'MyClass', 'CKModifyBadgeOperation', 'AVCaptureAudioFileOutput', 'SKEmitterNode', 'NSMachPort', 'AVVideoCompositionCoreAnimationTool', 'PHCollection', 'SCNPhysicsWorld', 'NSURLRequest', 'CMAccelerometerData', 'NSNetServiceBrowser', 'CLFloor', 'AVAsynchronousVideoCompositionRequest', 'SCNGeometry', 'SCNIKConstraint', 'CIKernel', 'CAGradientLayer', 'HKCharacteristicType', 'NSFormatter', 'SCNAction', 'CATransaction', 'CBUUID', 'UIStoryboard', 'MPMediaLibrary', 'UITapGestureRecognizer', 'MPMediaItemArtwork', 'NSURLSessionTask', 'AVAudioUnit', 'MCBrowserViewController', 'UIFontDescriptor', 'NSRelationshipDescription', 'HKSample', 'WKWebView', 'NSMutableAttributedString', 'NSPersistentStoreAsynchronousResult', 'MPNowPlayingInfoCenter', 'MKLocalSearch', 'EAAccessory', 'HKCorrelation', 'CATextLayer', 'NSNotificationQueue', 'UINib', 'GLKTextureLoader', 'HKObjectType', 'NSValue', 'NSMutableIndexSet', 'SKPhysicsContact', 'NSProgress', 'AVPlayerViewController', 'CAScrollLayer', 'GKSavedGame', 'NSTextCheckingResult', 'PHObjectPlaceholder', 'SKConstraint', 'EKEventEditViewController', 'NSEntityDescription', 'NSURLCredentialStorage', 'UIApplication', 'SKDownload', 'SCNNode', 'MKLocalSearchRequest', 'SKScene', 'UISearchDisplayController', 'NEOnDemandRule', 'MTLRenderPassStencilAttachmentDescriptor', 'CAReplicatorLayer', 'UIPrintPageRenderer', 'EKCalendarItem', 'NSUUID', 'EAAccessoryManager', 'NEOnDemandRuleIgnore', 'SKRegion', 'AVAssetResourceLoader', 'EAWiFiUnconfiguredAccessoryBrowser', 'NSUserActivity', 'CTCall', 'UIPrinterPickerController', 'CIVector', 'UINavigationBar', 'UIPanGestureRecognizer', 'MPMediaQuery', 'ABNewPersonViewController', 'CKRecordZoneID', 'HKAnchoredObjectQuery', 'CKFetchRecordZonesOperation', 'UIStoryboardSegue', 'ACAccountType', 'GKSession', 'SKVideoNode', 'PHChange', 'SKReceiptRefreshRequest', 'GCExtendedGamepadSnapshot', 'MPSeekCommandEvent', 'GCExtendedGamepad', 'CAValueFunction', 'SCNCylinder', 'NSNotification', 'NSBatchUpdateResult', 'PKPushCredentials', 'SCNPhysicsSliderJoint', 'AVCaptureDeviceFormat', 'AVPlayerItemErrorLog', 'NSMapTable', 'NSSet', 'CMMotionManager', 'GKVoiceChatService', 'UIPageControl', 'UILexicon', 'MTLArrayType', 'AVAudioUnitReverb', 'MKGeodesicPolyline', 'AVMutableComposition', 'NSLayoutConstraint', 'UIPrinter', 'NSOrderedSet', 'CBAttribute', 'PKPushPayload', 'NSIncrementalStoreNode', 'EKEventStore', 'MPRemoteCommandEvent', 'UISlider', 'UIBlurEffect', 'CKAsset', 'AVCaptureInput', 'AVAudioEngine', 'MTLVertexDescriptor', 'SKPhysicsBody', 'NSOperation', 'PKPaymentPass', 'UIImageAsset', 'MKMapCamera', 'SKProductsResponse', 'GLKEffectPropertyMaterial', 'AVCaptureDevice', 'CTCallCenter', 'CABTMIDILocalPeripheralViewController', 'NEVPNManager', 'HKQuery', 'SCNPhysicsContact', 'CBMutableService', 'AVSampleBufferDisplayLayer', 'SCNSceneSource', 'SKLightNode', 'CKDiscoveredUserInfo', 'NSMutableArray', 'MTLDepthStencilDescriptor', 'MTLArgument', 'NSMassFormatter', 'CIRectangleFeature', 'PKPushRegistry', 'NEVPNConnection', 'MCNearbyServiceBrowser', 'NSOperationQueue', 'MKPolylineRenderer', 'HKWorkout', 'NSValueTransformer', 'UICollectionViewFlowLayout', 'MPChangePlaybackRateCommandEvent', 'NSEntityMapping', 'SKTexture', 'NSMergePolicy', 'UITextInputStringTokenizer', 'NSRecursiveLock', 'AVAsset', 'NSUndoManager', 'AVAudioUnitSampler', 'NSItemProvider', 'SKUniform', 'MPMediaPickerController', 'CKOperation', 'MTLRenderPipelineDescriptor', 'EAWiFiUnconfiguredAccessory', 'NSFileCoordinator', 'SKRequest', 'NSFileHandle', 'NSConditionLock', 'UISegmentedControl', 'NSManagedObjectModel', 'UITabBarItem', 'SCNCone', 'MPMediaItem', 'SCNMaterial', 'EKRecurrenceRule', 'UIEvent', 'UITouch', 'UIPrintInteractionController', 'CMDeviceMotion', 'NEVPNProtocol', 'NSCompoundPredicate', 'HKHealthStore', 'MKMultiPoint', 'HKSampleType', 'UIPrintFormatter', 'AVAudioUnitEQFilterParameters', 'SKView', 'NSConstantString', 'UIPopoverController', 'CKDatabase', 'AVMetadataFaceObject', 'UIAccelerometer', 'EKEventViewController', 'CMAltitudeData', 'MTLStencilDescriptor', 'UISwipeGestureRecognizer', 'NSPort', 'MKCircleRenderer', 'AVCompositionTrack', 'NSAsynchronousFetchRequest', 'NSUbiquitousKeyValueStore', 'NSMetadataQueryResultGroup', 'AVAssetResourceLoadingDataRequest', 'UITableViewHeaderFooterView', 'CKNotificationID', 'AVAudioSession', 'HKUnit', 'NSNull', 'NSPersistentStoreResult', 'MKCircleView', 'AVAudioChannelLayout', 'NEVPNProtocolIKEv2', 'WKProcessPool', 'UIAttachmentBehavior', 'CLBeacon', 'NSInputStream', 'NSURLCache', 'GKPlayer', 'NSMappingModel', 'CIQRCodeFeature', 'AVMutableVideoComposition', 'PHFetchResult', 'NSAttributeDescription', 'AVPlayer', 'MKAnnotationView', 'PKPaymentRequest', 'NSTimer', 'CBDescriptor', 'MKOverlayView', 'AVAudioUnitTimePitch', 'NSSaveChangesRequest', 'UIReferenceLibraryViewController', 'SKPhysicsJointFixed', 'UILocalizedIndexedCollation', 'UIInterpolatingMotionEffect', 'UIDocumentPickerViewController', 'AVAssetWriter', 'NSBundle', 'SKStoreProductViewController', 'GLKViewController', 'NSMetadataQueryAttributeValueTuple', 'GKTurnBasedMatch', 'AVAudioFile', 'UIActivity', 'NSPipe', 'MKShape', 'NSMergeConflict', 'CIImage', 'HKObject', 'UIRotationGestureRecognizer', 'AVPlayerItemLegibleOutput', 'AVAssetImageGenerator', 'GCControllerButtonInput', 'CKMarkNotificationsReadOperation', 'CKSubscription', 'MPTimedMetadata', 'NKIssue', 'UIScreenMode', 'HMAccessoryBrowser', 'GKTurnBasedEventHandler', 'UIWebView', 'MKPolyline', 'JSVirtualMachine', 'AVAssetReader', 'NSAttributedString', 'GKMatchmakerViewController', 'NSCountedSet', 'UIButton', 'WKNavigationResponse', 'GKLocalPlayer', 'MPMovieErrorLog', 'AVSpeechUtterance', 'HKStatistics', 'UILocalNotification', 'HKBiologicalSexObject', 'AVURLAsset', 'CBPeripheral', 'NSDateComponentsFormatter', 'SKSpriteNode', 'UIAccessibilityElement', 'AVAssetWriterInputGroup', 'HMZone', 'AVAssetReaderAudioMixOutput', 'NSEnumerator', 'UIDocument', 'MKLocalSearchResponse', 'UISimpleTextPrintFormatter', 'PHPhotoLibrary', 'CBService', 'UIDocumentMenuViewController', 'MCSession', 'QLPreviewController', 'CAMediaTimingFunction', 'UITextPosition', 'ASIdentifierManager', 'AVAssetResourceLoadingRequest', 'SLComposeServiceViewController', 'UIPinchGestureRecognizer', 'PHObject', 'NSExtensionItem', 'HKSampleQuery', 'MTLRenderPipelineColorAttachmentDescriptorArray', 'MKRouteStep', 'SCNCapsule', 'NSMetadataQuery', 'AVAssetResourceLoadingContentInformationRequest', 'UITraitCollection', 'CTCarrier', 'NSFileSecurity', 'UIAcceleration', 'UIMotionEffect', 'MTLRenderPipelineReflection', 'CLHeading', 'CLVisit', 'MKDirectionsResponse', 'HMAccessory', 'MTLStructType', 'UITextView', 'CMMagnetometerData', 'UICollisionBehavior', 'UIProgressView', 'CKServerChangeToken', 'UISearchBar', 'MKPlacemark', 'AVCaptureConnection', 'NSPropertyMapping', 'ALAssetsFilter', 'SK3DNode', 'AVPlayerItemErrorLogEvent', 'NSJSONSerialization', 'AVAssetReaderVideoCompositionOutput', 'ABPersonViewController', 'CIDetector', 'GKTurnBasedMatchmakerViewController', 'MPMediaItemCollection', 'SCNSphere', 'NSCondition', 'NSURLCredential', 'MIDINetworkConnection', 'NSFileProviderExtension', 'NSDecimalNumberHandler', 'NSAtomicStoreCacheNode', 'NSAtomicStore', 'EKAlarm', 'CKNotificationInfo', 'AVAudioUnitEQ', 'UIPercentDrivenInteractiveTransition', 'MKPolygon', 'AVAssetTrackSegment', 'MTLVertexAttribute', 'NSExpressionDescription', 'HKStatisticsCollectionQuery', 'NSURLAuthenticationChallenge', 'NSDirectoryEnumerator', 'MKDistanceFormatter', 'UIAlertAction', 'NSPropertyListSerialization', 'GKPeerPickerController', 'UIUserNotificationSettings', 'UITableViewController', 'GKNotificationBanner', 'MKPointAnnotation', 'MTLRenderPassColorAttachmentDescriptorArray', 'NSCache', 'SKPhysicsJoint', 'NSXMLParser', 'UIViewController', 'PKPaymentToken', 'MFMessageComposeViewController', 'AVAudioInputNode', 'NSDataDetector', 'CABTMIDICentralViewController', 'AVAudioUnitMIDIInstrument', 'AVCaptureVideoPreviewLayer', 'AVAssetWriterInputPassDescription', 'MPChangePlaybackRateCommand', 'NSURLComponents', 'CAMetalLayer', 'UISnapBehavior', 'AVMetadataMachineReadableCodeObject', 'CKDiscoverUserInfosOperation', 'NSTextAttachment', 'NSException', 'UIMenuItem', 'CMMotionActivityManager', 'SCNGeometryElement', 'NCWidgetController', 'CAEmitterLayer', 'MKUserLocation', 'UIImagePickerController', 'CIFeature', 'AVCaptureDeviceInput', 'ALAsset', 'NSURLSessionDownloadTask', 'SCNPhysicsHingeJoint', 'MPMoviePlayerViewController', 'NSMutableOrderedSet', 'SCNMaterialProperty', 'UIFont', 'AVCaptureVideoDataOutput', 'NSCachedURLResponse', 'ALAssetsLibrary', 'NSInvocation', 'UILongPressGestureRecognizer', 'NSTextStorage', 'WKWebViewConfiguration', 'CIFaceFeature', 'MKMapSnapshot', 'GLKEffectPropertyFog', 'AVComposition', 'CKDiscoverAllContactsOperation', 'AVAudioMixInputParameters', 'CAEmitterBehavior', 'PKPassLibrary', 'UIMutableUserNotificationCategory', 'NSLock', 'NEVPNProtocolIPSec', 'ADBannerView', 'UIDocumentPickerExtensionViewController', 'UIActivityIndicatorView', 'AVPlayerMediaSelectionCriteria', 'CALayer', 'UIAccessibilityCustomAction', 'UIBarButtonItem', 'AVAudioSessionRouteDescription', 'CLBeaconRegion', 'HKBloodTypeObject', 'MTLVertexBufferLayoutDescriptorArray', 'CABasicAnimation', 'AVVideoCompositionInstruction', 'AVMutableTimedMetadataGroup', 'EKRecurrenceEnd', 'NSTextContainer', 'TWTweetComposeViewController', 'PKPaymentAuthorizationViewController', 'UIScrollView', 'WKNavigationAction', 'AVPlayerItemMetadataOutput', 'EKRecurrenceDayOfWeek', 'NSNumberFormatter', 'MTLComputePipelineReflection', 'UIScreen', 'CLRegion', 'NSProcessInfo', 'GLKTextureInfo', 'SCNSkinner', 'AVCaptureMetadataOutput', 'SCNAnimationEvent', 'NSTextTab', 'JSManagedValue', 'NSDate', 'UITextChecker', 'WKBackForwardListItem', 'NSData', 'NSParagraphStyle', 'AVMutableMetadataItem', 'EKCalendar', 'HKWorkoutEvent', 'NSMutableURLRequest', 'UIVideoEditorController', 'HMTimerTrigger', 'AVAudioUnitVarispeed', 'UIDynamicAnimator', 'AVCompositionTrackSegment', 'GCGamepadSnapshot', 'MPMediaEntity', 'GLKSkyboxEffect', 'UISwitch', 'EKStructuredLocation', 'UIGestureRecognizer', 'NSProxy', 'GLKBaseEffect', 'UIPushBehavior', 'GKScoreChallenge', 'NSCoder', 'MPMediaPlaylist', 'NSDateComponents', 'WKUserScript', 'EKEvent', 'NSDateFormatter', 'NSAsynchronousFetchResult', 'AVAssetWriterInputPixelBufferAdaptor', 'UIVisualEffect', 'UICollectionViewCell', 'UITextField', 'CLPlacemark', 'MPPlayableContentManager', 'AVCaptureOutput', 'HMCharacteristicWriteAction', 'CKModifySubscriptionsOperation', 'NSPropertyDescription', 'GCGamepad', 'UIMarkupTextPrintFormatter', 'SCNTube', 'NSPersistentStoreCoordinator', 'AVAudioEnvironmentNode', 'GKMatchmaker', 'CIContext', 'NSThread', 'SLComposeSheetConfigurationItem', 'SKPhysicsJointSliding', 'NSPredicate', 'GKVoiceChat', 'SKCropNode', 'AVCaptureAudioPreviewOutput', 'NSStringDrawingContext', 'GKGameCenterViewController', 'UIPrintPaper', 'SCNPhysicsBallSocketJoint', 'UICollectionViewLayoutInvalidationContext', 'GLKEffectPropertyTransform', 'AVAudioIONode', 'UIDatePicker', 'MKDirections', 'ALAssetsGroup', 'CKRecordZoneNotification', 'SCNScene', 'MPMovieAccessLogEvent', 'CKFetchSubscriptionsOperation', 'CAEmitterCell', 'AVAudioUnitTimeEffect', 'HMCharacteristicMetadata', 'MKPinAnnotationView', 'UIPickerView', 'UIImageView', 'UIUserNotificationCategory', 'SCNPhysicsVehicleWheel', 'HKCategoryType', 'MPMediaQuerySection', 'GKFriendRequestComposeViewController', 'NSError', 'MTLRenderPipelineColorAttachmentDescriptor', 'SCNPhysicsShape', 'UISearchController', 'SCNPhysicsBody', 'CTSubscriberInfo', 'AVPlayerItemAccessLog', 'MPMediaPropertyPredicate', 'CMLogItem', 'NSAutoreleasePool', 'NSSocketPort', 'AVAssetReaderTrackOutput', 'SKNode', 'UIMutableUserNotificationAction', 'SCNProgram', 'AVSpeechSynthesisVoice', 'CMAltimeter', 'AVCaptureAudioChannel', 'GKTurnBasedExchangeReply', 'AVVideoCompositionLayerInstruction', 'AVSpeechSynthesizer', 'GKChallengeEventHandler', 'AVCaptureFileOutput', 'UIControl', 'SCNPhysicsField', 'CKReference', 'LAContext', 'CKRecordID', 'ADInterstitialAd', 'AVAudioSessionDataSourceDescription', 'AVAudioBuffer', 'CIColorKernel', 'GCControllerDirectionPad', 'NSFileManager', 'AVMutableAudioMixInputParameters', 'UIScreenEdgePanGestureRecognizer', 'CAKeyframeAnimation', 'CKQueryNotification', 'PHAdjustmentData', 'EASession', 'AVAssetResourceRenewalRequest', 'UIInputView', 'NSFileWrapper', 'UIResponder', 'NSPointerFunctions', 'UIKeyCommand', 'NSHTTPCookieStorage', 'AVMediaSelectionOption', 'NSRunLoop', 'NSFileAccessIntent', 'CAAnimationGroup', 'MKCircle', 'UIAlertController', 'NSMigrationManager', 'NSDateIntervalFormatter', 'UICollectionViewUpdateItem', 'CKDatabaseOperation', 'PHImageRequestOptions', 'SKReachConstraints', 'CKRecord', 'CAInterAppAudioSwitcherView', 'WKWindowFeatures', 'GKInvite', 'NSMutableData', 'PHAssetCollectionChangeRequest', 'NSMutableParagraphStyle', 'UIDynamicBehavior', 'GLKEffectProperty', 'CKFetchRecordChangesOperation', 'SKShapeNode', 'MPMovieErrorLogEvent', 'MKPolygonView', 'MPContentItem', 'HMAction', 'NSScanner', 'GKAchievementChallenge', 'AVAudioPlayer', 'CKContainer', 'AVVideoComposition', 'NKLibrary', 'NSPersistentStore', 'AVCaptureMovieFileOutput', 'HMRoom', 'GKChallenge', 'UITextRange', 'NSURLProtectionSpace', 'ACAccountStore', 'MPSkipIntervalCommand', 'NSComparisonPredicate', 'HMHome', 'PHVideoRequestOptions', 'NSOutputStream', 'MPSkipIntervalCommandEvent', 'PKAddPassesViewController', 'UITextSelectionRect', 'CTTelephonyNetworkInfo', 'AVTextStyleRule', 'NSFetchedPropertyDescription', 'UIPageViewController', 'CATransformLayer', 'UICollectionViewController', 'AVAudioNode', 'MCNearbyServiceAdvertiser', 'NSObject', 'PHAsset', 'GKLeaderboardViewController', 'CKQueryCursor', 'MPMusicPlayerController', 'MKOverlayPathRenderer', 'CMPedometerData', 'HMService', 'SKFieldNode', 'GKAchievement', 'WKUserContentController', 'AVAssetTrack', 'TWRequest', 'SKLabelNode', 'AVCaptureBracketedStillImageSettings', 'MIDINetworkHost', 'MPMediaPredicate', 'AVFrameRateRange', 'MTLTextureDescriptor', 'MTLVertexBufferLayoutDescriptor', 'MPFeedbackCommandEvent', 'UIUserNotificationAction', 'HKStatisticsQuery', 'SCNParticleSystem', 'NSIndexPath', 'AVVideoCompositionRenderContext', 'CADisplayLink', 'HKObserverQuery', 'UIPopoverPresentationController', 'CKQueryOperation', 'CAEAGLLayer', 'NSMutableString', 'NSMessagePort', 'NSURLQueryItem', 'MTLStructMember', 'AVAudioSessionChannelDescription', 'GLKView', 'UIActivityViewController', 'GKAchievementViewController', 'GKTurnBasedParticipant', 'NSURLProtocol', 'NSUserDefaults', 'NSCalendar', 'SKKeyframeSequence', 'AVMetadataItemFilter', 'CKModifyRecordZonesOperation', 'WKPreferences', 'NSMethodSignature', 'NSRegularExpression', 'EAGLSharegroup', 'AVPlayerItemVideoOutput', 'PHContentEditingInputRequestOptions', 'GKMatch', 'CIColor', 'UIDictationPhrase'}
-COCOA_PROTOCOLS = {'SKStoreProductViewControllerDelegate', 'AVVideoCompositionInstruction', 'AVAudioSessionDelegate', 'GKMatchDelegate', 'NSFileManagerDelegate', 'UILayoutSupport', 'NSCopying', 'UIPrintInteractionControllerDelegate', 'QLPreviewControllerDataSource', 'SKProductsRequestDelegate', 'NSTextStorageDelegate', 'MCBrowserViewControllerDelegate', 'MTLComputeCommandEncoder', 'SCNSceneExportDelegate', 'UISearchResultsUpdating', 'MFMailComposeViewControllerDelegate', 'MTLBlitCommandEncoder', 'NSDecimalNumberBehaviors', 'PHContentEditingController', 'NSMutableCopying', 'UIActionSheetDelegate', 'UIViewControllerTransitioningDelegate', 'UIAlertViewDelegate', 'AVAudioPlayerDelegate', 'MKReverseGeocoderDelegate', 'NSCoding', 'UITextInputTokenizer', 'GKFriendRequestComposeViewControllerDelegate', 'UIActivityItemSource', 'NSCacheDelegate', 'UIAdaptivePresentationControllerDelegate', 'GKAchievementViewControllerDelegate', 'UIViewControllerTransitionCoordinator', 'EKEventEditViewDelegate', 'NSURLConnectionDelegate', 'UITableViewDelegate', 'GKPeerPickerControllerDelegate', 'UIGuidedAccessRestrictionDelegate', 'AVSpeechSynthesizerDelegate', 'AVAudio3DMixing', 'AVPlayerItemLegibleOutputPushDelegate', 'ADInterstitialAdDelegate', 'HMAccessoryBrowserDelegate', 'AVAssetResourceLoaderDelegate', 'UITabBarControllerDelegate', 'CKRecordValue', 'SKPaymentTransactionObserver', 'AVCaptureAudioDataOutputSampleBufferDelegate', 'UIInputViewAudioFeedback', 'GKChallengeListener', 'SKSceneDelegate', 'UIPickerViewDelegate', 'UIWebViewDelegate', 'UIApplicationDelegate', 'GKInviteEventListener', 'MPMediaPlayback', 'MyClassJavaScriptMethods', 'AVAsynchronousKeyValueLoading', 'QLPreviewItem', 'SCNBoundingVolume', 'NSPortDelegate', 'UIContentContainer', 'SCNNodeRendererDelegate', 'SKRequestDelegate', 'SKPhysicsContactDelegate', 'HMAccessoryDelegate', 'UIPageViewControllerDataSource', 'SCNSceneRendererDelegate', 'SCNPhysicsContactDelegate', 'MKMapViewDelegate', 'AVPlayerItemOutputPushDelegate', 'UICollectionViewDelegate', 'UIImagePickerControllerDelegate', 'MTLRenderCommandEncoder', 'PKPaymentAuthorizationViewControllerDelegate', 'UIToolbarDelegate', 'WKUIDelegate', 'SCNActionable', 'NSURLConnectionDataDelegate', 'MKOverlay', 'CBCentralManagerDelegate', 'JSExport', 'NSTextLayoutOrientationProvider', 'UIPickerViewDataSource', 'PKPushRegistryDelegate', 'UIViewControllerTransitionCoordinatorContext', 'NSLayoutManagerDelegate', 'MTLLibrary', 'NSFetchedResultsControllerDelegate', 'ABPeoplePickerNavigationControllerDelegate', 'MTLResource', 'NSDiscardableContent', 'UITextFieldDelegate', 'MTLBuffer', 'MTLSamplerState', 'GKGameCenterControllerDelegate', 'MPMediaPickerControllerDelegate', 'UISplitViewControllerDelegate', 'UIAppearance', 'UIPickerViewAccessibilityDelegate', 'UITraitEnvironment', 'UIScrollViewAccessibilityDelegate', 'ADBannerViewDelegate', 'MPPlayableContentDataSource', 'MTLComputePipelineState', 'NSURLSessionDelegate', 'MTLCommandBuffer', 'NSXMLParserDelegate', 'UIViewControllerRestoration', 'UISearchBarDelegate', 'UIBarPositioning', 'CBPeripheralDelegate', 'UISearchDisplayDelegate', 'CAAction', 'PKAddPassesViewControllerDelegate', 'MCNearbyServiceAdvertiserDelegate', 'MTLDepthStencilState', 'GKTurnBasedMatchmakerViewControllerDelegate', 'MPPlayableContentDelegate', 'AVCaptureVideoDataOutputSampleBufferDelegate', 'UIAppearanceContainer', 'UIStateRestoring', 'UITextDocumentProxy', 'MTLDrawable', 'NSURLSessionTaskDelegate', 'NSFilePresenter', 'AVAudioStereoMixing', 'UIViewControllerContextTransitioning', 'UITextInput', 'CBPeripheralManagerDelegate', 'UITextInputDelegate', 'NSFastEnumeration', 'NSURLAuthenticationChallengeSender', 'SCNProgramDelegate', 'AVVideoCompositing', 'SCNAnimatable', 'NSSecureCoding', 'MCAdvertiserAssistantDelegate', 'GKLocalPlayerListener', 'GLKNamedEffect', 'UIPopoverControllerDelegate', 'AVCaptureMetadataOutputObjectsDelegate', 'NSExtensionRequestHandling', 'UITextSelecting', 'UIPrinterPickerControllerDelegate', 'NCWidgetProviding', 'MTLCommandEncoder', 'NSURLProtocolClient', 'MFMessageComposeViewControllerDelegate', 'UIVideoEditorControllerDelegate', 'WKNavigationDelegate', 'GKSavedGameListener', 'UITableViewDataSource', 'MTLFunction', 'EKCalendarChooserDelegate', 'NSUserActivityDelegate', 'UICollisionBehaviorDelegate', 'NSStreamDelegate', 'MCNearbyServiceBrowserDelegate', 'HMHomeDelegate', 'UINavigationControllerDelegate', 'MCSessionDelegate', 'UIDocumentPickerDelegate', 'UIViewControllerInteractiveTransitioning', 'GKTurnBasedEventListener', 'SCNSceneRenderer', 'MTLTexture', 'GLKViewDelegate', 'EAAccessoryDelegate', 'WKScriptMessageHandler', 'PHPhotoLibraryChangeObserver', 'NSKeyedUnarchiverDelegate', 'AVPlayerItemMetadataOutputPushDelegate', 'NSMachPortDelegate', 'SCNShadable', 'UIPopoverBackgroundViewMethods', 'UIDocumentMenuDelegate', 'UIBarPositioningDelegate', 'ABPersonViewControllerDelegate', 'NSNetServiceBrowserDelegate', 'EKEventViewDelegate', 'UIScrollViewDelegate', 'NSURLConnectionDownloadDelegate', 'UIGestureRecognizerDelegate', 'UINavigationBarDelegate', 'AVAudioMixing', 'NSFetchedResultsSectionInfo', 'UIDocumentInteractionControllerDelegate', 'MTLParallelRenderCommandEncoder', 'QLPreviewControllerDelegate', 'UIAccessibilityReadingContent', 'ABUnknownPersonViewControllerDelegate', 'GLKViewControllerDelegate', 'UICollectionViewDelegateFlowLayout', 'UIPopoverPresentationControllerDelegate', 'UIDynamicAnimatorDelegate', 'NSTextAttachmentContainer', 'MKAnnotation', 'UIAccessibilityIdentification', 'UICoordinateSpace', 'ABNewPersonViewControllerDelegate', 'MTLDevice', 'CAMediaTiming', 'AVCaptureFileOutputRecordingDelegate', 'HMHomeManagerDelegate', 'UITextViewDelegate', 'UITabBarDelegate', 'GKLeaderboardViewControllerDelegate', 'UISearchControllerDelegate', 'EAWiFiUnconfiguredAccessoryBrowserDelegate', 'UITextInputTraits', 'MTLRenderPipelineState', 'GKVoiceChatClient', 'UIKeyInput', 'UICollectionViewDataSource', 'SCNTechniqueSupport', 'NSLocking', 'AVCaptureFileOutputDelegate', 'GKChallengeEventHandlerDelegate', 'UIObjectRestoration', 'CIFilterConstructor', 'AVPlayerItemOutputPullDelegate', 'EAGLDrawable', 'AVVideoCompositionValidationHandling', 'UIViewControllerAnimatedTransitioning', 'NSURLSessionDownloadDelegate', 'UIAccelerometerDelegate', 'UIPageViewControllerDelegate', 'MTLCommandQueue', 'UIDataSourceModelAssociation', 'AVAudioRecorderDelegate', 'GKSessionDelegate', 'NSKeyedArchiverDelegate', 'CAMetalDrawable', 'UIDynamicItem', 'CLLocationManagerDelegate', 'NSMetadataQueryDelegate', 'NSNetServiceDelegate', 'GKMatchmakerViewControllerDelegate', 'NSURLSessionDataDelegate'}
-COCOA_PRIMITIVES = {'ROTAHeader', '__CFBundle', 'MortSubtable', 'AudioFilePacketTableInfo', 'CGPDFOperatorTable', 'KerxStateEntry', 'ExtendedTempoEvent', 'CTParagraphStyleSetting', 'OpaqueMIDIPort', '_GLKMatrix3', '_GLKMatrix2', '_GLKMatrix4', 'ExtendedControlEvent', 'CAFAudioDescription', 'OpaqueCMBlockBuffer', 'CGTextDrawingMode', 'EKErrorCode', 'gss_buffer_desc_struct', 'AudioUnitParameterInfo', '__SCPreferences', '__CTFrame', '__CTLine', 'AudioFile_SMPTE_Time', 'gss_krb5_lucid_context_v1', 'OpaqueJSValue', 'TrakTableEntry', 'AudioFramePacketTranslation', 'CGImageSource', 'OpaqueJSPropertyNameAccumulator', 'JustPCGlyphRepeatAddAction', '__CFBinaryHeap', 'OpaqueMIDIThruConnection', 'opaqueCMBufferQueue', 'OpaqueMusicSequence', 'MortRearrangementSubtable', 'MixerDistanceParams', 'MorxSubtable', 'MIDIObjectPropertyChangeNotification', 'SFNTLookupSegment', 'CGImageMetadataErrors', 'CGPath', 'OpaqueMIDIEndpoint', 'AudioComponentPlugInInterface', 'gss_ctx_id_t_desc_struct', 'sfntFontFeatureSetting', 'OpaqueJSContextGroup', '__SCNetworkConnection', 'AudioUnitParameterValueTranslation', 'CGImageMetadataType', 'CGPattern', 'AudioFileTypeAndFormatID', 'CGContext', 'AUNodeInteraction', 'SFNTLookupTable', 'JustPCDecompositionAction', 'KerxControlPointHeader', 'AudioStreamPacketDescription', 'KernSubtableHeader', '__SecCertificate', 'AUMIDIOutputCallbackStruct', 'MIDIMetaEvent', 'AudioQueueChannelAssignment', 'AnchorPoint', 'JustTable', '__CFNetService', 'CF_BRIDGED_TYPE', 'gss_krb5_lucid_key', 'CGPDFDictionary', 'KerxSubtableHeader', 'CAF_UUID_ChunkHeader', 'gss_krb5_cfx_keydata', 'OpaqueJSClass', 'CGGradient', 'OpaqueMIDISetup', 'JustPostcompTable', '__CTParagraphStyle', 'AudioUnitParameterHistoryInfo', 'OpaqueJSContext', 'CGShading', 'MIDIThruConnectionParams', 'BslnFormat0Part', 'SFNTLookupSingle', '__CFHost', '__SecRandom', '__CTFontDescriptor', '_NSRange', 'sfntDirectory', 'AudioQueueLevelMeterState', 'CAFPositionPeak', 'PropLookupSegment', '__CVOpenGLESTextureCache', 'sfntInstance', '_GLKQuaternion', 'AnkrTable', '__SCNetworkProtocol', 'CAFFileHeader', 'KerxOrderedListHeader', 'CGBlendMode', 'STXEntryOne', 'CAFRegion', 'SFNTLookupTrimmedArrayHeader', 'SCNMatrix4', 'KerxControlPointEntry', 'OpaqueMusicTrack', '_GLKVector4', 'gss_OID_set_desc_struct', 'OpaqueMusicPlayer', '_CFHTTPAuthentication', 'CGAffineTransform', 'CAFMarkerChunk', 'AUHostIdentifier', 'ROTAGlyphEntry', 'BslnTable', 'gss_krb5_lucid_context_version', '_GLKMatrixStack', 'CGImage', 'KernStateEntry', 'SFNTLookupSingleHeader', 'MortLigatureSubtable', 'CAFUMIDChunk', 'SMPTETime', 'CAFDataChunk', 'CGPDFStream', 'AudioFileRegionList', 'STEntryTwo', 'SFNTLookupBinarySearchHeader', 'OpbdTable', '__CTGlyphInfo', 'BslnFormat2Part', 'KerxIndexArrayHeader', 'TrakTable', 'KerxKerningPair', '__CFBitVector', 'KernVersion0SubtableHeader', 'OpaqueAudioComponentInstance', 'AudioChannelLayout', '__CFUUID', 'MIDISysexSendRequest', '__CFNumberFormatter', 'CGImageSourceStatus', 'AudioFileMarkerList', 'AUSamplerBankPresetData', 'CGDataProvider', 'AudioFormatInfo', '__SecIdentity', 'sfntCMapExtendedSubHeader', 'MIDIChannelMessage', 'KernOffsetTable', 'CGColorSpaceModel', 'MFMailComposeErrorCode', 'CGFunction', '__SecTrust', 'AVAudio3DAngularOrientation', 'CGFontPostScriptFormat', 'KernStateHeader', 'AudioUnitCocoaViewInfo', 'CGDataConsumer', 'OpaqueMIDIDevice', 'KernVersion0Header', 'AnchorPointTable', 'CGImageDestination', 'CAFInstrumentChunk', 'AudioUnitMeterClipping', 'MorxChain', '__CTFontCollection', 'STEntryOne', 'STXEntryTwo', 'ExtendedNoteOnEvent', 'CGColorRenderingIntent', 'KerxSimpleArrayHeader', 'MorxTable', '_GLKVector3', '_GLKVector2', 'MortTable', 'CGPDFBox', 'AudioUnitParameterValueFromString', '__CFSocket', 'ALCdevice_struct', 'MIDINoteMessage', 'sfntFeatureHeader', 'CGRect', '__SCNetworkInterface', '__CFTree', 'MusicEventUserData', 'TrakTableData', 'GCQuaternion', 'MortContextualSubtable', '__CTRun', 'AudioUnitFrequencyResponseBin', 'MortChain', 'MorxInsertionSubtable', 'CGImageMetadata', 'gss_auth_identity', 'AudioUnitMIDIControlMapping', 'CAFChunkHeader', 'CGImagePropertyOrientation', 'CGPDFScanner', 'OpaqueMusicEventIterator', 'sfntDescriptorHeader', 'AudioUnitNodeConnection', 'OpaqueMIDIDeviceList', 'ExtendedAudioFormatInfo', 'BslnFormat1Part', 'sfntFontDescriptor', 'KernSimpleArrayHeader', '__CFRunLoopObserver', 'CGPatternTiling', 'MIDINotification', 'MorxLigatureSubtable', 'MessageComposeResult', 'MIDIThruConnectionEndpoint', 'MusicDeviceStdNoteParams', 'opaqueCMSimpleQueue', 'ALCcontext_struct', 'OpaqueAudioQueue', 'PropLookupSingle', 'CGInterpolationQuality', 'CGColor', 'AudioOutputUnitStartAtTimeParams', 'gss_name_t_desc_struct', 'CGFunctionCallbacks', 'CAFPacketTableHeader', 'AudioChannelDescription', 'sfntFeatureName', 'MorxContextualSubtable', 'CVSMPTETime', 'AudioValueRange', 'CGTextEncoding', 'AudioStreamBasicDescription', 'AUNodeRenderCallback', 'AudioPanningInfo', 'KerxOrderedListEntry', '__CFAllocator', 'OpaqueJSPropertyNameArray', '__SCDynamicStore', 'OpaqueMIDIEntity', '__CTRubyAnnotation', 'SCNVector4', 'CFHostClientContext', 'CFNetServiceClientContext', 'AudioUnitPresetMAS_SettingData', 'opaqueCMBufferQueueTriggerToken', 'AudioUnitProperty', 'CAFRegionChunk', 'CGPDFString', '__GLsync', '__CFStringTokenizer', 'JustWidthDeltaEntry', 'sfntVariationAxis', '__CFNetDiagnostic', 'CAFOverviewSample', 'sfntCMapEncoding', 'CGVector', '__SCNetworkService', 'opaqueCMSampleBuffer', 'AUHostVersionIdentifier', 'AudioBalanceFade', 'sfntFontRunFeature', 'KerxCoordinateAction', 'sfntCMapSubHeader', 'CVPlanarPixelBufferInfo', 'AUNumVersion', 'AUSamplerInstrumentData', 'AUPreset', '__CTRunDelegate', 'OpaqueAudioQueueProcessingTap', 'KerxTableHeader', '_NSZone', 'OpaqueExtAudioFile', '__CFRunLoopSource', '__CVMetalTextureCache', 'KerxAnchorPointAction', 'OpaqueJSString', 'AudioQueueParameterEvent', '__CFHTTPMessage', 'OpaqueCMClock', 'ScheduledAudioFileRegion', 'STEntryZero', 'AVAudio3DPoint', 'gss_channel_bindings_struct', 'sfntVariationHeader', 'AUChannelInfo', 'UIOffset', 'GLKEffectPropertyPrv', 'KerxStateHeader', 'CGLineJoin', 'CGPDFDocument', '__CFBag', 'KernOrderedListHeader', '__SCNetworkSet', '__SecKey', 'MIDIObjectAddRemoveNotification', 'AudioUnitParameter', 'JustPCActionSubrecord', 'AudioComponentDescription', 'AudioUnitParameterValueName', 'AudioUnitParameterEvent', 'KerxControlPointAction', 'AudioTimeStamp', 'KernKerningPair', 'gss_buffer_set_desc_struct', 'MortFeatureEntry', 'FontVariation', 'CAFStringID', 'LcarCaretClassEntry', 'AudioUnitParameterStringFromValue', 'ACErrorCode', 'ALMXGlyphEntry', 'LtagTable', '__CTTypesetter', 'AuthorizationOpaqueRef', 'UIEdgeInsets', 'CGPathElement', 'CAFMarker', 'KernTableHeader', 'NoteParamsControlValue', 'SSLContext', 'gss_cred_id_t_desc_struct', 'AudioUnitParameterNameInfo', 'CGDataConsumerCallbacks', 'ALMXHeader', 'CGLineCap', 'MIDIControlTransform', 'CGPDFArray', '__SecPolicy', 'AudioConverterPrimeInfo', '__CTTextTab', '__CFNetServiceMonitor', 'AUInputSamplesInOutputCallbackStruct', '__CTFramesetter', 'CGPDFDataFormat', 'STHeader', 'CVPlanarPixelBufferInfo_YCbCrPlanar', 'MIDIValueMap', 'JustDirectionTable', '__SCBondStatus', 'SFNTLookupSegmentHeader', 'OpaqueCMMemoryPool', 'CGPathDrawingMode', 'CGFont', '__SCNetworkReachability', 'AudioClassDescription', 'CGPoint', 'AVAudio3DVectorOrientation', 'CAFStrings', '__CFNetServiceBrowser', 'opaqueMTAudioProcessingTap', 'sfntNameRecord', 'CGPDFPage', 'CGLayer', 'ComponentInstanceRecord', 'CAFInfoStrings', 'HostCallbackInfo', 'MusicDeviceNoteParams', 'OpaqueVTCompressionSession', 'KernIndexArrayHeader', 'CVPlanarPixelBufferInfo_YCbCrBiPlanar', 'MusicTrackLoopInfo', 'opaqueCMFormatDescription', 'STClassTable', 'sfntDirectoryEntry', 'OpaqueCMTimebase', 'CGDataProviderDirectCallbacks', 'MIDIPacketList', 'CAFOverviewChunk', 'MIDIPacket', 'ScheduledAudioSlice', 'CGDataProviderSequentialCallbacks', 'AudioBuffer', 'MorxRearrangementSubtable', 'CGPatternCallbacks', 'AUDistanceAttenuationData', 'MIDIIOErrorNotification', 'CGPDFContentStream', 'IUnknownVTbl', 'MIDITransform', 'MortInsertionSubtable', 'CABarBeatTime', 'AudioBufferList', '__CVBuffer', 'AURenderCallbackStruct', 'STXEntryZero', 'JustPCDuctilityAction', 'OpaqueAudioQueueTimeline', 'VTDecompressionOutputCallbackRecord', 'OpaqueMIDIClient', '__CFPlugInInstance', 'AudioQueueBuffer', '__CFFileDescriptor', 'AudioUnitConnection', '_GKTurnBasedExchangeStatus', 'LcarCaretTable', 'CVPlanarComponentInfo', 'JustWidthDeltaGroup', 'OpaqueAudioComponent', 'ParameterEvent', '__CVPixelBufferPool', '__CTFont', 'CGColorSpace', 'CGSize', 'AUDependentParameter', 'MIDIDriverInterface', 'gss_krb5_rfc1964_keydata', '__CFDateFormatter', 'LtagStringRange', 'OpaqueVTDecompressionSession', 'gss_iov_buffer_desc_struct', 'AUPresetEvent', 'PropTable', 'KernOrderedListEntry', 'CF_BRIDGED_MUTABLE_TYPE', 'gss_OID_desc_struct', 'AudioUnitPresetMAS_Settings', 'AudioFileMarker', 'JustPCConditionalAddAction', 'BslnFormat3Part', '__CFNotificationCenter', 'MortSwashSubtable', 'AUParameterMIDIMapping', 'SCNVector3', 'OpaqueAudioConverter', 'MIDIRawData', 'sfntNameHeader', '__CFRunLoop', 'MFMailComposeResult', 'CATransform3D', 'OpbdSideValues', 'CAF_SMPTE_Time', '__SecAccessControl', 'JustPCAction', 'OpaqueVTFrameSilo', 'OpaqueVTMultiPassStorage', 'CGPathElementType', 'AudioFormatListItem', 'AudioUnitExternalBuffer', 'AudioFileRegion', 'AudioValueTranslation', 'CGImageMetadataTag', 'CAFPeakChunk', 'AudioBytePacketTranslation', 'sfntCMapHeader', '__CFURLEnumerator', 'STXHeader', 'CGPDFObjectType', 'SFNTLookupArrayHeader'}
+COCOA_INTERFACES = {'AAAttribution', 'ABNewPersonViewController', 'ABPeoplePickerNavigationController', 'ABPersonViewController', 'ABUnknownPersonViewController', 'ACAccount', 'ACAccountCredential', 'ACAccountStore', 'ACAccountType', 'ADBannerView', 'ADClient', 'ADInterstitialAd', 'ADInterstitialAdPresentationViewController', 'AEAssessmentConfiguration', 'AEAssessmentSession', 'ALAsset', 'ALAssetRepresentation', 'ALAssetsFilter', 'ALAssetsGroup', 'ALAssetsLibrary', 'APActivationPayload', 'ARAnchor', 'ARAppClipCodeAnchor', 'ARBody2D', 'ARBodyAnchor', 'ARBodyTrackingConfiguration', 'ARCamera', 'ARCoachingOverlayView', 'ARCollaborationData', 'ARConfiguration', 'ARDepthData', 'ARDirectionalLightEstimate', 'AREnvironmentProbeAnchor', 'ARFaceAnchor', 'ARFaceGeometry', 'ARFaceTrackingConfiguration', 'ARFrame', 'ARGeoAnchor', 'ARGeoTrackingConfiguration', 'ARGeoTrackingStatus', 'ARGeometryElement', 'ARGeometrySource', 'ARHitTestResult', 'ARImageAnchor', 'ARImageTrackingConfiguration', 'ARLightEstimate', 'ARMatteGenerator', 'ARMeshAnchor', 'ARMeshGeometry', 'ARObjectAnchor', 'ARObjectScanningConfiguration', 'AROrientationTrackingConfiguration', 'ARParticipantAnchor', 'ARPlaneAnchor', 'ARPlaneGeometry', 'ARPointCloud', 'ARPositionalTrackingConfiguration', 'ARQuickLookPreviewItem', 'ARRaycastQuery', 'ARRaycastResult', 'ARReferenceImage', 'ARReferenceObject', 'ARSCNFaceGeometry', 'ARSCNPlaneGeometry', 'ARSCNView', 'ARSKView', 'ARSession', 'ARSkeleton', 'ARSkeleton2D', 'ARSkeleton3D', 'ARSkeletonDefinition', 'ARTrackedRaycast', 'ARVideoFormat', 'ARView', 'ARWorldMap', 'ARWorldTrackingConfiguration', 'ASAccountAuthenticationModificationController', 'ASAccountAuthenticationModificationExtensionContext', 'ASAccountAuthenticationModificationReplacePasswordWithSignInWithAppleRequest', 'ASAccountAuthenticationModificationRequest', 'ASAccountAuthenticationModificationUpgradePasswordToStrongPasswordRequest', 'ASAccountAuthenticationModificationViewController', 'ASAuthorization', 'ASAuthorizationAppleIDButton', 'ASAuthorizationAppleIDCredential', 'ASAuthorizationAppleIDProvider', 'ASAuthorizationAppleIDRequest', 'ASAuthorizationController', 'ASAuthorizationOpenIDRequest', 'ASAuthorizationPasswordProvider', 'ASAuthorizationPasswordRequest', 'ASAuthorizationProviderExtensionAuthorizationRequest', 'ASAuthorizationRequest', 'ASAuthorizationSingleSignOnCredential', 'ASAuthorizationSingleSignOnProvider', 'ASAuthorizationSingleSignOnRequest', 'ASCredentialIdentityStore', 'ASCredentialIdentityStoreState', 'ASCredentialProviderExtensionContext', 'ASCredentialProviderViewController', 'ASCredentialServiceIdentifier', 'ASIdentifierManager', 'ASPasswordCredential', 'ASPasswordCredentialIdentity', 'ASWebAuthenticationSession', 'ASWebAuthenticationSessionRequest', 'ASWebAuthenticationSessionWebBrowserSessionManager', 'ATTrackingManager', 'AUAudioUnit', 'AUAudioUnitBus', 'AUAudioUnitBusArray', 'AUAudioUnitPreset', 'AUAudioUnitV2Bridge', 'AUAudioUnitViewConfiguration', 'AUParameter', 'AUParameterGroup', 'AUParameterNode', 'AUParameterTree', 'AUViewController', 'AVAggregateAssetDownloadTask', 'AVAsset', 'AVAssetCache', 'AVAssetDownloadStorageManagementPolicy', 'AVAssetDownloadStorageManager', 'AVAssetDownloadTask', 'AVAssetDownloadURLSession', 'AVAssetExportSession', 'AVAssetImageGenerator', 'AVAssetReader', 'AVAssetReaderAudioMixOutput', 'AVAssetReaderOutput', 'AVAssetReaderOutputMetadataAdaptor', 'AVAssetReaderSampleReferenceOutput', 'AVAssetReaderTrackOutput', 'AVAssetReaderVideoCompositionOutput', 'AVAssetResourceLoader', 'AVAssetResourceLoadingContentInformationRequest', 'AVAssetResourceLoadingDataRequest', 'AVAssetResourceLoadingRequest', 'AVAssetResourceLoadingRequestor', 'AVAssetResourceRenewalRequest', 'AVAssetSegmentReport', 'AVAssetSegmentReportSampleInformation', 'AVAssetSegmentTrackReport', 'AVAssetTrack', 'AVAssetTrackGroup', 'AVAssetTrackSegment', 'AVAssetWriter', 'AVAssetWriterInput', 'AVAssetWriterInputGroup', 'AVAssetWriterInputMetadataAdaptor', 'AVAssetWriterInputPassDescription', 'AVAssetWriterInputPixelBufferAdaptor', 'AVAsynchronousCIImageFilteringRequest', 'AVAsynchronousVideoCompositionRequest', 'AVAudioMix', 'AVAudioMixInputParameters', 'AVAudioSession', 'AVCameraCalibrationData', 'AVCaptureAudioChannel', 'AVCaptureAudioDataOutput', 'AVCaptureAudioFileOutput', 'AVCaptureAudioPreviewOutput', 'AVCaptureAutoExposureBracketedStillImageSettings', 'AVCaptureBracketedStillImageSettings', 'AVCaptureConnection', 'AVCaptureDataOutputSynchronizer', 'AVCaptureDepthDataOutput', 'AVCaptureDevice', 'AVCaptureDeviceDiscoverySession', 'AVCaptureDeviceFormat', 'AVCaptureDeviceInput', 'AVCaptureDeviceInputSource', 'AVCaptureFileOutput', 'AVCaptureInput', 'AVCaptureInputPort', 'AVCaptureManualExposureBracketedStillImageSettings', 'AVCaptureMetadataInput', 'AVCaptureMetadataOutput', 'AVCaptureMovieFileOutput', 'AVCaptureMultiCamSession', 'AVCaptureOutput', 'AVCapturePhoto', 'AVCapturePhotoBracketSettings', 'AVCapturePhotoOutput', 'AVCapturePhotoSettings', 'AVCaptureResolvedPhotoSettings', 'AVCaptureScreenInput', 'AVCaptureSession', 'AVCaptureStillImageOutput', 'AVCaptureSynchronizedData', 'AVCaptureSynchronizedDataCollection', 'AVCaptureSynchronizedDepthData', 'AVCaptureSynchronizedMetadataObjectData', 'AVCaptureSynchronizedSampleBufferData', 'AVCaptureSystemPressureState', 'AVCaptureVideoDataOutput', 'AVCaptureVideoPreviewLayer', 'AVComposition', 'AVCompositionTrack', 'AVCompositionTrackFormatDescriptionReplacement', 'AVCompositionTrackSegment', 'AVContentKeyRequest', 'AVContentKeyResponse', 'AVContentKeySession', 'AVDateRangeMetadataGroup', 'AVDepthData', 'AVDisplayCriteria', 'AVFragmentedAsset', 'AVFragmentedAssetMinder', 'AVFragmentedAssetTrack', 'AVFragmentedMovie', 'AVFragmentedMovieMinder', 'AVFragmentedMovieTrack', 'AVFrameRateRange', 'AVMediaDataStorage', 'AVMediaSelection', 'AVMediaSelectionGroup', 'AVMediaSelectionOption', 'AVMetadataBodyObject', 'AVMetadataCatBodyObject', 'AVMetadataDogBodyObject', 'AVMetadataFaceObject', 'AVMetadataGroup', 'AVMetadataHumanBodyObject', 'AVMetadataItem', 'AVMetadataItemFilter', 'AVMetadataItemValueRequest', 'AVMetadataMachineReadableCodeObject', 'AVMetadataObject', 'AVMetadataSalientObject', 'AVMovie', 'AVMovieTrack', 'AVMutableAssetDownloadStorageManagementPolicy', 'AVMutableAudioMix', 'AVMutableAudioMixInputParameters', 'AVMutableComposition', 'AVMutableCompositionTrack', 'AVMutableDateRangeMetadataGroup', 'AVMutableMediaSelection', 'AVMutableMetadataItem', 'AVMutableMovie', 'AVMutableMovieTrack', 'AVMutableTimedMetadataGroup', 'AVMutableVideoComposition', 'AVMutableVideoCompositionInstruction', 'AVMutableVideoCompositionLayerInstruction', 'AVOutputSettingsAssistant', 'AVPersistableContentKeyRequest', 'AVPictureInPictureController', 'AVPlayer', 'AVPlayerItem', 'AVPlayerItemAccessLog', 'AVPlayerItemAccessLogEvent', 'AVPlayerItemErrorLog', 'AVPlayerItemErrorLogEvent', 'AVPlayerItemLegibleOutput', 'AVPlayerItemMediaDataCollector', 'AVPlayerItemMetadataCollector', 'AVPlayerItemMetadataOutput', 'AVPlayerItemOutput', 'AVPlayerItemTrack', 'AVPlayerItemVideoOutput', 'AVPlayerLayer', 'AVPlayerLooper', 'AVPlayerMediaSelectionCriteria', 'AVPlayerViewController', 'AVPortraitEffectsMatte', 'AVQueuePlayer', 'AVRouteDetector', 'AVRoutePickerView', 'AVSampleBufferAudioRenderer', 'AVSampleBufferDisplayLayer', 'AVSampleBufferRenderSynchronizer', 'AVSemanticSegmentationMatte', 'AVSynchronizedLayer', 'AVTextStyleRule', 'AVTimedMetadataGroup', 'AVURLAsset', 'AVVideoComposition', 'AVVideoCompositionCoreAnimationTool', 'AVVideoCompositionInstruction', 'AVVideoCompositionLayerInstruction', 'AVVideoCompositionRenderContext', 'AVVideoCompositionRenderHint', 'AXCustomContent', 'BCChatAction', 'BCChatButton', 'BGAppRefreshTask', 'BGAppRefreshTaskRequest', 'BGProcessingTask', 'BGProcessingTaskRequest', 'BGTask', 'BGTaskRequest', 'BGTaskScheduler', 'CAAnimation', 'CAAnimationGroup', 'CABTMIDICentralViewController', 'CABTMIDILocalPeripheralViewController', 'CABasicAnimation', 'CADisplayLink', 'CAEAGLLayer', 'CAEmitterCell', 'CAEmitterLayer', 'CAGradientLayer', 'CAInterAppAudioSwitcherView', 'CAInterAppAudioTransportView', 'CAKeyframeAnimation', 'CALayer', 'CAMediaTimingFunction', 'CAMetalLayer', 'CAPropertyAnimation', 'CAReplicatorLayer', 'CAScrollLayer', 'CAShapeLayer', 'CASpringAnimation', 'CATextLayer', 'CATiledLayer', 'CATransaction', 'CATransformLayer', 'CATransition', 'CAValueFunction', 'CBATTRequest', 'CBAttribute', 'CBCentral', 'CBCentralManager', 'CBCharacteristic', 'CBDescriptor', 'CBL2CAPChannel', 'CBManager', 'CBMutableCharacteristic', 'CBMutableDescriptor', 'CBMutableService', 'CBPeer', 'CBPeripheral', 'CBPeripheralManager', 'CBService', 'CBUUID', 'CHHapticDynamicParameter', 'CHHapticEngine', 'CHHapticEvent', 'CHHapticEventParameter', 'CHHapticParameterCurve', 'CHHapticParameterCurveControlPoint', 'CHHapticPattern', 'CIAztecCodeDescriptor', 'CIBarcodeDescriptor', 'CIBlendKernel', 'CIColor', 'CIColorKernel', 'CIContext', 'CIDataMatrixCodeDescriptor', 'CIDetector', 'CIFaceFeature', 'CIFeature', 'CIFilter', 'CIFilterGenerator', 'CIFilterShape', 'CIImage', 'CIImageAccumulator', 'CIImageProcessorKernel', 'CIKernel', 'CIPDF417CodeDescriptor', 'CIPlugIn', 'CIQRCodeDescriptor', 'CIQRCodeFeature', 'CIRectangleFeature', 'CIRenderDestination', 'CIRenderInfo', 'CIRenderTask', 'CISampler', 'CITextFeature', 'CIVector', 'CIWarpKernel', 'CKAcceptSharesOperation', 'CKAsset', 'CKContainer', 'CKDatabase', 'CKDatabaseNotification', 'CKDatabaseOperation', 'CKDatabaseSubscription', 'CKDiscoverAllUserIdentitiesOperation', 'CKDiscoverUserIdentitiesOperation', 'CKFetchDatabaseChangesOperation', 'CKFetchNotificationChangesOperation', 'CKFetchRecordChangesOperation', 'CKFetchRecordZoneChangesConfiguration', 'CKFetchRecordZoneChangesOperation', 'CKFetchRecordZoneChangesOptions', 'CKFetchRecordZonesOperation', 'CKFetchRecordsOperation', 'CKFetchShareMetadataOperation', 'CKFetchShareParticipantsOperation', 'CKFetchSubscriptionsOperation', 'CKFetchWebAuthTokenOperation', 'CKLocationSortDescriptor', 'CKMarkNotificationsReadOperation', 'CKModifyBadgeOperation', 'CKModifyRecordZonesOperation', 'CKModifyRecordsOperation', 'CKModifySubscriptionsOperation', 'CKNotification', 'CKNotificationID', 'CKNotificationInfo', 'CKOperation', 'CKOperationConfiguration', 'CKOperationGroup', 'CKQuery', 'CKQueryCursor', 'CKQueryNotification', 'CKQueryOperation', 'CKQuerySubscription', 'CKRecord', 'CKRecordID', 'CKRecordZone', 'CKRecordZoneID', 'CKRecordZoneNotification', 'CKRecordZoneSubscription', 'CKReference', 'CKServerChangeToken', 'CKShare', 'CKShareMetadata', 'CKShareParticipant', 'CKSubscription', 'CKUserIdentity', 'CKUserIdentityLookupInfo', 'CLBeacon', 'CLBeaconIdentityConstraint', 'CLBeaconRegion', 'CLCircularRegion', 'CLFloor', 'CLGeocoder', 'CLHeading', 'CLKComplication', 'CLKComplicationDescriptor', 'CLKComplicationServer', 'CLKComplicationTemplate', 'CLKComplicationTemplateCircularSmallRingImage', 'CLKComplicationTemplateCircularSmallRingText', 'CLKComplicationTemplateCircularSmallSimpleImage', 'CLKComplicationTemplateCircularSmallSimpleText', 'CLKComplicationTemplateCircularSmallStackImage', 'CLKComplicationTemplateCircularSmallStackText', 'CLKComplicationTemplateExtraLargeColumnsText', 'CLKComplicationTemplateExtraLargeRingImage', 'CLKComplicationTemplateExtraLargeRingText', 'CLKComplicationTemplateExtraLargeSimpleImage', 'CLKComplicationTemplateExtraLargeSimpleText', 'CLKComplicationTemplateExtraLargeStackImage', 'CLKComplicationTemplateExtraLargeStackText', 'CLKComplicationTemplateGraphicBezelCircularText', 'CLKComplicationTemplateGraphicCircular', 'CLKComplicationTemplateGraphicCircularClosedGaugeImage', 'CLKComplicationTemplateGraphicCircularClosedGaugeText', 'CLKComplicationTemplateGraphicCircularImage', 'CLKComplicationTemplateGraphicCircularOpenGaugeImage', 'CLKComplicationTemplateGraphicCircularOpenGaugeRangeText', 'CLKComplicationTemplateGraphicCircularOpenGaugeSimpleText', 'CLKComplicationTemplateGraphicCircularStackImage', 'CLKComplicationTemplateGraphicCircularStackText', 'CLKComplicationTemplateGraphicCornerCircularImage', 'CLKComplicationTemplateGraphicCornerGaugeImage', 'CLKComplicationTemplateGraphicCornerGaugeText', 'CLKComplicationTemplateGraphicCornerStackText', 'CLKComplicationTemplateGraphicCornerTextImage', 'CLKComplicationTemplateGraphicExtraLargeCircular', 'CLKComplicationTemplateGraphicExtraLargeCircularClosedGaugeImage', 'CLKComplicationTemplateGraphicExtraLargeCircularClosedGaugeText', 'CLKComplicationTemplateGraphicExtraLargeCircularImage', 'CLKComplicationTemplateGraphicExtraLargeCircularOpenGaugeImage', 'CLKComplicationTemplateGraphicExtraLargeCircularOpenGaugeRangeText', 'CLKComplicationTemplateGraphicExtraLargeCircularOpenGaugeSimpleText', 'CLKComplicationTemplateGraphicExtraLargeCircularStackImage', 'CLKComplicationTemplateGraphicExtraLargeCircularStackText', 'CLKComplicationTemplateGraphicRectangularFullImage', 'CLKComplicationTemplateGraphicRectangularLargeImage', 'CLKComplicationTemplateGraphicRectangularStandardBody', 'CLKComplicationTemplateGraphicRectangularTextGauge', 'CLKComplicationTemplateModularLargeColumns', 'CLKComplicationTemplateModularLargeStandardBody', 'CLKComplicationTemplateModularLargeTable', 'CLKComplicationTemplateModularLargeTallBody', 'CLKComplicationTemplateModularSmallColumnsText', 'CLKComplicationTemplateModularSmallRingImage', 'CLKComplicationTemplateModularSmallRingText', 'CLKComplicationTemplateModularSmallSimpleImage', 'CLKComplicationTemplateModularSmallSimpleText', 'CLKComplicationTemplateModularSmallStackImage', 'CLKComplicationTemplateModularSmallStackText', 'CLKComplicationTemplateUtilitarianLargeFlat', 'CLKComplicationTemplateUtilitarianSmallFlat', 'CLKComplicationTemplateUtilitarianSmallRingImage', 'CLKComplicationTemplateUtilitarianSmallRingText', 'CLKComplicationTemplateUtilitarianSmallSquare', 'CLKComplicationTimelineEntry', 'CLKDateTextProvider', 'CLKFullColorImageProvider', 'CLKGaugeProvider', 'CLKImageProvider', 'CLKRelativeDateTextProvider', 'CLKSimpleGaugeProvider', 'CLKSimpleTextProvider', 'CLKTextProvider', 'CLKTimeIntervalGaugeProvider', 'CLKTimeIntervalTextProvider', 'CLKTimeTextProvider', 'CLKWatchFaceLibrary', 'CLLocation', 'CLLocationManager', 'CLPlacemark', 'CLRegion', 'CLSActivity', 'CLSActivityItem', 'CLSBinaryItem', 'CLSContext', 'CLSDataStore', 'CLSObject', 'CLSProgressReportingCapability', 'CLSQuantityItem', 'CLSScoreItem', 'CLVisit', 'CMAccelerometerData', 'CMAltimeter', 'CMAltitudeData', 'CMAttitude', 'CMDeviceMotion', 'CMDyskineticSymptomResult', 'CMFallDetectionEvent', 'CMFallDetectionManager', 'CMGyroData', 'CMHeadphoneMotionManager', 'CMLogItem', 'CMMagnetometerData', 'CMMotionActivity', 'CMMotionActivityManager', 'CMMotionManager', 'CMMovementDisorderManager', 'CMPedometer', 'CMPedometerData', 'CMPedometerEvent', 'CMRecordedAccelerometerData', 'CMRecordedRotationRateData', 'CMRotationRateData', 'CMSensorDataList', 'CMSensorRecorder', 'CMStepCounter', 'CMTremorResult', 'CNChangeHistoryAddContactEvent', 'CNChangeHistoryAddGroupEvent', 'CNChangeHistoryAddMemberToGroupEvent', 'CNChangeHistoryAddSubgroupToGroupEvent', 'CNChangeHistoryDeleteContactEvent', 'CNChangeHistoryDeleteGroupEvent', 'CNChangeHistoryDropEverythingEvent', 'CNChangeHistoryEvent', 'CNChangeHistoryFetchRequest', 'CNChangeHistoryRemoveMemberFromGroupEvent', 'CNChangeHistoryRemoveSubgroupFromGroupEvent', 'CNChangeHistoryUpdateContactEvent', 'CNChangeHistoryUpdateGroupEvent', 'CNContact', 'CNContactFetchRequest', 'CNContactFormatter', 'CNContactPickerViewController', 'CNContactProperty', 'CNContactRelation', 'CNContactStore', 'CNContactVCardSerialization', 'CNContactViewController', 'CNContactsUserDefaults', 'CNContainer', 'CNFetchRequest', 'CNFetchResult', 'CNGroup', 'CNInstantMessageAddress', 'CNLabeledValue', 'CNMutableContact', 'CNMutableGroup', 'CNMutablePostalAddress', 'CNPhoneNumber', 'CNPostalAddress', 'CNPostalAddressFormatter', 'CNSaveRequest', 'CNSocialProfile', 'CPActionSheetTemplate', 'CPAlertAction', 'CPAlertTemplate', 'CPBarButton', 'CPButton', 'CPContact', 'CPContactCallButton', 'CPContactDirectionsButton', 'CPContactMessageButton', 'CPContactTemplate', 'CPDashboardButton', 'CPDashboardController', 'CPGridButton', 'CPGridTemplate', 'CPImageSet', 'CPInformationItem', 'CPInformationRatingItem', 'CPInformationTemplate', 'CPInterfaceController', 'CPListImageRowItem', 'CPListItem', 'CPListSection', 'CPListTemplate', 'CPManeuver', 'CPMapButton', 'CPMapTemplate', 'CPMessageComposeBarButton', 'CPMessageListItem', 'CPMessageListItemLeadingConfiguration', 'CPMessageListItemTrailingConfiguration', 'CPNavigationAlert', 'CPNavigationSession', 'CPNowPlayingAddToLibraryButton', 'CPNowPlayingButton', 'CPNowPlayingImageButton', 'CPNowPlayingMoreButton', 'CPNowPlayingPlaybackRateButton', 'CPNowPlayingRepeatButton', 'CPNowPlayingShuffleButton', 'CPNowPlayingTemplate', 'CPPointOfInterest', 'CPPointOfInterestTemplate', 'CPRouteChoice', 'CPSearchTemplate', 'CPSessionConfiguration', 'CPTabBarTemplate', 'CPTemplate', 'CPTemplateApplicationDashboardScene', 'CPTemplateApplicationScene', 'CPTextButton', 'CPTravelEstimates', 'CPTrip', 'CPTripPreviewTextConfiguration', 'CPVoiceControlState', 'CPVoiceControlTemplate', 'CPWindow', 'CSCustomAttributeKey', 'CSIndexExtensionRequestHandler', 'CSLocalizedString', 'CSPerson', 'CSSearchQuery', 'CSSearchableIndex', 'CSSearchableItem', 'CSSearchableItemAttributeSet', 'CTCall', 'CTCallCenter', 'CTCarrier', 'CTCellularData', 'CTCellularPlanProvisioning', 'CTCellularPlanProvisioningRequest', 'CTSubscriber', 'CTSubscriberInfo', 'CTTelephonyNetworkInfo', 'CXAction', 'CXAnswerCallAction', 'CXCall', 'CXCallAction', 'CXCallController', 'CXCallDirectoryExtensionContext', 'CXCallDirectoryManager', 'CXCallDirectoryProvider', 'CXCallObserver', 'CXCallUpdate', 'CXEndCallAction', 'CXHandle', 'CXPlayDTMFCallAction', 'CXProvider', 'CXProviderConfiguration', 'CXSetGroupCallAction', 'CXSetHeldCallAction', 'CXSetMutedCallAction', 'CXStartCallAction', 'CXTransaction', 'DCAppAttestService', 'DCDevice', 'EAAccessory', 'EAAccessoryManager', 'EAGLContext', 'EAGLSharegroup', 'EASession', 'EAWiFiUnconfiguredAccessory', 'EAWiFiUnconfiguredAccessoryBrowser', 'EKAlarm', 'EKCalendar', 'EKCalendarChooser', 'EKCalendarItem', 'EKEvent', 'EKEventEditViewController', 'EKEventStore', 'EKEventViewController', 'EKObject', 'EKParticipant', 'EKRecurrenceDayOfWeek', 'EKRecurrenceEnd', 'EKRecurrenceRule', 'EKReminder', 'EKSource', 'EKStructuredLocation', 'ENExposureConfiguration', 'ENExposureDaySummary', 'ENExposureDetectionSummary', 'ENExposureInfo', 'ENExposureSummaryItem', 'ENExposureWindow', 'ENManager', 'ENScanInstance', 'ENTemporaryExposureKey', 'EntityRotationGestureRecognizer', 'EntityScaleGestureRecognizer', 'EntityTranslationGestureRecognizer', 'FPUIActionExtensionContext', 'FPUIActionExtensionViewController', 'GCColor', 'GCController', 'GCControllerAxisInput', 'GCControllerButtonInput', 'GCControllerDirectionPad', 'GCControllerElement', 'GCControllerTouchpad', 'GCDeviceBattery', 'GCDeviceCursor', 'GCDeviceHaptics', 'GCDeviceLight', 'GCDirectionalGamepad', 'GCDualShockGamepad', 'GCEventViewController', 'GCExtendedGamepad', 'GCExtendedGamepadSnapshot', 'GCGamepad', 'GCGamepadSnapshot', 'GCKeyboard', 'GCKeyboardInput', 'GCMicroGamepad', 'GCMicroGamepadSnapshot', 'GCMotion', 'GCMouse', 'GCMouseInput', 'GCPhysicalInputProfile', 'GCXboxGamepad', 'GKARC4RandomSource', 'GKAccessPoint', 'GKAchievement', 'GKAchievementChallenge', 'GKAchievementDescription', 'GKAchievementViewController', 'GKAgent', 'GKAgent2D', 'GKAgent3D', 'GKBasePlayer', 'GKBehavior', 'GKBillowNoiseSource', 'GKChallenge', 'GKChallengeEventHandler', 'GKCheckerboardNoiseSource', 'GKCircleObstacle', 'GKCloudPlayer', 'GKCoherentNoiseSource', 'GKComponent', 'GKComponentSystem', 'GKCompositeBehavior', 'GKConstantNoiseSource', 'GKCylindersNoiseSource', 'GKDecisionNode', 'GKDecisionTree', 'GKEntity', 'GKFriendRequestComposeViewController', 'GKGameCenterViewController', 'GKGameSession', 'GKGameSessionSharingViewController', 'GKGaussianDistribution', 'GKGoal', 'GKGraph', 'GKGraphNode', 'GKGraphNode2D', 'GKGraphNode3D', 'GKGridGraph', 'GKGridGraphNode', 'GKInvite', 'GKLeaderboard', 'GKLeaderboardEntry', 'GKLeaderboardScore', 'GKLeaderboardSet', 'GKLeaderboardViewController', 'GKLinearCongruentialRandomSource', 'GKLocalPlayer', 'GKMatch', 'GKMatchRequest', 'GKMatchmaker', 'GKMatchmakerViewController', 'GKMersenneTwisterRandomSource', 'GKMeshGraph', 'GKMinmaxStrategist', 'GKMonteCarloStrategist', 'GKNSPredicateRule', 'GKNoise', 'GKNoiseMap', 'GKNoiseSource', 'GKNotificationBanner', 'GKObstacle', 'GKObstacleGraph', 'GKOctree', 'GKOctreeNode', 'GKPath', 'GKPeerPickerController', 'GKPerlinNoiseSource', 'GKPlayer', 'GKPolygonObstacle', 'GKQuadtree', 'GKQuadtreeNode', 'GKRTree', 'GKRandomDistribution', 'GKRandomSource', 'GKRidgedNoiseSource', 'GKRule', 'GKRuleSystem', 'GKSCNNodeComponent', 'GKSKNodeComponent', 'GKSavedGame', 'GKScene', 'GKScore', 'GKScoreChallenge', 'GKSession', 'GKShuffledDistribution', 'GKSphereObstacle', 'GKSpheresNoiseSource', 'GKState', 'GKStateMachine', 'GKTurnBasedEventHandler', 'GKTurnBasedExchangeReply', 'GKTurnBasedMatch', 'GKTurnBasedMatchmakerViewController', 'GKTurnBasedParticipant', 'GKVoiceChat', 'GKVoiceChatService', 'GKVoronoiNoiseSource', 'GLKBaseEffect', 'GLKEffectProperty', 'GLKEffectPropertyFog', 'GLKEffectPropertyLight', 'GLKEffectPropertyMaterial', 'GLKEffectPropertyTexture', 'GLKEffectPropertyTransform', 'GLKMesh', 'GLKMeshBuffer', 'GLKMeshBufferAllocator', 'GLKReflectionMapEffect', 'GLKSkyboxEffect', 'GLKSubmesh', 'GLKTextureInfo', 'GLKTextureLoader', 'GLKView', 'GLKViewController', 'HKActivityMoveModeObject', 'HKActivityRingView', 'HKActivitySummary', 'HKActivitySummaryQuery', 'HKActivitySummaryType', 'HKAnchoredObjectQuery', 'HKAudiogramSample', 'HKAudiogramSampleType', 'HKAudiogramSensitivityPoint', 'HKBiologicalSexObject', 'HKBloodTypeObject', 'HKCDADocument', 'HKCDADocumentSample', 'HKCategorySample', 'HKCategoryType', 'HKCharacteristicType', 'HKClinicalRecord', 'HKClinicalType', 'HKCorrelation', 'HKCorrelationQuery', 'HKCorrelationType', 'HKCumulativeQuantitySample', 'HKCumulativeQuantitySeriesSample', 'HKDeletedObject', 'HKDevice', 'HKDiscreteQuantitySample', 'HKDocumentQuery', 'HKDocumentSample', 'HKDocumentType', 'HKElectrocardiogram', 'HKElectrocardiogramQuery', 'HKElectrocardiogramType', 'HKElectrocardiogramVoltageMeasurement', 'HKFHIRResource', 'HKFHIRVersion', 'HKFitzpatrickSkinTypeObject', 'HKHealthStore', 'HKHeartbeatSeriesBuilder', 'HKHeartbeatSeriesQuery', 'HKHeartbeatSeriesSample', 'HKLiveWorkoutBuilder', 'HKLiveWorkoutDataSource', 'HKObject', 'HKObjectType', 'HKObserverQuery', 'HKQuantity', 'HKQuantitySample', 'HKQuantitySeriesSampleBuilder', 'HKQuantitySeriesSampleQuery', 'HKQuantityType', 'HKQuery', 'HKQueryAnchor', 'HKSample', 'HKSampleQuery', 'HKSampleType', 'HKSeriesBuilder', 'HKSeriesSample', 'HKSeriesType', 'HKSource', 'HKSourceQuery', 'HKSourceRevision', 'HKStatistics', 'HKStatisticsCollection', 'HKStatisticsCollectionQuery', 'HKStatisticsQuery', 'HKUnit', 'HKWheelchairUseObject', 'HKWorkout', 'HKWorkoutBuilder', 'HKWorkoutConfiguration', 'HKWorkoutEvent', 'HKWorkoutRoute', 'HKWorkoutRouteBuilder', 'HKWorkoutRouteQuery', 'HKWorkoutSession', 'HKWorkoutType', 'HMAccessControl', 'HMAccessory', 'HMAccessoryBrowser', 'HMAccessoryCategory', 'HMAccessoryOwnershipToken', 'HMAccessoryProfile', 'HMAccessorySetupPayload', 'HMAction', 'HMActionSet', 'HMAddAccessoryRequest', 'HMCalendarEvent', 'HMCameraAudioControl', 'HMCameraControl', 'HMCameraProfile', 'HMCameraSettingsControl', 'HMCameraSnapshot', 'HMCameraSnapshotControl', 'HMCameraSource', 'HMCameraStream', 'HMCameraStreamControl', 'HMCameraView', 'HMCharacteristic', 'HMCharacteristicEvent', 'HMCharacteristicMetadata', 'HMCharacteristicThresholdRangeEvent', 'HMCharacteristicWriteAction', 'HMDurationEvent', 'HMEvent', 'HMEventTrigger', 'HMHome', 'HMHomeAccessControl', 'HMHomeManager', 'HMLocationEvent', 'HMMutableCalendarEvent', 'HMMutableCharacteristicEvent', 'HMMutableCharacteristicThresholdRangeEvent', 'HMMutableDurationEvent', 'HMMutableLocationEvent', 'HMMutablePresenceEvent', 'HMMutableSignificantTimeEvent', 'HMNetworkConfigurationProfile', 'HMNumberRange', 'HMPresenceEvent', 'HMRoom', 'HMService', 'HMServiceGroup', 'HMSignificantTimeEvent', 'HMTimeEvent', 'HMTimerTrigger', 'HMTrigger', 'HMUser', 'HMZone', 'ICCameraDevice', 'ICCameraFile', 'ICCameraFolder', 'ICCameraItem', 'ICDevice', 'ICDeviceBrowser', 'ICScannerBandData', 'ICScannerDevice', 'ICScannerFeature', 'ICScannerFeatureBoolean', 'ICScannerFeatureEnumeration', 'ICScannerFeatureRange', 'ICScannerFeatureTemplate', 'ICScannerFunctionalUnit', 'ICScannerFunctionalUnitDocumentFeeder', 'ICScannerFunctionalUnitFlatbed', 'ICScannerFunctionalUnitNegativeTransparency', 'ICScannerFunctionalUnitPositiveTransparency', 'ILCallClassificationRequest', 'ILCallCommunication', 'ILClassificationRequest', 'ILClassificationResponse', 'ILClassificationUIExtensionContext', 'ILClassificationUIExtensionViewController', 'ILCommunication', 'ILMessageClassificationRequest', 'ILMessageCommunication', 'ILMessageFilterExtension', 'ILMessageFilterExtensionContext', 'ILMessageFilterQueryRequest', 'ILMessageFilterQueryResponse', 'ILNetworkResponse', 'INAccountTypeResolutionResult', 'INActivateCarSignalIntent', 'INActivateCarSignalIntentResponse', 'INAddMediaIntent', 'INAddMediaIntentResponse', 'INAddMediaMediaDestinationResolutionResult', 'INAddMediaMediaItemResolutionResult', 'INAddTasksIntent', 'INAddTasksIntentResponse', 'INAddTasksTargetTaskListResolutionResult', 'INAddTasksTemporalEventTriggerResolutionResult', 'INAirline', 'INAirport', 'INAirportGate', 'INAppendToNoteIntent', 'INAppendToNoteIntentResponse', 'INBalanceAmount', 'INBalanceTypeResolutionResult', 'INBillDetails', 'INBillPayee', 'INBillPayeeResolutionResult', 'INBillTypeResolutionResult', 'INBoatReservation', 'INBoatTrip', 'INBookRestaurantReservationIntent', 'INBookRestaurantReservationIntentResponse', 'INBooleanResolutionResult', 'INBusReservation', 'INBusTrip', 'INCallCapabilityResolutionResult', 'INCallDestinationTypeResolutionResult', 'INCallRecord', 'INCallRecordFilter', 'INCallRecordResolutionResult', 'INCallRecordTypeOptionsResolutionResult', 'INCallRecordTypeResolutionResult', 'INCancelRideIntent', 'INCancelRideIntentResponse', 'INCancelWorkoutIntent', 'INCancelWorkoutIntentResponse', 'INCar', 'INCarAirCirculationModeResolutionResult', 'INCarAudioSourceResolutionResult', 'INCarDefrosterResolutionResult', 'INCarHeadUnit', 'INCarSeatResolutionResult', 'INCarSignalOptionsResolutionResult', 'INCreateNoteIntent', 'INCreateNoteIntentResponse', 'INCreateTaskListIntent', 'INCreateTaskListIntentResponse', 'INCurrencyAmount', 'INCurrencyAmountResolutionResult', 'INDailyRoutineRelevanceProvider', 'INDateComponentsRange', 'INDateComponentsRangeResolutionResult', 'INDateComponentsResolutionResult', 'INDateRelevanceProvider', 'INDateSearchTypeResolutionResult', 'INDefaultCardTemplate', 'INDeleteTasksIntent', 'INDeleteTasksIntentResponse', 'INDeleteTasksTaskListResolutionResult', 'INDeleteTasksTaskResolutionResult', 'INDoubleResolutionResult', 'INEndWorkoutIntent', 'INEndWorkoutIntentResponse', 'INEnergyResolutionResult', 'INEnumResolutionResult', 'INExtension', 'INFile', 'INFileResolutionResult', 'INFlight', 'INFlightReservation', 'INGetAvailableRestaurantReservationBookingDefaultsIntent', 'INGetAvailableRestaurantReservationBookingDefaultsIntentResponse', 'INGetAvailableRestaurantReservationBookingsIntent', 'INGetAvailableRestaurantReservationBookingsIntentResponse', 'INGetCarLockStatusIntent', 'INGetCarLockStatusIntentResponse', 'INGetCarPowerLevelStatusIntent', 'INGetCarPowerLevelStatusIntentResponse', 'INGetReservationDetailsIntent', 'INGetReservationDetailsIntentResponse', 'INGetRestaurantGuestIntent', 'INGetRestaurantGuestIntentResponse', 'INGetRideStatusIntent', 'INGetRideStatusIntentResponse', 'INGetUserCurrentRestaurantReservationBookingsIntent', 'INGetUserCurrentRestaurantReservationBookingsIntentResponse', 'INGetVisualCodeIntent', 'INGetVisualCodeIntentResponse', 'INImage', 'INImageNoteContent', 'INIntegerResolutionResult', 'INIntent', 'INIntentResolutionResult', 'INIntentResponse', 'INInteraction', 'INLengthResolutionResult', 'INListCarsIntent', 'INListCarsIntentResponse', 'INListRideOptionsIntent', 'INListRideOptionsIntentResponse', 'INLocationRelevanceProvider', 'INLocationSearchTypeResolutionResult', 'INLodgingReservation', 'INMassResolutionResult', 'INMediaAffinityTypeResolutionResult', 'INMediaDestination', 'INMediaDestinationResolutionResult', 'INMediaItem', 'INMediaItemResolutionResult', 'INMediaSearch', 'INMediaUserContext', 'INMessage', 'INMessageAttributeOptionsResolutionResult', 'INMessageAttributeResolutionResult', 'INNote', 'INNoteContent', 'INNoteContentResolutionResult', 'INNoteContentTypeResolutionResult', 'INNoteResolutionResult', 'INNotebookItemTypeResolutionResult', 'INObject', 'INObjectCollection', 'INObjectResolutionResult', 'INObjectSection', 'INOutgoingMessageTypeResolutionResult', 'INParameter', 'INPauseWorkoutIntent', 'INPauseWorkoutIntentResponse', 'INPayBillIntent', 'INPayBillIntentResponse', 'INPaymentAccount', 'INPaymentAccountResolutionResult', 'INPaymentAmount', 'INPaymentAmountResolutionResult', 'INPaymentMethod', 'INPaymentMethodResolutionResult', 'INPaymentRecord', 'INPaymentStatusResolutionResult', 'INPerson', 'INPersonHandle', 'INPersonResolutionResult', 'INPlacemarkResolutionResult', 'INPlayMediaIntent', 'INPlayMediaIntentResponse', 'INPlayMediaMediaItemResolutionResult', 'INPlayMediaPlaybackSpeedResolutionResult', 'INPlaybackQueueLocationResolutionResult', 'INPlaybackRepeatModeResolutionResult', 'INPreferences', 'INPriceRange', 'INRadioTypeResolutionResult', 'INRecurrenceRule', 'INRelativeReferenceResolutionResult', 'INRelativeSettingResolutionResult', 'INRelevanceProvider', 'INRelevantShortcut', 'INRelevantShortcutStore', 'INRentalCar', 'INRentalCarReservation', 'INRequestPaymentCurrencyAmountResolutionResult', 'INRequestPaymentIntent', 'INRequestPaymentIntentResponse', 'INRequestPaymentPayerResolutionResult', 'INRequestRideIntent', 'INRequestRideIntentResponse', 'INReservation', 'INReservationAction', 'INRestaurant', 'INRestaurantGuest', 'INRestaurantGuestDisplayPreferences', 'INRestaurantGuestResolutionResult', 'INRestaurantOffer', 'INRestaurantReservation', 'INRestaurantReservationBooking', 'INRestaurantReservationUserBooking', 'INRestaurantResolutionResult', 'INResumeWorkoutIntent', 'INResumeWorkoutIntentResponse', 'INRideCompletionStatus', 'INRideDriver', 'INRideFareLineItem', 'INRideOption', 'INRidePartySizeOption', 'INRideStatus', 'INRideVehicle', 'INSaveProfileInCarIntent', 'INSaveProfileInCarIntentResponse', 'INSearchCallHistoryIntent', 'INSearchCallHistoryIntentResponse', 'INSearchForAccountsIntent', 'INSearchForAccountsIntentResponse', 'INSearchForBillsIntent', 'INSearchForBillsIntentResponse', 'INSearchForMediaIntent', 'INSearchForMediaIntentResponse', 'INSearchForMediaMediaItemResolutionResult', 'INSearchForMessagesIntent', 'INSearchForMessagesIntentResponse', 'INSearchForNotebookItemsIntent', 'INSearchForNotebookItemsIntentResponse', 'INSearchForPhotosIntent', 'INSearchForPhotosIntentResponse', 'INSeat', 'INSendMessageAttachment', 'INSendMessageIntent', 'INSendMessageIntentResponse', 'INSendMessageRecipientResolutionResult', 'INSendPaymentCurrencyAmountResolutionResult', 'INSendPaymentIntent', 'INSendPaymentIntentResponse', 'INSendPaymentPayeeResolutionResult', 'INSendRideFeedbackIntent', 'INSendRideFeedbackIntentResponse', 'INSetAudioSourceInCarIntent', 'INSetAudioSourceInCarIntentResponse', 'INSetCarLockStatusIntent', 'INSetCarLockStatusIntentResponse', 'INSetClimateSettingsInCarIntent', 'INSetClimateSettingsInCarIntentResponse', 'INSetDefrosterSettingsInCarIntent', 'INSetDefrosterSettingsInCarIntentResponse', 'INSetMessageAttributeIntent', 'INSetMessageAttributeIntentResponse', 'INSetProfileInCarIntent', 'INSetProfileInCarIntentResponse', 'INSetRadioStationIntent', 'INSetRadioStationIntentResponse', 'INSetSeatSettingsInCarIntent', 'INSetSeatSettingsInCarIntentResponse', 'INSetTaskAttributeIntent', 'INSetTaskAttributeIntentResponse', 'INSetTaskAttributeTemporalEventTriggerResolutionResult', 'INShortcut', 'INSnoozeTasksIntent', 'INSnoozeTasksIntentResponse', 'INSnoozeTasksTaskResolutionResult', 'INSpatialEventTrigger', 'INSpatialEventTriggerResolutionResult', 'INSpeakableString', 'INSpeakableStringResolutionResult', 'INSpeedResolutionResult', 'INStartAudioCallIntent', 'INStartAudioCallIntentResponse', 'INStartCallCallCapabilityResolutionResult', 'INStartCallCallRecordToCallBackResolutionResult', 'INStartCallContactResolutionResult', 'INStartCallIntent', 'INStartCallIntentResponse', 'INStartPhotoPlaybackIntent', 'INStartPhotoPlaybackIntentResponse', 'INStartVideoCallIntent', 'INStartVideoCallIntentResponse', 'INStartWorkoutIntent', 'INStartWorkoutIntentResponse', 'INStringResolutionResult', 'INTask', 'INTaskList', 'INTaskListResolutionResult', 'INTaskPriorityResolutionResult', 'INTaskResolutionResult', 'INTaskStatusResolutionResult', 'INTemperatureResolutionResult', 'INTemporalEventTrigger', 'INTemporalEventTriggerResolutionResult', 'INTemporalEventTriggerTypeOptionsResolutionResult', 'INTermsAndConditions', 'INTextNoteContent', 'INTicketedEvent', 'INTicketedEventReservation', 'INTimeIntervalResolutionResult', 'INTrainReservation', 'INTrainTrip', 'INTransferMoneyIntent', 'INTransferMoneyIntentResponse', 'INUIAddVoiceShortcutButton', 'INUIAddVoiceShortcutViewController', 'INUIEditVoiceShortcutViewController', 'INURLResolutionResult', 'INUpcomingMediaManager', 'INUpdateMediaAffinityIntent', 'INUpdateMediaAffinityIntentResponse', 'INUpdateMediaAffinityMediaItemResolutionResult', 'INUserContext', 'INVisualCodeTypeResolutionResult', 'INVocabulary', 'INVoiceShortcut', 'INVoiceShortcutCenter', 'INVolumeResolutionResult', 'INWorkoutGoalUnitTypeResolutionResult', 'INWorkoutLocationTypeResolutionResult', 'IOSurface', 'JSContext', 'JSManagedValue', 'JSValue', 'JSVirtualMachine', 'LAContext', 'LPLinkMetadata', 'LPLinkView', 'LPMetadataProvider', 'MCAdvertiserAssistant', 'MCBrowserViewController', 'MCNearbyServiceAdvertiser', 'MCNearbyServiceBrowser', 'MCPeerID', 'MCSession', 'MDLAnimatedMatrix4x4', 'MDLAnimatedQuaternion', 'MDLAnimatedQuaternionArray', 'MDLAnimatedScalar', 'MDLAnimatedScalarArray', 'MDLAnimatedValue', 'MDLAnimatedVector2', 'MDLAnimatedVector3', 'MDLAnimatedVector3Array', 'MDLAnimatedVector4', 'MDLAnimationBindComponent', 'MDLAreaLight', 'MDLAsset', 'MDLBundleAssetResolver', 'MDLCamera', 'MDLCheckerboardTexture', 'MDLColorSwatchTexture', 'MDLLight', 'MDLLightProbe', 'MDLMaterial', 'MDLMaterialProperty', 'MDLMaterialPropertyConnection', 'MDLMaterialPropertyGraph', 'MDLMaterialPropertyNode', 'MDLMatrix4x4Array', 'MDLMesh', 'MDLMeshBufferData', 'MDLMeshBufferDataAllocator', 'MDLMeshBufferMap', 'MDLMeshBufferZoneDefault', 'MDLNoiseTexture', 'MDLNormalMapTexture', 'MDLObject', 'MDLObjectContainer', 'MDLPackedJointAnimation', 'MDLPathAssetResolver', 'MDLPhotometricLight', 'MDLPhysicallyPlausibleLight', 'MDLPhysicallyPlausibleScatteringFunction', 'MDLRelativeAssetResolver', 'MDLScatteringFunction', 'MDLSkeleton', 'MDLSkyCubeTexture', 'MDLStereoscopicCamera', 'MDLSubmesh', 'MDLSubmeshTopology', 'MDLTexture', 'MDLTextureFilter', 'MDLTextureSampler', 'MDLTransform', 'MDLTransformMatrixOp', 'MDLTransformOrientOp', 'MDLTransformRotateOp', 'MDLTransformRotateXOp', 'MDLTransformRotateYOp', 'MDLTransformRotateZOp', 'MDLTransformScaleOp', 'MDLTransformStack', 'MDLTransformTranslateOp', 'MDLURLTexture', 'MDLVertexAttribute', 'MDLVertexAttributeData', 'MDLVertexBufferLayout', 'MDLVertexDescriptor', 'MDLVoxelArray', 'MFMailComposeViewController', 'MFMessageComposeViewController', 'MIDICIDeviceInfo', 'MIDICIDiscoveredNode', 'MIDICIDiscoveryManager', 'MIDICIProfile', 'MIDICIProfileState', 'MIDICIResponder', 'MIDICISession', 'MIDINetworkConnection', 'MIDINetworkHost', 'MIDINetworkSession', 'MKAnnotationView', 'MKCircle', 'MKCircleRenderer', 'MKCircleView', 'MKClusterAnnotation', 'MKCompassButton', 'MKDirections', 'MKDirectionsRequest', 'MKDirectionsResponse', 'MKDistanceFormatter', 'MKETAResponse', 'MKGeoJSONDecoder', 'MKGeoJSONFeature', 'MKGeodesicPolyline', 'MKGradientPolylineRenderer', 'MKLocalPointsOfInterestRequest', 'MKLocalSearch', 'MKLocalSearchCompleter', 'MKLocalSearchCompletion', 'MKLocalSearchRequest', 'MKLocalSearchResponse', 'MKMapCamera', 'MKMapCameraBoundary', 'MKMapCameraZoomRange', 'MKMapItem', 'MKMapSnapshot', 'MKMapSnapshotOptions', 'MKMapSnapshotter', 'MKMapView', 'MKMarkerAnnotationView', 'MKMultiPoint', 'MKMultiPolygon', 'MKMultiPolygonRenderer', 'MKMultiPolyline', 'MKMultiPolylineRenderer', 'MKOverlayPathRenderer', 'MKOverlayPathView', 'MKOverlayRenderer', 'MKOverlayView', 'MKPinAnnotationView', 'MKPitchControl', 'MKPlacemark', 'MKPointAnnotation', 'MKPointOfInterestFilter', 'MKPolygon', 'MKPolygonRenderer', 'MKPolygonView', 'MKPolyline', 'MKPolylineRenderer', 'MKPolylineView', 'MKReverseGeocoder', 'MKRoute', 'MKRouteStep', 'MKScaleView', 'MKShape', 'MKTileOverlay', 'MKTileOverlayRenderer', 'MKUserLocation', 'MKUserLocationView', 'MKUserTrackingBarButtonItem', 'MKUserTrackingButton', 'MKZoomControl', 'MLArrayBatchProvider', 'MLCActivationDescriptor', 'MLCActivationLayer', 'MLCArithmeticLayer', 'MLCBatchNormalizationLayer', 'MLCConcatenationLayer', 'MLCConvolutionDescriptor', 'MLCConvolutionLayer', 'MLCDevice', 'MLCDropoutLayer', 'MLCEmbeddingDescriptor', 'MLCEmbeddingLayer', 'MLCFullyConnectedLayer', 'MLCGramMatrixLayer', 'MLCGraph', 'MLCGroupNormalizationLayer', 'MLCInferenceGraph', 'MLCInstanceNormalizationLayer', 'MLCLSTMDescriptor', 'MLCLSTMLayer', 'MLCLayer', 'MLCLayerNormalizationLayer', 'MLCLossDescriptor', 'MLCLossLayer', 'MLCMatMulDescriptor', 'MLCMatMulLayer', 'MLCMultiheadAttentionDescriptor', 'MLCMultiheadAttentionLayer', 'MLCPaddingLayer', 'MLCPoolingDescriptor', 'MLCPoolingLayer', 'MLCReductionLayer', 'MLCReshapeLayer', 'MLCSliceLayer', 'MLCSoftmaxLayer', 'MLCSplitLayer', 'MLCTensor', 'MLCTensorData', 'MLCTensorDescriptor', 'MLCTensorOptimizerDeviceData', 'MLCTensorParameter', 'MLCTrainingGraph', 'MLCTransposeLayer', 'MLCUpsampleLayer', 'MLCYOLOLossDescriptor', 'MLCYOLOLossLayer', 'MLDictionaryConstraint', 'MLDictionaryFeatureProvider', 'MLFeatureDescription', 'MLFeatureValue', 'MLImageConstraint', 'MLImageSize', 'MLImageSizeConstraint', 'MLKey', 'MLMetricKey', 'MLModel', 'MLModelCollection', 'MLModelCollectionEntry', 'MLModelConfiguration', 'MLModelDescription', 'MLMultiArray', 'MLMultiArrayConstraint', 'MLMultiArrayShapeConstraint', 'MLNumericConstraint', 'MLParameterDescription', 'MLParameterKey', 'MLPredictionOptions', 'MLSequence', 'MLSequenceConstraint', 'MLTask', 'MLUpdateContext', 'MLUpdateProgressHandlers', 'MLUpdateTask', 'MPChangeLanguageOptionCommandEvent', 'MPChangePlaybackPositionCommand', 'MPChangePlaybackPositionCommandEvent', 'MPChangePlaybackRateCommand', 'MPChangePlaybackRateCommandEvent', 'MPChangeRepeatModeCommand', 'MPChangeRepeatModeCommandEvent', 'MPChangeShuffleModeCommand', 'MPChangeShuffleModeCommandEvent', 'MPContentItem', 'MPFeedbackCommand', 'MPFeedbackCommandEvent', 'MPMediaEntity', 'MPMediaItem', 'MPMediaItemArtwork', 'MPMediaItemCollection', 'MPMediaLibrary', 'MPMediaPickerController', 'MPMediaPlaylist', 'MPMediaPlaylistCreationMetadata', 'MPMediaPredicate', 'MPMediaPropertyPredicate', 'MPMediaQuery', 'MPMediaQuerySection', 'MPMovieAccessLog', 'MPMovieAccessLogEvent', 'MPMovieErrorLog', 'MPMovieErrorLogEvent', 'MPMoviePlayerController', 'MPMoviePlayerViewController', 'MPMusicPlayerApplicationController', 'MPMusicPlayerController', 'MPMusicPlayerControllerMutableQueue', 'MPMusicPlayerControllerQueue', 'MPMusicPlayerMediaItemQueueDescriptor', 'MPMusicPlayerPlayParameters', 'MPMusicPlayerPlayParametersQueueDescriptor', 'MPMusicPlayerQueueDescriptor', 'MPMusicPlayerStoreQueueDescriptor', 'MPNowPlayingInfoCenter', 'MPNowPlayingInfoLanguageOption', 'MPNowPlayingInfoLanguageOptionGroup', 'MPNowPlayingSession', 'MPPlayableContentManager', 'MPPlayableContentManagerContext', 'MPRatingCommand', 'MPRatingCommandEvent', 'MPRemoteCommand', 'MPRemoteCommandCenter', 'MPRemoteCommandEvent', 'MPSGraph', 'MPSGraphConvolution2DOpDescriptor', 'MPSGraphDepthwiseConvolution2DOpDescriptor', 'MPSGraphDevice', 'MPSGraphExecutionDescriptor', 'MPSGraphOperation', 'MPSGraphPooling2DOpDescriptor', 'MPSGraphShapedType', 'MPSGraphTensor', 'MPSGraphTensorData', 'MPSGraphVariableOp', 'MPSeekCommandEvent', 'MPSkipIntervalCommand', 'MPSkipIntervalCommandEvent', 'MPTimedMetadata', 'MPVolumeView', 'MSConversation', 'MSMessage', 'MSMessageLayout', 'MSMessageLiveLayout', 'MSMessageTemplateLayout', 'MSMessagesAppViewController', 'MSServiceAccount', 'MSSession', 'MSSetupSession', 'MSSticker', 'MSStickerBrowserView', 'MSStickerBrowserViewController', 'MSStickerView', 'MTKMesh', 'MTKMeshBuffer', 'MTKMeshBufferAllocator', 'MTKSubmesh', 'MTKTextureLoader', 'MTKView', 'MTLAccelerationStructureBoundingBoxGeometryDescriptor', 'MTLAccelerationStructureDescriptor', 'MTLAccelerationStructureGeometryDescriptor', 'MTLAccelerationStructureTriangleGeometryDescriptor', 'MTLArgument', 'MTLArgumentDescriptor', 'MTLArrayType', 'MTLAttribute', 'MTLAttributeDescriptor', 'MTLAttributeDescriptorArray', 'MTLBinaryArchiveDescriptor', 'MTLBlitPassDescriptor', 'MTLBlitPassSampleBufferAttachmentDescriptor', 'MTLBlitPassSampleBufferAttachmentDescriptorArray', 'MTLBufferLayoutDescriptor', 'MTLBufferLayoutDescriptorArray', 'MTLCaptureDescriptor', 'MTLCaptureManager', 'MTLCommandBufferDescriptor', 'MTLCompileOptions', 'MTLComputePassDescriptor', 'MTLComputePassSampleBufferAttachmentDescriptor', 'MTLComputePassSampleBufferAttachmentDescriptorArray', 'MTLComputePipelineDescriptor', 'MTLComputePipelineReflection', 'MTLCounterSampleBufferDescriptor', 'MTLDepthStencilDescriptor', 'MTLFunctionConstant', 'MTLFunctionConstantValues', 'MTLFunctionDescriptor', 'MTLHeapDescriptor', 'MTLIndirectCommandBufferDescriptor', 'MTLInstanceAccelerationStructureDescriptor', 'MTLIntersectionFunctionDescriptor', 'MTLIntersectionFunctionTableDescriptor', 'MTLLinkedFunctions', 'MTLPipelineBufferDescriptor', 'MTLPipelineBufferDescriptorArray', 'MTLPointerType', 'MTLPrimitiveAccelerationStructureDescriptor', 'MTLRasterizationRateLayerArray', 'MTLRasterizationRateLayerDescriptor', 'MTLRasterizationRateMapDescriptor', 'MTLRasterizationRateSampleArray', 'MTLRenderPassAttachmentDescriptor', 'MTLRenderPassColorAttachmentDescriptor', 'MTLRenderPassColorAttachmentDescriptorArray', 'MTLRenderPassDepthAttachmentDescriptor', 'MTLRenderPassDescriptor', 'MTLRenderPassSampleBufferAttachmentDescriptor', 'MTLRenderPassSampleBufferAttachmentDescriptorArray', 'MTLRenderPassStencilAttachmentDescriptor', 'MTLRenderPipelineColorAttachmentDescriptor', 'MTLRenderPipelineColorAttachmentDescriptorArray', 'MTLRenderPipelineDescriptor', 'MTLRenderPipelineReflection', 'MTLResourceStatePassDescriptor', 'MTLResourceStatePassSampleBufferAttachmentDescriptor', 'MTLResourceStatePassSampleBufferAttachmentDescriptorArray', 'MTLSamplerDescriptor', 'MTLSharedEventHandle', 'MTLSharedEventListener', 'MTLSharedTextureHandle', 'MTLStageInputOutputDescriptor', 'MTLStencilDescriptor', 'MTLStructMember', 'MTLStructType', 'MTLTextureDescriptor', 'MTLTextureReferenceType', 'MTLTileRenderPipelineColorAttachmentDescriptor', 'MTLTileRenderPipelineColorAttachmentDescriptorArray', 'MTLTileRenderPipelineDescriptor', 'MTLType', 'MTLVertexAttribute', 'MTLVertexAttributeDescriptor', 'MTLVertexAttributeDescriptorArray', 'MTLVertexBufferLayoutDescriptor', 'MTLVertexBufferLayoutDescriptorArray', 'MTLVertexDescriptor', 'MTLVisibleFunctionTableDescriptor', 'MXAnimationMetric', 'MXAppExitMetric', 'MXAppLaunchMetric', 'MXAppResponsivenessMetric', 'MXAppRunTimeMetric', 'MXAverage', 'MXBackgroundExitData', 'MXCPUExceptionDiagnostic', 'MXCPUMetric', 'MXCallStackTree', 'MXCellularConditionMetric', 'MXCrashDiagnostic', 'MXDiagnostic', 'MXDiagnosticPayload', 'MXDiskIOMetric', 'MXDiskWriteExceptionDiagnostic', 'MXDisplayMetric', 'MXForegroundExitData', 'MXGPUMetric', 'MXHangDiagnostic', 'MXHistogram', 'MXHistogramBucket', 'MXLocationActivityMetric', 'MXMemoryMetric', 'MXMetaData', 'MXMetric', 'MXMetricManager', 'MXMetricPayload', 'MXNetworkTransferMetric', 'MXSignpostIntervalData', 'MXSignpostMetric', 'MXUnitAveragePixelLuminance', 'MXUnitSignalBars', 'MyClass', 'NCWidgetController', 'NEAppProxyFlow', 'NEAppProxyProvider', 'NEAppProxyProviderManager', 'NEAppProxyTCPFlow', 'NEAppProxyUDPFlow', 'NEAppPushManager', 'NEAppPushProvider', 'NEAppRule', 'NEDNSOverHTTPSSettings', 'NEDNSOverTLSSettings', 'NEDNSProxyManager', 'NEDNSProxyProvider', 'NEDNSProxyProviderProtocol', 'NEDNSSettings', 'NEDNSSettingsManager', 'NEEvaluateConnectionRule', 'NEFilterBrowserFlow', 'NEFilterControlProvider', 'NEFilterControlVerdict', 'NEFilterDataProvider', 'NEFilterDataVerdict', 'NEFilterFlow', 'NEFilterManager', 'NEFilterNewFlowVerdict', 'NEFilterPacketContext', 'NEFilterPacketProvider', 'NEFilterProvider', 'NEFilterProviderConfiguration', 'NEFilterRemediationVerdict', 'NEFilterReport', 'NEFilterRule', 'NEFilterSettings', 'NEFilterSocketFlow', 'NEFilterVerdict', 'NEFlowMetaData', 'NEHotspotConfiguration', 'NEHotspotConfigurationManager', 'NEHotspotEAPSettings', 'NEHotspotHS20Settings', 'NEHotspotHelper', 'NEHotspotHelperCommand', 'NEHotspotHelperResponse', 'NEHotspotNetwork', 'NEIPv4Route', 'NEIPv4Settings', 'NEIPv6Route', 'NEIPv6Settings', 'NENetworkRule', 'NEOnDemandRule', 'NEOnDemandRuleConnect', 'NEOnDemandRuleDisconnect', 'NEOnDemandRuleEvaluateConnection', 'NEOnDemandRuleIgnore', 'NEPacket', 'NEPacketTunnelFlow', 'NEPacketTunnelNetworkSettings', 'NEPacketTunnelProvider', 'NEProvider', 'NEProxyServer', 'NEProxySettings', 'NETransparentProxyManager', 'NETransparentProxyNetworkSettings', 'NETransparentProxyProvider', 'NETunnelNetworkSettings', 'NETunnelProvider', 'NETunnelProviderManager', 'NETunnelProviderProtocol', 'NETunnelProviderSession', 'NEVPNConnection', 'NEVPNIKEv2SecurityAssociationParameters', 'NEVPNManager', 'NEVPNProtocol', 'NEVPNProtocolIKEv2', 'NEVPNProtocolIPSec', 'NFCISO15693CustomCommandConfiguration', 'NFCISO15693ReadMultipleBlocksConfiguration', 'NFCISO15693ReaderSession', 'NFCISO7816APDU', 'NFCNDEFMessage', 'NFCNDEFPayload', 'NFCNDEFReaderSession', 'NFCReaderSession', 'NFCTagCommandConfiguration', 'NFCTagReaderSession', 'NFCVASCommandConfiguration', 'NFCVASReaderSession', 'NFCVASResponse', 'NIConfiguration', 'NIDiscoveryToken', 'NINearbyObject', 'NINearbyPeerConfiguration', 'NISession', 'NKAssetDownload', 'NKIssue', 'NKLibrary', 'NLEmbedding', 'NLGazetteer', 'NLLanguageRecognizer', 'NLModel', 'NLModelConfiguration', 'NLTagger', 'NLTokenizer', 'NSArray', 'NSAssertionHandler', 'NSAsynchronousFetchRequest', 'NSAsynchronousFetchResult', 'NSAtomicStore', 'NSAtomicStoreCacheNode', 'NSAttributeDescription', 'NSAttributedString', 'NSAutoreleasePool', 'NSBatchDeleteRequest', 'NSBatchDeleteResult', 'NSBatchInsertRequest', 'NSBatchInsertResult', 'NSBatchUpdateRequest', 'NSBatchUpdateResult', 'NSBlockOperation', 'NSBundle', 'NSBundleResourceRequest', 'NSByteCountFormatter', 'NSCache', 'NSCachedURLResponse', 'NSCalendar', 'NSCharacterSet', 'NSCoder', 'NSCollectionLayoutAnchor', 'NSCollectionLayoutBoundarySupplementaryItem', 'NSCollectionLayoutDecorationItem', 'NSCollectionLayoutDimension', 'NSCollectionLayoutEdgeSpacing', 'NSCollectionLayoutGroup', 'NSCollectionLayoutGroupCustomItem', 'NSCollectionLayoutItem', 'NSCollectionLayoutSection', 'NSCollectionLayoutSize', 'NSCollectionLayoutSpacing', 'NSCollectionLayoutSupplementaryItem', 'NSComparisonPredicate', 'NSCompoundPredicate', 'NSCondition', 'NSConditionLock', 'NSConstantString', 'NSConstraintConflict', 'NSCoreDataCoreSpotlightDelegate', 'NSCountedSet', 'NSData', 'NSDataAsset', 'NSDataDetector', 'NSDate', 'NSDateComponents', 'NSDateComponentsFormatter', 'NSDateFormatter', 'NSDateInterval', 'NSDateIntervalFormatter', 'NSDecimalNumber', 'NSDecimalNumberHandler', 'NSDerivedAttributeDescription', 'NSDictionary', 'NSDiffableDataSourceSectionSnapshot', 'NSDiffableDataSourceSectionTransaction', 'NSDiffableDataSourceSnapshot', 'NSDiffableDataSourceTransaction', 'NSDimension', 'NSDirectoryEnumerator', 'NSEnergyFormatter', 'NSEntityDescription', 'NSEntityMapping', 'NSEntityMigrationPolicy', 'NSEnumerator', 'NSError', 'NSEvent', 'NSException', 'NSExpression', 'NSExpressionDescription', 'NSExtensionContext', 'NSExtensionItem', 'NSFetchIndexDescription', 'NSFetchIndexElementDescription', 'NSFetchRequest', 'NSFetchRequestExpression', 'NSFetchedPropertyDescription', 'NSFetchedResultsController', 'NSFileAccessIntent', 'NSFileCoordinator', 'NSFileHandle', 'NSFileManager', 'NSFileProviderDomain', 'NSFileProviderExtension', 'NSFileProviderManager', 'NSFileProviderService', 'NSFileSecurity', 'NSFileVersion', 'NSFileWrapper', 'NSFormatter', 'NSHTTPCookie', 'NSHTTPCookieStorage', 'NSHTTPURLResponse', 'NSHashTable', 'NSISO8601DateFormatter', 'NSIncrementalStore', 'NSIncrementalStoreNode', 'NSIndexPath', 'NSIndexSet', 'NSInputStream', 'NSInvocation', 'NSInvocationOperation', 'NSItemProvider', 'NSJSONSerialization', 'NSKeyedArchiver', 'NSKeyedUnarchiver', 'NSLayoutAnchor', 'NSLayoutConstraint', 'NSLayoutDimension', 'NSLayoutManager', 'NSLayoutXAxisAnchor', 'NSLayoutYAxisAnchor', 'NSLengthFormatter', 'NSLinguisticTagger', 'NSListFormatter', 'NSLocale', 'NSLock', 'NSMachPort', 'NSManagedObject', 'NSManagedObjectContext', 'NSManagedObjectID', 'NSManagedObjectModel', 'NSMapTable', 'NSMappingModel', 'NSMassFormatter', 'NSMeasurement', 'NSMeasurementFormatter', 'NSMenuToolbarItem', 'NSMergeConflict', 'NSMergePolicy', 'NSMessagePort', 'NSMetadataItem', 'NSMetadataQuery', 'NSMetadataQueryAttributeValueTuple', 'NSMetadataQueryResultGroup', 'NSMethodSignature', 'NSMigrationManager', 'NSMutableArray', 'NSMutableAttributedString', 'NSMutableCharacterSet', 'NSMutableData', 'NSMutableDictionary', 'NSMutableIndexSet', 'NSMutableOrderedSet', 'NSMutableParagraphStyle', 'NSMutableSet', 'NSMutableString', 'NSMutableURLRequest', 'NSNetService', 'NSNetServiceBrowser', 'NSNotification', 'NSNotificationCenter', 'NSNotificationQueue', 'NSNull', 'NSNumber', 'NSNumberFormatter', 'NSObject', 'NSOperation', 'NSOperationQueue', 'NSOrderedCollectionChange', 'NSOrderedCollectionDifference', 'NSOrderedSet', 'NSOrthography', 'NSOutputStream', 'NSParagraphStyle', 'NSPersistentCloudKitContainer', 'NSPersistentCloudKitContainerEvent', 'NSPersistentCloudKitContainerEventRequest', 'NSPersistentCloudKitContainerEventResult', 'NSPersistentCloudKitContainerOptions', 'NSPersistentContainer', 'NSPersistentHistoryChange', 'NSPersistentHistoryChangeRequest', 'NSPersistentHistoryResult', 'NSPersistentHistoryToken', 'NSPersistentHistoryTransaction', 'NSPersistentStore', 'NSPersistentStoreAsynchronousResult', 'NSPersistentStoreCoordinator', 'NSPersistentStoreDescription', 'NSPersistentStoreRequest', 'NSPersistentStoreResult', 'NSPersonNameComponents', 'NSPersonNameComponentsFormatter', 'NSPipe', 'NSPointerArray', 'NSPointerFunctions', 'NSPort', 'NSPredicate', 'NSProcessInfo', 'NSProgress', 'NSPropertyDescription', 'NSPropertyListSerialization', 'NSPropertyMapping', 'NSProxy', 'NSPurgeableData', 'NSQueryGenerationToken', 'NSRecursiveLock', 'NSRegularExpression', 'NSRelationshipDescription', 'NSRelativeDateTimeFormatter', 'NSRunLoop', 'NSSaveChangesRequest', 'NSScanner', 'NSSecureUnarchiveFromDataTransformer', 'NSSet', 'NSShadow', 'NSSharingServicePickerToolbarItem', 'NSSharingServicePickerTouchBarItem', 'NSSimpleCString', 'NSSocketPort', 'NSSortDescriptor', 'NSStream', 'NSString', 'NSStringDrawingContext', 'NSTextAttachment', 'NSTextCheckingResult', 'NSTextContainer', 'NSTextStorage', 'NSTextTab', 'NSThread', 'NSTimeZone', 'NSTimer', 'NSToolbarItem', 'NSURL', 'NSURLAuthenticationChallenge', 'NSURLCache', 'NSURLComponents', 'NSURLConnection', 'NSURLCredential', 'NSURLCredentialStorage', 'NSURLProtectionSpace', 'NSURLProtocol', 'NSURLQueryItem', 'NSURLRequest', 'NSURLResponse', 'NSURLSession', 'NSURLSessionConfiguration', 'NSURLSessionDataTask', 'NSURLSessionDownloadTask', 'NSURLSessionStreamTask', 'NSURLSessionTask', 'NSURLSessionTaskMetrics', 'NSURLSessionTaskTransactionMetrics', 'NSURLSessionUploadTask', 'NSURLSessionWebSocketMessage', 'NSURLSessionWebSocketTask', 'NSUUID', 'NSUbiquitousKeyValueStore', 'NSUndoManager', 'NSUnit', 'NSUnitAcceleration', 'NSUnitAngle', 'NSUnitArea', 'NSUnitConcentrationMass', 'NSUnitConverter', 'NSUnitConverterLinear', 'NSUnitDispersion', 'NSUnitDuration', 'NSUnitElectricCharge', 'NSUnitElectricCurrent', 'NSUnitElectricPotentialDifference', 'NSUnitElectricResistance', 'NSUnitEnergy', 'NSUnitFrequency', 'NSUnitFuelEfficiency', 'NSUnitIlluminance', 'NSUnitInformationStorage', 'NSUnitLength', 'NSUnitMass', 'NSUnitPower', 'NSUnitPressure', 'NSUnitSpeed', 'NSUnitTemperature', 'NSUnitVolume', 'NSUserActivity', 'NSUserDefaults', 'NSValue', 'NSValueTransformer', 'NSXMLParser', 'NSXPCCoder', 'NSXPCConnection', 'NSXPCInterface', 'NSXPCListener', 'NSXPCListenerEndpoint', 'NWBonjourServiceEndpoint', 'NWEndpoint', 'NWHostEndpoint', 'NWPath', 'NWTCPConnection', 'NWTLSParameters', 'NWUDPSession', 'OSLogEntry', 'OSLogEntryActivity', 'OSLogEntryBoundary', 'OSLogEntryLog', 'OSLogEntrySignpost', 'OSLogEnumerator', 'OSLogMessageComponent', 'OSLogPosition', 'OSLogStore', 'PDFAction', 'PDFActionGoTo', 'PDFActionNamed', 'PDFActionRemoteGoTo', 'PDFActionResetForm', 'PDFActionURL', 'PDFAnnotation', 'PDFAppearanceCharacteristics', 'PDFBorder', 'PDFDestination', 'PDFDocument', 'PDFOutline', 'PDFPage', 'PDFSelection', 'PDFThumbnailView', 'PDFView', 'PHAdjustmentData', 'PHAsset', 'PHAssetChangeRequest', 'PHAssetCollection', 'PHAssetCollectionChangeRequest', 'PHAssetCreationRequest', 'PHAssetResource', 'PHAssetResourceCreationOptions', 'PHAssetResourceManager', 'PHAssetResourceRequestOptions', 'PHCachingImageManager', 'PHChange', 'PHChangeRequest', 'PHCloudIdentifier', 'PHCollection', 'PHCollectionList', 'PHCollectionListChangeRequest', 'PHContentEditingInput', 'PHContentEditingInputRequestOptions', 'PHContentEditingOutput', 'PHEditingExtensionContext', 'PHFetchOptions', 'PHFetchResult', 'PHFetchResultChangeDetails', 'PHImageManager', 'PHImageRequestOptions', 'PHLivePhoto', 'PHLivePhotoEditingContext', 'PHLivePhotoRequestOptions', 'PHLivePhotoView', 'PHObject', 'PHObjectChangeDetails', 'PHObjectPlaceholder', 'PHPhotoLibrary', 'PHPickerConfiguration', 'PHPickerFilter', 'PHPickerResult', 'PHPickerViewController', 'PHProject', 'PHProjectChangeRequest', 'PHVideoRequestOptions', 'PKAddCarKeyPassConfiguration', 'PKAddPassButton', 'PKAddPassesViewController', 'PKAddPaymentPassRequest', 'PKAddPaymentPassRequestConfiguration', 'PKAddPaymentPassViewController', 'PKAddSecureElementPassConfiguration', 'PKAddSecureElementPassViewController', 'PKAddShareablePassConfiguration', 'PKBarcodeEventConfigurationRequest', 'PKBarcodeEventMetadataRequest', 'PKBarcodeEventMetadataResponse', 'PKBarcodeEventSignatureRequest', 'PKBarcodeEventSignatureResponse', 'PKCanvasView', 'PKContact', 'PKDisbursementAuthorizationController', 'PKDisbursementRequest', 'PKDisbursementVoucher', 'PKDrawing', 'PKEraserTool', 'PKFloatRange', 'PKInk', 'PKInkingTool', 'PKIssuerProvisioningExtensionHandler', 'PKIssuerProvisioningExtensionPassEntry', 'PKIssuerProvisioningExtensionPaymentPassEntry', 'PKIssuerProvisioningExtensionStatus', 'PKLabeledValue', 'PKLassoTool', 'PKObject', 'PKPass', 'PKPassLibrary', 'PKPayment', 'PKPaymentAuthorizationController', 'PKPaymentAuthorizationResult', 'PKPaymentAuthorizationViewController', 'PKPaymentButton', 'PKPaymentInformationEventExtension', 'PKPaymentMerchantSession', 'PKPaymentMethod', 'PKPaymentPass', 'PKPaymentRequest', 'PKPaymentRequestMerchantSessionUpdate', 'PKPaymentRequestPaymentMethodUpdate', 'PKPaymentRequestShippingContactUpdate', 'PKPaymentRequestShippingMethodUpdate', 'PKPaymentRequestUpdate', 'PKPaymentSummaryItem', 'PKPaymentToken', 'PKPushCredentials', 'PKPushPayload', 'PKPushRegistry', 'PKSecureElementPass', 'PKShareablePassMetadata', 'PKShippingMethod', 'PKStroke', 'PKStrokePath', 'PKStrokePoint', 'PKSuicaPassProperties', 'PKTool', 'PKToolPicker', 'PKTransitPassProperties', 'QLFileThumbnailRequest', 'QLPreviewController', 'QLThumbnailGenerationRequest', 'QLThumbnailGenerator', 'QLThumbnailProvider', 'QLThumbnailReply', 'QLThumbnailRepresentation', 'RPBroadcastActivityController', 'RPBroadcastActivityViewController', 'RPBroadcastConfiguration', 'RPBroadcastController', 'RPBroadcastHandler', 'RPBroadcastMP4ClipHandler', 'RPBroadcastSampleHandler', 'RPPreviewViewController', 'RPScreenRecorder', 'RPSystemBroadcastPickerView', 'SCNAccelerationConstraint', 'SCNAction', 'SCNAnimation', 'SCNAnimationEvent', 'SCNAnimationPlayer', 'SCNAudioPlayer', 'SCNAudioSource', 'SCNAvoidOccluderConstraint', 'SCNBillboardConstraint', 'SCNBox', 'SCNCamera', 'SCNCameraController', 'SCNCapsule', 'SCNCone', 'SCNConstraint', 'SCNCylinder', 'SCNDistanceConstraint', 'SCNFloor', 'SCNGeometry', 'SCNGeometryElement', 'SCNGeometrySource', 'SCNGeometryTessellator', 'SCNHitTestResult', 'SCNIKConstraint', 'SCNLevelOfDetail', 'SCNLight', 'SCNLookAtConstraint', 'SCNMaterial', 'SCNMaterialProperty', 'SCNMorpher', 'SCNNode', 'SCNParticlePropertyController', 'SCNParticleSystem', 'SCNPhysicsBallSocketJoint', 'SCNPhysicsBehavior', 'SCNPhysicsBody', 'SCNPhysicsConeTwistJoint', 'SCNPhysicsContact', 'SCNPhysicsField', 'SCNPhysicsHingeJoint', 'SCNPhysicsShape', 'SCNPhysicsSliderJoint', 'SCNPhysicsVehicle', 'SCNPhysicsVehicleWheel', 'SCNPhysicsWorld', 'SCNPlane', 'SCNProgram', 'SCNPyramid', 'SCNReferenceNode', 'SCNRenderer', 'SCNReplicatorConstraint', 'SCNScene', 'SCNSceneSource', 'SCNShape', 'SCNSkinner', 'SCNSliderConstraint', 'SCNSphere', 'SCNTechnique', 'SCNText', 'SCNTimingFunction', 'SCNTorus', 'SCNTransaction', 'SCNTransformConstraint', 'SCNTube', 'SCNView', 'SFAcousticFeature', 'SFAuthenticationSession', 'SFContentBlockerManager', 'SFContentBlockerState', 'SFSafariViewController', 'SFSafariViewControllerConfiguration', 'SFSpeechAudioBufferRecognitionRequest', 'SFSpeechRecognitionRequest', 'SFSpeechRecognitionResult', 'SFSpeechRecognitionTask', 'SFSpeechRecognizer', 'SFSpeechURLRecognitionRequest', 'SFTranscription', 'SFTranscriptionSegment', 'SFVoiceAnalytics', 'SK3DNode', 'SKAction', 'SKAdNetwork', 'SKArcadeService', 'SKAttribute', 'SKAttributeValue', 'SKAudioNode', 'SKCameraNode', 'SKCloudServiceController', 'SKCloudServiceSetupViewController', 'SKConstraint', 'SKCropNode', 'SKDownload', 'SKEffectNode', 'SKEmitterNode', 'SKFieldNode', 'SKKeyframeSequence', 'SKLabelNode', 'SKLightNode', 'SKMutablePayment', 'SKMutableTexture', 'SKNode', 'SKOverlay', 'SKOverlayAppClipConfiguration', 'SKOverlayAppConfiguration', 'SKOverlayConfiguration', 'SKOverlayTransitionContext', 'SKPayment', 'SKPaymentDiscount', 'SKPaymentQueue', 'SKPaymentTransaction', 'SKPhysicsBody', 'SKPhysicsContact', 'SKPhysicsJoint', 'SKPhysicsJointFixed', 'SKPhysicsJointLimit', 'SKPhysicsJointPin', 'SKPhysicsJointSliding', 'SKPhysicsJointSpring', 'SKPhysicsWorld', 'SKProduct', 'SKProductDiscount', 'SKProductStorePromotionController', 'SKProductSubscriptionPeriod', 'SKProductsRequest', 'SKProductsResponse', 'SKRange', 'SKReachConstraints', 'SKReceiptRefreshRequest', 'SKReferenceNode', 'SKRegion', 'SKRenderer', 'SKRequest', 'SKScene', 'SKShader', 'SKShapeNode', 'SKSpriteNode', 'SKStoreProductViewController', 'SKStoreReviewController', 'SKStorefront', 'SKTexture', 'SKTextureAtlas', 'SKTileDefinition', 'SKTileGroup', 'SKTileGroupRule', 'SKTileMapNode', 'SKTileSet', 'SKTransformNode', 'SKTransition', 'SKUniform', 'SKVideoNode', 'SKView', 'SKWarpGeometry', 'SKWarpGeometryGrid', 'SLComposeServiceViewController', 'SLComposeSheetConfigurationItem', 'SLComposeViewController', 'SLRequest', 'SNAudioFileAnalyzer', 'SNAudioStreamAnalyzer', 'SNClassification', 'SNClassificationResult', 'SNClassifySoundRequest', 'SRAmbientLightSample', 'SRApplicationUsage', 'SRDeletionRecord', 'SRDevice', 'SRDeviceUsageReport', 'SRFetchRequest', 'SRFetchResult', 'SRKeyboardMetrics', 'SRKeyboardProbabilityMetric', 'SRMessagesUsageReport', 'SRNotificationUsage', 'SRPhoneUsageReport', 'SRSensorReader', 'SRVisit', 'SRWebUsage', 'SRWristDetection', 'SSReadingList', 'STScreenTimeConfiguration', 'STScreenTimeConfigurationObserver', 'STWebHistory', 'STWebpageController', 'TKBERTLVRecord', 'TKCompactTLVRecord', 'TKSimpleTLVRecord', 'TKSmartCard', 'TKSmartCardATR', 'TKSmartCardATRInterfaceGroup', 'TKSmartCardPINFormat', 'TKSmartCardSlot', 'TKSmartCardSlotManager', 'TKSmartCardToken', 'TKSmartCardTokenDriver', 'TKSmartCardTokenSession', 'TKSmartCardUserInteraction', 'TKSmartCardUserInteractionForPINOperation', 'TKSmartCardUserInteractionForSecurePINChange', 'TKSmartCardUserInteractionForSecurePINVerification', 'TKTLVRecord', 'TKToken', 'TKTokenAuthOperation', 'TKTokenConfiguration', 'TKTokenDriver', 'TKTokenDriverConfiguration', 'TKTokenKeyAlgorithm', 'TKTokenKeyExchangeParameters', 'TKTokenKeychainCertificate', 'TKTokenKeychainContents', 'TKTokenKeychainItem', 'TKTokenKeychainKey', 'TKTokenPasswordAuthOperation', 'TKTokenSession', 'TKTokenSmartCardPINAuthOperation', 'TKTokenWatcher', 'TWRequest', 'TWTweetComposeViewController', 'UIAcceleration', 'UIAccelerometer', 'UIAccessibilityCustomAction', 'UIAccessibilityCustomRotor', 'UIAccessibilityCustomRotorItemResult', 'UIAccessibilityCustomRotorSearchPredicate', 'UIAccessibilityElement', 'UIAccessibilityLocationDescriptor', 'UIAction', 'UIActionSheet', 'UIActivity', 'UIActivityIndicatorView', 'UIActivityItemProvider', 'UIActivityItemsConfiguration', 'UIActivityViewController', 'UIAlertAction', 'UIAlertController', 'UIAlertView', 'UIApplication', 'UIApplicationShortcutIcon', 'UIApplicationShortcutItem', 'UIAttachmentBehavior', 'UIBackgroundConfiguration', 'UIBarAppearance', 'UIBarButtonItem', 'UIBarButtonItemAppearance', 'UIBarButtonItemGroup', 'UIBarButtonItemStateAppearance', 'UIBarItem', 'UIBezierPath', 'UIBlurEffect', 'UIButton', 'UICellAccessory', 'UICellAccessoryCheckmark', 'UICellAccessoryCustomView', 'UICellAccessoryDelete', 'UICellAccessoryDisclosureIndicator', 'UICellAccessoryInsert', 'UICellAccessoryLabel', 'UICellAccessoryMultiselect', 'UICellAccessoryOutlineDisclosure', 'UICellAccessoryReorder', 'UICellConfigurationState', 'UICloudSharingController', 'UICollectionLayoutListConfiguration', 'UICollectionReusableView', 'UICollectionView', 'UICollectionViewCell', 'UICollectionViewCellRegistration', 'UICollectionViewCompositionalLayout', 'UICollectionViewCompositionalLayoutConfiguration', 'UICollectionViewController', 'UICollectionViewDiffableDataSource', 'UICollectionViewDiffableDataSourceReorderingHandlers', 'UICollectionViewDiffableDataSourceSectionSnapshotHandlers', 'UICollectionViewDropPlaceholder', 'UICollectionViewDropProposal', 'UICollectionViewFlowLayout', 'UICollectionViewFlowLayoutInvalidationContext', 'UICollectionViewFocusUpdateContext', 'UICollectionViewLayout', 'UICollectionViewLayoutAttributes', 'UICollectionViewLayoutInvalidationContext', 'UICollectionViewListCell', 'UICollectionViewPlaceholder', 'UICollectionViewSupplementaryRegistration', 'UICollectionViewTransitionLayout', 'UICollectionViewUpdateItem', 'UICollisionBehavior', 'UIColor', 'UIColorPickerViewController', 'UIColorWell', 'UICommand', 'UICommandAlternate', 'UIContextMenuConfiguration', 'UIContextMenuInteraction', 'UIContextualAction', 'UIControl', 'UICubicTimingParameters', 'UIDatePicker', 'UIDeferredMenuElement', 'UIDevice', 'UIDictationPhrase', 'UIDocument', 'UIDocumentBrowserAction', 'UIDocumentBrowserTransitionController', 'UIDocumentBrowserViewController', 'UIDocumentInteractionController', 'UIDocumentMenuViewController', 'UIDocumentPickerExtensionViewController', 'UIDocumentPickerViewController', 'UIDragInteraction', 'UIDragItem', 'UIDragPreview', 'UIDragPreviewParameters', 'UIDragPreviewTarget', 'UIDropInteraction', 'UIDropProposal', 'UIDynamicAnimator', 'UIDynamicBehavior', 'UIDynamicItemBehavior', 'UIDynamicItemGroup', 'UIEvent', 'UIFeedbackGenerator', 'UIFieldBehavior', 'UIFocusAnimationCoordinator', 'UIFocusDebugger', 'UIFocusGuide', 'UIFocusMovementHint', 'UIFocusSystem', 'UIFocusUpdateContext', 'UIFont', 'UIFontDescriptor', 'UIFontMetrics', 'UIFontPickerViewController', 'UIFontPickerViewControllerConfiguration', 'UIGestureRecognizer', 'UIGraphicsImageRenderer', 'UIGraphicsImageRendererContext', 'UIGraphicsImageRendererFormat', 'UIGraphicsPDFRenderer', 'UIGraphicsPDFRendererContext', 'UIGraphicsPDFRendererFormat', 'UIGraphicsRenderer', 'UIGraphicsRendererContext', 'UIGraphicsRendererFormat', 'UIGravityBehavior', 'UIHoverGestureRecognizer', 'UIImage', 'UIImageAsset', 'UIImageConfiguration', 'UIImagePickerController', 'UIImageSymbolConfiguration', 'UIImageView', 'UIImpactFeedbackGenerator', 'UIIndirectScribbleInteraction', 'UIInputView', 'UIInputViewController', 'UIInterpolatingMotionEffect', 'UIKey', 'UIKeyCommand', 'UILabel', 'UILargeContentViewerInteraction', 'UILayoutGuide', 'UILexicon', 'UILexiconEntry', 'UIListContentConfiguration', 'UIListContentImageProperties', 'UIListContentTextProperties', 'UIListContentView', 'UILocalNotification', 'UILocalizedIndexedCollation', 'UILongPressGestureRecognizer', 'UIManagedDocument', 'UIMarkupTextPrintFormatter', 'UIMenu', 'UIMenuController', 'UIMenuElement', 'UIMenuItem', 'UIMenuSystem', 'UIMotionEffect', 'UIMotionEffectGroup', 'UIMutableApplicationShortcutItem', 'UIMutableUserNotificationAction', 'UIMutableUserNotificationCategory', 'UINavigationBar', 'UINavigationBarAppearance', 'UINavigationController', 'UINavigationItem', 'UINib', 'UINotificationFeedbackGenerator', 'UIOpenURLContext', 'UIPageControl', 'UIPageViewController', 'UIPanGestureRecognizer', 'UIPasteConfiguration', 'UIPasteboard', 'UIPencilInteraction', 'UIPercentDrivenInteractiveTransition', 'UIPickerView', 'UIPinchGestureRecognizer', 'UIPointerEffect', 'UIPointerHighlightEffect', 'UIPointerHoverEffect', 'UIPointerInteraction', 'UIPointerLiftEffect', 'UIPointerLockState', 'UIPointerRegion', 'UIPointerRegionRequest', 'UIPointerShape', 'UIPointerStyle', 'UIPopoverBackgroundView', 'UIPopoverController', 'UIPopoverPresentationController', 'UIPresentationController', 'UIPress', 'UIPressesEvent', 'UIPreviewAction', 'UIPreviewActionGroup', 'UIPreviewInteraction', 'UIPreviewParameters', 'UIPreviewTarget', 'UIPrintFormatter', 'UIPrintInfo', 'UIPrintInteractionController', 'UIPrintPageRenderer', 'UIPrintPaper', 'UIPrinter', 'UIPrinterPickerController', 'UIProgressView', 'UIPushBehavior', 'UIReferenceLibraryViewController', 'UIRefreshControl', 'UIRegion', 'UIResponder', 'UIRotationGestureRecognizer', 'UIScene', 'UISceneActivationConditions', 'UISceneActivationRequestOptions', 'UISceneConfiguration', 'UISceneConnectionOptions', 'UISceneDestructionRequestOptions', 'UISceneOpenExternalURLOptions', 'UISceneOpenURLOptions', 'UISceneSession', 'UISceneSizeRestrictions', 'UIScreen', 'UIScreenEdgePanGestureRecognizer', 'UIScreenMode', 'UIScreenshotService', 'UIScribbleInteraction', 'UIScrollView', 'UISearchBar', 'UISearchContainerViewController', 'UISearchController', 'UISearchDisplayController', 'UISearchSuggestionItem', 'UISearchTextField', 'UISearchToken', 'UISegmentedControl', 'UISelectionFeedbackGenerator', 'UISimpleTextPrintFormatter', 'UISlider', 'UISnapBehavior', 'UISplitViewController', 'UISpringLoadedInteraction', 'UISpringTimingParameters', 'UIStackView', 'UIStatusBarManager', 'UIStepper', 'UIStoryboard', 'UIStoryboardPopoverSegue', 'UIStoryboardSegue', 'UIStoryboardUnwindSegueSource', 'UISwipeActionsConfiguration', 'UISwipeGestureRecognizer', 'UISwitch', 'UITabBar', 'UITabBarAppearance', 'UITabBarController', 'UITabBarItem', 'UITabBarItemAppearance', 'UITabBarItemStateAppearance', 'UITableView', 'UITableViewCell', 'UITableViewController', 'UITableViewDiffableDataSource', 'UITableViewDropPlaceholder', 'UITableViewDropProposal', 'UITableViewFocusUpdateContext', 'UITableViewHeaderFooterView', 'UITableViewPlaceholder', 'UITableViewRowAction', 'UITapGestureRecognizer', 'UITargetedDragPreview', 'UITargetedPreview', 'UITextChecker', 'UITextDragPreviewRenderer', 'UITextDropProposal', 'UITextField', 'UITextFormattingCoordinator', 'UITextInputAssistantItem', 'UITextInputMode', 'UITextInputPasswordRules', 'UITextInputStringTokenizer', 'UITextInteraction', 'UITextPlaceholder', 'UITextPosition', 'UITextRange', 'UITextSelectionRect', 'UITextView', 'UITitlebar', 'UIToolbar', 'UIToolbarAppearance', 'UITouch', 'UITraitCollection', 'UIUserNotificationAction', 'UIUserNotificationCategory', 'UIUserNotificationSettings', 'UIVibrancyEffect', 'UIVideoEditorController', 'UIView', 'UIViewConfigurationState', 'UIViewController', 'UIViewPrintFormatter', 'UIViewPropertyAnimator', 'UIVisualEffect', 'UIVisualEffectView', 'UIWebView', 'UIWindow', 'UIWindowScene', 'UIWindowSceneDestructionRequestOptions', 'UNCalendarNotificationTrigger', 'UNLocationNotificationTrigger', 'UNMutableNotificationContent', 'UNNotification', 'UNNotificationAction', 'UNNotificationAttachment', 'UNNotificationCategory', 'UNNotificationContent', 'UNNotificationRequest', 'UNNotificationResponse', 'UNNotificationServiceExtension', 'UNNotificationSettings', 'UNNotificationSound', 'UNNotificationTrigger', 'UNPushNotificationTrigger', 'UNTextInputNotificationAction', 'UNTextInputNotificationResponse', 'UNTimeIntervalNotificationTrigger', 'UNUserNotificationCenter', 'UTType', 'VNBarcodeObservation', 'VNCircle', 'VNClassificationObservation', 'VNClassifyImageRequest', 'VNContour', 'VNContoursObservation', 'VNCoreMLFeatureValueObservation', 'VNCoreMLModel', 'VNCoreMLRequest', 'VNDetectBarcodesRequest', 'VNDetectContoursRequest', 'VNDetectFaceCaptureQualityRequest', 'VNDetectFaceLandmarksRequest', 'VNDetectFaceRectanglesRequest', 'VNDetectHorizonRequest', 'VNDetectHumanBodyPoseRequest', 'VNDetectHumanHandPoseRequest', 'VNDetectHumanRectanglesRequest', 'VNDetectRectanglesRequest', 'VNDetectTextRectanglesRequest', 'VNDetectTrajectoriesRequest', 'VNDetectedObjectObservation', 'VNDetectedPoint', 'VNDocumentCameraScan', 'VNDocumentCameraViewController', 'VNFaceLandmarkRegion', 'VNFaceLandmarkRegion2D', 'VNFaceLandmarks', 'VNFaceLandmarks2D', 'VNFaceObservation', 'VNFeaturePrintObservation', 'VNGenerateAttentionBasedSaliencyImageRequest', 'VNGenerateImageFeaturePrintRequest', 'VNGenerateObjectnessBasedSaliencyImageRequest', 'VNGenerateOpticalFlowRequest', 'VNGeometryUtils', 'VNHomographicImageRegistrationRequest', 'VNHorizonObservation', 'VNHumanBodyPoseObservation', 'VNHumanHandPoseObservation', 'VNImageAlignmentObservation', 'VNImageBasedRequest', 'VNImageHomographicAlignmentObservation', 'VNImageRegistrationRequest', 'VNImageRequestHandler', 'VNImageTranslationAlignmentObservation', 'VNObservation', 'VNPixelBufferObservation', 'VNPoint', 'VNRecognizeAnimalsRequest', 'VNRecognizeTextRequest', 'VNRecognizedObjectObservation', 'VNRecognizedPoint', 'VNRecognizedPointsObservation', 'VNRecognizedText', 'VNRecognizedTextObservation', 'VNRectangleObservation', 'VNRequest', 'VNSaliencyImageObservation', 'VNSequenceRequestHandler', 'VNStatefulRequest', 'VNTargetedImageRequest', 'VNTextObservation', 'VNTrackObjectRequest', 'VNTrackRectangleRequest', 'VNTrackingRequest', 'VNTrajectoryObservation', 'VNTranslationalImageRegistrationRequest', 'VNVector', 'VNVideoProcessor', 'VNVideoProcessorCadence', 'VNVideoProcessorFrameRateCadence', 'VNVideoProcessorRequestProcessingOptions', 'VNVideoProcessorTimeIntervalCadence', 'VSAccountApplicationProvider', 'VSAccountManager', 'VSAccountManagerResult', 'VSAccountMetadata', 'VSAccountMetadataRequest', 'VSAccountProviderResponse', 'VSSubscription', 'VSSubscriptionRegistrationCenter', 'WCSession', 'WCSessionFile', 'WCSessionFileTransfer', 'WCSessionUserInfoTransfer', 'WKBackForwardList', 'WKBackForwardListItem', 'WKContentRuleList', 'WKContentRuleListStore', 'WKContentWorld', 'WKContextMenuElementInfo', 'WKFindConfiguration', 'WKFindResult', 'WKFrameInfo', 'WKHTTPCookieStore', 'WKNavigation', 'WKNavigationAction', 'WKNavigationResponse', 'WKOpenPanelParameters', 'WKPDFConfiguration', 'WKPreferences', 'WKPreviewElementInfo', 'WKProcessPool', 'WKScriptMessage', 'WKSecurityOrigin', 'WKSnapshotConfiguration', 'WKUserContentController', 'WKUserScript', 'WKWebView', 'WKWebViewConfiguration', 'WKWebpagePreferences', 'WKWebsiteDataRecord', 'WKWebsiteDataStore', 'WKWindowFeatures', '__EntityAccessibilityWrapper'}
+COCOA_PROTOCOLS = {'ABNewPersonViewControllerDelegate', 'ABPeoplePickerNavigationControllerDelegate', 'ABPersonViewControllerDelegate', 'ABUnknownPersonViewControllerDelegate', 'ADActionViewControllerChildInterface', 'ADActionViewControllerInterface', 'ADBannerViewDelegate', 'ADInterstitialAdDelegate', 'AEAssessmentSessionDelegate', 'ARAnchorCopying', 'ARCoachingOverlayViewDelegate', 'ARSCNViewDelegate', 'ARSKViewDelegate', 'ARSessionDelegate', 'ARSessionObserver', 'ARSessionProviding', 'ARTrackable', 'ASAccountAuthenticationModificationControllerDelegate', 'ASAccountAuthenticationModificationControllerPresentationContextProviding', 'ASAuthorizationControllerDelegate', 'ASAuthorizationControllerPresentationContextProviding', 'ASAuthorizationCredential', 'ASAuthorizationProvider', 'ASAuthorizationProviderExtensionAuthorizationRequestHandler', 'ASWebAuthenticationPresentationContextProviding', 'ASWebAuthenticationSessionRequestDelegate', 'ASWebAuthenticationSessionWebBrowserSessionHandling', 'AUAudioUnitFactory', 'AVAssetDownloadDelegate', 'AVAssetResourceLoaderDelegate', 'AVAssetWriterDelegate', 'AVAsynchronousKeyValueLoading', 'AVCaptureAudioDataOutputSampleBufferDelegate', 'AVCaptureDataOutputSynchronizerDelegate', 'AVCaptureDepthDataOutputDelegate', 'AVCaptureFileOutputDelegate', 'AVCaptureFileOutputRecordingDelegate', 'AVCaptureMetadataOutputObjectsDelegate', 'AVCapturePhotoCaptureDelegate', 'AVCapturePhotoFileDataRepresentationCustomizer', 'AVCaptureVideoDataOutputSampleBufferDelegate', 'AVContentKeyRecipient', 'AVContentKeySessionDelegate', 'AVFragmentMinding', 'AVPictureInPictureControllerDelegate', 'AVPlayerItemLegibleOutputPushDelegate', 'AVPlayerItemMetadataCollectorPushDelegate', 'AVPlayerItemMetadataOutputPushDelegate', 'AVPlayerItemOutputPullDelegate', 'AVPlayerItemOutputPushDelegate', 'AVPlayerViewControllerDelegate', 'AVQueuedSampleBufferRendering', 'AVRoutePickerViewDelegate', 'AVVideoCompositing', 'AVVideoCompositionInstruction', 'AVVideoCompositionValidationHandling', 'AXCustomContentProvider', 'CAAction', 'CAAnimationDelegate', 'CALayerDelegate', 'CAMediaTiming', 'CAMetalDrawable', 'CBCentralManagerDelegate', 'CBPeripheralDelegate', 'CBPeripheralManagerDelegate', 'CHHapticAdvancedPatternPlayer', 'CHHapticDeviceCapability', 'CHHapticParameterAttributes', 'CHHapticPatternPlayer', 'CIAccordionFoldTransition', 'CIAffineClamp', 'CIAffineTile', 'CIAreaAverage', 'CIAreaHistogram', 'CIAreaMaximum', 'CIAreaMaximumAlpha', 'CIAreaMinMax', 'CIAreaMinMaxRed', 'CIAreaMinimum', 'CIAreaMinimumAlpha', 'CIAreaReductionFilter', 'CIAttributedTextImageGenerator', 'CIAztecCodeGenerator', 'CIBarcodeGenerator', 'CIBarsSwipeTransition', 'CIBicubicScaleTransform', 'CIBlendWithMask', 'CIBloom', 'CIBokehBlur', 'CIBoxBlur', 'CIBumpDistortion', 'CIBumpDistortionLinear', 'CICMYKHalftone', 'CICheckerboardGenerator', 'CICircleSplashDistortion', 'CICircularScreen', 'CICircularWrap', 'CICode128BarcodeGenerator', 'CIColorAbsoluteDifference', 'CIColorClamp', 'CIColorControls', 'CIColorCrossPolynomial', 'CIColorCube', 'CIColorCubeWithColorSpace', 'CIColorCubesMixedWithMask', 'CIColorCurves', 'CIColorInvert', 'CIColorMap', 'CIColorMatrix', 'CIColorMonochrome', 'CIColorPolynomial', 'CIColorPosterize', 'CIColorThreshold', 'CIColorThresholdOtsu', 'CIColumnAverage', 'CIComicEffect', 'CICompositeOperation', 'CIConvolution', 'CICopyMachineTransition', 'CICoreMLModel', 'CICrystallize', 'CIDepthOfField', 'CIDepthToDisparity', 'CIDiscBlur', 'CIDisintegrateWithMaskTransition', 'CIDisparityToDepth', 'CIDisplacementDistortion', 'CIDissolveTransition', 'CIDither', 'CIDocumentEnhancer', 'CIDotScreen', 'CIDroste', 'CIEdgePreserveUpsample', 'CIEdgeWork', 'CIEdges', 'CIEightfoldReflectedTile', 'CIExposureAdjust', 'CIFalseColor', 'CIFilter', 'CIFilterConstructor', 'CIFlashTransition', 'CIFourCoordinateGeometryFilter', 'CIFourfoldReflectedTile', 'CIFourfoldRotatedTile', 'CIFourfoldTranslatedTile', 'CIGaborGradients', 'CIGammaAdjust', 'CIGaussianBlur', 'CIGaussianGradient', 'CIGlassDistortion', 'CIGlassLozenge', 'CIGlideReflectedTile', 'CIGloom', 'CIHatchedScreen', 'CIHeightFieldFromMask', 'CIHexagonalPixellate', 'CIHighlightShadowAdjust', 'CIHistogramDisplay', 'CIHoleDistortion', 'CIHueAdjust', 'CIHueSaturationValueGradient', 'CIImageProcessorInput', 'CIImageProcessorOutput', 'CIKMeans', 'CIKaleidoscope', 'CIKeystoneCorrectionCombined', 'CIKeystoneCorrectionHorizontal', 'CIKeystoneCorrectionVertical', 'CILabDeltaE', 'CILanczosScaleTransform', 'CILenticularHaloGenerator', 'CILightTunnel', 'CILineOverlay', 'CILineScreen', 'CILinearGradient', 'CILinearToSRGBToneCurve', 'CIMaskToAlpha', 'CIMaskedVariableBlur', 'CIMaximumComponent', 'CIMedian', 'CIMeshGenerator', 'CIMinimumComponent', 'CIMix', 'CIModTransition', 'CIMorphologyGradient', 'CIMorphologyMaximum', 'CIMorphologyMinimum', 'CIMorphologyRectangleMaximum', 'CIMorphologyRectangleMinimum', 'CIMotionBlur', 'CINinePartStretched', 'CINinePartTiled', 'CINoiseReduction', 'CIOpTile', 'CIPDF417BarcodeGenerator', 'CIPageCurlTransition', 'CIPageCurlWithShadowTransition', 'CIPaletteCentroid', 'CIPalettize', 'CIParallelogramTile', 'CIPerspectiveCorrection', 'CIPerspectiveRotate', 'CIPerspectiveTile', 'CIPerspectiveTransform', 'CIPerspectiveTransformWithExtent', 'CIPhotoEffect', 'CIPinchDistortion', 'CIPixellate', 'CIPlugInRegistration', 'CIPointillize', 'CIQRCodeGenerator', 'CIRadialGradient', 'CIRandomGenerator', 'CIRippleTransition', 'CIRoundedRectangleGenerator', 'CIRowAverage', 'CISRGBToneCurveToLinear', 'CISaliencyMap', 'CISepiaTone', 'CIShadedMaterial', 'CISharpenLuminance', 'CISixfoldReflectedTile', 'CISixfoldRotatedTile', 'CISmoothLinearGradient', 'CISpotColor', 'CISpotLight', 'CIStarShineGenerator', 'CIStraighten', 'CIStretchCrop', 'CIStripesGenerator', 'CISunbeamsGenerator', 'CISwipeTransition', 'CITemperatureAndTint', 'CITextImageGenerator', 'CIThermal', 'CIToneCurve', 'CITorusLensDistortion', 'CITransitionFilter', 'CITriangleKaleidoscope', 'CITriangleTile', 'CITwelvefoldReflectedTile', 'CITwirlDistortion', 'CIUnsharpMask', 'CIVibrance', 'CIVignette', 'CIVignetteEffect', 'CIVortexDistortion', 'CIWhitePointAdjust', 'CIXRay', 'CIZoomBlur', 'CKRecordKeyValueSetting', 'CKRecordValue', 'CLKComplicationDataSource', 'CLLocationManagerDelegate', 'CLSContextProvider', 'CLSDataStoreDelegate', 'CMFallDetectionDelegate', 'CMHeadphoneMotionManagerDelegate', 'CNChangeHistoryEventVisitor', 'CNContactPickerDelegate', 'CNContactViewControllerDelegate', 'CNKeyDescriptor', 'CPApplicationDelegate', 'CPBarButtonProviding', 'CPInterfaceControllerDelegate', 'CPListTemplateDelegate', 'CPListTemplateItem', 'CPMapTemplateDelegate', 'CPNowPlayingTemplateObserver', 'CPPointOfInterestTemplateDelegate', 'CPSearchTemplateDelegate', 'CPSelectableListItem', 'CPSessionConfigurationDelegate', 'CPTabBarTemplateDelegate', 'CPTemplateApplicationDashboardSceneDelegate', 'CPTemplateApplicationSceneDelegate', 'CSSearchableIndexDelegate', 'CTSubscriberDelegate', 'CTTelephonyNetworkInfoDelegate', 'CXCallDirectoryExtensionContextDelegate', 'CXCallObserverDelegate', 'CXProviderDelegate', 'EAAccessoryDelegate', 'EAGLDrawable', 'EAWiFiUnconfiguredAccessoryBrowserDelegate', 'EKCalendarChooserDelegate', 'EKEventEditViewDelegate', 'EKEventViewDelegate', 'GCDevice', 'GKAchievementViewControllerDelegate', 'GKAgentDelegate', 'GKChallengeEventHandlerDelegate', 'GKChallengeListener', 'GKFriendRequestComposeViewControllerDelegate', 'GKGameCenterControllerDelegate', 'GKGameModel', 'GKGameModelPlayer', 'GKGameModelUpdate', 'GKGameSessionEventListener', 'GKGameSessionSharingViewControllerDelegate', 'GKInviteEventListener', 'GKLeaderboardViewControllerDelegate', 'GKLocalPlayerListener', 'GKMatchDelegate', 'GKMatchmakerViewControllerDelegate', 'GKPeerPickerControllerDelegate', 'GKRandom', 'GKSavedGameListener', 'GKSceneRootNodeType', 'GKSessionDelegate', 'GKStrategist', 'GKTurnBasedEventListener', 'GKTurnBasedMatchmakerViewControllerDelegate', 'GKVoiceChatClient', 'GLKNamedEffect', 'GLKViewControllerDelegate', 'GLKViewDelegate', 'HKLiveWorkoutBuilderDelegate', 'HKWorkoutSessionDelegate', 'HMAccessoryBrowserDelegate', 'HMAccessoryDelegate', 'HMCameraSnapshotControlDelegate', 'HMCameraStreamControlDelegate', 'HMHomeDelegate', 'HMHomeManagerDelegate', 'HMNetworkConfigurationProfileDelegate', 'ICCameraDeviceDelegate', 'ICCameraDeviceDownloadDelegate', 'ICDeviceBrowserDelegate', 'ICDeviceDelegate', 'ICScannerDeviceDelegate', 'ILMessageFilterQueryHandling', 'INActivateCarSignalIntentHandling', 'INAddMediaIntentHandling', 'INAddTasksIntentHandling', 'INAppendToNoteIntentHandling', 'INBookRestaurantReservationIntentHandling', 'INCallsDomainHandling', 'INCancelRideIntentHandling', 'INCancelWorkoutIntentHandling', 'INCarCommandsDomainHandling', 'INCarPlayDomainHandling', 'INCreateNoteIntentHandling', 'INCreateTaskListIntentHandling', 'INDeleteTasksIntentHandling', 'INEndWorkoutIntentHandling', 'INGetAvailableRestaurantReservationBookingDefaultsIntentHandling', 'INGetAvailableRestaurantReservationBookingsIntentHandling', 'INGetCarLockStatusIntentHandling', 'INGetCarPowerLevelStatusIntentHandling', 'INGetCarPowerLevelStatusIntentResponseObserver', 'INGetRestaurantGuestIntentHandling', 'INGetRideStatusIntentHandling', 'INGetRideStatusIntentResponseObserver', 'INGetUserCurrentRestaurantReservationBookingsIntentHandling', 'INGetVisualCodeIntentHandling', 'INIntentHandlerProviding', 'INListCarsIntentHandling', 'INListRideOptionsIntentHandling', 'INMessagesDomainHandling', 'INNotebookDomainHandling', 'INPauseWorkoutIntentHandling', 'INPayBillIntentHandling', 'INPaymentsDomainHandling', 'INPhotosDomainHandling', 'INPlayMediaIntentHandling', 'INRadioDomainHandling', 'INRequestPaymentIntentHandling', 'INRequestRideIntentHandling', 'INResumeWorkoutIntentHandling', 'INRidesharingDomainHandling', 'INSaveProfileInCarIntentHandling', 'INSearchCallHistoryIntentHandling', 'INSearchForAccountsIntentHandling', 'INSearchForBillsIntentHandling', 'INSearchForMediaIntentHandling', 'INSearchForMessagesIntentHandling', 'INSearchForNotebookItemsIntentHandling', 'INSearchForPhotosIntentHandling', 'INSendMessageIntentHandling', 'INSendPaymentIntentHandling', 'INSendRideFeedbackIntentHandling', 'INSetAudioSourceInCarIntentHandling', 'INSetCarLockStatusIntentHandling', 'INSetClimateSettingsInCarIntentHandling', 'INSetDefrosterSettingsInCarIntentHandling', 'INSetMessageAttributeIntentHandling', 'INSetProfileInCarIntentHandling', 'INSetRadioStationIntentHandling', 'INSetSeatSettingsInCarIntentHandling', 'INSetTaskAttributeIntentHandling', 'INSnoozeTasksIntentHandling', 'INSpeakable', 'INStartAudioCallIntentHandling', 'INStartCallIntentHandling', 'INStartPhotoPlaybackIntentHandling', 'INStartVideoCallIntentHandling', 'INStartWorkoutIntentHandling', 'INTransferMoneyIntentHandling', 'INUIAddVoiceShortcutButtonDelegate', 'INUIAddVoiceShortcutViewControllerDelegate', 'INUIEditVoiceShortcutViewControllerDelegate', 'INUIHostedViewControlling', 'INUIHostedViewSiriProviding', 'INUpdateMediaAffinityIntentHandling', 'INVisualCodeDomainHandling', 'INWorkoutsDomainHandling', 'JSExport', 'MCAdvertiserAssistantDelegate', 'MCBrowserViewControllerDelegate', 'MCNearbyServiceAdvertiserDelegate', 'MCNearbyServiceBrowserDelegate', 'MCSessionDelegate', 'MDLAssetResolver', 'MDLComponent', 'MDLJointAnimation', 'MDLLightProbeIrradianceDataSource', 'MDLMeshBuffer', 'MDLMeshBufferAllocator', 'MDLMeshBufferZone', 'MDLNamed', 'MDLObjectContainerComponent', 'MDLTransformComponent', 'MDLTransformOp', 'MFMailComposeViewControllerDelegate', 'MFMessageComposeViewControllerDelegate', 'MIDICIProfileResponderDelegate', 'MKAnnotation', 'MKGeoJSONObject', 'MKLocalSearchCompleterDelegate', 'MKMapViewDelegate', 'MKOverlay', 'MKReverseGeocoderDelegate', 'MLBatchProvider', 'MLCustomLayer', 'MLCustomModel', 'MLFeatureProvider', 'MLWritable', 'MPMediaPickerControllerDelegate', 'MPMediaPlayback', 'MPNowPlayingSessionDelegate', 'MPPlayableContentDataSource', 'MPPlayableContentDelegate', 'MPSystemMusicPlayerController', 'MSAuthenticationPresentationContext', 'MSMessagesAppTranscriptPresentation', 'MSStickerBrowserViewDataSource', 'MTKViewDelegate', 'MTLAccelerationStructure', 'MTLAccelerationStructureCommandEncoder', 'MTLArgumentEncoder', 'MTLBinaryArchive', 'MTLBlitCommandEncoder', 'MTLBuffer', 'MTLCaptureScope', 'MTLCommandBuffer', 'MTLCommandBufferEncoderInfo', 'MTLCommandEncoder', 'MTLCommandQueue', 'MTLComputeCommandEncoder', 'MTLComputePipelineState', 'MTLCounter', 'MTLCounterSampleBuffer', 'MTLCounterSet', 'MTLDepthStencilState', 'MTLDevice', 'MTLDrawable', 'MTLDynamicLibrary', 'MTLEvent', 'MTLFence', 'MTLFunction', 'MTLFunctionHandle', 'MTLFunctionLog', 'MTLFunctionLogDebugLocation', 'MTLHeap', 'MTLIndirectCommandBuffer', 'MTLIndirectComputeCommand', 'MTLIndirectComputeCommandEncoder', 'MTLIndirectRenderCommand', 'MTLIndirectRenderCommandEncoder', 'MTLIntersectionFunctionTable', 'MTLLibrary', 'MTLLogContainer', 'MTLParallelRenderCommandEncoder', 'MTLRasterizationRateMap', 'MTLRenderCommandEncoder', 'MTLRenderPipelineState', 'MTLResource', 'MTLResourceStateCommandEncoder', 'MTLSamplerState', 'MTLSharedEvent', 'MTLTexture', 'MTLVisibleFunctionTable', 'MXMetricManagerSubscriber', 'MyClassJavaScriptMethods', 'NCWidgetProviding', 'NEAppPushDelegate', 'NFCFeliCaTag', 'NFCISO15693Tag', 'NFCISO7816Tag', 'NFCMiFareTag', 'NFCNDEFReaderSessionDelegate', 'NFCNDEFTag', 'NFCReaderSession', 'NFCReaderSessionDelegate', 'NFCTag', 'NFCTagReaderSessionDelegate', 'NFCVASReaderSessionDelegate', 'NISessionDelegate', 'NSCacheDelegate', 'NSCoding', 'NSCollectionLayoutContainer', 'NSCollectionLayoutEnvironment', 'NSCollectionLayoutVisibleItem', 'NSCopying', 'NSDecimalNumberBehaviors', 'NSDiscardableContent', 'NSExtensionRequestHandling', 'NSFastEnumeration', 'NSFetchRequestResult', 'NSFetchedResultsControllerDelegate', 'NSFetchedResultsSectionInfo', 'NSFileManagerDelegate', 'NSFilePresenter', 'NSFileProviderChangeObserver', 'NSFileProviderEnumerationObserver', 'NSFileProviderEnumerator', 'NSFileProviderItem', 'NSFileProviderServiceSource', 'NSItemProviderReading', 'NSItemProviderWriting', 'NSKeyedArchiverDelegate', 'NSKeyedUnarchiverDelegate', 'NSLayoutManagerDelegate', 'NSLocking', 'NSMachPortDelegate', 'NSMetadataQueryDelegate', 'NSMutableCopying', 'NSNetServiceBrowserDelegate', 'NSNetServiceDelegate', 'NSPortDelegate', 'NSProgressReporting', 'NSSecureCoding', 'NSStreamDelegate', 'NSTextAttachmentContainer', 'NSTextLayoutOrientationProvider', 'NSTextStorageDelegate', 'NSURLAuthenticationChallengeSender', 'NSURLConnectionDataDelegate', 'NSURLConnectionDelegate', 'NSURLConnectionDownloadDelegate', 'NSURLProtocolClient', 'NSURLSessionDataDelegate', 'NSURLSessionDelegate', 'NSURLSessionDownloadDelegate', 'NSURLSessionStreamDelegate', 'NSURLSessionTaskDelegate', 'NSURLSessionWebSocketDelegate', 'NSUserActivityDelegate', 'NSXMLParserDelegate', 'NSXPCListenerDelegate', 'NSXPCProxyCreating', 'NWTCPConnectionAuthenticationDelegate', 'OSLogEntryFromProcess', 'OSLogEntryWithPayload', 'PDFDocumentDelegate', 'PDFViewDelegate', 'PHContentEditingController', 'PHLivePhotoFrame', 'PHLivePhotoViewDelegate', 'PHPhotoLibraryAvailabilityObserver', 'PHPhotoLibraryChangeObserver', 'PHPickerViewControllerDelegate', 'PKAddPassesViewControllerDelegate', 'PKAddPaymentPassViewControllerDelegate', 'PKAddSecureElementPassViewControllerDelegate', 'PKCanvasViewDelegate', 'PKDisbursementAuthorizationControllerDelegate', 'PKIssuerProvisioningExtensionAuthorizationProviding', 'PKPaymentAuthorizationControllerDelegate', 'PKPaymentAuthorizationViewControllerDelegate', 'PKPaymentInformationRequestHandling', 'PKPushRegistryDelegate', 'PKToolPickerObserver', 'PreviewDisplaying', 'QLPreviewControllerDataSource', 'QLPreviewControllerDelegate', 'QLPreviewItem', 'QLPreviewingController', 'RPBroadcastActivityControllerDelegate', 'RPBroadcastActivityViewControllerDelegate', 'RPBroadcastControllerDelegate', 'RPPreviewViewControllerDelegate', 'RPScreenRecorderDelegate', 'SCNActionable', 'SCNAnimatable', 'SCNAnimation', 'SCNAvoidOccluderConstraintDelegate', 'SCNBoundingVolume', 'SCNBufferStream', 'SCNCameraControlConfiguration', 'SCNCameraControllerDelegate', 'SCNNodeRendererDelegate', 'SCNPhysicsContactDelegate', 'SCNProgramDelegate', 'SCNSceneExportDelegate', 'SCNSceneRenderer', 'SCNSceneRendererDelegate', 'SCNShadable', 'SCNTechniqueSupport', 'SFSafariViewControllerDelegate', 'SFSpeechRecognitionTaskDelegate', 'SFSpeechRecognizerDelegate', 'SKCloudServiceSetupViewControllerDelegate', 'SKOverlayDelegate', 'SKPaymentQueueDelegate', 'SKPaymentTransactionObserver', 'SKPhysicsContactDelegate', 'SKProductsRequestDelegate', 'SKRequestDelegate', 'SKSceneDelegate', 'SKStoreProductViewControllerDelegate', 'SKViewDelegate', 'SKWarpable', 'SNRequest', 'SNResult', 'SNResultsObserving', 'SRSensorReaderDelegate', 'TKSmartCardTokenDriverDelegate', 'TKSmartCardUserInteractionDelegate', 'TKTokenDelegate', 'TKTokenDriverDelegate', 'TKTokenSessionDelegate', 'UIAccelerometerDelegate', 'UIAccessibilityContainerDataTable', 'UIAccessibilityContainerDataTableCell', 'UIAccessibilityContentSizeCategoryImageAdjusting', 'UIAccessibilityIdentification', 'UIAccessibilityReadingContent', 'UIActionSheetDelegate', 'UIActivityItemSource', 'UIActivityItemsConfigurationReading', 'UIAdaptivePresentationControllerDelegate', 'UIAlertViewDelegate', 'UIAppearance', 'UIAppearanceContainer', 'UIApplicationDelegate', 'UIBarPositioning', 'UIBarPositioningDelegate', 'UICloudSharingControllerDelegate', 'UICollectionViewDataSource', 'UICollectionViewDataSourcePrefetching', 'UICollectionViewDelegate', 'UICollectionViewDelegateFlowLayout', 'UICollectionViewDragDelegate', 'UICollectionViewDropCoordinator', 'UICollectionViewDropDelegate', 'UICollectionViewDropItem', 'UICollectionViewDropPlaceholderContext', 'UICollisionBehaviorDelegate', 'UIColorPickerViewControllerDelegate', 'UIConfigurationState', 'UIContentConfiguration', 'UIContentContainer', 'UIContentSizeCategoryAdjusting', 'UIContentView', 'UIContextMenuInteractionAnimating', 'UIContextMenuInteractionCommitAnimating', 'UIContextMenuInteractionDelegate', 'UICoordinateSpace', 'UIDataSourceModelAssociation', 'UIDataSourceTranslating', 'UIDocumentBrowserViewControllerDelegate', 'UIDocumentInteractionControllerDelegate', 'UIDocumentMenuDelegate', 'UIDocumentPickerDelegate', 'UIDragAnimating', 'UIDragDropSession', 'UIDragInteractionDelegate', 'UIDragSession', 'UIDropInteractionDelegate', 'UIDropSession', 'UIDynamicAnimatorDelegate', 'UIDynamicItem', 'UIFocusAnimationContext', 'UIFocusDebuggerOutput', 'UIFocusEnvironment', 'UIFocusItem', 'UIFocusItemContainer', 'UIFocusItemScrollableContainer', 'UIFontPickerViewControllerDelegate', 'UIGestureRecognizerDelegate', 'UIGuidedAccessRestrictionDelegate', 'UIImageConfiguration', 'UIImagePickerControllerDelegate', 'UIIndirectScribbleInteractionDelegate', 'UIInputViewAudioFeedback', 'UIInteraction', 'UIItemProviderPresentationSizeProviding', 'UIKeyInput', 'UILargeContentViewerInteractionDelegate', 'UILargeContentViewerItem', 'UILayoutSupport', 'UIMenuBuilder', 'UINavigationBarDelegate', 'UINavigationControllerDelegate', 'UIObjectRestoration', 'UIPageViewControllerDataSource', 'UIPageViewControllerDelegate', 'UIPasteConfigurationSupporting', 'UIPencilInteractionDelegate', 'UIPickerViewAccessibilityDelegate', 'UIPickerViewDataSource', 'UIPickerViewDelegate', 'UIPointerInteractionAnimating', 'UIPointerInteractionDelegate', 'UIPopoverBackgroundViewMethods', 'UIPopoverControllerDelegate', 'UIPopoverPresentationControllerDelegate', 'UIPreviewActionItem', 'UIPreviewInteractionDelegate', 'UIPrintInteractionControllerDelegate', 'UIPrinterPickerControllerDelegate', 'UIResponderStandardEditActions', 'UISceneDelegate', 'UIScreenshotServiceDelegate', 'UIScribbleInteractionDelegate', 'UIScrollViewAccessibilityDelegate', 'UIScrollViewDelegate', 'UISearchBarDelegate', 'UISearchControllerDelegate', 'UISearchDisplayDelegate', 'UISearchResultsUpdating', 'UISearchSuggestion', 'UISearchTextFieldDelegate', 'UISearchTextFieldPasteItem', 'UISplitViewControllerDelegate', 'UISpringLoadedInteractionBehavior', 'UISpringLoadedInteractionContext', 'UISpringLoadedInteractionEffect', 'UISpringLoadedInteractionSupporting', 'UIStateRestoring', 'UITabBarControllerDelegate', 'UITabBarDelegate', 'UITableViewDataSource', 'UITableViewDataSourcePrefetching', 'UITableViewDelegate', 'UITableViewDragDelegate', 'UITableViewDropCoordinator', 'UITableViewDropDelegate', 'UITableViewDropItem', 'UITableViewDropPlaceholderContext', 'UITextDocumentProxy', 'UITextDragDelegate', 'UITextDragRequest', 'UITextDraggable', 'UITextDropDelegate', 'UITextDropRequest', 'UITextDroppable', 'UITextFieldDelegate', 'UITextFormattingCoordinatorDelegate', 'UITextInput', 'UITextInputDelegate', 'UITextInputTokenizer', 'UITextInputTraits', 'UITextInteractionDelegate', 'UITextPasteConfigurationSupporting', 'UITextPasteDelegate', 'UITextPasteItem', 'UITextSelecting', 'UITextViewDelegate', 'UITimingCurveProvider', 'UIToolbarDelegate', 'UITraitEnvironment', 'UIUserActivityRestoring', 'UIVideoEditorControllerDelegate', 'UIViewAnimating', 'UIViewControllerAnimatedTransitioning', 'UIViewControllerContextTransitioning', 'UIViewControllerInteractiveTransitioning', 'UIViewControllerPreviewing', 'UIViewControllerPreviewingDelegate', 'UIViewControllerRestoration', 'UIViewControllerTransitionCoordinator', 'UIViewControllerTransitionCoordinatorContext', 'UIViewControllerTransitioningDelegate', 'UIViewImplicitlyAnimating', 'UIWebViewDelegate', 'UIWindowSceneDelegate', 'UNNotificationContentExtension', 'UNUserNotificationCenterDelegate', 'VNDocumentCameraViewControllerDelegate', 'VNFaceObservationAccepting', 'VNRequestProgressProviding', 'VNRequestRevisionProviding', 'VSAccountManagerDelegate', 'WCSessionDelegate', 'WKHTTPCookieStoreObserver', 'WKNavigationDelegate', 'WKPreviewActionItem', 'WKScriptMessageHandler', 'WKScriptMessageHandlerWithReply', 'WKUIDelegate', 'WKURLSchemeHandler', 'WKURLSchemeTask'}
+COCOA_PRIMITIVES = {'ACErrorCode', 'ALCcontext_struct', 'ALCdevice_struct', 'ALMXGlyphEntry', 'ALMXHeader', 'API_UNAVAILABLE', 'AUChannelInfo', 'AUDependentParameter', 'AUDistanceAttenuationData', 'AUHostIdentifier', 'AUHostVersionIdentifier', 'AUInputSamplesInOutputCallbackStruct', 'AUMIDIEvent', 'AUMIDIOutputCallbackStruct', 'AUNodeInteraction', 'AUNodeRenderCallback', 'AUNumVersion', 'AUParameterAutomationEvent', 'AUParameterEvent', 'AUParameterMIDIMapping', 'AUPreset', 'AUPresetEvent', 'AURecordedParameterEvent', 'AURenderCallbackStruct', 'AURenderEventHeader', 'AUSamplerBankPresetData', 'AUSamplerInstrumentData', 'AnchorPoint', 'AnchorPointTable', 'AnkrTable', 'AudioBalanceFade', 'AudioBuffer', 'AudioBufferList', 'AudioBytePacketTranslation', 'AudioChannelDescription', 'AudioChannelLayout', 'AudioClassDescription', 'AudioCodecMagicCookieInfo', 'AudioCodecPrimeInfo', 'AudioComponentDescription', 'AudioComponentPlugInInterface', 'AudioConverterPrimeInfo', 'AudioFileMarker', 'AudioFileMarkerList', 'AudioFilePacketTableInfo', 'AudioFileRegion', 'AudioFileRegionList', 'AudioFileTypeAndFormatID', 'AudioFile_SMPTE_Time', 'AudioFormatInfo', 'AudioFormatListItem', 'AudioFramePacketTranslation', 'AudioIndependentPacketTranslation', 'AudioOutputUnitMIDICallbacks', 'AudioOutputUnitStartAtTimeParams', 'AudioPacketDependencyInfoTranslation', 'AudioPacketRangeByteCountTranslation', 'AudioPacketRollDistanceTranslation', 'AudioPanningInfo', 'AudioQueueBuffer', 'AudioQueueChannelAssignment', 'AudioQueueLevelMeterState', 'AudioQueueParameterEvent', 'AudioStreamBasicDescription', 'AudioStreamPacketDescription', 'AudioTimeStamp', 'AudioUnitCocoaViewInfo', 'AudioUnitConnection', 'AudioUnitExternalBuffer', 'AudioUnitFrequencyResponseBin', 'AudioUnitMIDIControlMapping', 'AudioUnitMeterClipping', 'AudioUnitNodeConnection', 'AudioUnitOtherPluginDesc', 'AudioUnitParameter', 'AudioUnitParameterEvent', 'AudioUnitParameterHistoryInfo', 'AudioUnitParameterInfo', 'AudioUnitParameterNameInfo', 'AudioUnitParameterStringFromValue', 'AudioUnitParameterValueFromString', 'AudioUnitParameterValueName', 'AudioUnitParameterValueTranslation', 'AudioUnitPresetMAS_SettingData', 'AudioUnitPresetMAS_Settings', 'AudioUnitProperty', 'AudioUnitRenderContext', 'AudioValueRange', 'AudioValueTranslation', 'AuthorizationOpaqueRef', 'BslnFormat0Part', 'BslnFormat1Part', 'BslnFormat2Part', 'BslnFormat3Part', 'BslnTable', 'CABarBeatTime', 'CAFAudioDescription', 'CAFChunkHeader', 'CAFDataChunk', 'CAFFileHeader', 'CAFInfoStrings', 'CAFInstrumentChunk', 'CAFMarker', 'CAFMarkerChunk', 'CAFOverviewChunk', 'CAFOverviewSample', 'CAFPacketTableHeader', 'CAFPeakChunk', 'CAFPositionPeak', 'CAFRegion', 'CAFRegionChunk', 'CAFStringID', 'CAFStrings', 'CAFUMIDChunk', 'CAF_SMPTE_Time', 'CAF_UUID_ChunkHeader', 'CA_BOXABLE', 'CFHostClientContext', 'CFNetServiceClientContext', 'CF_BRIDGED_MUTABLE_TYPE', 'CF_BRIDGED_TYPE', 'CF_RELATED_TYPE', 'CGAffineTransform', 'CGDataConsumerCallbacks', 'CGDataProviderDirectCallbacks', 'CGDataProviderSequentialCallbacks', 'CGFunctionCallbacks', 'CGPDFArray', 'CGPDFContentStream', 'CGPDFDictionary', 'CGPDFObject', 'CGPDFOperatorTable', 'CGPDFScanner', 'CGPDFStream', 'CGPDFString', 'CGPathElement', 'CGPatternCallbacks', 'CGVector', 'CG_BOXABLE', 'CLLocationCoordinate2D', 'CM_BRIDGED_TYPE', 'CTParagraphStyleSetting', 'CVPlanarComponentInfo', 'CVPlanarPixelBufferInfo', 'CVPlanarPixelBufferInfo_YCbCrBiPlanar', 'CVPlanarPixelBufferInfo_YCbCrPlanar', 'CVSMPTETime', 'CV_BRIDGED_TYPE', 'ComponentInstanceRecord', 'ExtendedAudioFormatInfo', 'ExtendedControlEvent', 'ExtendedNoteOnEvent', 'ExtendedTempoEvent', 'FontVariation', 'GCQuaternion', 'GKBox', 'GKQuad', 'GKTriangle', 'GLKEffectPropertyPrv', 'HostCallbackInfo', 'IIO_BRIDGED_TYPE', 'IUnknownVTbl', 'JustDirectionTable', 'JustPCAction', 'JustPCActionSubrecord', 'JustPCConditionalAddAction', 'JustPCDecompositionAction', 'JustPCDuctilityAction', 'JustPCGlyphRepeatAddAction', 'JustPostcompTable', 'JustTable', 'JustWidthDeltaEntry', 'JustWidthDeltaGroup', 'KernIndexArrayHeader', 'KernKerningPair', 'KernOffsetTable', 'KernOrderedListEntry', 'KernOrderedListHeader', 'KernSimpleArrayHeader', 'KernStateEntry', 'KernStateHeader', 'KernSubtableHeader', 'KernTableHeader', 'KernVersion0Header', 'KernVersion0SubtableHeader', 'KerxAnchorPointAction', 'KerxControlPointAction', 'KerxControlPointEntry', 'KerxControlPointHeader', 'KerxCoordinateAction', 'KerxIndexArrayHeader', 'KerxKerningPair', 'KerxOrderedListEntry', 'KerxOrderedListHeader', 'KerxSimpleArrayHeader', 'KerxStateEntry', 'KerxStateHeader', 'KerxSubtableHeader', 'KerxTableHeader', 'LcarCaretClassEntry', 'LcarCaretTable', 'LtagStringRange', 'LtagTable', 'MDL_CLASS_EXPORT', 'MIDICIDeviceIdentification', 'MIDIChannelMessage', 'MIDIControlTransform', 'MIDIDriverInterface', 'MIDIEventList', 'MIDIEventPacket', 'MIDIIOErrorNotification', 'MIDIMessage_128', 'MIDIMessage_64', 'MIDIMessage_96', 'MIDIMetaEvent', 'MIDINoteMessage', 'MIDINotification', 'MIDIObjectAddRemoveNotification', 'MIDIObjectPropertyChangeNotification', 'MIDIPacket', 'MIDIPacketList', 'MIDIRawData', 'MIDISysexSendRequest', 'MIDIThruConnectionEndpoint', 'MIDIThruConnectionParams', 'MIDITransform', 'MIDIValueMap', 'MPSDeviceOptions', 'MixerDistanceParams', 'MortChain', 'MortContextualSubtable', 'MortFeatureEntry', 'MortInsertionSubtable', 'MortLigatureSubtable', 'MortRearrangementSubtable', 'MortSubtable', 'MortSwashSubtable', 'MortTable', 'MorxChain', 'MorxContextualSubtable', 'MorxInsertionSubtable', 'MorxLigatureSubtable', 'MorxRearrangementSubtable', 'MorxSubtable', 'MorxTable', 'MusicDeviceNoteParams', 'MusicDeviceStdNoteParams', 'MusicEventUserData', 'MusicTrackLoopInfo', 'NoteParamsControlValue', 'OpaqueAudioComponent', 'OpaqueAudioComponentInstance', 'OpaqueAudioConverter', 'OpaqueAudioQueue', 'OpaqueAudioQueueProcessingTap', 'OpaqueAudioQueueTimeline', 'OpaqueExtAudioFile', 'OpaqueJSClass', 'OpaqueJSContext', 'OpaqueJSContextGroup', 'OpaqueJSPropertyNameAccumulator', 'OpaqueJSPropertyNameArray', 'OpaqueJSString', 'OpaqueJSValue', 'OpaqueMusicEventIterator', 'OpaqueMusicPlayer', 'OpaqueMusicSequence', 'OpaqueMusicTrack', 'OpbdSideValues', 'OpbdTable', 'ParameterEvent', 'PropLookupSegment', 'PropLookupSingle', 'PropTable', 'ROTAGlyphEntry', 'ROTAHeader', 'SCNMatrix4', 'SCNVector3', 'SCNVector4', 'SFNTLookupArrayHeader', 'SFNTLookupBinarySearchHeader', 'SFNTLookupSegment', 'SFNTLookupSegmentHeader', 'SFNTLookupSingle', 'SFNTLookupSingleHeader', 'SFNTLookupTable', 'SFNTLookupTrimmedArrayHeader', 'SFNTLookupVectorHeader', 'SMPTETime', 'STClassTable', 'STEntryOne', 'STEntryTwo', 'STEntryZero', 'STHeader', 'STXEntryOne', 'STXEntryTwo', 'STXEntryZero', 'STXHeader', 'ScheduledAudioFileRegion', 'ScheduledAudioSlice', 'SecKeychainAttribute', 'SecKeychainAttributeInfo', 'SecKeychainAttributeList', 'TrakTable', 'TrakTableData', 'TrakTableEntry', 'UIAccessibility', 'VTDecompressionOutputCallbackRecord', 'VTInt32Point', 'VTInt32Size', '_CFHTTPAuthentication', '_GLKMatrix2', '_GLKMatrix3', '_GLKMatrix4', '_GLKQuaternion', '_GLKVector2', '_GLKVector3', '_GLKVector4', '_GLKVertexAttributeParameters', '_MTLAxisAlignedBoundingBox', '_MTLPackedFloat3', '_MTLPackedFloat4x3', '_NSRange', '_NSZone', '__CFHTTPMessage', '__CFHost', '__CFNetDiagnostic', '__CFNetService', '__CFNetServiceBrowser', '__CFNetServiceMonitor', '__CFXMLNode', '__CFXMLParser', '__GLsync', '__SecAccess', '__SecCertificate', '__SecIdentity', '__SecKey', '__SecRandom', '__attribute__', 'gss_OID_desc_struct', 'gss_OID_set_desc_struct', 'gss_auth_identity', 'gss_buffer_desc_struct', 'gss_buffer_set_desc_struct', 'gss_channel_bindings_struct', 'gss_cred_id_t_desc_struct', 'gss_ctx_id_t_desc_struct', 'gss_iov_buffer_desc_struct', 'gss_krb5_cfx_keydata', 'gss_krb5_lucid_context_v1', 'gss_krb5_lucid_context_version', 'gss_krb5_lucid_key', 'gss_krb5_rfc1964_keydata', 'gss_name_t_desc_struct', 'opaqueCMBufferQueueTriggerToken', 'sfntCMapEncoding', 'sfntCMapExtendedSubHeader', 'sfntCMapHeader', 'sfntCMapSubHeader', 'sfntDescriptorHeader', 'sfntDirectory', 'sfntDirectoryEntry', 'sfntFeatureHeader', 'sfntFeatureName', 'sfntFontDescriptor', 'sfntFontFeatureSetting', 'sfntFontRunFeature', 'sfntInstance', 'sfntNameHeader', 'sfntNameRecord', 'sfntVariationAxis', 'sfntVariationHeader'}
 
 if __name__ == '__main__':  # pragma: no cover
     import os
     import re
 
-    FRAMEWORKS_PATH = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/'
+    FRAMEWORKS_PATH = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/'
     frameworks = os.listdir(FRAMEWORKS_PATH)
 
     all_interfaces = set()
@@ -35,10 +35,15 @@
         for f in headerFilenames:
             if not f.endswith('.h'):
                 continue
-
             headerFilePath = frameworkHeadersDir + f
-            with open(headerFilePath) as f:
-                content = f.read()
+                
+            try:
+                with open(headerFilePath, encoding='utf-8') as f:
+                    content = f.read()
+            except UnicodeDecodeError:
+                print("Decoding error for file: {0}".format(headerFilePath))
+                continue
+                
             res = re.findall(r'(?<=@interface )\w+', content)
             for r in res:
                 all_interfaces.add(r)
@@ -61,10 +66,10 @@
 
 
     print("ALL interfaces: \n")
-    print(all_interfaces)
+    print(sorted(list(all_interfaces)))
 
     print("\nALL protocols: \n")
-    print(all_protocols)
+    print(sorted(list(all_protocols)))
 
     print("\nALL primitives: \n")
-    print(all_primitives)
+    print(sorted(list(all_primitives)))
diff --git a/pygments/lexers/_mapping.py b/pygments/lexers/_mapping.py
index 298e64c816..3c5b6fd01a 100644
--- a/pygments/lexers/_mapping.py
+++ b/pygments/lexers/_mapping.py
@@ -78,6 +78,7 @@
     'CapDLLexer': ('pygments.lexers.esoteric', 'CapDL', ('capdl',), ('*.cdl',), ()),
     'CapnProtoLexer': ('pygments.lexers.capnproto', "Cap'n Proto", ('capnp',), ('*.capnp',), ()),
     'CbmBasicV2Lexer': ('pygments.lexers.basic', 'CBM BASIC V2', ('cbmbas',), ('*.bas',), ()),
+    'CddlLexer': ('pygments.lexers.cddl', 'CDDL', ('cddl',), ('*.cddl',), ('text/x-cddl',)),
     'CeylonLexer': ('pygments.lexers.jvm', 'Ceylon', ('ceylon',), ('*.ceylon',), ('text/x-ceylon',)),
     'Cfengine3Lexer': ('pygments.lexers.configs', 'CFEngine3', ('cfengine3', 'cf3'), ('*.cf',), ()),
     'ChaiscriptLexer': ('pygments.lexers.scripting', 'ChaiScript', ('chai', 'chaiscript'), ('*.chai',), ('text/x-chaiscript', 'application/x-chaiscript')),
diff --git a/pygments/lexers/basic.py b/pygments/lexers/basic.py
index 1931d0454b..d8795f1c92 100644
--- a/pygments/lexers/basic.py
+++ b/pygments/lexers/basic.py
@@ -351,10 +351,10 @@ class CbmBasicV2Lexer(RegexLexer):
         ]
     }
 
-    def analyse_text(self, text):
+    def analyse_text(text):
         # if it starts with a line number, it shouldn't be a "modern" Basic
         # like VB.net
-        if re.match(r'\d+', text):
+        if re.match(r'^\d+', text):
             return 0.2
 
 
diff --git a/pygments/lexers/cddl.py b/pygments/lexers/cddl.py
new file mode 100644
index 0000000000..6b6b8085e2
--- /dev/null
+++ b/pygments/lexers/cddl.py
@@ -0,0 +1,191 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.cddl
+    ~~~~~~~~~~~~~~~~~~~~
+
+    Lexer for the Concise data definition language (CDDL), a notational
+    convention to express CBOR and JSON data structures.
+
+    More information:
+    https://datatracker.ietf.org/doc/rfc8610/
+
+    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+__all__ = ['CddlLexer']
+
+from pygments.lexer import RegexLexer, bygroups, include, words
+from pygments.token import (
+    Comment,
+    Error,
+    Keyword,
+    Name,
+    Number,
+    Operator,
+    Punctuation,
+    String,
+    Text,
+)
+
+
+class CddlLexer(RegexLexer):
+    """
+    Lexer for CDDL definitions.
+
+    .. versionadded:: 2.8
+    """
+    name = "CDDL"
+    aliases = ["cddl"]
+    filenames = ["*.cddl"]
+    mimetypes = ["text/x-cddl"]
+
+    _prelude_types = [
+        "any",
+        "b64legacy",
+        "b64url",
+        "bigfloat",
+        "bigint",
+        "bignint",
+        "biguint",
+        "bool",
+        "bstr",
+        "bytes",
+        "cbor-any",
+        "decfrac",
+        "eb16",
+        "eb64legacy",
+        "eb64url",
+        "encoded-cbor",
+        "false",
+        "float",
+        "float16",
+        "float16-32",
+        "float32",
+        "float32-64",
+        "float64",
+        "int",
+        "integer",
+        "mime-message",
+        "nil",
+        "nint",
+        "null",
+        "number",
+        "regexp",
+        "tdate",
+        "text",
+        "time",
+        "true",
+        "tstr",
+        "uint",
+        "undefined",
+        "unsigned",
+        "uri",
+    ]
+
+    _controls = [
+        ".and",
+        ".bits",
+        ".cbor",
+        ".cborseq",
+        ".default",
+        ".eq",
+        ".ge",
+        ".gt",
+        ".le",
+        ".lt",
+        ".ne",
+        ".regexp",
+        ".size",
+        ".within",
+    ]
+
+    _re_id = (
+        r"[$@A-Z_a-z]"
+        r"(?:[\-\.]*[$@0-9A-Z_a-z]|[$@0-9A-Z_a-z])*"
+    )
+
+    # While the spec reads more like "an int must not start with 0" we use a
+    # lookahead here that says "after a 0 there must be no digit". This makes the
+    # '0' the invalid character in '01', which looks nicer when highlighted.
+    _re_uint = r"(?:0b[01]+|0x[0-9a-fA-F]+|[1-9]\d*|0(?!\d))"
+    _re_int = r"-?" + _re_uint
+
+    flags = re.UNICODE | re.MULTILINE
+
+    tokens = {
+        "commentsandwhitespace": [(r"\s+", Text), (r";.+$", Comment.Single)],
+        "root": [
+            include("commentsandwhitespace"),
+            # tag types
+            (r"#(\d\.{uint})?".format(uint=_re_uint), Keyword.Type), # type or any
+            # occurence
+            (
+                r"({uint})?(\*)({uint})?".format(uint=_re_uint),
+                bygroups(Number, Operator, Number),
+            ),
+            (r"\?|\+", Operator),  # occurrence
+            (r"\^", Operator),  # cuts
+            (r"(\.\.\.|\.\.)", Operator),  # rangeop
+            (words(_controls, suffix=r"\b"), Operator.Word),  # ctlops
+            # into choice op
+            (r"&(?=\s*({groupname}|\())".format(groupname=_re_id), Operator),
+            (r"~(?=\s*{})".format(_re_id), Operator),  # unwrap op
+            (r"//|/(?!/)", Operator),  # double und single slash
+            (r"=>|/==|/=|=", Operator),
+            (r"[\[\]{}\(\),<>:]", Punctuation),
+            # Bytestrings
+            (r"(b64)(')", bygroups(String.Affix, String.Single), "bstrb64url"),
+            (r"(h)(')", bygroups(String.Affix, String.Single), "bstrh"),
+            (r"'", String.Single, "bstr"),
+            # Barewords as member keys (must be matched before values, types, typenames,
+            # groupnames).
+            # Token type is String as barewords are always interpreted as such.
+            (
+                r"({bareword})(\s*)(:)".format(bareword=_re_id),
+                bygroups(String, Text, Punctuation),
+            ),
+            # predefined types
+            (
+                words(_prelude_types, prefix=r"(?![\-_$@])\b", suffix=r"\b(?![\-_$@])"),
+                Name.Builtin,
+            ),
+            # user-defined groupnames, typenames
+            (_re_id, Name.Class),
+            # values
+            (r"0b[01]+", Number.Bin),
+            (r"0o[0-7]+", Number.Oct),
+            (r"0x[0-9a-fA-F]+(\.[0-9a-fA-F]+)?p[+-]?\d+", Number.Hex),  # hexfloat
+            (r"0x[0-9a-fA-F]+", Number.Hex),  # hex
+            # Float
+            (
+                r"{int}(?=(\.\d|e[+-]?\d))(?:\.\d+)?(?:e[+-]?\d+)?".format(int=_re_int),
+                Number.Float,
+            ),
+            # Int
+            (_re_int, Number.Int),
+            (r'"(\\\\|\\"|[^"])*"', String.Double),
+        ],
+        "bstrb64url": [
+            (r"'", String.Single, "#pop"),
+            include("commentsandwhitespace"),
+            (r"\\.", String.Escape),
+            (r"[0-9a-zA-Z\-_=]+", String.Single),
+            (r".", Error),
+            # (r";.+$", Token.Other),
+        ],
+        "bstrh": [
+            (r"'", String.Single, "#pop"),
+            include("commentsandwhitespace"),
+            (r"\\.", String.Escape),
+            (r"[0-9a-fA-F]+", String.Single),
+            (r".", Error),
+        ],
+        "bstr": [
+            (r"'", String.Single, "#pop"),
+            (r"\\.", String.Escape),
+            (r"[^']", String.Single),
+        ],
+    }
diff --git a/pygments/lexers/ecl.py b/pygments/lexers/ecl.py
index 3c67a0bb0e..4e705a5793 100644
--- a/pygments/lexers/ecl.py
+++ b/pygments/lexers/ecl.py
@@ -124,10 +124,10 @@ class ECLLexer(RegexLexer):
 
     def analyse_text(text):
         """This is very difficult to guess relative to other business languages.
-        <- in conjuction with BEGIN/END seems relatively rare though."""
+        -> in conjuction with BEGIN/END seems relatively rare though."""
         result = 0
 
-        if '<-' in text:
+        if '->' in text:
             result += 0.01
         if 'BEGIN' in text:
             result += 0.01
diff --git a/pygments/lexers/eiffel.py b/pygments/lexers/eiffel.py
index ca93754e81..4b492b08ab 100644
--- a/pygments/lexers/eiffel.py
+++ b/pygments/lexers/eiffel.py
@@ -44,7 +44,7 @@ class EiffelLexer(RegexLexer):
                 'require', 'rescue', 'retry', 'select', 'separate', 'then',
                 'undefine', 'until', 'variant', 'when'), prefix=r'(?i)\b', suffix=r'\b'),
              Keyword.Reserved),
-            (r'"\[(([^\]%]|\n)|%(.|\n)|\][^"])*?\]"', String),
+            (r'"\[([^\]%]|%(.|\n)|\][^"])*?\]"', String),
             (r'"([^"%\n]|%.)*?"', String),
             include('numbers'),
             (r"'([^'%]|%'|%%)'", String.Char),
diff --git a/pygments/lexers/forth.py b/pygments/lexers/forth.py
index 90b5e1f8fe..563fdab06e 100644
--- a/pygments/lexers/forth.py
+++ b/pygments/lexers/forth.py
@@ -174,4 +174,4 @@ def analyse_text(text):
         """Forth uses : COMMAND ; quite a lot in a single line, so we're trying
         to find that."""
         if re.search('\n:[^\n]+;\n', text):
-            return 0.1
+            return 0.3
diff --git a/pygments/lexers/matlab.py b/pygments/lexers/matlab.py
index a0a535dcda..7a72eedcd7 100644
--- a/pygments/lexers/matlab.py
+++ b/pygments/lexers/matlab.py
@@ -32,47 +32,6 @@ class MatlabLexer(RegexLexer):
     filenames = ['*.m']
     mimetypes = ['text/matlab']
 
-    #
-    # These lists are generated automatically.
-    # Run the following in bash shell:
-    #
-    # for f in elfun specfun elmat; do
-    #   echo -n "$f = "
-    #   matlab -nojvm -r "help $f;exit;" | perl -ne \
-    #   'push(@c,$1) if /^    (\w+)\s+-/; END {print q{["}.join(q{","},@c).qq{"]\n};}'
-    # done
-    #
-    # elfun: Elementary math functions
-    # specfun: Special Math functions
-    # elmat: Elementary matrices and matrix manipulation
-    #
-    # taken from Matlab version 9.4 (R2018a)
-    #
-    elfun = ("sin", "sind", "sinh", "asin", "asind", "asinh", "cos", "cosd", "cosh",
-             "acos", "acosd", "acosh", "tan", "tand", "tanh", "atan", "atand", "atan2",
-             "atan2d", "atanh", "sec", "secd", "sech", "asec", "asecd", "asech", "csc", "cscd",
-             "csch", "acsc", "acscd", "acsch", "cot", "cotd", "coth", "acot", "acotd",
-             "acoth", "hypot", "deg2rad", "rad2deg", "exp", "expm1", "log", "log1p", "log10", "log2", "pow2",
-             "realpow", "reallog", "realsqrt", "sqrt", "nthroot", "nextpow2", "abs",
-             "angle", "complex", "conj", "imag", "real", "unwrap", "isreal", "cplxpair",
-             "fix", "floor", "ceil", "round", "mod", "rem", "sign")
-    specfun = ("airy", "besselj", "bessely", "besselh", "besseli", "besselk", "beta",
-               "betainc", "betaincinv", "betaln", "ellipj", "ellipke", "erf", "erfc", "erfcx",
-               "erfinv", "erfcinv", "expint", "gamma", "gammainc", "gammaincinv", "gammaln", "psi", "legendre",
-               "cross", "dot", "factor", "isprime", "primes", "gcd", "lcm", "rat",
-               "rats", "perms", "nchoosek", "factorial", "cart2sph", "cart2pol",
-               "pol2cart", "sph2cart", "hsv2rgb", "rgb2hsv")
-    elmat = ("zeros", "ones", "eye", "repmat", "repelem", "linspace", "logspace",
-             "freqspace", "meshgrid", "accumarray", "size", "length", "ndims", "numel",
-             "disp", "isempty", "isequal", "isequaln", "cat", "reshape",
-             "diag", "blkdiag", "tril", "triu", "fliplr", "flipud", "flip", "rot90",
-             "find", "end", "sub2ind", "ind2sub", "bsxfun", "ndgrid", "permute",
-             "ipermute", "shiftdim", "circshift", "squeeze", "isscalar", "isvector",
-             "isrow", "iscolumn", "ismatrix", "eps", "realmax", "realmin", "intmax", "intmin", "flintmax", "pi", "i", "inf", "nan", "isnan",
-             "isinf", "isfinite", "j", "true", "false", "compan", "gallery", "hadamard", "hankel",
-             "hilb", "invhilb", "magic", "pascal", "rosser", "toeplitz", "vander",
-             "wilkinson")
-
     _operators = r'-|==|~=|<=|>=|<|>|&&|&|~|\|\|?|\.\*|\*|\+|\.\^|\.\\|\./|/|\\'
 
     tokens = {
@@ -127,7 +86,2575 @@ class MatlabLexer(RegexLexer):
                    prefix=r'(? equipment-tolerances,
+}
+equipment-type = [name: tstr, manufacturer: tstr]
+equipment-tolerances = [+ [float, float]]
+
+PersonalData = {
+  ? displayName: tstr,
+  NameComponents,
+  ? age: uint,
+  * tstr => any
+}
+
+NameComponents = (
+  ? firstName: tstr,
+  ? familyName: tstr,
+)
+
+square-roots = {* x => y}
+x = int
+y = float
+
+extensible-map-example = {
+  ? "optional-key" ^ => int,
+  * tstr => any
+}
+
+extensible-map-example = {
+  ? "optional-key": int,
+  * tstr => any
+}
+
+extensible-map-example = {
+  ? optional-key: int,
+  * tstr => any
+}
+
+biguint = #6.2(bstr)
+buuid = #6.37(bstr)
+my_uri = #6.32(tstr) / tstr
+
+basic-header = [
+  field1: int,
+  field2: text,
+]
+
+advanced-header = [
+  ~basic-header,
+  field3: bytes,
+  field4: ~time,
+]
+
+hexfloat = 0xcafe.badp-9sdf
+hexfloat = 0xcafe.badp-9
+
+full-address = [[+ label], ip4, ip6]
+ip4 = bstr .size 4
+ip6 = bstr .size 16
+label = bstr .size (1..63)
+
+member-keys = {
+  bare-word: true,
+  "string": false,
+  4711: number,
+  0xdecafe: false,
+}
+
+audio_sample = uint .size 3 ; 24-bit, equivalent to 0...16777216
+
+tcpflagbytes = bstr .bits flags
+flags = &(
+  fin: 8,
+  syn: 9,
+  rst: 10,
+  psh: 11,
+  ack: 12,
+  urg: 13,
+  ece: 14,
+  cwr: 15,
+  ns: 0,
+) / (4..7) ; data offset bits
+
+rwxbits = uint .bits rwx
+rwx = &(r: 2, w: 1, x: 0)
+
+nai = tstr .regexp "[A-Za-z0-9]+@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)+"
+
+message = $message .within message-structure
+message-structure = [message_type, *message_option]
+message_type = 0..255
+message_option = any
+
+$message /= [3, dough: text, topping: [* text]]
+$message /= [4, noodles: text, sauce: text, parmesan: bool]
+
+speed = number .ge 0  ; unit: m/s
+
+timer = {
+  time: uint,
+  ? displayed-step: (number .gt 0) .default 1
+}
+
+tcp-header = {seq: uint, ack: uint, * $$tcp-option}
+
+; later, in a different file
+
+$$tcp-option //= (
+sack: [+(left: uint, right: uint)]
+)
+
+; and, maybe in another file
+
+$$tcp-option //= (
+sack-permitted: true
+)
+
+PersonalData = {
+  ? displayName: tstr,
+  NameComponents,
+  ? age: uint,
+  * $$personaldata-extensions
+}
+
+NameComponents = (
+  ? firstName: tstr,
+  ? familyName: tstr,
+)
+
+; The above already works as is.
+; But then, we can add later:
+
+$$personaldata-extensions //= (
+  favorite-salsa: tstr,
+)
+
+; and again, somewhere else:
+
+$$personaldata-extensions //= (
+  shoesize: uint,
+)
+
+messages = message<"reboot", "now"> / message<"sleep", 1..100>
+message = {type: t, value: v}
+
+t = [group1]
+group1 = (a / b // c / d)
+a = 1 b = 2 c = 3 d = 4
+
+t = {group2}
+group2 = (? ab: a / b // cd: c / d)
+a = 1 b = 2 c = 3 d = 4
+
+t = [group3]
+group3 = (+ a / b / c)
+a = 1 b = 2 c = 3
+
+t = [group4]
+group4 = (+ a // b / c)
+a = 1 b = 2 c = 3
+
+t = [group4a]
+group4a = ((+ a) // (b / c))
+a = 1 b = 2 c = 3
+
+byte-strings = 'hello world' / h'68656c6c6f20776f726c64' / b64'Zm-9v_YmE='
+;byte-strings-w-errors = h'68656gc6c6f2077oops6f726c64' / b64'Zm+9vY/mE='
+oneline-bstr = ''
+multiline-bstr = '
+  
+'
+multiline-hex = h'
+   83        ; \'83\' means Array of length 3
+      01     ; 1
+      82     ; Array of length 2
+         02  ; 2
+         03  ; 3
+      82     ; Array of length 2
+         04  ; 4
+         05  ; 5
+'
+;multiline-hex-err = h'
+;   83         \'83\' means Array of length 3 (oops, missed the \';\')
+;      01     ; 1
+;'
+
+; THE STANDARD "POSTLUDE"
+any = #
+
+uint = #0
+nint = #1
+int = uint / nint
+
+bstr = #2
+bytes = bstr
+tstr = #3
+text = tstr
+
+tdate = #6.0(tstr)
+time = #6.1(number)
+number = int / float
+biguint = #6.0x02(bstr)
+biguint = #6.2(bstr)
+bignint = #6.3(bstr)
+bigint = biguint / bignint
+integer = int / bigint
+unsigned = uint / biguint
+decfrac = #6.4([e10: int, m: integer])
+bigfloat = #6.5([e2: int, m: integer])
+eb64url = #6.21(any)
+eb64legacy = #6.22(any)
+eb16 = #6.23(any)
+encoded-cbor = #6.24(bstr)
+uri = #6.32(tstr)
+b64url = #6.33(tstr)
+b64legacy = #6.34(tstr)
+regexp = #6.35(tstr)
+mime-message = #6.36(tstr)
+cbor-any = #6.55799(any)
+
+float16 = #7.25
+float32 = #7.26
+float64 = #7.27
+float16-32 = float16 / float32
+float32-64 = float32 / float64
+float = float16-32 / float64
+
+false = #7.20
+true = #7.21
+bool = false / true
+nil = #7.22
+null = nil
+undefined = #7.23
+
+
+; INVALID CDDL
+
+;invalid_identifier- = -another_invalid
+;untermindated-string = "sometimes I cannot finish my…
+;next-thought = { valid: true }
diff --git a/tests/examplefiles/cddl/example.cddl.output b/tests/examplefiles/cddl/example.cddl.output
new file mode 100644
index 0000000000..f98cc41143
--- /dev/null
+++ b/tests/examplefiles/cddl/example.cddl.output
@@ -0,0 +1,2665 @@
+'; Note: This CDDL does not make sense *semantically*.' Comment.Single
+'\n'          Text
+
+'; These are various examples from the CDDL spec that' Comment.Single
+'\n'          Text
+
+'; should cover most syntax cases, however.' Comment.Single
+'\n\n'        Text
+
+'pii'         Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n  '        Text
+'age'         Literal.String
+':'           Punctuation
+' '           Text
+'int'         Name.Builtin
+','           Punctuation
+'\n  '        Text
+'name'        Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n  '        Text
+'employer'    Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n'          Text
+
+')'           Punctuation
+'\n\n'        Text
+
+'person'      Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'pii'         Name.Class
+'\n'          Text
+
+'}'           Punctuation
+'\n\n'        Text
+
+'person'      Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'('           Punctuation
+'\n  '        Text
+'age'         Literal.String
+':'           Punctuation
+' '           Text
+'int'         Name.Builtin
+','           Punctuation
+'\n  '        Text
+'name'        Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n  '        Text
+'employer'    Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n'          Text
+
+')'           Punctuation
+'}'           Punctuation
+'\n\n'        Text
+
+'person'      Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'identity'    Name.Class
+','           Punctuation
+'\n  '        Text
+'employer'    Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n'          Text
+
+'}'           Punctuation
+'\n\n'        Text
+
+'dog'         Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'identity'    Name.Class
+','           Punctuation
+'\n  '        Text
+'leash-length' Literal.String
+':'           Punctuation
+' '           Text
+'float'       Name.Builtin
+','           Punctuation
+'\n'          Text
+
+'}'           Punctuation
+'\n\n'        Text
+
+'identity'    Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n  '        Text
+'age'         Literal.String
+':'           Punctuation
+' '           Text
+'int'         Name.Builtin
+','           Punctuation
+'\n  '        Text
+'name'        Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n'          Text
+
+')'           Punctuation
+'\n\n'        Text
+
+'address'     Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+' '           Text
+'delivery'    Name.Class
+' '           Text
+'}'           Punctuation
+'\n\n'        Text
+
+'delivery'    Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n'          Text
+
+'street'      Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+' '           Text
+'?'           Operator
+' '           Text
+'number'      Literal.String
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+','           Punctuation
+' '           Text
+'city'        Name.Class
+' '           Text
+'//'          Operator
+'\n'          Text
+
+'po-box'      Literal.String
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+','           Punctuation
+' '           Text
+'city'        Name.Class
+' '           Text
+'//'          Operator
+'\n'          Text
+
+'per-pickup'  Literal.String
+':'           Punctuation
+' '           Text
+'true'        Name.Builtin
+' '           Text
+')'           Punctuation
+'\n\n'        Text
+
+'city'        Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n'          Text
+
+'name'        Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+' '           Text
+'zip-code'    Literal.String
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+'\n'          Text
+
+')'           Punctuation
+'\n\n'        Text
+
+'attire'      Name.Class
+' '           Text
+'/'           Operator
+'='           Operator
+' '           Text
+'"swimwear"'  Literal.String.Double
+'\n\n'        Text
+
+'delivery'    Name.Class
+' '           Text
+'//'          Operator
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n'          Text
+
+'lat'         Literal.String
+':'           Punctuation
+' '           Text
+'float'       Name.Builtin
+','           Punctuation
+' '           Text
+'long'        Literal.String
+':'           Punctuation
+' '           Text
+'float'       Name.Builtin
+','           Punctuation
+' '           Text
+'drone-type'  Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+'\n'          Text
+
+')'           Punctuation
+'\n\n'        Text
+
+'device-address' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'bytefloat'   Name.Class
+'\n'          Text
+
+'max-byte'    Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'0b01001001'  Literal.Number.Bin
+'\n'          Text
+
+'max-oct'     Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'0o014'       Literal.Number.Oct
+'\n'          Text
+
+'max-int'     Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'-123'        Literal.Number.Int
+'\n'          Text
+
+'max-float'   Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'23.5'        Literal.Number.Float
+'\n'          Text
+
+'int-range'   Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'0'           Literal.Number.Int
+'..'          Operator
+'10'          Literal.Number.Int
+' '           Text
+'; only integers match' Comment.Single
+'\n'          Text
+
+'float-range' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'0.0'         Literal.Number.Float
+'..'          Operator
+'10.0'        Literal.Number.Float
+' '           Text
+'; only floats match' Comment.Single
+'\n'          Text
+
+'byte'        Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'0'           Literal.Number.Int
+'..'          Operator
+'max-byte'    Name.Class
+' '           Text
+'; inclusive range' Comment.Single
+'\n'          Text
+
+'first-non-byte' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'256'         Literal.Number.Int
+'\n'          Text
+
+'byte1'       Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'0'           Literal.Number.Int
+'...'         Operator
+'first-non-byte' Name.Class
+' '           Text
+'; byte1 is equivalent to byte' Comment.Single
+'\n\n'        Text
+
+'BAD-range1'  Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'0'           Literal.Number.Int
+'..'          Operator
+'10.0'        Literal.Number.Float
+' '           Text
+'; NOT DEFINED' Comment.Single
+'\n'          Text
+
+'BAD-range2'  Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'0.0'         Literal.Number.Float
+'..'          Operator
+'10'          Literal.Number.Int
+' '           Text
+'; NOT DEFINED' Comment.Single
+'\n'          Text
+
+'numeric-range' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'int-range'   Name.Class
+' '           Text
+'/'           Operator
+' '           Text
+'float-range' Name.Class
+'\n\n'        Text
+
+'terminal-color' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'&'           Operator
+'basecolors'  Name.Class
+'\n'          Text
+
+'basecolors'  Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n  '        Text
+'black'       Literal.String
+':'           Punctuation
+' '           Text
+'0'           Literal.Number.Int
+','           Punctuation
+' '           Text
+'red'         Literal.String
+':'           Punctuation
+' '           Text
+'1'           Literal.Number.Int
+','           Punctuation
+'  '          Text
+'green'       Literal.String
+':'           Punctuation
+' '           Text
+'2'           Literal.Number.Int
+','           Punctuation
+'  '          Text
+'yellow'      Literal.String
+':'           Punctuation
+' '           Text
+'3'           Literal.Number.Int
+','           Punctuation
+'\n  '        Text
+'blue'        Literal.String
+':'           Punctuation
+' '           Text
+'4'           Literal.Number.Int
+','           Punctuation
+'  '          Text
+'magenta'     Literal.String
+':'           Punctuation
+' '           Text
+'5'           Literal.Number.Int
+','           Punctuation
+'  '          Text
+'cyan'        Literal.String
+':'           Punctuation
+' '           Text
+'6'           Literal.Number.Int
+','           Punctuation
+'  '          Text
+'white'       Literal.String
+':'           Punctuation
+' '           Text
+'7'           Literal.Number.Int
+','           Punctuation
+'\n'          Text
+
+')'           Punctuation
+'\n'          Text
+
+'extended-color' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'&'           Operator
+'('           Punctuation
+'\n  '        Text
+'basecolors'  Name.Class
+','           Punctuation
+'\n  '        Text
+'orange'      Literal.String
+':'           Punctuation
+' '           Text
+'8'           Literal.Number.Int
+','           Punctuation
+'  '          Text
+'pink'        Literal.String
+':'           Punctuation
+' '           Text
+'9'           Literal.Number.Int
+','           Punctuation
+'  '          Text
+'purple'      Literal.String
+':'           Punctuation
+' '           Text
+'10'          Literal.Number.Int
+','           Punctuation
+'  '          Text
+'brown'       Literal.String
+':'           Punctuation
+' '           Text
+'11'          Literal.Number.Int
+','           Punctuation
+'\n'          Text
+
+')'           Punctuation
+'\n\n'        Text
+
+'foo'         Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'#'           Keyword.Type
+'\n\n'        Text
+
+'my_breakfast' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'#6.55799'    Keyword.Type
+'('           Punctuation
+'breakfast'   Name.Class
+')'           Punctuation
+'   '         Text
+'; cbor-any is too general!' Comment.Single
+'\n'          Text
+
+'breakfast'   Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'cereal'      Name.Class
+' '           Text
+'/'           Operator
+' '           Text
+'porridge'    Name.Class
+'\n'          Text
+
+'cereal'      Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'#6.998'      Keyword.Type
+'('           Punctuation
+'tstr'        Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'porridge'    Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'#6.999'      Keyword.Type
+'('           Punctuation
+'['           Punctuation
+'liquid'      Name.Class
+','           Punctuation
+' '           Text
+'solid'       Name.Class
+']'           Punctuation
+')'           Punctuation
+'\n'          Text
+
+'liquid'      Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'milk'        Name.Class
+' '           Text
+'/'           Operator
+' '           Text
+'water'       Name.Class
+'\n'          Text
+
+'milk'        Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'0'           Literal.Number.Int
+'\n'          Text
+
+'water'       Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'1'           Literal.Number.Int
+'\n'          Text
+
+'solid'       Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'tstr'        Name.Builtin
+'\n\n'        Text
+
+'; This is a comment' Comment.Single
+'\n'          Text
+
+'person'      Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+' '           Text
+'g'           Name.Class
+' '           Text
+'}'           Punctuation
+'\n\n'        Text
+
+'g'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n  '        Text
+'"name"'      Literal.String.Double
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n  '        Text
+'age'         Literal.String
+':'           Punctuation
+' '           Text
+'int'         Name.Builtin
+','           Punctuation
+'  '          Text
+'; "age" is a bareword' Comment.Single
+'\n'          Text
+
+')'           Punctuation
+'\n\n'        Text
+
+'apartment'   Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'kitchen'     Literal.String
+':'           Punctuation
+' '           Text
+'size'        Name.Class
+','           Punctuation
+'\n  '        Text
+'*'           Operator
+' '           Text
+'bedroom'     Literal.String
+':'           Punctuation
+' '           Text
+'size'        Name.Class
+','           Punctuation
+'\n'          Text
+
+'}'           Punctuation
+'\n'          Text
+
+'size'        Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'float'       Name.Builtin
+' '           Text
+'; in m2'     Comment.Single
+'\n\n'        Text
+
+'unlimited-people' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'*'           Operator
+' '           Text
+'person'      Name.Class
+']'           Punctuation
+'\n'          Text
+
+'one-or-two-people' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'1'           Literal.Number
+'*'           Operator
+'2'           Literal.Number
+' '           Text
+'person'      Name.Class
+']'           Punctuation
+'\n'          Text
+
+'at-least-two-people' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'2'           Literal.Number
+'*'           Operator
+' '           Text
+'person'      Name.Class
+']'           Punctuation
+'\n'          Text
+
+'person'      Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n    '      Text
+'name'        Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n    '      Text
+'age'         Literal.String
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+','           Punctuation
+'\n'          Text
+
+')'           Punctuation
+'\n\n'        Text
+
+'Geography'   Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'\n  '        Text
+'city'        Literal.String
+'           ' Text
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n  '        Text
+'gpsCoordinates' Literal.String
+' '           Text
+':'           Punctuation
+' '           Text
+'GpsCoordinates' Name.Class
+','           Punctuation
+'\n'          Text
+
+']'           Punctuation
+'\n\n'        Text
+
+'GpsCoordinates' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'longitude'   Literal.String
+'      '      Text
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+','           Punctuation
+'            ' Text
+'; multiplied by 10^7' Comment.Single
+'\n  '        Text
+'latitude'    Literal.String
+'       '     Text
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+','           Punctuation
+'            ' Text
+'; multiplied by 10^7' Comment.Single
+'\n'          Text
+
+'}'           Punctuation
+'\n'          Text
+
+'located-samples' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'sample-point' Literal.String
+':'           Punctuation
+' '           Text
+'int'         Name.Builtin
+','           Punctuation
+'\n  '        Text
+'samples'     Literal.String
+':'           Punctuation
+' '           Text
+'['           Punctuation
+'+'           Operator
+' '           Text
+'float'       Name.Builtin
+']'           Punctuation
+','           Punctuation
+'\n'          Text
+
+'}'           Punctuation
+'\n\n'        Text
+
+'proper-ints' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'1'           Literal.Number.Int
+' '           Text
+'/'           Operator
+' '           Text
+'0'           Literal.Number.Int
+'\n'          Text
+
+';invalid-int = 01' Comment.Single
+'\n\n'        Text
+
+'flt'         Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'1.23'        Literal.Number.Float
+'\n'          Text
+
+'flt'         Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'-1.23'       Literal.Number.Float
+'\n'          Text
+
+'flt'         Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'1.23e+10'    Literal.Number.Float
+'\n'          Text
+
+'flt'         Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'1.23e-10'    Literal.Number.Float
+'\n'          Text
+
+'flt'         Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'1.23e10'     Literal.Number.Float
+'\n'          Text
+
+'val'         Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'123'         Literal.Number.Int
+'\n\n'        Text
+
+'located-samples' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'sample-point' Literal.String
+':'           Punctuation
+' '           Text
+'int'         Name.Builtin
+','           Punctuation
+'\n  '        Text
+'samples'     Literal.String
+':'           Punctuation
+' '           Text
+'['           Punctuation
+'+'           Operator
+' '           Text
+'float'       Name.Builtin
+']'           Punctuation
+','           Punctuation
+'\n  '        Text
+'*'           Operator
+' '           Text
+'equipment-type' Name.Class
+' '           Text
+'=>'          Operator
+' '           Text
+'equipment-tolerances' Name.Class
+','           Punctuation
+'\n'          Text
+
+'}'           Punctuation
+'\n'          Text
+
+'equipment-type' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'name'        Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+' '           Text
+'manufacturer' Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+']'           Punctuation
+'\n'          Text
+
+'equipment-tolerances' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'+'           Operator
+' '           Text
+'['           Punctuation
+'float'       Name.Builtin
+','           Punctuation
+' '           Text
+'float'       Name.Builtin
+']'           Punctuation
+']'           Punctuation
+'\n\n'        Text
+
+'PersonalData' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'?'           Operator
+' '           Text
+'displayName' Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n  '        Text
+'NameComponents' Name.Class
+','           Punctuation
+'\n  '        Text
+'?'           Operator
+' '           Text
+'age'         Literal.String
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+','           Punctuation
+'\n  '        Text
+'*'           Operator
+' '           Text
+'tstr'        Name.Builtin
+' '           Text
+'=>'          Operator
+' '           Text
+'any'         Name.Builtin
+'\n'          Text
+
+'}'           Punctuation
+'\n\n'        Text
+
+'NameComponents' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n  '        Text
+'?'           Operator
+' '           Text
+'firstName'   Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n  '        Text
+'?'           Operator
+' '           Text
+'familyName'  Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n'          Text
+
+')'           Punctuation
+'\n\n'        Text
+
+'square-roots' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'*'           Operator
+' '           Text
+'x'           Name.Class
+' '           Text
+'=>'          Operator
+' '           Text
+'y'           Name.Class
+'}'           Punctuation
+'\n'          Text
+
+'x'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'int'         Name.Builtin
+'\n'          Text
+
+'y'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'float'       Name.Builtin
+'\n\n'        Text
+
+'extensible-map-example' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'?'           Operator
+' '           Text
+'"optional-key"' Literal.String.Double
+' '           Text
+'^'           Operator
+' '           Text
+'=>'          Operator
+' '           Text
+'int'         Name.Builtin
+','           Punctuation
+'\n  '        Text
+'*'           Operator
+' '           Text
+'tstr'        Name.Builtin
+' '           Text
+'=>'          Operator
+' '           Text
+'any'         Name.Builtin
+'\n'          Text
+
+'}'           Punctuation
+'\n\n'        Text
+
+'extensible-map-example' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'?'           Operator
+' '           Text
+'"optional-key"' Literal.String.Double
+':'           Punctuation
+' '           Text
+'int'         Name.Builtin
+','           Punctuation
+'\n  '        Text
+'*'           Operator
+' '           Text
+'tstr'        Name.Builtin
+' '           Text
+'=>'          Operator
+' '           Text
+'any'         Name.Builtin
+'\n'          Text
+
+'}'           Punctuation
+'\n\n'        Text
+
+'extensible-map-example' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'?'           Operator
+' '           Text
+'optional-key' Literal.String
+':'           Punctuation
+' '           Text
+'int'         Name.Builtin
+','           Punctuation
+'\n  '        Text
+'*'           Operator
+' '           Text
+'tstr'        Name.Builtin
+' '           Text
+'=>'          Operator
+' '           Text
+'any'         Name.Builtin
+'\n'          Text
+
+'}'           Punctuation
+'\n\n'        Text
+
+'biguint'     Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.2'        Keyword.Type
+'('           Punctuation
+'bstr'        Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'buuid'       Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'#6.37'       Keyword.Type
+'('           Punctuation
+'bstr'        Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'my_uri'      Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'#6.32'       Keyword.Type
+'('           Punctuation
+'tstr'        Name.Builtin
+')'           Punctuation
+' '           Text
+'/'           Operator
+' '           Text
+'tstr'        Name.Builtin
+'\n\n'        Text
+
+'basic-header' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'\n  '        Text
+'field1'      Literal.String
+':'           Punctuation
+' '           Text
+'int'         Name.Builtin
+','           Punctuation
+'\n  '        Text
+'field2'      Literal.String
+':'           Punctuation
+' '           Text
+'text'        Name.Builtin
+','           Punctuation
+'\n'          Text
+
+']'           Punctuation
+'\n\n'        Text
+
+'advanced-header' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'\n  '        Text
+'~'           Operator
+'basic-header' Name.Class
+','           Punctuation
+'\n  '        Text
+'field3'      Literal.String
+':'           Punctuation
+' '           Text
+'bytes'       Name.Builtin
+','           Punctuation
+'\n  '        Text
+'field4'      Literal.String
+':'           Punctuation
+' '           Text
+'~'           Operator
+'time'        Name.Builtin
+','           Punctuation
+'\n'          Text
+
+']'           Punctuation
+'\n\n'        Text
+
+'hexfloat'    Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'0xcafe.badp-9' Literal.Number.Hex
+'sdf'         Name.Class
+'\n'          Text
+
+'hexfloat'    Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'0xcafe.badp-9' Literal.Number.Hex
+'\n\n'        Text
+
+'full-address' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'['           Punctuation
+'+'           Operator
+' '           Text
+'label'       Name.Class
+']'           Punctuation
+','           Punctuation
+' '           Text
+'ip4'         Name.Class
+','           Punctuation
+' '           Text
+'ip6'         Name.Class
+']'           Punctuation
+'\n'          Text
+
+'ip4'         Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'bstr'        Name.Builtin
+' '           Text
+'.size'       Operator.Word
+' '           Text
+'4'           Literal.Number.Int
+'\n'          Text
+
+'ip6'         Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'bstr'        Name.Builtin
+' '           Text
+'.size'       Operator.Word
+' '           Text
+'16'          Literal.Number.Int
+'\n'          Text
+
+'label'       Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'bstr'        Name.Builtin
+' '           Text
+'.size'       Operator.Word
+' '           Text
+'('           Punctuation
+'1'           Literal.Number.Int
+'..'          Operator
+'63'          Literal.Number.Int
+')'           Punctuation
+'\n\n'        Text
+
+'member-keys' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'bare-word'   Literal.String
+':'           Punctuation
+' '           Text
+'true'        Name.Builtin
+','           Punctuation
+'\n  '        Text
+'"string"'    Literal.String.Double
+':'           Punctuation
+' '           Text
+'false'       Name.Builtin
+','           Punctuation
+'\n  '        Text
+'4711'        Literal.Number.Int
+':'           Punctuation
+' '           Text
+'number'      Name.Builtin
+','           Punctuation
+'\n  '        Text
+'0xdecafe'    Literal.Number.Hex
+':'           Punctuation
+' '           Text
+'false'       Name.Builtin
+','           Punctuation
+'\n'          Text
+
+'}'           Punctuation
+'\n\n'        Text
+
+'audio_sample' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'uint'        Name.Builtin
+' '           Text
+'.size'       Operator.Word
+' '           Text
+'3'           Literal.Number.Int
+' '           Text
+'; 24-bit, equivalent to 0...16777216' Comment.Single
+'\n\n'        Text
+
+'tcpflagbytes' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'bstr'        Name.Builtin
+' '           Text
+'.bits'       Operator.Word
+' '           Text
+'flags'       Name.Class
+'\n'          Text
+
+'flags'       Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'&'           Operator
+'('           Punctuation
+'\n  '        Text
+'fin'         Literal.String
+':'           Punctuation
+' '           Text
+'8'           Literal.Number.Int
+','           Punctuation
+'\n  '        Text
+'syn'         Literal.String
+':'           Punctuation
+' '           Text
+'9'           Literal.Number.Int
+','           Punctuation
+'\n  '        Text
+'rst'         Literal.String
+':'           Punctuation
+' '           Text
+'10'          Literal.Number.Int
+','           Punctuation
+'\n  '        Text
+'psh'         Literal.String
+':'           Punctuation
+' '           Text
+'11'          Literal.Number.Int
+','           Punctuation
+'\n  '        Text
+'ack'         Literal.String
+':'           Punctuation
+' '           Text
+'12'          Literal.Number.Int
+','           Punctuation
+'\n  '        Text
+'urg'         Literal.String
+':'           Punctuation
+' '           Text
+'13'          Literal.Number.Int
+','           Punctuation
+'\n  '        Text
+'ece'         Literal.String
+':'           Punctuation
+' '           Text
+'14'          Literal.Number.Int
+','           Punctuation
+'\n  '        Text
+'cwr'         Literal.String
+':'           Punctuation
+' '           Text
+'15'          Literal.Number.Int
+','           Punctuation
+'\n  '        Text
+'ns'          Literal.String
+':'           Punctuation
+' '           Text
+'0'           Literal.Number.Int
+','           Punctuation
+'\n'          Text
+
+')'           Punctuation
+' '           Text
+'/'           Operator
+' '           Text
+'('           Punctuation
+'4'           Literal.Number.Int
+'..'          Operator
+'7'           Literal.Number.Int
+')'           Punctuation
+' '           Text
+'; data offset bits' Comment.Single
+'\n\n'        Text
+
+'rwxbits'     Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'uint'        Name.Builtin
+' '           Text
+'.bits'       Operator.Word
+' '           Text
+'rwx'         Name.Class
+'\n'          Text
+
+'rwx'         Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'&'           Operator
+'('           Punctuation
+'r'           Literal.String
+':'           Punctuation
+' '           Text
+'2'           Literal.Number.Int
+','           Punctuation
+' '           Text
+'w'           Literal.String
+':'           Punctuation
+' '           Text
+'1'           Literal.Number.Int
+','           Punctuation
+' '           Text
+'x'           Literal.String
+':'           Punctuation
+' '           Text
+'0'           Literal.Number.Int
+')'           Punctuation
+'\n\n'        Text
+
+'nai'         Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'tstr'        Name.Builtin
+' '           Text
+'.regexp'     Operator.Word
+' '           Text
+'"[A-Za-z0-9]+@[A-Za-z0-9]+(\\\\.[A-Za-z0-9]+)+"' Literal.String.Double
+'\n\n'        Text
+
+'message'     Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'$message'    Name.Class
+' '           Text
+'.within'     Operator.Word
+' '           Text
+'message-structure' Name.Class
+'\n'          Text
+
+'message-structure' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'message_type' Name.Class
+','           Punctuation
+' '           Text
+'*'           Operator
+'message_option' Name.Class
+']'           Punctuation
+'\n'          Text
+
+'message_type' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'0'           Literal.Number.Int
+'..'          Operator
+'255'         Literal.Number.Int
+'\n'          Text
+
+'message_option' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'any'         Name.Builtin
+'\n\n'        Text
+
+'$message'    Name.Class
+' '           Text
+'/'           Operator
+'='           Operator
+' '           Text
+'['           Punctuation
+'3'           Literal.Number.Int
+','           Punctuation
+' '           Text
+'dough'       Literal.String
+':'           Punctuation
+' '           Text
+'text'        Name.Builtin
+','           Punctuation
+' '           Text
+'topping'     Literal.String
+':'           Punctuation
+' '           Text
+'['           Punctuation
+'*'           Operator
+' '           Text
+'text'        Name.Builtin
+']'           Punctuation
+']'           Punctuation
+'\n'          Text
+
+'$message'    Name.Class
+' '           Text
+'/'           Operator
+'='           Operator
+' '           Text
+'['           Punctuation
+'4'           Literal.Number.Int
+','           Punctuation
+' '           Text
+'noodles'     Literal.String
+':'           Punctuation
+' '           Text
+'text'        Name.Builtin
+','           Punctuation
+' '           Text
+'sauce'       Literal.String
+':'           Punctuation
+' '           Text
+'text'        Name.Builtin
+','           Punctuation
+' '           Text
+'parmesan'    Literal.String
+':'           Punctuation
+' '           Text
+'bool'        Name.Builtin
+']'           Punctuation
+'\n\n'        Text
+
+'speed'       Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'number'      Name.Builtin
+' '           Text
+'.ge'         Operator.Word
+' '           Text
+'0'           Literal.Number.Int
+'  '          Text
+'; unit: m/s' Comment.Single
+'\n\n'        Text
+
+'timer'       Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'time'        Literal.String
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+','           Punctuation
+'\n  '        Text
+'?'           Operator
+' '           Text
+'displayed-step' Literal.String
+':'           Punctuation
+' '           Text
+'('           Punctuation
+'number'      Name.Builtin
+' '           Text
+'.gt'         Operator.Word
+' '           Text
+'0'           Literal.Number.Int
+')'           Punctuation
+' '           Text
+'.default'    Operator.Word
+' '           Text
+'1'           Literal.Number.Int
+'\n'          Text
+
+'}'           Punctuation
+'\n\n'        Text
+
+'tcp-header'  Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'seq'         Literal.String
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+','           Punctuation
+' '           Text
+'ack'         Literal.String
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+','           Punctuation
+' '           Text
+'*'           Operator
+' '           Text
+'$$tcp-option' Name.Class
+'}'           Punctuation
+'\n\n'        Text
+
+'; later, in a different file' Comment.Single
+'\n\n'        Text
+
+'$$tcp-option' Name.Class
+' '           Text
+'//'          Operator
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n'          Text
+
+'sack'        Literal.String
+':'           Punctuation
+' '           Text
+'['           Punctuation
+'+'           Operator
+'('           Punctuation
+'left'        Literal.String
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+','           Punctuation
+' '           Text
+'right'       Literal.String
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+')'           Punctuation
+']'           Punctuation
+'\n'          Text
+
+')'           Punctuation
+'\n\n'        Text
+
+'; and, maybe in another file' Comment.Single
+'\n\n'        Text
+
+'$$tcp-option' Name.Class
+' '           Text
+'//'          Operator
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n'          Text
+
+'sack-permitted' Literal.String
+':'           Punctuation
+' '           Text
+'true'        Name.Builtin
+'\n'          Text
+
+')'           Punctuation
+'\n\n'        Text
+
+'PersonalData' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'\n  '        Text
+'?'           Operator
+' '           Text
+'displayName' Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n  '        Text
+'NameComponents' Name.Class
+','           Punctuation
+'\n  '        Text
+'?'           Operator
+' '           Text
+'age'         Literal.String
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+','           Punctuation
+'\n  '        Text
+'*'           Operator
+' '           Text
+'$$personaldata-extensions' Name.Class
+'\n'          Text
+
+'}'           Punctuation
+'\n\n'        Text
+
+'NameComponents' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n  '        Text
+'?'           Operator
+' '           Text
+'firstName'   Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n  '        Text
+'?'           Operator
+' '           Text
+'familyName'  Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n'          Text
+
+')'           Punctuation
+'\n\n'        Text
+
+'; The above already works as is.' Comment.Single
+'\n'          Text
+
+'; But then, we can add later:' Comment.Single
+'\n\n'        Text
+
+'$$personaldata-extensions' Name.Class
+' '           Text
+'//'          Operator
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n  '        Text
+'favorite-salsa' Literal.String
+':'           Punctuation
+' '           Text
+'tstr'        Name.Builtin
+','           Punctuation
+'\n'          Text
+
+')'           Punctuation
+'\n\n'        Text
+
+'; and again, somewhere else:' Comment.Single
+'\n\n'        Text
+
+'$$personaldata-extensions' Name.Class
+' '           Text
+'//'          Operator
+'='           Operator
+' '           Text
+'('           Punctuation
+'\n  '        Text
+'shoesize'    Literal.String
+':'           Punctuation
+' '           Text
+'uint'        Name.Builtin
+','           Punctuation
+'\n'          Text
+
+')'           Punctuation
+'\n\n'        Text
+
+'messages'    Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'message'     Name.Class
+'<'           Punctuation
+'"reboot"'    Literal.String.Double
+','           Punctuation
+' '           Text
+'"now"'       Literal.String.Double
+'>'           Punctuation
+' '           Text
+'/'           Operator
+' '           Text
+'message'     Name.Class
+'<'           Punctuation
+'"sleep"'     Literal.String.Double
+','           Punctuation
+' '           Text
+'1'           Literal.Number.Int
+'..'          Operator
+'100'         Literal.Number.Int
+'>'           Punctuation
+'\n'          Text
+
+'message'     Name.Class
+'<'           Punctuation
+'t'           Name.Class
+','           Punctuation
+' '           Text
+'v'           Name.Class
+'>'           Punctuation
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'type'        Literal.String
+':'           Punctuation
+' '           Text
+'t'           Name.Class
+','           Punctuation
+' '           Text
+'value'       Literal.String
+':'           Punctuation
+' '           Text
+'v'           Name.Class
+'}'           Punctuation
+'\n\n'        Text
+
+'t'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'group1'      Name.Class
+']'           Punctuation
+'\n'          Text
+
+'group1'      Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'a'           Name.Class
+' '           Text
+'/'           Operator
+' '           Text
+'b'           Name.Class
+' '           Text
+'//'          Operator
+' '           Text
+'c'           Name.Class
+' '           Text
+'/'           Operator
+' '           Text
+'d'           Name.Class
+')'           Punctuation
+'\n'          Text
+
+'a'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'1'           Literal.Number.Int
+' '           Text
+'b'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'2'           Literal.Number.Int
+' '           Text
+'c'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'3'           Literal.Number.Int
+' '           Text
+'d'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'4'           Literal.Number.Int
+'\n\n'        Text
+
+'t'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'{'           Punctuation
+'group2'      Name.Class
+'}'           Punctuation
+'\n'          Text
+
+'group2'      Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'?'           Operator
+' '           Text
+'ab'          Literal.String
+':'           Punctuation
+' '           Text
+'a'           Name.Class
+' '           Text
+'/'           Operator
+' '           Text
+'b'           Name.Class
+' '           Text
+'//'          Operator
+' '           Text
+'cd'          Literal.String
+':'           Punctuation
+' '           Text
+'c'           Name.Class
+' '           Text
+'/'           Operator
+' '           Text
+'d'           Name.Class
+')'           Punctuation
+'\n'          Text
+
+'a'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'1'           Literal.Number.Int
+' '           Text
+'b'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'2'           Literal.Number.Int
+' '           Text
+'c'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'3'           Literal.Number.Int
+' '           Text
+'d'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'4'           Literal.Number.Int
+'\n\n'        Text
+
+'t'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'group3'      Name.Class
+']'           Punctuation
+'\n'          Text
+
+'group3'      Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'+'           Operator
+' '           Text
+'a'           Name.Class
+' '           Text
+'/'           Operator
+' '           Text
+'b'           Name.Class
+' '           Text
+'/'           Operator
+' '           Text
+'c'           Name.Class
+')'           Punctuation
+'\n'          Text
+
+'a'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'1'           Literal.Number.Int
+' '           Text
+'b'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'2'           Literal.Number.Int
+' '           Text
+'c'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'3'           Literal.Number.Int
+'\n\n'        Text
+
+'t'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'group4'      Name.Class
+']'           Punctuation
+'\n'          Text
+
+'group4'      Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'+'           Operator
+' '           Text
+'a'           Name.Class
+' '           Text
+'//'          Operator
+' '           Text
+'b'           Name.Class
+' '           Text
+'/'           Operator
+' '           Text
+'c'           Name.Class
+')'           Punctuation
+'\n'          Text
+
+'a'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'1'           Literal.Number.Int
+' '           Text
+'b'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'2'           Literal.Number.Int
+' '           Text
+'c'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'3'           Literal.Number.Int
+'\n\n'        Text
+
+'t'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'['           Punctuation
+'group4a'     Name.Class
+']'           Punctuation
+'\n'          Text
+
+'group4a'     Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'('           Punctuation
+'('           Punctuation
+'+'           Operator
+' '           Text
+'a'           Name.Class
+')'           Punctuation
+' '           Text
+'//'          Operator
+' '           Text
+'('           Punctuation
+'b'           Name.Class
+' '           Text
+'/'           Operator
+' '           Text
+'c'           Name.Class
+')'           Punctuation
+')'           Punctuation
+'\n'          Text
+
+'a'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'1'           Literal.Number.Int
+' '           Text
+'b'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'2'           Literal.Number.Int
+' '           Text
+'c'           Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'3'           Literal.Number.Int
+'\n\n'        Text
+
+'byte-strings' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+"'"           Literal.String.Single
+'h'           Literal.String.Single
+'e'           Literal.String.Single
+'l'           Literal.String.Single
+'l'           Literal.String.Single
+'o'           Literal.String.Single
+' '           Literal.String.Single
+'w'           Literal.String.Single
+'o'           Literal.String.Single
+'r'           Literal.String.Single
+'l'           Literal.String.Single
+'d'           Literal.String.Single
+"'"           Literal.String.Single
+' '           Text
+'/'           Operator
+' '           Text
+'h'           Literal.String.Affix
+"'"           Literal.String.Single
+'68656c6c6f20776f726c64' Literal.String.Single
+"'"           Literal.String.Single
+' '           Text
+'/'           Operator
+' '           Text
+'b64'         Literal.String.Affix
+"'"           Literal.String.Single
+'Zm-9v_YmE='  Literal.String.Single
+"'"           Literal.String.Single
+'\n'          Text
+
+";byte-strings-w-errors = h'68656gc6c6f2077oops6f726c64' / b64'Zm+9vY/mE='" Comment.Single
+'\n'          Text
+
+'oneline-bstr' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+"'"           Literal.String.Single
+'<'           Literal.String.Single
+'?'           Literal.String.Single
+'p'           Literal.String.Single
+'h'           Literal.String.Single
+'p'           Literal.String.Single
+' '           Literal.String.Single
+'p'           Literal.String.Single
+'r'           Literal.String.Single
+'i'           Literal.String.Single
+'n'           Literal.String.Single
+'t'           Literal.String.Single
+'('           Literal.String.Single
+"\\'"         Literal.String.Escape
+'h'           Literal.String.Single
+'e'           Literal.String.Single
+'l'           Literal.String.Single
+'l'           Literal.String.Single
+'o'           Literal.String.Single
+' '           Literal.String.Single
+'w'           Literal.String.Single
+'o'           Literal.String.Single
+'r'           Literal.String.Single
+'l'           Literal.String.Single
+'d'           Literal.String.Single
+"\\'"         Literal.String.Escape
+')'           Literal.String.Single
+';'           Literal.String.Single
+' '           Literal.String.Single
+' '           Literal.String.Single
+'/'           Literal.String.Single
+'/'           Literal.String.Single
+' '           Literal.String.Single
+'n'           Literal.String.Single
+'o'           Literal.String.Single
+' '           Literal.String.Single
+'c'           Literal.String.Single
+'o'           Literal.String.Single
+'m'           Literal.String.Single
+'m'           Literal.String.Single
+'e'           Literal.String.Single
+'n'           Literal.String.Single
+'t'           Literal.String.Single
+' '           Literal.String.Single
+'…'           Literal.String.Single
+' '           Literal.String.Single
+'?'           Literal.String.Single
+'>'           Literal.String.Single
+"'"           Literal.String.Single
+'\n'          Text
+
+'multiline-bstr' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+"'"           Literal.String.Single
+'\n'          Literal.String.Single
+
+' '           Literal.String.Single
+' '           Literal.String.Single
+'<'           Literal.String.Single
+'?'           Literal.String.Single
+'p'           Literal.String.Single
+'h'           Literal.String.Single
+'p'           Literal.String.Single
+'\n'          Literal.String.Single
+
+' '           Literal.String.Single
+' '           Literal.String.Single
+' '           Literal.String.Single
+' '           Literal.String.Single
+'p'           Literal.String.Single
+'r'           Literal.String.Single
+'i'           Literal.String.Single
+'n'           Literal.String.Single
+'t'           Literal.String.Single
+'('           Literal.String.Single
+"\\'"         Literal.String.Escape
+'h'           Literal.String.Single
+'e'           Literal.String.Single
+'l'           Literal.String.Single
+'l'           Literal.String.Single
+'o'           Literal.String.Single
+' '           Literal.String.Single
+'w'           Literal.String.Single
+'o'           Literal.String.Single
+'r'           Literal.String.Single
+'l'           Literal.String.Single
+'d'           Literal.String.Single
+"\\'"         Literal.String.Escape
+')'           Literal.String.Single
+';'           Literal.String.Single
+' '           Literal.String.Single
+' '           Literal.String.Single
+'/'           Literal.String.Single
+'/'           Literal.String.Single
+' '           Literal.String.Single
+'n'           Literal.String.Single
+'o'           Literal.String.Single
+' '           Literal.String.Single
+'c'           Literal.String.Single
+'o'           Literal.String.Single
+'m'           Literal.String.Single
+'m'           Literal.String.Single
+'e'           Literal.String.Single
+'n'           Literal.String.Single
+'t'           Literal.String.Single
+'\n'          Literal.String.Single
+
+' '           Literal.String.Single
+' '           Literal.String.Single
+' '           Literal.String.Single
+' '           Literal.String.Single
+'…'           Literal.String.Single
+' '           Literal.String.Single
+'?'           Literal.String.Single
+'>'           Literal.String.Single
+'\n'          Literal.String.Single
+
+"'"           Literal.String.Single
+'\n'          Text
+
+'multiline-hex' Name.Class
+' '           Text
+'='           Operator
+' '           Text
+'h'           Literal.String.Affix
+"'"           Literal.String.Single
+'\n   '       Text
+'83'          Literal.String.Single
+'        '    Text
+"; \\'83\\' means Array of length 3" Comment.Single
+'\n      '    Text
+'01'          Literal.String.Single
+'     '       Text
+'; 1'         Comment.Single
+'\n      '    Text
+'82'          Literal.String.Single
+'     '       Text
+'; Array of length 2' Comment.Single
+'\n         ' Text
+'02'          Literal.String.Single
+'  '          Text
+'; 2'         Comment.Single
+'\n         ' Text
+'03'          Literal.String.Single
+'  '          Text
+'; 3'         Comment.Single
+'\n      '    Text
+'82'          Literal.String.Single
+'     '       Text
+'; Array of length 2' Comment.Single
+'\n         ' Text
+'04'          Literal.String.Single
+'  '          Text
+'; 4'         Comment.Single
+'\n         ' Text
+'05'          Literal.String.Single
+'  '          Text
+'; 5'         Comment.Single
+'\n'          Text
+
+"'"           Literal.String.Single
+'\n'          Text
+
+";multiline-hex-err = h'" Comment.Single
+'\n'          Text
+
+";   83         \\'83\\' means Array of length 3 (oops, missed the \\';\\')" Comment.Single
+'\n'          Text
+
+';      01     ; 1' Comment.Single
+'\n'          Text
+
+";'"          Comment.Single
+'\n\n'        Text
+
+'; THE STANDARD "POSTLUDE"' Comment.Single
+'\n'          Text
+
+'any'         Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#'           Keyword.Type
+'\n\n'        Text
+
+'uint'        Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#'           Keyword.Type
+'0'           Literal.Number.Int
+'\n'          Text
+
+'nint'        Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#'           Keyword.Type
+'1'           Literal.Number.Int
+'\n'          Text
+
+'int'         Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'uint'        Name.Builtin
+' '           Text
+'/'           Operator
+' '           Text
+'nint'        Name.Builtin
+'\n\n'        Text
+
+'bstr'        Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#'           Keyword.Type
+'2'           Literal.Number.Int
+'\n'          Text
+
+'bytes'       Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'bstr'        Name.Builtin
+'\n'          Text
+
+'tstr'        Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#'           Keyword.Type
+'3'           Literal.Number.Int
+'\n'          Text
+
+'text'        Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'tstr'        Name.Builtin
+'\n\n'        Text
+
+'tdate'       Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.0'        Keyword.Type
+'('           Punctuation
+'tstr'        Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'time'        Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.1'        Keyword.Type
+'('           Punctuation
+'number'      Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'number'      Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'int'         Name.Builtin
+' '           Text
+'/'           Operator
+' '           Text
+'float'       Name.Builtin
+'\n'          Text
+
+'biguint'     Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.0x02'     Keyword.Type
+'('           Punctuation
+'bstr'        Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'biguint'     Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.2'        Keyword.Type
+'('           Punctuation
+'bstr'        Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'bignint'     Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.3'        Keyword.Type
+'('           Punctuation
+'bstr'        Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'bigint'      Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'biguint'     Name.Builtin
+' '           Text
+'/'           Operator
+' '           Text
+'bignint'     Name.Builtin
+'\n'          Text
+
+'integer'     Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'int'         Name.Builtin
+' '           Text
+'/'           Operator
+' '           Text
+'bigint'      Name.Builtin
+'\n'          Text
+
+'unsigned'    Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'uint'        Name.Builtin
+' '           Text
+'/'           Operator
+' '           Text
+'biguint'     Name.Builtin
+'\n'          Text
+
+'decfrac'     Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.4'        Keyword.Type
+'('           Punctuation
+'['           Punctuation
+'e10'         Literal.String
+':'           Punctuation
+' '           Text
+'int'         Name.Builtin
+','           Punctuation
+' '           Text
+'m'           Literal.String
+':'           Punctuation
+' '           Text
+'integer'     Name.Builtin
+']'           Punctuation
+')'           Punctuation
+'\n'          Text
+
+'bigfloat'    Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.5'        Keyword.Type
+'('           Punctuation
+'['           Punctuation
+'e2'          Literal.String
+':'           Punctuation
+' '           Text
+'int'         Name.Builtin
+','           Punctuation
+' '           Text
+'m'           Literal.String
+':'           Punctuation
+' '           Text
+'integer'     Name.Builtin
+']'           Punctuation
+')'           Punctuation
+'\n'          Text
+
+'eb64url'     Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.21'       Keyword.Type
+'('           Punctuation
+'any'         Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'eb64legacy'  Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.22'       Keyword.Type
+'('           Punctuation
+'any'         Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'eb16'        Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.23'       Keyword.Type
+'('           Punctuation
+'any'         Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'encoded-cbor' Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.24'       Keyword.Type
+'('           Punctuation
+'bstr'        Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'uri'         Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.32'       Keyword.Type
+'('           Punctuation
+'tstr'        Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'b64url'      Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.33'       Keyword.Type
+'('           Punctuation
+'tstr'        Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'b64legacy'   Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.34'       Keyword.Type
+'('           Punctuation
+'tstr'        Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'regexp'      Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.35'       Keyword.Type
+'('           Punctuation
+'tstr'        Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'mime-message' Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.36'       Keyword.Type
+'('           Punctuation
+'tstr'        Name.Builtin
+')'           Punctuation
+'\n'          Text
+
+'cbor-any'    Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#6.55799'    Keyword.Type
+'('           Punctuation
+'any'         Name.Builtin
+')'           Punctuation
+'\n\n'        Text
+
+'float16'     Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#7.25'       Keyword.Type
+'\n'          Text
+
+'float32'     Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#7.26'       Keyword.Type
+'\n'          Text
+
+'float64'     Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#7.27'       Keyword.Type
+'\n'          Text
+
+'float16-32'  Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'float16'     Name.Builtin
+' '           Text
+'/'           Operator
+' '           Text
+'float32'     Name.Builtin
+'\n'          Text
+
+'float32-64'  Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'float32'     Name.Builtin
+' '           Text
+'/'           Operator
+' '           Text
+'float64'     Name.Builtin
+'\n'          Text
+
+'float'       Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'float16-32'  Name.Builtin
+' '           Text
+'/'           Operator
+' '           Text
+'float64'     Name.Builtin
+'\n\n'        Text
+
+'false'       Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#7.20'       Keyword.Type
+'\n'          Text
+
+'true'        Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#7.21'       Keyword.Type
+'\n'          Text
+
+'bool'        Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'false'       Name.Builtin
+' '           Text
+'/'           Operator
+' '           Text
+'true'        Name.Builtin
+'\n'          Text
+
+'nil'         Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#7.22'       Keyword.Type
+'\n'          Text
+
+'null'        Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'nil'         Name.Builtin
+'\n'          Text
+
+'undefined'   Name.Builtin
+' '           Text
+'='           Operator
+' '           Text
+'#7.23'       Keyword.Type
+'\n\n\n'      Text
+
+'; INVALID CDDL' Comment.Single
+'\n\n'        Text
+
+';invalid_identifier- = -another_invalid' Comment.Single
+'\n'          Text
+
+';untermindated-string = "sometimes I cannot finish my…' Comment.Single
+'\n'          Text
+
+';next-thought = { valid: true }' Comment.Single
+'\n'          Text
diff --git a/tests/examplefiles/matlab/matlab_sample.output b/tests/examplefiles/matlab/matlab_sample.output
index 28b3285149..ebc58c7783 100644
--- a/tests/examplefiles/matlab/matlab_sample.output
+++ b/tests/examplefiles/matlab/matlab_sample.output
@@ -63,7 +63,7 @@
 ' '           Text.Whitespace
 '='           Punctuation
 ' '           Text.Whitespace
-'rand'        Name
+'rand'        Name.Builtin
 '('           Punctuation
 '30'          Literal.Number.Integer
 ')'           Punctuation
@@ -74,7 +74,7 @@
 ' '           Text.Whitespace
 '='           Punctuation
 ' '           Text.Whitespace
-'rand'        Name
+'rand'        Name.Builtin
 '('           Punctuation
 '30'          Literal.Number.Integer
 ')'           Punctuation
@@ -177,7 +177,7 @@
 'no_arg_func' Name.Function
 '\n'          Text.Whitespace
 
-'fprintf'     Name
+'fprintf'     Name.Builtin
 '('           Punctuation
 "'"           Literal.String
 "%s\\n'"      Literal.String
diff --git a/tests/examplefiles/matlabsession/matlabsession_sample.txt.output b/tests/examplefiles/matlabsession/matlabsession_sample.txt.output
index 4f61bbb34d..68777aabff 100644
--- a/tests/examplefiles/matlabsession/matlabsession_sample.txt.output
+++ b/tests/examplefiles/matlabsession/matlabsession_sample.txt.output
@@ -28,7 +28,7 @@
 ' '           Text.Whitespace
 '='           Punctuation
 ' '           Text.Whitespace
-'rand'        Name
+'rand'        Name.Builtin
 '('           Punctuation
 '3'           Literal.Number.Integer
 ')'           Punctuation
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_0_anchor.html b/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_0_anchor.html
index 891b10dd44..f0299cbb18 100644
--- a/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_0_anchor.html
+++ b/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_0_anchor.html
@@ -1,6 +1,6 @@
 
-
1# a
-2# b
-3# c
+ 
1# a
+2# b
+3# c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_0_noanchor.html b/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_0_noanchor.html index 6098070d3a..fae1da7081 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_0_noanchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_0_noanchor.html @@ -1,6 +1,6 @@
-
1# a
-2# b
-3# c
+ 
1# a
+2# b
+3# c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_3_anchor.html b/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_3_anchor.html index 7f1e2f9473..436d3c1821 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_3_anchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_3_anchor.html @@ -1,6 +1,6 @@
-
1# a
-2# b
+ 
1# a
+2# b
 3# c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_3_noanchor.html b/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_3_noanchor.html index 8a41726973..6d2b4d388f 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_3_noanchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_1_start_1_special_3_noanchor.html @@ -1,6 +1,6 @@
-
1# a
-2# b
+ 
1# a
+2# b
 3# c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_0_anchor.html b/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_0_anchor.html index d3cc83eef0..0fa9dd7884 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_0_anchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_0_anchor.html @@ -1,6 +1,6 @@
-
 8# a
- 9# b
-10# c
+ 
 8# a
+ 9# b
+10# c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_0_noanchor.html b/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_0_noanchor.html index 58bbddc823..4ae62b4dcd 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_0_noanchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_0_noanchor.html @@ -1,6 +1,6 @@
-
 8# a
- 9# b
-10# c
+ 
 8# a
+ 9# b
+10# c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_3_anchor.html b/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_3_anchor.html index c44459d907..0f3daf92d6 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_3_anchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_3_anchor.html @@ -1,6 +1,6 @@
-
 8# a
+ 
 8# a
  9# b
-10# c
+10# c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_3_noanchor.html b/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_3_noanchor.html index 90f1e9bc11..43174f5dd7 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_3_noanchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_1_start_8_special_3_noanchor.html @@ -1,6 +1,6 @@
-
 8# a
+ 
 8# a
  9# b
-10# c
+10# c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_0_anchor.html b/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_0_anchor.html index c578bb921b..a719d322cf 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_0_anchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_0_anchor.html @@ -1,6 +1,6 @@
-
 # a
-2# b
- # c
+ 
 # a
+2# b
+ # c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_0_noanchor.html b/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_0_noanchor.html index bf4bf25dce..10b1e06c8c 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_0_noanchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_0_noanchor.html @@ -1,6 +1,6 @@
-
 # a
-2# b
- # c
+ 
 # a
+2# b
+ # c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_3_anchor.html b/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_3_anchor.html index 4b4241de3a..0c2334aa38 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_3_anchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_3_anchor.html @@ -1,6 +1,6 @@
-
 # a
-2# b
+ 
 # a
+2# b
  # c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_3_noanchor.html b/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_3_noanchor.html index d198ce0d7b..04c69f54e5 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_3_noanchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_2_start_1_special_3_noanchor.html @@ -1,6 +1,6 @@
-
 # a
-2# b
+ 
 # a
+2# b
  # c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_0_anchor.html b/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_0_anchor.html index 35fc36a6b8..8462306a90 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_0_anchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_0_anchor.html @@ -1,6 +1,6 @@
-
 8# a
-  # b
-10# c
+ 
 8# a
+  # b
+10# c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_0_noanchor.html b/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_0_noanchor.html index 56a09210a9..4773f52e15 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_0_noanchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_0_noanchor.html @@ -1,6 +1,6 @@
-
 8# a
-  # b
-10# c
+ 
 8# a
+  # b
+10# c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_3_anchor.html b/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_3_anchor.html index fbf293ce74..b51fb6f8a2 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_3_anchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_3_anchor.html @@ -1,6 +1,6 @@
-
 8# a
+ 
 8# a
   # b
-10# c
+10# c
 
diff --git a/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_3_noanchor.html b/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_3_noanchor.html index 81f314dc92..98ef6a7b36 100644 --- a/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_3_noanchor.html +++ b/tests/html_linenos_expected_output/inline_nocls_step_2_start_8_special_3_noanchor.html @@ -1,6 +1,6 @@
-
 8# a
+ 
 8# a
   # b
-10# c
+10# c
 
diff --git a/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_0_anchor.html b/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_0_anchor.html index 3665353126..f43481619c 100644 --- a/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_0_anchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_0_anchor.html @@ -2,9 +2,9 @@
diff --git a/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_3_noanchor.html b/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_3_noanchor.html index 1f3c424b77..1cbd0e6c10 100644 --- a/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_3_noanchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_3_noanchor.html @@ -2,8 +2,8 @@ diff --git a/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_0_anchor.html b/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_0_anchor.html index 03ff144262..81c7a139bc 100644 --- a/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_0_anchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_0_anchor.html @@ -2,9 +2,9 @@ diff --git a/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_3_noanchor.html b/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_3_noanchor.html index 34b469e9e4..719d68bc23 100644 --- a/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_3_noanchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_3_noanchor.html @@ -2,8 +2,8 @@ diff --git a/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_0_anchor.html b/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_0_anchor.html index 3bbb52a517..b443f221b0 100644 --- a/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_0_anchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_0_anchor.html @@ -2,9 +2,9 @@ diff --git a/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_3_noanchor.html b/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_3_noanchor.html index 6e901af97c..c0808c3042 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_3_noanchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_3_noanchor.html @@ -2,8 +2,8 @@ diff --git a/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_0_anchor.html b/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_0_anchor.html index 2d69b757e5..7928c32b91 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_0_anchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_0_anchor.html @@ -2,9 +2,9 @@ diff --git a/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_3_noanchor.html b/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_3_noanchor.html index eecace4425..851e20d469 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_3_noanchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_3_noanchor.html @@ -2,8 +2,8 @@ diff --git a/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_0_anchor.html b/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_0_anchor.html index 576a524c83..afa37c989c 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_0_anchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_0_anchor.html @@ -2,9 +2,9 @@
-
1
-2
-3
+
1
+2
+3
diff --git a/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_0_noanchor.html b/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_0_noanchor.html index ddc7594e65..d3d325b52b 100644 --- a/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_0_noanchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_0_noanchor.html @@ -2,9 +2,9 @@
-
1
-2
-3
+
1
+2
+3
diff --git a/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_3_anchor.html b/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_3_anchor.html index ab0fdfb389..5c01c52c39 100644 --- a/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_3_anchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_1_start_1_special_3_anchor.html @@ -2,8 +2,8 @@
-
1
-2
+    
1
+2
 3
-
1
-2
+    
1
+2
 3
-
 8
- 9
-10
+
 8
+ 9
+10
diff --git a/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_0_noanchor.html b/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_0_noanchor.html index b8bf29eec8..07fba684d3 100644 --- a/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_0_noanchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_0_noanchor.html @@ -2,9 +2,9 @@
-
 8
- 9
-10
+
 8
+ 9
+10
diff --git a/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_3_anchor.html b/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_3_anchor.html index 98d1abbb60..aeeffeff4c 100644 --- a/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_3_anchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_3_anchor.html @@ -2,9 +2,9 @@
-
 8
+    
 8
  9
-10
+10
diff --git a/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_3_noanchor.html b/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_3_noanchor.html index 67642acd26..0d709908fd 100644 --- a/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_3_noanchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_1_start_8_special_3_noanchor.html @@ -2,9 +2,9 @@
-
 8
+    
 8
  9
-10
+10
diff --git a/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_0_anchor.html b/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_0_anchor.html index 80e5bdb129..bd2180af5f 100644 --- a/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_0_anchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_0_anchor.html @@ -2,9 +2,9 @@
-
 
-2
- 
+
 
+2
+ 
diff --git a/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_0_noanchor.html b/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_0_noanchor.html index a95ad95feb..c343e4f991 100644 --- a/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_0_noanchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_0_noanchor.html @@ -2,9 +2,9 @@
-
 
-2
- 
+
 
+2
+ 
diff --git a/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_3_anchor.html b/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_3_anchor.html index 1a4cc59fb3..63316d2364 100644 --- a/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_3_anchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_2_start_1_special_3_anchor.html @@ -2,8 +2,8 @@
-
 
-2
+    
 
+2
  
-
 
-2
+    
 
+2
  
-
 8
-  
-10
+
 8
+  
+10
diff --git a/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_0_noanchor.html b/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_0_noanchor.html index 907c06fc76..82750ebea1 100644 --- a/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_0_noanchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_0_noanchor.html @@ -2,9 +2,9 @@
-
 8
-  
-10
+
 8
+  
+10
diff --git a/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_3_anchor.html b/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_3_anchor.html index a39b486dc0..b2e87d4564 100644 --- a/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_3_anchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_3_anchor.html @@ -2,9 +2,9 @@
-
 8
+    
 8
   
-10
+10
diff --git a/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_3_noanchor.html b/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_3_noanchor.html index 25bde6025b..74e1b8befe 100644 --- a/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_3_noanchor.html +++ b/tests/html_linenos_expected_output/table_cls_step_2_start_8_special_3_noanchor.html @@ -2,9 +2,9 @@
-
 8
+    
 8
   
-10
+10
diff --git a/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_0_anchor.html b/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_0_anchor.html index 41ea57f349..efbed24082 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_0_anchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_0_anchor.html @@ -2,9 +2,9 @@
-
1
-2
-3
+
1
+2
+3
diff --git a/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_0_noanchor.html b/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_0_noanchor.html index 07ded26c09..4e2fc44e3c 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_0_noanchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_0_noanchor.html @@ -2,9 +2,9 @@
-
1
-2
-3
+
1
+2
+3
diff --git a/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_3_anchor.html b/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_3_anchor.html index f43e8bb786..5db1fa5886 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_3_anchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_1_start_1_special_3_anchor.html @@ -2,8 +2,8 @@
-
1
-2
+    
1
+2
 3
-
1
-2
+    
1
+2
 3
-
 8
- 9
-10
+
 8
+ 9
+10
diff --git a/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_0_noanchor.html b/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_0_noanchor.html index e9387996e7..a9e04f36ed 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_0_noanchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_0_noanchor.html @@ -2,9 +2,9 @@
-
 8
- 9
-10
+
 8
+ 9
+10
diff --git a/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_3_anchor.html b/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_3_anchor.html index 6cd0f9fa88..9402619b72 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_3_anchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_3_anchor.html @@ -2,9 +2,9 @@
-
 8
+    
 8
  9
-10
+10
diff --git a/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_3_noanchor.html b/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_3_noanchor.html index 12ed3fbd8b..5c8fd7ae53 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_3_noanchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_1_start_8_special_3_noanchor.html @@ -2,9 +2,9 @@
-
 8
+    
 8
  9
-10
+10
diff --git a/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_0_anchor.html b/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_0_anchor.html index eee939293b..75def9ab6b 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_0_anchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_0_anchor.html @@ -2,9 +2,9 @@
-
 
-2
- 
+
 
+2
+ 
diff --git a/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_0_noanchor.html b/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_0_noanchor.html index b67689b366..450940bf1f 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_0_noanchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_0_noanchor.html @@ -2,9 +2,9 @@
-
 
-2
- 
+
 
+2
+ 
diff --git a/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_3_anchor.html b/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_3_anchor.html index 11a44446a5..db6be9f7d7 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_3_anchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_2_start_1_special_3_anchor.html @@ -2,8 +2,8 @@
-
 
-2
+    
 
+2
  
-
 
-2
+    
 
+2
  
-
 8
-  
-10
+
 8
+  
+10
diff --git a/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_0_noanchor.html b/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_0_noanchor.html index f29ea4bfa4..e24f9d1471 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_0_noanchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_0_noanchor.html @@ -2,9 +2,9 @@
-
 8
-  
-10
+
 8
+  
+10
diff --git a/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_3_anchor.html b/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_3_anchor.html index 30ac581bcb..25b1ba5a8e 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_3_anchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_3_anchor.html @@ -2,9 +2,9 @@
-
 8
+    
 8
   
-10
+10
diff --git a/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_3_noanchor.html b/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_3_noanchor.html index a2ca8b8b5c..0dea8469d6 100644 --- a/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_3_noanchor.html +++ b/tests/html_linenos_expected_output/table_nocls_step_2_start_8_special_3_noanchor.html @@ -2,9 +2,9 @@
-
 8
+    
 8
   
-10
+10
diff --git a/tests/snippets/matlab/test_command_mode.txt b/tests/snippets/matlab/test_command_mode.txt index 554b4084a0..e9a8c1192b 100644 --- a/tests/snippets/matlab/test_command_mode.txt +++ b/tests/snippets/matlab/test_command_mode.txt @@ -6,7 +6,7 @@ help sin ---tokens--- -'help' Name +'help' Name.Builtin ' ' Text.Whitespace -'sin' Literal.String +'sin' Name.Builtin '\n' Text.Whitespace diff --git a/tests/snippets/matlab/test_comment_after_continuation.txt b/tests/snippets/matlab/test_comment_after_continuation.txt index 501407c913..baf88e3dbb 100644 --- a/tests/snippets/matlab/test_comment_after_continuation.txt +++ b/tests/snippets/matlab/test_comment_after_continuation.txt @@ -5,7 +5,7 @@ set('T',300,... a comment 'P',101325); ---tokens--- -'set' Name +'set' Name.Builtin '(' Punctuation "'" Literal.String "T'" Literal.String diff --git a/tests/snippets/matlab/test_line_continuation.txt b/tests/snippets/matlab/test_line_continuation.txt index bf46f8977e..1e47368e77 100644 --- a/tests/snippets/matlab/test_line_continuation.txt +++ b/tests/snippets/matlab/test_line_continuation.txt @@ -6,7 +6,7 @@ set('T',300,... 'P',101325); ---tokens--- -'set' Name +'set' Name.Builtin '(' Punctuation "'" Literal.String "T'" Literal.String diff --git a/tests/snippets/matlab/test_single_line.txt b/tests/snippets/matlab/test_single_line.txt index 90b2520a58..72a48f8b25 100644 --- a/tests/snippets/matlab/test_single_line.txt +++ b/tests/snippets/matlab/test_single_line.txt @@ -2,7 +2,7 @@ set('T',300,'P',101325); ---tokens--- -'set' Name +'set' Name.Builtin '(' Punctuation "'" Literal.String "T'" Literal.String diff --git a/tests/test_guess.py b/tests/test_guess.py index 16109a4a7f..83a8a71875 100644 --- a/tests/test_guess.py +++ b/tests/test_guess.py @@ -11,6 +11,8 @@ import pytest from pygments.lexers import guess_lexer, get_lexer_by_name +from pygments.lexers.basic import CbmBasicV2Lexer +from pygments.lexers.ecl import ECLLexer TESTDIR = Path(__file__).resolve().parent @@ -166,3 +168,17 @@ def test_guess_c_lexer(): ''' lexer = guess_lexer(code) assert lexer.__class__.__name__ == 'CLexer' + + +def test_cbmbasicv2_analyse_text(): + text = "10 PRINT \"PART 1\"" + res = CbmBasicV2Lexer.analyse_text(text) + assert res == 0.2 + + +def test_ecl_analyze_text(): + text = r""" + STRING ABC -> size32_t lenAbc, const char * abc; + """ + res = ECLLexer.analyse_text(text) + assert res == 0.01 diff --git a/tests/test_html_formatter.py b/tests/test_html_formatter.py index a4be61264a..5dd7173467 100644 --- a/tests/test_html_formatter.py +++ b/tests/test_html_formatter.py @@ -147,12 +147,12 @@ def test_get_style_defs_contains_default_line_numbers_styles(): style_defs = HtmlFormatter().get_style_defs().splitlines() assert style_defs[1] == ( - 'td.linenos pre ' - '{ color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; }' + 'td.linenos .normal ' + '{ color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }' ) assert style_defs[2] == ( 'span.linenos ' - '{ color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; }' + '{ color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }' ) @@ -166,7 +166,7 @@ class TestStyle(Style): style_defs = HtmlFormatter(style=TestStyle).get_style_defs().splitlines() assert style_defs[1] == ( - 'td.linenos pre ' + 'td.linenos .normal ' '{ color: #ff0000; background-color: #0000ff; padding-left: 5px; padding-right: 5px; }' ) assert style_defs[2] == ( @@ -174,7 +174,7 @@ class TestStyle(Style): '{ color: #ff0000; background-color: #0000ff; padding-left: 5px; padding-right: 5px; }' ) assert style_defs[3] == ( - 'td.linenos pre.special ' + 'td.linenos .special ' '{ color: #00ff00; background-color: #ffffff; padding-left: 5px; padding-right: 5px; }' ) assert style_defs[4] == ( diff --git a/tests/test_raw_token.py b/tests/test_raw_token.py new file mode 100644 index 0000000000..bae5a49dc1 --- /dev/null +++ b/tests/test_raw_token.py @@ -0,0 +1,68 @@ +import bz2 +import gzip + +from pygments import highlight +from pygments.formatters import HtmlFormatter, RawTokenFormatter +from pygments.lexers import PythonLexer, RawTokenLexer + + +def test_raw_token(): + code = "2 + α" + raw = highlight(code, PythonLexer(), RawTokenFormatter()) + html = highlight(code, PythonLexer(), HtmlFormatter()) + + assert highlight(raw, RawTokenLexer(), RawTokenFormatter()) == raw + assert highlight(raw, RawTokenLexer(), HtmlFormatter()) == html + assert highlight(raw.decode(), RawTokenLexer(), HtmlFormatter()) == html + + raw_gz = highlight(code, PythonLexer(), RawTokenFormatter(compress="gz")) + assert gzip.decompress(raw_gz) == raw + assert highlight(raw_gz, RawTokenLexer(compress="gz"), RawTokenFormatter()) == raw + assert ( + highlight( + raw_gz.decode("latin1"), RawTokenLexer(compress="gz"), RawTokenFormatter() + ) + == raw + ) + + raw_bz2 = highlight(code, PythonLexer(), RawTokenFormatter(compress="bz2")) + assert bz2.decompress(raw_bz2) == raw + assert highlight(raw_bz2, RawTokenLexer(compress="bz2"), RawTokenFormatter()) == raw + assert ( + highlight( + raw_bz2.decode("latin1"), RawTokenLexer(compress="bz2"), RawTokenFormatter() + ) + == raw + ) + + +def test_invalid_raw_token(): + # These should not throw exceptions. + assert ( + highlight("Tolkien", RawTokenLexer(), RawTokenFormatter()) + == b"Token.Error\t'Tolkien\\n'\n" + ) + assert ( + highlight("Tolkien\t'x'", RawTokenLexer(), RawTokenFormatter()) + == b"Token\t'x'\n" + ) + assert ( + highlight("Token.Text\t42", RawTokenLexer(), RawTokenFormatter()) + == b"Token.Error\t'Token.Text\\t42\\n'\n" + ) + assert ( + highlight("Token.Text\t'", RawTokenLexer(), RawTokenFormatter()) + == b'Token.Error\t"Token.Text\\t\'\\n"\n' + ) + assert ( + highlight("Token.Text\t'α'", RawTokenLexer(), RawTokenFormatter()) + == b"Token.Text\t'\\u03b1'\n" + ) + assert ( + highlight("Token.Text\tu'α'", RawTokenLexer(), RawTokenFormatter()) + == b"Token.Text\t'\\u03b1'\n" + ) + assert ( + highlight(b"Token.Text\t'\xff'", RawTokenLexer(), RawTokenFormatter()) + == b"Token.Text\t'\\xff'\n" + )