实例介绍
Raywenderlich 最新系列,iOS12 swift4.2,包括所有源码
【实例截图】
【核心代码】
bebe6edf-87ff-4465-9a7a-2917acaaed3c
├── 03-example-app
│ └── final
│ └── KooberApp
│ ├── Cartfile
│ ├── Cartfile.resolved
│ ├── Carthage
│ │ └── Checkouts
│ │ ├── Kingfisher
│ │ │ ├── CHANGELOG.md
│ │ │ ├── codecov.yml
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── Demo
│ │ │ │ ├── Demo
│ │ │ │ │ ├── Kingfisher-Demo
│ │ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ │ ├── Base.lproj
│ │ │ │ │ │ │ ├── LaunchScreen.xib
│ │ │ │ │ │ │ └── Main.storyboard
│ │ │ │ │ │ ├── CollectionViewCell.swift
│ │ │ │ │ │ ├── Images.xcassets
│ │ │ │ │ │ │ └── AppIcon.appiconset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── loader.gif
│ │ │ │ │ │ └── ViewController.swift
│ │ │ │ │ ├── Kingfisher-macOS-Demo
│ │ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ │ └── AppIcon.appiconset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Base.lproj
│ │ │ │ │ │ │ └── Main.storyboard
│ │ │ │ │ │ ├── Cell.xib
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ └── ViewController.swift
│ │ │ │ │ ├── Kingfisher-tvOS-Demo
│ │ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ │ ├── App Icon & Top Shelf Image.brandassets
│ │ │ │ │ │ │ │ ├── App Icon - Large.imagestack
│ │ │ │ │ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ └── Middle.imagestacklayer
│ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ ├── App Icon - Small.imagestack
│ │ │ │ │ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ └── Middle.imagestacklayer
│ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ └── Top Shelf Image.imageset
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── LaunchImage.launchimage
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Base.lproj
│ │ │ │ │ │ │ └── Main.storyboard
│ │ │ │ │ │ └── Info.plist
│ │ │ │ │ ├── Kingfisher-watchOS-Demo
│ │ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ │ └── AppIcon.appiconset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Base.lproj
│ │ │ │ │ │ │ └── Interface.storyboard
│ │ │ │ │ │ └── Info.plist
│ │ │ │ │ └── Kingfisher-watchOS-Demo Extension
│ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ └── README__ignoredByTemplate__
│ │ │ │ │ ├── ExtensionDelegate.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── InterfaceController.swift
│ │ │ │ └── Kingfisher-Demo.xcodeproj
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace
│ │ │ │ └── contents.xcworkspacedata
│ │ │ ├── docs
│ │ │ │ ├── badge.svg
│ │ │ │ ├── Classes
│ │ │ │ │ ├── AnimatedImageView
│ │ │ │ │ │ └── RepeatCount.html
│ │ │ │ │ ├── AnimatedImageView.html
│ │ │ │ │ ├── ImageCache
│ │ │ │ │ │ └── CacheCheckResult.html
│ │ │ │ │ ├── ImageCache.html
│ │ │ │ │ ├── ImageDownloader.html
│ │ │ │ │ ├── ImagePrefetcher.html
│ │ │ │ │ ├── Kingfisher.html
│ │ │ │ │ ├── KingfisherManager.html
│ │ │ │ │ └── RetrieveImageTask.html
│ │ │ │ ├── Classes.html
│ │ │ │ ├── css
│ │ │ │ │ ├── highlight.css
│ │ │ │ │ └── jazzy.css
│ │ │ │ ├── docsets
│ │ │ │ │ ├── Kingfisher.docset
│ │ │ │ │ │ └── Contents
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ └── Resources
│ │ │ │ │ │ ├── docSet.dsidx
│ │ │ │ │ │ └── Documents
│ │ │ │ │ │ ├── Classes
│ │ │ │ │ │ │ ├── AnimatedImageView
│ │ │ │ │ │ │ │ └── RepeatCount.html
│ │ │ │ │ │ │ ├── AnimatedImageView.html
│ │ │ │ │ │ │ ├── ImageCache
│ │ │ │ │ │ │ │ └── CacheCheckResult.html
│ │ │ │ │ │ │ ├── ImageCache.html
│ │ │ │ │ │ │ ├── ImageDownloader.html
│ │ │ │ │ │ │ ├── ImagePrefetcher.html
│ │ │ │ │ │ │ ├── Kingfisher.html
│ │ │ │ │ │ │ ├── KingfisherManager.html
│ │ │ │ │ │ │ └── RetrieveImageTask.html
│ │ │ │ │ │ ├── Classes.html
│ │ │ │ │ │ ├── css
│ │ │ │ │ │ │ ├── highlight.css
│ │ │ │ │ │ │ └── jazzy.css
│ │ │ │ │ │ ├── Enums
│ │ │ │ │ │ │ ├── CacheType.html
│ │ │ │ │ │ │ ├── ContentMode.html
│ │ │ │ │ │ │ ├── ImageFormat.html
│ │ │ │ │ │ │ ├── ImageProcessItem.html
│ │ │ │ │ │ │ ├── ImageTransition.html
│ │ │ │ │ │ │ ├── IndicatorType.html
│ │ │ │ │ │ │ ├── KingfisherError.html
│ │ │ │ │ │ │ └── KingfisherOptionsInfoItem.html
│ │ │ │ │ │ ├── Enums.html
│ │ │ │ │ │ ├── Extensions
│ │ │ │ │ │ │ ├── CGSize.html
│ │ │ │ │ │ │ ├── Collection.html
│ │ │ │ │ │ │ ├── Data.html
│ │ │ │ │ │ │ ├── Notification
│ │ │ │ │ │ │ │ └── Name.html
│ │ │ │ │ │ │ ├── Notification.html
│ │ │ │ │ │ │ └── URL.html
│ │ │ │ │ │ ├── Extensions.html
│ │ │ │ │ │ ├── Functions.html
│ │ │ │ │ │ ├── Global Variables.html
│ │ │ │ │ │ ├── img
│ │ │ │ │ │ │ ├── carat.png
│ │ │ │ │ │ │ ├── dash.png
│ │ │ │ │ │ │ └── gh.png
│ │ │ │ │ │ ├── index.html
│ │ │ │ │ │ ├── js
│ │ │ │ │ │ │ ├── jazzy.js
│ │ │ │ │ │ │ └── jquery.min.js
│ │ │ │ │ │ ├── Protocols
│ │ │ │ │ │ │ ├── AnimatedImageViewDelegate.html
│ │ │ │ │ │ │ ├── AuthenticationChallengeResponsable.html
│ │ │ │ │ │ │ ├── CacheSerializer.html
│ │ │ │ │ │ │ ├── CIImageProcessor.html
│ │ │ │ │ │ │ ├── ImageDownloaderDelegate.html
│ │ │ │ │ │ │ ├── ImageDownloadRequestModifier.html
│ │ │ │ │ │ │ ├── ImageModifier.html
│ │ │ │ │ │ │ ├── ImageProcessor.html
│ │ │ │ │ │ │ ├── Indicator.html
│ │ │ │ │ │ │ ├── KingfisherCompatible.html
│ │ │ │ │ │ │ ├── Placeholder.html
│ │ │ │ │ │ │ └── Resource.html
│ │ │ │ │ │ ├── Protocols.html
│ │ │ │ │ │ ├── search.json
│ │ │ │ │ │ ├── Structs
│ │ │ │ │ │ │ ├── AlignmentRectInsetsImageModifier.html
│ │ │ │ │ │ │ ├── AnyImageModifier.html
│ │ │ │ │ │ │ ├── AnyModifier.html
│ │ │ │ │ │ │ ├── BlackWhiteProcessor.html
│ │ │ │ │ │ │ ├── BlendImageProcessor.html
│ │ │ │ │ │ │ ├── BlurImageProcessor.html
│ │ │ │ │ │ │ ├── CGSizeProxy.html
│ │ │ │ │ │ │ ├── ColorControlsProcessor.html
│ │ │ │ │ │ │ ├── CompositingImageProcessor.html
│ │ │ │ │ │ │ ├── CroppingImageProcessor.html
│ │ │ │ │ │ │ ├── DataProxy.html
│ │ │ │ │ │ │ ├── DefaultCacheSerializer.html
│ │ │ │ │ │ │ ├── DefaultImageModifier.html
│ │ │ │ │ │ │ ├── DefaultImageProcessor.html
│ │ │ │ │ │ │ ├── Filter.html
│ │ │ │ │ │ │ ├── FlipsForRightToLeftLayoutDirectionImageModifier.html
│ │ │ │ │ │ │ ├── FormatIndicatedCacheSerializer.html
│ │ │ │ │ │ │ ├── ImageResource.html
│ │ │ │ │ │ │ ├── OverlayImageProcessor.html
│ │ │ │ │ │ │ ├── RectCorner.html
│ │ │ │ │ │ │ ├── RenderingModeImageModifier.html
│ │ │ │ │ │ │ ├── ResizingImageProcessor.html
│ │ │ │ │ │ │ ├── RetrieveImageDownloadTask.html
│ │ │ │ │ │ │ ├── RoundCornerImageProcessor.html
│ │ │ │ │ │ │ └── TintImageProcessor.html
│ │ │ │ │ │ ├── Structs.html
│ │ │ │ │ │ └── Typealiases.html
│ │ │ │ │ ├── Kingfisher.tgz
│ │ │ │ │ └── Kingfisher.xml
│ │ │ │ ├── Enums
│ │ │ │ │ ├── CacheType.html
│ │ │ │ │ ├── ContentMode.html
│ │ │ │ │ ├── ImageFormat.html
│ │ │ │ │ ├── ImageProcessItem.html
│ │ │ │ │ ├── ImageTransition.html
│ │ │ │ │ ├── IndicatorType.html
│ │ │ │ │ ├── KingfisherError.html
│ │ │ │ │ └── KingfisherOptionsInfoItem.html
│ │ │ │ ├── Enums.html
│ │ │ │ ├── Extensions
│ │ │ │ │ ├── CGSize.html
│ │ │ │ │ ├── Collection.html
│ │ │ │ │ ├── Data.html
│ │ │ │ │ ├── Notification
│ │ │ │ │ │ └── Name.html
│ │ │ │ │ ├── Notification.html
│ │ │ │ │ └── URL.html
│ │ │ │ ├── Extensions.html
│ │ │ │ ├── Functions.html
│ │ │ │ ├── Global Variables.html
│ │ │ │ ├── img
│ │ │ │ │ ├── carat.png
│ │ │ │ │ ├── dash.png
│ │ │ │ │ └── gh.png
│ │ │ │ ├── index.html
│ │ │ │ ├── js
│ │ │ │ │ ├── jazzy.js
│ │ │ │ │ └── jquery.min.js
│ │ │ │ ├── Protocols
│ │ │ │ │ ├── AnimatedImageViewDelegate.html
│ │ │ │ │ ├── AuthenticationChallengeResponsable.html
│ │ │ │ │ ├── CacheSerializer.html
│ │ │ │ │ ├── CIImageProcessor.html
│ │ │ │ │ ├── ImageDownloaderDelegate.html
│ │ │ │ │ ├── ImageDownloadRequestModifier.html
│ │ │ │ │ ├── ImageModifier.html
│ │ │ │ │ ├── ImageProcessor.html
│ │ │ │ │ ├── Indicator.html
│ │ │ │ │ ├── KingfisherCompatible.html
│ │ │ │ │ ├── Placeholder.html
│ │ │ │ │ └── Resource.html
│ │ │ │ ├── Protocols.html
│ │ │ │ ├── search.json
│ │ │ │ ├── Structs
│ │ │ │ │ ├── AlignmentRectInsetsImageModifier.html
│ │ │ │ │ ├── AnyImageModifier.html
│ │ │ │ │ ├── AnyModifier.html
│ │ │ │ │ ├── BlackWhiteProcessor.html
│ │ │ │ │ ├── BlendImageProcessor.html
│ │ │ │ │ ├── BlurImageProcessor.html
│ │ │ │ │ ├── CGSizeProxy.html
│ │ │ │ │ ├── ColorControlsProcessor.html
│ │ │ │ │ ├── CompositingImageProcessor.html
│ │ │ │ │ ├── CroppingImageProcessor.html
│ │ │ │ │ ├── DataProxy.html
│ │ │ │ │ ├── DefaultCacheSerializer.html
│ │ │ │ │ ├── DefaultImageModifier.html
│ │ │ │ │ ├── DefaultImageProcessor.html
│ │ │ │ │ ├── Filter.html
│ │ │ │ │ ├── FlipsForRightToLeftLayoutDirectionImageModifier.html
│ │ │ │ │ ├── FormatIndicatedCacheSerializer.html
│ │ │ │ │ ├── ImageResource.html
│ │ │ │ │ ├── OverlayImageProcessor.html
│ │ │ │ │ ├── RectCorner.html
│ │ │ │ │ ├── RenderingModeImageModifier.html
│ │ │ │ │ ├── ResizingImageProcessor.html
│ │ │ │ │ ├── RetrieveImageDownloadTask.html
│ │ │ │ │ ├── RoundCornerImageProcessor.html
│ │ │ │ │ └── TintImageProcessor.html
│ │ │ │ ├── Structs.html
│ │ │ │ ├── Typealiases.html
│ │ │ │ └── undocumented.json
│ │ │ ├── fastlane
│ │ │ │ ├── actions
│ │ │ │ │ ├── extract_current_change_log.rb
│ │ │ │ │ ├── git_commit_all.rb
│ │ │ │ │ ├── sync_build_number_to_git.rb
│ │ │ │ │ └── update_change_log.rb
│ │ │ │ └── Fastfile
│ │ │ ├── Gemfile
│ │ │ ├── Gemfile.lock
│ │ │ ├── images
│ │ │ │ ├── kingfisher-10.jpg
│ │ │ │ ├── kingfisher-1.jpg
│ │ │ │ ├── kingfisher-2.jpg
│ │ │ │ ├── kingfisher-3.jpg
│ │ │ │ ├── kingfisher-4.jpg
│ │ │ │ ├── kingfisher-5.jpg
│ │ │ │ ├── kingfisher-6.jpg
│ │ │ │ ├── kingfisher-7.jpg
│ │ │ │ ├── kingfisher-8.jpg
│ │ │ │ ├── kingfisher-9.jpg
│ │ │ │ └── logo.png
│ │ │ ├── Kingfisher.podspec
│ │ │ ├── Kingfisher.xcodeproj
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ ├── xcbaselines
│ │ │ │ │ └── D1ED2D3E1AD2D09F00CFC3EB.xcbaseline
│ │ │ │ │ ├── 74237B0B-7981-4A24-B6C4-95F4A5E7727F.plist
│ │ │ │ │ └── Info.plist
│ │ │ │ └── xcschemes
│ │ │ │ ├── Kingfisher-macOS.xcscheme
│ │ │ │ ├── Kingfisher-tvOS.xcscheme
│ │ │ │ ├── Kingfisher-watchOS.xcscheme
│ │ │ │ └── Kingfisher.xcscheme
│ │ │ ├── Kingfisher.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ ├── Kingfisher.xcscmblueprint
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ ├── LICENSE
│ │ │ ├── Package.swift
│ │ │ ├── Podfile
│ │ │ ├── Podfile.lock
│ │ │ ├── Pods
│ │ │ │ ├── Headers
│ │ │ │ │ ├── Private
│ │ │ │ │ │ └── Nocilla
│ │ │ │ │ │ ├── asihttprequeststub.h
│ │ │ │ │ │ ├── LSASIHTTPRequestAdapter.h
│ │ │ │ │ │ ├── LSASIHTTPRequestHook.h
│ │ │ │ │ │ ├── LSDataMatcher.h
│ │ │ │ │ │ ├── LSHTTPBody.h
│ │ │ │ │ │ ├── LSHTTPClientHook.h
│ │ │ │ │ │ ├── LSHTTPRequestDiff.h
│ │ │ │ │ │ ├── LSHTTPRequestDSLRepresentation.h
│ │ │ │ │ │ ├── LSHTTPRequest.h
│ │ │ │ │ │ ├── LSHTTPResponse.h
│ │ │ │ │ │ ├── LSHTTPStubURLProtocol.h
│ │ │ │ │ │ ├── LSMatcheable.h
│ │ │ │ │ │ ├── LSMatcher.h
│ │ │ │ │ │ ├── LSNocilla.h
│ │ │ │ │ │ ├── LSNSURLHook.h
│ │ │ │ │ │ ├── LSNSURLSessionHook.h
│ │ │ │ │ │ ├── LSRegexMatcher.h
│ │ │ │ │ │ ├── LSStringMatcher.h
│ │ │ │ │ │ ├── LSStubRequestDSL.h
│ │ │ │ │ │ ├── LSStubRequest.h
│ │ │ │ │ │ ├── LSStubResponseDSL.h
│ │ │ │ │ │ ├── LSStubResponse.h
│ │ │ │ │ │ ├── Nocilla.h
│ │ │ │ │ │ ├── NSData+Matcheable.h
│ │ │ │ │ │ ├── NSData+Nocilla.h
│ │ │ │ │ │ ├── NSRegularExpression+Matcheable.h
│ │ │ │ │ │ ├── NSString+Matcheable.h
│ │ │ │ │ │ ├── NSString+Nocilla.h
│ │ │ │ │ │ ├── NSURLRequest+DSL.h
│ │ │ │ │ │ └── NSURLRequest+LSHTTPRequest.h
│ │ │ │ │ └── Public
│ │ │ │ │ └── Nocilla
│ │ │ │ │ ├── LSHTTPBody.h
│ │ │ │ │ ├── LSMatcheable.h
│ │ │ │ │ ├── LSNocilla.h
│ │ │ │ │ ├── LSStubRequestDSL.h
│ │ │ │ │ ├── LSStubResponseDSL.h
│ │ │ │ │ ├── Nocilla.h
│ │ │ │ │ ├── NSData+Matcheable.h
│ │ │ │ │ ├── NSData+Nocilla.h
│ │ │ │ │ ├── NSRegularExpression+Matcheable.h
│ │ │ │ │ ├── NSString+Matcheable.h
│ │ │ │ │ └── NSString+Nocilla.h
│ │ │ │ ├── Local Podspecs
│ │ │ │ │ └── Nocilla.podspec.json
│ │ │ │ ├── Manifest.lock
│ │ │ │ ├── Nocilla
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── Nocilla
│ │ │ │ │ │ ├── Categories
│ │ │ │ │ │ │ ├── NSData+Nocilla.h
│ │ │ │ │ │ │ ├── NSData+Nocilla.m
│ │ │ │ │ │ │ ├── NSString+Nocilla.h
│ │ │ │ │ │ │ └── NSString+Nocilla.m
│ │ │ │ │ │ ├── Diff
│ │ │ │ │ │ │ ├── LSHTTPRequestDiff.h
│ │ │ │ │ │ │ └── LSHTTPRequestDiff.m
│ │ │ │ │ │ ├── DSL
│ │ │ │ │ │ │ ├── LSHTTPRequestDSLRepresentation.h
│ │ │ │ │ │ │ ├── LSHTTPRequestDSLRepresentation.m
│ │ │ │ │ │ │ ├── LSStubRequestDSL.h
│ │ │ │ │ │ │ ├── LSStubRequestDSL.m
│ │ │ │ │ │ │ ├── LSStubResponseDSL.h
│ │ │ │ │ │ │ └── LSStubResponseDSL.m
│ │ │ │ │ │ ├── Hooks
│ │ │ │ │ │ │ ├── ASIHTTPRequest
│ │ │ │ │ │ │ │ ├── ASIHTTPRequestStub.h
│ │ │ │ │ │ │ │ ├── ASIHTTPRequestStub.m
│ │ │ │ │ │ │ │ ├── LSASIHTTPRequestAdapter.h
│ │ │ │ │ │ │ │ ├── LSASIHTTPRequestAdapter.m
│ │ │ │ │ │ │ │ ├── LSASIHTTPRequestHook.h
│ │ │ │ │ │ │ │ └── LSASIHTTPRequestHook.m
│ │ │ │ │ │ │ ├── LSHTTPClientHook.h
│ │ │ │ │ │ │ ├── LSHTTPClientHook.m
│ │ │ │ │ │ │ ├── NSURLRequest
│ │ │ │ │ │ │ │ ├── LSHTTPStubURLProtocol.h
│ │ │ │ │ │ │ │ ├── LSHTTPStubURLProtocol.m
│ │ │ │ │ │ │ │ ├── LSNSURLHook.h
│ │ │ │ │ │ │ │ ├── LSNSURLHook.m
│ │ │ │ │ │ │ │ ├── NSURLRequest+DSL.h
│ │ │ │ │ │ │ │ ├── NSURLRequest+DSL.m
│ │ │ │ │ │ │ │ ├── NSURLRequest+LSHTTPRequest.h
│ │ │ │ │ │ │ │ └── NSURLRequest+LSHTTPRequest.m
│ │ │ │ │ │ │ └── NSURLSession
│ │ │ │ │ │ │ ├── LSNSURLSessionHook.h
│ │ │ │ │ │ │ └── LSNSURLSessionHook.m
│ │ │ │ │ │ ├── LSNocilla.h
│ │ │ │ │ │ ├── LSNocilla.m
│ │ │ │ │ │ ├── Matchers
│ │ │ │ │ │ │ ├── LSDataMatcher.h
│ │ │ │ │ │ │ ├── LSDataMatcher.m
│ │ │ │ │ │ │ ├── LSMatcheable.h
│ │ │ │ │ │ │ ├── LSMatcher.h
│ │ │ │ │ │ │ ├── LSMatcher.m
│ │ │ │ │ │ │ ├── LSRegexMatcher.h
│ │ │ │ │ │ │ ├── LSRegexMatcher.m
│ │ │ │ │ │ │ ├── LSStringMatcher.h
│ │ │ │ │ │ │ ├── LSStringMatcher.m
│ │ │ │ │ │ │ ├── NSData+Matcheable.h
│ │ │ │ │ │ │ ├── NSData+Matcheable.m
│ │ │ │ │ │ │ ├── NSRegularExpression+Matcheable.h
│ │ │ │ │ │ │ ├── NSRegularExpression+Matcheable.m
│ │ │ │ │ │ │ ├── NSString+Matcheable.h
│ │ │ │ │ │ │ └── NSString+Matcheable.m
│ │ │ │ │ │ ├── Model
│ │ │ │ │ │ │ ├── LSHTTPBody.h
│ │ │ │ │ │ │ ├── LSHTTPRequest.h
│ │ │ │ │ │ │ └── LSHTTPResponse.h
│ │ │ │ │ │ ├── Nocilla.h
│ │ │ │ │ │ └── Stubs
│ │ │ │ │ │ ├── LSStubRequest.h
│ │ │ │ │ │ ├── LSStubRequest.m
│ │ │ │ │ │ ├── LSStubResponse.h
│ │ │ │ │ │ └── LSStubResponse.m
│ │ │ │ │ └── README.md
│ │ │ │ ├── Pods.xcodeproj
│ │ │ │ │ └── project.pbxproj
│ │ │ │ └── Target Support Files
│ │ │ │ ├── Nocilla-iOS
│ │ │ │ │ ├── Nocilla-iOS-dummy.m
│ │ │ │ │ ├── Nocilla-iOS-prefix.pch
│ │ │ │ │ └── Nocilla-iOS.xcconfig
│ │ │ │ ├── Nocilla-macOS
│ │ │ │ │ ├── Nocilla-macOS-dummy.m
│ │ │ │ │ ├── Nocilla-macOS-prefix.pch
│ │ │ │ │ └── Nocilla-macOS.xcconfig
│ │ │ │ ├── Nocilla-tvOS
│ │ │ │ │ ├── Nocilla-tvOS-dummy.m
│ │ │ │ │ ├── Nocilla-tvOS-prefix.pch
│ │ │ │ │ └── Nocilla-tvOS.xcconfig
│ │ │ │ ├── Pods-KingfisherTests
│ │ │ │ │ ├── Pods-KingfisherTests-acknowledgements.markdown
│ │ │ │ │ ├── Pods-KingfisherTests-acknowledgements.plist
│ │ │ │ │ ├── Pods-KingfisherTests.debug.xcconfig
│ │ │ │ │ ├── Pods-KingfisherTests-dummy.m
│ │ │ │ │ ├── Pods-KingfisherTests-frameworks.sh
│ │ │ │ │ ├── Pods-KingfisherTests.release.xcconfig
│ │ │ │ │ └── Pods-KingfisherTests-resources.sh
│ │ │ │ ├── Pods-KingfisherTests-macOS
│ │ │ │ │ ├── Pods-KingfisherTests-macOS-acknowledgements.markdown
│ │ │ │ │ ├── Pods-KingfisherTests-macOS-acknowledgements.plist
│ │ │ │ │ ├── Pods-KingfisherTests-macOS.debug.xcconfig
│ │ │ │ │ ├── Pods-KingfisherTests-macOS-dummy.m
│ │ │ │ │ ├── Pods-KingfisherTests-macOS-frameworks.sh
│ │ │ │ │ ├── Pods-KingfisherTests-macOS.release.xcconfig
│ │ │ │ │ └── Pods-KingfisherTests-macOS-resources.sh
│ │ │ │ └── Pods-KingfisherTests-tvOS
│ │ │ │ ├── Pods-KingfisherTests-tvOS-acknowledgements.markdown
│ │ │ │ ├── Pods-KingfisherTests-tvOS-acknowledgements.plist
│ │ │ │ ├── Pods-KingfisherTests-tvOS.debug.xcconfig
│ │ │ │ ├── Pods-KingfisherTests-tvOS-dummy.m
│ │ │ │ ├── Pods-KingfisherTests-tvOS-frameworks.sh
│ │ │ │ ├── Pods-KingfisherTests-tvOS.release.xcconfig
│ │ │ │ └── Pods-KingfisherTests-tvOS-resources.sh
│ │ │ ├── README.md
│ │ │ ├── setup.sh
│ │ │ ├── Sources
│ │ │ │ ├── AnimatedImageView.swift
│ │ │ │ ├── Box.swift
│ │ │ │ ├── CacheSerializer.swift
│ │ │ │ ├── Filter.swift
│ │ │ │ ├── FormatIndicatedCacheSerializer.swift
│ │ │ │ ├── ImageCache.swift
│ │ │ │ ├── ImageDownloader.swift
│ │ │ │ ├── ImageModifier.swift
│ │ │ │ ├── ImagePrefetcher.swift
│ │ │ │ ├── ImageProcessor.swift
│ │ │ │ ├── Image.swift
│ │ │ │ ├── ImageTransition.swift
│ │ │ │ ├── ImageView+Kingfisher.swift
│ │ │ │ ├── Indicator.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Kingfisher.h
│ │ │ │ ├── KingfisherManager.swift
│ │ │ │ ├── KingfisherOptionsInfo.swift
│ │ │ │ ├── Kingfisher.swift
│ │ │ │ ├── NSButton+Kingfisher.swift
│ │ │ │ ├── Placeholder.swift
│ │ │ │ ├── RequestModifier.swift
│ │ │ │ ├── Resource.swift
│ │ │ │ ├── String+MD5.swift
│ │ │ │ ├── ThreadHelper.swift
│ │ │ │ ├── UIButton+Kingfisher.swift
│ │ │ │ └── WKInterfaceImage+Kingfisher.swift
│ │ │ └── Tests
│ │ │ ├── KingfisherTests
│ │ │ │ ├── dancing-banana.gif
│ │ │ │ ├── ImageCacheTests.swift
│ │ │ │ ├── ImageDownloaderTests.swift
│ │ │ │ ├── ImageExtensionTests.swift
│ │ │ │ ├── ImageModifierTests.swift
│ │ │ │ ├── ImagePrefetcherTests.swift
│ │ │ │ ├── ImageProcessorTests.swift
│ │ │ │ ├── ImageViewExtensionTests.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── KingfisherManagerTests.swift
│ │ │ │ ├── KingfisherOptionsInfoTests.swift
│ │ │ │ ├── KingfisherTestHelper.swift
│ │ │ │ ├── KingfisherTests-Bridging-Header.h
│ │ │ │ ├── NSButtonExtensionTests.swift
│ │ │ │ ├── single-frame.gif
│ │ │ │ ├── StringExtensionTests.swift
│ │ │ │ └── UIButtonExtensionTests.swift
│ │ │ ├── KingfisherTests-macOS
│ │ │ │ └── Info.plist
│ │ │ └── KingfisherTests-tvOS
│ │ │ └── Info.plist
│ │ ├── PromiseKit
│ │ │ ├── docker-compose.yml
│ │ │ ├── Documentation
│ │ │ │ ├── Appendix.md
│ │ │ │ ├── CommonPatterns.md
│ │ │ │ ├── Examples
│ │ │ │ │ ├── ImageCache.md
│ │ │ │ │ └── URLSession+BadResponseErrors.swift
│ │ │ │ ├── FAQ.md
│ │ │ │ ├── GettingStarted.md
│ │ │ │ ├── Installation.md
│ │ │ │ ├── ObjectiveC.md
│ │ │ │ ├── README.md
│ │ │ │ └── Troubleshooting.md
│ │ │ ├── Extensions
│ │ │ │ ├── Accounts
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKAccounts.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKAccounts.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── ACAccountStore+AnyPromise.h
│ │ │ │ │ │ ├── ACAccountStore+AnyPromise.m
│ │ │ │ │ │ └── ACAccountStore+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestAccounts.swift
│ │ │ │ ├── AddressBook
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKAddressBook.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKAddressBook.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── ABAddressBookRequestAccess+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestAddressBook.swift
│ │ │ │ ├── Alamofire
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.private
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ ├── PMKAlamofire.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKAlamofire.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── Alamofire+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestAlamofire.swift
│ │ │ │ ├── AssetsLibrary
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKAssetsLibrary.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKAssetsLibrary.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── ALAssetsLibrary+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── app.swift
│ │ │ │ │ ├── Default-568h@2x.png
│ │ │ │ │ ├── Entitlements.plist
│ │ │ │ │ └── TestUIImagePickerController.swift
│ │ │ │ ├── AVFoundation
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKAVFoundation.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKAVFoundation.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── AVAudioSession+AnyPromise.h
│ │ │ │ │ │ ├── AVAudioSession+AnyPromise.m
│ │ │ │ │ │ └── AVAudioSession+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── TestAVFoundation.m
│ │ │ │ │ └── TestAVFoundation.swift
│ │ │ │ ├── Bolts
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKBolts.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKBolts.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── BFTask+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestBolts.swift
│ │ │ │ ├── CloudKit
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ ├── PMKCloudKit.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKCloudKit.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── CKContainer+AnyPromise.h
│ │ │ │ │ │ ├── CKContainer+AnyPromise.m
│ │ │ │ │ │ ├── CKContainer+Promise.swift
│ │ │ │ │ │ ├── CKDatabase+AnyPromise.h
│ │ │ │ │ │ ├── CKDatabase+AnyPromise.m
│ │ │ │ │ │ ├── CKDatabase+Promise.swift
│ │ │ │ │ │ └── PMKCloudKit.h
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── infrastructure.h
│ │ │ │ │ ├── infrastructure.m
│ │ │ │ │ └── TestCloudKit.swift
│ │ │ │ ├── CoreBluetooth
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKCoreBluetooth.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKCoreBluetooth.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── CBCentralManager+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── CBTests.swift
│ │ │ │ ├── CoreLocation
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKCoreLocation.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKCoreLocation.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── CLGeocoder+AnyPromise.h
│ │ │ │ │ │ ├── CLGeocoder+AnyPromise.m
│ │ │ │ │ │ ├── CLGeocoder+Promise.swift
│ │ │ │ │ │ ├── CLLocationManager+AnyPromise.h
│ │ │ │ │ │ ├── CLLocationManager+AnyPromise.m
│ │ │ │ │ │ ├── CLLocationManager+Promise.swift
│ │ │ │ │ │ └── PMKCoreLocation.h
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── CLGeocoderTests.swift
│ │ │ │ │ ├── CLLocationManagerTests.swift
│ │ │ │ │ └── Entitlements.plist
│ │ │ │ ├── EventKit
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKEventKit.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKEventKit.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── EKEventStore+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── Entitlements.plist
│ │ │ │ │ └── TestEventKit.swift
│ │ │ │ ├── Foundation
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.private
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ ├── PMKFoundation.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKFoundation.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── afterlife.swift
│ │ │ │ │ │ ├── NSNotificationCenter+AnyPromise.h
│ │ │ │ │ │ ├── NSNotificationCenter+AnyPromise.m
│ │ │ │ │ │ ├── NSNotificationCenter+Promise.swift
│ │ │ │ │ │ ├── NSObject+Promise.swift
│ │ │ │ │ │ ├── NSTask+AnyPromise.h
│ │ │ │ │ │ ├── NSTask+AnyPromise.m
│ │ │ │ │ │ ├── NSURLSession+AnyPromise.h
│ │ │ │ │ │ ├── NSURLSession+AnyPromise.m
│ │ │ │ │ │ ├── NSURLSession+Promise.swift
│ │ │ │ │ │ ├── PMKFoundation.h
│ │ │ │ │ │ └── Process+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── TestNSNotificationCenter.swift
│ │ │ │ │ ├── TestNSObject.swift
│ │ │ │ │ ├── TestNSTask.swift
│ │ │ │ │ ├── TestNSURLSession.m
│ │ │ │ │ └── TestNSURLSession.swift
│ │ │ │ ├── HomeKit
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKHomeKit.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKHomeKit.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── HMAcessoryBrowser+Promise.swift
│ │ │ │ │ │ ├── HMCharacteristic+Promise.swift
│ │ │ │ │ │ ├── HMHomeManager+Promise.swift
│ │ │ │ │ │ ├── HMHome+Promise.swift
│ │ │ │ │ │ └── Utils.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── Entitlements.plist
│ │ │ │ │ ├── HMAccessoryBrowserTests.swift
│ │ │ │ │ └── UtilsTests.swift
│ │ │ │ ├── MapKit
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKMapKit.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKMapKit.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── MKDirections+AnyPromise.h
│ │ │ │ │ │ ├── MKDirections+AnyPromise.m
│ │ │ │ │ │ ├── MKDirections+Promise.swift
│ │ │ │ │ │ ├── MKMapSnapshotter+AnyPromise.h
│ │ │ │ │ │ ├── MKMapSnapshotter+AnyPromise.m
│ │ │ │ │ │ ├── MKMapSnapshotter+Promise.swift
│ │ │ │ │ │ └── PMKMapKit.h
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestMapKit.swift
│ │ │ │ ├── MessagesUI
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKMessagesUI.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKMessagesUI.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── MFMailComposeViewController+Promise.swift
│ │ │ │ │ │ └── MFMessageComposeViewController+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestMessageUI.swift
│ │ │ │ ├── OMGHTTPURLRQ
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.private
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKOMGHTTPURLRQ.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKOMGHTTPURLRQ.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── NSURLSession+OMG+AnyPromise.m
│ │ │ │ │ │ ├── NSURLSession+OMG+Promise.swift
│ │ │ │ │ │ └── PMKOMGHTTPURLRQ.h
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── TestNSURLSession.m
│ │ │ │ │ └── TestNSURLSession.swift
│ │ │ │ ├── Photos
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKPhotos.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKPhotos.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── PHPhotoLibrary+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── PHPhototLibraryTests.swift
│ │ │ │ ├── QuartzCore
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKQCTests
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ └── PMKQCTests.swift
│ │ │ │ │ ├── PMKQuartzCore.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKQuartzCore.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── CALayer+AnyPromise.h
│ │ │ │ │ │ ├── CALayer+AnyPromise.m
│ │ │ │ │ │ └── PMKQuartzCore.h
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestQuartzCore.m
│ │ │ │ ├── Social
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKSocial.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKSocial.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── PMKSocial.h
│ │ │ │ │ │ ├── SLComposeViewController+Promise.swift
│ │ │ │ │ │ ├── SLRequest+AnyPromise.h
│ │ │ │ │ │ ├── SLRequest+AnyPromise.m
│ │ │ │ │ │ └── SLRequest+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── TestSLComposeViewController.swift
│ │ │ │ │ ├── TestSocial.m
│ │ │ │ │ └── TestSocial.swift
│ │ │ │ ├── StoreKit
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKStoreKit.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKStoreKit.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── PMKStoreKit.h
│ │ │ │ │ │ ├── SKPayment+Promise.swift
│ │ │ │ │ │ ├── SKPaymentQueue+Promise.swift
│ │ │ │ │ │ ├── SKProductsRequest+Promise.swift
│ │ │ │ │ │ ├── SKReceiptRefreshRequest+Promise.swift
│ │ │ │ │ │ ├── SKRequest+AnyPromise.h
│ │ │ │ │ │ └── SKRequest+AnyPromise.m
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── TestStoreKit.m
│ │ │ │ │ └── TestStoreKit.swift
│ │ │ │ ├── SystemConfiguration
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKSystemConfiguration.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKSystemConfiguration.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── PMKSystemConfiguration.h
│ │ │ │ │ │ ├── SCNetworkReachability+AnyPromise.h
│ │ │ │ │ │ ├── SCNetworkReachability+AnyPromise.m
│ │ │ │ │ │ └── SCNetworkReachability+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── SCTests.swift
│ │ │ │ ├── UIKit
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKUIKit.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKUIKit.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── PMKUIKit.h
│ │ │ │ │ │ ├── UIImagePickerController+Promise.swift
│ │ │ │ │ │ ├── UIView+AnyPromise.h
│ │ │ │ │ │ ├── UIView+AnyPromise.m
│ │ │ │ │ │ ├── UIViewController+AnyPromise.h
│ │ │ │ │ │ ├── UIViewController+AnyPromise.m
│ │ │ │ │ │ ├── UIView+Promise.swift
│ │ │ │ │ │ └── UIViewPropertyAnimator+Promise.swift
│ │ │ │ │ ├── Tests
│ │ │ │ │ │ ├── infrastructure.swift
│ │ │ │ │ │ ├── TestUIImagePickerController.swift
│ │ │ │ │ │ ├── TestUIViewController.m
│ │ │ │ │ │ └── TestUIView.swift
│ │ │ │ │ └── UITests
│ │ │ │ │ ├── app.swift
│ │ │ │ │ ├── Default-568h@2x.png
│ │ │ │ │ ├── Entitlements.plist
│ │ │ │ │ └── TestUIImagePickerController.swift
│ │ │ │ └── WatchConnectivity
│ │ │ │ ├── Cartfile
│ │ │ │ ├── Cartfile.resolved
│ │ │ │ ├── Carthage.xcconfig
│ │ │ │ ├── Info.plist
│ │ │ │ ├── PMKWatchConnectivity.xcodeproj
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ └── xcshareddata
│ │ │ │ │ └── xcschemes
│ │ │ │ │ └── PMKWatchConnectivity.xcscheme
│ │ │ │ ├── README.markdown
│ │ │ │ ├── Sources
│ │ │ │ │ └── WCSession+Promise.swift
│ │ │ │ └── Tests
│ │ │ │ └── TestWatchConnectivity.swift
│ │ │ ├── LICENSE
│ │ │ ├── Package.swift
│ │ │ ├── PromiseKit.playground
│ │ │ │ ├── Contents.swift
│ │ │ │ ├── contents.xcplayground
│ │ │ │ └── section-1.swift
│ │ │ ├── PromiseKit.xcodeproj
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata
│ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ └── xcshareddata
│ │ │ │ └── xcschemes
│ │ │ │ └── PromiseKit.xcscheme
│ │ │ ├── README.md
│ │ │ ├── Sources
│ │ │ │ ├── after.m
│ │ │ │ ├── after.swift
│ │ │ │ ├── AnyPromise.h
│ │ │ │ ├── AnyPromise.m
│ │ │ │ ├── AnyPromise+Private.h
│ │ │ │ ├── AnyPromise.swift
│ │ │ │ ├── Box.swift
│ │ │ │ ├── Catchable.swift
│ │ │ │ ├── Configuration.swift
│ │ │ │ ├── CustomStringConvertible.swift
│ │ │ │ ├── Deprecations.swift
│ │ │ │ ├── dispatch_promise.m
│ │ │ │ ├── DispatchQueue+Promise.swift
│ │ │ │ ├── Error.swift
│ │ │ │ ├── firstly.swift
│ │ │ │ ├── fwd.h
│ │ │ │ ├── GlobalState.m
│ │ │ │ ├── Guarantee.swift
│ │ │ │ ├── hang.m
│ │ │ │ ├── hang.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── join.m
│ │ │ │ ├── join.swift
│ │ │ │ ├── NSMethodSignatureForBlock.m
│ │ │ │ ├── PMKCallVariadicBlock.m
│ │ │ │ ├── Promise+AnyPromise.swift
│ │ │ │ ├── PromiseKit.h
│ │ │ │ ├── Promise+Properties.swift
│ │ │ │ ├── Promise.swift
│ │ │ │ ├── race.m
│ │ │ │ ├── race.swift
│ │ │ │ ├── Resolver.swift
│ │ │ │ ├── State.swift
│ │ │ │ ├── SwiftPM.swift
│ │ │ │ ├── Thenable.swift
│ │ │ │ ├── when.m
│ │ │ │ ├── when.swift
│ │ │ │ ├── wrap.swift
│ │ │ │ └── Zalgo.swift
│ │ │ └── Tests
│ │ │ ├── A+
│ │ │ │ ├── 0.0.0.swift
│ │ │ │ ├── 2.1.2.swift
│ │ │ │ ├── 2.1.3.swift
│ │ │ │ ├── 2.2.2.swift
│ │ │ │ ├── 2.2.3.swift
│ │ │ │ ├── 2.2.4.swift
│ │ │ │ ├── 2.2.6.swift
│ │ │ │ ├── 2.2.7.swift
│ │ │ │ ├── 2.3.1.swift
│ │ │ │ ├── 2.3.2.swift
│ │ │ │ ├── 2.3.4.swift
│ │ │ │ └── README.md
│ │ │ ├── Bridging
│ │ │ │ ├── BridgingTests.m
│ │ │ │ ├── BridgingTests.swift
│ │ │ │ ├── Infrastructure.h
│ │ │ │ ├── Infrastructure.m
│ │ │ │ └── Infrastructure.swift
│ │ │ ├── CoreObjC
│ │ │ │ ├── AnyPromiseTests.m
│ │ │ │ ├── AnyPromiseTests.swift
│ │ │ │ ├── HangTests.m
│ │ │ │ ├── JoinTests.m
│ │ │ │ ├── PMKManifoldTests.m
│ │ │ │ └── WhenTests.m
│ │ │ ├── CorePromise
│ │ │ │ ├── 01_AnyPromiseTests.m
│ │ │ │ ├── 01_PromiseTests.swift
│ │ │ │ ├── 02_CancellationTests.swift
│ │ │ │ ├── 02_DefaultDispatchQueueTests.swift
│ │ │ │ ├── 02_ErrorUnhandlerTests.m
│ │ │ │ ├── 02_ErrorUnhandlerTests.swift
│ │ │ │ ├── 02_PMKManifoldTests.m
│ │ │ │ ├── 02_ZalgoTests.swift
│ │ │ │ ├── 03_AfterTests.swift
│ │ │ │ ├── 03_HangTests.m
│ │ │ │ ├── 03_JoinTests.m
│ │ │ │ ├── 03_JoinTests.swift
│ │ │ │ ├── 03_JointTests.swift
│ │ │ │ ├── 03_RaceTests.swift
│ │ │ │ ├── 03_WhenConcurrentTests.swift
│ │ │ │ ├── 03_WhenTests.m
│ │ │ │ ├── 03_WhenTests.swift
│ │ │ │ ├── 03_WrapTests.swift
│ │ │ │ ├── 04_VerifySubclassing.swift
│ │ │ │ ├── 05_PromiseTupleTests.swift
│ │ │ │ ├── 98_StressTests.swift
│ │ │ │ ├── 99_RegressionTests.swift
│ │ │ │ ├── AfterTests.swift
│ │ │ │ ├── CancellableErrorTests.swift
│ │ │ │ ├── CatchableTests.swift
│ │ │ │ ├── DefaultDispatchQueueTests.swift
│ │ │ │ ├── ErrorTests.swift
│ │ │ │ ├── GuaranteeTests.swift
│ │ │ │ ├── HangTests.swift
│ │ │ │ ├── Infrastructure.h
│ │ │ │ ├── Infrastructure.m
│ │ │ │ ├── Infrastructure.swift
│ │ │ │ ├── PMKDefaultDispatchQueueTest.swift
│ │ │ │ ├── PromiseTests.swift
│ │ │ │ ├── RaceTests.swift
│ │ │ │ ├── RegressionTests.swift
│ │ │ │ ├── ResolverTests.swift
│ │ │ │ ├── StressTests.swift
│ │ │ │ ├── ThenableTests.swift
│ │ │ │ ├── Utilities.swift
│ │ │ │ ├── WhenConcurrentTests.swift
│ │ │ │ ├── WhenResolvedTests.swift
│ │ │ │ ├── WhenTests.swift
│ │ │ │ └── ZalgoTests.swift
│ │ │ ├── DeprecationTests.swift
│ │ │ ├── JS-A+
│ │ │ │ ├── AllTests.swift
│ │ │ │ ├── index.js
│ │ │ │ ├── JSAdapter.swift
│ │ │ │ ├── JSPromise.swift
│ │ │ │ ├── JSUtils.swift
│ │ │ │ ├── MockNodeEnvironment.swift
│ │ │ │ ├── package.json
│ │ │ │ ├── package-lock.json
│ │ │ │ ├── README.md
│ │ │ │ └── webpack.config.js
│ │ │ └── LinuxMain.swift
│ │ └── RxSwift
│ │ ├── assets
│ │ │ ├── CNAME.txt
│ │ │ ├── LICENSE.txt
│ │ │ └── Rx_Logo_M.png
│ │ ├── CHANGELOG.md
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── CONTRIBUTING.md
│ │ ├── Dangerfile
│ │ ├── default.profraw
│ │ ├── Documentation
│ │ │ ├── ComparisonWithOtherLibraries.md
│ │ │ ├── DesignRationale.md
│ │ │ ├── ExampleApp.md
│ │ │ ├── Examples.md
│ │ │ ├── GettingStarted.md
│ │ │ ├── HotAndColdObservables.md
│ │ │ ├── MathBehindRx.md
│ │ │ ├── NewFeatureRequestTemplate.md
│ │ │ ├── Playgrounds.md
│ │ │ ├── Schedulers.md
│ │ │ ├── Subjects.md
│ │ │ ├── Tips.md
│ │ │ ├── Traits.md
│ │ │ ├── UnitTests.md
│ │ │ ├── Warnings.md
│ │ │ └── Why.md
│ │ ├── Gemfile
│ │ ├── Gemfile.lock
│ │ ├── LICENSE.md
│ │ ├── Package.swift
│ │ ├── Platform
│ │ │ ├── DataStructures
│ │ │ │ ├── Bag.swift
│ │ │ │ ├── InfiniteSequence.swift
│ │ │ │ ├── PriorityQueue.swift
│ │ │ │ └── Queue.swift
│ │ │ ├── DeprecationWarner.swift
│ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ ├── Platform.Darwin.swift
│ │ │ ├── Platform.Linux.swift
│ │ │ └── RecursiveLock.swift
│ │ ├── Preprocessor
│ │ │ ├── Preprocessor
│ │ │ │ └── main.swift
│ │ │ ├── Preprocessor.xcodeproj
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── README.md
│ │ ├── README.md
│ │ ├── RxBlocking
│ │ │ ├── BlockingObservable+Operators.swift
│ │ │ ├── BlockingObservable.swift
│ │ │ ├── Info.plist
│ │ │ ├── ObservableConvertibleType+Blocking.swift
│ │ │ ├── Platform
│ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ ├── Platform.Linux.swift
│ │ │ │ └── RecursiveLock.swift
│ │ │ ├── README.md
│ │ │ ├── Resources.swift
│ │ │ └── RunLoopLock.swift
│ │ ├── RxBlocking.podspec
│ │ ├── RxCocoa
│ │ │ ├── Common
│ │ │ │ ├── Binder.swift
│ │ │ │ ├── ControlTarget.swift
│ │ │ │ ├── DelegateProxy.swift
│ │ │ │ ├── DelegateProxyType.swift
│ │ │ │ ├── KeyPathBinder.swift
│ │ │ │ ├── NSLayoutConstraint+Rx.swift
│ │ │ │ ├── Observable+Bind.swift
│ │ │ │ ├── RxCocoaObjCRuntimeError+Extensions.swift
│ │ │ │ ├── RxTarget.swift
│ │ │ │ ├── SectionedViewDataSourceType.swift
│ │ │ │ └── TextInput.swift
│ │ │ ├── Deprecated.swift
│ │ │ ├── Foundation
│ │ │ │ ├── KVORepresentable+CoreGraphics.swift
│ │ │ │ ├── KVORepresentable.swift
│ │ │ │ ├── KVORepresentable+Swift.swift
│ │ │ │ ├── Logging.swift
│ │ │ │ ├── NotificationCenter+Rx.swift
│ │ │ │ ├── NSObject+Rx+KVORepresentable.swift
│ │ │ │ ├── NSObject+Rx+RawRepresentable.swift
│ │ │ │ ├── NSObject+Rx.swift
│ │ │ │ └── URLSession+Rx.swift
│ │ │ ├── Info.plist
│ │ │ ├── iOS
│ │ │ │ ├── DataSources
│ │ │ │ │ ├── RxCollectionViewReactiveArrayDataSource.swift
│ │ │ │ │ ├── RxPickerViewAdapter.swift
│ │ │ │ │ └── RxTableViewReactiveArrayDataSource.swift
│ │ │ │ ├── Events
│ │ │ │ │ └── ItemEvents.swift
│ │ │ │ ├── NSTextStorage+Rx.swift
│ │ │ │ ├── Protocols
│ │ │ │ │ ├── RxCollectionViewDataSourceType.swift
│ │ │ │ │ ├── RxPickerViewDataSourceType.swift
│ │ │ │ │ └── RxTableViewDataSourceType.swift
│ │ │ │ ├── Proxies
│ │ │ │ │ ├── RxCollectionViewDataSourcePrefetchingProxy.swift
│ │ │ │ │ ├── RxCollectionViewDataSourceProxy.swift
│ │ │ │ │ ├── RxCollectionViewDelegateProxy.swift
│ │ │ │ │ ├── RxNavigationControllerDelegateProxy.swift
│ │ │ │ │ ├── RxPickerViewDataSourceProxy.swift
│ │ │ │ │ ├── RxPickerViewDelegateProxy.swift
│ │ │ │ │ ├── RxScrollViewDelegateProxy.swift
│ │ │ │ │ ├── RxSearchBarDelegateProxy.swift
│ │ │ │ │ ├── RxSearchControllerDelegateProxy.swift
│ │ │ │ │ ├── RxTabBarControllerDelegateProxy.swift
│ │ │ │ │ ├── RxTabBarDelegateProxy.swift
│ │ │ │ │ ├── RxTableViewDataSourcePrefetchingProxy.swift
│ │ │ │ │ ├── RxTableViewDataSourceProxy.swift
│ │ │ │ │ ├── RxTableViewDelegateProxy.swift
│ │ │ │ │ ├── RxTextStorageDelegateProxy.swift
│ │ │ │ │ ├── RxTextViewDelegateProxy.swift
│ │ │ │ │ └── RxWebViewDelegateProxy.swift
│ │ │ │ ├── UIActivityIndicatorView+Rx.swift
│ │ │ │ ├── UIAlertAction+Rx.swift
│ │ │ │ ├── UIApplication+Rx.swift
│ │ │ │ ├── UIBarButtonItem+Rx.swift
│ │ │ │ ├── UIButton+Rx.swift
│ │ │ │ ├── UICollectionView+Rx.swift
│ │ │ │ ├── UIControl+Rx.swift
│ │ │ │ ├── UIDatePicker+Rx.swift
│ │ │ │ ├── UIGestureRecognizer+Rx.swift
│ │ │ │ ├── UIImageView+Rx.swift
│ │ │ │ ├── UILabel+Rx.swift
│ │ │ │ ├── UINavigationController+Rx.swift
│ │ │ │ ├── UINavigationItem+Rx.swift
│ │ │ │ ├── UIPageControl+Rx.swift
│ │ │ │ ├── UIPickerView+Rx.swift
│ │ │ │ ├── UIProgressView+Rx.swift
│ │ │ │ ├── UIRefreshControl+Rx.swift
│ │ │ │ ├── UIScrollView+Rx.swift
│ │ │ │ ├── UISearchBar+Rx.swift
│ │ │ │ ├── UISearchController+Rx.swift
│ │ │ │ ├── UISegmentedControl+Rx.swift
│ │ │ │ ├── UISlider+Rx.swift
│ │ │ │ ├── UIStepper+Rx.swift
│ │ │ │ ├── UISwitch+Rx.swift
│ │ │ │ ├── UITabBarController+Rx.swift
│ │ │ │ ├── UITabBarItem+Rx.swift
│ │ │ │ ├── UITabBar+Rx.swift
│ │ │ │ ├── UITableView+Rx.swift
│ │ │ │ ├── UITextField+Rx.swift
│ │ │ │ ├── UITextView+Rx.swift
│ │ │ │ ├── UIViewController+Rx.swift
│ │ │ │ ├── UIView+Rx.swift
│ │ │ │ └── UIWebView+Rx.swift
│ │ │ ├── macOS
│ │ │ │ ├── NSButton+Rx.swift
│ │ │ │ ├── NSControl+Rx.swift
│ │ │ │ ├── NSImageView+Rx.swift
│ │ │ │ ├── NSSlider+Rx.swift
│ │ │ │ ├── NSTextField+Rx.swift
│ │ │ │ └── NSView+Rx.swift
│ │ │ ├── Platform
│ │ │ │ └── DispatchQueue+Extensions.swift
│ │ │ ├── Runtime
│ │ │ │ ├── include
│ │ │ │ │ ├── RxCocoaRuntime.h
│ │ │ │ │ ├── _RXDelegateProxy.h
│ │ │ │ │ ├── _RX.h
│ │ │ │ │ ├── _RXKVOObserver.h
│ │ │ │ │ └── _RXObjCRuntime.h
│ │ │ │ ├── _RXDelegateProxy.m
│ │ │ │ ├── _RXKVOObserver.m
│ │ │ │ ├── _RX.m
│ │ │ │ └── _RXObjCRuntime.m
│ │ │ ├── RxCocoa.h
│ │ │ ├── RxCocoa.swift
│ │ │ └── Traits
│ │ │ ├── BehaviorRelay.swift
│ │ │ ├── ControlEvent.swift
│ │ │ ├── ControlProperty.swift
│ │ │ ├── Driver
│ │ │ │ ├── BehaviorRelay+Driver.swift
│ │ │ │ ├── ControlEvent+Driver.swift
│ │ │ │ ├── ControlProperty+Driver.swift
│ │ │ │ ├── Driver+Subscription.swift
│ │ │ │ ├── Driver.swift
│ │ │ │ └── ObservableConvertibleType+Driver.swift
│ │ │ ├── PublishRelay.swift
│ │ │ ├── SharedSequence
│ │ │ │ ├── ObservableConvertibleType+SharedSequence.swift
│ │ │ │ ├── SchedulerType+SharedSequence.swift
│ │ │ │ ├── SharedSequence+Operators+arity.swift
│ │ │ │ ├── SharedSequence+Operators+arity.tt
│ │ │ │ ├── SharedSequence+Operators.swift
│ │ │ │ └── SharedSequence.swift
│ │ │ └── Signal
│ │ │ ├── ControlEvent+Signal.swift
│ │ │ ├── ObservableConvertibleType+Signal.swift
│ │ │ ├── PublishRelay+Signal.swift
│ │ │ ├── Signal+Subscription.swift
│ │ │ └── Signal.swift
│ │ ├── RxCocoa.podspec
│ │ ├── RxExample
│ │ │ ├── Extensions
│ │ │ │ ├── CLLocationManager+Rx.swift
│ │ │ │ ├── RxCLLocationManagerDelegateProxy.swift
│ │ │ │ ├── RxImagePickerDelegateProxy.swift
│ │ │ │ └── UIImagePickerController+Rx.swift
│ │ │ ├── RxDataSources
│ │ │ │ ├── Differentiator
│ │ │ │ │ ├── AnimatableSectionModel.swift
│ │ │ │ │ ├── AnimatableSectionModelType+ItemPath.swift
│ │ │ │ │ ├── AnimatableSectionModelType.swift
│ │ │ │ │ ├── Changeset.swift
│ │ │ │ │ ├── Differentiator.h
│ │ │ │ │ ├── Diff.swift
│ │ │ │ │ ├── IdentifiableType.swift
│ │ │ │ │ ├── IdentifiableValue.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── ItemPath.swift
│ │ │ │ │ ├── Optional+Extensions.swift
│ │ │ │ │ ├── SectionModel.swift
│ │ │ │ │ ├── SectionModelType.swift
│ │ │ │ │ └── Utilities.swift
│ │ │ │ ├── README.md
│ │ │ │ └── RxDataSources
│ │ │ │ ├── AnimationConfiguration.swift
│ │ │ │ ├── Array+Extensions.swift
│ │ │ │ ├── CollectionViewSectionedDataSource.swift
│ │ │ │ ├── DataSources.swift
│ │ │ │ ├── Deprecated.swift
│ │ │ │ ├── FloatingPointType+IdentifiableType.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── IntegerType+IdentifiableType.swift
│ │ │ │ ├── RxCollectionViewSectionedAnimatedDataSource.swift
│ │ │ │ ├── RxCollectionViewSectionedReloadDataSource.swift
│ │ │ │ ├── RxDataSources.h
│ │ │ │ ├── RxPickerViewAdapter.swift
│ │ │ │ ├── RxTableViewSectionedAnimatedDataSource.swift
│ │ │ │ ├── RxTableViewSectionedReloadDataSource.swift
│ │ │ │ ├── String+IdentifiableType.swift
│ │ │ │ ├── TableViewSectionedDataSource.swift
│ │ │ │ └── UI+SectionedViewType.swift
│ │ │ ├── RxExample
│ │ │ │ ├── Application+Extensions.swift
│ │ │ │ ├── Examples
│ │ │ │ │ ├── APIWrappers
│ │ │ │ │ │ ├── APIWrappers.storyboard
│ │ │ │ │ │ └── APIWrappersViewController.swift
│ │ │ │ │ ├── Calculator
│ │ │ │ │ │ ├── Calculator.storyboard
│ │ │ │ │ │ ├── Calculator.swift
│ │ │ │ │ │ └── CalculatorViewController.swift
│ │ │ │ │ ├── Dependencies.swift
│ │ │ │ │ ├── GeolocationExample
│ │ │ │ │ │ ├── Geolocation.storyboard
│ │ │ │ │ │ └── GeolocationViewController.swift
│ │ │ │ │ ├── GitHubSearchRepositories
│ │ │ │ │ │ ├── GitHubSearchRepositoriesAPI.swift
│ │ │ │ │ │ ├── GitHubSearchRepositories.storyboard
│ │ │ │ │ │ ├── GitHubSearchRepositories.swift
│ │ │ │ │ │ ├── GitHubSearchRepositoriesViewController.swift
│ │ │ │ │ │ └── UINavigationController+Extensions.swift
│ │ │ │ │ ├── GitHubSignup
│ │ │ │ │ │ ├── BindingExtensions.swift
│ │ │ │ │ │ ├── DefaultImplementations.swift
│ │ │ │ │ │ ├── GitHubSignup1.storyboard
│ │ │ │ │ │ ├── GitHubSignup2.storyboard
│ │ │ │ │ │ ├── Protocols.swift
│ │ │ │ │ │ ├── UsingDriver
│ │ │ │ │ │ │ ├── GitHubSignupViewController2.swift
│ │ │ │ │ │ │ └── GithubSignupViewModel2.swift
│ │ │ │ │ │ └── UsingVanillaObservables
│ │ │ │ │ │ ├── GitHubSignupViewController1.swift
│ │ │ │ │ │ └── GithubSignupViewModel1.swift
│ │ │ │ │ ├── ImagePicker
│ │ │ │ │ │ ├── ImagePickerController.swift
│ │ │ │ │ │ ├── ImagePicker.storyboard
│ │ │ │ │ │ └── UIImagePickerController+RxCreate.swift
│ │ │ │ │ ├── macOS simple example
│ │ │ │ │ │ └── IntroductionExampleViewController.swift
│ │ │ │ │ ├── Numbers
│ │ │ │ │ │ ├── Numbers.storyboard
│ │ │ │ │ │ └── NumbersViewController.swift
│ │ │ │ │ ├── SimpleTableViewExample
│ │ │ │ │ │ ├── SimpleTableViewExample.storyboard
│ │ │ │ │ │ └── SimpleTableViewExampleViewController.swift
│ │ │ │ │ ├── SimpleTableViewExampleSectioned
│ │ │ │ │ │ ├── SimpleTableViewExampleSectioned.storyboard
│ │ │ │ │ │ └── SimpleTableViewExampleSectionedViewController.swift
│ │ │ │ │ ├── SimpleValidation
│ │ │ │ │ │ ├── SimpleValidation.storyboard
│ │ │ │ │ │ └── SimpleValidationViewController.swift
│ │ │ │ │ ├── TableViewPartialUpdates
│ │ │ │ │ │ ├── NumberCell.swift
│ │ │ │ │ │ ├── NumberSectionView.swift
│ │ │ │ │ │ ├── PartialUpdates.storyboard
│ │ │ │ │ │ └── PartialUpdatesViewController.swift
│ │ │ │ │ ├── TableViewWithEditingCommands
│ │ │ │ │ │ ├── DetailViewController.swift
│ │ │ │ │ │ ├── RandomUserAPI.swift
│ │ │ │ │ │ ├── TableViewWithEditingCommands.storyboard
│ │ │ │ │ │ ├── TableViewWithEditingCommandsViewController.swift
│ │ │ │ │ │ ├── UIImageView+Extensions.swift
│ │ │ │ │ │ └── User.swift
│ │ │ │ │ ├── UIPickerViewExample
│ │ │ │ │ │ ├── CustomPickerViewAdapterExampleViewController.swift
│ │ │ │ │ │ ├── SimplePickerViewExampleViewController.swift
│ │ │ │ │ │ └── SimpleUIPickerViewExample.storyboard
│ │ │ │ │ └── WikipediaImageSearch
│ │ │ │ │ ├── ViewModels
│ │ │ │ │ │ └── SearchResultViewModel.swift
│ │ │ │ │ ├── Views
│ │ │ │ │ │ ├── CollectionViewImageCell.swift
│ │ │ │ │ │ ├── WikipediaImageCell.xib
│ │ │ │ │ │ ├── WikipediaSearchCell.swift
│ │ │ │ │ │ ├── WikipediaSearchCell.xib
│ │ │ │ │ │ └── WikipediaSearchViewController.swift
│ │ │ │ │ ├── WikipediaAPI
│ │ │ │ │ │ ├── WikipediaAPI.swift
│ │ │ │ │ │ ├── WikipediaPage.swift
│ │ │ │ │ │ └── WikipediaSearchResult.swift
│ │ │ │ │ └── WikipediaSearch.storyboard
│ │ │ │ ├── Example.swift
│ │ │ │ ├── Feedbacks.swift
│ │ │ │ ├── Images.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Icon-40@2x-1.png
│ │ │ │ │ │ ├── Icon-40@2x.png
│ │ │ │ │ │ ├── Icon-40.png
│ │ │ │ │ │ ├── Icon-60@2x-1.png
│ │ │ │ │ │ ├── Icon-60@2x.png
│ │ │ │ │ │ ├── Icon-60@3x.png
│ │ │ │ │ │ ├── Icon-76@2x.png
│ │ │ │ │ │ ├── Icon-76.png
│ │ │ │ │ │ ├── Icon-Small@2x-1.png
│ │ │ │ │ │ ├── Icon-Small@3x.png
│ │ │ │ │ │ ├── Icon-Small.png
│ │ │ │ │ │ ├── Rx_Logo-iPad.png
│ │ │ │ │ │ ├── Rx_Logo_L.png
│ │ │ │ │ │ └── Rx_Logo_M.png
│ │ │ │ │ └── ReactiveExtensionsLogo.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ReactiveExtensionsLogo-2.png
│ │ │ │ │ └── ReactiveExtensionsLogo.png
│ │ │ │ ├── Info-iOS.plist
│ │ │ │ ├── Info-macOS.plist
│ │ │ │ ├── iOS
│ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ ├── LaunchScreen.xib
│ │ │ │ │ ├── Main.storyboard
│ │ │ │ │ ├── RootViewController.swift
│ │ │ │ │ └── UITableView+Extensions.swift
│ │ │ │ ├── Lenses.swift
│ │ │ │ ├── macOS
│ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ └── Main.storyboard
│ │ │ │ ├── Observable+Extensions.swift
│ │ │ │ ├── Operators.swift
│ │ │ │ ├── Result.swift
│ │ │ │ ├── RxExample.xcdatamodeld
│ │ │ │ │ └── RxExample.xcdatamodel
│ │ │ │ │ └── contents
│ │ │ │ ├── Services
│ │ │ │ │ ├── ActivityIndicator.swift
│ │ │ │ │ ├── DownloadableImage.swift
│ │ │ │ │ ├── GeolocationService.swift
│ │ │ │ │ ├── HtmlParsing.swift
│ │ │ │ │ ├── ImageService.swift
│ │ │ │ │ ├── PseudoRandomGenerator.swift
│ │ │ │ │ ├── Randomizer.swift
│ │ │ │ │ ├── ReachabilityService.swift
│ │ │ │ │ ├── Reachability.swift
│ │ │ │ │ ├── UIImage+Extensions.swift
│ │ │ │ │ ├── UIImageView+DownloadableImage.swift
│ │ │ │ │ └── Wireframe.swift
│ │ │ │ ├── String+URL.swift
│ │ │ │ ├── Version.swift
│ │ │ │ └── ViewController.swift
│ │ │ ├── RxExample-iOSTests
│ │ │ │ ├── CLLocationManager+RxTests.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Mocks
│ │ │ │ │ ├── MockGitHubAPI.swift
│ │ │ │ │ ├── MockWireframe.swift
│ │ │ │ │ ├── NotImplementedStubs.swift
│ │ │ │ │ └── ValidationResult+Equatable.swift
│ │ │ │ ├── RxExample_iOSTests.swift
│ │ │ │ ├── RxTest.swift
│ │ │ │ ├── TestScheduler+MarbleTests.swift
│ │ │ │ └── UIImagePickerController+RxTests.swift
│ │ │ ├── RxExample-iOSUITests
│ │ │ │ ├── FlowTests.swift
│ │ │ │ └── Info.plist
│ │ │ ├── RxExample-macOSUITests
│ │ │ │ ├── Info.plist
│ │ │ │ └── RxExample_macOSUITests.swift
│ │ │ └── RxExample.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ ├── RxExample-iOSTests.xcscheme
│ │ │ ├── RxExample-iOSUITests.xcscheme
│ │ │ ├── RxExample-iOS.xcscheme
│ │ │ ├── RxExample-macOSUITests.xcscheme
│ │ │ └── RxExample-macOS.xcscheme
│ │ ├── Rx.playground
│ │ │ ├── contents.xcplayground
│ │ │ ├── Pages
│ │ │ │ ├── Combining_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Connectable_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Creating_and_Subscribing_to_Observables.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Debugging_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Enable_RxSwift.Resources.total.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Error_Handling_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Filtering_and_Conditional_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Introduction.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Mathematical_and_Aggregate_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Table_of_Contents.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Transforming_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── TryYourself.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ └── Working_with_Subjects.xcplaygroundpage
│ │ │ │ └── Contents.swift
│ │ │ ├── Sources
│ │ │ │ └── SupportCode.swift
│ │ │ └── SupportCode.remap
│ │ ├── RxSwift
│ │ │ ├── AnyObserver.swift
│ │ │ ├── Cancelable.swift
│ │ │ ├── Concurrency
│ │ │ │ ├── AsyncLock.swift
│ │ │ │ ├── LockOwnerType.swift
│ │ │ │ ├── Lock.swift
│ │ │ │ ├── SynchronizedDisposeType.swift
│ │ │ │ ├── SynchronizedOnType.swift
│ │ │ │ └── SynchronizedUnsubscribeType.swift
│ │ │ ├── ConnectableObservableType.swift
│ │ │ ├── Deprecated.swift
│ │ │ ├── Disposables
│ │ │ │ ├── AnonymousDisposable.swift
│ │ │ │ ├── BinaryDisposable.swift
│ │ │ │ ├── BooleanDisposable.swift
│ │ │ │ ├── CompositeDisposable.swift
│ │ │ │ ├── Disposables.swift
│ │ │ │ ├── DisposeBag.swift
│ │ │ │ ├── DisposeBase.swift
│ │ │ │ ├── NopDisposable.swift
│ │ │ │ ├── RefCountDisposable.swift
│ │ │ │ ├── ScheduledDisposable.swift
│ │ │ │ ├── SerialDisposable.swift
│ │ │ │ ├── SingleAssignmentDisposable.swift
│ │ │ │ └── SubscriptionDisposable.swift
│ │ │ ├── Disposable.swift
│ │ │ ├── Errors.swift
│ │ │ ├── Event.swift
│ │ │ ├── Extensions
│ │ │ │ ├── Bag+Rx.swift
│ │ │ │ └── String+Rx.swift
│ │ │ ├── GroupedObservable.swift
│ │ │ ├── ImmediateSchedulerType.swift
│ │ │ ├── Info.plist
│ │ │ ├── ObservableConvertibleType.swift
│ │ │ ├── Observables
│ │ │ │ ├── AddRef.swift
│ │ │ │ ├── Amb.swift
│ │ │ │ ├── AsMaybe.swift
│ │ │ │ ├── AsSingle.swift
│ │ │ │ ├── Buffer.swift
│ │ │ │ ├── Catch.swift
│ │ │ │ ├── CombineLatest+arity.swift
│ │ │ │ ├── CombineLatest+arity.tt
│ │ │ │ ├── CombineLatest+Collection.swift
│ │ │ │ ├── CombineLatest.swift
│ │ │ │ ├── Concat.swift
│ │ │ │ ├── Create.swift
│ │ │ │ ├── Debounce.swift
│ │ │ │ ├── Debug.swift
│ │ │ │ ├── DefaultIfEmpty.swift
│ │ │ │ ├── Deferred.swift
│ │ │ │ ├── DelaySubscription.swift
│ │ │ │ ├── Delay.swift
│ │ │ │ ├── Dematerialize.swift
│ │ │ │ ├── DistinctUntilChanged.swift
│ │ │ │ ├── Do.swift
│ │ │ │ ├── ElementAt.swift
│ │ │ │ ├── Empty.swift
│ │ │ │ ├── Enumerated.swift
│ │ │ │ ├── Error.swift
│ │ │ │ ├── Filter.swift
│ │ │ │ ├── First.swift
│ │ │ │ ├── Generate.swift
│ │ │ │ ├── GroupBy.swift
│ │ │ │ ├── Just.swift
│ │ │ │ ├── Map.swift
│ │ │ │ ├── Materialize.swift
│ │ │ │ ├── Merge.swift
│ │ │ │ ├── Multicast.swift
│ │ │ │ ├── Never.swift
│ │ │ │ ├── ObserveOn.swift
│ │ │ │ ├── Optional.swift
│ │ │ │ ├── Producer.swift
│ │ │ │ ├── Range.swift
│ │ │ │ ├── Reduce.swift
│ │ │ │ ├── Repeat.swift
│ │ │ │ ├── RetryWhen.swift
│ │ │ │ ├── Sample.swift
│ │ │ │ ├── Scan.swift
│ │ │ │ ├── Sequence.swift
│ │ │ │ ├── ShareReplayScope.swift
│ │ │ │ ├── SingleAsync.swift
│ │ │ │ ├── Sink.swift
│ │ │ │ ├── Skip.swift
│ │ │ │ ├── SkipUntil.swift
│ │ │ │ ├── SkipWhile.swift
│ │ │ │ ├── StartWith.swift
│ │ │ │ ├── SubscribeOn.swift
│ │ │ │ ├── SwitchIfEmpty.swift
│ │ │ │ ├── Switch.swift
│ │ │ │ ├── TakeLast.swift
│ │ │ │ ├── Take.swift
│ │ │ │ ├── TakeUntil.swift
│ │ │ │ ├── TakeWhile.swift
│ │ │ │ ├── Throttle.swift
│ │ │ │ ├── Timeout.swift
│ │ │ │ ├── Timer.swift
│ │ │ │ ├── ToArray.swift
│ │ │ │ ├── Using.swift
│ │ │ │ ├── Window.swift
│ │ │ │ ├── WithLatestFrom.swift
│ │ │ │ ├── Zip+arity.swift
│ │ │ │ ├── Zip+arity.tt
│ │ │ │ ├── Zip+Collection.swift
│ │ │ │ └── Zip.swift
│ │ │ ├── Observable.swift
│ │ │ ├── ObservableType+Extensions.swift
│ │ │ ├── ObservableType.swift
│ │ │ ├── Observers
│ │ │ │ ├── AnonymousObserver.swift
│ │ │ │ ├── ObserverBase.swift
│ │ │ │ └── TailRecursiveSink.swift
│ │ │ ├── ObserverType.swift
│ │ │ ├── Platform
│ │ │ │ ├── DataStructures
│ │ │ │ │ ├── Bag.swift
│ │ │ │ │ ├── InfiniteSequence.swift
│ │ │ │ │ ├── PriorityQueue.swift
│ │ │ │ │ └── Queue.swift
│ │ │ │ ├── DeprecationWarner.swift
│ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ ├── Platform.Linux.swift
│ │ │ │ └── RecursiveLock.swift
│ │ │ ├── Reactive.swift
│ │ │ ├── RxMutableBox.swift
│ │ │ ├── Rx.swift
│ │ │ ├── Schedulers
│ │ │ │ ├── ConcurrentDispatchQueueScheduler.swift
│ │ │ │ ├── ConcurrentMainScheduler.swift
│ │ │ │ ├── CurrentThreadScheduler.swift
│ │ │ │ ├── HistoricalScheduler.swift
│ │ │ │ ├── HistoricalSchedulerTimeConverter.swift
│ │ │ │ ├── Internal
│ │ │ │ │ ├── DispatchQueueConfiguration.swift
│ │ │ │ │ ├── InvocableScheduledItem.swift
│ │ │ │ │ ├── InvocableType.swift
│ │ │ │ │ ├── ScheduledItem.swift
│ │ │ │ │ └── ScheduledItemType.swift
│ │ │ │ ├── MainScheduler.swift
│ │ │ │ ├── OperationQueueScheduler.swift
│ │ │ │ ├── RecursiveScheduler.swift
│ │ │ │ ├── SchedulerServices+Emulation.swift
│ │ │ │ ├── SerialDispatchQueueScheduler.swift
│ │ │ │ ├── VirtualTimeConverterType.swift
│ │ │ │ └── VirtualTimeScheduler.swift
│ │ │ ├── SchedulerType.swift
│ │ │ ├── Subjects
│ │ │ │ ├── AsyncSubject.swift
│ │ │ │ ├── BehaviorSubject.swift
│ │ │ │ ├── PublishSubject.swift
│ │ │ │ ├── ReplaySubject.swift
│ │ │ │ └── SubjectType.swift
│ │ │ ├── SwiftSupport
│ │ │ │ └── SwiftSupport.swift
│ │ │ └── Traits
│ │ │ ├── Completable+AndThen.swift
│ │ │ ├── Completable.swift
│ │ │ ├── Maybe.swift
│ │ │ ├── ObservableType+PrimitiveSequence.swift
│ │ │ ├── PrimitiveSequence.swift
│ │ │ ├── PrimitiveSequence+Zip+arity.swift
│ │ │ ├── PrimitiveSequence+Zip+arity.tt
│ │ │ └── Single.swift
│ │ ├── RxSwift.podspec
│ │ ├── RxTest
│ │ │ ├── Any+Equatable.swift
│ │ │ ├── ColdObservable.swift
│ │ │ ├── Deprecated.swift
│ │ │ ├── Event+Equatable.swift
│ │ │ ├── HotObservable.swift
│ │ │ ├── Info.plist
│ │ │ ├── Platform
│ │ │ │ ├── DataStructures
│ │ │ │ │ └── Bag.swift
│ │ │ │ └── DeprecationWarner.swift
│ │ │ ├── Recorded+Event.swift
│ │ │ ├── Recorded.swift
│ │ │ ├── RxTest.swift
│ │ │ ├── Schedulers
│ │ │ │ ├── TestScheduler.swift
│ │ │ │ └── TestSchedulerVirtualTimeConverter.swift
│ │ │ ├── Subscription.swift
│ │ │ ├── TestableObservable.swift
│ │ │ ├── TestableObserver.swift
│ │ │ └── XCTest+Rx.swift
│ │ ├── RxTest.podspec
│ │ ├── Rx.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ ├── xcbaselines
│ │ │ │ └── C8E8BA541E2C181A00A4AC2C.xcbaseline
│ │ │ │ ├── 91761072-433E-43DC-A058-545FB88C59EC.plist
│ │ │ │ ├── 996C445D-86F0-429E-92A9-44EBD3769290.plist
│ │ │ │ ├── B553A9F9-C6F1-4009-9BDC-AC42F9D31E38.plist
│ │ │ │ └── Info.plist
│ │ │ └── xcschemes
│ │ │ ├── RxBlocking-iOS.xcscheme
│ │ │ ├── RxBlocking-macOS.xcscheme
│ │ │ ├── RxBlocking-tvOS.xcscheme
│ │ │ ├── RxBlocking-watchOS.xcscheme
│ │ │ ├── RxCocoa-iOS.xcscheme
│ │ │ ├── RxCocoa-macOS.xcscheme
│ │ │ ├── RxCocoa-tvOS.xcscheme
│ │ │ ├── RxCocoa-watchOS.xcscheme
│ │ │ ├── RxSwift-iOS.xcscheme
│ │ │ ├── RxSwift-macOS.xcscheme
│ │ │ ├── RxSwift-tvOS.xcscheme
│ │ │ ├── RxSwift-watchOS.xcscheme
│ │ │ ├── RxTests-iOS.xcscheme
│ │ │ ├── RxTests-macOS.xcscheme
│ │ │ └── RxTests-tvOS.xcscheme
│ │ ├── Rx.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ ├── scripts
│ │ │ ├── all-tests.sh
│ │ │ ├── common.sh
│ │ │ ├── package-spm.swift
│ │ │ ├── profile-build-times.sh
│ │ │ ├── test-linux.sh
│ │ │ ├── update-jazzy-config.rb
│ │ │ ├── update-jazzy-docs.sh
│ │ │ ├── validate-headers.swift
│ │ │ ├── validate-markdown.sh
│ │ │ ├── validate-playgrounds.sh
│ │ │ └── validate-podspec.sh
│ │ ├── Sources
│ │ │ ├── AllTestz
│ │ │ │ ├── Anomalies.swift
│ │ │ │ ├── AssumptionsTest.swift
│ │ │ │ ├── AsyncSubjectTests.swift
│ │ │ │ ├── BackgroundThreadPrimitiveHotObservable.swift
│ │ │ │ ├── Bag.swift
│ │ │ │ ├── BehaviorSubjectTest.swift
│ │ │ │ ├── Completable+AndThen.swift
│ │ │ │ ├── CompletableTest.swift
│ │ │ │ ├── CurrentThreadSchedulerTest.swift
│ │ │ │ ├── DeprecationWarner.swift
│ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ ├── DisposableTest.swift
│ │ │ │ ├── DisposeBagTest.swift
│ │ │ │ ├── Driver+Test.swift
│ │ │ │ ├── ElementIndexPair.swift
│ │ │ │ ├── EquatableArray.swift
│ │ │ │ ├── Event+Test.swift
│ │ │ │ ├── HistoricalSchedulerTest.swift
│ │ │ │ ├── InfiniteSequence.swift
│ │ │ │ ├── MainSchedulerTests.swift
│ │ │ │ ├── main.swift
│ │ │ │ ├── MainThreadPrimitiveHotObservable.swift
│ │ │ │ ├── MaybeTest.swift
│ │ │ │ ├── MockDisposable.swift
│ │ │ │ ├── MySubject.swift
│ │ │ │ ├── NotificationCenterTests.swift
│ │ │ │ ├── Observable+AmbTests.swift
│ │ │ │ ├── Observable+BlockingTest.swift
│ │ │ │ ├── Observable+BufferTests.swift
│ │ │ │ ├── Observable+CatchTests.swift
│ │ │ │ ├── Observable+CombineLatestTests+arity.swift
│ │ │ │ ├── Observable+CombineLatestTests.swift
│ │ │ │ ├── Observable+ConcatTests.swift
│ │ │ │ ├── Observable+DebugTests.swift
│ │ │ │ ├── Observable+DefaultIfEmpty.swift
│ │ │ │ ├── Observable+DelaySubscriptionTests.swift
│ │ │ │ ├── Observable+DelayTests.swift
│ │ │ │ ├── Observable+DematerializeTests.swift
│ │ │ │ ├── Observable+DistinctUntilChangedTests.swift
│ │ │ │ ├── Observable+DoOnTests.swift
│ │ │ │ ├── Observable+ElementAtTests.swift
│ │ │ │ ├── Observable+EnumeratedTests.swift
│ │ │ │ ├── Observable+Extensions.swift
│ │ │ │ ├── Observable.Extensions.swift
│ │ │ │ ├── Observable+FilterTests.swift
│ │ │ │ ├── Observable+GenerateTests.swift
│ │ │ │ ├── Observable+GroupByTests.swift
│ │ │ │ ├── Observable+JustTests.swift
│ │ │ │ ├── Observable+MapTests.swift
│ │ │ │ ├── Observable+MaterializeTests.swift
│ │ │ │ ├── Observable+MergeTests.swift
│ │ │ │ ├── Observable+MulticastTests.swift
│ │ │ │ ├── Observable+ObserveOnTests.swift
│ │ │ │ ├── Observable+OptionalTests.swift
│ │ │ │ ├── Observable+PrimitiveSequenceTest.swift
│ │ │ │ ├── Observable+RangeTests.swift
│ │ │ │ ├── Observable+ReduceTests.swift
│ │ │ │ ├── Observable+RepeatTests.swift
│ │ │ │ ├── Observable+RetryWhenTests.swift
│ │ │ │ ├── Observable+SampleTests.swift
│ │ │ │ ├── Observable+ScanTests.swift
│ │ │ │ ├── Observable+SequenceTests.swift
│ │ │ │ ├── Observable+ShareReplayScopeTests.swift
│ │ │ │ ├── Observable+SingleTests.swift
│ │ │ │ ├── Observable+SkipTests.swift
│ │ │ │ ├── Observable+SkipUntilTests.swift
│ │ │ │ ├── Observable+SkipWhileTests.swift
│ │ │ │ ├── Observable+SubscribeOnTests.swift
│ │ │ │ ├── Observable+SubscriptionTest.swift
│ │ │ │ ├── Observable+SwitchIfEmptyTests.swift
│ │ │ │ ├── Observable+SwitchTests.swift
│ │ │ │ ├── Observable+TakeLastTests.swift
│ │ │ │ ├── Observable+TakeTests.swift
│ │ │ │ ├── Observable+TakeUntilTests.swift
│ │ │ │ ├── Observable+TakeWhileTests.swift
│ │ │ │ ├── Observable+Tests.swift
│ │ │ │ ├── Observable+ThrottleTests.swift
│ │ │ │ ├── Observable+TimeoutTests.swift
│ │ │ │ ├── Observable+TimerTests.swift
│ │ │ │ ├── Observable+ToArrayTests.swift
│ │ │ │ ├── ObservableType+SubscriptionTests.swift
│ │ │ │ ├── Observable+UsingTests.swift
│ │ │ │ ├── Observable+WindowTests.swift
│ │ │ │ ├── Observable+WithLatestFromTests.swift
│ │ │ │ ├── Observable+ZipTests+arity.swift
│ │ │ │ ├── Observable+ZipTests.swift
│ │ │ │ ├── ObserverTests.swift
│ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ ├── Platform.Linux.swift
│ │ │ │ ├── PrimitiveHotObservable.swift
│ │ │ │ ├── PrimitiveMockObserver.swift
│ │ │ │ ├── PrimitiveSequenceTest+zip+arity.swift
│ │ │ │ ├── PriorityQueue.swift
│ │ │ │ ├── PublishSubjectTest.swift
│ │ │ │ ├── Queue.swift
│ │ │ │ ├── Reactive+Tests.swift
│ │ │ │ ├── Recorded+Timeless.swift
│ │ │ │ ├── RecursiveLock.swift
│ │ │ │ ├── RecursiveLockTest.swift
│ │ │ │ ├── ReplaySubjectTest.swift
│ │ │ │ ├── RxMutableBox.swift
│ │ │ │ ├── RxTest.swift
│ │ │ │ ├── SchedulerTests.swift
│ │ │ │ ├── SharedSequence+Extensions.swift
│ │ │ │ ├── SharedSequence+OperatorTest.swift
│ │ │ │ ├── SharedSequence+Test.swift
│ │ │ │ ├── SharingSchedulerTests.swift
│ │ │ │ ├── Signal+Test.swift
│ │ │ │ ├── SingleTest.swift
│ │ │ │ ├── TestConnectableObservable.swift
│ │ │ │ ├── TestErrors.swift
│ │ │ │ ├── TestVirtualScheduler.swift
│ │ │ │ ├── VariableTest.swift
│ │ │ │ ├── VirtualSchedulerTest.swift
│ │ │ │ └── XCTest+AllTests.swift
│ │ │ ├── RxBlocking
│ │ │ │ ├── BlockingObservable+Operators.swift
│ │ │ │ ├── BlockingObservable.swift
│ │ │ │ ├── ObservableConvertibleType+Blocking.swift
│ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ ├── Platform.Linux.swift
│ │ │ │ ├── RecursiveLock.swift
│ │ │ │ ├── Resources.swift
│ │ │ │ └── RunLoopLock.swift
│ │ │ ├── RxCocoa
│ │ │ │ ├── BehaviorRelay+Driver.swift
│ │ │ │ ├── BehaviorRelay.swift
│ │ │ │ ├── Binder.swift
│ │ │ │ ├── ControlEvent+Driver.swift
│ │ │ │ ├── ControlEvent+Signal.swift
│ │ │ │ ├── ControlEvent.swift
│ │ │ │ ├── ControlProperty+Driver.swift
│ │ │ │ ├── ControlProperty.swift
│ │ │ │ ├── ControlTarget.swift
│ │ │ │ ├── DelegateProxy.swift
│ │ │ │ ├── DelegateProxyType.swift
│ │ │ │ ├── Deprecated.swift
│ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ ├── Driver+Subscription.swift
│ │ │ │ ├── Driver.swift
│ │ │ │ ├── ItemEvents.swift
│ │ │ │ ├── KeyPathBinder.swift
│ │ │ │ ├── KVORepresentable+CoreGraphics.swift
│ │ │ │ ├── KVORepresentable.swift
│ │ │ │ ├── KVORepresentable+Swift.swift
│ │ │ │ ├── Logging.swift
│ │ │ │ ├── NotificationCenter+Rx.swift
│ │ │ │ ├── NSButton+Rx.swift
│ │ │ │ ├── NSControl+Rx.swift
│ │ │ │ ├── NSImageView+Rx.swift
│ │ │ │ ├── NSLayoutConstraint+Rx.swift
│ │ │ │ ├── NSObject+Rx+KVORepresentable.swift
│ │ │ │ ├── NSObject+Rx+RawRepresentable.swift
│ │ │ │ ├── NSObject+Rx.swift
│ │ │ │ ├── NSSlider+Rx.swift
│ │ │ │ ├── NSTextField+Rx.swift
│ │ │ │ ├── NSTextStorage+Rx.swift
│ │ │ │ ├── NSView+Rx.swift
│ │ │ │ ├── Observable+Bind.swift
│ │ │ │ ├── ObservableConvertibleType+Driver.swift
│ │ │ │ ├── ObservableConvertibleType+SharedSequence.swift
│ │ │ │ ├── ObservableConvertibleType+Signal.swift
│ │ │ │ ├── PublishRelay+Signal.swift
│ │ │ │ ├── PublishRelay.swift
│ │ │ │ ├── RxCocoaObjCRuntimeError+Extensions.swift
│ │ │ │ ├── RxCocoa.swift
│ │ │ │ ├── RxCollectionViewDataSourcePrefetchingProxy.swift
│ │ │ │ ├── RxCollectionViewDataSourceProxy.swift
│ │ │ │ ├── RxCollectionViewDataSourceType.swift
│ │ │ │ ├── RxCollectionViewDelegateProxy.swift
│ │ │ │ ├── RxCollectionViewReactiveArrayDataSource.swift
│ │ │ │ ├── RxNavigationControllerDelegateProxy.swift
│ │ │ │ ├── RxPickerViewAdapter.swift
│ │ │ │ ├── RxPickerViewDataSourceProxy.swift
│ │ │ │ ├── RxPickerViewDataSourceType.swift
│ │ │ │ ├── RxPickerViewDelegateProxy.swift
│ │ │ │ ├── RxScrollViewDelegateProxy.swift
│ │ │ │ ├── RxSearchBarDelegateProxy.swift
│ │ │ │ ├── RxSearchControllerDelegateProxy.swift
│ │ │ │ ├── RxTabBarControllerDelegateProxy.swift
│ │ │ │ ├── RxTabBarDelegateProxy.swift
│ │ │ │ ├── RxTableViewDataSourcePrefetchingProxy.swift
│ │ │ │ ├── RxTableViewDataSourceProxy.swift
│ │ │ │ ├── RxTableViewDataSourceType.swift
│ │ │ │ ├── RxTableViewDelegateProxy.swift
│ │ │ │ ├── RxTableViewReactiveArrayDataSource.swift
│ │ │ │ ├── RxTarget.swift
│ │ │ │ ├── RxTextStorageDelegateProxy.swift
│ │ │ │ ├── RxTextViewDelegateProxy.swift
│ │ │ │ ├── RxWebViewDelegateProxy.swift
│ │ │ │ ├── SchedulerType+SharedSequence.swift
│ │ │ │ ├── SectionedViewDataSourceType.swift
│ │ │ │ ├── SharedSequence+Operators+arity.swift
│ │ │ │ ├── SharedSequence+Operators.swift
│ │ │ │ ├── SharedSequence.swift
│ │ │ │ ├── Signal+Subscription.swift
│ │ │ │ ├── Signal.swift
│ │ │ │ ├── TextInput.swift
│ │ │ │ ├── UIActivityIndicatorView+Rx.swift
│ │ │ │ ├── UIAlertAction+Rx.swift
│ │ │ │ ├── UIApplication+Rx.swift
│ │ │ │ ├── UIBarButtonItem+Rx.swift
│ │ │ │ ├── UIButton+Rx.swift
│ │ │ │ ├── UICollectionView+Rx.swift
│ │ │ │ ├── UIControl+Rx.swift
│ │ │ │ ├── UIDatePicker+Rx.swift
│ │ │ │ ├── UIGestureRecognizer+Rx.swift
│ │ │ │ ├── UIImageView+Rx.swift
│ │ │ │ ├── UILabel+Rx.swift
│ │ │ │ ├── UINavigationController+Rx.swift
│ │ │ │ ├── UINavigationItem+Rx.swift
│ │ │ │ ├── UIPageControl+Rx.swift
│ │ │ │ ├── UIPickerView+Rx.swift
│ │ │ │ ├── UIProgressView+Rx.swift
│ │ │ │ ├── UIRefreshControl+Rx.swift
│ │ │ │ ├── UIScrollView+Rx.swift
│ │ │ │ ├── UISearchBar+Rx.swift
│ │ │ │ ├── UISearchController+Rx.swift
│ │ │ │ ├── UISegmentedControl+Rx.swift
│ │ │ │ ├── UISlider+Rx.swift
│ │ │ │ ├── UIStepper+Rx.swift
│ │ │ │ ├── UISwitch+Rx.swift
│ │ │ │ ├── UITabBarController+Rx.swift
│ │ │ │ ├── UITabBarItem+Rx.swift
│ │ │ │ ├── UITabBar+Rx.swift
│ │ │ │ ├── UITableView+Rx.swift
│ │ │ │ ├── UITextField+Rx.swift
│ │ │ │ ├── UITextView+Rx.swift
│ │ │ │ ├── UIViewController+Rx.swift
│ │ │ │ ├── UIView+Rx.swift
│ │ │ │ ├── UIWebView+Rx.swift
│ │ │ │ └── URLSession+Rx.swift
│ │ │ ├── RxCocoaRuntime
│ │ │ │ ├── include
│ │ │ │ │ ├── RxCocoaRuntime.h
│ │ │ │ │ ├── _RXDelegateProxy.h
│ │ │ │ │ ├── _RX.h
│ │ │ │ │ ├── _RXKVOObserver.h
│ │ │ │ │ └── _RXObjCRuntime.h
│ │ │ │ ├── _RXDelegateProxy.m
│ │ │ │ ├── _RXKVOObserver.m
│ │ │ │ ├── _RX.m
│ │ │ │ └── _RXObjCRuntime.m
│ │ │ ├── RxSwift
│ │ │ │ ├── AddRef.swift
│ │ │ │ ├── Amb.swift
│ │ │ │ ├── AnonymousDisposable.swift
│ │ │ │ ├── AnonymousObserver.swift
│ │ │ │ ├── AnyObserver.swift
│ │ │ │ ├── AsMaybe.swift
│ │ │ │ ├── AsSingle.swift
│ │ │ │ ├── AsyncLock.swift
│ │ │ │ ├── AsyncSubject.swift
│ │ │ │ ├── Bag+Rx.swift
│ │ │ │ ├── Bag.swift
│ │ │ │ ├── BehaviorSubject.swift
│ │ │ │ ├── BinaryDisposable.swift
│ │ │ │ ├── BooleanDisposable.swift
│ │ │ │ ├── Buffer.swift
│ │ │ │ ├── Cancelable.swift
│ │ │ │ ├── Catch.swift
│ │ │ │ ├── CombineLatest+arity.swift
│ │ │ │ ├── CombineLatest+Collection.swift
│ │ │ │ ├── CombineLatest.swift
│ │ │ │ ├── Completable+AndThen.swift
│ │ │ │ ├── Completable.swift
│ │ │ │ ├── CompositeDisposable.swift
│ │ │ │ ├── Concat.swift
│ │ │ │ ├── ConcurrentDispatchQueueScheduler.swift
│ │ │ │ ├── ConcurrentMainScheduler.swift
│ │ │ │ ├── ConnectableObservableType.swift
│ │ │ │ ├── Create.swift
│ │ │ │ ├── CurrentThreadScheduler.swift
│ │ │ │ ├── Debounce.swift
│ │ │ │ ├── Debug.swift
│ │ │ │ ├── DefaultIfEmpty.swift
│ │ │ │ ├── Deferred.swift
│ │ │ │ ├── DelaySubscription.swift
│ │ │ │ ├── Delay.swift
│ │ │ │ ├── Dematerialize.swift
│ │ │ │ ├── Deprecated.swift
│ │ │ │ ├── DeprecationWarner.swift
│ │ │ │ ├── DispatchQueueConfiguration.swift
│ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ ├── Disposables.swift
│ │ │ │ ├── Disposable.swift
│ │ │ │ ├── DisposeBag.swift
│ │ │ │ ├── DisposeBase.swift
│ │ │ │ ├── DistinctUntilChanged.swift
│ │ │ │ ├── Do.swift
│ │ │ │ ├── ElementAt.swift
│ │ │ │ ├── Empty.swift
│ │ │ │ ├── Enumerated.swift
│ │ │ │ ├── Errors.swift
│ │ │ │ ├── Error.swift
│ │ │ │ ├── Event.swift
│ │ │ │ ├── Filter.swift
│ │ │ │ ├── First.swift
│ │ │ │ ├── Generate.swift
│ │ │ │ ├── GroupBy.swift
│ │ │ │ ├── GroupedObservable.swift
│ │ │ │ ├── HistoricalScheduler.swift
│ │ │ │ ├── HistoricalSchedulerTimeConverter.swift
│ │ │ │ ├── ImmediateSchedulerType.swift
│ │ │ │ ├── InfiniteSequence.swift
│ │ │ │ ├── InvocableScheduledItem.swift
│ │ │ │ ├── InvocableType.swift
│ │ │ │ ├── Just.swift
│ │ │ │ ├── LockOwnerType.swift
│ │ │ │ ├── Lock.swift
│ │ │ │ ├── MainScheduler.swift
│ │ │ │ ├── Map.swift
│ │ │ │ ├── Materialize.swift
│ │ │ │ ├── Maybe.swift
│ │ │ │ ├── Merge.swift
│ │ │ │ ├── Multicast.swift
│ │ │ │ ├── Never.swift
│ │ │ │ ├── NopDisposable.swift
│ │ │ │ ├── ObservableConvertibleType.swift
│ │ │ │ ├── Observable.swift
│ │ │ │ ├── ObservableType+Extensions.swift
│ │ │ │ ├── ObservableType+PrimitiveSequence.swift
│ │ │ │ ├── ObservableType.swift
│ │ │ │ ├── ObserveOn.swift
│ │ │ │ ├── ObserverBase.swift
│ │ │ │ ├── ObserverType.swift
│ │ │ │ ├── OperationQueueScheduler.swift
│ │ │ │ ├── Optional.swift
│ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ ├── Platform.Linux.swift
│ │ │ │ ├── PrimitiveSequence.swift
│ │ │ │ ├── PrimitiveSequence+Zip+arity.swift
│ │ │ │ ├── PriorityQueue.swift
│ │ │ │ ├── Producer.swift
│ │ │ │ ├── PublishSubject.swift
│ │ │ │ ├── Queue.swift
│ │ │ │ ├── Range.swift
│ │ │ │ ├── Reactive.swift
│ │ │ │ ├── RecursiveLock.swift
│ │ │ │ ├── RecursiveScheduler.swift
│ │ │ │ ├── Reduce.swift
│ │ │ │ ├── RefCountDisposable.swift
│ │ │ │ ├── Repeat.swift
│ │ │ │ ├── ReplaySubject.swift
│ │ │ │ ├── RetryWhen.swift
│ │ │ │ ├── RxMutableBox.swift
│ │ │ │ ├── Rx.swift
│ │ │ │ ├── Sample.swift
│ │ │ │ ├── Scan.swift
│ │ │ │ ├── ScheduledDisposable.swift
│ │ │ │ ├── ScheduledItem.swift
│ │ │ │ ├── ScheduledItemType.swift
│ │ │ │ ├── SchedulerServices+Emulation.swift
│ │ │ │ ├── SchedulerType.swift
│ │ │ │ ├── Sequence.swift
│ │ │ │ ├── SerialDispatchQueueScheduler.swift
│ │ │ │ ├── SerialDisposable.swift
│ │ │ │ ├── ShareReplayScope.swift
│ │ │ │ ├── SingleAssignmentDisposable.swift
│ │ │ │ ├── SingleAsync.swift
│ │ │ │ ├── Single.swift
│ │ │ │ ├── Sink.swift
│ │ │ │ ├── Skip.swift
│ │ │ │ ├── SkipUntil.swift
│ │ │ │ ├── SkipWhile.swift
│ │ │ │ ├── StartWith.swift
│ │ │ │ ├── String+Rx.swift
│ │ │ │ ├── SubjectType.swift
│ │ │ │ ├── SubscribeOn.swift
│ │ │ │ ├── SubscriptionDisposable.swift
│ │ │ │ ├── SwiftSupport.swift
│ │ │ │ ├── SwitchIfEmpty.swift
│ │ │ │ ├── Switch.swift
│ │ │ │ ├── SynchronizedDisposeType.swift
│ │ │ │ ├── SynchronizedOnType.swift
│ │ │ │ ├── SynchronizedUnsubscribeType.swift
│ │ │ │ ├── TailRecursiveSink.swift
│ │ │ │ ├── TakeLast.swift
│ │ │ │ ├── Take.swift
│ │ │ │ ├── TakeUntil.swift
│ │ │ │ ├── TakeWhile.swift
│ │ │ │ ├── Throttle.swift
│ │ │ │ ├── Timeout.swift
│ │ │ │ ├── Timer.swift
│ │ │ │ ├── ToArray.swift
│ │ │ │ ├── Using.swift
│ │ │ │ ├── VirtualTimeConverterType.swift
│ │ │ │ ├── VirtualTimeScheduler.swift
│ │ │ │ ├── Window.swift
│ │ │ │ ├── WithLatestFrom.swift
│ │ │ │ ├── Zip+arity.swift
│ │ │ │ ├── Zip+Collection.swift
│ │ │ │ └── Zip.swift
│ │ │ └── RxTest
│ │ │ ├── Any+Equatable.swift
│ │ │ ├── Bag.swift
│ │ │ ├── ColdObservable.swift
│ │ │ ├── Deprecated.swift
│ │ │ ├── DeprecationWarner.swift
│ │ │ ├── Event+Equatable.swift
│ │ │ ├── HotObservable.swift
│ │ │ ├── Recorded+Event.swift
│ │ │ ├── Recorded.swift
│ │ │ ├── RxTest.swift
│ │ │ ├── Subscription.swift
│ │ │ ├── TestableObservable.swift
│ │ │ ├── TestableObserver.swift
│ │ │ ├── TestScheduler.swift
│ │ │ ├── TestSchedulerVirtualTimeConverter.swift
│ │ │ └── XCTest+Rx.swift
│ │ └── Tests
│ │ ├── Benchmarks
│ │ │ ├── Benchmarks.swift
│ │ │ └── Info.plist
│ │ ├── Info.plist
│ │ ├── MessageProcessingStage.swift
│ │ ├── Microoptimizations
│ │ │ ├── Info.plist
│ │ │ ├── main.swift
│ │ │ └── PerformanceTools.swift
│ │ ├── Platform
│ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ ├── Platform.Darwin.swift
│ │ │ ├── Platform.Linux.swift
│ │ │ └── RecursiveLock.swift
│ │ ├── Recorded+Timeless.swift
│ │ ├── Resources.swift
│ │ ├── RxBlockingTests
│ │ │ └── Observable+BlockingTest.swift
│ │ ├── RxCocoaTests
│ │ │ ├── Binder+Tests.swift
│ │ │ ├── ControlEventTests.swift
│ │ │ ├── ControlPropertyTests.swift
│ │ │ ├── DelegateProxyTest+Cocoa.swift
│ │ │ ├── DelegateProxyTest.swift
│ │ │ ├── DelegateProxyTest+UIKit.swift
│ │ │ ├── Driver+Test.swift
│ │ │ ├── ExampleTests.swift
│ │ │ ├── KeyPathBinder+RxTests.swift
│ │ │ ├── KVOObservableTests.swift
│ │ │ ├── NotificationCenterTests.swift
│ │ │ ├── NSButton+RxTests.swift
│ │ │ ├── NSControl+RxTests.swift
│ │ │ ├── NSLayoutConstraint+RxTests.swift
│ │ │ ├── NSObject+RxTests.swift
│ │ │ ├── NSSlider+RxTests.swift
│ │ │ ├── NSTextField+RxTests.swift
│ │ │ ├── NSView+RxTests.swift
│ │ │ ├── Observable+BindTests.swift
│ │ │ ├── ObservableConvertibleType+SharedSequence.swift
│ │ │ ├── RuntimeStateSnapshot.swift
│ │ │ ├── RxObjCRuntimeState.swift
│ │ │ ├── RXObjCRuntime+Testing.h
│ │ │ ├── RXObjCRuntime+Testing.m
│ │ │ ├── RxTest+Controls.swift
│ │ │ ├── RxTest-iOS-Bridging-Header.h
│ │ │ ├── RxTest-macOS-Bridging-Header.h
│ │ │ ├── RxTest-tvOS-Bridging-Header.h
│ │ │ ├── SentMessageTest.swift
│ │ │ ├── SharedSequence+Extensions.swift
│ │ │ ├── SharedSequence+OperatorTest.swift
│ │ │ ├── SharedSequence+Test.swift
│ │ │ ├── Signal+Test.swift
│ │ │ ├── TestImplementations
│ │ │ │ └── SectionedViewDataSourceMock.swift
│ │ │ ├── UIActivityIndicatorView+RxTests.swift
│ │ │ ├── UIAlertAction+RxTests.swift
│ │ │ ├── UIBarButtonItem+RxTests.swift
│ │ │ ├── UIButton+RxTests.swift
│ │ │ ├── UICollectionView+RxTests.swift
│ │ │ ├── UIControl+RxTests.swift
│ │ │ ├── UIDatePicker+RxTests.swift
│ │ │ ├── UIGestureRecognizer+RxTests.swift
│ │ │ ├── UILabel+RxTests.swift
│ │ │ ├── UINavigationController+RxTests.swift
│ │ │ ├── UINavigationItem+RxTests.swift.swift
│ │ │ ├── UIPageControl+RxTest.swift
│ │ │ ├── UIPickerView+RxTests.swift
│ │ │ ├── UIProgressView+RxTests.swift
│ │ │ ├── UIRefreshControl+RxTests.swift
│ │ │ ├── UIScrollView+RxTests.swift
│ │ │ ├── UISearchBar+RxTests.swift
│ │ │ ├── UISearchController+RxTests.swift
│ │ │ ├── UISegmentedControl+RxTests.swift
│ │ │ ├── UISlider+RxTests.swift
│ │ │ ├── UIStepper+RxTests.swift
│ │ │ ├── UISwitch+RxTests.swift
│ │ │ ├── UITabBarController+RxTests.swift
│ │ │ ├── UITabBarItem+RxTests.swift
│ │ │ ├── UITabBar+RxTests.swift
│ │ │ ├── UITableView+RxTests.swift
│ │ │ ├── UITextField+RxTests.swift
│ │ │ ├── UITextView+RxTests.swift
│ │ │ ├── UIViewController+RxTests.swift
│ │ │ ├── UIView+RxTests.swift
│ │ │ └── UIWebView+RxTests.swift
│ │ ├── RxSwiftTests
│ │ │ ├── Anomalies.swift
│ │ │ ├── AssumptionsTest.swift
│ │ │ ├── AsyncSubjectTests.swift
│ │ │ ├── BagTest.swift
│ │ │ ├── BehaviorSubjectTest.swift
│ │ │ ├── Completable+AndThen.swift
│ │ │ ├── CompletableTest.swift
│ │ │ ├── CurrentThreadSchedulerTest.swift
│ │ │ ├── DisposableTest.swift
│ │ │ ├── DisposeBagTest.swift
│ │ │ ├── Event+Test.swift
│ │ │ ├── HistoricalSchedulerTest.swift
│ │ │ ├── MainSchedulerTests.swift
│ │ │ ├── MaybeTest.swift
│ │ │ ├── Observable+AmbTests.swift
│ │ │ ├── Observable+BufferTests.swift
│ │ │ ├── Observable+CatchTests.swift
│ │ │ ├── Observable+CombineLatestTests+arity.swift
│ │ │ ├── Observable+CombineLatestTests+arity.tt
│ │ │ ├── Observable+CombineLatestTests.swift
│ │ │ ├── Observable+ConcatTests.swift
│ │ │ ├── Observable+DebugTests.swift
│ │ │ ├── Observable+DefaultIfEmpty.swift
│ │ │ ├── Observable+DelaySubscriptionTests.swift
│ │ │ ├── Observable+DelayTests.swift
│ │ │ ├── Observable+DematerializeTests.swift
│ │ │ ├── Observable+DistinctUntilChangedTests.swift
│ │ │ ├── Observable+DoOnTests.swift
│ │ │ ├── Observable+ElementAtTests.swift
│ │ │ ├── Observable+EnumeratedTests.swift
│ │ │ ├── Observable+FilterTests.swift
│ │ │ ├── Observable+GenerateTests.swift
│ │ │ ├── Observable+GroupByTests.swift
│ │ │ ├── Observable+JustTests.swift
│ │ │ ├── Observable+MapTests.swift
│ │ │ ├── Observable+MaterializeTests.swift
│ │ │ ├── Observable+MergeTests.swift
│ │ │ ├── Observable+MulticastTests.swift
│ │ │ ├── Observable+ObserveOnTests.swift
│ │ │ ├── Observable+OptionalTests.swift
│ │ │ ├── Observable+PrimitiveSequenceTest.swift
│ │ │ ├── Observable+RangeTests.swift
│ │ │ ├── Observable+ReduceTests.swift
│ │ │ ├── Observable+RepeatTests.swift
│ │ │ ├── Observable+RetryWhenTests.swift
│ │ │ ├── Observable+SampleTests.swift
│ │ │ ├── Observable+ScanTests.swift
│ │ │ ├── Observable+SequenceTests.swift
│ │ │ ├── Observable+ShareReplayScopeTests.swift
│ │ │ ├── Observable+SingleTests.swift
│ │ │ ├── Observable+SkipTests.swift
│ │ │ ├── Observable+SkipUntilTests.swift
│ │ │ ├── Observable+SkipWhileTests.swift
│ │ │ ├── Observable+SubscribeOnTests.swift
│ │ │ ├── Observable+SubscriptionTest.swift
│ │ │ ├── Observable+SwitchIfEmptyTests.swift
│ │ │ ├── Observable+SwitchTests.swift
│ │ │ ├── Observable+TakeLastTests.swift
│ │ │ ├── Observable+TakeTests.swift
│ │ │ ├── Observable+TakeUntilTests.swift
│ │ │ ├── Observable+TakeWhileTests.swift
│ │ │ ├── Observable+Tests.swift
│ │ │ ├── Observable+ThrottleTests.swift
│ │ │ ├── Observable+TimeoutTests.swift
│ │ │ ├── Observable+TimerTests.swift
│ │ │ ├── Observable+ToArrayTests.swift
│ │ │ ├── ObservableType+SubscriptionTests.swift
│ │ │ ├── Observable+UsingTests.swift
│ │ │ ├── Observable+WindowTests.swift
│ │ │ ├── Observable+WithLatestFromTests.swift
│ │ │ ├── Observable+ZipTests+arity.swift
│ │ │ ├── Observable+ZipTests+arity.tt
│ │ │ ├── Observable+ZipTests.swift
│ │ │ ├── ObserverTests.swift
│ │ │ ├── PrimitiveSequenceTest+zip+arity.swift
│ │ │ ├── PrimitiveSequenceTest+zip+arity.tt
│ │ │ ├── PublishSubjectTest.swift
│ │ │ ├── QueueTests.swift
│ │ │ ├── Reactive+Tests.swift
│ │ │ ├── RecursiveLockTest.swift
│ │ │ ├── ReplaySubjectTest.swift
│ │ │ ├── SchedulerTests.swift
│ │ │ ├── SharingSchedulerTests.swift
│ │ │ ├── SingleTest.swift
│ │ │ ├── SubjectConcurrencyTest.swift
│ │ │ ├── TestImplementations
│ │ │ │ ├── ElementIndexPair.swift
│ │ │ │ ├── EquatableArray.swift
│ │ │ │ ├── Mocks
│ │ │ │ │ ├── BackgroundThreadPrimitiveHotObservable.swift
│ │ │ │ │ ├── MainThreadPrimitiveHotObservable.swift
│ │ │ │ │ ├── MockDisposable.swift
│ │ │ │ │ ├── MySubject.swift
│ │ │ │ │ ├── Observable.Extensions.swift
│ │ │ │ │ ├── PrimitiveHotObservable.swift
│ │ │ │ │ ├── PrimitiveMockObserver.swift
│ │ │ │ │ └── TestConnectableObservable.swift
│ │ │ │ ├── Observable+Extensions.swift
│ │ │ │ └── TestVirtualScheduler.swift
│ │ │ ├── VariableTest.swift
│ │ │ └── VirtualSchedulerTest.swift
│ │ ├── RxTest.swift
│ │ ├── TestErrors.swift
│ │ └── XCTest+AllTests.swift
│ ├── Koober
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon1024.png
│ │ │ │ ├── Icon20@2x.png
│ │ │ │ ├── Icon20.png
│ │ │ │ ├── Icon29@2x.png
│ │ │ │ ├── Icon29.png
│ │ │ │ ├── Icon40@2x.png
│ │ │ │ ├── Icon40.png
│ │ │ │ ├── Icon76@2x.png
│ │ │ │ ├── Icon76.png
│ │ │ │ ├── Icon83.5@2x.png
│ │ │ │ ├── icon-app-20@2x.png
│ │ │ │ ├── icon-app-20@3x.png
│ │ │ │ ├── icon-app-29@2x.png
│ │ │ │ ├── icon-app-29@3x copy.png
│ │ │ │ ├── icon-app-40@2x.png
│ │ │ │ ├── icon-app-40@3x.png
│ │ │ │ ├── icon-app-60@2x.png
│ │ │ │ └── icon-app-60@3x.png
│ │ │ ├── Colors
│ │ │ │ ├── BackgroundColor.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ └── Images
│ │ │ ├── Contents.json
│ │ │ ├── Onboard
│ │ │ │ ├── Contents.json
│ │ │ │ ├── email_icon.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── email_icon@2x.png
│ │ │ │ │ ├── email_icon@3x.png
│ │ │ │ │ └── email_icon.png
│ │ │ │ ├── mobile_icon.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── mobile_icon@2x.png
│ │ │ │ │ ├── mobile_icon@3x.png
│ │ │ │ │ └── mobile_icon.png
│ │ │ │ ├── password_icon.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── password_icon@2x.png
│ │ │ │ │ ├── password_icon@3x.png
│ │ │ │ │ └── password_icon.png
│ │ │ │ ├── person_icon.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── person@2x.png
│ │ │ │ │ ├── person@3x.png
│ │ │ │ │ └── person.png
│ │ │ │ ├── roo_logo.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── roo_logo@2x.png
│ │ │ │ │ ├── roo_logo@3x.png
│ │ │ │ │ └── roo_logo.png
│ │ │ │ └── tag_icon.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── tag@2x.png
│ │ │ │ ├── tag@3x.png
│ │ │ │ └── tag.png
│ │ │ ├── RequestRide
│ │ │ │ ├── available_placeholder_marker.imageset
│ │ │ │ │ ├── available_placeholder_marker@2x.png
│ │ │ │ │ ├── available_placeholder_marker@3x.png
│ │ │ │ │ ├── available_placeholder_marker.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── CancelButton.imageset
│ │ │ │ │ ├── CancelButton@2x.png
│ │ │ │ │ ├── CancelButton@3x.png
│ │ │ │ │ ├── CancelButton.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── DriverEnRoute.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Driver En Route@1x.png
│ │ │ │ │ ├── Driver En Route@2x.png
│ │ │ │ │ └── Driver En Route@3x.png
│ │ │ │ ├── koober.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon-60@2x.png
│ │ │ │ │ └── Icon-60@3x.png
│ │ │ │ ├── MapMarkerDropoffLocation.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── map_marker_destination_location@2x.png
│ │ │ │ │ ├── map_marker_destination_location@3x.png
│ │ │ │ │ └── map_marker_destination_location.png
│ │ │ │ ├── MapMarkerPickupLocation.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── map_marker_pickup_location@2x.png
│ │ │ │ │ ├── map_marker_pickup_location@3x.png
│ │ │ │ │ └── map_marker_pickup_location.png
│ │ │ │ ├── ProgressKangaroo.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── progress_kangaroo@2x.png
│ │ │ │ │ ├── progress_kangaroo@3x.png
│ │ │ │ │ └── progress_kangaroo.png
│ │ │ │ ├── requesting_indicator.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── requesting_indicator@2x.png
│ │ │ │ │ ├── requesting_indicator@3x.png
│ │ │ │ │ └── requesting_indicator.png
│ │ │ │ ├── RideOptionPicker
│ │ │ │ │ ├── available_kangaroo_marker.imageset
│ │ │ │ │ │ ├── available_kangaroo_marker@2x.png
│ │ │ │ │ │ ├── available_kangaroo_marker@3x.png
│ │ │ │ │ │ ├── available_kangaroo_marker.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── available_wallabe_marker.imageset
│ │ │ │ │ │ ├── available_wallabe_marker@2x.png
│ │ │ │ │ │ ├── available_wallabe_marker@3x.png
│ │ │ │ │ │ ├── available_wallabe_marker.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── available_wallaroo_marker.imageset
│ │ │ │ │ │ ├── available_wallaroo_marker@2x.png
│ │ │ │ │ │ ├── available_wallaroo_marker@3x.png
│ │ │ │ │ │ ├── available_wallaroo_marker.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ride_option_kangaroo.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_kangaroo@2x.png
│ │ │ │ │ │ ├── ride_option_kangaroo@3x.png
│ │ │ │ │ │ └── ride_option_kangaroo.png
│ │ │ │ │ ├── ride_option_kangaroo_selected.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_kangaroo_selected@2x.png
│ │ │ │ │ │ ├── ride_option_kangaroo_selected@3x.png
│ │ │ │ │ │ └── ride_option_kangaroo_selected.png
│ │ │ │ │ ├── ride_option_wallabee.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_wallabee@2x.png
│ │ │ │ │ │ ├── ride_option_wallabee@3x.png
│ │ │ │ │ │ └── ride_option_wallabee.png
│ │ │ │ │ ├── ride_option_wallabee_selected.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_wallabee_selected@2x.png
│ │ │ │ │ │ ├── ride_option_wallabee_selected@3x.png
│ │ │ │ │ │ └── ride_option_wallabee_selected.png
│ │ │ │ │ ├── ride_option_wallaroo.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_wallaroo@2x.png
│ │ │ │ │ │ ├── ride_option_wallaroo@3x.png
│ │ │ │ │ │ └── ride_option_wallaroo.png
│ │ │ │ │ └── ride_option_wallaroo_selected.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ride_option_wallaroo_selected@2x.png
│ │ │ │ │ ├── ride_option_wallaroo_selected@3x.png
│ │ │ │ │ └── ride_option_wallaroo_selected.png
│ │ │ │ ├── ride_option_placeholder.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ride_option_placeholder@2x.png
│ │ │ │ │ ├── ride_option_placeholder@3x.png
│ │ │ │ │ └── ride_option_placeholder.png
│ │ │ │ ├── ride_option_placeholder_selected.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ride_option_wallabee_selected@2x.png
│ │ │ │ │ ├── ride_option_wallabee_selected@3x.png
│ │ │ │ │ └── ride_option_wallabee_selected.png
│ │ │ │ ├── SetPickupLocationLoader.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── set_pickup_location_loader@2x.png
│ │ │ │ │ ├── set_pickup_location_loader@3x.png
│ │ │ │ │ └── set_pickup_location_loader.png
│ │ │ │ └── success_message.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── success_message@2x.png
│ │ │ │ ├── success_message@3x.png
│ │ │ │ └── success_message.png
│ │ │ ├── roo-icon.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── roo-icon@2x.png
│ │ │ │ ├── roo-icon@3x.png
│ │ │ │ └── roo-icon.png
│ │ │ ├── rwdevcon-bg.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rwdevcon-bg.png
│ │ │ ├── rwdevcon-logo.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rwdevcon-logo.png
│ │ │ ├── rw-logo.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Razewarelogo_1024.png
│ │ │ └── SelectPaymentMethod
│ │ │ ├── card_icon.imageset
│ │ │ │ ├── card_icon@2x.png
│ │ │ │ ├── card_icon@3x.png
│ │ │ │ ├── card_icon.png
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ └── selected_icon.imageset
│ │ │ ├── Contents.json
│ │ │ ├── selected_icon@2x.png
│ │ │ ├── selected_icon@3x.png
│ │ │ └── selected_icon.png
│ │ ├── Info.plist
│ │ ├── RWDevConLaunchScreen.xib
│ │ └── ToArchive
│ │ ├── A. RequestRideContainerViewController.swift
│ │ ├── B. SelectPickupAndDropoffViewController.swift
│ │ ├── C. MapViewController.swift
│ │ ├── D. MapView.swift
│ │ └── Z. SwinjectStoryboard+Koober.swift
│ ├── KooberApp.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcshareddata
│ │ └── xcschemes
│ │ ├── Koober-iOS.xcscheme
│ │ ├── KooberKit.xcscheme
│ │ ├── KooberUIKit.xcscheme
│ │ └── Koober.xcscheme
│ ├── Koober_iOS
│ │ ├── Info.plist
│ │ ├── iOSApp
│ │ │ ├── KooberAppDepedencyContainer.swift
│ │ │ ├── LaunchRootView.swift
│ │ │ ├── LaunchViewController.swift
│ │ │ ├── MainViewController.swift
│ │ │ ├── Onboarding
│ │ │ │ ├── KooberOnboardingDependencyContainer.swift
│ │ │ │ ├── OnboardingViewController.swift
│ │ │ │ ├── SignIn
│ │ │ │ │ ├── SignInRootView.swift
│ │ │ │ │ └── SignInViewController.swift
│ │ │ │ ├── SignUp
│ │ │ │ │ ├── SignUpRootView.swift
│ │ │ │ │ └── SignUpViewController.swift
│ │ │ │ └── Welcome
│ │ │ │ ├── WelcomeRootView.swift
│ │ │ │ └── WelcomeViewController.swift
│ │ │ └── SignedIn
│ │ │ ├── GettingUsersLocation
│ │ │ │ ├── GettingUsersLocationRootView.swift
│ │ │ │ └── GettingUsersLocationViewController.swift
│ │ │ ├── KooberSignedInDependencyContainer.swift
│ │ │ ├── PickMeUp
│ │ │ │ ├── KooberPickMeUpDependencyContainer.swift
│ │ │ │ ├── Map
│ │ │ │ │ ├── MapAnnotationView.swift
│ │ │ │ │ ├── Model
│ │ │ │ │ │ ├── MapAnnotationDiff.swift
│ │ │ │ │ │ ├── MapAnnotation+MapKit.swift
│ │ │ │ │ │ ├── MapAnnotation.swift
│ │ │ │ │ │ ├── MapAnnotationType.swift
│ │ │ │ │ │ └── MapViewModel.swift
│ │ │ │ │ ├── PickMeUpMapRootView.swift
│ │ │ │ │ └── PickMeUpMapViewController.swift
│ │ │ │ ├── PickMeUpRootView.swift
│ │ │ │ ├── PickMeUpUserInterface.swift
│ │ │ │ ├── PickMeUpViewController.swift
│ │ │ │ ├── SelectDropoffLocation
│ │ │ │ │ ├── DropoffLocationPickerContentRootView.swift
│ │ │ │ │ ├── DropoffLocationPickerContentViewController.swift
│ │ │ │ │ └── DropoffLocationPickerViewController.swift
│ │ │ │ ├── SelectRideOption
│ │ │ │ │ ├── Button
│ │ │ │ │ │ ├── RideOptionButton.swift
│ │ │ │ │ │ └── RideOptionSegmentButtonImageLoader.swift
│ │ │ │ │ ├── RideOptionPickerViewController.swift
│ │ │ │ │ └── RideOptionSegmentedControl.swift
│ │ │ │ └── SendRideRequest
│ │ │ │ ├── SendingRideRequestRootView.swift
│ │ │ │ └── SendingRideRequestViewController.swift
│ │ │ ├── SignedInRootView.swift
│ │ │ ├── SignedInViewController.swift
│ │ │ ├── ViewProfile
│ │ │ │ ├── ProfileContentRootView.swift
│ │ │ │ ├── ProfileContentViewController.swift
│ │ │ │ └── ProfileViewController.swift
│ │ │ └── WaitingForPickup
│ │ │ ├── WaitingForPickupRootView.swift
│ │ │ └── WaitingForPickupViewController.swift
│ │ └── Koober_iOS.h
│ ├── KooberKit
│ │ ├── DataLayer
│ │ │ ├── Model
│ │ │ │ ├── ErrorMessage.swift
│ │ │ │ ├── ErrorPresentation.swift
│ │ │ │ ├── FakeURL.swift
│ │ │ │ ├── Identifiable.swift
│ │ │ │ ├── KooberKitError.swift
│ │ │ │ ├── LoadedState.swift
│ │ │ │ ├── Location.swift
│ │ │ │ ├── NamedLocation.swift
│ │ │ │ ├── NewAccount.swift
│ │ │ │ ├── NewRideRequest.swift
│ │ │ │ ├── RemoteImage.swift
│ │ │ │ ├── RideOptionPickerRideOptions.swift
│ │ │ │ ├── RideOption.swift
│ │ │ │ ├── Secret.swift
│ │ │ │ ├── UserProfile.swift
│ │ │ │ └── UserSession.swift
│ │ │ └── Repositories
│ │ │ ├── Coding
│ │ │ │ └── UserSession
│ │ │ │ ├── Implementations
│ │ │ │ │ └── UserSessionPropertyListCoder.swift
│ │ │ │ └── UserSessionCoding.swift
│ │ │ ├── KooberLocationRepository.swift
│ │ │ ├── KooberNewRideRepository.swift
│ │ │ ├── KooberRideOptionRepository.swift
│ │ │ ├── KooberUserSessionRepository.swift
│ │ │ ├── Location
│ │ │ │ ├── Implementations
│ │ │ │ │ └── FakeLocator.swift
│ │ │ │ └── Locator.swift
│ │ │ ├── LocationRepository.swift
│ │ │ ├── NewRideRepository.swift
│ │ │ ├── Persistence
│ │ │ │ ├── RideOptionStore
│ │ │ │ │ ├── Implementations
│ │ │ │ │ │ ├── RideOptionDataStoreDiskUserPrefs.swift
│ │ │ │ │ │ └── RideOptionDataStoreInMemory.swift
│ │ │ │ │ └── RideOptionDataStore.swift
│ │ │ │ └── UserSessionStore
│ │ │ │ ├── Implementations
│ │ │ │ │ ├── FakeUserSessionDataStore.swift
│ │ │ │ │ ├── FileUserSessionDataStore.swift
│ │ │ │ │ └── Keychain
│ │ │ │ │ ├── KeychainItem.swift
│ │ │ │ │ ├── Keychain.swift
│ │ │ │ │ └── KeychainUserSessionDataStore.swift
│ │ │ │ └── UserSessionDataStore.swift
│ │ │ ├── Remote
│ │ │ │ ├── Auth
│ │ │ │ │ ├── AuthRemoteAPI.swift
│ │ │ │ │ └── Implementations
│ │ │ │ │ ├── FakeAuthRemoteAPI.swift
│ │ │ │ │ └── KooberCloudAuthRemoteAPI.swift
│ │ │ │ ├── NewRide
│ │ │ │ │ ├── Implementations
│ │ │ │ │ │ ├── FakeNewRideRemoteAPI.swift
│ │ │ │ │ │ └── KooberCloudNewRideRemoteAPI.swift
│ │ │ │ │ └── NewRideRemoteAPI.swift
│ │ │ │ └── RemoteUserSession.swift
│ │ │ ├── RideOptionRepository.swift
│ │ │ └── UserSessionRepository.swift
│ │ ├── Info.plist
│ │ ├── KooberKit.h
│ │ ├── Reusable
│ │ │ └── RxSwiftExtensions
│ │ │ └── ObservableOperators.swift
│ │ └── UILayer
│ │ ├── LaunchViewModel.swift
│ │ ├── MainViewModel.swift
│ │ ├── MainView.swift
│ │ ├── NotSignedInResponder.swift
│ │ ├── Onboard
│ │ │ ├── GoToSignInNavigator.swift
│ │ │ ├── GoToSignUpNavigator.swift
│ │ │ ├── OnboardingViewModel.swift
│ │ │ ├── OnboardingView.swift
│ │ │ ├── SignIn
│ │ │ │ └── SignInViewModel.swift
│ │ │ ├── SignUp
│ │ │ │ └── SignUpViewModel.swift
│ │ │ └── Welcome
│ │ │ └── WelcomeViewModel.swift
│ │ ├── Reusable
│ │ │ └── NavigationAction.swift
│ │ ├── SignedIn
│ │ │ ├── DeterminedPickUpLocationResponder.swift
│ │ │ ├── GettingUsersLocation
│ │ │ │ └── GettingUsersLocationViewModel.swift
│ │ │ ├── GoToNewRideNavigator.swift
│ │ │ ├── NewRideRequestAcceptedResponder.swift
│ │ │ ├── PickMeUp
│ │ │ │ ├── CancelDropoffLocationSelectionResponder.swift
│ │ │ │ ├── DoneWithProfileResponder.swift
│ │ │ │ ├── DropoffLocationDeterminedResponder.swift
│ │ │ │ ├── Map
│ │ │ │ │ └── PickMeUpMapViewModel.swift
│ │ │ │ ├── PickMeUpRequestProgress.swift
│ │ │ │ ├── PickMeUpViewModel.swift
│ │ │ │ ├── PickMeUpView.swift
│ │ │ │ ├── RideOptionDeterminedResponder.swift
│ │ │ │ ├── SelectDropoffLocation
│ │ │ │ │ └── DropoffLocationPickerViewModel.swift
│ │ │ │ └── SelectRideOption
│ │ │ │ ├── RideOptionPickerViewModel.swift
│ │ │ │ ├── RideOptionSegmentedControlViewModel.swift
│ │ │ │ ├── RideOptionSegmentsFactory.swift
│ │ │ │ └── RideOptionSegmentViewModel.swift
│ │ │ ├── SignedInViewModel.swift
│ │ │ ├── SignedInView.swift
│ │ │ ├── ViewProfile
│ │ │ │ └── ProfileViewModel.swift
│ │ │ └── WaitingForPickup
│ │ │ └── WaitingForPickupViewModel.swift
│ │ └── SignedInResponder.swift
│ └── KooberUIKit
│ ├── Info.plist
│ ├── KooberUIKit.h
│ └── Reusable
│ ├── ErrorMessagePresentation.swift
│ ├── Image Cache
│ │ ├── ImageCache.swift
│ │ └── Implementations
│ │ ├── ImageCacheKingfisher.swift
│ │ └── InBundleImageCache.swift
│ ├── Style
│ │ ├── Color.swift
│ │ └── UIColor+Hex.swift
│ └── UIKit
│ ├── NiblessComponents
│ │ ├── NiblessNavigationController.swift
│ │ ├── NiblessViewController.swift
│ │ └── NiblessView.swift
│ ├── ObservableUISearchController.swift
│ ├── UIStackViewExtensions.swift
│ ├── UIViewController+ErrorPresentation.swift
│ └── ViewControllerContainment.swift
├── 05-architecture-mvvm
│ └── final
│ ├── KooberApp
│ │ ├── Cartfile
│ │ ├── Cartfile.resolved
│ │ ├── Carthage
│ │ │ └── Checkouts
│ │ │ ├── Kingfisher
│ │ │ │ ├── CHANGELOG.md
│ │ │ │ ├── codecov.yml
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── Demo
│ │ │ │ │ ├── Demo
│ │ │ │ │ │ ├── Kingfisher-Demo
│ │ │ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ │ │ ├── Base.lproj
│ │ │ │ │ │ │ │ ├── LaunchScreen.xib
│ │ │ │ │ │ │ │ └── Main.storyboard
│ │ │ │ │ │ │ ├── CollectionViewCell.swift
│ │ │ │ │ │ │ ├── Images.xcassets
│ │ │ │ │ │ │ │ └── AppIcon.appiconset
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ │ ├── loader.gif
│ │ │ │ │ │ │ └── ViewController.swift
│ │ │ │ │ │ ├── Kingfisher-macOS-Demo
│ │ │ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ │ │ └── AppIcon.appiconset
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ ├── Base.lproj
│ │ │ │ │ │ │ │ └── Main.storyboard
│ │ │ │ │ │ │ ├── Cell.xib
│ │ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ │ └── ViewController.swift
│ │ │ │ │ │ ├── Kingfisher-tvOS-Demo
│ │ │ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ │ │ ├── App Icon & Top Shelf Image.brandassets
│ │ │ │ │ │ │ │ │ ├── App Icon - Large.imagestack
│ │ │ │ │ │ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ └── Middle.imagestacklayer
│ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ ├── App Icon - Small.imagestack
│ │ │ │ │ │ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ └── Middle.imagestacklayer
│ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ │ └── Top Shelf Image.imageset
│ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ └── LaunchImage.launchimage
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ ├── Base.lproj
│ │ │ │ │ │ │ │ └── Main.storyboard
│ │ │ │ │ │ │ └── Info.plist
│ │ │ │ │ │ ├── Kingfisher-watchOS-Demo
│ │ │ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ │ │ └── AppIcon.appiconset
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ ├── Base.lproj
│ │ │ │ │ │ │ │ └── Interface.storyboard
│ │ │ │ │ │ │ └── Info.plist
│ │ │ │ │ │ └── Kingfisher-watchOS-Demo Extension
│ │ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ │ └── README__ignoredByTemplate__
│ │ │ │ │ │ ├── ExtensionDelegate.swift
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ └── InterfaceController.swift
│ │ │ │ │ └── Kingfisher-Demo.xcodeproj
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── docs
│ │ │ │ │ ├── badge.svg
│ │ │ │ │ ├── Classes
│ │ │ │ │ │ ├── AnimatedImageView
│ │ │ │ │ │ │ └── RepeatCount.html
│ │ │ │ │ │ ├── AnimatedImageView.html
│ │ │ │ │ │ ├── ImageCache
│ │ │ │ │ │ │ └── CacheCheckResult.html
│ │ │ │ │ │ ├── ImageCache.html
│ │ │ │ │ │ ├── ImageDownloader.html
│ │ │ │ │ │ ├── ImagePrefetcher.html
│ │ │ │ │ │ ├── Kingfisher.html
│ │ │ │ │ │ ├── KingfisherManager.html
│ │ │ │ │ │ └── RetrieveImageTask.html
│ │ │ │ │ ├── Classes.html
│ │ │ │ │ ├── css
│ │ │ │ │ │ ├── highlight.css
│ │ │ │ │ │ └── jazzy.css
│ │ │ │ │ ├── docsets
│ │ │ │ │ │ ├── Kingfisher.docset
│ │ │ │ │ │ │ └── Contents
│ │ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ │ └── Resources
│ │ │ │ │ │ │ ├── docSet.dsidx
│ │ │ │ │ │ │ └── Documents
│ │ │ │ │ │ │ ├── Classes
│ │ │ │ │ │ │ │ ├── AnimatedImageView
│ │ │ │ │ │ │ │ │ └── RepeatCount.html
│ │ │ │ │ │ │ │ ├── AnimatedImageView.html
│ │ │ │ │ │ │ │ ├── ImageCache
│ │ │ │ │ │ │ │ │ └── CacheCheckResult.html
│ │ │ │ │ │ │ │ ├── ImageCache.html
│ │ │ │ │ │ │ │ ├── ImageDownloader.html
│ │ │ │ │ │ │ │ ├── ImagePrefetcher.html
│ │ │ │ │ │ │ │ ├── Kingfisher.html
│ │ │ │ │ │ │ │ ├── KingfisherManager.html
│ │ │ │ │ │ │ │ └── RetrieveImageTask.html
│ │ │ │ │ │ │ ├── Classes.html
│ │ │ │ │ │ │ ├── css
│ │ │ │ │ │ │ │ ├── highlight.css
│ │ │ │ │ │ │ │ └── jazzy.css
│ │ │ │ │ │ │ ├── Enums
│ │ │ │ │ │ │ │ ├── CacheType.html
│ │ │ │ │ │ │ │ ├── ContentMode.html
│ │ │ │ │ │ │ │ ├── ImageFormat.html
│ │ │ │ │ │ │ │ ├── ImageProcessItem.html
│ │ │ │ │ │ │ │ ├── ImageTransition.html
│ │ │ │ │ │ │ │ ├── IndicatorType.html
│ │ │ │ │ │ │ │ ├── KingfisherError.html
│ │ │ │ │ │ │ │ └── KingfisherOptionsInfoItem.html
│ │ │ │ │ │ │ ├── Enums.html
│ │ │ │ │ │ │ ├── Extensions
│ │ │ │ │ │ │ │ ├── CGSize.html
│ │ │ │ │ │ │ │ ├── Collection.html
│ │ │ │ │ │ │ │ ├── Data.html
│ │ │ │ │ │ │ │ ├── Notification
│ │ │ │ │ │ │ │ │ └── Name.html
│ │ │ │ │ │ │ │ ├── Notification.html
│ │ │ │ │ │ │ │ └── URL.html
│ │ │ │ │ │ │ ├── Extensions.html
│ │ │ │ │ │ │ ├── Functions.html
│ │ │ │ │ │ │ ├── Global Variables.html
│ │ │ │ │ │ │ ├── img
│ │ │ │ │ │ │ │ ├── carat.png
│ │ │ │ │ │ │ │ ├── dash.png
│ │ │ │ │ │ │ │ └── gh.png
│ │ │ │ │ │ │ ├── index.html
│ │ │ │ │ │ │ ├── js
│ │ │ │ │ │ │ │ ├── jazzy.js
│ │ │ │ │ │ │ │ └── jquery.min.js
│ │ │ │ │ │ │ ├── Protocols
│ │ │ │ │ │ │ │ ├── AnimatedImageViewDelegate.html
│ │ │ │ │ │ │ │ ├── AuthenticationChallengeResponsable.html
│ │ │ │ │ │ │ │ ├── CacheSerializer.html
│ │ │ │ │ │ │ │ ├── CIImageProcessor.html
│ │ │ │ │ │ │ │ ├── ImageDownloaderDelegate.html
│ │ │ │ │ │ │ │ ├── ImageDownloadRequestModifier.html
│ │ │ │ │ │ │ │ ├── ImageModifier.html
│ │ │ │ │ │ │ │ ├── ImageProcessor.html
│ │ │ │ │ │ │ │ ├── Indicator.html
│ │ │ │ │ │ │ │ ├── KingfisherCompatible.html
│ │ │ │ │ │ │ │ ├── Placeholder.html
│ │ │ │ │ │ │ │ └── Resource.html
│ │ │ │ │ │ │ ├── Protocols.html
│ │ │ │ │ │ │ ├── search.json
│ │ │ │ │ │ │ ├── Structs
│ │ │ │ │ │ │ │ ├── AlignmentRectInsetsImageModifier.html
│ │ │ │ │ │ │ │ ├── AnyImageModifier.html
│ │ │ │ │ │ │ │ ├── AnyModifier.html
│ │ │ │ │ │ │ │ ├── BlackWhiteProcessor.html
│ │ │ │ │ │ │ │ ├── BlendImageProcessor.html
│ │ │ │ │ │ │ │ ├── BlurImageProcessor.html
│ │ │ │ │ │ │ │ ├── CGSizeProxy.html
│ │ │ │ │ │ │ │ ├── ColorControlsProcessor.html
│ │ │ │ │ │ │ │ ├── CompositingImageProcessor.html
│ │ │ │ │ │ │ │ ├── CroppingImageProcessor.html
│ │ │ │ │ │ │ │ ├── DataProxy.html
│ │ │ │ │ │ │ │ ├── DefaultCacheSerializer.html
│ │ │ │ │ │ │ │ ├── DefaultImageModifier.html
│ │ │ │ │ │ │ │ ├── DefaultImageProcessor.html
│ │ │ │ │ │ │ │ ├── Filter.html
│ │ │ │ │ │ │ │ ├── FlipsForRightToLeftLayoutDirectionImageModifier.html
│ │ │ │ │ │ │ │ ├── FormatIndicatedCacheSerializer.html
│ │ │ │ │ │ │ │ ├── ImageResource.html
│ │ │ │ │ │ │ │ ├── OverlayImageProcessor.html
│ │ │ │ │ │ │ │ ├── RectCorner.html
│ │ │ │ │ │ │ │ ├── RenderingModeImageModifier.html
│ │ │ │ │ │ │ │ ├── ResizingImageProcessor.html
│ │ │ │ │ │ │ │ ├── RetrieveImageDownloadTask.html
│ │ │ │ │ │ │ │ ├── RoundCornerImageProcessor.html
│ │ │ │ │ │ │ │ └── TintImageProcessor.html
│ │ │ │ │ │ │ ├── Structs.html
│ │ │ │ │ │ │ └── Typealiases.html
│ │ │ │ │ │ ├── Kingfisher.tgz
│ │ │ │ │ │ └── Kingfisher.xml
│ │ │ │ │ ├── Enums
│ │ │ │ │ │ ├── CacheType.html
│ │ │ │ │ │ ├── ContentMode.html
│ │ │ │ │ │ ├── ImageFormat.html
│ │ │ │ │ │ ├── ImageProcessItem.html
│ │ │ │ │ │ ├── ImageTransition.html
│ │ │ │ │ │ ├── IndicatorType.html
│ │ │ │ │ │ ├── KingfisherError.html
│ │ │ │ │ │ └── KingfisherOptionsInfoItem.html
│ │ │ │ │ ├── Enums.html
│ │ │ │ │ ├── Extensions
│ │ │ │ │ │ ├── CGSize.html
│ │ │ │ │ │ ├── Collection.html
│ │ │ │ │ │ ├── Data.html
│ │ │ │ │ │ ├── Notification
│ │ │ │ │ │ │ └── Name.html
│ │ │ │ │ │ ├── Notification.html
│ │ │ │ │ │ └── URL.html
│ │ │ │ │ ├── Extensions.html
│ │ │ │ │ ├── Functions.html
│ │ │ │ │ ├── Global Variables.html
│ │ │ │ │ ├── img
│ │ │ │ │ │ ├── carat.png
│ │ │ │ │ │ ├── dash.png
│ │ │ │ │ │ └── gh.png
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── js
│ │ │ │ │ │ ├── jazzy.js
│ │ │ │ │ │ └── jquery.min.js
│ │ │ │ │ ├── Protocols
│ │ │ │ │ │ ├── AnimatedImageViewDelegate.html
│ │ │ │ │ │ ├── AuthenticationChallengeResponsable.html
│ │ │ │ │ │ ├── CacheSerializer.html
│ │ │ │ │ │ ├── CIImageProcessor.html
│ │ │ │ │ │ ├── ImageDownloaderDelegate.html
│ │ │ │ │ │ ├── ImageDownloadRequestModifier.html
│ │ │ │ │ │ ├── ImageModifier.html
│ │ │ │ │ │ ├── ImageProcessor.html
│ │ │ │ │ │ ├── Indicator.html
│ │ │ │ │ │ ├── KingfisherCompatible.html
│ │ │ │ │ │ ├── Placeholder.html
│ │ │ │ │ │ └── Resource.html
│ │ │ │ │ ├── Protocols.html
│ │ │ │ │ ├── search.json
│ │ │ │ │ ├── Structs
│ │ │ │ │ │ ├── AlignmentRectInsetsImageModifier.html
│ │ │ │ │ │ ├── AnyImageModifier.html
│ │ │ │ │ │ ├── AnyModifier.html
│ │ │ │ │ │ ├── BlackWhiteProcessor.html
│ │ │ │ │ │ ├── BlendImageProcessor.html
│ │ │ │ │ │ ├── BlurImageProcessor.html
│ │ │ │ │ │ ├── CGSizeProxy.html
│ │ │ │ │ │ ├── ColorControlsProcessor.html
│ │ │ │ │ │ ├── CompositingImageProcessor.html
│ │ │ │ │ │ ├── CroppingImageProcessor.html
│ │ │ │ │ │ ├── DataProxy.html
│ │ │ │ │ │ ├── DefaultCacheSerializer.html
│ │ │ │ │ │ ├── DefaultImageModifier.html
│ │ │ │ │ │ ├── DefaultImageProcessor.html
│ │ │ │ │ │ ├── Filter.html
│ │ │ │ │ │ ├── FlipsForRightToLeftLayoutDirectionImageModifier.html
│ │ │ │ │ │ ├── FormatIndicatedCacheSerializer.html
│ │ │ │ │ │ ├── ImageResource.html
│ │ │ │ │ │ ├── OverlayImageProcessor.html
│ │ │ │ │ │ ├── RectCorner.html
│ │ │ │ │ │ ├── RenderingModeImageModifier.html
│ │ │ │ │ │ ├── ResizingImageProcessor.html
│ │ │ │ │ │ ├── RetrieveImageDownloadTask.html
│ │ │ │ │ │ ├── RoundCornerImageProcessor.html
│ │ │ │ │ │ └── TintImageProcessor.html
│ │ │ │ │ ├── Structs.html
│ │ │ │ │ ├── Typealiases.html
│ │ │ │ │ └── undocumented.json
│ │ │ │ ├── fastlane
│ │ │ │ │ ├── actions
│ │ │ │ │ │ ├── extract_current_change_log.rb
│ │ │ │ │ │ ├── git_commit_all.rb
│ │ │ │ │ │ ├── sync_build_number_to_git.rb
│ │ │ │ │ │ └── update_change_log.rb
│ │ │ │ │ └── Fastfile
│ │ │ │ ├── Gemfile
│ │ │ │ ├── Gemfile.lock
│ │ │ │ ├── images
│ │ │ │ │ ├── kingfisher-10.jpg
│ │ │ │ │ ├── kingfisher-1.jpg
│ │ │ │ │ ├── kingfisher-2.jpg
│ │ │ │ │ ├── kingfisher-3.jpg
│ │ │ │ │ ├── kingfisher-4.jpg
│ │ │ │ │ ├── kingfisher-5.jpg
│ │ │ │ │ ├── kingfisher-6.jpg
│ │ │ │ │ ├── kingfisher-7.jpg
│ │ │ │ │ ├── kingfisher-8.jpg
│ │ │ │ │ ├── kingfisher-9.jpg
│ │ │ │ │ └── logo.png
│ │ │ │ ├── Kingfisher.podspec
│ │ │ │ ├── Kingfisher.xcodeproj
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata
│ │ │ │ │ ├── xcbaselines
│ │ │ │ │ │ └── D1ED2D3E1AD2D09F00CFC3EB.xcbaseline
│ │ │ │ │ │ ├── 74237B0B-7981-4A24-B6C4-95F4A5E7727F.plist
│ │ │ │ │ │ └── Info.plist
│ │ │ │ │ └── xcschemes
│ │ │ │ │ ├── Kingfisher-macOS.xcscheme
│ │ │ │ │ ├── Kingfisher-tvOS.xcscheme
│ │ │ │ │ ├── Kingfisher-watchOS.xcscheme
│ │ │ │ │ └── Kingfisher.xcscheme
│ │ │ │ ├── Kingfisher.xcworkspace
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata
│ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ ├── Kingfisher.xcscmblueprint
│ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ ├── LICENSE
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Podfile
│ │ │ │ ├── Podfile.lock
│ │ │ │ ├── Pods
│ │ │ │ │ ├── Headers
│ │ │ │ │ │ ├── Private
│ │ │ │ │ │ │ └── Nocilla
│ │ │ │ │ │ │ ├── asihttprequeststub.h
│ │ │ │ │ │ │ ├── LSASIHTTPRequestAdapter.h
│ │ │ │ │ │ │ ├── LSASIHTTPRequestHook.h
│ │ │ │ │ │ │ ├── LSDataMatcher.h
│ │ │ │ │ │ │ ├── LSHTTPBody.h
│ │ │ │ │ │ │ ├── LSHTTPClientHook.h
│ │ │ │ │ │ │ ├── LSHTTPRequestDiff.h
│ │ │ │ │ │ │ ├── LSHTTPRequestDSLRepresentation.h
│ │ │ │ │ │ │ ├── LSHTTPRequest.h
│ │ │ │ │ │ │ ├── LSHTTPResponse.h
│ │ │ │ │ │ │ ├── LSHTTPStubURLProtocol.h
│ │ │ │ │ │ │ ├── LSMatcheable.h
│ │ │ │ │ │ │ ├── LSMatcher.h
│ │ │ │ │ │ │ ├── LSNocilla.h
│ │ │ │ │ │ │ ├── LSNSURLHook.h
│ │ │ │ │ │ │ ├── LSNSURLSessionHook.h
│ │ │ │ │ │ │ ├── LSRegexMatcher.h
│ │ │ │ │ │ │ ├── LSStringMatcher.h
│ │ │ │ │ │ │ ├── LSStubRequestDSL.h
│ │ │ │ │ │ │ ├── LSStubRequest.h
│ │ │ │ │ │ │ ├── LSStubResponseDSL.h
│ │ │ │ │ │ │ ├── LSStubResponse.h
│ │ │ │ │ │ │ ├── Nocilla.h
│ │ │ │ │ │ │ ├── NSData+Matcheable.h
│ │ │ │ │ │ │ ├── NSData+Nocilla.h
│ │ │ │ │ │ │ ├── NSRegularExpression+Matcheable.h
│ │ │ │ │ │ │ ├── NSString+Matcheable.h
│ │ │ │ │ │ │ ├── NSString+Nocilla.h
│ │ │ │ │ │ │ ├── NSURLRequest+DSL.h
│ │ │ │ │ │ │ └── NSURLRequest+LSHTTPRequest.h
│ │ │ │ │ │ └── Public
│ │ │ │ │ │ └── Nocilla
│ │ │ │ │ │ ├── LSHTTPBody.h
│ │ │ │ │ │ ├── LSMatcheable.h
│ │ │ │ │ │ ├── LSNocilla.h
│ │ │ │ │ │ ├── LSStubRequestDSL.h
│ │ │ │ │ │ ├── LSStubResponseDSL.h
│ │ │ │ │ │ ├── Nocilla.h
│ │ │ │ │ │ ├── NSData+Matcheable.h
│ │ │ │ │ │ ├── NSData+Nocilla.h
│ │ │ │ │ │ ├── NSRegularExpression+Matcheable.h
│ │ │ │ │ │ ├── NSString+Matcheable.h
│ │ │ │ │ │ └── NSString+Nocilla.h
│ │ │ │ │ ├── Local Podspecs
│ │ │ │ │ │ └── Nocilla.podspec.json
│ │ │ │ │ ├── Manifest.lock
│ │ │ │ │ ├── Nocilla
│ │ │ │ │ │ ├── LICENSE
│ │ │ │ │ │ ├── Nocilla
│ │ │ │ │ │ │ ├── Categories
│ │ │ │ │ │ │ │ ├── NSData+Nocilla.h
│ │ │ │ │ │ │ │ ├── NSData+Nocilla.m
│ │ │ │ │ │ │ │ ├── NSString+Nocilla.h
│ │ │ │ │ │ │ │ └── NSString+Nocilla.m
│ │ │ │ │ │ │ ├── Diff
│ │ │ │ │ │ │ │ ├── LSHTTPRequestDiff.h
│ │ │ │ │ │ │ │ └── LSHTTPRequestDiff.m
│ │ │ │ │ │ │ ├── DSL
│ │ │ │ │ │ │ │ ├── LSHTTPRequestDSLRepresentation.h
│ │ │ │ │ │ │ │ ├── LSHTTPRequestDSLRepresentation.m
│ │ │ │ │ │ │ │ ├── LSStubRequestDSL.h
│ │ │ │ │ │ │ │ ├── LSStubRequestDSL.m
│ │ │ │ │ │ │ │ ├── LSStubResponseDSL.h
│ │ │ │ │ │ │ │ └── LSStubResponseDSL.m
│ │ │ │ │ │ │ ├── Hooks
│ │ │ │ │ │ │ │ ├── ASIHTTPRequest
│ │ │ │ │ │ │ │ │ ├── ASIHTTPRequestStub.h
│ │ │ │ │ │ │ │ │ ├── ASIHTTPRequestStub.m
│ │ │ │ │ │ │ │ │ ├── LSASIHTTPRequestAdapter.h
│ │ │ │ │ │ │ │ │ ├── LSASIHTTPRequestAdapter.m
│ │ │ │ │ │ │ │ │ ├── LSASIHTTPRequestHook.h
│ │ │ │ │ │ │ │ │ └── LSASIHTTPRequestHook.m
│ │ │ │ │ │ │ │ ├── LSHTTPClientHook.h
│ │ │ │ │ │ │ │ ├── LSHTTPClientHook.m
│ │ │ │ │ │ │ │ ├── NSURLRequest
│ │ │ │ │ │ │ │ │ ├── LSHTTPStubURLProtocol.h
│ │ │ │ │ │ │ │ │ ├── LSHTTPStubURLProtocol.m
│ │ │ │ │ │ │ │ │ ├── LSNSURLHook.h
│ │ │ │ │ │ │ │ │ ├── LSNSURLHook.m
│ │ │ │ │ │ │ │ │ ├── NSURLRequest+DSL.h
│ │ │ │ │ │ │ │ │ ├── NSURLRequest+DSL.m
│ │ │ │ │ │ │ │ │ ├── NSURLRequest+LSHTTPRequest.h
│ │ │ │ │ │ │ │ │ └── NSURLRequest+LSHTTPRequest.m
│ │ │ │ │ │ │ │ └── NSURLSession
│ │ │ │ │ │ │ │ ├── LSNSURLSessionHook.h
│ │ │ │ │ │ │ │ └── LSNSURLSessionHook.m
│ │ │ │ │ │ │ ├── LSNocilla.h
│ │ │ │ │ │ │ ├── LSNocilla.m
│ │ │ │ │ │ │ ├── Matchers
│ │ │ │ │ │ │ │ ├── LSDataMatcher.h
│ │ │ │ │ │ │ │ ├── LSDataMatcher.m
│ │ │ │ │ │ │ │ ├── LSMatcheable.h
│ │ │ │ │ │ │ │ ├── LSMatcher.h
│ │ │ │ │ │ │ │ ├── LSMatcher.m
│ │ │ │ │ │ │ │ ├── LSRegexMatcher.h
│ │ │ │ │ │ │ │ ├── LSRegexMatcher.m
│ │ │ │ │ │ │ │ ├── LSStringMatcher.h
│ │ │ │ │ │ │ │ ├── LSStringMatcher.m
│ │ │ │ │ │ │ │ ├── NSData+Matcheable.h
│ │ │ │ │ │ │ │ ├── NSData+Matcheable.m
│ │ │ │ │ │ │ │ ├── NSRegularExpression+Matcheable.h
│ │ │ │ │ │ │ │ ├── NSRegularExpression+Matcheable.m
│ │ │ │ │ │ │ │ ├── NSString+Matcheable.h
│ │ │ │ │ │ │ │ └── NSString+Matcheable.m
│ │ │ │ │ │ │ ├── Model
│ │ │ │ │ │ │ │ ├── LSHTTPBody.h
│ │ │ │ │ │ │ │ ├── LSHTTPRequest.h
│ │ │ │ │ │ │ │ └── LSHTTPResponse.h
│ │ │ │ │ │ │ ├── Nocilla.h
│ │ │ │ │ │ │ └── Stubs
│ │ │ │ │ │ │ ├── LSStubRequest.h
│ │ │ │ │ │ │ ├── LSStubRequest.m
│ │ │ │ │ │ │ ├── LSStubResponse.h
│ │ │ │ │ │ │ └── LSStubResponse.m
│ │ │ │ │ │ └── README.md
│ │ │ │ │ ├── Pods.xcodeproj
│ │ │ │ │ │ └── project.pbxproj
│ │ │ │ │ └── Target Support Files
│ │ │ │ │ ├── Nocilla-iOS
│ │ │ │ │ │ ├── Nocilla-iOS-dummy.m
│ │ │ │ │ │ ├── Nocilla-iOS-prefix.pch
│ │ │ │ │ │ └── Nocilla-iOS.xcconfig
│ │ │ │ │ ├── Nocilla-macOS
│ │ │ │ │ │ ├── Nocilla-macOS-dummy.m
│ │ │ │ │ │ ├── Nocilla-macOS-prefix.pch
│ │ │ │ │ │ └── Nocilla-macOS.xcconfig
│ │ │ │ │ ├── Nocilla-tvOS
│ │ │ │ │ │ ├── Nocilla-tvOS-dummy.m
│ │ │ │ │ │ ├── Nocilla-tvOS-prefix.pch
│ │ │ │ │ │ └── Nocilla-tvOS.xcconfig
│ │ │ │ │ ├── Pods-KingfisherTests
│ │ │ │ │ │ ├── Pods-KingfisherTests-acknowledgements.markdown
│ │ │ │ │ │ ├── Pods-KingfisherTests-acknowledgements.plist
│ │ │ │ │ │ ├── Pods-KingfisherTests.debug.xcconfig
│ │ │ │ │ │ ├── Pods-KingfisherTests-dummy.m
│ │ │ │ │ │ ├── Pods-KingfisherTests-frameworks.sh
│ │ │ │ │ │ ├── Pods-KingfisherTests.release.xcconfig
│ │ │ │ │ │ └── Pods-KingfisherTests-resources.sh
│ │ │ │ │ ├── Pods-KingfisherTests-macOS
│ │ │ │ │ │ ├── Pods-KingfisherTests-macOS-acknowledgements.markdown
│ │ │ │ │ │ ├── Pods-KingfisherTests-macOS-acknowledgements.plist
│ │ │ │ │ │ ├── Pods-KingfisherTests-macOS.debug.xcconfig
│ │ │ │ │ │ ├── Pods-KingfisherTests-macOS-dummy.m
│ │ │ │ │ │ ├── Pods-KingfisherTests-macOS-frameworks.sh
│ │ │ │ │ │ ├── Pods-KingfisherTests-macOS.release.xcconfig
│ │ │ │ │ │ └── Pods-KingfisherTests-macOS-resources.sh
│ │ │ │ │ └── Pods-KingfisherTests-tvOS
│ │ │ │ │ ├── Pods-KingfisherTests-tvOS-acknowledgements.markdown
│ │ │ │ │ ├── Pods-KingfisherTests-tvOS-acknowledgements.plist
│ │ │ │ │ ├── Pods-KingfisherTests-tvOS.debug.xcconfig
│ │ │ │ │ ├── Pods-KingfisherTests-tvOS-dummy.m
│ │ │ │ │ ├── Pods-KingfisherTests-tvOS-frameworks.sh
│ │ │ │ │ ├── Pods-KingfisherTests-tvOS.release.xcconfig
│ │ │ │ │ └── Pods-KingfisherTests-tvOS-resources.sh
│ │ │ │ ├── README.md
│ │ │ │ ├── setup.sh
│ │ │ │ ├── Sources
│ │ │ │ │ ├── AnimatedImageView.swift
│ │ │ │ │ ├── Box.swift
│ │ │ │ │ ├── CacheSerializer.swift
│ │ │ │ │ ├── Filter.swift
│ │ │ │ │ ├── FormatIndicatedCacheSerializer.swift
│ │ │ │ │ ├── ImageCache.swift
│ │ │ │ │ ├── ImageDownloader.swift
│ │ │ │ │ ├── ImageModifier.swift
│ │ │ │ │ ├── ImagePrefetcher.swift
│ │ │ │ │ ├── ImageProcessor.swift
│ │ │ │ │ ├── Image.swift
│ │ │ │ │ ├── ImageTransition.swift
│ │ │ │ │ ├── ImageView+Kingfisher.swift
│ │ │ │ │ ├── Indicator.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── Kingfisher.h
│ │ │ │ │ ├── KingfisherManager.swift
│ │ │ │ │ ├── KingfisherOptionsInfo.swift
│ │ │ │ │ ├── Kingfisher.swift
│ │ │ │ │ ├── NSButton+Kingfisher.swift
│ │ │ │ │ ├── Placeholder.swift
│ │ │ │ │ ├── RequestModifier.swift
│ │ │ │ │ ├── Resource.swift
│ │ │ │ │ ├── String+MD5.swift
│ │ │ │ │ ├── ThreadHelper.swift
│ │ │ │ │ ├── UIButton+Kingfisher.swift
│ │ │ │ │ └── WKInterfaceImage+Kingfisher.swift
│ │ │ │ └── Tests
│ │ │ │ ├── KingfisherTests
│ │ │ │ │ ├── dancing-banana.gif
│ │ │ │ │ ├── ImageCacheTests.swift
│ │ │ │ │ ├── ImageDownloaderTests.swift
│ │ │ │ │ ├── ImageExtensionTests.swift
│ │ │ │ │ ├── ImageModifierTests.swift
│ │ │ │ │ ├── ImagePrefetcherTests.swift
│ │ │ │ │ ├── ImageProcessorTests.swift
│ │ │ │ │ ├── ImageViewExtensionTests.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── KingfisherManagerTests.swift
│ │ │ │ │ ├── KingfisherOptionsInfoTests.swift
│ │ │ │ │ ├── KingfisherTestHelper.swift
│ │ │ │ │ ├── KingfisherTests-Bridging-Header.h
│ │ │ │ │ ├── NSButtonExtensionTests.swift
│ │ │ │ │ ├── single-frame.gif
│ │ │ │ │ ├── StringExtensionTests.swift
│ │ │ │ │ └── UIButtonExtensionTests.swift
│ │ │ │ ├── KingfisherTests-macOS
│ │ │ │ │ └── Info.plist
│ │ │ │ └── KingfisherTests-tvOS
│ │ │ │ └── Info.plist
│ │ │ ├── PromiseKit
│ │ │ │ ├── docker-compose.yml
│ │ │ │ ├── Documentation
│ │ │ │ │ ├── Appendix.md
│ │ │ │ │ ├── CommonPatterns.md
│ │ │ │ │ ├── Examples
│ │ │ │ │ │ ├── ImageCache.md
│ │ │ │ │ │ └── URLSession+BadResponseErrors.swift
│ │ │ │ │ ├── FAQ.md
│ │ │ │ │ ├── GettingStarted.md
│ │ │ │ │ ├── Installation.md
│ │ │ │ │ ├── ObjectiveC.md
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── Troubleshooting.md
│ │ │ │ ├── Extensions
│ │ │ │ │ ├── Accounts
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKAccounts.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKAccounts.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── ACAccountStore+AnyPromise.h
│ │ │ │ │ │ │ ├── ACAccountStore+AnyPromise.m
│ │ │ │ │ │ │ └── ACAccountStore+Promise.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ └── TestAccounts.swift
│ │ │ │ │ ├── AddressBook
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKAddressBook.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKAddressBook.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ └── ABAddressBookRequestAccess+Promise.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ └── TestAddressBook.swift
│ │ │ │ │ ├── Alamofire
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.private
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── Package.swift
│ │ │ │ │ │ ├── PMKAlamofire.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKAlamofire.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ └── Alamofire+Promise.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ └── TestAlamofire.swift
│ │ │ │ │ ├── AssetsLibrary
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKAssetsLibrary.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKAssetsLibrary.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ └── ALAssetsLibrary+Promise.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ ├── app.swift
│ │ │ │ │ │ ├── Default-568h@2x.png
│ │ │ │ │ │ ├── Entitlements.plist
│ │ │ │ │ │ └── TestUIImagePickerController.swift
│ │ │ │ │ ├── AVFoundation
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKAVFoundation.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKAVFoundation.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── AVAudioSession+AnyPromise.h
│ │ │ │ │ │ │ ├── AVAudioSession+AnyPromise.m
│ │ │ │ │ │ │ └── AVAudioSession+Promise.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ ├── TestAVFoundation.m
│ │ │ │ │ │ └── TestAVFoundation.swift
│ │ │ │ │ ├── Bolts
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKBolts.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKBolts.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ └── BFTask+Promise.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ └── TestBolts.swift
│ │ │ │ │ ├── CloudKit
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── Package.swift
│ │ │ │ │ │ ├── PMKCloudKit.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKCloudKit.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── CKContainer+AnyPromise.h
│ │ │ │ │ │ │ ├── CKContainer+AnyPromise.m
│ │ │ │ │ │ │ ├── CKContainer+Promise.swift
│ │ │ │ │ │ │ ├── CKDatabase+AnyPromise.h
│ │ │ │ │ │ │ ├── CKDatabase+AnyPromise.m
│ │ │ │ │ │ │ ├── CKDatabase+Promise.swift
│ │ │ │ │ │ │ └── PMKCloudKit.h
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ ├── infrastructure.h
│ │ │ │ │ │ ├── infrastructure.m
│ │ │ │ │ │ └── TestCloudKit.swift
│ │ │ │ │ ├── CoreBluetooth
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKCoreBluetooth.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKCoreBluetooth.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ └── CBCentralManager+Promise.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ └── CBTests.swift
│ │ │ │ │ ├── CoreLocation
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKCoreLocation.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKCoreLocation.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── CLGeocoder+AnyPromise.h
│ │ │ │ │ │ │ ├── CLGeocoder+AnyPromise.m
│ │ │ │ │ │ │ ├── CLGeocoder+Promise.swift
│ │ │ │ │ │ │ ├── CLLocationManager+AnyPromise.h
│ │ │ │ │ │ │ ├── CLLocationManager+AnyPromise.m
│ │ │ │ │ │ │ ├── CLLocationManager+Promise.swift
│ │ │ │ │ │ │ └── PMKCoreLocation.h
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ ├── CLGeocoderTests.swift
│ │ │ │ │ │ ├── CLLocationManagerTests.swift
│ │ │ │ │ │ └── Entitlements.plist
│ │ │ │ │ ├── EventKit
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKEventKit.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKEventKit.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ └── EKEventStore+Promise.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ ├── Entitlements.plist
│ │ │ │ │ │ └── TestEventKit.swift
│ │ │ │ │ ├── Foundation
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.private
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── LICENSE
│ │ │ │ │ │ ├── Package.swift
│ │ │ │ │ │ ├── PMKFoundation.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKFoundation.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── afterlife.swift
│ │ │ │ │ │ │ ├── NSNotificationCenter+AnyPromise.h
│ │ │ │ │ │ │ ├── NSNotificationCenter+AnyPromise.m
│ │ │ │ │ │ │ ├── NSNotificationCenter+Promise.swift
│ │ │ │ │ │ │ ├── NSObject+Promise.swift
│ │ │ │ │ │ │ ├── NSTask+AnyPromise.h
│ │ │ │ │ │ │ ├── NSTask+AnyPromise.m
│ │ │ │ │ │ │ ├── NSURLSession+AnyPromise.h
│ │ │ │ │ │ │ ├── NSURLSession+AnyPromise.m
│ │ │ │ │ │ │ ├── NSURLSession+Promise.swift
│ │ │ │ │ │ │ ├── PMKFoundation.h
│ │ │ │ │ │ │ └── Process+Promise.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ ├── TestNSNotificationCenter.swift
│ │ │ │ │ │ ├── TestNSObject.swift
│ │ │ │ │ │ ├── TestNSTask.swift
│ │ │ │ │ │ ├── TestNSURLSession.m
│ │ │ │ │ │ └── TestNSURLSession.swift
│ │ │ │ │ ├── HomeKit
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKHomeKit.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKHomeKit.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── HMAcessoryBrowser+Promise.swift
│ │ │ │ │ │ │ ├── HMCharacteristic+Promise.swift
│ │ │ │ │ │ │ ├── HMHomeManager+Promise.swift
│ │ │ │ │ │ │ ├── HMHome+Promise.swift
│ │ │ │ │ │ │ └── Utils.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ ├── Entitlements.plist
│ │ │ │ │ │ ├── HMAccessoryBrowserTests.swift
│ │ │ │ │ │ └── UtilsTests.swift
│ │ │ │ │ ├── MapKit
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKMapKit.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKMapKit.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── MKDirections+AnyPromise.h
│ │ │ │ │ │ │ ├── MKDirections+AnyPromise.m
│ │ │ │ │ │ │ ├── MKDirections+Promise.swift
│ │ │ │ │ │ │ ├── MKMapSnapshotter+AnyPromise.h
│ │ │ │ │ │ │ ├── MKMapSnapshotter+AnyPromise.m
│ │ │ │ │ │ │ ├── MKMapSnapshotter+Promise.swift
│ │ │ │ │ │ │ └── PMKMapKit.h
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ └── TestMapKit.swift
│ │ │ │ │ ├── MessagesUI
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKMessagesUI.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKMessagesUI.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── MFMailComposeViewController+Promise.swift
│ │ │ │ │ │ │ └── MFMessageComposeViewController+Promise.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ └── TestMessageUI.swift
│ │ │ │ │ ├── OMGHTTPURLRQ
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.private
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKOMGHTTPURLRQ.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKOMGHTTPURLRQ.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── NSURLSession+OMG+AnyPromise.m
│ │ │ │ │ │ │ ├── NSURLSession+OMG+Promise.swift
│ │ │ │ │ │ │ └── PMKOMGHTTPURLRQ.h
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ ├── TestNSURLSession.m
│ │ │ │ │ │ └── TestNSURLSession.swift
│ │ │ │ │ ├── Photos
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKPhotos.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKPhotos.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ └── PHPhotoLibrary+Promise.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ └── PHPhototLibraryTests.swift
│ │ │ │ │ ├── QuartzCore
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKQCTests
│ │ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ │ └── PMKQCTests.swift
│ │ │ │ │ │ ├── PMKQuartzCore.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKQuartzCore.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── CALayer+AnyPromise.h
│ │ │ │ │ │ │ ├── CALayer+AnyPromise.m
│ │ │ │ │ │ │ └── PMKQuartzCore.h
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ └── TestQuartzCore.m
│ │ │ │ │ ├── Social
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKSocial.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKSocial.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── PMKSocial.h
│ │ │ │ │ │ │ ├── SLComposeViewController+Promise.swift
│ │ │ │ │ │ │ ├── SLRequest+AnyPromise.h
│ │ │ │ │ │ │ ├── SLRequest+AnyPromise.m
│ │ │ │ │ │ │ └── SLRequest+Promise.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ ├── TestSLComposeViewController.swift
│ │ │ │ │ │ ├── TestSocial.m
│ │ │ │ │ │ └── TestSocial.swift
│ │ │ │ │ ├── StoreKit
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKStoreKit.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKStoreKit.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── PMKStoreKit.h
│ │ │ │ │ │ │ ├── SKPayment+Promise.swift
│ │ │ │ │ │ │ ├── SKPaymentQueue+Promise.swift
│ │ │ │ │ │ │ ├── SKProductsRequest+Promise.swift
│ │ │ │ │ │ │ ├── SKReceiptRefreshRequest+Promise.swift
│ │ │ │ │ │ │ ├── SKRequest+AnyPromise.h
│ │ │ │ │ │ │ └── SKRequest+AnyPromise.m
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ ├── TestStoreKit.m
│ │ │ │ │ │ └── TestStoreKit.swift
│ │ │ │ │ ├── SystemConfiguration
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKSystemConfiguration.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKSystemConfiguration.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── PMKSystemConfiguration.h
│ │ │ │ │ │ │ ├── SCNetworkReachability+AnyPromise.h
│ │ │ │ │ │ │ ├── SCNetworkReachability+AnyPromise.m
│ │ │ │ │ │ │ └── SCNetworkReachability+Promise.swift
│ │ │ │ │ │ └── Tests
│ │ │ │ │ │ └── SCTests.swift
│ │ │ │ │ ├── UIKit
│ │ │ │ │ │ ├── Cartfile
│ │ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── PMKUIKit.xcodeproj
│ │ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ │ └── PMKUIKit.xcscheme
│ │ │ │ │ │ ├── README.markdown
│ │ │ │ │ │ ├── Sources
│ │ │ │ │ │ │ ├── PMKUIKit.h
│ │ │ │ │ │ │ ├── UIImagePickerController+Promise.swift
│ │ │ │ │ │ │ ├── UIView+AnyPromise.h
│ │ │ │ │ │ │ ├── UIView+AnyPromise.m
│ │ │ │ │ │ │ ├── UIViewController+AnyPromise.h
│ │ │ │ │ │ │ ├── UIViewController+AnyPromise.m
│ │ │ │ │ │ │ ├── UIView+Promise.swift
│ │ │ │ │ │ │ └── UIViewPropertyAnimator+Promise.swift
│ │ │ │ │ │ ├── Tests
│ │ │ │ │ │ │ ├── infrastructure.swift
│ │ │ │ │ │ │ ├── TestUIImagePickerController.swift
│ │ │ │ │ │ │ ├── TestUIViewController.m
│ │ │ │ │ │ │ └── TestUIView.swift
│ │ │ │ │ │ └── UITests
│ │ │ │ │ │ ├── app.swift
│ │ │ │ │ │ ├── Default-568h@2x.png
│ │ │ │ │ │ ├── Entitlements.plist
│ │ │ │ │ │ └── TestUIImagePickerController.swift
│ │ │ │ │ └── WatchConnectivity
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKWatchConnectivity.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKWatchConnectivity.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── WCSession+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestWatchConnectivity.swift
│ │ │ │ ├── LICENSE
│ │ │ │ ├── Package.swift
│ │ │ │ ├── PromiseKit.playground
│ │ │ │ │ ├── Contents.swift
│ │ │ │ │ ├── contents.xcplayground
│ │ │ │ │ └── section-1.swift
│ │ │ │ ├── PromiseKit.xcodeproj
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ └── xcshareddata
│ │ │ │ │ └── xcschemes
│ │ │ │ │ └── PromiseKit.xcscheme
│ │ │ │ ├── README.md
│ │ │ │ ├── Sources
│ │ │ │ │ ├── after.m
│ │ │ │ │ ├── after.swift
│ │ │ │ │ ├── AnyPromise.h
│ │ │ │ │ ├── AnyPromise.m
│ │ │ │ │ ├── AnyPromise+Private.h
│ │ │ │ │ ├── AnyPromise.swift
│ │ │ │ │ ├── Box.swift
│ │ │ │ │ ├── Catchable.swift
│ │ │ │ │ ├── Configuration.swift
│ │ │ │ │ ├── CustomStringConvertible.swift
│ │ │ │ │ ├── Deprecations.swift
│ │ │ │ │ ├── dispatch_promise.m
│ │ │ │ │ ├── DispatchQueue+Promise.swift
│ │ │ │ │ ├── Error.swift
│ │ │ │ │ ├── firstly.swift
│ │ │ │ │ ├── fwd.h
│ │ │ │ │ ├── GlobalState.m
│ │ │ │ │ ├── Guarantee.swift
│ │ │ │ │ ├── hang.m
│ │ │ │ │ ├── hang.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── join.m
│ │ │ │ │ ├── join.swift
│ │ │ │ │ ├── NSMethodSignatureForBlock.m
│ │ │ │ │ ├── PMKCallVariadicBlock.m
│ │ │ │ │ ├── Promise+AnyPromise.swift
│ │ │ │ │ ├── PromiseKit.h
│ │ │ │ │ ├── Promise+Properties.swift
│ │ │ │ │ ├── Promise.swift
│ │ │ │ │ ├── race.m
│ │ │ │ │ ├── race.swift
│ │ │ │ │ ├── Resolver.swift
│ │ │ │ │ ├── State.swift
│ │ │ │ │ ├── SwiftPM.swift
│ │ │ │ │ ├── Thenable.swift
│ │ │ │ │ ├── when.m
│ │ │ │ │ ├── when.swift
│ │ │ │ │ ├── wrap.swift
│ │ │ │ │ └── Zalgo.swift
│ │ │ │ └── Tests
│ │ │ │ ├── A+
│ │ │ │ │ ├── 0.0.0.swift
│ │ │ │ │ ├── 2.1.2.swift
│ │ │ │ │ ├── 2.1.3.swift
│ │ │ │ │ ├── 2.2.2.swift
│ │ │ │ │ ├── 2.2.3.swift
│ │ │ │ │ ├── 2.2.4.swift
│ │ │ │ │ ├── 2.2.6.swift
│ │ │ │ │ ├── 2.2.7.swift
│ │ │ │ │ ├── 2.3.1.swift
│ │ │ │ │ ├── 2.3.2.swift
│ │ │ │ │ ├── 2.3.4.swift
│ │ │ │ │ └── README.md
│ │ │ │ ├── Bridging
│ │ │ │ │ ├── BridgingTests.m
│ │ │ │ │ ├── BridgingTests.swift
│ │ │ │ │ ├── Infrastructure.h
│ │ │ │ │ ├── Infrastructure.m
│ │ │ │ │ └── Infrastructure.swift
│ │ │ │ ├── CoreObjC
│ │ │ │ │ ├── AnyPromiseTests.m
│ │ │ │ │ ├── AnyPromiseTests.swift
│ │ │ │ │ ├── HangTests.m
│ │ │ │ │ ├── JoinTests.m
│ │ │ │ │ ├── PMKManifoldTests.m
│ │ │ │ │ └── WhenTests.m
│ │ │ │ ├── CorePromise
│ │ │ │ │ ├── 01_AnyPromiseTests.m
│ │ │ │ │ ├── 01_PromiseTests.swift
│ │ │ │ │ ├── 02_CancellationTests.swift
│ │ │ │ │ ├── 02_DefaultDispatchQueueTests.swift
│ │ │ │ │ ├── 02_ErrorUnhandlerTests.m
│ │ │ │ │ ├── 02_ErrorUnhandlerTests.swift
│ │ │ │ │ ├── 02_PMKManifoldTests.m
│ │ │ │ │ ├── 02_ZalgoTests.swift
│ │ │ │ │ ├── 03_AfterTests.swift
│ │ │ │ │ ├── 03_HangTests.m
│ │ │ │ │ ├── 03_JoinTests.m
│ │ │ │ │ ├── 03_JoinTests.swift
│ │ │ │ │ ├── 03_JointTests.swift
│ │ │ │ │ ├── 03_RaceTests.swift
│ │ │ │ │ ├── 03_WhenConcurrentTests.swift
│ │ │ │ │ ├── 03_WhenTests.m
│ │ │ │ │ ├── 03_WhenTests.swift
│ │ │ │ │ ├── 03_WrapTests.swift
│ │ │ │ │ ├── 04_VerifySubclassing.swift
│ │ │ │ │ ├── 05_PromiseTupleTests.swift
│ │ │ │ │ ├── 98_StressTests.swift
│ │ │ │ │ ├── 99_RegressionTests.swift
│ │ │ │ │ ├── AfterTests.swift
│ │ │ │ │ ├── CancellableErrorTests.swift
│ │ │ │ │ ├── CatchableTests.swift
│ │ │ │ │ ├── DefaultDispatchQueueTests.swift
│ │ │ │ │ ├── ErrorTests.swift
│ │ │ │ │ ├── GuaranteeTests.swift
│ │ │ │ │ ├── HangTests.swift
│ │ │ │ │ ├── Infrastructure.h
│ │ │ │ │ ├── Infrastructure.m
│ │ │ │ │ ├── Infrastructure.swift
│ │ │ │ │ ├── PMKDefaultDispatchQueueTest.swift
│ │ │ │ │ ├── PromiseTests.swift
│ │ │ │ │ ├── RaceTests.swift
│ │ │ │ │ ├── RegressionTests.swift
│ │ │ │ │ ├── ResolverTests.swift
│ │ │ │ │ ├── StressTests.swift
│ │ │ │ │ ├── ThenableTests.swift
│ │ │ │ │ ├── Utilities.swift
│ │ │ │ │ ├── WhenConcurrentTests.swift
│ │ │ │ │ ├── WhenResolvedTests.swift
│ │ │ │ │ ├── WhenTests.swift
│ │ │ │ │ └── ZalgoTests.swift
│ │ │ │ ├── DeprecationTests.swift
│ │ │ │ ├── JS-A+
│ │ │ │ │ ├── AllTests.swift
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── JSAdapter.swift
│ │ │ │ │ ├── JSPromise.swift
│ │ │ │ │ ├── JSUtils.swift
│ │ │ │ │ ├── MockNodeEnvironment.swift
│ │ │ │ │ ├── package.json
│ │ │ │ │ ├── package-lock.json
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── webpack.config.js
│ │ │ │ └── LinuxMain.swift
│ │ │ └── RxSwift
│ │ │ ├── assets
│ │ │ │ ├── CNAME.txt
│ │ │ │ ├── LICENSE.txt
│ │ │ │ └── Rx_Logo_M.png
│ │ │ ├── CHANGELOG.md
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── Dangerfile
│ │ │ ├── default.profraw
│ │ │ ├── Documentation
│ │ │ │ ├── ComparisonWithOtherLibraries.md
│ │ │ │ ├── DesignRationale.md
│ │ │ │ ├── ExampleApp.md
│ │ │ │ ├── Examples.md
│ │ │ │ ├── GettingStarted.md
│ │ │ │ ├── HotAndColdObservables.md
│ │ │ │ ├── MathBehindRx.md
│ │ │ │ ├── NewFeatureRequestTemplate.md
│ │ │ │ ├── Playgrounds.md
│ │ │ │ ├── Schedulers.md
│ │ │ │ ├── Subjects.md
│ │ │ │ ├── Tips.md
│ │ │ │ ├── Traits.md
│ │ │ │ ├── UnitTests.md
│ │ │ │ ├── Warnings.md
│ │ │ │ └── Why.md
│ │ │ ├── Gemfile
│ │ │ ├── Gemfile.lock
│ │ │ ├── LICENSE.md
│ │ │ ├── Package.swift
│ │ │ ├── Platform
│ │ │ │ ├── DataStructures
│ │ │ │ │ ├── Bag.swift
│ │ │ │ │ ├── InfiniteSequence.swift
│ │ │ │ │ ├── PriorityQueue.swift
│ │ │ │ │ └── Queue.swift
│ │ │ │ ├── DeprecationWarner.swift
│ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ ├── Platform.Linux.swift
│ │ │ │ └── RecursiveLock.swift
│ │ │ ├── Preprocessor
│ │ │ │ ├── Preprocessor
│ │ │ │ │ └── main.swift
│ │ │ │ ├── Preprocessor.xcodeproj
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ └── README.md
│ │ │ ├── README.md
│ │ │ ├── RxBlocking
│ │ │ │ ├── BlockingObservable+Operators.swift
│ │ │ │ ├── BlockingObservable.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── ObservableConvertibleType+Blocking.swift
│ │ │ │ ├── Platform
│ │ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ │ ├── Platform.Linux.swift
│ │ │ │ │ └── RecursiveLock.swift
│ │ │ │ ├── README.md
│ │ │ │ ├── Resources.swift
│ │ │ │ └── RunLoopLock.swift
│ │ │ ├── RxBlocking.podspec
│ │ │ ├── RxCocoa
│ │ │ │ ├── Common
│ │ │ │ │ ├── Binder.swift
│ │ │ │ │ ├── ControlTarget.swift
│ │ │ │ │ ├── DelegateProxy.swift
│ │ │ │ │ ├── DelegateProxyType.swift
│ │ │ │ │ ├── KeyPathBinder.swift
│ │ │ │ │ ├── NSLayoutConstraint+Rx.swift
│ │ │ │ │ ├── Observable+Bind.swift
│ │ │ │ │ ├── RxCocoaObjCRuntimeError+Extensions.swift
│ │ │ │ │ ├── RxTarget.swift
│ │ │ │ │ ├── SectionedViewDataSourceType.swift
│ │ │ │ │ └── TextInput.swift
│ │ │ │ ├── Deprecated.swift
│ │ │ │ ├── Foundation
│ │ │ │ │ ├── KVORepresentable+CoreGraphics.swift
│ │ │ │ │ ├── KVORepresentable.swift
│ │ │ │ │ ├── KVORepresentable+Swift.swift
│ │ │ │ │ ├── Logging.swift
│ │ │ │ │ ├── NotificationCenter+Rx.swift
│ │ │ │ │ ├── NSObject+Rx+KVORepresentable.swift
│ │ │ │ │ ├── NSObject+Rx+RawRepresentable.swift
│ │ │ │ │ ├── NSObject+Rx.swift
│ │ │ │ │ └── URLSession+Rx.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── iOS
│ │ │ │ │ ├── DataSources
│ │ │ │ │ │ ├── RxCollectionViewReactiveArrayDataSource.swift
│ │ │ │ │ │ ├── RxPickerViewAdapter.swift
│ │ │ │ │ │ └── RxTableViewReactiveArrayDataSource.swift
│ │ │ │ │ ├── Events
│ │ │ │ │ │ └── ItemEvents.swift
│ │ │ │ │ ├── NSTextStorage+Rx.swift
│ │ │ │ │ ├── Protocols
│ │ │ │ │ │ ├── RxCollectionViewDataSourceType.swift
│ │ │ │ │ │ ├── RxPickerViewDataSourceType.swift
│ │ │ │ │ │ └── RxTableViewDataSourceType.swift
│ │ │ │ │ ├── Proxies
│ │ │ │ │ │ ├── RxCollectionViewDataSourcePrefetchingProxy.swift
│ │ │ │ │ │ ├── RxCollectionViewDataSourceProxy.swift
│ │ │ │ │ │ ├── RxCollectionViewDelegateProxy.swift
│ │ │ │ │ │ ├── RxNavigationControllerDelegateProxy.swift
│ │ │ │ │ │ ├── RxPickerViewDataSourceProxy.swift
│ │ │ │ │ │ ├── RxPickerViewDelegateProxy.swift
│ │ │ │ │ │ ├── RxScrollViewDelegateProxy.swift
│ │ │ │ │ │ ├── RxSearchBarDelegateProxy.swift
│ │ │ │ │ │ ├── RxSearchControllerDelegateProxy.swift
│ │ │ │ │ │ ├── RxTabBarControllerDelegateProxy.swift
│ │ │ │ │ │ ├── RxTabBarDelegateProxy.swift
│ │ │ │ │ │ ├── RxTableViewDataSourcePrefetchingProxy.swift
│ │ │ │ │ │ ├── RxTableViewDataSourceProxy.swift
│ │ │ │ │ │ ├── RxTableViewDelegateProxy.swift
│ │ │ │ │ │ ├── RxTextStorageDelegateProxy.swift
│ │ │ │ │ │ ├── RxTextViewDelegateProxy.swift
│ │ │ │ │ │ └── RxWebViewDelegateProxy.swift
│ │ │ │ │ ├── UIActivityIndicatorView+Rx.swift
│ │ │ │ │ ├── UIAlertAction+Rx.swift
│ │ │ │ │ ├── UIApplication+Rx.swift
│ │ │ │ │ ├── UIBarButtonItem+Rx.swift
│ │ │ │ │ ├── UIButton+Rx.swift
│ │ │ │ │ ├── UICollectionView+Rx.swift
│ │ │ │ │ ├── UIControl+Rx.swift
│ │ │ │ │ ├── UIDatePicker+Rx.swift
│ │ │ │ │ ├── UIGestureRecognizer+Rx.swift
│ │ │ │ │ ├── UIImageView+Rx.swift
│ │ │ │ │ ├── UILabel+Rx.swift
│ │ │ │ │ ├── UINavigationController+Rx.swift
│ │ │ │ │ ├── UINavigationItem+Rx.swift
│ │ │ │ │ ├── UIPageControl+Rx.swift
│ │ │ │ │ ├── UIPickerView+Rx.swift
│ │ │ │ │ ├── UIProgressView+Rx.swift
│ │ │ │ │ ├── UIRefreshControl+Rx.swift
│ │ │ │ │ ├── UIScrollView+Rx.swift
│ │ │ │ │ ├── UISearchBar+Rx.swift
│ │ │ │ │ ├── UISearchController+Rx.swift
│ │ │ │ │ ├── UISegmentedControl+Rx.swift
│ │ │ │ │ ├── UISlider+Rx.swift
│ │ │ │ │ ├── UIStepper+Rx.swift
│ │ │ │ │ ├── UISwitch+Rx.swift
│ │ │ │ │ ├── UITabBarController+Rx.swift
│ │ │ │ │ ├── UITabBarItem+Rx.swift
│ │ │ │ │ ├── UITabBar+Rx.swift
│ │ │ │ │ ├── UITableView+Rx.swift
│ │ │ │ │ ├── UITextField+Rx.swift
│ │ │ │ │ ├── UITextView+Rx.swift
│ │ │ │ │ ├── UIViewController+Rx.swift
│ │ │ │ │ ├── UIView+Rx.swift
│ │ │ │ │ └── UIWebView+Rx.swift
│ │ │ │ ├── macOS
│ │ │ │ │ ├── NSButton+Rx.swift
│ │ │ │ │ ├── NSControl+Rx.swift
│ │ │ │ │ ├── NSImageView+Rx.swift
│ │ │ │ │ ├── NSSlider+Rx.swift
│ │ │ │ │ ├── NSTextField+Rx.swift
│ │ │ │ │ └── NSView+Rx.swift
│ │ │ │ ├── Platform
│ │ │ │ │ └── DispatchQueue+Extensions.swift
│ │ │ │ ├── Runtime
│ │ │ │ │ ├── include
│ │ │ │ │ │ ├── RxCocoaRuntime.h
│ │ │ │ │ │ ├── _RXDelegateProxy.h
│ │ │ │ │ │ ├── _RX.h
│ │ │ │ │ │ ├── _RXKVOObserver.h
│ │ │ │ │ │ └── _RXObjCRuntime.h
│ │ │ │ │ ├── _RXDelegateProxy.m
│ │ │ │ │ ├── _RXKVOObserver.m
│ │ │ │ │ ├── _RX.m
│ │ │ │ │ └── _RXObjCRuntime.m
│ │ │ │ ├── RxCocoa.h
│ │ │ │ ├── RxCocoa.swift
│ │ │ │ └── Traits
│ │ │ │ ├── BehaviorRelay.swift
│ │ │ │ ├── ControlEvent.swift
│ │ │ │ ├── ControlProperty.swift
│ │ │ │ ├── Driver
│ │ │ │ │ ├── BehaviorRelay+Driver.swift
│ │ │ │ │ ├── ControlEvent+Driver.swift
│ │ │ │ │ ├── ControlProperty+Driver.swift
│ │ │ │ │ ├── Driver+Subscription.swift
│ │ │ │ │ ├── Driver.swift
│ │ │ │ │ └── ObservableConvertibleType+Driver.swift
│ │ │ │ ├── PublishRelay.swift
│ │ │ │ ├── SharedSequence
│ │ │ │ │ ├── ObservableConvertibleType+SharedSequence.swift
│ │ │ │ │ ├── SchedulerType+SharedSequence.swift
│ │ │ │ │ ├── SharedSequence+Operators+arity.swift
│ │ │ │ │ ├── SharedSequence+Operators+arity.tt
│ │ │ │ │ ├── SharedSequence+Operators.swift
│ │ │ │ │ └── SharedSequence.swift
│ │ │ │ └── Signal
│ │ │ │ ├── ControlEvent+Signal.swift
│ │ │ │ ├── ObservableConvertibleType+Signal.swift
│ │ │ │ ├── PublishRelay+Signal.swift
│ │ │ │ ├── Signal+Subscription.swift
│ │ │ │ └── Signal.swift
│ │ │ ├── RxCocoa.podspec
│ │ │ ├── RxExample
│ │ │ │ ├── Extensions
│ │ │ │ │ ├── CLLocationManager+Rx.swift
│ │ │ │ │ ├── RxCLLocationManagerDelegateProxy.swift
│ │ │ │ │ ├── RxImagePickerDelegateProxy.swift
│ │ │ │ │ └── UIImagePickerController+Rx.swift
│ │ │ │ ├── RxDataSources
│ │ │ │ │ ├── Differentiator
│ │ │ │ │ │ ├── AnimatableSectionModel.swift
│ │ │ │ │ │ ├── AnimatableSectionModelType+ItemPath.swift
│ │ │ │ │ │ ├── AnimatableSectionModelType.swift
│ │ │ │ │ │ ├── Changeset.swift
│ │ │ │ │ │ ├── Differentiator.h
│ │ │ │ │ │ ├── Diff.swift
│ │ │ │ │ │ ├── IdentifiableType.swift
│ │ │ │ │ │ ├── IdentifiableValue.swift
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── ItemPath.swift
│ │ │ │ │ │ ├── Optional+Extensions.swift
│ │ │ │ │ │ ├── SectionModel.swift
│ │ │ │ │ │ ├── SectionModelType.swift
│ │ │ │ │ │ └── Utilities.swift
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── RxDataSources
│ │ │ │ │ ├── AnimationConfiguration.swift
│ │ │ │ │ ├── Array+Extensions.swift
│ │ │ │ │ ├── CollectionViewSectionedDataSource.swift
│ │ │ │ │ ├── DataSources.swift
│ │ │ │ │ ├── Deprecated.swift
│ │ │ │ │ ├── FloatingPointType+IdentifiableType.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── IntegerType+IdentifiableType.swift
│ │ │ │ │ ├── RxCollectionViewSectionedAnimatedDataSource.swift
│ │ │ │ │ ├── RxCollectionViewSectionedReloadDataSource.swift
│ │ │ │ │ ├── RxDataSources.h
│ │ │ │ │ ├── RxPickerViewAdapter.swift
│ │ │ │ │ ├── RxTableViewSectionedAnimatedDataSource.swift
│ │ │ │ │ ├── RxTableViewSectionedReloadDataSource.swift
│ │ │ │ │ ├── String+IdentifiableType.swift
│ │ │ │ │ ├── TableViewSectionedDataSource.swift
│ │ │ │ │ └── UI+SectionedViewType.swift
│ │ │ │ ├── RxExample
│ │ │ │ │ ├── Application+Extensions.swift
│ │ │ │ │ ├── Examples
│ │ │ │ │ │ ├── APIWrappers
│ │ │ │ │ │ │ ├── APIWrappers.storyboard
│ │ │ │ │ │ │ └── APIWrappersViewController.swift
│ │ │ │ │ │ ├── Calculator
│ │ │ │ │ │ │ ├── Calculator.storyboard
│ │ │ │ │ │ │ ├── Calculator.swift
│ │ │ │ │ │ │ └── CalculatorViewController.swift
│ │ │ │ │ │ ├── Dependencies.swift
│ │ │ │ │ │ ├── GeolocationExample
│ │ │ │ │ │ │ ├── Geolocation.storyboard
│ │ │ │ │ │ │ └── GeolocationViewController.swift
│ │ │ │ │ │ ├── GitHubSearchRepositories
│ │ │ │ │ │ │ ├── GitHubSearchRepositoriesAPI.swift
│ │ │ │ │ │ │ ├── GitHubSearchRepositories.storyboard
│ │ │ │ │ │ │ ├── GitHubSearchRepositories.swift
│ │ │ │ │ │ │ ├── GitHubSearchRepositoriesViewController.swift
│ │ │ │ │ │ │ └── UINavigationController+Extensions.swift
│ │ │ │ │ │ ├── GitHubSignup
│ │ │ │ │ │ │ ├── BindingExtensions.swift
│ │ │ │ │ │ │ ├── DefaultImplementations.swift
│ │ │ │ │ │ │ ├── GitHubSignup1.storyboard
│ │ │ │ │ │ │ ├── GitHubSignup2.storyboard
│ │ │ │ │ │ │ ├── Protocols.swift
│ │ │ │ │ │ │ ├── UsingDriver
│ │ │ │ │ │ │ │ ├── GitHubSignupViewController2.swift
│ │ │ │ │ │ │ │ └── GithubSignupViewModel2.swift
│ │ │ │ │ │ │ └── UsingVanillaObservables
│ │ │ │ │ │ │ ├── GitHubSignupViewController1.swift
│ │ │ │ │ │ │ └── GithubSignupViewModel1.swift
│ │ │ │ │ │ ├── ImagePicker
│ │ │ │ │ │ │ ├── ImagePickerController.swift
│ │ │ │ │ │ │ ├── ImagePicker.storyboard
│ │ │ │ │ │ │ └── UIImagePickerController+RxCreate.swift
│ │ │ │ │ │ ├── macOS simple example
│ │ │ │ │ │ │ └── IntroductionExampleViewController.swift
│ │ │ │ │ │ ├── Numbers
│ │ │ │ │ │ │ ├── Numbers.storyboard
│ │ │ │ │ │ │ └── NumbersViewController.swift
│ │ │ │ │ │ ├── SimpleTableViewExample
│ │ │ │ │ │ │ ├── SimpleTableViewExample.storyboard
│ │ │ │ │ │ │ └── SimpleTableViewExampleViewController.swift
│ │ │ │ │ │ ├── SimpleTableViewExampleSectioned
│ │ │ │ │ │ │ ├── SimpleTableViewExampleSectioned.storyboard
│ │ │ │ │ │ │ └── SimpleTableViewExampleSectionedViewController.swift
│ │ │ │ │ │ ├── SimpleValidation
│ │ │ │ │ │ │ ├── SimpleValidation.storyboard
│ │ │ │ │ │ │ └── SimpleValidationViewController.swift
│ │ │ │ │ │ ├── TableViewPartialUpdates
│ │ │ │ │ │ │ ├── NumberCell.swift
│ │ │ │ │ │ │ ├── NumberSectionView.swift
│ │ │ │ │ │ │ ├── PartialUpdates.storyboard
│ │ │ │ │ │ │ └── PartialUpdatesViewController.swift
│ │ │ │ │ │ ├── TableViewWithEditingCommands
│ │ │ │ │ │ │ ├── DetailViewController.swift
│ │ │ │ │ │ │ ├── RandomUserAPI.swift
│ │ │ │ │ │ │ ├── TableViewWithEditingCommands.storyboard
│ │ │ │ │ │ │ ├── TableViewWithEditingCommandsViewController.swift
│ │ │ │ │ │ │ ├── UIImageView+Extensions.swift
│ │ │ │ │ │ │ └── User.swift
│ │ │ │ │ │ ├── UIPickerViewExample
│ │ │ │ │ │ │ ├── CustomPickerViewAdapterExampleViewController.swift
│ │ │ │ │ │ │ ├── SimplePickerViewExampleViewController.swift
│ │ │ │ │ │ │ └── SimpleUIPickerViewExample.storyboard
│ │ │ │ │ │ └── WikipediaImageSearch
│ │ │ │ │ │ ├── ViewModels
│ │ │ │ │ │ │ └── SearchResultViewModel.swift
│ │ │ │ │ │ ├── Views
│ │ │ │ │ │ │ ├── CollectionViewImageCell.swift
│ │ │ │ │ │ │ ├── WikipediaImageCell.xib
│ │ │ │ │ │ │ ├── WikipediaSearchCell.swift
│ │ │ │ │ │ │ ├── WikipediaSearchCell.xib
│ │ │ │ │ │ │ └── WikipediaSearchViewController.swift
│ │ │ │ │ │ ├── WikipediaAPI
│ │ │ │ │ │ │ ├── WikipediaAPI.swift
│ │ │ │ │ │ │ ├── WikipediaPage.swift
│ │ │ │ │ │ │ └── WikipediaSearchResult.swift
│ │ │ │ │ │ └── WikipediaSearch.storyboard
│ │ │ │ │ ├── Example.swift
│ │ │ │ │ ├── Feedbacks.swift
│ │ │ │ │ ├── Images.xcassets
│ │ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ ├── Icon-40@2x-1.png
│ │ │ │ │ │ │ ├── Icon-40@2x.png
│ │ │ │ │ │ │ ├── Icon-40.png
│ │ │ │ │ │ │ ├── Icon-60@2x-1.png
│ │ │ │ │ │ │ ├── Icon-60@2x.png
│ │ │ │ │ │ │ ├── Icon-60@3x.png
│ │ │ │ │ │ │ ├── Icon-76@2x.png
│ │ │ │ │ │ │ ├── Icon-76.png
│ │ │ │ │ │ │ ├── Icon-Small@2x-1.png
│ │ │ │ │ │ │ ├── Icon-Small@3x.png
│ │ │ │ │ │ │ ├── Icon-Small.png
│ │ │ │ │ │ │ ├── Rx_Logo-iPad.png
│ │ │ │ │ │ │ ├── Rx_Logo_L.png
│ │ │ │ │ │ │ └── Rx_Logo_M.png
│ │ │ │ │ │ └── ReactiveExtensionsLogo.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ReactiveExtensionsLogo-2.png
│ │ │ │ │ │ └── ReactiveExtensionsLogo.png
│ │ │ │ │ ├── Info-iOS.plist
│ │ │ │ │ ├── Info-macOS.plist
│ │ │ │ │ ├── iOS
│ │ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ │ ├── LaunchScreen.xib
│ │ │ │ │ │ ├── Main.storyboard
│ │ │ │ │ │ ├── RootViewController.swift
│ │ │ │ │ │ └── UITableView+Extensions.swift
│ │ │ │ │ ├── Lenses.swift
│ │ │ │ │ ├── macOS
│ │ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ │ └── Main.storyboard
│ │ │ │ │ ├── Observable+Extensions.swift
│ │ │ │ │ ├── Operators.swift
│ │ │ │ │ ├── Result.swift
│ │ │ │ │ ├── RxExample.xcdatamodeld
│ │ │ │ │ │ └── RxExample.xcdatamodel
│ │ │ │ │ │ └── contents
│ │ │ │ │ ├── Services
│ │ │ │ │ │ ├── ActivityIndicator.swift
│ │ │ │ │ │ ├── DownloadableImage.swift
│ │ │ │ │ │ ├── GeolocationService.swift
│ │ │ │ │ │ ├── HtmlParsing.swift
│ │ │ │ │ │ ├── ImageService.swift
│ │ │ │ │ │ ├── PseudoRandomGenerator.swift
│ │ │ │ │ │ ├── Randomizer.swift
│ │ │ │ │ │ ├── ReachabilityService.swift
│ │ │ │ │ │ ├── Reachability.swift
│ │ │ │ │ │ ├── UIImage+Extensions.swift
│ │ │ │ │ │ ├── UIImageView+DownloadableImage.swift
│ │ │ │ │ │ └── Wireframe.swift
│ │ │ │ │ ├── String+URL.swift
│ │ │ │ │ ├── Version.swift
│ │ │ │ │ └── ViewController.swift
│ │ │ │ ├── RxExample-iOSTests
│ │ │ │ │ ├── CLLocationManager+RxTests.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── Mocks
│ │ │ │ │ │ ├── MockGitHubAPI.swift
│ │ │ │ │ │ ├── MockWireframe.swift
│ │ │ │ │ │ ├── NotImplementedStubs.swift
│ │ │ │ │ │ └── ValidationResult+Equatable.swift
│ │ │ │ │ ├── RxExample_iOSTests.swift
│ │ │ │ │ ├── RxTest.swift
│ │ │ │ │ ├── TestScheduler+MarbleTests.swift
│ │ │ │ │ └── UIImagePickerController+RxTests.swift
│ │ │ │ ├── RxExample-iOSUITests
│ │ │ │ │ ├── FlowTests.swift
│ │ │ │ │ └── Info.plist
│ │ │ │ ├── RxExample-macOSUITests
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── RxExample_macOSUITests.swift
│ │ │ │ └── RxExample.xcodeproj
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ └── xcschemes
│ │ │ │ ├── RxExample-iOSTests.xcscheme
│ │ │ │ ├── RxExample-iOSUITests.xcscheme
│ │ │ │ ├── RxExample-iOS.xcscheme
│ │ │ │ ├── RxExample-macOSUITests.xcscheme
│ │ │ │ └── RxExample-macOS.xcscheme
│ │ │ ├── Rx.playground
│ │ │ │ ├── contents.xcplayground
│ │ │ │ ├── Pages
│ │ │ │ │ ├── Combining_Operators.xcplaygroundpage
│ │ │ │ │ │ └── Contents.swift
│ │ │ │ │ ├── Connectable_Operators.xcplaygroundpage
│ │ │ │ │ │ └── Contents.swift
│ │ │ │ │ ├── Creating_and_Subscribing_to_Observables.xcplaygroundpage
│ │ │ │ │ │ └── Contents.swift
│ │ │ │ │ ├── Debugging_Operators.xcplaygroundpage
│ │ │ │ │ │ └── Contents.swift
│ │ │ │ │ ├── Enable_RxSwift.Resources.total.xcplaygroundpage
│ │ │ │ │ │ └── Contents.swift
│ │ │ │ │ ├── Error_Handling_Operators.xcplaygroundpage
│ │ │ │ │ │ └── Contents.swift
│ │ │ │ │ ├── Filtering_and_Conditional_Operators.xcplaygroundpage
│ │ │ │ │ │ └── Contents.swift
│ │ │ │ │ ├── Introduction.xcplaygroundpage
│ │ │ │ │ │ └── Contents.swift
│ │ │ │ │ ├── Mathematical_and_Aggregate_Operators.xcplaygroundpage
│ │ │ │ │ │ └── Contents.swift
│ │ │ │ │ ├── Table_of_Contents.xcplaygroundpage
│ │ │ │ │ │ └── Contents.swift
│ │ │ │ │ ├── Transforming_Operators.xcplaygroundpage
│ │ │ │ │ │ └── Contents.swift
│ │ │ │ │ ├── TryYourself.xcplaygroundpage
│ │ │ │ │ │ └── Contents.swift
│ │ │ │ │ └── Working_with_Subjects.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Sources
│ │ │ │ │ └── SupportCode.swift
│ │ │ │ └── SupportCode.remap
│ │ │ ├── RxSwift
│ │ │ │ ├── AnyObserver.swift
│ │ │ │ ├── Cancelable.swift
│ │ │ │ ├── Concurrency
│ │ │ │ │ ├── AsyncLock.swift
│ │ │ │ │ ├── LockOwnerType.swift
│ │ │ │ │ ├── Lock.swift
│ │ │ │ │ ├── SynchronizedDisposeType.swift
│ │ │ │ │ ├── SynchronizedOnType.swift
│ │ │ │ │ └── SynchronizedUnsubscribeType.swift
│ │ │ │ ├── ConnectableObservableType.swift
│ │ │ │ ├── Deprecated.swift
│ │ │ │ ├── Disposables
│ │ │ │ │ ├── AnonymousDisposable.swift
│ │ │ │ │ ├── BinaryDisposable.swift
│ │ │ │ │ ├── BooleanDisposable.swift
│ │ │ │ │ ├── CompositeDisposable.swift
│ │ │ │ │ ├── Disposables.swift
│ │ │ │ │ ├── DisposeBag.swift
│ │ │ │ │ ├── DisposeBase.swift
│ │ │ │ │ ├── NopDisposable.swift
│ │ │ │ │ ├── RefCountDisposable.swift
│ │ │ │ │ ├── ScheduledDisposable.swift
│ │ │ │ │ ├── SerialDisposable.swift
│ │ │ │ │ ├── SingleAssignmentDisposable.swift
│ │ │ │ │ └── SubscriptionDisposable.swift
│ │ │ │ ├── Disposable.swift
│ │ │ │ ├── Errors.swift
│ │ │ │ ├── Event.swift
│ │ │ │ ├── Extensions
│ │ │ │ │ ├── Bag+Rx.swift
│ │ │ │ │ └── String+Rx.swift
│ │ │ │ ├── GroupedObservable.swift
│ │ │ │ ├── ImmediateSchedulerType.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── ObservableConvertibleType.swift
│ │ │ │ ├── Observables
│ │ │ │ │ ├── AddRef.swift
│ │ │ │ │ ├── Amb.swift
│ │ │ │ │ ├── AsMaybe.swift
│ │ │ │ │ ├── AsSingle.swift
│ │ │ │ │ ├── Buffer.swift
│ │ │ │ │ ├── Catch.swift
│ │ │ │ │ ├── CombineLatest+arity.swift
│ │ │ │ │ ├── CombineLatest+arity.tt
│ │ │ │ │ ├── CombineLatest+Collection.swift
│ │ │ │ │ ├── CombineLatest.swift
│ │ │ │ │ ├── Concat.swift
│ │ │ │ │ ├── Create.swift
│ │ │ │ │ ├── Debounce.swift
│ │ │ │ │ ├── Debug.swift
│ │ │ │ │ ├── DefaultIfEmpty.swift
│ │ │ │ │ ├── Deferred.swift
│ │ │ │ │ ├── DelaySubscription.swift
│ │ │ │ │ ├── Delay.swift
│ │ │ │ │ ├── Dematerialize.swift
│ │ │ │ │ ├── DistinctUntilChanged.swift
│ │ │ │ │ ├── Do.swift
│ │ │ │ │ ├── ElementAt.swift
│ │ │ │ │ ├── Empty.swift
│ │ │ │ │ ├── Enumerated.swift
│ │ │ │ │ ├── Error.swift
│ │ │ │ │ ├── Filter.swift
│ │ │ │ │ ├── First.swift
│ │ │ │ │ ├── Generate.swift
│ │ │ │ │ ├── GroupBy.swift
│ │ │ │ │ ├── Just.swift
│ │ │ │ │ ├── Map.swift
│ │ │ │ │ ├── Materialize.swift
│ │ │ │ │ ├── Merge.swift
│ │ │ │ │ ├── Multicast.swift
│ │ │ │ │ ├── Never.swift
│ │ │ │ │ ├── ObserveOn.swift
│ │ │ │ │ ├── Optional.swift
│ │ │ │ │ ├── Producer.swift
│ │ │ │ │ ├── Range.swift
│ │ │ │ │ ├── Reduce.swift
│ │ │ │ │ ├── Repeat.swift
│ │ │ │ │ ├── RetryWhen.swift
│ │ │ │ │ ├── Sample.swift
│ │ │ │ │ ├── Scan.swift
│ │ │ │ │ ├── Sequence.swift
│ │ │ │ │ ├── ShareReplayScope.swift
│ │ │ │ │ ├── SingleAsync.swift
│ │ │ │ │ ├── Sink.swift
│ │ │ │ │ ├── Skip.swift
│ │ │ │ │ ├── SkipUntil.swift
│ │ │ │ │ ├── SkipWhile.swift
│ │ │ │ │ ├── StartWith.swift
│ │ │ │ │ ├── SubscribeOn.swift
│ │ │ │ │ ├── SwitchIfEmpty.swift
│ │ │ │ │ ├── Switch.swift
│ │ │ │ │ ├── TakeLast.swift
│ │ │ │ │ ├── Take.swift
│ │ │ │ │ ├── TakeUntil.swift
│ │ │ │ │ ├── TakeWhile.swift
│ │ │ │ │ ├── Throttle.swift
│ │ │ │ │ ├── Timeout.swift
│ │ │ │ │ ├── Timer.swift
│ │ │ │ │ ├── ToArray.swift
│ │ │ │ │ ├── Using.swift
│ │ │ │ │ ├── Window.swift
│ │ │ │ │ ├── WithLatestFrom.swift
│ │ │ │ │ ├── Zip+arity.swift
│ │ │ │ │ ├── Zip+arity.tt
│ │ │ │ │ ├── Zip+Collection.swift
│ │ │ │ │ └── Zip.swift
│ │ │ │ ├── Observable.swift
│ │ │ │ ├── ObservableType+Extensions.swift
│ │ │ │ ├── ObservableType.swift
│ │ │ │ ├── Observers
│ │ │ │ │ ├── AnonymousObserver.swift
│ │ │ │ │ ├── ObserverBase.swift
│ │ │ │ │ └── TailRecursiveSink.swift
│ │ │ │ ├── ObserverType.swift
│ │ │ │ ├── Platform
│ │ │ │ │ ├── DataStructures
│ │ │ │ │ │ ├── Bag.swift
│ │ │ │ │ │ ├── InfiniteSequence.swift
│ │ │ │ │ │ ├── PriorityQueue.swift
│ │ │ │ │ │ └── Queue.swift
│ │ │ │ │ ├── DeprecationWarner.swift
│ │ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ │ ├── Platform.Linux.swift
│ │ │ │ │ └── RecursiveLock.swift
│ │ │ │ ├── Reactive.swift
│ │ │ │ ├── RxMutableBox.swift
│ │ │ │ ├── Rx.swift
│ │ │ │ ├── Schedulers
│ │ │ │ │ ├── ConcurrentDispatchQueueScheduler.swift
│ │ │ │ │ ├── ConcurrentMainScheduler.swift
│ │ │ │ │ ├── CurrentThreadScheduler.swift
│ │ │ │ │ ├── HistoricalScheduler.swift
│ │ │ │ │ ├── HistoricalSchedulerTimeConverter.swift
│ │ │ │ │ ├── Internal
│ │ │ │ │ │ ├── DispatchQueueConfiguration.swift
│ │ │ │ │ │ ├── InvocableScheduledItem.swift
│ │ │ │ │ │ ├── InvocableType.swift
│ │ │ │ │ │ ├── ScheduledItem.swift
│ │ │ │ │ │ └── ScheduledItemType.swift
│ │ │ │ │ ├── MainScheduler.swift
│ │ │ │ │ ├── OperationQueueScheduler.swift
│ │ │ │ │ ├── RecursiveScheduler.swift
│ │ │ │ │ ├── SchedulerServices+Emulation.swift
│ │ │ │ │ ├── SerialDispatchQueueScheduler.swift
│ │ │ │ │ ├── VirtualTimeConverterType.swift
│ │ │ │ │ └── VirtualTimeScheduler.swift
│ │ │ │ ├── SchedulerType.swift
│ │ │ │ ├── Subjects
│ │ │ │ │ ├── AsyncSubject.swift
│ │ │ │ │ ├── BehaviorSubject.swift
│ │ │ │ │ ├── PublishSubject.swift
│ │ │ │ │ ├── ReplaySubject.swift
│ │ │ │ │ └── SubjectType.swift
│ │ │ │ ├── SwiftSupport
│ │ │ │ │ └── SwiftSupport.swift
│ │ │ │ └── Traits
│ │ │ │ ├── Completable+AndThen.swift
│ │ │ │ ├── Completable.swift
│ │ │ │ ├── Maybe.swift
│ │ │ │ ├── ObservableType+PrimitiveSequence.swift
│ │ │ │ ├── PrimitiveSequence.swift
│ │ │ │ ├── PrimitiveSequence+Zip+arity.swift
│ │ │ │ ├── PrimitiveSequence+Zip+arity.tt
│ │ │ │ └── Single.swift
│ │ │ ├── RxSwift.podspec
│ │ │ ├── RxTest
│ │ │ │ ├── Any+Equatable.swift
│ │ │ │ ├── ColdObservable.swift
│ │ │ │ ├── Deprecated.swift
│ │ │ │ ├── Event+Equatable.swift
│ │ │ │ ├── HotObservable.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Platform
│ │ │ │ │ ├── DataStructures
│ │ │ │ │ │ └── Bag.swift
│ │ │ │ │ └── DeprecationWarner.swift
│ │ │ │ ├── Recorded+Event.swift
│ │ │ │ ├── Recorded.swift
│ │ │ │ ├── RxTest.swift
│ │ │ │ ├── Schedulers
│ │ │ │ │ ├── TestScheduler.swift
│ │ │ │ │ └── TestSchedulerVirtualTimeConverter.swift
│ │ │ │ ├── Subscription.swift
│ │ │ │ ├── TestableObservable.swift
│ │ │ │ ├── TestableObserver.swift
│ │ │ │ └── XCTest+Rx.swift
│ │ │ ├── RxTest.podspec
│ │ │ ├── Rx.xcodeproj
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ ├── xcbaselines
│ │ │ │ │ └── C8E8BA541E2C181A00A4AC2C.xcbaseline
│ │ │ │ │ ├── 91761072-433E-43DC-A058-545FB88C59EC.plist
│ │ │ │ │ ├── 996C445D-86F0-429E-92A9-44EBD3769290.plist
│ │ │ │ │ ├── B553A9F9-C6F1-4009-9BDC-AC42F9D31E38.plist
│ │ │ │ │ └── Info.plist
│ │ │ │ └── xcschemes
│ │ │ │ ├── RxBlocking-iOS.xcscheme
│ │ │ │ ├── RxBlocking-macOS.xcscheme
│ │ │ │ ├── RxBlocking-tvOS.xcscheme
│ │ │ │ ├── RxBlocking-watchOS.xcscheme
│ │ │ │ ├── RxCocoa-iOS.xcscheme
│ │ │ │ ├── RxCocoa-macOS.xcscheme
│ │ │ │ ├── RxCocoa-tvOS.xcscheme
│ │ │ │ ├── RxCocoa-watchOS.xcscheme
│ │ │ │ ├── RxSwift-iOS.xcscheme
│ │ │ │ ├── RxSwift-macOS.xcscheme
│ │ │ │ ├── RxSwift-tvOS.xcscheme
│ │ │ │ ├── RxSwift-watchOS.xcscheme
│ │ │ │ ├── RxTests-iOS.xcscheme
│ │ │ │ ├── RxTests-macOS.xcscheme
│ │ │ │ └── RxTests-tvOS.xcscheme
│ │ │ ├── Rx.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── scripts
│ │ │ │ ├── all-tests.sh
│ │ │ │ ├── common.sh
│ │ │ │ ├── package-spm.swift
│ │ │ │ ├── profile-build-times.sh
│ │ │ │ ├── test-linux.sh
│ │ │ │ ├── update-jazzy-config.rb
│ │ │ │ ├── update-jazzy-docs.sh
│ │ │ │ ├── validate-headers.swift
│ │ │ │ ├── validate-markdown.sh
│ │ │ │ ├── validate-playgrounds.sh
│ │ │ │ └── validate-podspec.sh
│ │ │ ├── Sources
│ │ │ │ ├── AllTestz
│ │ │ │ │ ├── Anomalies.swift
│ │ │ │ │ ├── AssumptionsTest.swift
│ │ │ │ │ ├── AsyncSubjectTests.swift
│ │ │ │ │ ├── BackgroundThreadPrimitiveHotObservable.swift
│ │ │ │ │ ├── Bag.swift
│ │ │ │ │ ├── BehaviorSubjectTest.swift
│ │ │ │ │ ├── Completable+AndThen.swift
│ │ │ │ │ ├── CompletableTest.swift
│ │ │ │ │ ├── CurrentThreadSchedulerTest.swift
│ │ │ │ │ ├── DeprecationWarner.swift
│ │ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ │ ├── DisposableTest.swift
│ │ │ │ │ ├── DisposeBagTest.swift
│ │ │ │ │ ├── Driver+Test.swift
│ │ │ │ │ ├── ElementIndexPair.swift
│ │ │ │ │ ├── EquatableArray.swift
│ │ │ │ │ ├── Event+Test.swift
│ │ │ │ │ ├── HistoricalSchedulerTest.swift
│ │ │ │ │ ├── InfiniteSequence.swift
│ │ │ │ │ ├── MainSchedulerTests.swift
│ │ │ │ │ ├── main.swift
│ │ │ │ │ ├── MainThreadPrimitiveHotObservable.swift
│ │ │ │ │ ├── MaybeTest.swift
│ │ │ │ │ ├── MockDisposable.swift
│ │ │ │ │ ├── MySubject.swift
│ │ │ │ │ ├── NotificationCenterTests.swift
│ │ │ │ │ ├── Observable+AmbTests.swift
│ │ │ │ │ ├── Observable+BlockingTest.swift
│ │ │ │ │ ├── Observable+BufferTests.swift
│ │ │ │ │ ├── Observable+CatchTests.swift
│ │ │ │ │ ├── Observable+CombineLatestTests+arity.swift
│ │ │ │ │ ├── Observable+CombineLatestTests.swift
│ │ │ │ │ ├── Observable+ConcatTests.swift
│ │ │ │ │ ├── Observable+DebugTests.swift
│ │ │ │ │ ├── Observable+DefaultIfEmpty.swift
│ │ │ │ │ ├── Observable+DelaySubscriptionTests.swift
│ │ │ │ │ ├── Observable+DelayTests.swift
│ │ │ │ │ ├── Observable+DematerializeTests.swift
│ │ │ │ │ ├── Observable+DistinctUntilChangedTests.swift
│ │ │ │ │ ├── Observable+DoOnTests.swift
│ │ │ │ │ ├── Observable+ElementAtTests.swift
│ │ │ │ │ ├── Observable+EnumeratedTests.swift
│ │ │ │ │ ├── Observable+Extensions.swift
│ │ │ │ │ ├── Observable.Extensions.swift
│ │ │ │ │ ├── Observable+FilterTests.swift
│ │ │ │ │ ├── Observable+GenerateTests.swift
│ │ │ │ │ ├── Observable+GroupByTests.swift
│ │ │ │ │ ├── Observable+JustTests.swift
│ │ │ │ │ ├── Observable+MapTests.swift
│ │ │ │ │ ├── Observable+MaterializeTests.swift
│ │ │ │ │ ├── Observable+MergeTests.swift
│ │ │ │ │ ├── Observable+MulticastTests.swift
│ │ │ │ │ ├── Observable+ObserveOnTests.swift
│ │ │ │ │ ├── Observable+OptionalTests.swift
│ │ │ │ │ ├── Observable+PrimitiveSequenceTest.swift
│ │ │ │ │ ├── Observable+RangeTests.swift
│ │ │ │ │ ├── Observable+ReduceTests.swift
│ │ │ │ │ ├── Observable+RepeatTests.swift
│ │ │ │ │ ├── Observable+RetryWhenTests.swift
│ │ │ │ │ ├── Observable+SampleTests.swift
│ │ │ │ │ ├── Observable+ScanTests.swift
│ │ │ │ │ ├── Observable+SequenceTests.swift
│ │ │ │ │ ├── Observable+ShareReplayScopeTests.swift
│ │ │ │ │ ├── Observable+SingleTests.swift
│ │ │ │ │ ├── Observable+SkipTests.swift
│ │ │ │ │ ├── Observable+SkipUntilTests.swift
│ │ │ │ │ ├── Observable+SkipWhileTests.swift
│ │ │ │ │ ├── Observable+SubscribeOnTests.swift
│ │ │ │ │ ├── Observable+SubscriptionTest.swift
│ │ │ │ │ ├── Observable+SwitchIfEmptyTests.swift
│ │ │ │ │ ├── Observable+SwitchTests.swift
│ │ │ │ │ ├── Observable+TakeLastTests.swift
│ │ │ │ │ ├── Observable+TakeTests.swift
│ │ │ │ │ ├── Observable+TakeUntilTests.swift
│ │ │ │ │ ├── Observable+TakeWhileTests.swift
│ │ │ │ │ ├── Observable+Tests.swift
│ │ │ │ │ ├── Observable+ThrottleTests.swift
│ │ │ │ │ ├── Observable+TimeoutTests.swift
│ │ │ │ │ ├── Observable+TimerTests.swift
│ │ │ │ │ ├── Observable+ToArrayTests.swift
│ │ │ │ │ ├── ObservableType+SubscriptionTests.swift
│ │ │ │ │ ├── Observable+UsingTests.swift
│ │ │ │ │ ├── Observable+WindowTests.swift
│ │ │ │ │ ├── Observable+WithLatestFromTests.swift
│ │ │ │ │ ├── Observable+ZipTests+arity.swift
│ │ │ │ │ ├── Observable+ZipTests.swift
│ │ │ │ │ ├── ObserverTests.swift
│ │ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ │ ├── Platform.Linux.swift
│ │ │ │ │ ├── PrimitiveHotObservable.swift
│ │ │ │ │ ├── PrimitiveMockObserver.swift
│ │ │ │ │ ├── PrimitiveSequenceTest+zip+arity.swift
│ │ │ │ │ ├── PriorityQueue.swift
│ │ │ │ │ ├── PublishSubjectTest.swift
│ │ │ │ │ ├── Queue.swift
│ │ │ │ │ ├── Reactive+Tests.swift
│ │ │ │ │ ├── Recorded+Timeless.swift
│ │ │ │ │ ├── RecursiveLock.swift
│ │ │ │ │ ├── RecursiveLockTest.swift
│ │ │ │ │ ├── ReplaySubjectTest.swift
│ │ │ │ │ ├── RxMutableBox.swift
│ │ │ │ │ ├── RxTest.swift
│ │ │ │ │ ├── SchedulerTests.swift
│ │ │ │ │ ├── SharedSequence+Extensions.swift
│ │ │ │ │ ├── SharedSequence+OperatorTest.swift
│ │ │ │ │ ├── SharedSequence+Test.swift
│ │ │ │ │ ├── SharingSchedulerTests.swift
│ │ │ │ │ ├── Signal+Test.swift
│ │ │ │ │ ├── SingleTest.swift
│ │ │ │ │ ├── TestConnectableObservable.swift
│ │ │ │ │ ├── TestErrors.swift
│ │ │ │ │ ├── TestVirtualScheduler.swift
│ │ │ │ │ ├── VariableTest.swift
│ │ │ │ │ ├── VirtualSchedulerTest.swift
│ │ │ │ │ └── XCTest+AllTests.swift
│ │ │ │ ├── RxBlocking
│ │ │ │ │ ├── BlockingObservable+Operators.swift
│ │ │ │ │ ├── BlockingObservable.swift
│ │ │ │ │ ├── ObservableConvertibleType+Blocking.swift
│ │ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ │ ├── Platform.Linux.swift
│ │ │ │ │ ├── RecursiveLock.swift
│ │ │ │ │ ├── Resources.swift
│ │ │ │ │ └── RunLoopLock.swift
│ │ │ │ ├── RxCocoa
│ │ │ │ │ ├── BehaviorRelay+Driver.swift
│ │ │ │ │ ├── BehaviorRelay.swift
│ │ │ │ │ ├── Binder.swift
│ │ │ │ │ ├── ControlEvent+Driver.swift
│ │ │ │ │ ├── ControlEvent+Signal.swift
│ │ │ │ │ ├── ControlEvent.swift
│ │ │ │ │ ├── ControlProperty+Driver.swift
│ │ │ │ │ ├── ControlProperty.swift
│ │ │ │ │ ├── ControlTarget.swift
│ │ │ │ │ ├── DelegateProxy.swift
│ │ │ │ │ ├── DelegateProxyType.swift
│ │ │ │ │ ├── Deprecated.swift
│ │ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ │ ├── Driver+Subscription.swift
│ │ │ │ │ ├── Driver.swift
│ │ │ │ │ ├── ItemEvents.swift
│ │ │ │ │ ├── KeyPathBinder.swift
│ │ │ │ │ ├── KVORepresentable+CoreGraphics.swift
│ │ │ │ │ ├── KVORepresentable.swift
│ │ │ │ │ ├── KVORepresentable+Swift.swift
│ │ │ │ │ ├── Logging.swift
│ │ │ │ │ ├── NotificationCenter+Rx.swift
│ │ │ │ │ ├── NSButton+Rx.swift
│ │ │ │ │ ├── NSControl+Rx.swift
│ │ │ │ │ ├── NSImageView+Rx.swift
│ │ │ │ │ ├── NSLayoutConstraint+Rx.swift
│ │ │ │ │ ├── NSObject+Rx+KVORepresentable.swift
│ │ │ │ │ ├── NSObject+Rx+RawRepresentable.swift
│ │ │ │ │ ├── NSObject+Rx.swift
│ │ │ │ │ ├── NSSlider+Rx.swift
│ │ │ │ │ ├── NSTextField+Rx.swift
│ │ │ │ │ ├── NSTextStorage+Rx.swift
│ │ │ │ │ ├── NSView+Rx.swift
│ │ │ │ │ ├── Observable+Bind.swift
│ │ │ │ │ ├── ObservableConvertibleType+Driver.swift
│ │ │ │ │ ├── ObservableConvertibleType+SharedSequence.swift
│ │ │ │ │ ├── ObservableConvertibleType+Signal.swift
│ │ │ │ │ ├── PublishRelay+Signal.swift
│ │ │ │ │ ├── PublishRelay.swift
│ │ │ │ │ ├── RxCocoaObjCRuntimeError+Extensions.swift
│ │ │ │ │ ├── RxCocoa.swift
│ │ │ │ │ ├── RxCollectionViewDataSourcePrefetchingProxy.swift
│ │ │ │ │ ├── RxCollectionViewDataSourceProxy.swift
│ │ │ │ │ ├── RxCollectionViewDataSourceType.swift
│ │ │ │ │ ├── RxCollectionViewDelegateProxy.swift
│ │ │ │ │ ├── RxCollectionViewReactiveArrayDataSource.swift
│ │ │ │ │ ├── RxNavigationControllerDelegateProxy.swift
│ │ │ │ │ ├── RxPickerViewAdapter.swift
│ │ │ │ │ ├── RxPickerViewDataSourceProxy.swift
│ │ │ │ │ ├── RxPickerViewDataSourceType.swift
│ │ │ │ │ ├── RxPickerViewDelegateProxy.swift
│ │ │ │ │ ├── RxScrollViewDelegateProxy.swift
│ │ │ │ │ ├── RxSearchBarDelegateProxy.swift
│ │ │ │ │ ├── RxSearchControllerDelegateProxy.swift
│ │ │ │ │ ├── RxTabBarControllerDelegateProxy.swift
│ │ │ │ │ ├── RxTabBarDelegateProxy.swift
│ │ │ │ │ ├── RxTableViewDataSourcePrefetchingProxy.swift
│ │ │ │ │ ├── RxTableViewDataSourceProxy.swift
│ │ │ │ │ ├── RxTableViewDataSourceType.swift
│ │ │ │ │ ├── RxTableViewDelegateProxy.swift
│ │ │ │ │ ├── RxTableViewReactiveArrayDataSource.swift
│ │ │ │ │ ├── RxTarget.swift
│ │ │ │ │ ├── RxTextStorageDelegateProxy.swift
│ │ │ │ │ ├── RxTextViewDelegateProxy.swift
│ │ │ │ │ ├── RxWebViewDelegateProxy.swift
│ │ │ │ │ ├── SchedulerType+SharedSequence.swift
│ │ │ │ │ ├── SectionedViewDataSourceType.swift
│ │ │ │ │ ├── SharedSequence+Operators+arity.swift
│ │ │ │ │ ├── SharedSequence+Operators.swift
│ │ │ │ │ ├── SharedSequence.swift
│ │ │ │ │ ├── Signal+Subscription.swift
│ │ │ │ │ ├── Signal.swift
│ │ │ │ │ ├── TextInput.swift
│ │ │ │ │ ├── UIActivityIndicatorView+Rx.swift
│ │ │ │ │ ├── UIAlertAction+Rx.swift
│ │ │ │ │ ├── UIApplication+Rx.swift
│ │ │ │ │ ├── UIBarButtonItem+Rx.swift
│ │ │ │ │ ├── UIButton+Rx.swift
│ │ │ │ │ ├── UICollectionView+Rx.swift
│ │ │ │ │ ├── UIControl+Rx.swift
│ │ │ │ │ ├── UIDatePicker+Rx.swift
│ │ │ │ │ ├── UIGestureRecognizer+Rx.swift
│ │ │ │ │ ├── UIImageView+Rx.swift
│ │ │ │ │ ├── UILabel+Rx.swift
│ │ │ │ │ ├── UINavigationController+Rx.swift
│ │ │ │ │ ├── UINavigationItem+Rx.swift
│ │ │ │ │ ├── UIPageControl+Rx.swift
│ │ │ │ │ ├── UIPickerView+Rx.swift
│ │ │ │ │ ├── UIProgressView+Rx.swift
│ │ │ │ │ ├── UIRefreshControl+Rx.swift
│ │ │ │ │ ├── UIScrollView+Rx.swift
│ │ │ │ │ ├── UISearchBar+Rx.swift
│ │ │ │ │ ├── UISearchController+Rx.swift
│ │ │ │ │ ├── UISegmentedControl+Rx.swift
│ │ │ │ │ ├── UISlider+Rx.swift
│ │ │ │ │ ├── UIStepper+Rx.swift
│ │ │ │ │ ├── UISwitch+Rx.swift
│ │ │ │ │ ├── UITabBarController+Rx.swift
│ │ │ │ │ ├── UITabBarItem+Rx.swift
│ │ │ │ │ ├── UITabBar+Rx.swift
│ │ │ │ │ ├── UITableView+Rx.swift
│ │ │ │ │ ├── UITextField+Rx.swift
│ │ │ │ │ ├── UITextView+Rx.swift
│ │ │ │ │ ├── UIViewController+Rx.swift
│ │ │ │ │ ├── UIView+Rx.swift
│ │ │ │ │ ├── UIWebView+Rx.swift
│ │ │ │ │ └── URLSession+Rx.swift
│ │ │ │ ├── RxCocoaRuntime
│ │ │ │ │ ├── include
│ │ │ │ │ │ ├── RxCocoaRuntime.h
│ │ │ │ │ │ ├── _RXDelegateProxy.h
│ │ │ │ │ │ ├── _RX.h
│ │ │ │ │ │ ├── _RXKVOObserver.h
│ │ │ │ │ │ └── _RXObjCRuntime.h
│ │ │ │ │ ├── _RXDelegateProxy.m
│ │ │ │ │ ├── _RXKVOObserver.m
│ │ │ │ │ ├── _RX.m
│ │ │ │ │ └── _RXObjCRuntime.m
│ │ │ │ ├── RxSwift
│ │ │ │ │ ├── AddRef.swift
│ │ │ │ │ ├── Amb.swift
│ │ │ │ │ ├── AnonymousDisposable.swift
│ │ │ │ │ ├── AnonymousObserver.swift
│ │ │ │ │ ├── AnyObserver.swift
│ │ │ │ │ ├── AsMaybe.swift
│ │ │ │ │ ├── AsSingle.swift
│ │ │ │ │ ├── AsyncLock.swift
│ │ │ │ │ ├── AsyncSubject.swift
│ │ │ │ │ ├── Bag+Rx.swift
│ │ │ │ │ ├── Bag.swift
│ │ │ │ │ ├── BehaviorSubject.swift
│ │ │ │ │ ├── BinaryDisposable.swift
│ │ │ │ │ ├── BooleanDisposable.swift
│ │ │ │ │ ├── Buffer.swift
│ │ │ │ │ ├── Cancelable.swift
│ │ │ │ │ ├── Catch.swift
│ │ │ │ │ ├── CombineLatest+arity.swift
│ │ │ │ │ ├── CombineLatest+Collection.swift
│ │ │ │ │ ├── CombineLatest.swift
│ │ │ │ │ ├── Completable+AndThen.swift
│ │ │ │ │ ├── Completable.swift
│ │ │ │ │ ├── CompositeDisposable.swift
│ │ │ │ │ ├── Concat.swift
│ │ │ │ │ ├── ConcurrentDispatchQueueScheduler.swift
│ │ │ │ │ ├── ConcurrentMainScheduler.swift
│ │ │ │ │ ├── ConnectableObservableType.swift
│ │ │ │ │ ├── Create.swift
│ │ │ │ │ ├── CurrentThreadScheduler.swift
│ │ │ │ │ ├── Debounce.swift
│ │ │ │ │ ├── Debug.swift
│ │ │ │ │ ├── DefaultIfEmpty.swift
│ │ │ │ │ ├── Deferred.swift
│ │ │ │ │ ├── DelaySubscription.swift
│ │ │ │ │ ├── Delay.swift
│ │ │ │ │ ├── Dematerialize.swift
│ │ │ │ │ ├── Deprecated.swift
│ │ │ │ │ ├── DeprecationWarner.swift
│ │ │ │ │ ├── DispatchQueueConfiguration.swift
│ │ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ │ ├── Disposables.swift
│ │ │ │ │ ├── Disposable.swift
│ │ │ │ │ ├── DisposeBag.swift
│ │ │ │ │ ├── DisposeBase.swift
│ │ │ │ │ ├── DistinctUntilChanged.swift
│ │ │ │ │ ├── Do.swift
│ │ │ │ │ ├── ElementAt.swift
│ │ │ │ │ ├── Empty.swift
│ │ │ │ │ ├── Enumerated.swift
│ │ │ │ │ ├── Errors.swift
│ │ │ │ │ ├── Error.swift
│ │ │ │ │ ├── Event.swift
│ │ │ │ │ ├── Filter.swift
│ │ │ │ │ ├── First.swift
│ │ │ │ │ ├── Generate.swift
│ │ │ │ │ ├── GroupBy.swift
│ │ │ │ │ ├── GroupedObservable.swift
│ │ │ │ │ ├── HistoricalScheduler.swift
│ │ │ │ │ ├── HistoricalSchedulerTimeConverter.swift
│ │ │ │ │ ├── ImmediateSchedulerType.swift
│ │ │ │ │ ├── InfiniteSequence.swift
│ │ │ │ │ ├── InvocableScheduledItem.swift
│ │ │ │ │ ├── InvocableType.swift
│ │ │ │ │ ├── Just.swift
│ │ │ │ │ ├── LockOwnerType.swift
│ │ │ │ │ ├── Lock.swift
│ │ │ │ │ ├── MainScheduler.swift
│ │ │ │ │ ├── Map.swift
│ │ │ │ │ ├── Materialize.swift
│ │ │ │ │ ├── Maybe.swift
│ │ │ │ │ ├── Merge.swift
│ │ │ │ │ ├── Multicast.swift
│ │ │ │ │ ├── Never.swift
│ │ │ │ │ ├── NopDisposable.swift
│ │ │ │ │ ├── ObservableConvertibleType.swift
│ │ │ │ │ ├── Observable.swift
│ │ │ │ │ ├── ObservableType+Extensions.swift
│ │ │ │ │ ├── ObservableType+PrimitiveSequence.swift
│ │ │ │ │ ├── ObservableType.swift
│ │ │ │ │ ├── ObserveOn.swift
│ │ │ │ │ ├── ObserverBase.swift
│ │ │ │ │ ├── ObserverType.swift
│ │ │ │ │ ├── OperationQueueScheduler.swift
│ │ │ │ │ ├── Optional.swift
│ │ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ │ ├── Platform.Linux.swift
│ │ │ │ │ ├── PrimitiveSequence.swift
│ │ │ │ │ ├── PrimitiveSequence+Zip+arity.swift
│ │ │ │ │ ├── PriorityQueue.swift
│ │ │ │ │ ├── Producer.swift
│ │ │ │ │ ├── PublishSubject.swift
│ │ │ │ │ ├── Queue.swift
│ │ │ │ │ ├── Range.swift
│ │ │ │ │ ├── Reactive.swift
│ │ │ │ │ ├── RecursiveLock.swift
│ │ │ │ │ ├── RecursiveScheduler.swift
│ │ │ │ │ ├── Reduce.swift
│ │ │ │ │ ├── RefCountDisposable.swift
│ │ │ │ │ ├── Repeat.swift
│ │ │ │ │ ├── ReplaySubject.swift
│ │ │ │ │ ├── RetryWhen.swift
│ │ │ │ │ ├── RxMutableBox.swift
│ │ │ │ │ ├── Rx.swift
│ │ │ │ │ ├── Sample.swift
│ │ │ │ │ ├── Scan.swift
│ │ │ │ │ ├── ScheduledDisposable.swift
│ │ │ │ │ ├── ScheduledItem.swift
│ │ │ │ │ ├── ScheduledItemType.swift
│ │ │ │ │ ├── SchedulerServices+Emulation.swift
│ │ │ │ │ ├── SchedulerType.swift
│ │ │ │ │ ├── Sequence.swift
│ │ │ │ │ ├── SerialDispatchQueueScheduler.swift
│ │ │ │ │ ├── SerialDisposable.swift
│ │ │ │ │ ├── ShareReplayScope.swift
│ │ │ │ │ ├── SingleAssignmentDisposable.swift
│ │ │ │ │ ├── SingleAsync.swift
│ │ │ │ │ ├── Single.swift
│ │ │ │ │ ├── Sink.swift
│ │ │ │ │ ├── Skip.swift
│ │ │ │ │ ├── SkipUntil.swift
│ │ │ │ │ ├── SkipWhile.swift
│ │ │ │ │ ├── StartWith.swift
│ │ │ │ │ ├── String+Rx.swift
│ │ │ │ │ ├── SubjectType.swift
│ │ │ │ │ ├── SubscribeOn.swift
│ │ │ │ │ ├── SubscriptionDisposable.swift
│ │ │ │ │ ├── SwiftSupport.swift
│ │ │ │ │ ├── SwitchIfEmpty.swift
│ │ │ │ │ ├── Switch.swift
│ │ │ │ │ ├── SynchronizedDisposeType.swift
│ │ │ │ │ ├── SynchronizedOnType.swift
│ │ │ │ │ ├── SynchronizedUnsubscribeType.swift
│ │ │ │ │ ├── TailRecursiveSink.swift
│ │ │ │ │ ├── TakeLast.swift
│ │ │ │ │ ├── Take.swift
│ │ │ │ │ ├── TakeUntil.swift
│ │ │ │ │ ├── TakeWhile.swift
│ │ │ │ │ ├── Throttle.swift
│ │ │ │ │ ├── Timeout.swift
│ │ │ │ │ ├── Timer.swift
│ │ │ │ │ ├── ToArray.swift
│ │ │ │ │ ├── Using.swift
│ │ │ │ │ ├── VirtualTimeConverterType.swift
│ │ │ │ │ ├── VirtualTimeScheduler.swift
│ │ │ │ │ ├── Window.swift
│ │ │ │ │ ├── WithLatestFrom.swift
│ │ │ │ │ ├── Zip+arity.swift
│ │ │ │ │ ├── Zip+Collection.swift
│ │ │ │ │ └── Zip.swift
│ │ │ │ └── RxTest
│ │ │ │ ├── Any+Equatable.swift
│ │ │ │ ├── Bag.swift
│ │ │ │ ├── ColdObservable.swift
│ │ │ │ ├── Deprecated.swift
│ │ │ │ ├── DeprecationWarner.swift
│ │ │ │ ├── Event+Equatable.swift
│ │ │ │ ├── HotObservable.swift
│ │ │ │ ├── Recorded+Event.swift
│ │ │ │ ├── Recorded.swift
│ │ │ │ ├── RxTest.swift
│ │ │ │ ├── Subscription.swift
│ │ │ │ ├── TestableObservable.swift
│ │ │ │ ├── TestableObserver.swift
│ │ │ │ ├── TestScheduler.swift
│ │ │ │ ├── TestSchedulerVirtualTimeConverter.swift
│ │ │ │ └── XCTest+Rx.swift
│ │ │ └── Tests
│ │ │ ├── Benchmarks
│ │ │ │ ├── Benchmarks.swift
│ │ │ │ └── Info.plist
│ │ │ ├── Info.plist
│ │ │ ├── MessageProcessingStage.swift
│ │ │ ├── Microoptimizations
│ │ │ │ ├── Info.plist
│ │ │ │ ├── main.swift
│ │ │ │ └── PerformanceTools.swift
│ │ │ ├── Platform
│ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ ├── Platform.Linux.swift
│ │ │ │ └── RecursiveLock.swift
│ │ │ ├── Recorded+Timeless.swift
│ │ │ ├── Resources.swift
│ │ │ ├── RxBlockingTests
│ │ │ │ └── Observable+BlockingTest.swift
│ │ │ ├── RxCocoaTests
│ │ │ │ ├── Binder+Tests.swift
│ │ │ │ ├── ControlEventTests.swift
│ │ │ │ ├── ControlPropertyTests.swift
│ │ │ │ ├── DelegateProxyTest+Cocoa.swift
│ │ │ │ ├── DelegateProxyTest.swift
│ │ │ │ ├── DelegateProxyTest+UIKit.swift
│ │ │ │ ├── Driver+Test.swift
│ │ │ │ ├── ExampleTests.swift
│ │ │ │ ├── KeyPathBinder+RxTests.swift
│ │ │ │ ├── KVOObservableTests.swift
│ │ │ │ ├── NotificationCenterTests.swift
│ │ │ │ ├── NSButton+RxTests.swift
│ │ │ │ ├── NSControl+RxTests.swift
│ │ │ │ ├── NSLayoutConstraint+RxTests.swift
│ │ │ │ ├── NSObject+RxTests.swift
│ │ │ │ ├── NSSlider+RxTests.swift
│ │ │ │ ├── NSTextField+RxTests.swift
│ │ │ │ ├── NSView+RxTests.swift
│ │ │ │ ├── Observable+BindTests.swift
│ │ │ │ ├── ObservableConvertibleType+SharedSequence.swift
│ │ │ │ ├── RuntimeStateSnapshot.swift
│ │ │ │ ├── RxObjCRuntimeState.swift
│ │ │ │ ├── RXObjCRuntime+Testing.h
│ │ │ │ ├── RXObjCRuntime+Testing.m
│ │ │ │ ├── RxTest+Controls.swift
│ │ │ │ ├── RxTest-iOS-Bridging-Header.h
│ │ │ │ ├── RxTest-macOS-Bridging-Header.h
│ │ │ │ ├── RxTest-tvOS-Bridging-Header.h
│ │ │ │ ├── SentMessageTest.swift
│ │ │ │ ├── SharedSequence+Extensions.swift
│ │ │ │ ├── SharedSequence+OperatorTest.swift
│ │ │ │ ├── SharedSequence+Test.swift
│ │ │ │ ├── Signal+Test.swift
│ │ │ │ ├── TestImplementations
│ │ │ │ │ └── SectionedViewDataSourceMock.swift
│ │ │ │ ├── UIActivityIndicatorView+RxTests.swift
│ │ │ │ ├── UIAlertAction+RxTests.swift
│ │ │ │ ├── UIBarButtonItem+RxTests.swift
│ │ │ │ ├── UIButton+RxTests.swift
│ │ │ │ ├── UICollectionView+RxTests.swift
│ │ │ │ ├── UIControl+RxTests.swift
│ │ │ │ ├── UIDatePicker+RxTests.swift
│ │ │ │ ├── UIGestureRecognizer+RxTests.swift
│ │ │ │ ├── UILabel+RxTests.swift
│ │ │ │ ├── UINavigationController+RxTests.swift
│ │ │ │ ├── UINavigationItem+RxTests.swift.swift
│ │ │ │ ├── UIPageControl+RxTest.swift
│ │ │ │ ├── UIPickerView+RxTests.swift
│ │ │ │ ├── UIProgressView+RxTests.swift
│ │ │ │ ├── UIRefreshControl+RxTests.swift
│ │ │ │ ├── UIScrollView+RxTests.swift
│ │ │ │ ├── UISearchBar+RxTests.swift
│ │ │ │ ├── UISearchController+RxTests.swift
│ │ │ │ ├── UISegmentedControl+RxTests.swift
│ │ │ │ ├── UISlider+RxTests.swift
│ │ │ │ ├── UIStepper+RxTests.swift
│ │ │ │ ├── UISwitch+RxTests.swift
│ │ │ │ ├── UITabBarController+RxTests.swift
│ │ │ │ ├── UITabBarItem+RxTests.swift
│ │ │ │ ├── UITabBar+RxTests.swift
│ │ │ │ ├── UITableView+RxTests.swift
│ │ │ │ ├── UITextField+RxTests.swift
│ │ │ │ ├── UITextView+RxTests.swift
│ │ │ │ ├── UIViewController+RxTests.swift
│ │ │ │ ├── UIView+RxTests.swift
│ │ │ │ └── UIWebView+RxTests.swift
│ │ │ ├── RxSwiftTests
│ │ │ │ ├── Anomalies.swift
│ │ │ │ ├── AssumptionsTest.swift
│ │ │ │ ├── AsyncSubjectTests.swift
│ │ │ │ ├── BagTest.swift
│ │ │ │ ├── BehaviorSubjectTest.swift
│ │ │ │ ├── Completable+AndThen.swift
│ │ │ │ ├── CompletableTest.swift
│ │ │ │ ├── CurrentThreadSchedulerTest.swift
│ │ │ │ ├── DisposableTest.swift
│ │ │ │ ├── DisposeBagTest.swift
│ │ │ │ ├── Event+Test.swift
│ │ │ │ ├── HistoricalSchedulerTest.swift
│ │ │ │ ├── MainSchedulerTests.swift
│ │ │ │ ├── MaybeTest.swift
│ │ │ │ ├── Observable+AmbTests.swift
│ │ │ │ ├── Observable+BufferTests.swift
│ │ │ │ ├── Observable+CatchTests.swift
│ │ │ │ ├── Observable+CombineLatestTests+arity.swift
│ │ │ │ ├── Observable+CombineLatestTests+arity.tt
│ │ │ │ ├── Observable+CombineLatestTests.swift
│ │ │ │ ├── Observable+ConcatTests.swift
│ │ │ │ ├── Observable+DebugTests.swift
│ │ │ │ ├── Observable+DefaultIfEmpty.swift
│ │ │ │ ├── Observable+DelaySubscriptionTests.swift
│ │ │ │ ├── Observable+DelayTests.swift
│ │ │ │ ├── Observable+DematerializeTests.swift
│ │ │ │ ├── Observable+DistinctUntilChangedTests.swift
│ │ │ │ ├── Observable+DoOnTests.swift
│ │ │ │ ├── Observable+ElementAtTests.swift
│ │ │ │ ├── Observable+EnumeratedTests.swift
│ │ │ │ ├── Observable+FilterTests.swift
│ │ │ │ ├── Observable+GenerateTests.swift
│ │ │ │ ├── Observable+GroupByTests.swift
│ │ │ │ ├── Observable+JustTests.swift
│ │ │ │ ├── Observable+MapTests.swift
│ │ │ │ ├── Observable+MaterializeTests.swift
│ │ │ │ ├── Observable+MergeTests.swift
│ │ │ │ ├── Observable+MulticastTests.swift
│ │ │ │ ├── Observable+ObserveOnTests.swift
│ │ │ │ ├── Observable+OptionalTests.swift
│ │ │ │ ├── Observable+PrimitiveSequenceTest.swift
│ │ │ │ ├── Observable+RangeTests.swift
│ │ │ │ ├── Observable+ReduceTests.swift
│ │ │ │ ├── Observable+RepeatTests.swift
│ │ │ │ ├── Observable+RetryWhenTests.swift
│ │ │ │ ├── Observable+SampleTests.swift
│ │ │ │ ├── Observable+ScanTests.swift
│ │ │ │ ├── Observable+SequenceTests.swift
│ │ │ │ ├── Observable+ShareReplayScopeTests.swift
│ │ │ │ ├── Observable+SingleTests.swift
│ │ │ │ ├── Observable+SkipTests.swift
│ │ │ │ ├── Observable+SkipUntilTests.swift
│ │ │ │ ├── Observable+SkipWhileTests.swift
│ │ │ │ ├── Observable+SubscribeOnTests.swift
│ │ │ │ ├── Observable+SubscriptionTest.swift
│ │ │ │ ├── Observable+SwitchIfEmptyTests.swift
│ │ │ │ ├── Observable+SwitchTests.swift
│ │ │ │ ├── Observable+TakeLastTests.swift
│ │ │ │ ├── Observable+TakeTests.swift
│ │ │ │ ├── Observable+TakeUntilTests.swift
│ │ │ │ ├── Observable+TakeWhileTests.swift
│ │ │ │ ├── Observable+Tests.swift
│ │ │ │ ├── Observable+ThrottleTests.swift
│ │ │ │ ├── Observable+TimeoutTests.swift
│ │ │ │ ├── Observable+TimerTests.swift
│ │ │ │ ├── Observable+ToArrayTests.swift
│ │ │ │ ├── ObservableType+SubscriptionTests.swift
│ │ │ │ ├── Observable+UsingTests.swift
│ │ │ │ ├── Observable+WindowTests.swift
│ │ │ │ ├── Observable+WithLatestFromTests.swift
│ │ │ │ ├── Observable+ZipTests+arity.swift
│ │ │ │ ├── Observable+ZipTests+arity.tt
│ │ │ │ ├── Observable+ZipTests.swift
│ │ │ │ ├── ObserverTests.swift
│ │ │ │ ├── PrimitiveSequenceTest+zip+arity.swift
│ │ │ │ ├── PrimitiveSequenceTest+zip+arity.tt
│ │ │ │ ├── PublishSubjectTest.swift
│ │ │ │ ├── QueueTests.swift
│ │ │ │ ├── Reactive+Tests.swift
│ │ │ │ ├── RecursiveLockTest.swift
│ │ │ │ ├── ReplaySubjectTest.swift
│ │ │ │ ├── SchedulerTests.swift
│ │ │ │ ├── SharingSchedulerTests.swift
│ │ │ │ ├── SingleTest.swift
│ │ │ │ ├── SubjectConcurrencyTest.swift
│ │ │ │ ├── TestImplementations
│ │ │ │ │ ├── ElementIndexPair.swift
│ │ │ │ │ ├── EquatableArray.swift
│ │ │ │ │ ├── Mocks
│ │ │ │ │ │ ├── BackgroundThreadPrimitiveHotObservable.swift
│ │ │ │ │ │ ├── MainThreadPrimitiveHotObservable.swift
│ │ │ │ │ │ ├── MockDisposable.swift
│ │ │ │ │ │ ├── MySubject.swift
│ │ │ │ │ │ ├── Observable.Extensions.swift
│ │ │ │ │ │ ├── PrimitiveHotObservable.swift
│ │ │ │ │ │ ├── PrimitiveMockObserver.swift
│ │ │ │ │ │ └── TestConnectableObservable.swift
│ │ │ │ │ ├── Observable+Extensions.swift
│ │ │ │ │ └── TestVirtualScheduler.swift
│ │ │ │ ├── VariableTest.swift
│ │ │ │ └── VirtualSchedulerTest.swift
│ │ │ ├── RxTest.swift
│ │ │ ├── TestErrors.swift
│ │ │ └── XCTest+AllTests.swift
│ │ ├── Koober
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon1024.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ ├── Icon83.5@2x.png
│ │ │ │ │ ├── icon-app-20@2x.png
│ │ │ │ │ ├── icon-app-20@3x.png
│ │ │ │ │ ├── icon-app-29@2x.png
│ │ │ │ │ ├── icon-app-29@3x copy.png
│ │ │ │ │ ├── icon-app-40@2x.png
│ │ │ │ │ ├── icon-app-40@3x.png
│ │ │ │ │ ├── icon-app-60@2x.png
│ │ │ │ │ └── icon-app-60@3x.png
│ │ │ │ ├── Colors
│ │ │ │ │ ├── BackgroundColor.colorset
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ └── Images
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Onboard
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── email_icon.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── email_icon@2x.png
│ │ │ │ │ │ ├── email_icon@3x.png
│ │ │ │ │ │ └── email_icon.png
│ │ │ │ │ ├── mobile_icon.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── mobile_icon@2x.png
│ │ │ │ │ │ ├── mobile_icon@3x.png
│ │ │ │ │ │ └── mobile_icon.png
│ │ │ │ │ ├── password_icon.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── password_icon@2x.png
│ │ │ │ │ │ ├── password_icon@3x.png
│ │ │ │ │ │ └── password_icon.png
│ │ │ │ │ ├── person_icon.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── person@2x.png
│ │ │ │ │ │ ├── person@3x.png
│ │ │ │ │ │ └── person.png
│ │ │ │ │ ├── roo_logo.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── roo_logo@2x.png
│ │ │ │ │ │ ├── roo_logo@3x.png
│ │ │ │ │ │ └── roo_logo.png
│ │ │ │ │ └── tag_icon.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── tag@2x.png
│ │ │ │ │ ├── tag@3x.png
│ │ │ │ │ └── tag.png
│ │ │ │ ├── RequestRide
│ │ │ │ │ ├── available_placeholder_marker.imageset
│ │ │ │ │ │ ├── available_placeholder_marker@2x.png
│ │ │ │ │ │ ├── available_placeholder_marker@3x.png
│ │ │ │ │ │ ├── available_placeholder_marker.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── CancelButton.imageset
│ │ │ │ │ │ ├── CancelButton@2x.png
│ │ │ │ │ │ ├── CancelButton@3x.png
│ │ │ │ │ │ ├── CancelButton.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── DriverEnRoute.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Driver En Route@1x.png
│ │ │ │ │ │ ├── Driver En Route@2x.png
│ │ │ │ │ │ └── Driver En Route@3x.png
│ │ │ │ │ ├── koober.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Icon-60@2x.png
│ │ │ │ │ │ └── Icon-60@3x.png
│ │ │ │ │ ├── MapMarkerDropoffLocation.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── map_marker_destination_location@2x.png
│ │ │ │ │ │ ├── map_marker_destination_location@3x.png
│ │ │ │ │ │ └── map_marker_destination_location.png
│ │ │ │ │ ├── MapMarkerPickupLocation.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── map_marker_pickup_location@2x.png
│ │ │ │ │ │ ├── map_marker_pickup_location@3x.png
│ │ │ │ │ │ └── map_marker_pickup_location.png
│ │ │ │ │ ├── ProgressKangaroo.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── progress_kangaroo@2x.png
│ │ │ │ │ │ ├── progress_kangaroo@3x.png
│ │ │ │ │ │ └── progress_kangaroo.png
│ │ │ │ │ ├── requesting_indicator.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── requesting_indicator@2x.png
│ │ │ │ │ │ ├── requesting_indicator@3x.png
│ │ │ │ │ │ └── requesting_indicator.png
│ │ │ │ │ ├── RideOptionPicker
│ │ │ │ │ │ ├── available_kangaroo_marker.imageset
│ │ │ │ │ │ │ ├── available_kangaroo_marker@2x.png
│ │ │ │ │ │ │ ├── available_kangaroo_marker@3x.png
│ │ │ │ │ │ │ ├── available_kangaroo_marker.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── available_wallabe_marker.imageset
│ │ │ │ │ │ │ ├── available_wallabe_marker@2x.png
│ │ │ │ │ │ │ ├── available_wallabe_marker@3x.png
│ │ │ │ │ │ │ ├── available_wallabe_marker.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── available_wallaroo_marker.imageset
│ │ │ │ │ │ │ ├── available_wallaroo_marker@2x.png
│ │ │ │ │ │ │ ├── available_wallaroo_marker@3x.png
│ │ │ │ │ │ │ ├── available_wallaroo_marker.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_kangaroo.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ ├── ride_option_kangaroo@2x.png
│ │ │ │ │ │ │ ├── ride_option_kangaroo@3x.png
│ │ │ │ │ │ │ └── ride_option_kangaroo.png
│ │ │ │ │ │ ├── ride_option_kangaroo_selected.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ ├── ride_option_kangaroo_selected@2x.png
│ │ │ │ │ │ │ ├── ride_option_kangaroo_selected@3x.png
│ │ │ │ │ │ │ └── ride_option_kangaroo_selected.png
│ │ │ │ │ │ ├── ride_option_wallabee.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ ├── ride_option_wallabee@2x.png
│ │ │ │ │ │ │ ├── ride_option_wallabee@3x.png
│ │ │ │ │ │ │ └── ride_option_wallabee.png
│ │ │ │ │ │ ├── ride_option_wallabee_selected.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ ├── ride_option_wallabee_selected@2x.png
│ │ │ │ │ │ │ ├── ride_option_wallabee_selected@3x.png
│ │ │ │ │ │ │ └── ride_option_wallabee_selected.png
│ │ │ │ │ │ ├── ride_option_wallaroo.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ ├── ride_option_wallaroo@2x.png
│ │ │ │ │ │ │ ├── ride_option_wallaroo@3x.png
│ │ │ │ │ │ │ └── ride_option_wallaroo.png
│ │ │ │ │ │ └── ride_option_wallaroo_selected.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_wallaroo_selected@2x.png
│ │ │ │ │ │ ├── ride_option_wallaroo_selected@3x.png
│ │ │ │ │ │ └── ride_option_wallaroo_selected.png
│ │ │ │ │ ├── ride_option_placeholder.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_placeholder@2x.png
│ │ │ │ │ │ ├── ride_option_placeholder@3x.png
│ │ │ │ │ │ └── ride_option_placeholder.png
│ │ │ │ │ ├── ride_option_placeholder_selected.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_wallabee_selected@2x.png
│ │ │ │ │ │ ├── ride_option_wallabee_selected@3x.png
│ │ │ │ │ │ └── ride_option_wallabee_selected.png
│ │ │ │ │ ├── SetPickupLocationLoader.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── set_pickup_location_loader@2x.png
│ │ │ │ │ │ ├── set_pickup_location_loader@3x.png
│ │ │ │ │ │ └── set_pickup_location_loader.png
│ │ │ │ │ └── success_message.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── success_message@2x.png
│ │ │ │ │ ├── success_message@3x.png
│ │ │ │ │ └── success_message.png
│ │ │ │ ├── roo-icon.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── roo-icon@2x.png
│ │ │ │ │ ├── roo-icon@3x.png
│ │ │ │ │ └── roo-icon.png
│ │ │ │ ├── rwdevcon-bg.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rwdevcon-bg.png
│ │ │ │ ├── rwdevcon-logo.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rwdevcon-logo.png
│ │ │ │ ├── rw-logo.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Razewarelogo_1024.png
│ │ │ │ └── SelectPaymentMethod
│ │ │ │ ├── card_icon.imageset
│ │ │ │ │ ├── card_icon@2x.png
│ │ │ │ │ ├── card_icon@3x.png
│ │ │ │ │ ├── card_icon.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ └── selected_icon.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── selected_icon@2x.png
│ │ │ │ ├── selected_icon@3x.png
│ │ │ │ └── selected_icon.png
│ │ │ ├── Info.plist
│ │ │ ├── RWDevConLaunchScreen.xib
│ │ │ └── ToArchive
│ │ │ ├── A. RequestRideContainerViewController.swift
│ │ │ ├── B. SelectPickupAndDropoffViewController.swift
│ │ │ ├── C. MapViewController.swift
│ │ │ ├── D. MapView.swift
│ │ │ └── Z. SwinjectStoryboard+Koober.swift
│ │ ├── KooberApp.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ ├── Koober-iOS.xcscheme
│ │ │ ├── KooberKit.xcscheme
│ │ │ ├── KooberUIKit.xcscheme
│ │ │ └── Koober.xcscheme
│ │ ├── Koober_iOS
│ │ │ ├── Info.plist
│ │ │ ├── iOSApp
│ │ │ │ ├── KooberAppDepedencyContainer.swift
│ │ │ │ ├── LaunchRootView.swift
│ │ │ │ ├── LaunchViewController.swift
│ │ │ │ ├── MainViewController.swift
│ │ │ │ ├── Onboarding
│ │ │ │ │ ├── KooberOnboardingDependencyContainer.swift
│ │ │ │ │ ├── OnboardingViewController.swift
│ │ │ │ │ ├── SignIn
│ │ │ │ │ │ ├── SignInRootView.swift
│ │ │ │ │ │ └── SignInViewController.swift
│ │ │ │ │ ├── SignUp
│ │ │ │ │ │ ├── SignUpRootView.swift
│ │ │ │ │ │ └── SignUpViewController.swift
│ │ │ │ │ └── Welcome
│ │ │ │ │ ├── WelcomeRootView.swift
│ │ │ │ │ └── WelcomeViewController.swift
│ │ │ │ └── SignedIn
│ │ │ │ ├── GettingUsersLocation
│ │ │ │ │ ├── GettingUsersLocationRootView.swift
│ │ │ │ │ └── GettingUsersLocationViewController.swift
│ │ │ │ ├── KooberSignedInDependencyContainer.swift
│ │ │ │ ├── PickMeUp
│ │ │ │ │ ├── KooberPickMeUpDependencyContainer.swift
│ │ │ │ │ ├── Map
│ │ │ │ │ │ ├── MapAnnotationView.swift
│ │ │ │ │ │ ├── Model
│ │ │ │ │ │ │ ├── MapAnnotationDiff.swift
│ │ │ │ │ │ │ ├── MapAnnotation+MapKit.swift
│ │ │ │ │ │ │ ├── MapAnnotation.swift
│ │ │ │ │ │ │ ├── MapAnnotationType.swift
│ │ │ │ │ │ │ └── MapViewModel.swift
│ │ │ │ │ │ ├── PickMeUpMapRootView.swift
│ │ │ │ │ │ └── PickMeUpMapViewController.swift
│ │ │ │ │ ├── PickMeUpRootView.swift
│ │ │ │ │ ├── PickMeUpUserInterface.swift
│ │ │ │ │ ├── PickMeUpViewController.swift
│ │ │ │ │ ├── SelectDropoffLocation
│ │ │ │ │ │ ├── DropoffLocationPickerContentRootView.swift
│ │ │ │ │ │ ├── DropoffLocationPickerContentViewController.swift
│ │ │ │ │ │ └── DropoffLocationPickerViewController.swift
│ │ │ │ │ ├── SelectRideOption
│ │ │ │ │ │ ├── Button
│ │ │ │ │ │ │ ├── RideOptionButton.swift
│ │ │ │ │ │ │ └── RideOptionSegmentButtonImageLoader.swift
│ │ │ │ │ │ ├── RideOptionPickerViewController.swift
│ │ │ │ │ │ └── RideOptionSegmentedControl.swift
│ │ │ │ │ └── SendRideRequest
│ │ │ │ │ ├── SendingRideRequestRootView.swift
│ │ │ │ │ └── SendingRideRequestViewController.swift
│ │ │ │ ├── SignedInRootView.swift
│ │ │ │ ├── SignedInViewController.swift
│ │ │ │ ├── ViewProfile
│ │ │ │ │ ├── ProfileContentRootView.swift
│ │ │ │ │ ├── ProfileContentViewController.swift
│ │ │ │ │ └── ProfileViewController.swift
│ │ │ │ └── WaitingForPickup
│ │ │ │ ├── WaitingForPickupRootView.swift
│ │ │ │ └── WaitingForPickupViewController.swift
│ │ │ └── Koober_iOS.h
│ │ ├── KooberKit
│ │ │ ├── DataLayer
│ │ │ │ ├── Model
│ │ │ │ │ ├── ErrorMessage.swift
│ │ │ │ │ ├── ErrorPresentation.swift
│ │ │ │ │ ├── FakeURL.swift
│ │ │ │ │ ├── Identifiable.swift
│ │ │ │ │ ├── KooberKitError.swift
│ │ │ │ │ ├── LoadedState.swift
│ │ │ │ │ ├── Location.swift
│ │ │ │ │ ├── NamedLocation.swift
│ │ │ │ │ ├── NewAccount.swift
│ │ │ │ │ ├── NewRideRequest.swift
│ │ │ │ │ ├── RemoteImage.swift
│ │ │ │ │ ├── RideOptionPickerRideOptions.swift
│ │ │ │ │ ├── RideOption.swift
│ │ │ │ │ ├── Secret.swift
│ │ │ │ │ ├── UserProfile.swift
│ │ │ │ │ └── UserSession.swift
│ │ │ │ └── Repositories
│ │ │ │ ├── Coding
│ │ │ │ │ └── UserSession
│ │ │ │ │ ├── Implementations
│ │ │ │ │ │ └── UserSessionPropertyListCoder.swift
│ │ │ │ │ └── UserSessionCoding.swift
│ │ │ │ ├── KooberLocationRepository.swift
│ │ │ │ ├── KooberNewRideRepository.swift
│ │ │ │ ├── KooberRideOptionRepository.swift
│ │ │ │ ├── KooberUserSessionRepository.swift
│ │ │ │ ├── Location
│ │ │ │ │ ├── Implementations
│ │ │ │ │ │ └── FakeLocator.swift
│ │ │ │ │ └── Locator.swift
│ │ │ │ ├── LocationRepository.swift
│ │ │ │ ├── NewRideRepository.swift
│ │ │ │ ├── Persistence
│ │ │ │ │ ├── RideOptionStore
│ │ │ │ │ │ ├── Implementations
│ │ │ │ │ │ │ ├── RideOptionDataStoreDiskUserPrefs.swift
│ │ │ │ │ │ │ └── RideOptionDataStoreInMemory.swift
│ │ │ │ │ │ └── RideOptionDataStore.swift
│ │ │ │ │ └── UserSessionStore
│ │ │ │ │ ├── Implementations
│ │ │ │ │ │ ├── FakeUserSessionDataStore.swift
│ │ │ │ │ │ ├── FileUserSessionDataStore.swift
│ │ │ │ │ │ └── Keychain
│ │ │ │ │ │ ├── KeychainItem.swift
│ │ │ │ │ │ ├── Keychain.swift
│ │ │ │ │ │ └── KeychainUserSessionDataStore.swift
│ │ │ │ │ └── UserSessionDataStore.swift
│ │ │ │ ├── Remote
│ │ │ │ │ ├── Auth
│ │ │ │ │ │ ├── AuthRemoteAPI.swift
│ │ │ │ │ │ └── Implementations
│ │ │ │ │ │ ├── FakeAuthRemoteAPI.swift
│ │ │ │ │ │ └── KooberCloudAuthRemoteAPI.swift
│ │ │ │ │ ├── NewRide
│ │ │ │ │ │ ├── Implementations
│ │ │ │ │ │ │ ├── FakeNewRideRemoteAPI.swift
│ │ │ │ │ │ │ └── KooberCloudNewRideRemoteAPI.swift
│ │ │ │ │ │ └── NewRideRemoteAPI.swift
│ │ │ │ │ └── RemoteUserSession.swift
│ │ │ │ ├── RideOptionRepository.swift
│ │ │ │ └── UserSessionRepository.swift
│ │ │ ├── Info.plist
│ │ │ ├── KooberKit.h
│ │ │ ├── Reusable
│ │ │ │ └── RxSwiftExtensions
│ │ │ │ └── ObservableOperators.swift
│ │ │ └── UILayer
│ │ │ ├── LaunchViewModel.swift
│ │ │ ├── MainViewModel.swift
│ │ │ ├── MainView.swift
│ │ │ ├── NotSignedInResponder.swift
│ │ │ ├── Onboard
│ │ │ │ ├── GoToSignInNavigator.swift
│ │ │ │ ├── GoToSignUpNavigator.swift
│ │ │ │ ├── OnboardingViewModel.swift
│ │ │ │ ├── OnboardingView.swift
│ │ │ │ ├── SignIn
│ │ │ │ │ └── SignInViewModel.swift
│ │ │ │ ├── SignUp
│ │ │ │ │ └── SignUpViewModel.swift
│ │ │ │ └── Welcome
│ │ │ │ └── WelcomeViewModel.swift
│ │ │ ├── Reusable
│ │ │ │ └── NavigationAction.swift
│ │ │ ├── SignedIn
│ │ │ │ ├── DeterminedPickUpLocationResponder.swift
│ │ │ │ ├── GettingUsersLocation
│ │ │ │ │ └── GettingUsersLocationViewModel.swift
│ │ │ │ ├── GoToNewRideNavigator.swift
│ │ │ │ ├── NewRideRequestAcceptedResponder.swift
│ │ │ │ ├── PickMeUp
│ │ │ │ │ ├── CancelDropoffLocationSelectionResponder.swift
│ │ │ │ │ ├── DoneWithProfileResponder.swift
│ │ │ │ │ ├── DropoffLocationDeterminedResponder.swift
│ │ │ │ │ ├── Map
│ │ │ │ │ │ └── PickMeUpMapViewModel.swift
│ │ │ │ │ ├── PickMeUpRequestProgress.swift
│ │ │ │ │ ├── PickMeUpViewModel.swift
│ │ │ │ │ ├── PickMeUpView.swift
│ │ │ │ │ ├── RideOptionDeterminedResponder.swift
│ │ │ │ │ ├── SelectDropoffLocation
│ │ │ │ │ │ └── DropoffLocationPickerViewModel.swift
│ │ │ │ │ └── SelectRideOption
│ │ │ │ │ ├── RideOptionPickerViewModel.swift
│ │ │ │ │ ├── RideOptionSegmentedControlViewModel.swift
│ │ │ │ │ ├── RideOptionSegmentsFactory.swift
│ │ │ │ │ └── RideOptionSegmentViewModel.swift
│ │ │ │ ├── SignedInViewModel.swift
│ │ │ │ ├── SignedInView.swift
│ │ │ │ ├── ViewProfile
│ │ │ │ │ └── ProfileViewModel.swift
│ │ │ │ └── WaitingForPickup
│ │ │ │ └── WaitingForPickupViewModel.swift
│ │ │ └── SignedInResponder.swift
│ │ └── KooberUIKit
│ │ ├── Info.plist
│ │ ├── KooberUIKit.h
│ │ └── Reusable
│ │ ├── ErrorMessagePresentation.swift
│ │ ├── Image Cache
│ │ │ ├── ImageCache.swift
│ │ │ └── Implementations
│ │ │ ├── ImageCacheKingfisher.swift
│ │ │ └── InBundleImageCache.swift
│ │ ├── Style
│ │ │ ├── Color.swift
│ │ │ └── UIColor+Hex.swift
│ │ └── UIKit
│ │ ├── NiblessComponents
│ │ │ ├── NiblessNavigationController.swift
│ │ │ ├── NiblessViewController.swift
│ │ │ └── NiblessView.swift
│ │ ├── ObservableUISearchController.swift
│ │ ├── UIStackViewExtensions.swift
│ │ ├── UIViewController+ErrorPresentation.swift
│ │ └── ViewControllerContainment.swift
│ └── TabBarExample
│ ├── TabBarExample
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ └── Contents.json
│ │ │ └── Contents.json
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── Info.plist
│ │ └── ViewController.swift
│ └── TabBarExample.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ └── IDEWorkspaceChecks.plist
├── 06-architecture-redux
│ └── final
│ └── KooberApp
│ ├── Cartfile
│ ├── Cartfile.resolved
│ ├── Carthage
│ │ └── Checkouts
│ │ ├── Kingfisher
│ │ │ ├── CHANGELOG.md
│ │ │ ├── codecov.yml
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── Demo
│ │ │ │ ├── Demo
│ │ │ │ │ ├── Kingfisher-Demo
│ │ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ │ ├── Base.lproj
│ │ │ │ │ │ │ ├── LaunchScreen.xib
│ │ │ │ │ │ │ └── Main.storyboard
│ │ │ │ │ │ ├── CollectionViewCell.swift
│ │ │ │ │ │ ├── Images.xcassets
│ │ │ │ │ │ │ └── AppIcon.appiconset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── loader.gif
│ │ │ │ │ │ └── ViewController.swift
│ │ │ │ │ ├── Kingfisher-macOS-Demo
│ │ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ │ └── AppIcon.appiconset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Base.lproj
│ │ │ │ │ │ │ └── Main.storyboard
│ │ │ │ │ │ ├── Cell.xib
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ └── ViewController.swift
│ │ │ │ │ ├── Kingfisher-tvOS-Demo
│ │ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ │ ├── App Icon & Top Shelf Image.brandassets
│ │ │ │ │ │ │ │ ├── App Icon - Large.imagestack
│ │ │ │ │ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ └── Middle.imagestacklayer
│ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ ├── App Icon - Small.imagestack
│ │ │ │ │ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ └── Middle.imagestacklayer
│ │ │ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ └── Top Shelf Image.imageset
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── LaunchImage.launchimage
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Base.lproj
│ │ │ │ │ │ │ └── Main.storyboard
│ │ │ │ │ │ └── Info.plist
│ │ │ │ │ ├── Kingfisher-watchOS-Demo
│ │ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ │ └── AppIcon.appiconset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Base.lproj
│ │ │ │ │ │ │ └── Interface.storyboard
│ │ │ │ │ │ └── Info.plist
│ │ │ │ │ └── Kingfisher-watchOS-Demo Extension
│ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ └── README__ignoredByTemplate__
│ │ │ │ │ ├── ExtensionDelegate.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── InterfaceController.swift
│ │ │ │ └── Kingfisher-Demo.xcodeproj
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace
│ │ │ │ └── contents.xcworkspacedata
│ │ │ ├── docs
│ │ │ │ ├── badge.svg
│ │ │ │ ├── Classes
│ │ │ │ │ ├── AnimatedImageView
│ │ │ │ │ │ └── RepeatCount.html
│ │ │ │ │ ├── AnimatedImageView.html
│ │ │ │ │ ├── ImageCache
│ │ │ │ │ │ └── CacheCheckResult.html
│ │ │ │ │ ├── ImageCache.html
│ │ │ │ │ ├── ImageDownloader.html
│ │ │ │ │ ├── ImagePrefetcher.html
│ │ │ │ │ ├── Kingfisher.html
│ │ │ │ │ ├── KingfisherManager.html
│ │ │ │ │ └── RetrieveImageTask.html
│ │ │ │ ├── Classes.html
│ │ │ │ ├── css
│ │ │ │ │ ├── highlight.css
│ │ │ │ │ └── jazzy.css
│ │ │ │ ├── docsets
│ │ │ │ │ ├── Kingfisher.docset
│ │ │ │ │ │ └── Contents
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ └── Resources
│ │ │ │ │ │ ├── docSet.dsidx
│ │ │ │ │ │ └── Documents
│ │ │ │ │ │ ├── Classes
│ │ │ │ │ │ │ ├── AnimatedImageView
│ │ │ │ │ │ │ │ └── RepeatCount.html
│ │ │ │ │ │ │ ├── AnimatedImageView.html
│ │ │ │ │ │ │ ├── ImageCache
│ │ │ │ │ │ │ │ └── CacheCheckResult.html
│ │ │ │ │ │ │ ├── ImageCache.html
│ │ │ │ │ │ │ ├── ImageDownloader.html
│ │ │ │ │ │ │ ├── ImagePrefetcher.html
│ │ │ │ │ │ │ ├── Kingfisher.html
│ │ │ │ │ │ │ ├── KingfisherManager.html
│ │ │ │ │ │ │ └── RetrieveImageTask.html
│ │ │ │ │ │ ├── Classes.html
│ │ │ │ │ │ ├── css
│ │ │ │ │ │ │ ├── highlight.css
│ │ │ │ │ │ │ └── jazzy.css
│ │ │ │ │ │ ├── Enums
│ │ │ │ │ │ │ ├── CacheType.html
│ │ │ │ │ │ │ ├── ContentMode.html
│ │ │ │ │ │ │ ├── ImageFormat.html
│ │ │ │ │ │ │ ├── ImageProcessItem.html
│ │ │ │ │ │ │ ├── ImageTransition.html
│ │ │ │ │ │ │ ├── IndicatorType.html
│ │ │ │ │ │ │ ├── KingfisherError.html
│ │ │ │ │ │ │ └── KingfisherOptionsInfoItem.html
│ │ │ │ │ │ ├── Enums.html
│ │ │ │ │ │ ├── Extensions
│ │ │ │ │ │ │ ├── CGSize.html
│ │ │ │ │ │ │ ├── Collection.html
│ │ │ │ │ │ │ ├── Data.html
│ │ │ │ │ │ │ ├── Notification
│ │ │ │ │ │ │ │ └── Name.html
│ │ │ │ │ │ │ ├── Notification.html
│ │ │ │ │ │ │ └── URL.html
│ │ │ │ │ │ ├── Extensions.html
│ │ │ │ │ │ ├── Functions.html
│ │ │ │ │ │ ├── Global Variables.html
│ │ │ │ │ │ ├── img
│ │ │ │ │ │ │ ├── carat.png
│ │ │ │ │ │ │ ├── dash.png
│ │ │ │ │ │ │ └── gh.png
│ │ │ │ │ │ ├── index.html
│ │ │ │ │ │ ├── js
│ │ │ │ │ │ │ ├── jazzy.js
│ │ │ │ │ │ │ └── jquery.min.js
│ │ │ │ │ │ ├── Protocols
│ │ │ │ │ │ │ ├── AnimatedImageViewDelegate.html
│ │ │ │ │ │ │ ├── AuthenticationChallengeResponsable.html
│ │ │ │ │ │ │ ├── CacheSerializer.html
│ │ │ │ │ │ │ ├── CIImageProcessor.html
│ │ │ │ │ │ │ ├── ImageDownloaderDelegate.html
│ │ │ │ │ │ │ ├── ImageDownloadRequestModifier.html
│ │ │ │ │ │ │ ├── ImageModifier.html
│ │ │ │ │ │ │ ├── ImageProcessor.html
│ │ │ │ │ │ │ ├── Indicator.html
│ │ │ │ │ │ │ ├── KingfisherCompatible.html
│ │ │ │ │ │ │ ├── Placeholder.html
│ │ │ │ │ │ │ └── Resource.html
│ │ │ │ │ │ ├── Protocols.html
│ │ │ │ │ │ ├── search.json
│ │ │ │ │ │ ├── Structs
│ │ │ │ │ │ │ ├── AlignmentRectInsetsImageModifier.html
│ │ │ │ │ │ │ ├── AnyImageModifier.html
│ │ │ │ │ │ │ ├── AnyModifier.html
│ │ │ │ │ │ │ ├── BlackWhiteProcessor.html
│ │ │ │ │ │ │ ├── BlendImageProcessor.html
│ │ │ │ │ │ │ ├── BlurImageProcessor.html
│ │ │ │ │ │ │ ├── CGSizeProxy.html
│ │ │ │ │ │ │ ├── ColorControlsProcessor.html
│ │ │ │ │ │ │ ├── CompositingImageProcessor.html
│ │ │ │ │ │ │ ├── CroppingImageProcessor.html
│ │ │ │ │ │ │ ├── DataProxy.html
│ │ │ │ │ │ │ ├── DefaultCacheSerializer.html
│ │ │ │ │ │ │ ├── DefaultImageModifier.html
│ │ │ │ │ │ │ ├── DefaultImageProcessor.html
│ │ │ │ │ │ │ ├── Filter.html
│ │ │ │ │ │ │ ├── FlipsForRightToLeftLayoutDirectionImageModifier.html
│ │ │ │ │ │ │ ├── FormatIndicatedCacheSerializer.html
│ │ │ │ │ │ │ ├── ImageResource.html
│ │ │ │ │ │ │ ├── OverlayImageProcessor.html
│ │ │ │ │ │ │ ├── RectCorner.html
│ │ │ │ │ │ │ ├── RenderingModeImageModifier.html
│ │ │ │ │ │ │ ├── ResizingImageProcessor.html
│ │ │ │ │ │ │ ├── RetrieveImageDownloadTask.html
│ │ │ │ │ │ │ ├── RoundCornerImageProcessor.html
│ │ │ │ │ │ │ └── TintImageProcessor.html
│ │ │ │ │ │ ├── Structs.html
│ │ │ │ │ │ └── Typealiases.html
│ │ │ │ │ ├── Kingfisher.tgz
│ │ │ │ │ └── Kingfisher.xml
│ │ │ │ ├── Enums
│ │ │ │ │ ├── CacheType.html
│ │ │ │ │ ├── ContentMode.html
│ │ │ │ │ ├── ImageFormat.html
│ │ │ │ │ ├── ImageProcessItem.html
│ │ │ │ │ ├── ImageTransition.html
│ │ │ │ │ ├── IndicatorType.html
│ │ │ │ │ ├── KingfisherError.html
│ │ │ │ │ └── KingfisherOptionsInfoItem.html
│ │ │ │ ├── Enums.html
│ │ │ │ ├── Extensions
│ │ │ │ │ ├── CGSize.html
│ │ │ │ │ ├── Collection.html
│ │ │ │ │ ├── Data.html
│ │ │ │ │ ├── Notification
│ │ │ │ │ │ └── Name.html
│ │ │ │ │ ├── Notification.html
│ │ │ │ │ └── URL.html
│ │ │ │ ├── Extensions.html
│ │ │ │ ├── Functions.html
│ │ │ │ ├── Global Variables.html
│ │ │ │ ├── img
│ │ │ │ │ ├── carat.png
│ │ │ │ │ ├── dash.png
│ │ │ │ │ └── gh.png
│ │ │ │ ├── index.html
│ │ │ │ ├── js
│ │ │ │ │ ├── jazzy.js
│ │ │ │ │ └── jquery.min.js
│ │ │ │ ├── Protocols
│ │ │ │ │ ├── AnimatedImageViewDelegate.html
│ │ │ │ │ ├── AuthenticationChallengeResponsable.html
│ │ │ │ │ ├── CacheSerializer.html
│ │ │ │ │ ├── CIImageProcessor.html
│ │ │ │ │ ├── ImageDownloaderDelegate.html
│ │ │ │ │ ├── ImageDownloadRequestModifier.html
│ │ │ │ │ ├── ImageModifier.html
│ │ │ │ │ ├── ImageProcessor.html
│ │ │ │ │ ├── Indicator.html
│ │ │ │ │ ├── KingfisherCompatible.html
│ │ │ │ │ ├── Placeholder.html
│ │ │ │ │ └── Resource.html
│ │ │ │ ├── Protocols.html
│ │ │ │ ├── search.json
│ │ │ │ ├── Structs
│ │ │ │ │ ├── AlignmentRectInsetsImageModifier.html
│ │ │ │ │ ├── AnyImageModifier.html
│ │ │ │ │ ├── AnyModifier.html
│ │ │ │ │ ├── BlackWhiteProcessor.html
│ │ │ │ │ ├── BlendImageProcessor.html
│ │ │ │ │ ├── BlurImageProcessor.html
│ │ │ │ │ ├── CGSizeProxy.html
│ │ │ │ │ ├── ColorControlsProcessor.html
│ │ │ │ │ ├── CompositingImageProcessor.html
│ │ │ │ │ ├── CroppingImageProcessor.html
│ │ │ │ │ ├── DataProxy.html
│ │ │ │ │ ├── DefaultCacheSerializer.html
│ │ │ │ │ ├── DefaultImageModifier.html
│ │ │ │ │ ├── DefaultImageProcessor.html
│ │ │ │ │ ├── Filter.html
│ │ │ │ │ ├── FlipsForRightToLeftLayoutDirectionImageModifier.html
│ │ │ │ │ ├── FormatIndicatedCacheSerializer.html
│ │ │ │ │ ├── ImageResource.html
│ │ │ │ │ ├── OverlayImageProcessor.html
│ │ │ │ │ ├── RectCorner.html
│ │ │ │ │ ├── RenderingModeImageModifier.html
│ │ │ │ │ ├── ResizingImageProcessor.html
│ │ │ │ │ ├── RetrieveImageDownloadTask.html
│ │ │ │ │ ├── RoundCornerImageProcessor.html
│ │ │ │ │ └── TintImageProcessor.html
│ │ │ │ ├── Structs.html
│ │ │ │ ├── Typealiases.html
│ │ │ │ └── undocumented.json
│ │ │ ├── fastlane
│ │ │ │ ├── actions
│ │ │ │ │ ├── extract_current_change_log.rb
│ │ │ │ │ ├── git_commit_all.rb
│ │ │ │ │ ├── sync_build_number_to_git.rb
│ │ │ │ │ └── update_change_log.rb
│ │ │ │ └── Fastfile
│ │ │ ├── Gemfile
│ │ │ ├── Gemfile.lock
│ │ │ ├── images
│ │ │ │ ├── kingfisher-10.jpg
│ │ │ │ ├── kingfisher-1.jpg
│ │ │ │ ├── kingfisher-2.jpg
│ │ │ │ ├── kingfisher-3.jpg
│ │ │ │ ├── kingfisher-4.jpg
│ │ │ │ ├── kingfisher-5.jpg
│ │ │ │ ├── kingfisher-6.jpg
│ │ │ │ ├── kingfisher-7.jpg
│ │ │ │ ├── kingfisher-8.jpg
│ │ │ │ ├── kingfisher-9.jpg
│ │ │ │ └── logo.png
│ │ │ ├── Kingfisher.podspec
│ │ │ ├── Kingfisher.xcodeproj
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ ├── xcbaselines
│ │ │ │ │ └── D1ED2D3E1AD2D09F00CFC3EB.xcbaseline
│ │ │ │ │ ├── 74237B0B-7981-4A24-B6C4-95F4A5E7727F.plist
│ │ │ │ │ └── Info.plist
│ │ │ │ └── xcschemes
│ │ │ │ ├── Kingfisher-macOS.xcscheme
│ │ │ │ ├── Kingfisher-tvOS.xcscheme
│ │ │ │ ├── Kingfisher-watchOS.xcscheme
│ │ │ │ └── Kingfisher.xcscheme
│ │ │ ├── Kingfisher.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ ├── Kingfisher.xcscmblueprint
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ ├── LICENSE
│ │ │ ├── Package.swift
│ │ │ ├── Podfile
│ │ │ ├── Podfile.lock
│ │ │ ├── Pods
│ │ │ │ ├── Headers
│ │ │ │ │ ├── Private
│ │ │ │ │ │ └── Nocilla
│ │ │ │ │ │ ├── asihttprequeststub.h
│ │ │ │ │ │ ├── LSASIHTTPRequestAdapter.h
│ │ │ │ │ │ ├── LSASIHTTPRequestHook.h
│ │ │ │ │ │ ├── LSDataMatcher.h
│ │ │ │ │ │ ├── LSHTTPBody.h
│ │ │ │ │ │ ├── LSHTTPClientHook.h
│ │ │ │ │ │ ├── LSHTTPRequestDiff.h
│ │ │ │ │ │ ├── LSHTTPRequestDSLRepresentation.h
│ │ │ │ │ │ ├── LSHTTPRequest.h
│ │ │ │ │ │ ├── LSHTTPResponse.h
│ │ │ │ │ │ ├── LSHTTPStubURLProtocol.h
│ │ │ │ │ │ ├── LSMatcheable.h
│ │ │ │ │ │ ├── LSMatcher.h
│ │ │ │ │ │ ├── LSNocilla.h
│ │ │ │ │ │ ├── LSNSURLHook.h
│ │ │ │ │ │ ├── LSNSURLSessionHook.h
│ │ │ │ │ │ ├── LSRegexMatcher.h
│ │ │ │ │ │ ├── LSStringMatcher.h
│ │ │ │ │ │ ├── LSStubRequestDSL.h
│ │ │ │ │ │ ├── LSStubRequest.h
│ │ │ │ │ │ ├── LSStubResponseDSL.h
│ │ │ │ │ │ ├── LSStubResponse.h
│ │ │ │ │ │ ├── Nocilla.h
│ │ │ │ │ │ ├── NSData+Matcheable.h
│ │ │ │ │ │ ├── NSData+Nocilla.h
│ │ │ │ │ │ ├── NSRegularExpression+Matcheable.h
│ │ │ │ │ │ ├── NSString+Matcheable.h
│ │ │ │ │ │ ├── NSString+Nocilla.h
│ │ │ │ │ │ ├── NSURLRequest+DSL.h
│ │ │ │ │ │ └── NSURLRequest+LSHTTPRequest.h
│ │ │ │ │ └── Public
│ │ │ │ │ └── Nocilla
│ │ │ │ │ ├── LSHTTPBody.h
│ │ │ │ │ ├── LSMatcheable.h
│ │ │ │ │ ├── LSNocilla.h
│ │ │ │ │ ├── LSStubRequestDSL.h
│ │ │ │ │ ├── LSStubResponseDSL.h
│ │ │ │ │ ├── Nocilla.h
│ │ │ │ │ ├── NSData+Matcheable.h
│ │ │ │ │ ├── NSData+Nocilla.h
│ │ │ │ │ ├── NSRegularExpression+Matcheable.h
│ │ │ │ │ ├── NSString+Matcheable.h
│ │ │ │ │ └── NSString+Nocilla.h
│ │ │ │ ├── Local Podspecs
│ │ │ │ │ └── Nocilla.podspec.json
│ │ │ │ ├── Manifest.lock
│ │ │ │ ├── Nocilla
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── Nocilla
│ │ │ │ │ │ ├── Categories
│ │ │ │ │ │ │ ├── NSData+Nocilla.h
│ │ │ │ │ │ │ ├── NSData+Nocilla.m
│ │ │ │ │ │ │ ├── NSString+Nocilla.h
│ │ │ │ │ │ │ └── NSString+Nocilla.m
│ │ │ │ │ │ ├── Diff
│ │ │ │ │ │ │ ├── LSHTTPRequestDiff.h
│ │ │ │ │ │ │ └── LSHTTPRequestDiff.m
│ │ │ │ │ │ ├── DSL
│ │ │ │ │ │ │ ├── LSHTTPRequestDSLRepresentation.h
│ │ │ │ │ │ │ ├── LSHTTPRequestDSLRepresentation.m
│ │ │ │ │ │ │ ├── LSStubRequestDSL.h
│ │ │ │ │ │ │ ├── LSStubRequestDSL.m
│ │ │ │ │ │ │ ├── LSStubResponseDSL.h
│ │ │ │ │ │ │ └── LSStubResponseDSL.m
│ │ │ │ │ │ ├── Hooks
│ │ │ │ │ │ │ ├── ASIHTTPRequest
│ │ │ │ │ │ │ │ ├── ASIHTTPRequestStub.h
│ │ │ │ │ │ │ │ ├── ASIHTTPRequestStub.m
│ │ │ │ │ │ │ │ ├── LSASIHTTPRequestAdapter.h
│ │ │ │ │ │ │ │ ├── LSASIHTTPRequestAdapter.m
│ │ │ │ │ │ │ │ ├── LSASIHTTPRequestHook.h
│ │ │ │ │ │ │ │ └── LSASIHTTPRequestHook.m
│ │ │ │ │ │ │ ├── LSHTTPClientHook.h
│ │ │ │ │ │ │ ├── LSHTTPClientHook.m
│ │ │ │ │ │ │ ├── NSURLRequest
│ │ │ │ │ │ │ │ ├── LSHTTPStubURLProtocol.h
│ │ │ │ │ │ │ │ ├── LSHTTPStubURLProtocol.m
│ │ │ │ │ │ │ │ ├── LSNSURLHook.h
│ │ │ │ │ │ │ │ ├── LSNSURLHook.m
│ │ │ │ │ │ │ │ ├── NSURLRequest+DSL.h
│ │ │ │ │ │ │ │ ├── NSURLRequest+DSL.m
│ │ │ │ │ │ │ │ ├── NSURLRequest+LSHTTPRequest.h
│ │ │ │ │ │ │ │ └── NSURLRequest+LSHTTPRequest.m
│ │ │ │ │ │ │ └── NSURLSession
│ │ │ │ │ │ │ ├── LSNSURLSessionHook.h
│ │ │ │ │ │ │ └── LSNSURLSessionHook.m
│ │ │ │ │ │ ├── LSNocilla.h
│ │ │ │ │ │ ├── LSNocilla.m
│ │ │ │ │ │ ├── Matchers
│ │ │ │ │ │ │ ├── LSDataMatcher.h
│ │ │ │ │ │ │ ├── LSDataMatcher.m
│ │ │ │ │ │ │ ├── LSMatcheable.h
│ │ │ │ │ │ │ ├── LSMatcher.h
│ │ │ │ │ │ │ ├── LSMatcher.m
│ │ │ │ │ │ │ ├── LSRegexMatcher.h
│ │ │ │ │ │ │ ├── LSRegexMatcher.m
│ │ │ │ │ │ │ ├── LSStringMatcher.h
│ │ │ │ │ │ │ ├── LSStringMatcher.m
│ │ │ │ │ │ │ ├── NSData+Matcheable.h
│ │ │ │ │ │ │ ├── NSData+Matcheable.m
│ │ │ │ │ │ │ ├── NSRegularExpression+Matcheable.h
│ │ │ │ │ │ │ ├── NSRegularExpression+Matcheable.m
│ │ │ │ │ │ │ ├── NSString+Matcheable.h
│ │ │ │ │ │ │ └── NSString+Matcheable.m
│ │ │ │ │ │ ├── Model
│ │ │ │ │ │ │ ├── LSHTTPBody.h
│ │ │ │ │ │ │ ├── LSHTTPRequest.h
│ │ │ │ │ │ │ └── LSHTTPResponse.h
│ │ │ │ │ │ ├── Nocilla.h
│ │ │ │ │ │ └── Stubs
│ │ │ │ │ │ ├── LSStubRequest.h
│ │ │ │ │ │ ├── LSStubRequest.m
│ │ │ │ │ │ ├── LSStubResponse.h
│ │ │ │ │ │ └── LSStubResponse.m
│ │ │ │ │ └── README.md
│ │ │ │ ├── Pods.xcodeproj
│ │ │ │ │ └── project.pbxproj
│ │ │ │ └── Target Support Files
│ │ │ │ ├── Nocilla-iOS
│ │ │ │ │ ├── Nocilla-iOS-dummy.m
│ │ │ │ │ ├── Nocilla-iOS-prefix.pch
│ │ │ │ │ └── Nocilla-iOS.xcconfig
│ │ │ │ ├── Nocilla-macOS
│ │ │ │ │ ├── Nocilla-macOS-dummy.m
│ │ │ │ │ ├── Nocilla-macOS-prefix.pch
│ │ │ │ │ └── Nocilla-macOS.xcconfig
│ │ │ │ ├── Nocilla-tvOS
│ │ │ │ │ ├── Nocilla-tvOS-dummy.m
│ │ │ │ │ ├── Nocilla-tvOS-prefix.pch
│ │ │ │ │ └── Nocilla-tvOS.xcconfig
│ │ │ │ ├── Pods-KingfisherTests
│ │ │ │ │ ├── Pods-KingfisherTests-acknowledgements.markdown
│ │ │ │ │ ├── Pods-KingfisherTests-acknowledgements.plist
│ │ │ │ │ ├── Pods-KingfisherTests.debug.xcconfig
│ │ │ │ │ ├── Pods-KingfisherTests-dummy.m
│ │ │ │ │ ├── Pods-KingfisherTests-frameworks.sh
│ │ │ │ │ ├── Pods-KingfisherTests.release.xcconfig
│ │ │ │ │ └── Pods-KingfisherTests-resources.sh
│ │ │ │ ├── Pods-KingfisherTests-macOS
│ │ │ │ │ ├── Pods-KingfisherTests-macOS-acknowledgements.markdown
│ │ │ │ │ ├── Pods-KingfisherTests-macOS-acknowledgements.plist
│ │ │ │ │ ├── Pods-KingfisherTests-macOS.debug.xcconfig
│ │ │ │ │ ├── Pods-KingfisherTests-macOS-dummy.m
│ │ │ │ │ ├── Pods-KingfisherTests-macOS-frameworks.sh
│ │ │ │ │ ├── Pods-KingfisherTests-macOS.release.xcconfig
│ │ │ │ │ └── Pods-KingfisherTests-macOS-resources.sh
│ │ │ │ └── Pods-KingfisherTests-tvOS
│ │ │ │ ├── Pods-KingfisherTests-tvOS-acknowledgements.markdown
│ │ │ │ ├── Pods-KingfisherTests-tvOS-acknowledgements.plist
│ │ │ │ ├── Pods-KingfisherTests-tvOS.debug.xcconfig
│ │ │ │ ├── Pods-KingfisherTests-tvOS-dummy.m
│ │ │ │ ├── Pods-KingfisherTests-tvOS-frameworks.sh
│ │ │ │ ├── Pods-KingfisherTests-tvOS.release.xcconfig
│ │ │ │ └── Pods-KingfisherTests-tvOS-resources.sh
│ │ │ ├── README.md
│ │ │ ├── setup.sh
│ │ │ ├── Sources
│ │ │ │ ├── AnimatedImageView.swift
│ │ │ │ ├── Box.swift
│ │ │ │ ├── CacheSerializer.swift
│ │ │ │ ├── Filter.swift
│ │ │ │ ├── FormatIndicatedCacheSerializer.swift
│ │ │ │ ├── ImageCache.swift
│ │ │ │ ├── ImageDownloader.swift
│ │ │ │ ├── ImageModifier.swift
│ │ │ │ ├── ImagePrefetcher.swift
│ │ │ │ ├── ImageProcessor.swift
│ │ │ │ ├── Image.swift
│ │ │ │ ├── ImageTransition.swift
│ │ │ │ ├── ImageView+Kingfisher.swift
│ │ │ │ ├── Indicator.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Kingfisher.h
│ │ │ │ ├── KingfisherManager.swift
│ │ │ │ ├── KingfisherOptionsInfo.swift
│ │ │ │ ├── Kingfisher.swift
│ │ │ │ ├── NSButton+Kingfisher.swift
│ │ │ │ ├── Placeholder.swift
│ │ │ │ ├── RequestModifier.swift
│ │ │ │ ├── Resource.swift
│ │ │ │ ├── String+MD5.swift
│ │ │ │ ├── ThreadHelper.swift
│ │ │ │ ├── UIButton+Kingfisher.swift
│ │ │ │ └── WKInterfaceImage+Kingfisher.swift
│ │ │ └── Tests
│ │ │ ├── KingfisherTests
│ │ │ │ ├── dancing-banana.gif
│ │ │ │ ├── ImageCacheTests.swift
│ │ │ │ ├── ImageDownloaderTests.swift
│ │ │ │ ├── ImageExtensionTests.swift
│ │ │ │ ├── ImageModifierTests.swift
│ │ │ │ ├── ImagePrefetcherTests.swift
│ │ │ │ ├── ImageProcessorTests.swift
│ │ │ │ ├── ImageViewExtensionTests.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── KingfisherManagerTests.swift
│ │ │ │ ├── KingfisherOptionsInfoTests.swift
│ │ │ │ ├── KingfisherTestHelper.swift
│ │ │ │ ├── KingfisherTests-Bridging-Header.h
│ │ │ │ ├── NSButtonExtensionTests.swift
│ │ │ │ ├── single-frame.gif
│ │ │ │ ├── StringExtensionTests.swift
│ │ │ │ └── UIButtonExtensionTests.swift
│ │ │ ├── KingfisherTests-macOS
│ │ │ │ └── Info.plist
│ │ │ └── KingfisherTests-tvOS
│ │ │ └── Info.plist
│ │ ├── PromiseKit
│ │ │ ├── docker-compose.yml
│ │ │ ├── Documentation
│ │ │ │ ├── Appendix.md
│ │ │ │ ├── CommonPatterns.md
│ │ │ │ ├── Examples
│ │ │ │ │ ├── ImageCache.md
│ │ │ │ │ └── URLSession+BadResponseErrors.swift
│ │ │ │ ├── FAQ.md
│ │ │ │ ├── GettingStarted.md
│ │ │ │ ├── Installation.md
│ │ │ │ ├── ObjectiveC.md
│ │ │ │ ├── README.md
│ │ │ │ └── Troubleshooting.md
│ │ │ ├── Extensions
│ │ │ │ ├── Accounts
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKAccounts.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKAccounts.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── ACAccountStore+AnyPromise.h
│ │ │ │ │ │ ├── ACAccountStore+AnyPromise.m
│ │ │ │ │ │ └── ACAccountStore+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestAccounts.swift
│ │ │ │ ├── AddressBook
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKAddressBook.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKAddressBook.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── ABAddressBookRequestAccess+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestAddressBook.swift
│ │ │ │ ├── Alamofire
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.private
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ ├── PMKAlamofire.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKAlamofire.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── Alamofire+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestAlamofire.swift
│ │ │ │ ├── AssetsLibrary
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKAssetsLibrary.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKAssetsLibrary.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── ALAssetsLibrary+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── app.swift
│ │ │ │ │ ├── Default-568h@2x.png
│ │ │ │ │ ├── Entitlements.plist
│ │ │ │ │ └── TestUIImagePickerController.swift
│ │ │ │ ├── AVFoundation
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKAVFoundation.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKAVFoundation.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── AVAudioSession+AnyPromise.h
│ │ │ │ │ │ ├── AVAudioSession+AnyPromise.m
│ │ │ │ │ │ └── AVAudioSession+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── TestAVFoundation.m
│ │ │ │ │ └── TestAVFoundation.swift
│ │ │ │ ├── Bolts
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKBolts.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKBolts.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── BFTask+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestBolts.swift
│ │ │ │ ├── CloudKit
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ ├── PMKCloudKit.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKCloudKit.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── CKContainer+AnyPromise.h
│ │ │ │ │ │ ├── CKContainer+AnyPromise.m
│ │ │ │ │ │ ├── CKContainer+Promise.swift
│ │ │ │ │ │ ├── CKDatabase+AnyPromise.h
│ │ │ │ │ │ ├── CKDatabase+AnyPromise.m
│ │ │ │ │ │ ├── CKDatabase+Promise.swift
│ │ │ │ │ │ └── PMKCloudKit.h
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── infrastructure.h
│ │ │ │ │ ├── infrastructure.m
│ │ │ │ │ └── TestCloudKit.swift
│ │ │ │ ├── CoreBluetooth
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKCoreBluetooth.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKCoreBluetooth.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── CBCentralManager+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── CBTests.swift
│ │ │ │ ├── CoreLocation
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKCoreLocation.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKCoreLocation.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── CLGeocoder+AnyPromise.h
│ │ │ │ │ │ ├── CLGeocoder+AnyPromise.m
│ │ │ │ │ │ ├── CLGeocoder+Promise.swift
│ │ │ │ │ │ ├── CLLocationManager+AnyPromise.h
│ │ │ │ │ │ ├── CLLocationManager+AnyPromise.m
│ │ │ │ │ │ ├── CLLocationManager+Promise.swift
│ │ │ │ │ │ └── PMKCoreLocation.h
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── CLGeocoderTests.swift
│ │ │ │ │ ├── CLLocationManagerTests.swift
│ │ │ │ │ └── Entitlements.plist
│ │ │ │ ├── EventKit
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKEventKit.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKEventKit.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── EKEventStore+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── Entitlements.plist
│ │ │ │ │ └── TestEventKit.swift
│ │ │ │ ├── Foundation
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.private
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ ├── PMKFoundation.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKFoundation.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── afterlife.swift
│ │ │ │ │ │ ├── NSNotificationCenter+AnyPromise.h
│ │ │ │ │ │ ├── NSNotificationCenter+AnyPromise.m
│ │ │ │ │ │ ├── NSNotificationCenter+Promise.swift
│ │ │ │ │ │ ├── NSObject+Promise.swift
│ │ │ │ │ │ ├── NSTask+AnyPromise.h
│ │ │ │ │ │ ├── NSTask+AnyPromise.m
│ │ │ │ │ │ ├── NSURLSession+AnyPromise.h
│ │ │ │ │ │ ├── NSURLSession+AnyPromise.m
│ │ │ │ │ │ ├── NSURLSession+Promise.swift
│ │ │ │ │ │ ├── PMKFoundation.h
│ │ │ │ │ │ └── Process+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── TestNSNotificationCenter.swift
│ │ │ │ │ ├── TestNSObject.swift
│ │ │ │ │ ├── TestNSTask.swift
│ │ │ │ │ ├── TestNSURLSession.m
│ │ │ │ │ └── TestNSURLSession.swift
│ │ │ │ ├── MapKit
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKMapKit.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKMapKit.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── MKDirections+AnyPromise.h
│ │ │ │ │ │ ├── MKDirections+AnyPromise.m
│ │ │ │ │ │ ├── MKDirections+Promise.swift
│ │ │ │ │ │ ├── MKMapSnapshotter+AnyPromise.h
│ │ │ │ │ │ ├── MKMapSnapshotter+AnyPromise.m
│ │ │ │ │ │ ├── MKMapSnapshotter+Promise.swift
│ │ │ │ │ │ └── PMKMapKit.h
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestMapKit.swift
│ │ │ │ ├── MessagesUI
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKMessagesUI.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKMessagesUI.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── MFMailComposeViewController+Promise.swift
│ │ │ │ │ │ └── MFMessageComposeViewController+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestMessageUI.swift
│ │ │ │ ├── OMGHTTPURLRQ
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.private
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKOMGHTTPURLRQ.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKOMGHTTPURLRQ.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── NSURLSession+OMG+AnyPromise.m
│ │ │ │ │ │ ├── NSURLSession+OMG+Promise.swift
│ │ │ │ │ │ └── PMKOMGHTTPURLRQ.h
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── TestNSURLSession.m
│ │ │ │ │ └── TestNSURLSession.swift
│ │ │ │ ├── Photos
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKPhotos.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKPhotos.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ └── PHPhotoLibrary+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── PHPhototLibraryTests.swift
│ │ │ │ ├── QuartzCore
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKQCTests
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ └── PMKQCTests.swift
│ │ │ │ │ ├── PMKQuartzCore.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKQuartzCore.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── CALayer+AnyPromise.h
│ │ │ │ │ │ ├── CALayer+AnyPromise.m
│ │ │ │ │ │ └── PMKQuartzCore.h
│ │ │ │ │ └── Tests
│ │ │ │ │ └── TestQuartzCore.m
│ │ │ │ ├── Social
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKSocial.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKSocial.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── PMKSocial.h
│ │ │ │ │ │ ├── SLComposeViewController+Promise.swift
│ │ │ │ │ │ ├── SLRequest+AnyPromise.h
│ │ │ │ │ │ ├── SLRequest+AnyPromise.m
│ │ │ │ │ │ └── SLRequest+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── TestSLComposeViewController.swift
│ │ │ │ │ ├── TestSocial.m
│ │ │ │ │ └── TestSocial.swift
│ │ │ │ ├── StoreKit
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKStoreKit.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKStoreKit.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── PMKStoreKit.h
│ │ │ │ │ │ ├── SKPayment+Promise.swift
│ │ │ │ │ │ ├── SKPaymentQueue+Promise.swift
│ │ │ │ │ │ ├── SKProductsRequest+Promise.swift
│ │ │ │ │ │ ├── SKReceiptRefreshRequest+Promise.swift
│ │ │ │ │ │ ├── SKRequest+AnyPromise.h
│ │ │ │ │ │ └── SKRequest+AnyPromise.m
│ │ │ │ │ └── Tests
│ │ │ │ │ ├── TestStoreKit.m
│ │ │ │ │ └── TestStoreKit.swift
│ │ │ │ ├── SystemConfiguration
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKSystemConfiguration.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKSystemConfiguration.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── PMKSystemConfiguration.h
│ │ │ │ │ │ ├── SCNetworkReachability+AnyPromise.h
│ │ │ │ │ │ ├── SCNetworkReachability+AnyPromise.m
│ │ │ │ │ │ └── SCNetworkReachability+Promise.swift
│ │ │ │ │ └── Tests
│ │ │ │ │ └── SCTests.swift
│ │ │ │ ├── UIKit
│ │ │ │ │ ├── Cartfile
│ │ │ │ │ ├── Cartfile.resolved
│ │ │ │ │ ├── Carthage.xcconfig
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── PMKUIKit.xcodeproj
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── PMKUIKit.xcscheme
│ │ │ │ │ ├── README.markdown
│ │ │ │ │ ├── Sources
│ │ │ │ │ │ ├── PMKUIKit.h
│ │ │ │ │ │ ├── UIImagePickerController+Promise.swift
│ │ │ │ │ │ ├── UIView+AnyPromise.h
│ │ │ │ │ │ ├── UIView+AnyPromise.m
│ │ │ │ │ │ ├── UIViewController+AnyPromise.h
│ │ │ │ │ │ ├── UIViewController+AnyPromise.m
│ │ │ │ │ │ ├── UIView+Promise.swift
│ │ │ │ │ │ └── UIViewPropertyAnimator+Promise.swift
│ │ │ │ │ ├── Tests
│ │ │ │ │ │ ├── infrastructure.swift
│ │ │ │ │ │ ├── TestUIImagePickerController.swift
│ │ │ │ │ │ ├── TestUIViewController.m
│ │ │ │ │ │ └── TestUIView.swift
│ │ │ │ │ └── UITests
│ │ │ │ │ ├── app.swift
│ │ │ │ │ ├── Default-568h@2x.png
│ │ │ │ │ ├── Entitlements.plist
│ │ │ │ │ └── TestUIImagePickerController.swift
│ │ │ │ └── WatchConnectivity
│ │ │ │ ├── Cartfile
│ │ │ │ ├── Cartfile.resolved
│ │ │ │ ├── Carthage.xcconfig
│ │ │ │ ├── Info.plist
│ │ │ │ ├── PMKWatchConnectivity.xcodeproj
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ ├── project.xcworkspace
│ │ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ │ └── xcshareddata
│ │ │ │ │ └── xcschemes
│ │ │ │ │ └── PMKWatchConnectivity.xcscheme
│ │ │ │ ├── README.markdown
│ │ │ │ ├── Sources
│ │ │ │ │ └── WCSession+Promise.swift
│ │ │ │ └── Tests
│ │ │ │ └── TestWatchConnectivity.swift
│ │ │ ├── LICENSE
│ │ │ ├── Package.swift
│ │ │ ├── PromiseKit.playground
│ │ │ │ ├── Contents.swift
│ │ │ │ ├── contents.xcplayground
│ │ │ │ └── section-1.swift
│ │ │ ├── PromiseKit.xcodeproj
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata
│ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ └── xcshareddata
│ │ │ │ └── xcschemes
│ │ │ │ └── PromiseKit.xcscheme
│ │ │ ├── README.md
│ │ │ ├── Sources
│ │ │ │ ├── after.m
│ │ │ │ ├── after.swift
│ │ │ │ ├── AnyPromise.h
│ │ │ │ ├── AnyPromise.m
│ │ │ │ ├── AnyPromise+Private.h
│ │ │ │ ├── AnyPromise.swift
│ │ │ │ ├── Box.swift
│ │ │ │ ├── Catchable.swift
│ │ │ │ ├── Configuration.swift
│ │ │ │ ├── CustomStringConvertible.swift
│ │ │ │ ├── Deprecations.swift
│ │ │ │ ├── dispatch_promise.m
│ │ │ │ ├── DispatchQueue+Promise.swift
│ │ │ │ ├── Error.swift
│ │ │ │ ├── firstly.swift
│ │ │ │ ├── fwd.h
│ │ │ │ ├── GlobalState.m
│ │ │ │ ├── Guarantee.swift
│ │ │ │ ├── hang.m
│ │ │ │ ├── hang.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── join.m
│ │ │ │ ├── join.swift
│ │ │ │ ├── NSMethodSignatureForBlock.m
│ │ │ │ ├── PMKCallVariadicBlock.m
│ │ │ │ ├── Promise+AnyPromise.swift
│ │ │ │ ├── PromiseKit.h
│ │ │ │ ├── Promise+Properties.swift
│ │ │ │ ├── Promise.swift
│ │ │ │ ├── race.m
│ │ │ │ ├── race.swift
│ │ │ │ ├── Resolver.swift
│ │ │ │ ├── State.swift
│ │ │ │ ├── SwiftPM.swift
│ │ │ │ ├── Thenable.swift
│ │ │ │ ├── when.m
│ │ │ │ ├── when.swift
│ │ │ │ ├── wrap.swift
│ │ │ │ └── Zalgo.swift
│ │ │ └── Tests
│ │ │ ├── A+
│ │ │ │ ├── 0.0.0.swift
│ │ │ │ ├── 2.1.2.swift
│ │ │ │ ├── 2.1.3.swift
│ │ │ │ ├── 2.2.2.swift
│ │ │ │ ├── 2.2.3.swift
│ │ │ │ ├── 2.2.4.swift
│ │ │ │ ├── 2.2.6.swift
│ │ │ │ ├── 2.2.7.swift
│ │ │ │ ├── 2.3.1.swift
│ │ │ │ ├── 2.3.2.swift
│ │ │ │ ├── 2.3.4.swift
│ │ │ │ └── README.md
│ │ │ ├── Bridging
│ │ │ │ ├── BridgingTests.m
│ │ │ │ ├── BridgingTests.swift
│ │ │ │ ├── Infrastructure.h
│ │ │ │ ├── Infrastructure.m
│ │ │ │ └── Infrastructure.swift
│ │ │ ├── CoreObjC
│ │ │ │ ├── AnyPromiseTests.m
│ │ │ │ ├── AnyPromiseTests.swift
│ │ │ │ ├── HangTests.m
│ │ │ │ ├── JoinTests.m
│ │ │ │ ├── PMKManifoldTests.m
│ │ │ │ └── WhenTests.m
│ │ │ ├── CorePromise
│ │ │ │ ├── 01_AnyPromiseTests.m
│ │ │ │ ├── 01_PromiseTests.swift
│ │ │ │ ├── 02_CancellationTests.swift
│ │ │ │ ├── 02_DefaultDispatchQueueTests.swift
│ │ │ │ ├── 02_ErrorUnhandlerTests.m
│ │ │ │ ├── 02_ErrorUnhandlerTests.swift
│ │ │ │ ├── 02_PMKManifoldTests.m
│ │ │ │ ├── 02_ZalgoTests.swift
│ │ │ │ ├── 03_AfterTests.swift
│ │ │ │ ├── 03_HangTests.m
│ │ │ │ ├── 03_JoinTests.m
│ │ │ │ ├── 03_JoinTests.swift
│ │ │ │ ├── 03_JointTests.swift
│ │ │ │ ├── 03_RaceTests.swift
│ │ │ │ ├── 03_WhenConcurrentTests.swift
│ │ │ │ ├── 03_WhenTests.m
│ │ │ │ ├── 03_WhenTests.swift
│ │ │ │ ├── 03_WrapTests.swift
│ │ │ │ ├── 04_VerifySubclassing.swift
│ │ │ │ ├── 05_PromiseTupleTests.swift
│ │ │ │ ├── 98_StressTests.swift
│ │ │ │ ├── 99_RegressionTests.swift
│ │ │ │ ├── AfterTests.swift
│ │ │ │ ├── CancellableErrorTests.swift
│ │ │ │ ├── CatchableTests.swift
│ │ │ │ ├── DefaultDispatchQueueTests.swift
│ │ │ │ ├── ErrorTests.swift
│ │ │ │ ├── GuaranteeTests.swift
│ │ │ │ ├── HangTests.swift
│ │ │ │ ├── Infrastructure.h
│ │ │ │ ├── Infrastructure.m
│ │ │ │ ├── Infrastructure.swift
│ │ │ │ ├── PMKDefaultDispatchQueueTest.swift
│ │ │ │ ├── PromiseTests.swift
│ │ │ │ ├── RaceTests.swift
│ │ │ │ ├── RegressionTests.swift
│ │ │ │ ├── ResolverTests.swift
│ │ │ │ ├── StressTests.swift
│ │ │ │ ├── ThenableTests.swift
│ │ │ │ ├── Utilities.swift
│ │ │ │ ├── WhenConcurrentTests.swift
│ │ │ │ ├── WhenResolvedTests.swift
│ │ │ │ ├── WhenTests.swift
│ │ │ │ └── ZalgoTests.swift
│ │ │ ├── DeprecationTests.swift
│ │ │ ├── JS-A+
│ │ │ │ ├── AllTests.swift
│ │ │ │ ├── index.js
│ │ │ │ ├── JSAdapter.swift
│ │ │ │ ├── JSPromise.swift
│ │ │ │ ├── JSUtils.swift
│ │ │ │ ├── MockNodeEnvironment.swift
│ │ │ │ ├── package.json
│ │ │ │ ├── package-lock.json
│ │ │ │ ├── README.md
│ │ │ │ └── webpack.config.js
│ │ │ └── LinuxMain.swift
│ │ ├── ReSwift
│ │ │ ├── BuildPhases
│ │ │ │ └── run-swiftlint
│ │ │ ├── Cartfile.resolved
│ │ │ ├── CHANGELOG.md
│ │ │ ├── codecov.yml
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── Docs
│ │ │ │ ├── Actions.md
│ │ │ │ ├── Getting Started Guide.md
│ │ │ │ ├── img
│ │ │ │ │ ├── reswift_concept.graffle
│ │ │ │ │ ├── reswift_concept.png
│ │ │ │ │ ├── reswift_detail.png
│ │ │ │ │ └── timetravel.gif
│ │ │ │ ├── jazzy-theme
│ │ │ │ │ ├── assets
│ │ │ │ │ │ ├── css
│ │ │ │ │ │ │ ├── highlight.css.scss
│ │ │ │ │ │ │ └── jazzy.css.scss
│ │ │ │ │ │ ├── img
│ │ │ │ │ │ │ ├── carat.png
│ │ │ │ │ │ │ ├── dash.png
│ │ │ │ │ │ │ └── gh.png
│ │ │ │ │ │ └── js
│ │ │ │ │ │ ├── jazzy.js
│ │ │ │ │ │ └── jquery.min.js
│ │ │ │ │ └── templates
│ │ │ │ │ ├── doc.mustache
│ │ │ │ │ ├── footer.mustache
│ │ │ │ │ ├── header.mustache
│ │ │ │ │ ├── nav.mustache
│ │ │ │ │ ├── parameter.mustache
│ │ │ │ │ ├── task.mustache
│ │ │ │ │ └── tasks.mustache
│ │ │ │ ├── Reducers.md
│ │ │ │ ├── State.md
│ │ │ │ ├── Stores.md
│ │ │ │ ├── templates
│ │ │ │ │ ├── heading.md
│ │ │ │ │ └── toc.md
│ │ │ │ └── Utilities.md
│ │ │ ├── LICENSE.md
│ │ │ ├── Package.swift
│ │ │ ├── Podfile
│ │ │ ├── Podfile.lock
│ │ │ ├── README.md
│ │ │ ├── ReSwift
│ │ │ │ ├── CoreTypes
│ │ │ │ │ ├── Action.swift
│ │ │ │ │ ├── DispatchingStoreType.swift
│ │ │ │ │ ├── Middleware.swift
│ │ │ │ │ ├── Reducer.swift
│ │ │ │ │ ├── State.swift
│ │ │ │ │ ├── StoreSubscriber.swift
│ │ │ │ │ ├── Store.swift
│ │ │ │ │ ├── StoreType.swift
│ │ │ │ │ └── Subscription.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── ReSwift.h
│ │ │ │ └── Utils
│ │ │ │ ├── Assertions.swift
│ │ │ │ ├── Coding.swift
│ │ │ │ └── TypeHelper.swift
│ │ │ ├── ReSwift.podspec
│ │ │ ├── ReSwiftTests
│ │ │ │ ├── AutomaticallySkipRepeatsTests.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── PerformanceTests.swift
│ │ │ │ ├── StoreDispatchTests.swift
│ │ │ │ ├── StoreMiddlewareTests.swift
│ │ │ │ ├── StoreSubscriberTests.swift
│ │ │ │ ├── StoreSubscriptionTests.swift
│ │ │ │ ├── StoreTests.swift
│ │ │ │ ├── TestFakes.swift
│ │ │ │ ├── TypeHelperTests.swift
│ │ │ │ ├── XCTest+Assertions.swift
│ │ │ │ └── XCTest+Compatibility.swift
│ │ │ ├── ReSwift.xcodeproj
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ ├── xcbaselines
│ │ │ │ │ └── 25DBCF861C30C4DB00D63A58.xcbaseline
│ │ │ │ │ ├── 8A5AF011-A17C-4780-8B4D-183154BA1DDA.plist
│ │ │ │ │ ├── CA98BC4B-4A03-4B07-BF9E-12C3F6A52195.plist
│ │ │ │ │ └── Info.plist
│ │ │ │ └── xcschemes
│ │ │ │ ├── ReSwift-iOS.xcscheme
│ │ │ │ ├── ReSwift-macOS.xcscheme
│ │ │ │ ├── ReSwift-tvOS.xcscheme
│ │ │ │ └── ReSwift-watchOS.xcscheme
│ │ │ ├── ReSwift.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── SwiftLintIntegration
│ │ │ ├── Info.plist
│ │ │ └── SwiftLintIntegration.swift
│ │ └── RxSwift
│ │ ├── assets
│ │ │ ├── CNAME.txt
│ │ │ ├── LICENSE.txt
│ │ │ └── Rx_Logo_M.png
│ │ ├── CHANGELOG.md
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── CONTRIBUTING.md
│ │ ├── Dangerfile
│ │ ├── default.profraw
│ │ ├── Documentation
│ │ │ ├── ComparisonWithOtherLibraries.md
│ │ │ ├── DesignRationale.md
│ │ │ ├── ExampleApp.md
│ │ │ ├── Examples.md
│ │ │ ├── GettingStarted.md
│ │ │ ├── HotAndColdObservables.md
│ │ │ ├── MathBehindRx.md
│ │ │ ├── NewFeatureRequestTemplate.md
│ │ │ ├── Playgrounds.md
│ │ │ ├── Schedulers.md
│ │ │ ├── Subjects.md
│ │ │ ├── Tips.md
│ │ │ ├── Traits.md
│ │ │ ├── UnitTests.md
│ │ │ ├── Warnings.md
│ │ │ └── Why.md
│ │ ├── Gemfile
│ │ ├── Gemfile.lock
│ │ ├── LICENSE.md
│ │ ├── Package.swift
│ │ ├── Platform
│ │ │ ├── DataStructures
│ │ │ │ ├── Bag.swift
│ │ │ │ ├── InfiniteSequence.swift
│ │ │ │ ├── PriorityQueue.swift
│ │ │ │ └── Queue.swift
│ │ │ ├── DeprecationWarner.swift
│ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ ├── Platform.Darwin.swift
│ │ │ ├── Platform.Linux.swift
│ │ │ └── RecursiveLock.swift
│ │ ├── Preprocessor
│ │ │ ├── Preprocessor
│ │ │ │ └── main.swift
│ │ │ ├── Preprocessor.xcodeproj
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── README.md
│ │ ├── README.md
│ │ ├── RxBlocking
│ │ │ ├── BlockingObservable+Operators.swift
│ │ │ ├── BlockingObservable.swift
│ │ │ ├── Info.plist
│ │ │ ├── ObservableConvertibleType+Blocking.swift
│ │ │ ├── Platform
│ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ ├── Platform.Linux.swift
│ │ │ │ └── RecursiveLock.swift
│ │ │ ├── README.md
│ │ │ ├── Resources.swift
│ │ │ └── RunLoopLock.swift
│ │ ├── RxBlocking.podspec
│ │ ├── RxCocoa
│ │ │ ├── Common
│ │ │ │ ├── Binder.swift
│ │ │ │ ├── ControlTarget.swift
│ │ │ │ ├── DelegateProxy.swift
│ │ │ │ ├── DelegateProxyType.swift
│ │ │ │ ├── KeyPathBinder.swift
│ │ │ │ ├── NSLayoutConstraint+Rx.swift
│ │ │ │ ├── Observable+Bind.swift
│ │ │ │ ├── RxCocoaObjCRuntimeError+Extensions.swift
│ │ │ │ ├── RxTarget.swift
│ │ │ │ ├── SectionedViewDataSourceType.swift
│ │ │ │ └── TextInput.swift
│ │ │ ├── Deprecated.swift
│ │ │ ├── Foundation
│ │ │ │ ├── KVORepresentable+CoreGraphics.swift
│ │ │ │ ├── KVORepresentable.swift
│ │ │ │ ├── KVORepresentable+Swift.swift
│ │ │ │ ├── Logging.swift
│ │ │ │ ├── NotificationCenter+Rx.swift
│ │ │ │ ├── NSObject+Rx+KVORepresentable.swift
│ │ │ │ ├── NSObject+Rx+RawRepresentable.swift
│ │ │ │ ├── NSObject+Rx.swift
│ │ │ │ └── URLSession+Rx.swift
│ │ │ ├── Info.plist
│ │ │ ├── iOS
│ │ │ │ ├── DataSources
│ │ │ │ │ ├── RxCollectionViewReactiveArrayDataSource.swift
│ │ │ │ │ ├── RxPickerViewAdapter.swift
│ │ │ │ │ └── RxTableViewReactiveArrayDataSource.swift
│ │ │ │ ├── Events
│ │ │ │ │ └── ItemEvents.swift
│ │ │ │ ├── NSTextStorage+Rx.swift
│ │ │ │ ├── Protocols
│ │ │ │ │ ├── RxCollectionViewDataSourceType.swift
│ │ │ │ │ ├── RxPickerViewDataSourceType.swift
│ │ │ │ │ └── RxTableViewDataSourceType.swift
│ │ │ │ ├── Proxies
│ │ │ │ │ ├── RxCollectionViewDataSourcePrefetchingProxy.swift
│ │ │ │ │ ├── RxCollectionViewDataSourceProxy.swift
│ │ │ │ │ ├── RxCollectionViewDelegateProxy.swift
│ │ │ │ │ ├── RxNavigationControllerDelegateProxy.swift
│ │ │ │ │ ├── RxPickerViewDataSourceProxy.swift
│ │ │ │ │ ├── RxPickerViewDelegateProxy.swift
│ │ │ │ │ ├── RxScrollViewDelegateProxy.swift
│ │ │ │ │ ├── RxSearchBarDelegateProxy.swift
│ │ │ │ │ ├── RxSearchControllerDelegateProxy.swift
│ │ │ │ │ ├── RxTabBarControllerDelegateProxy.swift
│ │ │ │ │ ├── RxTabBarDelegateProxy.swift
│ │ │ │ │ ├── RxTableViewDataSourcePrefetchingProxy.swift
│ │ │ │ │ ├── RxTableViewDataSourceProxy.swift
│ │ │ │ │ ├── RxTableViewDelegateProxy.swift
│ │ │ │ │ ├── RxTextStorageDelegateProxy.swift
│ │ │ │ │ ├── RxTextViewDelegateProxy.swift
│ │ │ │ │ └── RxWebViewDelegateProxy.swift
│ │ │ │ ├── UIActivityIndicatorView+Rx.swift
│ │ │ │ ├── UIAlertAction+Rx.swift
│ │ │ │ ├── UIApplication+Rx.swift
│ │ │ │ ├── UIBarButtonItem+Rx.swift
│ │ │ │ ├── UIButton+Rx.swift
│ │ │ │ ├── UICollectionView+Rx.swift
│ │ │ │ ├── UIControl+Rx.swift
│ │ │ │ ├── UIDatePicker+Rx.swift
│ │ │ │ ├── UIGestureRecognizer+Rx.swift
│ │ │ │ ├── UIImageView+Rx.swift
│ │ │ │ ├── UILabel+Rx.swift
│ │ │ │ ├── UINavigationController+Rx.swift
│ │ │ │ ├── UINavigationItem+Rx.swift
│ │ │ │ ├── UIPageControl+Rx.swift
│ │ │ │ ├── UIPickerView+Rx.swift
│ │ │ │ ├── UIProgressView+Rx.swift
│ │ │ │ ├── UIRefreshControl+Rx.swift
│ │ │ │ ├── UIScrollView+Rx.swift
│ │ │ │ ├── UISearchBar+Rx.swift
│ │ │ │ ├── UISearchController+Rx.swift
│ │ │ │ ├── UISegmentedControl+Rx.swift
│ │ │ │ ├── UISlider+Rx.swift
│ │ │ │ ├── UIStepper+Rx.swift
│ │ │ │ ├── UISwitch+Rx.swift
│ │ │ │ ├── UITabBarController+Rx.swift
│ │ │ │ ├── UITabBarItem+Rx.swift
│ │ │ │ ├── UITabBar+Rx.swift
│ │ │ │ ├── UITableView+Rx.swift
│ │ │ │ ├── UITextField+Rx.swift
│ │ │ │ ├── UITextView+Rx.swift
│ │ │ │ ├── UIViewController+Rx.swift
│ │ │ │ ├── UIView+Rx.swift
│ │ │ │ └── UIWebView+Rx.swift
│ │ │ ├── macOS
│ │ │ │ ├── NSButton+Rx.swift
│ │ │ │ ├── NSControl+Rx.swift
│ │ │ │ ├── NSImageView+Rx.swift
│ │ │ │ ├── NSSlider+Rx.swift
│ │ │ │ ├── NSTextField+Rx.swift
│ │ │ │ └── NSView+Rx.swift
│ │ │ ├── Platform
│ │ │ │ └── DispatchQueue+Extensions.swift
│ │ │ ├── Runtime
│ │ │ │ ├── include
│ │ │ │ │ ├── RxCocoaRuntime.h
│ │ │ │ │ ├── _RXDelegateProxy.h
│ │ │ │ │ ├── _RX.h
│ │ │ │ │ ├── _RXKVOObserver.h
│ │ │ │ │ └── _RXObjCRuntime.h
│ │ │ │ ├── _RXDelegateProxy.m
│ │ │ │ ├── _RXKVOObserver.m
│ │ │ │ ├── _RX.m
│ │ │ │ └── _RXObjCRuntime.m
│ │ │ ├── RxCocoa.h
│ │ │ ├── RxCocoa.swift
│ │ │ └── Traits
│ │ │ ├── BehaviorRelay.swift
│ │ │ ├── ControlEvent.swift
│ │ │ ├── ControlProperty.swift
│ │ │ ├── Driver
│ │ │ │ ├── BehaviorRelay+Driver.swift
│ │ │ │ ├── ControlEvent+Driver.swift
│ │ │ │ ├── ControlProperty+Driver.swift
│ │ │ │ ├── Driver+Subscription.swift
│ │ │ │ ├── Driver.swift
│ │ │ │ └── ObservableConvertibleType+Driver.swift
│ │ │ ├── PublishRelay.swift
│ │ │ ├── SharedSequence
│ │ │ │ ├── ObservableConvertibleType+SharedSequence.swift
│ │ │ │ ├── SchedulerType+SharedSequence.swift
│ │ │ │ ├── SharedSequence+Operators+arity.swift
│ │ │ │ ├── SharedSequence+Operators+arity.tt
│ │ │ │ ├── SharedSequence+Operators.swift
│ │ │ │ └── SharedSequence.swift
│ │ │ └── Signal
│ │ │ ├── ControlEvent+Signal.swift
│ │ │ ├── ObservableConvertibleType+Signal.swift
│ │ │ ├── PublishRelay+Signal.swift
│ │ │ ├── Signal+Subscription.swift
│ │ │ └── Signal.swift
│ │ ├── RxCocoa.podspec
│ │ ├── RxExample
│ │ │ ├── Extensions
│ │ │ │ ├── CLLocationManager+Rx.swift
│ │ │ │ ├── RxCLLocationManagerDelegateProxy.swift
│ │ │ │ ├── RxImagePickerDelegateProxy.swift
│ │ │ │ └── UIImagePickerController+Rx.swift
│ │ │ ├── RxDataSources
│ │ │ │ ├── Differentiator
│ │ │ │ │ ├── AnimatableSectionModel.swift
│ │ │ │ │ ├── AnimatableSectionModelType+ItemPath.swift
│ │ │ │ │ ├── AnimatableSectionModelType.swift
│ │ │ │ │ ├── Changeset.swift
│ │ │ │ │ ├── Differentiator.h
│ │ │ │ │ ├── Diff.swift
│ │ │ │ │ ├── IdentifiableType.swift
│ │ │ │ │ ├── IdentifiableValue.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── ItemPath.swift
│ │ │ │ │ ├── Optional+Extensions.swift
│ │ │ │ │ ├── SectionModel.swift
│ │ │ │ │ ├── SectionModelType.swift
│ │ │ │ │ └── Utilities.swift
│ │ │ │ ├── README.md
│ │ │ │ └── RxDataSources
│ │ │ │ ├── AnimationConfiguration.swift
│ │ │ │ ├── Array+Extensions.swift
│ │ │ │ ├── CollectionViewSectionedDataSource.swift
│ │ │ │ ├── DataSources.swift
│ │ │ │ ├── Deprecated.swift
│ │ │ │ ├── FloatingPointType+IdentifiableType.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── IntegerType+IdentifiableType.swift
│ │ │ │ ├── RxCollectionViewSectionedAnimatedDataSource.swift
│ │ │ │ ├── RxCollectionViewSectionedReloadDataSource.swift
│ │ │ │ ├── RxDataSources.h
│ │ │ │ ├── RxPickerViewAdapter.swift
│ │ │ │ ├── RxTableViewSectionedAnimatedDataSource.swift
│ │ │ │ ├── RxTableViewSectionedReloadDataSource.swift
│ │ │ │ ├── String+IdentifiableType.swift
│ │ │ │ ├── TableViewSectionedDataSource.swift
│ │ │ │ └── UI+SectionedViewType.swift
│ │ │ ├── RxExample
│ │ │ │ ├── Application+Extensions.swift
│ │ │ │ ├── Examples
│ │ │ │ │ ├── APIWrappers
│ │ │ │ │ │ ├── APIWrappers.storyboard
│ │ │ │ │ │ └── APIWrappersViewController.swift
│ │ │ │ │ ├── Calculator
│ │ │ │ │ │ ├── Calculator.storyboard
│ │ │ │ │ │ ├── Calculator.swift
│ │ │ │ │ │ └── CalculatorViewController.swift
│ │ │ │ │ ├── Dependencies.swift
│ │ │ │ │ ├── GeolocationExample
│ │ │ │ │ │ ├── Geolocation.storyboard
│ │ │ │ │ │ └── GeolocationViewController.swift
│ │ │ │ │ ├── GitHubSearchRepositories
│ │ │ │ │ │ ├── GitHubSearchRepositoriesAPI.swift
│ │ │ │ │ │ ├── GitHubSearchRepositories.storyboard
│ │ │ │ │ │ ├── GitHubSearchRepositories.swift
│ │ │ │ │ │ ├── GitHubSearchRepositoriesViewController.swift
│ │ │ │ │ │ └── UINavigationController+Extensions.swift
│ │ │ │ │ ├── GitHubSignup
│ │ │ │ │ │ ├── BindingExtensions.swift
│ │ │ │ │ │ ├── DefaultImplementations.swift
│ │ │ │ │ │ ├── GitHubSignup1.storyboard
│ │ │ │ │ │ ├── GitHubSignup2.storyboard
│ │ │ │ │ │ ├── Protocols.swift
│ │ │ │ │ │ ├── UsingDriver
│ │ │ │ │ │ │ ├── GitHubSignupViewController2.swift
│ │ │ │ │ │ │ └── GithubSignupViewModel2.swift
│ │ │ │ │ │ └── UsingVanillaObservables
│ │ │ │ │ │ ├── GitHubSignupViewController1.swift
│ │ │ │ │ │ └── GithubSignupViewModel1.swift
│ │ │ │ │ ├── ImagePicker
│ │ │ │ │ │ ├── ImagePickerController.swift
│ │ │ │ │ │ ├── ImagePicker.storyboard
│ │ │ │ │ │ └── UIImagePickerController+RxCreate.swift
│ │ │ │ │ ├── macOS simple example
│ │ │ │ │ │ └── IntroductionExampleViewController.swift
│ │ │ │ │ ├── Numbers
│ │ │ │ │ │ ├── Numbers.storyboard
│ │ │ │ │ │ └── NumbersViewController.swift
│ │ │ │ │ ├── SimpleTableViewExample
│ │ │ │ │ │ ├── SimpleTableViewExample.storyboard
│ │ │ │ │ │ └── SimpleTableViewExampleViewController.swift
│ │ │ │ │ ├── SimpleTableViewExampleSectioned
│ │ │ │ │ │ ├── SimpleTableViewExampleSectioned.storyboard
│ │ │ │ │ │ └── SimpleTableViewExampleSectionedViewController.swift
│ │ │ │ │ ├── SimpleValidation
│ │ │ │ │ │ ├── SimpleValidation.storyboard
│ │ │ │ │ │ └── SimpleValidationViewController.swift
│ │ │ │ │ ├── TableViewPartialUpdates
│ │ │ │ │ │ ├── NumberCell.swift
│ │ │ │ │ │ ├── NumberSectionView.swift
│ │ │ │ │ │ ├── PartialUpdates.storyboard
│ │ │ │ │ │ └── PartialUpdatesViewController.swift
│ │ │ │ │ ├── TableViewWithEditingCommands
│ │ │ │ │ │ ├── DetailViewController.swift
│ │ │ │ │ │ ├── RandomUserAPI.swift
│ │ │ │ │ │ ├── TableViewWithEditingCommands.storyboard
│ │ │ │ │ │ ├── TableViewWithEditingCommandsViewController.swift
│ │ │ │ │ │ ├── UIImageView+Extensions.swift
│ │ │ │ │ │ └── User.swift
│ │ │ │ │ ├── UIPickerViewExample
│ │ │ │ │ │ ├── CustomPickerViewAdapterExampleViewController.swift
│ │ │ │ │ │ ├── SimplePickerViewExampleViewController.swift
│ │ │ │ │ │ └── SimpleUIPickerViewExample.storyboard
│ │ │ │ │ └── WikipediaImageSearch
│ │ │ │ │ ├── ViewModels
│ │ │ │ │ │ └── SearchResultViewModel.swift
│ │ │ │ │ ├── Views
│ │ │ │ │ │ ├── CollectionViewImageCell.swift
│ │ │ │ │ │ ├── WikipediaImageCell.xib
│ │ │ │ │ │ ├── WikipediaSearchCell.swift
│ │ │ │ │ │ ├── WikipediaSearchCell.xib
│ │ │ │ │ │ └── WikipediaSearchViewController.swift
│ │ │ │ │ ├── WikipediaAPI
│ │ │ │ │ │ ├── WikipediaAPI.swift
│ │ │ │ │ │ ├── WikipediaPage.swift
│ │ │ │ │ │ └── WikipediaSearchResult.swift
│ │ │ │ │ └── WikipediaSearch.storyboard
│ │ │ │ ├── Example.swift
│ │ │ │ ├── Feedbacks.swift
│ │ │ │ ├── Images.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Icon-40@2x-1.png
│ │ │ │ │ │ ├── Icon-40@2x.png
│ │ │ │ │ │ ├── Icon-40.png
│ │ │ │ │ │ ├── Icon-60@2x-1.png
│ │ │ │ │ │ ├── Icon-60@2x.png
│ │ │ │ │ │ ├── Icon-60@3x.png
│ │ │ │ │ │ ├── Icon-76@2x.png
│ │ │ │ │ │ ├── Icon-76.png
│ │ │ │ │ │ ├── Icon-Small@2x-1.png
│ │ │ │ │ │ ├── Icon-Small@3x.png
│ │ │ │ │ │ ├── Icon-Small.png
│ │ │ │ │ │ ├── Rx_Logo-iPad.png
│ │ │ │ │ │ ├── Rx_Logo_L.png
│ │ │ │ │ │ └── Rx_Logo_M.png
│ │ │ │ │ └── ReactiveExtensionsLogo.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ReactiveExtensionsLogo-2.png
│ │ │ │ │ └── ReactiveExtensionsLogo.png
│ │ │ │ ├── Info-iOS.plist
│ │ │ │ ├── Info-macOS.plist
│ │ │ │ ├── iOS
│ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ ├── LaunchScreen.xib
│ │ │ │ │ ├── Main.storyboard
│ │ │ │ │ ├── RootViewController.swift
│ │ │ │ │ └── UITableView+Extensions.swift
│ │ │ │ ├── Lenses.swift
│ │ │ │ ├── macOS
│ │ │ │ │ ├── AppDelegate.swift
│ │ │ │ │ └── Main.storyboard
│ │ │ │ ├── Observable+Extensions.swift
│ │ │ │ ├── Operators.swift
│ │ │ │ ├── Result.swift
│ │ │ │ ├── RxExample.xcdatamodeld
│ │ │ │ │ └── RxExample.xcdatamodel
│ │ │ │ │ └── contents
│ │ │ │ ├── Services
│ │ │ │ │ ├── ActivityIndicator.swift
│ │ │ │ │ ├── DownloadableImage.swift
│ │ │ │ │ ├── GeolocationService.swift
│ │ │ │ │ ├── HtmlParsing.swift
│ │ │ │ │ ├── ImageService.swift
│ │ │ │ │ ├── PseudoRandomGenerator.swift
│ │ │ │ │ ├── Randomizer.swift
│ │ │ │ │ ├── ReachabilityService.swift
│ │ │ │ │ ├── Reachability.swift
│ │ │ │ │ ├── UIImage+Extensions.swift
│ │ │ │ │ ├── UIImageView+DownloadableImage.swift
│ │ │ │ │ └── Wireframe.swift
│ │ │ │ ├── String+URL.swift
│ │ │ │ ├── Version.swift
│ │ │ │ └── ViewController.swift
│ │ │ ├── RxExample-iOSTests
│ │ │ │ ├── CLLocationManager+RxTests.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Mocks
│ │ │ │ │ ├── MockGitHubAPI.swift
│ │ │ │ │ ├── MockWireframe.swift
│ │ │ │ │ ├── NotImplementedStubs.swift
│ │ │ │ │ └── ValidationResult+Equatable.swift
│ │ │ │ ├── RxExample_iOSTests.swift
│ │ │ │ ├── RxTest.swift
│ │ │ │ ├── TestScheduler+MarbleTests.swift
│ │ │ │ └── UIImagePickerController+RxTests.swift
│ │ │ ├── RxExample-iOSUITests
│ │ │ │ ├── FlowTests.swift
│ │ │ │ └── Info.plist
│ │ │ ├── RxExample-macOSUITests
│ │ │ │ ├── Info.plist
│ │ │ │ └── RxExample_macOSUITests.swift
│ │ │ └── RxExample.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ ├── RxExample-iOSTests.xcscheme
│ │ │ ├── RxExample-iOSUITests.xcscheme
│ │ │ ├── RxExample-iOS.xcscheme
│ │ │ ├── RxExample-macOSUITests.xcscheme
│ │ │ └── RxExample-macOS.xcscheme
│ │ ├── Rx.playground
│ │ │ ├── contents.xcplayground
│ │ │ ├── Pages
│ │ │ │ ├── Combining_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Connectable_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Creating_and_Subscribing_to_Observables.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Debugging_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Enable_RxSwift.Resources.total.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Error_Handling_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Filtering_and_Conditional_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Introduction.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Mathematical_and_Aggregate_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Table_of_Contents.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Transforming_Operators.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── TryYourself.xcplaygroundpage
│ │ │ │ │ └── Contents.swift
│ │ │ │ └── Working_with_Subjects.xcplaygroundpage
│ │ │ │ └── Contents.swift
│ │ │ ├── Sources
│ │ │ │ └── SupportCode.swift
│ │ │ └── SupportCode.remap
│ │ ├── RxSwift
│ │ │ ├── AnyObserver.swift
│ │ │ ├── Cancelable.swift
│ │ │ ├── Concurrency
│ │ │ │ ├── AsyncLock.swift
│ │ │ │ ├── LockOwnerType.swift
│ │ │ │ ├── Lock.swift
│ │ │ │ ├── SynchronizedDisposeType.swift
│ │ │ │ ├── SynchronizedOnType.swift
│ │ │ │ └── SynchronizedUnsubscribeType.swift
│ │ │ ├── ConnectableObservableType.swift
│ │ │ ├── Deprecated.swift
│ │ │ ├── Disposables
│ │ │ │ ├── AnonymousDisposable.swift
│ │ │ │ ├── BinaryDisposable.swift
│ │ │ │ ├── BooleanDisposable.swift
│ │ │ │ ├── CompositeDisposable.swift
│ │ │ │ ├── Disposables.swift
│ │ │ │ ├── DisposeBag.swift
│ │ │ │ ├── DisposeBase.swift
│ │ │ │ ├── NopDisposable.swift
│ │ │ │ ├── RefCountDisposable.swift
│ │ │ │ ├── ScheduledDisposable.swift
│ │ │ │ ├── SerialDisposable.swift
│ │ │ │ ├── SingleAssignmentDisposable.swift
│ │ │ │ └── SubscriptionDisposable.swift
│ │ │ ├── Disposable.swift
│ │ │ ├── Errors.swift
│ │ │ ├── Event.swift
│ │ │ ├── Extensions
│ │ │ │ ├── Bag+Rx.swift
│ │ │ │ └── String+Rx.swift
│ │ │ ├── GroupedObservable.swift
│ │ │ ├── ImmediateSchedulerType.swift
│ │ │ ├── Info.plist
│ │ │ ├── ObservableConvertibleType.swift
│ │ │ ├── Observables
│ │ │ │ ├── AddRef.swift
│ │ │ │ ├── Amb.swift
│ │ │ │ ├── AsMaybe.swift
│ │ │ │ ├── AsSingle.swift
│ │ │ │ ├── Buffer.swift
│ │ │ │ ├── Catch.swift
│ │ │ │ ├── CombineLatest+arity.swift
│ │ │ │ ├── CombineLatest+arity.tt
│ │ │ │ ├── CombineLatest+Collection.swift
│ │ │ │ ├── CombineLatest.swift
│ │ │ │ ├── Concat.swift
│ │ │ │ ├── Create.swift
│ │ │ │ ├── Debounce.swift
│ │ │ │ ├── Debug.swift
│ │ │ │ ├── DefaultIfEmpty.swift
│ │ │ │ ├── Deferred.swift
│ │ │ │ ├── DelaySubscription.swift
│ │ │ │ ├── Delay.swift
│ │ │ │ ├── Dematerialize.swift
│ │ │ │ ├── DistinctUntilChanged.swift
│ │ │ │ ├── Do.swift
│ │ │ │ ├── ElementAt.swift
│ │ │ │ ├── Empty.swift
│ │ │ │ ├── Enumerated.swift
│ │ │ │ ├── Error.swift
│ │ │ │ ├── Filter.swift
│ │ │ │ ├── First.swift
│ │ │ │ ├── Generate.swift
│ │ │ │ ├── GroupBy.swift
│ │ │ │ ├── Just.swift
│ │ │ │ ├── Map.swift
│ │ │ │ ├── Materialize.swift
│ │ │ │ ├── Merge.swift
│ │ │ │ ├── Multicast.swift
│ │ │ │ ├── Never.swift
│ │ │ │ ├── ObserveOn.swift
│ │ │ │ ├── Optional.swift
│ │ │ │ ├── Producer.swift
│ │ │ │ ├── Range.swift
│ │ │ │ ├── Reduce.swift
│ │ │ │ ├── Repeat.swift
│ │ │ │ ├── RetryWhen.swift
│ │ │ │ ├── Sample.swift
│ │ │ │ ├── Scan.swift
│ │ │ │ ├── Sequence.swift
│ │ │ │ ├── ShareReplayScope.swift
│ │ │ │ ├── SingleAsync.swift
│ │ │ │ ├── Sink.swift
│ │ │ │ ├── Skip.swift
│ │ │ │ ├── SkipUntil.swift
│ │ │ │ ├── SkipWhile.swift
│ │ │ │ ├── StartWith.swift
│ │ │ │ ├── SubscribeOn.swift
│ │ │ │ ├── SwitchIfEmpty.swift
│ │ │ │ ├── Switch.swift
│ │ │ │ ├── TakeLast.swift
│ │ │ │ ├── Take.swift
│ │ │ │ ├── TakeUntil.swift
│ │ │ │ ├── TakeWhile.swift
│ │ │ │ ├── Throttle.swift
│ │ │ │ ├── Timeout.swift
│ │ │ │ ├── Timer.swift
│ │ │ │ ├── ToArray.swift
│ │ │ │ ├── Using.swift
│ │ │ │ ├── Window.swift
│ │ │ │ ├── WithLatestFrom.swift
│ │ │ │ ├── Zip+arity.swift
│ │ │ │ ├── Zip+arity.tt
│ │ │ │ ├── Zip+Collection.swift
│ │ │ │ └── Zip.swift
│ │ │ ├── Observable.swift
│ │ │ ├── ObservableType+Extensions.swift
│ │ │ ├── ObservableType.swift
│ │ │ ├── Observers
│ │ │ │ ├── AnonymousObserver.swift
│ │ │ │ ├── ObserverBase.swift
│ │ │ │ └── TailRecursiveSink.swift
│ │ │ ├── ObserverType.swift
│ │ │ ├── Platform
│ │ │ │ ├── DataStructures
│ │ │ │ │ ├── Bag.swift
│ │ │ │ │ ├── InfiniteSequence.swift
│ │ │ │ │ ├── PriorityQueue.swift
│ │ │ │ │ └── Queue.swift
│ │ │ │ ├── DeprecationWarner.swift
│ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ ├── Platform.Linux.swift
│ │ │ │ └── RecursiveLock.swift
│ │ │ ├── Reactive.swift
│ │ │ ├── RxMutableBox.swift
│ │ │ ├── Rx.swift
│ │ │ ├── Schedulers
│ │ │ │ ├── ConcurrentDispatchQueueScheduler.swift
│ │ │ │ ├── ConcurrentMainScheduler.swift
│ │ │ │ ├── CurrentThreadScheduler.swift
│ │ │ │ ├── HistoricalScheduler.swift
│ │ │ │ ├── HistoricalSchedulerTimeConverter.swift
│ │ │ │ ├── Internal
│ │ │ │ │ ├── DispatchQueueConfiguration.swift
│ │ │ │ │ ├── InvocableScheduledItem.swift
│ │ │ │ │ ├── InvocableType.swift
│ │ │ │ │ ├── ScheduledItem.swift
│ │ │ │ │ └── ScheduledItemType.swift
│ │ │ │ ├── MainScheduler.swift
│ │ │ │ ├── OperationQueueScheduler.swift
│ │ │ │ ├── RecursiveScheduler.swift
│ │ │ │ ├── SchedulerServices+Emulation.swift
│ │ │ │ ├── SerialDispatchQueueScheduler.swift
│ │ │ │ ├── VirtualTimeConverterType.swift
│ │ │ │ └── VirtualTimeScheduler.swift
│ │ │ ├── SchedulerType.swift
│ │ │ ├── Subjects
│ │ │ │ ├── AsyncSubject.swift
│ │ │ │ ├── BehaviorSubject.swift
│ │ │ │ ├── PublishSubject.swift
│ │ │ │ ├── ReplaySubject.swift
│ │ │ │ └── SubjectType.swift
│ │ │ ├── SwiftSupport
│ │ │ │ └── SwiftSupport.swift
│ │ │ └── Traits
│ │ │ ├── Completable+AndThen.swift
│ │ │ ├── Completable.swift
│ │ │ ├── Maybe.swift
│ │ │ ├── ObservableType+PrimitiveSequence.swift
│ │ │ ├── PrimitiveSequence.swift
│ │ │ ├── PrimitiveSequence+Zip+arity.swift
│ │ │ ├── PrimitiveSequence+Zip+arity.tt
│ │ │ └── Single.swift
│ │ ├── RxSwift.podspec
│ │ ├── RxTest
│ │ │ ├── Any+Equatable.swift
│ │ │ ├── ColdObservable.swift
│ │ │ ├── Deprecated.swift
│ │ │ ├── Event+Equatable.swift
│ │ │ ├── HotObservable.swift
│ │ │ ├── Info.plist
│ │ │ ├── Platform
│ │ │ │ ├── DataStructures
│ │ │ │ │ └── Bag.swift
│ │ │ │ └── DeprecationWarner.swift
│ │ │ ├── Recorded+Event.swift
│ │ │ ├── Recorded.swift
│ │ │ ├── RxTest.swift
│ │ │ ├── Schedulers
│ │ │ │ ├── TestScheduler.swift
│ │ │ │ └── TestSchedulerVirtualTimeConverter.swift
│ │ │ ├── Subscription.swift
│ │ │ ├── TestableObservable.swift
│ │ │ ├── TestableObserver.swift
│ │ │ └── XCTest+Rx.swift
│ │ ├── RxTest.podspec
│ │ ├── Rx.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcshareddata
│ │ │ ├── xcbaselines
│ │ │ │ └── C8E8BA541E2C181A00A4AC2C.xcbaseline
│ │ │ │ ├── 91761072-433E-43DC-A058-545FB88C59EC.plist
│ │ │ │ ├── 996C445D-86F0-429E-92A9-44EBD3769290.plist
│ │ │ │ ├── B553A9F9-C6F1-4009-9BDC-AC42F9D31E38.plist
│ │ │ │ └── Info.plist
│ │ │ └── xcschemes
│ │ │ ├── RxBlocking-iOS.xcscheme
│ │ │ ├── RxBlocking-macOS.xcscheme
│ │ │ ├── RxBlocking-tvOS.xcscheme
│ │ │ ├── RxBlocking-watchOS.xcscheme
│ │ │ ├── RxCocoa-iOS.xcscheme
│ │ │ ├── RxCocoa-macOS.xcscheme
│ │ │ ├── RxCocoa-tvOS.xcscheme
│ │ │ ├── RxCocoa-watchOS.xcscheme
│ │ │ ├── RxSwift-iOS.xcscheme
│ │ │ ├── RxSwift-macOS.xcscheme
│ │ │ ├── RxSwift-tvOS.xcscheme
│ │ │ ├── RxSwift-watchOS.xcscheme
│ │ │ ├── RxTests-iOS.xcscheme
│ │ │ ├── RxTests-macOS.xcscheme
│ │ │ └── RxTests-tvOS.xcscheme
│ │ ├── Rx.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ ├── scripts
│ │ │ ├── all-tests.sh
│ │ │ ├── common.sh
│ │ │ ├── package-spm.swift
│ │ │ ├── profile-build-times.sh
│ │ │ ├── test-linux.sh
│ │ │ ├── update-jazzy-config.rb
│ │ │ ├── update-jazzy-docs.sh
│ │ │ ├── validate-headers.swift
│ │ │ ├── validate-markdown.sh
│ │ │ ├── validate-playgrounds.sh
│ │ │ └── validate-podspec.sh
│ │ ├── Sources
│ │ │ ├── AllTestz
│ │ │ │ ├── Anomalies.swift
│ │ │ │ ├── AssumptionsTest.swift
│ │ │ │ ├── AsyncSubjectTests.swift
│ │ │ │ ├── BackgroundThreadPrimitiveHotObservable.swift
│ │ │ │ ├── Bag.swift
│ │ │ │ ├── BehaviorSubjectTest.swift
│ │ │ │ ├── Completable+AndThen.swift
│ │ │ │ ├── CompletableTest.swift
│ │ │ │ ├── CurrentThreadSchedulerTest.swift
│ │ │ │ ├── DeprecationWarner.swift
│ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ ├── DisposableTest.swift
│ │ │ │ ├── DisposeBagTest.swift
│ │ │ │ ├── Driver+Test.swift
│ │ │ │ ├── ElementIndexPair.swift
│ │ │ │ ├── EquatableArray.swift
│ │ │ │ ├── Event+Test.swift
│ │ │ │ ├── HistoricalSchedulerTest.swift
│ │ │ │ ├── InfiniteSequence.swift
│ │ │ │ ├── MainSchedulerTests.swift
│ │ │ │ ├── main.swift
│ │ │ │ ├── MainThreadPrimitiveHotObservable.swift
│ │ │ │ ├── MaybeTest.swift
│ │ │ │ ├── MockDisposable.swift
│ │ │ │ ├── MySubject.swift
│ │ │ │ ├── NotificationCenterTests.swift
│ │ │ │ ├── Observable+AmbTests.swift
│ │ │ │ ├── Observable+BlockingTest.swift
│ │ │ │ ├── Observable+BufferTests.swift
│ │ │ │ ├── Observable+CatchTests.swift
│ │ │ │ ├── Observable+CombineLatestTests+arity.swift
│ │ │ │ ├── Observable+CombineLatestTests.swift
│ │ │ │ ├── Observable+ConcatTests.swift
│ │ │ │ ├── Observable+DebugTests.swift
│ │ │ │ ├── Observable+DefaultIfEmpty.swift
│ │ │ │ ├── Observable+DelaySubscriptionTests.swift
│ │ │ │ ├── Observable+DelayTests.swift
│ │ │ │ ├── Observable+DematerializeTests.swift
│ │ │ │ ├── Observable+DistinctUntilChangedTests.swift
│ │ │ │ ├── Observable+DoOnTests.swift
│ │ │ │ ├── Observable+ElementAtTests.swift
│ │ │ │ ├── Observable+EnumeratedTests.swift
│ │ │ │ ├── Observable+Extensions.swift
│ │ │ │ ├── Observable.Extensions.swift
│ │ │ │ ├── Observable+FilterTests.swift
│ │ │ │ ├── Observable+GenerateTests.swift
│ │ │ │ ├── Observable+GroupByTests.swift
│ │ │ │ ├── Observable+JustTests.swift
│ │ │ │ ├── Observable+MapTests.swift
│ │ │ │ ├── Observable+MaterializeTests.swift
│ │ │ │ ├── Observable+MergeTests.swift
│ │ │ │ ├── Observable+MulticastTests.swift
│ │ │ │ ├── Observable+ObserveOnTests.swift
│ │ │ │ ├── Observable+OptionalTests.swift
│ │ │ │ ├── Observable+PrimitiveSequenceTest.swift
│ │ │ │ ├── Observable+RangeTests.swift
│ │ │ │ ├── Observable+ReduceTests.swift
│ │ │ │ ├── Observable+RepeatTests.swift
│ │ │ │ ├── Observable+RetryWhenTests.swift
│ │ │ │ ├── Observable+SampleTests.swift
│ │ │ │ ├── Observable+ScanTests.swift
│ │ │ │ ├── Observable+SequenceTests.swift
│ │ │ │ ├── Observable+ShareReplayScopeTests.swift
│ │ │ │ ├── Observable+SingleTests.swift
│ │ │ │ ├── Observable+SkipTests.swift
│ │ │ │ ├── Observable+SkipUntilTests.swift
│ │ │ │ ├── Observable+SkipWhileTests.swift
│ │ │ │ ├── Observable+SubscribeOnTests.swift
│ │ │ │ ├── Observable+SubscriptionTest.swift
│ │ │ │ ├── Observable+SwitchIfEmptyTests.swift
│ │ │ │ ├── Observable+SwitchTests.swift
│ │ │ │ ├── Observable+TakeLastTests.swift
│ │ │ │ ├── Observable+TakeTests.swift
│ │ │ │ ├── Observable+TakeUntilTests.swift
│ │ │ │ ├── Observable+TakeWhileTests.swift
│ │ │ │ ├── Observable+Tests.swift
│ │ │ │ ├── Observable+ThrottleTests.swift
│ │ │ │ ├── Observable+TimeoutTests.swift
│ │ │ │ ├── Observable+TimerTests.swift
│ │ │ │ ├── Observable+ToArrayTests.swift
│ │ │ │ ├── ObservableType+SubscriptionTests.swift
│ │ │ │ ├── Observable+UsingTests.swift
│ │ │ │ ├── Observable+WindowTests.swift
│ │ │ │ ├── Observable+WithLatestFromTests.swift
│ │ │ │ ├── Observable+ZipTests+arity.swift
│ │ │ │ ├── Observable+ZipTests.swift
│ │ │ │ ├── ObserverTests.swift
│ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ ├── Platform.Linux.swift
│ │ │ │ ├── PrimitiveHotObservable.swift
│ │ │ │ ├── PrimitiveMockObserver.swift
│ │ │ │ ├── PrimitiveSequenceTest+zip+arity.swift
│ │ │ │ ├── PriorityQueue.swift
│ │ │ │ ├── PublishSubjectTest.swift
│ │ │ │ ├── Queue.swift
│ │ │ │ ├── Reactive+Tests.swift
│ │ │ │ ├── Recorded+Timeless.swift
│ │ │ │ ├── RecursiveLock.swift
│ │ │ │ ├── RecursiveLockTest.swift
│ │ │ │ ├── ReplaySubjectTest.swift
│ │ │ │ ├── RxMutableBox.swift
│ │ │ │ ├── RxTest.swift
│ │ │ │ ├── SchedulerTests.swift
│ │ │ │ ├── SharedSequence+Extensions.swift
│ │ │ │ ├── SharedSequence+OperatorTest.swift
│ │ │ │ ├── SharedSequence+Test.swift
│ │ │ │ ├── SharingSchedulerTests.swift
│ │ │ │ ├── Signal+Test.swift
│ │ │ │ ├── SingleTest.swift
│ │ │ │ ├── TestConnectableObservable.swift
│ │ │ │ ├── TestErrors.swift
│ │ │ │ ├── TestVirtualScheduler.swift
│ │ │ │ ├── VariableTest.swift
│ │ │ │ ├── VirtualSchedulerTest.swift
│ │ │ │ └── XCTest+AllTests.swift
│ │ │ ├── RxBlocking
│ │ │ │ ├── BlockingObservable+Operators.swift
│ │ │ │ ├── BlockingObservable.swift
│ │ │ │ ├── ObservableConvertibleType+Blocking.swift
│ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ ├── Platform.Linux.swift
│ │ │ │ ├── RecursiveLock.swift
│ │ │ │ ├── Resources.swift
│ │ │ │ └── RunLoopLock.swift
│ │ │ ├── RxCocoa
│ │ │ │ ├── BehaviorRelay+Driver.swift
│ │ │ │ ├── BehaviorRelay.swift
│ │ │ │ ├── Binder.swift
│ │ │ │ ├── ControlEvent+Driver.swift
│ │ │ │ ├── ControlEvent+Signal.swift
│ │ │ │ ├── ControlEvent.swift
│ │ │ │ ├── ControlProperty+Driver.swift
│ │ │ │ ├── ControlProperty.swift
│ │ │ │ ├── ControlTarget.swift
│ │ │ │ ├── DelegateProxy.swift
│ │ │ │ ├── DelegateProxyType.swift
│ │ │ │ ├── Deprecated.swift
│ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ ├── Driver+Subscription.swift
│ │ │ │ ├── Driver.swift
│ │ │ │ ├── ItemEvents.swift
│ │ │ │ ├── KeyPathBinder.swift
│ │ │ │ ├── KVORepresentable+CoreGraphics.swift
│ │ │ │ ├── KVORepresentable.swift
│ │ │ │ ├── KVORepresentable+Swift.swift
│ │ │ │ ├── Logging.swift
│ │ │ │ ├── NotificationCenter+Rx.swift
│ │ │ │ ├── NSButton+Rx.swift
│ │ │ │ ├── NSControl+Rx.swift
│ │ │ │ ├── NSImageView+Rx.swift
│ │ │ │ ├── NSLayoutConstraint+Rx.swift
│ │ │ │ ├── NSObject+Rx+KVORepresentable.swift
│ │ │ │ ├── NSObject+Rx+RawRepresentable.swift
│ │ │ │ ├── NSObject+Rx.swift
│ │ │ │ ├── NSSlider+Rx.swift
│ │ │ │ ├── NSTextField+Rx.swift
│ │ │ │ ├── NSTextStorage+Rx.swift
│ │ │ │ ├── NSView+Rx.swift
│ │ │ │ ├── Observable+Bind.swift
│ │ │ │ ├── ObservableConvertibleType+Driver.swift
│ │ │ │ ├── ObservableConvertibleType+SharedSequence.swift
│ │ │ │ ├── ObservableConvertibleType+Signal.swift
│ │ │ │ ├── PublishRelay+Signal.swift
│ │ │ │ ├── PublishRelay.swift
│ │ │ │ ├── RxCocoaObjCRuntimeError+Extensions.swift
│ │ │ │ ├── RxCocoa.swift
│ │ │ │ ├── RxCollectionViewDataSourcePrefetchingProxy.swift
│ │ │ │ ├── RxCollectionViewDataSourceProxy.swift
│ │ │ │ ├── RxCollectionViewDataSourceType.swift
│ │ │ │ ├── RxCollectionViewDelegateProxy.swift
│ │ │ │ ├── RxCollectionViewReactiveArrayDataSource.swift
│ │ │ │ ├── RxNavigationControllerDelegateProxy.swift
│ │ │ │ ├── RxPickerViewAdapter.swift
│ │ │ │ ├── RxPickerViewDataSourceProxy.swift
│ │ │ │ ├── RxPickerViewDataSourceType.swift
│ │ │ │ ├── RxPickerViewDelegateProxy.swift
│ │ │ │ ├── RxScrollViewDelegateProxy.swift
│ │ │ │ ├── RxSearchBarDelegateProxy.swift
│ │ │ │ ├── RxSearchControllerDelegateProxy.swift
│ │ │ │ ├── RxTabBarControllerDelegateProxy.swift
│ │ │ │ ├── RxTabBarDelegateProxy.swift
│ │ │ │ ├── RxTableViewDataSourcePrefetchingProxy.swift
│ │ │ │ ├── RxTableViewDataSourceProxy.swift
│ │ │ │ ├── RxTableViewDataSourceType.swift
│ │ │ │ ├── RxTableViewDelegateProxy.swift
│ │ │ │ ├── RxTableViewReactiveArrayDataSource.swift
│ │ │ │ ├── RxTarget.swift
│ │ │ │ ├── RxTextStorageDelegateProxy.swift
│ │ │ │ ├── RxTextViewDelegateProxy.swift
│ │ │ │ ├── RxWebViewDelegateProxy.swift
│ │ │ │ ├── SchedulerType+SharedSequence.swift
│ │ │ │ ├── SectionedViewDataSourceType.swift
│ │ │ │ ├── SharedSequence+Operators+arity.swift
│ │ │ │ ├── SharedSequence+Operators.swift
│ │ │ │ ├── SharedSequence.swift
│ │ │ │ ├── Signal+Subscription.swift
│ │ │ │ ├── Signal.swift
│ │ │ │ ├── TextInput.swift
│ │ │ │ ├── UIActivityIndicatorView+Rx.swift
│ │ │ │ ├── UIAlertAction+Rx.swift
│ │ │ │ ├── UIApplication+Rx.swift
│ │ │ │ ├── UIBarButtonItem+Rx.swift
│ │ │ │ ├── UIButton+Rx.swift
│ │ │ │ ├── UICollectionView+Rx.swift
│ │ │ │ ├── UIControl+Rx.swift
│ │ │ │ ├── UIDatePicker+Rx.swift
│ │ │ │ ├── UIGestureRecognizer+Rx.swift
│ │ │ │ ├── UIImageView+Rx.swift
│ │ │ │ ├── UILabel+Rx.swift
│ │ │ │ ├── UINavigationController+Rx.swift
│ │ │ │ ├── UINavigationItem+Rx.swift
│ │ │ │ ├── UIPageControl+Rx.swift
│ │ │ │ ├── UIPickerView+Rx.swift
│ │ │ │ ├── UIProgressView+Rx.swift
│ │ │ │ ├── UIRefreshControl+Rx.swift
│ │ │ │ ├── UIScrollView+Rx.swift
│ │ │ │ ├── UISearchBar+Rx.swift
│ │ │ │ ├── UISearchController+Rx.swift
│ │ │ │ ├── UISegmentedControl+Rx.swift
│ │ │ │ ├── UISlider+Rx.swift
│ │ │ │ ├── UIStepper+Rx.swift
│ │ │ │ ├── UISwitch+Rx.swift
│ │ │ │ ├── UITabBarController+Rx.swift
│ │ │ │ ├── UITabBarItem+Rx.swift
│ │ │ │ ├── UITabBar+Rx.swift
│ │ │ │ ├── UITableView+Rx.swift
│ │ │ │ ├── UITextField+Rx.swift
│ │ │ │ ├── UITextView+Rx.swift
│ │ │ │ ├── UIViewController+Rx.swift
│ │ │ │ ├── UIView+Rx.swift
│ │ │ │ ├── UIWebView+Rx.swift
│ │ │ │ └── URLSession+Rx.swift
│ │ │ ├── RxCocoaRuntime
│ │ │ │ ├── include
│ │ │ │ │ ├── RxCocoaRuntime.h
│ │ │ │ │ ├── _RXDelegateProxy.h
│ │ │ │ │ ├── _RX.h
│ │ │ │ │ ├── _RXKVOObserver.h
│ │ │ │ │ └── _RXObjCRuntime.h
│ │ │ │ ├── _RXDelegateProxy.m
│ │ │ │ ├── _RXKVOObserver.m
│ │ │ │ ├── _RX.m
│ │ │ │ └── _RXObjCRuntime.m
│ │ │ ├── RxSwift
│ │ │ │ ├── AddRef.swift
│ │ │ │ ├── Amb.swift
│ │ │ │ ├── AnonymousDisposable.swift
│ │ │ │ ├── AnonymousObserver.swift
│ │ │ │ ├── AnyObserver.swift
│ │ │ │ ├── AsMaybe.swift
│ │ │ │ ├── AsSingle.swift
│ │ │ │ ├── AsyncLock.swift
│ │ │ │ ├── AsyncSubject.swift
│ │ │ │ ├── Bag+Rx.swift
│ │ │ │ ├── Bag.swift
│ │ │ │ ├── BehaviorSubject.swift
│ │ │ │ ├── BinaryDisposable.swift
│ │ │ │ ├── BooleanDisposable.swift
│ │ │ │ ├── Buffer.swift
│ │ │ │ ├── Cancelable.swift
│ │ │ │ ├── Catch.swift
│ │ │ │ ├── CombineLatest+arity.swift
│ │ │ │ ├── CombineLatest+Collection.swift
│ │ │ │ ├── CombineLatest.swift
│ │ │ │ ├── Completable+AndThen.swift
│ │ │ │ ├── Completable.swift
│ │ │ │ ├── CompositeDisposable.swift
│ │ │ │ ├── Concat.swift
│ │ │ │ ├── ConcurrentDispatchQueueScheduler.swift
│ │ │ │ ├── ConcurrentMainScheduler.swift
│ │ │ │ ├── ConnectableObservableType.swift
│ │ │ │ ├── Create.swift
│ │ │ │ ├── CurrentThreadScheduler.swift
│ │ │ │ ├── Debounce.swift
│ │ │ │ ├── Debug.swift
│ │ │ │ ├── DefaultIfEmpty.swift
│ │ │ │ ├── Deferred.swift
│ │ │ │ ├── DelaySubscription.swift
│ │ │ │ ├── Delay.swift
│ │ │ │ ├── Dematerialize.swift
│ │ │ │ ├── Deprecated.swift
│ │ │ │ ├── DeprecationWarner.swift
│ │ │ │ ├── DispatchQueueConfiguration.swift
│ │ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ │ ├── Disposables.swift
│ │ │ │ ├── Disposable.swift
│ │ │ │ ├── DisposeBag.swift
│ │ │ │ ├── DisposeBase.swift
│ │ │ │ ├── DistinctUntilChanged.swift
│ │ │ │ ├── Do.swift
│ │ │ │ ├── ElementAt.swift
│ │ │ │ ├── Empty.swift
│ │ │ │ ├── Enumerated.swift
│ │ │ │ ├── Errors.swift
│ │ │ │ ├── Error.swift
│ │ │ │ ├── Event.swift
│ │ │ │ ├── Filter.swift
│ │ │ │ ├── First.swift
│ │ │ │ ├── Generate.swift
│ │ │ │ ├── GroupBy.swift
│ │ │ │ ├── GroupedObservable.swift
│ │ │ │ ├── HistoricalScheduler.swift
│ │ │ │ ├── HistoricalSchedulerTimeConverter.swift
│ │ │ │ ├── ImmediateSchedulerType.swift
│ │ │ │ ├── InfiniteSequence.swift
│ │ │ │ ├── InvocableScheduledItem.swift
│ │ │ │ ├── InvocableType.swift
│ │ │ │ ├── Just.swift
│ │ │ │ ├── LockOwnerType.swift
│ │ │ │ ├── Lock.swift
│ │ │ │ ├── MainScheduler.swift
│ │ │ │ ├── Map.swift
│ │ │ │ ├── Materialize.swift
│ │ │ │ ├── Maybe.swift
│ │ │ │ ├── Merge.swift
│ │ │ │ ├── Multicast.swift
│ │ │ │ ├── Never.swift
│ │ │ │ ├── NopDisposable.swift
│ │ │ │ ├── ObservableConvertibleType.swift
│ │ │ │ ├── Observable.swift
│ │ │ │ ├── ObservableType+Extensions.swift
│ │ │ │ ├── ObservableType+PrimitiveSequence.swift
│ │ │ │ ├── ObservableType.swift
│ │ │ │ ├── ObserveOn.swift
│ │ │ │ ├── ObserverBase.swift
│ │ │ │ ├── ObserverType.swift
│ │ │ │ ├── OperationQueueScheduler.swift
│ │ │ │ ├── Optional.swift
│ │ │ │ ├── Platform.Darwin.swift
│ │ │ │ ├── Platform.Linux.swift
│ │ │ │ ├── PrimitiveSequence.swift
│ │ │ │ ├── PrimitiveSequence+Zip+arity.swift
│ │ │ │ ├── PriorityQueue.swift
│ │ │ │ ├── Producer.swift
│ │ │ │ ├── PublishSubject.swift
│ │ │ │ ├── Queue.swift
│ │ │ │ ├── Range.swift
│ │ │ │ ├── Reactive.swift
│ │ │ │ ├── RecursiveLock.swift
│ │ │ │ ├── RecursiveScheduler.swift
│ │ │ │ ├── Reduce.swift
│ │ │ │ ├── RefCountDisposable.swift
│ │ │ │ ├── Repeat.swift
│ │ │ │ ├── ReplaySubject.swift
│ │ │ │ ├── RetryWhen.swift
│ │ │ │ ├── RxMutableBox.swift
│ │ │ │ ├── Rx.swift
│ │ │ │ ├── Sample.swift
│ │ │ │ ├── Scan.swift
│ │ │ │ ├── ScheduledDisposable.swift
│ │ │ │ ├── ScheduledItem.swift
│ │ │ │ ├── ScheduledItemType.swift
│ │ │ │ ├── SchedulerServices+Emulation.swift
│ │ │ │ ├── SchedulerType.swift
│ │ │ │ ├── Sequence.swift
│ │ │ │ ├── SerialDispatchQueueScheduler.swift
│ │ │ │ ├── SerialDisposable.swift
│ │ │ │ ├── ShareReplayScope.swift
│ │ │ │ ├── SingleAssignmentDisposable.swift
│ │ │ │ ├── SingleAsync.swift
│ │ │ │ ├── Single.swift
│ │ │ │ ├── Sink.swift
│ │ │ │ ├── Skip.swift
│ │ │ │ ├── SkipUntil.swift
│ │ │ │ ├── SkipWhile.swift
│ │ │ │ ├── StartWith.swift
│ │ │ │ ├── String+Rx.swift
│ │ │ │ ├── SubjectType.swift
│ │ │ │ ├── SubscribeOn.swift
│ │ │ │ ├── SubscriptionDisposable.swift
│ │ │ │ ├── SwiftSupport.swift
│ │ │ │ ├── SwitchIfEmpty.swift
│ │ │ │ ├── Switch.swift
│ │ │ │ ├── SynchronizedDisposeType.swift
│ │ │ │ ├── SynchronizedOnType.swift
│ │ │ │ ├── SynchronizedUnsubscribeType.swift
│ │ │ │ ├── TailRecursiveSink.swift
│ │ │ │ ├── TakeLast.swift
│ │ │ │ ├── Take.swift
│ │ │ │ ├── TakeUntil.swift
│ │ │ │ ├── TakeWhile.swift
│ │ │ │ ├── Throttle.swift
│ │ │ │ ├── Timeout.swift
│ │ │ │ ├── Timer.swift
│ │ │ │ ├── ToArray.swift
│ │ │ │ ├── Using.swift
│ │ │ │ ├── VirtualTimeConverterType.swift
│ │ │ │ ├── VirtualTimeScheduler.swift
│ │ │ │ ├── Window.swift
│ │ │ │ ├── WithLatestFrom.swift
│ │ │ │ ├── Zip+arity.swift
│ │ │ │ ├── Zip+Collection.swift
│ │ │ │ └── Zip.swift
│ │ │ └── RxTest
│ │ │ ├── Any+Equatable.swift
│ │ │ ├── Bag.swift
│ │ │ ├── ColdObservable.swift
│ │ │ ├── Deprecated.swift
│ │ │ ├── DeprecationWarner.swift
│ │ │ ├── Event+Equatable.swift
│ │ │ ├── HotObservable.swift
│ │ │ ├── Recorded+Event.swift
│ │ │ ├── Recorded.swift
│ │ │ ├── RxTest.swift
│ │ │ ├── Subscription.swift
│ │ │ ├── TestableObservable.swift
│ │ │ ├── TestableObserver.swift
│ │ │ ├── TestScheduler.swift
│ │ │ ├── TestSchedulerVirtualTimeConverter.swift
│ │ │ └── XCTest+Rx.swift
│ │ └── Tests
│ │ ├── Benchmarks
│ │ │ ├── Benchmarks.swift
│ │ │ └── Info.plist
│ │ ├── Info.plist
│ │ ├── MessageProcessingStage.swift
│ │ ├── Microoptimizations
│ │ │ ├── Info.plist
│ │ │ ├── main.swift
│ │ │ └── PerformanceTools.swift
│ │ ├── Platform
│ │ │ ├── DispatchQueue+Extensions.swift
│ │ │ ├── Platform.Darwin.swift
│ │ │ ├── Platform.Linux.swift
│ │ │ └── RecursiveLock.swift
│ │ ├── Recorded+Timeless.swift
│ │ ├── Resources.swift
│ │ ├── RxBlockingTests
│ │ │ └── Observable+BlockingTest.swift
│ │ ├── RxCocoaTests
│ │ │ ├── Binder+Tests.swift
│ │ │ ├── ControlEventTests.swift
│ │ │ ├── ControlPropertyTests.swift
│ │ │ ├── DelegateProxyTest+Cocoa.swift
│ │ │ ├── DelegateProxyTest.swift
│ │ │ ├── DelegateProxyTest+UIKit.swift
│ │ │ ├── Driver+Test.swift
│ │ │ ├── ExampleTests.swift
│ │ │ ├── KeyPathBinder+RxTests.swift
│ │ │ ├── KVOObservableTests.swift
│ │ │ ├── NotificationCenterTests.swift
│ │ │ ├── NSButton+RxTests.swift
│ │ │ ├── NSControl+RxTests.swift
│ │ │ ├── NSLayoutConstraint+RxTests.swift
│ │ │ ├── NSObject+RxTests.swift
│ │ │ ├── NSSlider+RxTests.swift
│ │ │ ├── NSTextField+RxTests.swift
│ │ │ ├── NSView+RxTests.swift
│ │ │ ├── Observable+BindTests.swift
│ │ │ ├── ObservableConvertibleType+SharedSequence.swift
│ │ │ ├── RuntimeStateSnapshot.swift
│ │ │ ├── RxObjCRuntimeState.swift
│ │ │ ├── RXObjCRuntime+Testing.h
│ │ │ ├── RXObjCRuntime+Testing.m
│ │ │ ├── RxTest+Controls.swift
│ │ │ ├── RxTest-iOS-Bridging-Header.h
│ │ │ ├── RxTest-macOS-Bridging-Header.h
│ │ │ ├── RxTest-tvOS-Bridging-Header.h
│ │ │ ├── SentMessageTest.swift
│ │ │ ├── SharedSequence+Extensions.swift
│ │ │ ├── SharedSequence+OperatorTest.swift
│ │ │ ├── SharedSequence+Test.swift
│ │ │ ├── Signal+Test.swift
│ │ │ ├── TestImplementations
│ │ │ │ └── SectionedViewDataSourceMock.swift
│ │ │ ├── UIActivityIndicatorView+RxTests.swift
│ │ │ ├── UIAlertAction+RxTests.swift
│ │ │ ├── UIBarButtonItem+RxTests.swift
│ │ │ ├── UIButton+RxTests.swift
│ │ │ ├── UICollectionView+RxTests.swift
│ │ │ ├── UIControl+RxTests.swift
│ │ │ ├── UIDatePicker+RxTests.swift
│ │ │ ├── UIGestureRecognizer+RxTests.swift
│ │ │ ├── UILabel+RxTests.swift
│ │ │ ├── UINavigationController+RxTests.swift
│ │ │ ├── UINavigationItem+RxTests.swift.swift
│ │ │ ├── UIPageControl+RxTest.swift
│ │ │ ├── UIPickerView+RxTests.swift
│ │ │ ├── UIProgressView+RxTests.swift
│ │ │ ├── UIRefreshControl+RxTests.swift
│ │ │ ├── UIScrollView+RxTests.swift
│ │ │ ├── UISearchBar+RxTests.swift
│ │ │ ├── UISearchController+RxTests.swift
│ │ │ ├── UISegmentedControl+RxTests.swift
│ │ │ ├── UISlider+RxTests.swift
│ │ │ ├── UIStepper+RxTests.swift
│ │ │ ├── UISwitch+RxTests.swift
│ │ │ ├── UITabBarController+RxTests.swift
│ │ │ ├── UITabBarItem+RxTests.swift
│ │ │ ├── UITabBar+RxTests.swift
│ │ │ ├── UITableView+RxTests.swift
│ │ │ ├── UITextField+RxTests.swift
│ │ │ ├── UITextView+RxTests.swift
│ │ │ ├── UIViewController+RxTests.swift
│ │ │ ├── UIView+RxTests.swift
│ │ │ └── UIWebView+RxTests.swift
│ │ ├── RxSwiftTests
│ │ │ ├── Anomalies.swift
│ │ │ ├── AssumptionsTest.swift
│ │ │ ├── AsyncSubjectTests.swift
│ │ │ ├── BagTest.swift
│ │ │ ├── BehaviorSubjectTest.swift
│ │ │ ├── Completable+AndThen.swift
│ │ │ ├── CompletableTest.swift
│ │ │ ├── CurrentThreadSchedulerTest.swift
│ │ │ ├── DisposableTest.swift
│ │ │ ├── DisposeBagTest.swift
│ │ │ ├── Event+Test.swift
│ │ │ ├── HistoricalSchedulerTest.swift
│ │ │ ├── MainSchedulerTests.swift
│ │ │ ├── MaybeTest.swift
│ │ │ ├── Observable+AmbTests.swift
│ │ │ ├── Observable+BufferTests.swift
│ │ │ ├── Observable+CatchTests.swift
│ │ │ ├── Observable+CombineLatestTests+arity.swift
│ │ │ ├── Observable+CombineLatestTests+arity.tt
│ │ │ ├── Observable+CombineLatestTests.swift
│ │ │ ├── Observable+ConcatTests.swift
│ │ │ ├── Observable+DebugTests.swift
│ │ │ ├── Observable+DefaultIfEmpty.swift
│ │ │ ├── Observable+DelaySubscriptionTests.swift
│ │ │ ├── Observable+DelayTests.swift
│ │ │ ├── Observable+DematerializeTests.swift
│ │ │ ├── Observable+DistinctUntilChangedTests.swift
│ │ │ ├── Observable+DoOnTests.swift
│ │ │ ├── Observable+ElementAtTests.swift
│ │ │ ├── Observable+EnumeratedTests.swift
│ │ │ ├── Observable+FilterTests.swift
│ │ │ ├── Observable+GenerateTests.swift
│ │ │ ├── Observable+GroupByTests.swift
│ │ │ ├── Observable+JustTests.swift
│ │ │ ├── Observable+MapTests.swift
│ │ │ ├── Observable+MaterializeTests.swift
│ │ │ ├── Observable+MergeTests.swift
│ │ │ ├── Observable+MulticastTests.swift
│ │ │ ├── Observable+ObserveOnTests.swift
│ │ │ ├── Observable+OptionalTests.swift
│ │ │ ├── Observable+PrimitiveSequenceTest.swift
│ │ │ ├── Observable+RangeTests.swift
│ │ │ ├── Observable+ReduceTests.swift
│ │ │ ├── Observable+RepeatTests.swift
│ │ │ ├── Observable+RetryWhenTests.swift
│ │ │ ├── Observable+SampleTests.swift
│ │ │ ├── Observable+ScanTests.swift
│ │ │ ├── Observable+SequenceTests.swift
│ │ │ ├── Observable+ShareReplayScopeTests.swift
│ │ │ ├── Observable+SingleTests.swift
│ │ │ ├── Observable+SkipTests.swift
│ │ │ ├── Observable+SkipUntilTests.swift
│ │ │ ├── Observable+SkipWhileTests.swift
│ │ │ ├── Observable+SubscribeOnTests.swift
│ │ │ ├── Observable+SubscriptionTest.swift
│ │ │ ├── Observable+SwitchIfEmptyTests.swift
│ │ │ ├── Observable+SwitchTests.swift
│ │ │ ├── Observable+TakeLastTests.swift
│ │ │ ├── Observable+TakeTests.swift
│ │ │ ├── Observable+TakeUntilTests.swift
│ │ │ ├── Observable+TakeWhileTests.swift
│ │ │ ├── Observable+Tests.swift
│ │ │ ├── Observable+ThrottleTests.swift
│ │ │ ├── Observable+TimeoutTests.swift
│ │ │ ├── Observable+TimerTests.swift
│ │ │ ├── Observable+ToArrayTests.swift
│ │ │ ├── ObservableType+SubscriptionTests.swift
│ │ │ ├── Observable+UsingTests.swift
│ │ │ ├── Observable+WindowTests.swift
│ │ │ ├── Observable+WithLatestFromTests.swift
│ │ │ ├── Observable+ZipTests+arity.swift
│ │ │ ├── Observable+ZipTests+arity.tt
│ │ │ ├── Observable+ZipTests.swift
│ │ │ ├── ObserverTests.swift
│ │ │ ├── PrimitiveSequenceTest+zip+arity.swift
│ │ │ ├── PrimitiveSequenceTest+zip+arity.tt
│ │ │ ├── PublishSubjectTest.swift
│ │ │ ├── QueueTests.swift
│ │ │ ├── Reactive+Tests.swift
│ │ │ ├── RecursiveLockTest.swift
│ │ │ ├── ReplaySubjectTest.swift
│ │ │ ├── SchedulerTests.swift
│ │ │ ├── SharingSchedulerTests.swift
│ │ │ ├── SingleTest.swift
│ │ │ ├── SubjectConcurrencyTest.swift
│ │ │ ├── TestImplementations
│ │ │ │ ├── ElementIndexPair.swift
│ │ │ │ ├── EquatableArray.swift
│ │ │ │ ├── Mocks
│ │ │ │ │ ├── BackgroundThreadPrimitiveHotObservable.swift
│ │ │ │ │ ├── MainThreadPrimitiveHotObservable.swift
│ │ │ │ │ ├── MockDisposable.swift
│ │ │ │ │ ├── MySubject.swift
│ │ │ │ │ ├── Observable.Extensions.swift
│ │ │ │ │ ├── PrimitiveHotObservable.swift
│ │ │ │ │ ├── PrimitiveMockObserver.swift
│ │ │ │ │ └── TestConnectableObservable.swift
│ │ │ │ ├── Observable+Extensions.swift
│ │ │ │ └── TestVirtualScheduler.swift
│ │ │ ├── VariableTest.swift
│ │ │ └── VirtualSchedulerTest.swift
│ │ ├── RxTest.swift
│ │ ├── TestErrors.swift
│ │ └── XCTest+AllTests.swift
│ ├── Koober
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon1024.png
│ │ │ │ ├── Icon20@2x.png
│ │ │ │ ├── Icon20.png
│ │ │ │ ├── Icon29@2x.png
│ │ │ │ ├── Icon29.png
│ │ │ │ ├── Icon40@2x.png
│ │ │ │ ├── Icon40.png
│ │ │ │ ├── Icon76@2x.png
│ │ │ │ ├── Icon76.png
│ │ │ │ ├── Icon83.5@2x.png
│ │ │ │ ├── icon-app-20@2x.png
│ │ │ │ ├── icon-app-20@3x.png
│ │ │ │ ├── icon-app-29@2x.png
│ │ │ │ ├── icon-app-29@3x copy.png
│ │ │ │ ├── icon-app-40@2x.png
│ │ │ │ ├── icon-app-40@3x.png
│ │ │ │ ├── icon-app-60@2x.png
│ │ │ │ └── icon-app-60@3x.png
│ │ │ ├── Colors
│ │ │ │ ├── BackgroundColor.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ └── Images
│ │ │ ├── Contents.json
│ │ │ ├── Onboard
│ │ │ │ ├── Contents.json
│ │ │ │ ├── email_icon.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── email_icon@2x.png
│ │ │ │ │ ├── email_icon@3x.png
│ │ │ │ │ └── email_icon.png
│ │ │ │ ├── mobile_icon.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── mobile_icon@2x.png
│ │ │ │ │ ├── mobile_icon@3x.png
│ │ │ │ │ └── mobile_icon.png
│ │ │ │ ├── password_icon.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── password_icon@2x.png
│ │ │ │ │ ├── password_icon@3x.png
│ │ │ │ │ └── password_icon.png
│ │ │ │ ├── person_icon.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── person@2x.png
│ │ │ │ │ ├── person@3x.png
│ │ │ │ │ └── person.png
│ │ │ │ ├── roo_logo.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── roo_logo@2x.png
│ │ │ │ │ ├── roo_logo@3x.png
│ │ │ │ │ └── roo_logo.png
│ │ │ │ └── tag_icon.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── tag@2x.png
│ │ │ │ ├── tag@3x.png
│ │ │ │ └── tag.png
│ │ │ ├── RequestRide
│ │ │ │ ├── available_placeholder_marker.imageset
│ │ │ │ │ ├── available_placeholder_marker@2x.png
│ │ │ │ │ ├── available_placeholder_marker@3x.png
│ │ │ │ │ ├── available_placeholder_marker.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── CancelButton.imageset
│ │ │ │ │ ├── CancelButton@2x.png
│ │ │ │ │ ├── CancelButton@3x.png
│ │ │ │ │ ├── CancelButton.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── DriverEnRoute.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Driver En Route@1x.png
│ │ │ │ │ ├── Driver En Route@2x.png
│ │ │ │ │ └── Driver En Route@3x.png
│ │ │ │ ├── koober.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon-60@2x.png
│ │ │ │ │ └── Icon-60@3x.png
│ │ │ │ ├── MapMarkerDropoffLocation.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── map_marker_destination_location@2x.png
│ │ │ │ │ ├── map_marker_destination_location@3x.png
│ │ │ │ │ └── map_marker_destination_location.png
│ │ │ │ ├── MapMarkerPickupLocation.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── map_marker_pickup_location@2x.png
│ │ │ │ │ ├── map_marker_pickup_location@3x.png
│ │ │ │ │ └── map_marker_pickup_location.png
│ │ │ │ ├── ProgressKangaroo.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── progress_kangaroo@2x.png
│ │ │ │ │ ├── progress_kangaroo@3x.png
│ │ │ │ │ └── progress_kangaroo.png
│ │ │ │ ├── requesting_indicator.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── requesting_indicator@2x.png
│ │ │ │ │ ├── requesting_indicator@3x.png
│ │ │ │ │ └── requesting_indicator.png
│ │ │ │ ├── RideOptionPicker
│ │ │ │ │ ├── available_kangaroo_marker.imageset
│ │ │ │ │ │ ├── available_kangaroo_marker@2x.png
│ │ │ │ │ │ ├── available_kangaroo_marker@3x.png
│ │ │ │ │ │ ├── available_kangaroo_marker.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── available_wallabe_marker.imageset
│ │ │ │ │ │ ├── available_wallabe_marker@2x.png
│ │ │ │ │ │ ├── available_wallabe_marker@3x.png
│ │ │ │ │ │ ├── available_wallabe_marker.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── available_wallaroo_marker.imageset
│ │ │ │ │ │ ├── available_wallaroo_marker@2x.png
│ │ │ │ │ │ ├── available_wallaroo_marker@3x.png
│ │ │ │ │ │ ├── available_wallaroo_marker.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ride_option_kangaroo.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_kangaroo@2x.png
│ │ │ │ │ │ ├── ride_option_kangaroo@3x.png
│ │ │ │ │ │ └── ride_option_kangaroo.png
│ │ │ │ │ ├── ride_option_kangaroo_selected.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_kangaroo_selected@2x.png
│ │ │ │ │ │ ├── ride_option_kangaroo_selected@3x.png
│ │ │ │ │ │ └── ride_option_kangaroo_selected.png
│ │ │ │ │ ├── ride_option_wallabee.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_wallabee@2x.png
│ │ │ │ │ │ ├── ride_option_wallabee@3x.png
│ │ │ │ │ │ └── ride_option_wallabee.png
│ │ │ │ │ ├── ride_option_wallabee_selected.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_wallabee_selected@2x.png
│ │ │ │ │ │ ├── ride_option_wallabee_selected@3x.png
│ │ │ │ │ │ └── ride_option_wallabee_selected.png
│ │ │ │ │ ├── ride_option_wallaroo.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── ride_option_wallaroo@2x.png
│ │ │ │ │ │ ├── ride_option_wallaroo@3x.png
│ │ │ │ │ │ └── ride_option_wallaroo.png
│ │ │ │ │ └── ride_option_wallaroo_selected.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ride_option_wallaroo_selected@2x.png
│ │ │ │ │ ├── ride_option_wallaroo_selected@3x.png
│ │ │ │ │ └── ride_option_wallaroo_selected.png
│ │ │ │ ├── ride_option_placeholder.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ride_option_placeholder@2x.png
│ │ │ │ │ ├── ride_option_placeholder@3x.png
│ │ │ │ │ └── ride_option_placeholder.png
│ │ │ │ ├── ride_option_placeholder_selected.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ride_option_wallabee_selected@2x.png
│ │ │ │ │ ├── ride_option_wallabee_selected@3x.png
│ │ │ │ │ └── ride_option_wallabee_selected.png
│ │ │ │ ├── SetPickupLocationLoader.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── set_pickup_location_loader@2x.png
│ │ │ │ │ ├── set_pickup_location_loader@3x.png
│ │ │ │ │ └── set_pickup_location_loader.png
│ │ │ │ └── success_message.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── success_message@2x.png
│ │ │ │ ├── success_message@3x.png
│ │ │ │ └── success_message.png
│ │ │ ├── roo-icon.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── roo-icon@2x.png
│ │ │ │ ├── roo-icon@3x.png
│ │ │ │ └── roo-icon.png
│ │ │ ├── rwdevcon-bg.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rwdevcon-bg.png
│ │ │ ├── rwdevcon-logo.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rwdevcon-logo.png
│ │ │ ├── rw-logo.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Razewarelogo_1024.png
│ │ │ └── SelectPaymentMethod
│ │ │ ├── card_icon.imageset
│ │ │ │ ├── card_icon@2x.png
│ │ │ │ ├── card_icon@3x.png
│ │ │ │ ├── card_icon.png
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ └── selected_icon.imageset
│ │ │ ├── Contents.json
│ │ │ ├── selected_icon@2x.png
│ │ │ ├── selected_icon@3x.png
│ │ │ └── selected_icon.png
│ │ ├── Info.plist
│ │ └── RWDevConLaunchScreen.xib
│ ├── KooberApp.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcshareddata
│ │ └── xcschemes
│ │ ├── Koober-iOS.xcscheme
│ │ ├── KooberKit.xcscheme
│ │ ├── KooberUIKit.xcscheme
│ │ └── Koober.xcscheme
│ ├── Koober_iOS
│ │ ├── Info.plist
│ │ ├── iOSApp
│ │ │ ├── KooberAppDepedencyContainer.swift
│ │ │ ├── LaunchRootView.swift
│ │ │ ├── LaunchViewController.swift
│ │ │ ├── MainViewController.swift
│ │ │ ├── Onboarding
│ │ │ │ ├── KooberOnboardingDependencyContainer.swift
│ │ │ │ ├── OnboardingViewController.swift
│ │ │ │ ├── SignIn
│ │ │ │ │ ├── SignInRootView.swift
│ │ │ │ │ └── SignInViewController.swift
│ │ │ │ ├── SignUp
│ │ │ │ │ ├── SignUpRootView.swift
│ │ │ │ │ └── SignUpViewController.swift
│ │ │ │ └── Welcome
│ │ │ │ ├── WelcomeRootView.swift
│ │ │ │ └── WelcomeViewController.swift
│ │ │ └── SignedIn
│ │ │ ├── GettingUsersLocation
│ │ │ │ ├── GettingUsersLocationRootView.swift
│ │ │ │ └── GettingUsersLocationViewController.swift
│ │ │ ├── KooberSignedInDependencyContainer.swift
│ │ │ ├── PickMeUp
│ │ │ │ ├── KooberPickMeUpDependencyContainer.swift
│ │ │ │ ├── Map
│ │ │ │ │ ├── MapAnnotationView.swift
│ │ │ │ │ ├── Model
│ │ │ │ │ │ ├── MapAnnotationDiff.swift
│ │ │ │ │ │ ├── MapAnnotation+MapKit.swift
│ │ │ │ │ │ ├── MapAnnotation.swift
│ │ │ │ │ │ ├── MapAnnotationType.swift
│ │ │ │ │ │ └── MapViewState.swift
│ │ │ │ │ ├── PickMeUpMapRootView.swift
│ │ │ │ │ └── PickMeUpMapViewController.swift
│ │ │ │ ├── PickMeUpRootView.swift
│ │ │ │ ├── PickMeUpViewController.swift
│ │ │ │ ├── SelectDropoffLocation
│ │ │ │ │ ├── DropoffLocationPickerContentRootView.swift
│ │ │ │ │ ├── DropoffLocationPickerContentViewController.swift
│ │ │ │ │ └── DropoffLocationPickerViewController.swift
│ │ │ │ ├── SelectRideOption
│ │ │ │ │ ├── Button
│ │ │ │ │ │ ├── RideOptionButton.swift
│ │ │ │ │ │ └── RideOptionSegmentButtonImageLoader.swift
│ │ │ │ │ ├── RideOptionPickerViewController.swift
│ │ │ │ │ └── RideOptionSegmentedControl.swift
│ │ │ │ └── SendRideRequest
│ │ │ │ ├── SendingRideRequestRootView.swift
│ │ │ │ └── SendingRideRequestViewController.swift
│ │ │ ├── SignedInRootView.swift
│ │ │ ├── SignedInViewController.swift
│ │ │ ├── ViewProfile
│ │ │ │ ├── ProfileContentRootView.swift
│ │ │ │ ├── ProfileContentViewController.swift
│ │ │ │ ├── ProfileTableView.swift
│ │ │ │ └── ProfileViewController.swift
│ │ │ └── WaitingForPickup
│ │ │ ├── WaitingForPickupRootView.swift
│ │ │ └── WaitingForPickupViewController.swift
│ │ └── Koober_iOS.h
│ ├── KooberKit
│ │ ├── DataLayer
│ │ │ ├── Model
│ │ │ │ ├── ErrorMessage.swift
│ │ │ │ ├── ErrorPresentation.swift
│ │ │ │ ├── FakeURL.swift
│ │ │ │ ├── Identifiable.swift
│ │ │ │ ├── KooberKitActionDispatcher.swift
│ │ │ │ ├── KooberKitError.swift
│ │ │ │ ├── LoadedState.swift
│ │ │ │ ├── Location.swift
│ │ │ │ ├── NamedLocation.swift
│ │ │ │ ├── NewAccount.swift
│ │ │ │ ├── NewRideRequest.swift
│ │ │ │ ├── RemoteImage.swift
│ │ │ │ ├── RideOptionPickerRideOptions.swift
│ │ │ │ ├── RideOption.swift
│ │ │ │ ├── Secret.swift
│ │ │ │ ├── UserProfile.swift
│ │ │ │ └── UserSession.swift
│ │ │ ├── Repositories
│ │ │ │ ├── Coding
│ │ │ │ │ └── UserSession
│ │ │ │ │ ├── Implementations
│ │ │ │ │ │ └── UserSessionPropertyListCoder.swift
│ │ │ │ │ └── UserSessionCoding.swift
│ │ │ │ ├── KooberLocationRepository.swift
│ │ │ │ ├── KooberNewRideRepository.swift
│ │ │ │ ├── KooberRideOptionRepository.swift
│ │ │ │ ├── Location
│ │ │ │ │ ├── Implementations
│ │ │ │ │ │ └── FakeLocator.swift
│ │ │ │ │ └── Locator.swift
│ │ │ │ ├── LocationRepository.swift
│ │ │ │ ├── NewRideRepository.swift
│ │ │ │ ├── Persistence
│ │ │ │ │ ├── RideOptionStore
│ │ │ │ │ │ ├── Implementations
│ │ │ │ │ │ │ ├── RideOptionDataStoreDiskUserPrefs.swift
│ │ │ │ │ │ │ └── RideOptionDataStoreInMemory.swift
│ │ │ │ │ │ └── RideOptionDataStore.swift
│ │ │ │ │ └── UserSessionStore
│ │ │ │ │ ├── Implementations
│ │ │ │ │ │ ├── FakeUserSessionDataStore.swift
│ │ │ │ │ │ ├── FileUserSessionDataStore.swift
│ │ │ │ │ │ ├── InMemoryUserSessionDataStore.swift
│ │ │ │ │ │ └── Keychain
│ │ │ │ │ │ ├── KeychainItem.swift
│ │ │ │ │ │ ├── Keychain.swift
│ │ │ │ │ │ └── KeychainUserSessionDataStore.swift
│ │ │ │ │ └── UserSessionDataStore.swift
│ │ │ │ ├── Remote
│ │ │ │ │ ├── Auth
│ │ │ │ │ │ ├── AuthRemoteAPI.swift
│ │ │ │ │ │ └── Implementations
│ │ │ │ │ │ ├── FakeAuthRemoteAPI.swift
│ │ │ │ │ │ └── KooberCloudAuthRemoteAPI.swift
│ │ │ │ │ ├── NewRide
│ │ │ │ │ │ ├── Implementations
│ │ │ │ │ │ │ ├── FakeNewRideRemoteAPI.swift
│ │ │ │ │ │ │ └── KooberCloudNewRideRemoteAPI.swift
│ │ │ │ │ │ └── NewRideRemoteAPI.swift
│ │ │ │ │ └── RemoteUserSession.swift
│ │ │ │ └── RideOptionRepository.swift
│ │ │ └── StatePersisters
│ │ │ ├── ReduxUserSessionStatePersister.swift
│ │ │ └── UserSessionStatePersister.swift
│ │ ├── Info.plist
│ │ ├── KooberKit.h
│ │ ├── Reusable
│ │ │ ├── ReSwiftDiagnostics
│ │ │ │ └── ActionPrinterMiddleware.swift
│ │ │ ├── ReSwiftExtensions
│ │ │ │ └── RxSwift
│ │ │ │ ├── StoreSubscriberRxProxy.swift
│ │ │ │ └── StoreSubscriptionExtensions.swift
│ │ │ ├── RxSwiftExtensions
│ │ │ │ └── ObservableOperators.swift
│ │ │ └── SwiftExtensions
│ │ │ └── OptionalExtensions.swift
│ │ └── UILayer
│ │ ├── Features
│ │ │ ├── Launching
│ │ │ │ ├── Redux
│ │ │ │ │ ├── LaunchingActions.swift
│ │ │ │ │ └── LaunchingReducer.swift
│ │ │ │ ├── State
│ │ │ │ │ └── LaunchViewControllerState.swift
│ │ │ │ └── UserInteractions
│ │ │ │ ├── LaunchingUserInteractions.swift
│ │ │ │ └── ReduxLaunchingUserInteractions.swift
│ │ │ └── Running
│ │ │ ├── Features
│ │ │ │ ├── Onboard
│ │ │ │ │ ├── Features
│ │ │ │ │ │ ├── SignIn
│ │ │ │ │ │ │ ├── Redux
│ │ │ │ │ │ │ │ ├── SignInActions.swift
│ │ │ │ │ │ │ │ ├── SignInLogic.swift
│ │ │ │ │ │ │ │ └── SignInReducer.swift
│ │ │ │ │ │ │ ├── SignInViewState.swift
│ │ │ │ │ │ │ ├── State
│ │ │ │ │ │ │ │ └── SignInViewControllerState.swift
│ │ │ │ │ │ │ └── UserInteractions
│ │ │ │ │ │ │ ├── ReduxSignInUserInteractions.swift
│ │ │ │ │ │ │ └── SignInUserInteractions.swift
│ │ │ │ │ │ ├── SignUp
│ │ │ │ │ │ │ ├── Redux
│ │ │ │ │ │ │ │ ├── SignUpActions.swift
│ │ │ │ │ │ │ │ └── SignUpReducer.swift
│ │ │ │ │ │ │ ├── State
│ │ │ │ │ │ │ │ └── SignUpViewControllerState.swift
│ │ │ │ │ │ │ └── UserInteractions
│ │ │ │ │ │ │ ├── ReduxSignUpUserInteractions.swift
│ │ │ │ │ │ │ └── SignUpUserInteractions.swift
│ │ │ │ │ │ └── Welcome
│ │ │ │ │ │ ├── Redux
│ │ │ │ │ │ │ └── WelcomeActions.swift
│ │ │ │ │ │ └── UserInteractions
│ │ │ │ │ │ ├── ReduxWelcomeUserInteractions.swift
│ │ │ │ │ │ └── WelcomeUserInteractions.swift
│ │ │ │ │ ├── Redux
│ │ │ │ │ │ ├── OnboardingActions.swift
│ │ │ │ │ │ ├── OnboardingLogic.swift
│ │ │ │ │ │ └── OnboardingReducer.swift
│ │ │ │ │ ├── State
│ │ │ │ │ │ ├── OnboardingGetters.swift
│ │ │ │ │ │ └── OnboardingState.swift
│ │ │ │ │ └── UserInteractions
│ │ │ │ │ ├── OnboardingUserInteractions.swift
│ │ │ │ │ └── ReduxOnboardingUserInteractions.swift
│ │ │ │ └── SignedIn
│ │ │ │ ├── Features
│ │ │ │ │ ├── GettingUsersLocation
│ │ │ │ │ │ ├── Redux
│ │ │ │ │ │ │ ├── GettingUsersLocationActions.swift
│ │ │ │ │ │ │ └── GettingUsersLocationReducer.swift
│ │ │ │ │ │ ├── State
│ │ │ │ │ │ │ └── GettingUsersLocationViewControllerState.swift
│ │ │ │ │ │ └── UserInteractions
│ │ │ │ │ │ ├── GettingUsersLocationUserInteractions.swift
│ │ │ │ │ │ └── ReduxGettingUsersLocationUserInteractions.swift
│ │ │ │ │ ├── PickMeUp
│ │ │ │ │ │ ├── Features
│ │ │ │ │ │ │ ├── Map
│ │ │ │ │ │ │ │ └── State
│ │ │ │ │ │ │ │ └── MapViewControllerState.swift
│ │ │ │ │ │ │ ├── SelectDropoffLocation
│ │ │ │ │ │ │ │ ├── Redux
│ │ │ │ │ │ │ │ │ ├── DropoffLocationPickerActions.swift
│ │ │ │ │ │ │ │ │ └── DropoffLocationPickerReducer.swift
│ │ │ │ │ │ │ │ ├── State
│ │ │ │ │ │ │ │ │ └── DropoffLocationPickerViewControllerState.swift
│ │ │ │ │ │ │ │ └── UserInteractions
│ │ │ │ │ │ │ │ ├── DropoffLocationPickerUserInteractions.swift
│ │ │ │ │ │ │ │ └── ReduxDropoffLocationPickerUserInteractions.swift
│ │ │ │ │ │ │ └── SelectRideOption
│ │ │ │ │ │ │ ├── Redux
│ │ │ │ │ │ │ │ ├── RideOptionPickerActions.swift
│ │ │ │ │ │ │ │ └── RideOptionPickerReducer.swift
│ │ │ │ │ │ │ ├── State
│ │ │ │ │ │ │ │ ├── RideOptionPickerViewControllerState.swift
│ │ │ │ │ │ │ │ ├── RideOptionSegmentedControlState.swift
│ │ │ │ │ │ │ │ ├── RideOptionSegmentsFactory.swift
│ │ │ │ │ │ │ │ └── RideOptionSegmentState.swift
│ │ │ │ │ │ │ └── UserInteractions
│ │ │ │ │ │ │ ├── ReduxRideOptionPickerUserInteractions.swift
│ │ │ │ │ │ │ └── RideOptionPickerUserInteractions.swift
│ │ │ │ │ │ ├── Redux
│ │ │ │ │ │ │ ├── PickMeUpActions.swift
│ │ │ │ │ │ │ └── PickMeUpReducer.swift
│ │ │ │ │ │ ├── State
│ │ │ │ │ │ │ ├── PickMeUpGetters.swift
│ │ │ │ │ │ │ ├── PickMeUpRequestProgress.swift
│ │ │ │ │ │ │ ├── PickMeUpState.swift
│ │ │ │ │ │ │ └── PickMeUpViewControllerState.swift
│ │ │ │ │ │ └── UserInteractions
│ │ │ │ │ │ ├── PickMeUpUserInteractions.swift
│ │ │ │ │ │ └── ReduxPickMeUpUserInteractions.swift
│ │ │ │ │ ├── ViewProfile
│ │ │ │ │ │ ├── Redux
│ │ │ │ │ │ │ ├── ProfileActions.swift
│ │ │ │ │ │ │ └── ProfileReducer.swift
│ │ │ │ │ │ ├── State
│ │ │ │ │ │ │ └── ProfileViewControllerState.swift
│ │ │ │ │ │ └── UserInteractions
│ │ │ │ │ │ ├── ProfileUserInteractions.swift
│ │ │ │ │ │ └── ReduxProfileUserInteractions.swift
│ │ │ │ │ └── WaitingForPickup
│ │ │ │ │ └── UserInteractions
│ │ │ │ │ ├── ReduxWaitingForPickupUserInteractions.swift
│ │ │ │ │ └── WaitingForPickupUserInteractions.swift
│ │ │ │ ├── Redux
│ │ │ │ │ ├── NewRideReducer.swift
│ │ │ │ │ ├── SignedInActions.swift
│ │ │ │ │ └── SignedInReducer.swift
│ │ │ │ ├── State
│ │ │ │ │ ├── NewRideState.swift
│ │ │ │ │ ├── SignedInGetters.swift
│ │ │ │ │ └── SignedInViewControllerState.swift
│ │ │ │ └── UserInteractions
│ │ │ │ ├── ReduxSignedInUserInteractions.swift
│ │ │ │ └── SignedInUserInteractions.swift
│ │ │ ├── Redux
│ │ │ │ ├── AppRunningActions.swift
│ │ │ │ └── AppRunningReducer.swift
│ │ │ └── State
│ │ │ ├── AppRunningGetters.swift
│ │ │ └── AppRunningState.swift
│ │ ├── Redux
│ │ │ ├── AppLogic.swift
│ │ │ └── AppReducer.swift
│ │ ├── Reusable
│ │ │ ├── AuthenticationState.swift
│ │ │ ├── Reducers.swift
│ │ │ └── ScopedState.swift
│ │ └── State
│ │ ├── AppState.swift
│ │ ├── EntryPointGetters.swift
│ │ └── MainViewControllerState.swift
│ └── KooberUIKit
│ ├── Info.plist
│ ├── KooberUIKit.h
│ └── Reusable
│ ├── ErrorMessagePresentation.swift
│ ├── Image Cache
│ │ ├── ImageCache.swift
│ │ └── Implementations
│ │ ├── ImageCacheKingfisher.swift
│ │ └── InBundleImageCache.swift
│ ├── Style
│ │ ├── Color.swift
│ │ └── UIColor+Hex.swift
│ └── UIKit
│ ├── NiblessComponents
│ │ ├── NiblessNavigationController.swift
│ │ ├── NiblessTableView.swift
│ │ ├── NiblessViewController.swift
│ │ └── NiblessView.swift
│ ├── ObservableUISearchController.swift
│ ├── UIStackViewExtensions.swift
│ ├── UITableViewCellIdentifiers.swift
│ ├── UIViewController+ErrorPresentation.swift
│ └── ViewControllerContainment.swift
├── Advanced_iOS_App_Architecture_v0.1.epub
├── Advanced_iOS_App_Architecture_v0.1.pdf
└── __MACOSX
└── 06-architecture-redux
1723 directories, 7249 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论