From 975b5440783023d381c7721ed6a567838078dd9e Mon Sep 17 00:00:00 2001 From: Qiu Yuzhou Date: Mon, 20 Mar 2017 21:26:25 +0800 Subject: [PATCH] Update outdated pods. --- Podfile.lock | 10 +- Pods/Manifest.lock | 10 +- Pods/Pods.xcodeproj/project.pbxproj | 2554 +++++++++-------- .../RxCocoa/Platform/DataStructures/Bag.swift | 24 +- .../DataStructures/InfiniteSequence.swift | 2 - .../DataStructures/PriorityQueue.swift | 2 - .../Platform/DataStructures/Queue.swift | 2 - .../Platform/DispatchQueue+Extensions.swift | 1 - Pods/RxCocoa/Platform/Platform.Darwin.swift | 23 +- Pods/RxCocoa/Platform/Platform.Linux.swift | 20 +- Pods/RxCocoa/Platform/RecursiveLock.swift | 34 + Pods/RxCocoa/README.md | 16 +- .../RxCocoa/CocoaUnits/ControlEvent.swift | 1 - .../RxCocoa/CocoaUnits/ControlProperty.swift | 1 - .../Driver/ControlEvent+Driver.swift | 1 - .../Driver/ControlProperty+Driver.swift | 1 - .../Driver/Driver+Subscription.swift | 1 - .../RxCocoa/CocoaUnits/Driver/Driver.swift | 3 +- .../ObservableConvertibleType+Driver.swift | 1 - .../CocoaUnits/Driver/Variable+Driver.swift | 1 - ...rvableConvertibleType+SharedSequence.swift | 1 - .../SharedSequence+Operators+arity.swift | 1 - .../SharedSequence+Operators.swift | 46 +- .../SharedSequence/SharedSequence.swift | 7 +- .../Variable+SharedSequence.swift | 1 - .../CocoaUnits/UIBindingObserver.swift | 3 +- .../RxCocoa/Common/ControlTarget.swift | 3 +- .../RxCocoa/Common/DelegateProxy.swift | 105 +- .../RxCocoa/Common/DelegateProxyType.swift | 14 +- .../Common/NSLayoutConstraint+Rx.swift | 2 - .../RxCocoa/Common/Observable+Bind.swift | 1 - .../RxCocoaObjCRuntimeError+Extensions.swift | 1 - Pods/RxCocoa/RxCocoa/Common/RxTarget.swift | 3 +- .../Common/SectionedViewDataSourceType.swift | 2 +- Pods/RxCocoa/RxCocoa/Common/TextInput.swift | 2 - .../KVORepresentable+CoreGraphics.swift | 5 +- .../Foundation/KVORepresentable+Swift.swift | 2 +- .../RxCocoa/Foundation/KVORepresentable.swift | 2 - Pods/RxCocoa/RxCocoa/Foundation/Logging.swift | 2 +- .../RxCocoa/Foundation/NSObject+Rx.swift | 6 +- ...r+Rx.swift => NotificationCenter+Rx.swift} | 6 +- .../RxCocoa/Foundation/URLSession+Rx.swift | 27 +- .../RxCocoa/Runtime/_RXDelegateProxy.m | 32 +- .../Runtime/include/_RXDelegateProxy.h | 1 + Pods/RxCocoa/RxCocoa/RxCocoa.swift | 23 +- Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift | 1 - Pods/RxCocoa/RxCocoa/macOS/NSControl+Rx.swift | 1 - .../RxCocoa/macOS/NSImageView+Rx.swift | 1 - Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift | 1 - .../RxCocoa/macOS/NSTextField+Rx.swift | 1 - Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift | 1 - .../RxSwift/Platform/DataStructures/Bag.swift | 24 +- .../DataStructures/InfiniteSequence.swift | 2 - .../DataStructures/PriorityQueue.swift | 2 - .../Platform/DataStructures/Queue.swift | 2 - .../Platform/DispatchQueue+Extensions.swift | 1 - Pods/RxSwift/Platform/Platform.Darwin.swift | 23 +- Pods/RxSwift/Platform/Platform.Linux.swift | 20 +- Pods/RxSwift/Platform/RecursiveLock.swift | 34 + Pods/RxSwift/README.md | 16 +- Pods/RxSwift/RxSwift/AnyObserver.swift | 7 +- Pods/RxSwift/RxSwift/Cancelable.swift | 2 - .../RxSwift/Concurrency/AsyncLock.swift | 4 +- Pods/RxSwift/RxSwift/Concurrency/Lock.swift | 12 +- .../RxSwift/Concurrency/LockOwnerType.swift | 4 +- .../Concurrency/SynchronizedDisposeType.swift | 2 - .../Concurrency/SynchronizedOnType.swift | 2 - .../SynchronizedSubscribeType.swift | 2 - .../SynchronizedUnsubscribeType.swift | 2 - .../RxSwift/ConnectableObservableType.swift | 2 - Pods/RxSwift/RxSwift/Deprecated.swift | 49 + Pods/RxSwift/RxSwift/Disposable.swift | 2 - .../Disposables/AnonymousDisposable.swift | 2 - .../Disposables/BinaryDisposable.swift | 2 - .../Disposables/BooleanDisposable.swift | 2 - .../Disposables/CompositeDisposable.swift | 2 - .../RxSwift/Disposables/Disposables.swift | 2 - .../RxSwift/Disposables/DisposeBag.swift | 6 +- .../RxSwift/Disposables/DisposeBase.swift | 2 - .../RxSwift/Disposables/NopDisposable.swift | 2 - .../Disposables/RefCountDisposable.swift | 2 - .../Disposables/ScheduledDisposable.swift | 2 - .../Disposables/SerialDisposable.swift | 2 - .../SingleAssignmentDisposable.swift | 31 +- .../Disposables/SubscriptionDisposable.swift | 2 - Pods/RxSwift/RxSwift/Errors.swift | 2 - Pods/RxSwift/RxSwift/Event.swift | 2 - Pods/RxSwift/RxSwift/Extensions/Bag+Rx.swift | 44 +- .../RxSwift/Extensions/String+Rx.swift | 2 - Pods/RxSwift/RxSwift/GroupedObservable.swift | 37 + .../RxSwift/ImmediateSchedulerType.swift | 2 - Pods/RxSwift/RxSwift/Observable.swift | 4 +- .../RxSwift/ObservableConvertibleType.swift | 2 - .../RxSwift/ObservableType+Extensions.swift | 4 +- Pods/RxSwift/RxSwift/ObservableType.swift | 2 - .../Observables/Implementations/AddRef.swift | 8 +- .../Observables/Implementations/Amb.swift | 15 +- .../Implementations/AnonymousObservable.swift | 19 +- .../Observables/Implementations/AsMaybe.swift | 49 + .../Implementations/AsSingle.swift | 52 + .../Observables/Implementations/Buffer.swift | 8 +- .../Observables/Implementations/Catch.swift | 12 +- .../CombineLatest+Collection.swift | 8 +- .../Implementations/CombineLatest+arity.swift | 156 +- .../Implementations/CombineLatest.swift | 12 +- .../Observables/Implementations/Concat.swift | 6 +- .../ConnectableObservable.swift | 50 +- .../{Debunce.swift => Debounce.swift} | 10 +- .../Observables/Implementations/Debug.swift | 7 +- .../Implementations/DefaultIfEmpty.swift | 51 + .../Implementations/Deferred.swift | 6 +- .../Observables/Implementations/Delay.swift | 12 +- .../Implementations/DelaySubscription.swift | 6 +- .../DistinctUntilChanged.swift | 6 +- .../Observables/Implementations/Do.swift | 11 +- .../Implementations/ElementAt.swift | 8 +- .../Observables/Implementations/Empty.swift | 4 +- .../Observables/Implementations/Error.swift | 4 +- .../Observables/Implementations/Filter.swift | 6 +- .../Implementations/Generate.swift | 6 +- .../Observables/Implementations/GroupBy.swift | 119 + .../Observables/Implementations/Just.swift | 9 +- .../Observables/Implementations/Map.swift | 10 +- .../Observables/Implementations/Merge.swift | 171 +- .../Implementations/Multicast.swift | 6 +- .../Observables/Implementations/Never.swift | 4 +- .../Implementations/ObserveOn.swift | 6 +- .../ObserveOnSerialDispatchQueue.swift | 6 +- .../Implementations/Optional.swift | 10 +- .../Implementations/Producer.swift | 35 +- .../Observables/Implementations/Range.swift | 6 +- .../Observables/Implementations/Reduce.swift | 6 +- .../Implementations/RefCount.swift | 16 +- .../Observables/Implementations/Repeat.swift | 6 +- .../Implementations/RetryWhen.swift | 31 +- .../Observables/Implementations/Sample.swift | 12 +- .../Observables/Implementations/Scan.swift | 6 +- .../Implementations/Sequence.swift | 7 +- .../Implementations/ShareReplay1.swift | 29 +- .../ShareReplay1WhileConnected.swift | 169 +- .../Implementations/SingleAsync.swift | 22 +- .../Observables/Implementations/Sink.swift | 21 +- .../Observables/Implementations/Skip.swift | 10 +- .../Implementations/SkipUntil.swift | 16 +- .../Implementations/SkipWhile.swift | 6 +- .../Implementations/StartWith.swift | 4 +- .../Implementations/SubscribeOn.swift | 6 +- .../Observables/Implementations/Switch.swift | 10 +- .../Implementations/SwitchIfEmpty.swift | 90 + .../Observables/Implementations/Take.swift | 12 +- .../Implementations/TakeLast.swift | 7 +- .../Implementations/TakeUntil.swift | 12 +- .../Implementations/TakeWhile.swift | 8 +- .../Implementations/Throttle.swift | 8 +- .../Observables/Implementations/Timeout.swift | 12 +- .../Observables/Implementations/Timer.swift | 8 +- .../Observables/Implementations/ToArray.swift | 6 +- .../Observables/Implementations/Using.swift | 4 +- .../Observables/Implementations/Window.swift | 10 +- .../Implementations/WithLatestFrom.swift | 12 +- .../Implementations/Zip+Collection.swift | 8 +- .../Implementations/Zip+arity.swift | 156 +- .../Observables/Implementations/Zip.swift | 14 +- .../Observables/Observable+Aggregate.swift | 2 - .../Observables/Observable+Binding.swift | 2 - .../Observables/Observable+Concurrency.swift | 2 - .../Observables/Observable+Creation.swift | 16 +- .../Observables/Observable+Debug.swift | 2 - .../Observables/Observable+Multiple.swift | 102 +- .../Observables/Observable+Single.swift | 41 +- ...Observable+StandardSequenceOperators.swift | 36 +- .../RxSwift/Observables/Observable+Time.swift | 27 +- Pods/RxSwift/RxSwift/ObserverType.swift | 2 - .../RxSwift/Observers/AnonymousObserver.swift | 4 +- .../RxSwift/Observers/ObserverBase.swift | 11 +- .../RxSwift/Observers/TailRecursiveSink.swift | 10 +- Pods/RxSwift/RxSwift/Reactive.swift | 2 +- Pods/RxSwift/RxSwift/Rx.swift | 18 +- Pods/RxSwift/RxSwift/RxMutableBox.swift | 4 +- Pods/RxSwift/RxSwift/SchedulerType.swift | 3 +- .../ConcurrentDispatchQueueScheduler.swift | 3 +- .../Schedulers/ConcurrentMainScheduler.swift | 3 +- .../Schedulers/CurrentThreadScheduler.swift | 55 +- .../Schedulers/HistoricalScheduler.swift | 2 +- .../HistoricalSchedulerTimeConverter.swift | 2 +- .../Schedulers/ImmediateScheduler.swift | 4 +- .../Internal/AnonymousInvocable.swift | 2 - .../Internal/DispatchQueueConfiguration.swift | 2 +- .../Internal/InvocableScheduledItem.swift | 2 - .../Schedulers/Internal/InvocableType.swift | 2 - .../Schedulers/Internal/ScheduledItem.swift | 2 - .../Internal/ScheduledItemType.swift | 2 - .../RxSwift/Schedulers/MainScheduler.swift | 1 - .../Schedulers/OperationQueueScheduler.swift | 4 +- .../Schedulers/RecursiveScheduler.swift | 8 +- .../SchedulerServices+Emulation.swift | 4 +- .../SerialDispatchQueueScheduler.swift | 3 +- .../Schedulers/VirtualTimeConverterType.swift | 2 - .../Schedulers/VirtualTimeScheduler.swift | 4 +- .../RxSwift/Subjects/AsyncSubject.swift | 146 + .../RxSwift/Subjects/BehaviorSubject.swift | 68 +- .../RxSwift/Subjects/PublishSubject.swift | 51 +- .../RxSwift/Subjects/ReplaySubject.swift | 97 +- .../RxSwift/Subjects/SubjectType.swift | 2 - Pods/RxSwift/RxSwift/Subjects/Variable.swift | 19 +- .../Units/PrimitiveSequence+Zip+arity.swift | 276 ++ .../RxSwift/Units/PrimitiveSequence.swift | 590 ++++ Pods/Target Support Files/RxCocoa/Info.plist | 2 +- Pods/Target Support Files/RxSwift/Info.plist | 2 +- 209 files changed, 4395 insertions(+), 2293 deletions(-) create mode 100644 Pods/RxCocoa/Platform/RecursiveLock.swift rename Pods/RxCocoa/RxCocoa/Foundation/{NSNotificationCenter+Rx.swift => NotificationCenter+Rx.swift} (89%) create mode 100644 Pods/RxSwift/Platform/RecursiveLock.swift create mode 100644 Pods/RxSwift/RxSwift/Deprecated.swift create mode 100644 Pods/RxSwift/RxSwift/GroupedObservable.swift create mode 100644 Pods/RxSwift/RxSwift/Observables/Implementations/AsMaybe.swift create mode 100644 Pods/RxSwift/RxSwift/Observables/Implementations/AsSingle.swift rename Pods/RxSwift/RxSwift/Observables/Implementations/{Debunce.swift => Debounce.swift} (94%) create mode 100644 Pods/RxSwift/RxSwift/Observables/Implementations/DefaultIfEmpty.swift create mode 100644 Pods/RxSwift/RxSwift/Observables/Implementations/GroupBy.swift create mode 100644 Pods/RxSwift/RxSwift/Observables/Implementations/SwitchIfEmpty.swift create mode 100644 Pods/RxSwift/RxSwift/Subjects/AsyncSubject.swift create mode 100644 Pods/RxSwift/RxSwift/Units/PrimitiveSequence+Zip+arity.swift create mode 100644 Pods/RxSwift/RxSwift/Units/PrimitiveSequence.swift diff --git a/Podfile.lock b/Podfile.lock index a21e804..2e4d5ff 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -5,9 +5,9 @@ PODS: - GCDWebServer/Core (= 3.3.3) - GCDWebServer/Core (3.3.3) - MASShortcut (2.3.6) - - RxCocoa (3.1.0): - - RxSwift (~> 3.1) - - RxSwift (3.1.0) + - RxCocoa (3.3.1): + - RxSwift (~> 3.3) + - RxSwift (3.3.1) DEPENDENCIES: - Alamofire (~> 4.2.0) @@ -22,8 +22,8 @@ SPEC CHECKSUMS: BRLOptionParser: a03256a8ff003ca1f5376c55f55f210e085a3958 GCDWebServer: 1c39a1f0763e4eb492bee021e4270fce097d3555 MASShortcut: 9c215e8a8a78f3d01ce56da48e2730ab66b538fa - RxCocoa: 50d7564866da9299161e86a263ce12a0873904d8 - RxSwift: 83ff553e7593fdfdcb2562933a64c0284dffdadc + RxCocoa: 7dcb7a1860fc9cd0e23dae67ab105fc2916670b6 + RxSwift: 8fc9f2de6275a9101d518444e00bf32f1a42caac PODFILE CHECKSUM: e59f622df37d0fe135432c1ccda243973c311def diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index a21e804..2e4d5ff 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -5,9 +5,9 @@ PODS: - GCDWebServer/Core (= 3.3.3) - GCDWebServer/Core (3.3.3) - MASShortcut (2.3.6) - - RxCocoa (3.1.0): - - RxSwift (~> 3.1) - - RxSwift (3.1.0) + - RxCocoa (3.3.1): + - RxSwift (~> 3.3) + - RxSwift (3.3.1) DEPENDENCIES: - Alamofire (~> 4.2.0) @@ -22,8 +22,8 @@ SPEC CHECKSUMS: BRLOptionParser: a03256a8ff003ca1f5376c55f55f210e085a3958 GCDWebServer: 1c39a1f0763e4eb492bee021e4270fce097d3555 MASShortcut: 9c215e8a8a78f3d01ce56da48e2730ab66b538fa - RxCocoa: 50d7564866da9299161e86a263ce12a0873904d8 - RxSwift: 83ff553e7593fdfdcb2562933a64c0284dffdadc + RxCocoa: 7dcb7a1860fc9cd0e23dae67ab105fc2916670b6 + RxSwift: 8fc9f2de6275a9101d518444e00bf32f1a42caac PODFILE CHECKSUM: e59f622df37d0fe135432c1ccda243973c311def diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 3864cc6..e44d2a1 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -8,316 +8,328 @@ /* Begin PBXBuildFile section */ 008D88E94858B0B8190DD42951253AD2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA9A1A86E1594EEC96C2B7214E16E50F /* Cocoa.framework */; }; - 00B490DFDC8E910BDF676C7E9EC0F7F8 /* ImmediateSchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 692C39EEB847B6865E05154D699B5A0D /* ImmediateSchedulerType.swift */; }; - 015A2D47B6DA8E170E4E64108EC177CA /* GCDWebServerFileRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 89157B205B92DB7240F198AAAE3E1D23 /* GCDWebServerFileRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 02759E469AF7E37C6C2B662D2A8DBB99 /* InfiniteSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5093D2110C7158AE638018A9970FA168 /* InfiniteSequence.swift */; }; - 02FCBABDD1B23C59A7B119F1DAE88D7D /* DispatchQueue+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3747A52D98BA28FA152080DA132B4955 /* DispatchQueue+Extensions.swift */; }; - 032DDE7C99BFEF759E6AD96D49AC2222 /* Zip+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12DA49F9E5238CF2A4EBB5A83A1AE3DA /* Zip+arity.swift */; }; - 03810806C0578A750613717248DC37CC /* GCDWebServerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 54065E050A33BF7D4D54D1A31297F2F1 /* GCDWebServerPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 0551162B7568A0F3028CF7CE13E9C1C7 /* GCDWebServerURLEncodedFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 619730E0F7D114E0BBB3773020DBC95D /* GCDWebServerURLEncodedFormRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 077F6DB761D1176638A57167293DA6BA /* ScheduledItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D539E4E6C4E295220FA4FAE74031789 /* ScheduledItem.swift */; }; - 08067F41CEECB56CE74FFCA481092E8D /* RxCocoaRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = E258DC88C29E64BF1A3523D2FFF806B5 /* RxCocoaRuntime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 08DB29E8F7F7FF81D87DCFB7869ECC45 /* CombineLatest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76DBA6E4CB608131ADBA7D7DFF8A4E6C /* CombineLatest.swift */; }; - 09713E4AD4F8DB9EBD22A77AA12509B7 /* SerialDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF02268A49529C89CA28BBD728A4864A /* SerialDisposable.swift */; }; - 098AA417A5494FC829E777DC5CF06ECC /* GCDWebServerURLEncodedFormRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 79AFDA86F88F40BFA89B3B2A729B2F24 /* GCDWebServerURLEncodedFormRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0A402C97D8A2855E4F69D8E2BFEE752E /* BRLOptionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E0E8FB6DEC7DDD0F6FEEE86CCDFBC820 /* BRLOptionParser.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0B39234B888575182CA99B07AFC81BA5 /* Variable+SharedSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B87C81B82992789E3611469980A1778 /* Variable+SharedSequence.swift */; }; - 0B8140968914C908CFB4949F67745DD7 /* GCDWebServerFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = CB4B9ED2B1EB569789C066F34F7123A4 /* GCDWebServerFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0ED25A1662826BF961671ECD0C67522D /* RefCountDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = E19D18DB5C1EA9E63E6DBF428B35C892 /* RefCountDisposable.swift */; }; - 0F56DF85092077222EFE85B49CED711F /* DelaySubscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = C62AFA43EC9E39C9901C2014FBF75441 /* DelaySubscription.swift */; }; - 107E34C884D6DAEDA56024FF80F83CF6 /* Platform.Linux.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B3C30C8BD2ECEF438E4A7E02A0C36B6 /* Platform.Linux.swift */; }; - 1094573AE70DF26E438020148CAA752E /* String+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F52D2218ED1A55107BC548E297E9CB /* String+Rx.swift */; }; - 10EB23E9ECC4B33E16933BB1EA560B6A /* Timeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = 315C104108C26A838CCC718E8258B44A /* Timeline.swift */; }; - 12149EA10608B7DE38879E6242D2826C /* ko.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 625F1E39F5E196BA50F36BE994C84724 /* ko.lproj */; }; - 1243B6888974A6BE9D7D77B1D5402D73 /* SubjectType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C30F42D2E6C0B7C15B64F1081749B8FF /* SubjectType.swift */; }; - 143F5EA30D8845DE6EBA2E7E9619D2E9 /* _RX.m in Sources */ = {isa = PBXBuildFile; fileRef = 70BBD10E3B649EA0755AD083EA7CDFB9 /* _RX.m */; }; - 1568BC317134F1902AB76EE65E0A18CE /* GCDWebServerDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D64CB474F7D1B9FDD19465A43A61164 /* GCDWebServerDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 157AE1FBA8F6C3B710CDE90F86492010 /* MASShortcut.m in Sources */ = {isa = PBXBuildFile; fileRef = AA881E4DA90F807751C146D7483CDEC3 /* MASShortcut.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 165F7D403C750ABB5648860CBA92049E /* AddRef.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9007D55BF01790E2E753C6B70C41179 /* AddRef.swift */; }; - 181168219B048D50E6CA6E785240FFAD /* InvocableScheduledItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 460823F894F0F79E2B8E8992A02BFB25 /* InvocableScheduledItem.swift */; }; - 18AD86C96492EFC58855F4DD89D50EE8 /* Window.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF5E4BD0EF6C6C73284552531F108886 /* Window.swift */; }; - 1A12CE731D866F4B25F4C05CB262773A /* Scan.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5F42FF8098EE07E0972506FA879BAED /* Scan.swift */; }; + 015A2D47B6DA8E170E4E64108EC177CA /* GCDWebServerFileRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F9B04B4F8691154899A7BB06F149941 /* GCDWebServerFileRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 03810806C0578A750613717248DC37CC /* GCDWebServerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 941AC673759A8487CD0E31D9222FE395 /* GCDWebServerPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 03AEC3CDFC3EAC2C0366631AA17F0021 /* Reduce.swift in Sources */ = {isa = PBXBuildFile; fileRef = E149E56489936102F081551F32C5F5EB /* Reduce.swift */; }; + 03F3C06659D9C05E49701C68B2F368DB /* ElementAt.swift in Sources */ = {isa = PBXBuildFile; fileRef = C524B1525327F67736740D5488CEAFD6 /* ElementAt.swift */; }; + 0551162B7568A0F3028CF7CE13E9C1C7 /* GCDWebServerURLEncodedFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 360EB85AC720C078D420EADAF6C654ED /* GCDWebServerURLEncodedFormRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 06067FEB1AB279D49A3F16553693D98C /* NSTextField+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088BD130A0FBEAEA4D9FDAE864B58DC7 /* NSTextField+Rx.swift */; }; + 07147440201D62C544F94526CA96A5C3 /* SharedSequence+Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DC1F4EFF87C0AA04AFAB87CB07ACFC2 /* SharedSequence+Operators.swift */; }; + 08067F41CEECB56CE74FFCA481092E8D /* RxCocoaRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = F8EA91701D31DC73ED6AA21F7AD637B2 /* RxCocoaRuntime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 08DB8704904133A00B55601FAD0A012F /* AsMaybe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34AEA52D361570E78F8B9792A835A1A1 /* AsMaybe.swift */; }; + 095B15AD34057F9AF7AF7DC0CD7CC6E5 /* InfiniteSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7A485A268FA20FBE6CEAB65881AF6F /* InfiniteSequence.swift */; }; + 098AA417A5494FC829E777DC5CF06ECC /* GCDWebServerURLEncodedFormRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = DB83C3266870BCD77C80A5BF5F71BFE0 /* GCDWebServerURLEncodedFormRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0990CFB289EC7E60955ACCF0DE727364 /* Deferred.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B7E831C7BD9ACCDA16302B15F5A8035 /* Deferred.swift */; }; + 0A018C2159E3422F73CC243BE77CB879 /* Observable+StandardSequenceOperators.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA80549D390412FB66E8ADB1475C39D2 /* Observable+StandardSequenceOperators.swift */; }; + 0A402C97D8A2855E4F69D8E2BFEE752E /* BRLOptionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 234D1504F40F558DF1303E8C160D47BD /* BRLOptionParser.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0B02531D97A04A562AD8FEFE3075E528 /* RxMutableBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 912AE5C728F325B6D86D33E827E266C8 /* RxMutableBox.swift */; }; + 0B8140968914C908CFB4949F67745DD7 /* GCDWebServerFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 015CDD34C2C3E889192595296079F633 /* GCDWebServerFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0C59FF6E931F35DE452E544B4E9366E3 /* ObserverBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F0C370A9E746A9710DCDBF48091819B /* ObserverBase.swift */; }; + 0C963577F459E5A7F345D0FBD58E0A67 /* ImmediateSchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60B4EBBBD5D3F3346F7E7334498186B2 /* ImmediateSchedulerType.swift */; }; + 0EF1FE250F2BFFABD61D2918C76E2916 /* SingleAsync.swift in Sources */ = {isa = PBXBuildFile; fileRef = 271DC7562BA32ADD28B4A53CA4C92137 /* SingleAsync.swift */; }; + 1012A309E82945C38EA9CA39444380DF /* NSButton+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C4F41A96AB13FAA06EB576B1286FD61 /* NSButton+Rx.swift */; }; + 106520C21CE01A94879410E99DD37F47 /* Take.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5208F42E4D16971BBD8698E9C751B6ED /* Take.swift */; }; + 10EB23E9ECC4B33E16933BB1EA560B6A /* Timeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B5C5DECEBDC9747029DD2086C6B00D /* Timeline.swift */; }; + 11C0C606C5CDBA15C8F0E1C06BEE3799 /* PriorityQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C1694FBE9CBF06E4F1C9F38B5DFA930 /* PriorityQueue.swift */; }; + 12149EA10608B7DE38879E6242D2826C /* ko.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 9C1DEE1416BA8E32A4D01FC91692DDA2 /* ko.lproj */; }; + 12C4D8F003A5CAEC8FA3C7D03A4A1484 /* Window.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1AE55DF48B45CC65465B461F51CA3EA /* Window.swift */; }; + 1568BC317134F1902AB76EE65E0A18CE /* GCDWebServerDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FD0EA79B1967F9A248BD807632BC9C79 /* GCDWebServerDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 157AE1FBA8F6C3B710CDE90F86492010 /* MASShortcut.m in Sources */ = {isa = PBXBuildFile; fileRef = C2F0513828D310E221B920200A0AF8B9 /* MASShortcut.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 15C09589084D116390E3B04BF3B026B6 /* ControlEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59AAA65A3B3DF93288B9973C7991DA37 /* ControlEvent.swift */; }; + 17848AD97F24126359BC05C4E675F0A4 /* SharedSequence+Operators+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B81A53E7BA7B919692592FBAEB2C093 /* SharedSequence+Operators+arity.swift */; }; + 184571546F643ABB4ADDC1DAAB6FBE78 /* ToArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DB18E3EF0102CDC82F31CA6B466A8B3 /* ToArray.swift */; }; 1AB0577134E333EA71DCCE332191A260 /* Pods-ShadowsocksX-NGTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 46662EB64876AD1C891F548C69A89E89 /* Pods-ShadowsocksX-NGTests-dummy.m */; }; - 1ACC904BF6C39CB0520384B81B1A59A3 /* RxCocoaObjCRuntimeError+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 917C99A8833B2D56222425A6F84CA5DA /* RxCocoaObjCRuntimeError+Extensions.swift */; }; - 1B9C61B405FA747D9223222AA652AF6D /* DisposeBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C260F4B4F6F3E5961E3A49C5B05520CD /* DisposeBase.swift */; }; - 1B9EDEDC964E6B08F78920B4F4B9DB84 /* Alamofire-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 48352BD4C4E074FC479B0513B92EA7F9 /* Alamofire-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1CA6B3BA315902F58D2A539D524D6C3C /* ConcurrentMainScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1135B3B4D2DC6F16A992DFB33D540AA /* ConcurrentMainScheduler.swift */; }; - 1E1D791396A3F447B3ADE321ECC7E39E /* RxCocoa-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = ADA9A70ECA885B87CA7B20916DC7BC6F /* RxCocoa-dummy.m */; }; - 1E97944F114E25922076ED80748DF4BC /* Sequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5ABF695E08E23D093300EE17154AD46 /* Sequence.swift */; }; - 1E9B353B6011A05BC8A967B4F679AC99 /* HistoricalSchedulerTimeConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F38DB6F5263618374E7A97C5A4E497A1 /* HistoricalSchedulerTimeConverter.swift */; }; - 1EF1D9B948C91F3CAD0F2998F3765D8B /* GCDWebServerErrorResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 64B15D82041B7A6840823B8A9F3751FD /* GCDWebServerErrorResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F149FBBBB20187B527A87592E7D1D65 /* SingleAssignmentDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BEF9DEF3F2FE69B0036DA832678E66F /* SingleAssignmentDisposable.swift */; }; - 202855689CF5074E834DC4C377C1C21F /* AnonymousInvocable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 671D0C35D77C5534BD266C99699798F7 /* AnonymousInvocable.swift */; }; - 203C8C15986DB48FBFB72F65D4837A0F /* Observable+StandardSequenceOperators.swift in Sources */ = {isa = PBXBuildFile; fileRef = 843FB1118D1974CEF717BE490B13366C /* Observable+StandardSequenceOperators.swift */; }; - 20887597017160017549465EBFB7E977 /* zh-Hant.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 49E673D8031F864FAD63560EA564B5DD /* zh-Hant.lproj */; }; - 21924D3337F7B20AE94DE0A020D38183 /* Catch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A232E9660CB723A1D128D3DFF830596 /* Catch.swift */; }; - 21EB6E0D77F98AC3A30680A90B8656D4 /* Platform.Darwin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A6F87048375FCF10848872558242925 /* Platform.Darwin.swift */; }; - 2259DC05FD87D673C2FE695869381DBC /* KVORepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 895C03FCA3BCF07DBDA8A858302D9662 /* KVORepresentable.swift */; }; - 23741DAA4F354BEEAD1B4EE11EECBF82 /* SingleAsync.swift in Sources */ = {isa = PBXBuildFile; fileRef = 817BBAF28AF5DD16F4C657AB7AD305BF /* SingleAsync.swift */; }; - 247AA094C4DE12FB3B5B4761C9FDECE8 /* NSObject+Rx+RawRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D63CEEDC1A1E689C53BE5B8FB80BBB4F /* NSObject+Rx+RawRepresentable.swift */; }; - 2527F62CEADDA5CE60852E0C067D3438 /* GCDWebServerResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = AF5498021A404BB1ACCA140C4B62871C /* GCDWebServerResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2545E11592C408516EA9AC047FFD47FD /* BRLOptionParser-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C507512A0FC2103B39A0C7761B19968E /* BRLOptionParser-dummy.m */; }; - 282D05FE9B69BDF19B9573DAD9F3EE9A /* TextInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = C22A091C89D7A9C2B736EF1A49C54280 /* TextInput.swift */; }; - 286A79B0F2405FD08804042FE30407B1 /* GCDWebServerMultiPartFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AA9F9CD0EB270DDA2ED76FD3446F305 /* GCDWebServerMultiPartFormRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 287F5692A9ECEE55B0A9E4A033992626 /* CombineLatest+Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9A4EC64F789C4F631F887DA33498D8C /* CombineLatest+Collection.swift */; }; - 291963FA0138FBBFE13F98B6F3980E28 /* Skip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99BD77B66B1E1355C1E30439B72937EB /* Skip.swift */; }; - 2990102CBE66DC047A22C1CBF937DB6E /* Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0D8E8F499BC8AD11FA423052AD2B91A /* Rx.swift */; }; - 2B2DD472D5ADDCFEB20E2715B76C497F /* Lock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 576B7DEFF20932FE127908D3A5F4A54D /* Lock.swift */; }; + 1AC61C1EA2DF1703163518C3858684FC /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E9FC22AFD2BA36D7C298505DD97DB07 /* Errors.swift */; }; + 1B3A98673592E3650381A338F20CA81A /* WithLatestFrom.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7B90D6B38782365F4D874C83ED140A8 /* WithLatestFrom.swift */; }; + 1B4686F080E5DB31E0FDEC12AD725B0B /* Using.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDCCB04DF57C106193307E90684240A9 /* Using.swift */; }; + 1B5CEAC4BA4628D84ED636748404D3E3 /* HistoricalSchedulerTimeConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDFACEE80381FE2B4BC6E4FE88D93A85 /* HistoricalSchedulerTimeConverter.swift */; }; + 1B9EDEDC964E6B08F78920B4F4B9DB84 /* Alamofire-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 88C081789EDC0560233A76D711CE9659 /* Alamofire-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1BE8F717FDCFA2CC8DC9318624D80952 /* RecursiveScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = D402F8A4734F5C848DA2287CD48E6202 /* RecursiveScheduler.swift */; }; + 1C7F09EA3B480077170395B01076A2CF /* Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC674E9D1A6B6D72CE70D5CC2FD43735 /* Debug.swift */; }; + 1EF1D9B948C91F3CAD0F2998F3765D8B /* GCDWebServerErrorResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CD1750A494B17CF183B50C961117C6D /* GCDWebServerErrorResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1FBC620BCD08041C114EEC0A11DDF69D /* DefaultIfEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06571839F983E684AE0631A949E65709 /* DefaultIfEmpty.swift */; }; + 20887597017160017549465EBFB7E977 /* zh-Hant.lproj in Resources */ = {isa = PBXBuildFile; fileRef = C06C7EB1ACC794EDA28251B83A3D8922 /* zh-Hant.lproj */; }; + 2247209AAAE299B2C89F2CFC75D3490D /* GroupBy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 804280091995DFB0D7791D5300473723 /* GroupBy.swift */; }; + 2519514CB62A290340D6D2B43ECC1459 /* OperationQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 435BB7E73157084CAF2FE80FBE224AF2 /* OperationQueueScheduler.swift */; }; + 2527F62CEADDA5CE60852E0C067D3438 /* GCDWebServerResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C74A3DC1AECDEFEFB44AB3F60FFDDC33 /* GCDWebServerResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2545E11592C408516EA9AC047FFD47FD /* BRLOptionParser-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 62543C716FC9EBEA1CAC093AD57E93FD /* BRLOptionParser-dummy.m */; }; + 266E93ACE8FFB80FDF783822D630E927 /* NSControl+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BE0BBDCBD8F691F0357C2BFD2A61DF7 /* NSControl+Rx.swift */; }; + 27776D059250B2AEEA4FD883A98F18E2 /* Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC318351A8A11C1C21A0A22107B2C46B /* Driver.swift */; }; + 286A79B0F2405FD08804042FE30407B1 /* GCDWebServerMultiPartFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BD87FA3022EFB5D55062335BBAA6CDC /* GCDWebServerMultiPartFormRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 29D6BFCA8351A8E55B3A9B9FBBBB316D /* Sink.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2FB3E4A7941F31C1970E3CC7568BC25 /* Sink.swift */; }; + 2AF6E7F79209F1F5EC7E2928FBEABC64 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCCCC4E79BB0BC425916AD8DE96CA785 /* Filter.swift */; }; + 2B60F28247A564FD61AF32BB988582DD /* ShareReplay1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F4AD3BB60C4064C0FBE13775748D456 /* ShareReplay1.swift */; }; 2C16189485F3647493E5E74E8C629E54 /* Pods-ShadowsocksX-NG-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 14A9EC2BB1EC6484018A5EB4B9B2C231 /* Pods-ShadowsocksX-NG-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2CF894F29E1A7E1C5F7F9501934E0059 /* PublishSubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5D5F5CEA32B2510E42A4A7976F27CCE /* PublishSubject.swift */; }; + 2C2579538078FA3F4F5945718C44ACB4 /* SerialDispatchQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = F786CE1FD64B7570C24F231E23D7566A /* SerialDispatchQueueScheduler.swift */; }; + 2C75CE551E9FD25187BC830078E6DD59 /* SwitchIfEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1A4207D9981121566B1401ED299ECB8 /* SwitchIfEmpty.swift */; }; 2DBAC0452D6B85DF3E41E3AEFB4EEC16 /* Pods-ShadowsocksX-NGTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D7E8128F302CF60BEF206008CE11F6D3 /* Pods-ShadowsocksX-NGTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2F4DC6EE9D2D04DD2501C702C782FF87 /* KVORepresentable+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E39C3D16733CDCB7BAD80752EC7D239 /* KVORepresentable+Swift.swift */; }; - 2F51EBD27184D6642521531C30C2A078 /* Observable+Concurrency.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4752DE1461395A71AEFA91856BB6469 /* Observable+Concurrency.swift */; }; - 3076DFAD05E4F7F0356153478F071D74 /* MASShortcut-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CEB1670F4E8A8FED505B32B7F7DADD3 /* MASShortcut-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 30E2A73CDE464DC6C23D3524F07FBB9F /* GCDWebServer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 892156754A7EF53FE3D80BC00C1975AB /* GCDWebServer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3161617D6E3095F41E350F916D918355 /* RetryWhen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0621C0B43DFC90DF41B61359E759D5D3 /* RetryWhen.swift */; }; - 320FD242550FBA6C940056D6191EF150 /* AnonymousObservable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61C799F1F6F393193FDEB6E8B261E48C /* AnonymousObservable.swift */; }; - 330A0CDDD45D8019380AE257A5946541 /* InfiniteSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8B36ED31A6E3C49C77F55E2561C966D /* InfiniteSequence.swift */; }; - 33432041A2F2B22595A953DADFB962AA /* Map.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BB0F5D8F0F27F31636D82187890CC43 /* Map.swift */; }; + 2E3A8BCE3E4D9114ABCBB4D7966812A8 /* NSSlider+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA7C38118F80CD261A2C1877652FBAE /* NSSlider+Rx.swift */; }; + 2FBF7BF077F416DB8C7C99AEAD139F9B /* UIBindingObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51D83FA8652F1FBA030AB17ED7FE6A3C /* UIBindingObserver.swift */; }; + 3076DFAD05E4F7F0356153478F071D74 /* MASShortcut-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F1D6D87906CF7A06C84F16A89701364 /* MASShortcut-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 30E2A73CDE464DC6C23D3524F07FBB9F /* GCDWebServer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E1351027B3142F486A98424D9F42779 /* GCDWebServer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3330B1E49DA9623EA683C8808CCDAF2F /* Buffer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 525C68580D6831E607AD3D862DC133DD /* Buffer.swift */; }; 33669A1E8FF6BB34131FB94871DDF908 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA9A1A86E1594EEC96C2B7214E16E50F /* Cocoa.framework */; }; - 35B3DA850A250223EE5CEB9DB04D1FC4 /* GCDWebServerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A1E6CC9C6785132EA7807744DE0ED408 /* GCDWebServerResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3626B94094672CB1C9DEA32B9F9502E1 /* TaskDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FD1D9CC9BD0DB820CE56BBDE2B6E01F /* TaskDelegate.swift */; }; - 3631BBE242189BD75BEF9E010BC27E21 /* Disposables.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26339E7D90E6D149F805C377419D25BA /* Disposables.swift */; }; - 36E0FA5FE4424D20F0215B1C2CD85D90 /* GCDWebServerRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 89B67DFE619069B6AD5E1D0FAA0BB8E2 /* GCDWebServerRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 370087A98B47E0ED6C36574B16D871A5 /* Observable+Bind.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E83A23DEF6EC644ABA3997BE70BFA85 /* Observable+Bind.swift */; }; + 33856730EE17C2CA1481049F1422FA6A /* Logging.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFA95DC4A3942FDA10B5AF5875F3D960 /* Logging.swift */; }; + 338E1BFAB40B2106D7B32979145BBBF3 /* Skip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48FAC49BD2A6F874166D24BB5C9BA1AE /* Skip.swift */; }; + 35413ADE5985AB5E408AF576A84B4C24 /* KVORepresentable+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 828EB8509B88B335C1D7D0C2B3D7D895 /* KVORepresentable+Swift.swift */; }; + 358C6A1EF83AAD32B9453D2A9E6D6AA1 /* BinaryDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DBFAF6F1BA01CE6183C3B565DB8322C /* BinaryDisposable.swift */; }; + 35B3DA850A250223EE5CEB9DB04D1FC4 /* GCDWebServerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C5A524C4B1015097B4130310EBF6D6B0 /* GCDWebServerResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3626B94094672CB1C9DEA32B9F9502E1 /* TaskDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D4A286AAC017AE5547B794DD2C8AF59 /* TaskDelegate.swift */; }; + 363C02C0DC1D05C96E4C99FA291EFDE1 /* _RXKVOObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E8FD5D8A77584D71B37963D270CBAE2 /* _RXKVOObserver.m */; }; + 36E0FA5FE4424D20F0215B1C2CD85D90 /* GCDWebServerRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 1529BF693979ADC95825A232E3F7F71B /* GCDWebServerRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 380776E07A38623224A8D296024B2C9F /* CompositeDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAAD2858D71A42847A49EE0FC347E9FB /* CompositeDisposable.swift */; }; 382EEA9832CF0E0860B998EAD0EE66E1 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4FEC4B8DFE8753A9B1DE598293568F30 /* SystemConfiguration.framework */; }; 38974DB132715266ADE00F2E3DFBB320 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA9A1A86E1594EEC96C2B7214E16E50F /* Cocoa.framework */; }; - 38DB62A5AD3079471CDF2E9D0D3028FA /* Variable+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 375E8496E1F8683C57FE684DE6D592C1 /* Variable+Driver.swift */; }; - 3B5E0C8C1AB83BD7BBBCAE6073F09AFC /* NSTextField+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9654A33B220127C74EC683B98310281D /* NSTextField+Rx.swift */; }; - 3CB44363DC3691947BA8E9882053BC4A /* ObservableType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EBEE1150AB7FFCE3B2375F0351703C4 /* ObservableType.swift */; }; + 39F610E5C7762C98378BF845AC774621 /* NotificationCenter+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 717C5EDEA19D4107A1C3112D049EBB9C /* NotificationCenter+Rx.swift */; }; + 3ABDC8F6AC096D1B402D23DDE0DA663D /* TextInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D803CC81BFCD9AE0F09CC693CCD4993 /* TextInput.swift */; }; 3DD0362B0B6B939B5D087A150121A4B1 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA9A1A86E1594EEC96C2B7214E16E50F /* Cocoa.framework */; }; - 3E6DF7443FD313551869E084C684729A /* TakeUntil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CB76F5333C4E30B9798A7CB70CCB81F /* TakeUntil.swift */; }; - 3E715DFE443524EB6ADE892E4A676224 /* GCDWebServerMultiPartFormRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = DB9CD6FE2DD142EFA2C41E21AB227946 /* GCDWebServerMultiPartFormRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 419D4559CBA3D1470729743B06641C8C /* SynchronizedUnsubscribeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D0F0E4B2FD793BE40FBBE96FD380D21 /* SynchronizedUnsubscribeType.swift */; }; - 41A0D57F7581AE6A50FE1B0EFE59019C /* AnonymousObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C649D6C2694F89369C6E4BFDF7020D /* AnonymousObserver.swift */; }; - 420C2F4BDB11DD8CF3D550D0857ECD6B /* Timer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7953F0BF7911F293599BC38510760E46 /* Timer.swift */; }; - 424673BDBA8D006E6179215F52C5E941 /* SerialDispatchQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8038341863E5188ED05DCC1BA2CF7CCD /* SerialDispatchQueueScheduler.swift */; }; - 432E16210E58159994078E2AC4CC5E2A /* Cancelable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 686894AC6B1777DEFA921D960D8B519D /* Cancelable.swift */; }; - 43F8377C7AD6791017DCD42341075D28 /* RxMutableBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = F41DBC7F2E4B382CC91B8B28EF579853 /* RxMutableBox.swift */; }; - 450010E10778B36C2FEEC4B9FBB70AC5 /* SchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23863CFA627473DC27B67457C49C2E18 /* SchedulerType.swift */; }; - 467BF71F9AA158F2EA6212221B8E757D /* DelegateProxyType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AD4268847B9453CE579C41B609E22B7 /* DelegateProxyType.swift */; }; - 46E18CE0A69856E82A7BF5DF5C4129D2 /* _RXDelegateProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E6D1E113A8A1E690491F2E3F8A2201 /* _RXDelegateProxy.m */; }; - 47351D20CCCBF94578D448CC836C33FD /* SynchronizedOnType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6824046BB6F6BA5DA145A55756FCE843 /* SynchronizedOnType.swift */; }; - 48FE45BD7BF4ABB32A024550ED96B4C6 /* GCDWebServerStreamedResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C4532CD920B79E94F7B61A2B9A63FCAD /* GCDWebServerStreamedResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 49F778DEAC864BEE58A4B6E734B9BADC /* LockOwnerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5FF1DE565E7A0E50A3F648C38E95C78 /* LockOwnerType.swift */; }; - 4A6AF0A712D4C473177BE88389D15D2A /* MASDictionaryTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = AADDE7423A968810AADD026BD63867B0 /* MASDictionaryTransformer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4B4CE0B02143614597D6DF7AA4BA3DBD /* _RXObjCRuntime.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AF29FABA8C360B08D7C7424360D6666 /* _RXObjCRuntime.m */; }; - 4EA689C03ECF1236D3D9D63B2BB5F4FC /* Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 765B2B823783215A2E954FAB4853AC93 /* Driver.swift */; }; - 4EDE49009B5B68074CD71F8B362F0DDC /* GCDWebServerDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AA937C432E0F9441C102162B7D3DE77 /* GCDWebServerDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F4FD0070DB81A8EB981334462E930F1 /* ShareReplay1.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5049BF3275B506081D6290C03107F75 /* ShareReplay1.swift */; }; - 4FCC38C464EC116DA2EDA928A5AFC90A /* AsyncLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CA3F63B120DCD2B0AD8CA5A75890A10 /* AsyncLock.swift */; }; - 50AE3AC1A51BD92B7D417D6783719D10 /* SharedSequence+Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CD18D2965F9753B545A1B1BA54828CB /* SharedSequence+Operators.swift */; }; - 51358F3E24AC8F1A4172E388769FF1FA /* MASShortcutView.h in Headers */ = {isa = PBXBuildFile; fileRef = 90398724ED993172FCE73E50A7D35827 /* MASShortcutView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 525A56AD52E77A0678127239A93BA759 /* Observable+Aggregate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 207CF7A03B53C4DF00C68FBBF1C6E8F7 /* Observable+Aggregate.swift */; }; - 528F931DA3394230226A64A342C7CE2F /* ObservableConvertibleType+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0543E52D336EE3D670FA0326B542D1AD /* ObservableConvertibleType+Driver.swift */; }; - 5387216E723A3C68E851CA15573CDD71 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9688D287B1F197714D74B40DBE8680 /* Request.swift */; }; - 53D63A17DB43C044EFBAA17337600276 /* GCDWebServerRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 46722F0D8851A939625EFF1E910938E4 /* GCDWebServerRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 58CE04D9C6CAC7243825ABF4AB20EF32 /* MASShortcutValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = B91619B91E70B0C5E6FAC0131E42FD7E /* MASShortcutValidator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 595666EBE1975A65C6968591FED3477E /* Sample.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6CAD2064683A8B0C403939B2A81D812 /* Sample.swift */; }; - 59B0C5CEEBC23AF2B21649600F99188D /* TakeLast.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F715D3AF178663A8CE6B81C0A481755 /* TakeLast.swift */; }; - 5A30DAB76BB1814664FA7DC30939DA24 /* MASShortcutBinder.m in Sources */ = {isa = PBXBuildFile; fileRef = 14FD2EAF92039F913842A87BA5122B62 /* MASShortcutBinder.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5CD1BCE580E7AD73C116C419387F753E /* Amb.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A7A9E967BF724C11ED0D7AECD827B2 /* Amb.swift */; }; - 5D43FA1C64865954BCD55736B89C62C4 /* AnyObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53556765457290978538C38D5C2FDA48 /* AnyObserver.swift */; }; - 5DA42242F35744E48EC08C6DEE5725B3 /* Observable+Single.swift in Sources */ = {isa = PBXBuildFile; fileRef = 351ED3EC72E752AF671FC28B61B82EBB /* Observable+Single.swift */; }; - 5E0E60641191E835765F082F3986230F /* InvocableType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1633F46EA774BF24EF9CCD7B8CB200E8 /* InvocableType.swift */; }; - 5E7DA63F3D502ECE812E041AC672D187 /* Merge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75DFF226271D0F445274C3B660ADEE2A /* Merge.swift */; }; - 5F1FA9D431587CD257C703AF16134030 /* ja.lproj in Resources */ = {isa = PBXBuildFile; fileRef = F1B18A75522A9348284094E1A906CFDB /* ja.lproj */; }; - 5F6DF5ECECD40261F4E10979C038EEB1 /* Empty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18C31186BA3198D89D82D666FBB1905C /* Empty.swift */; }; - 5FF7D42F51FEAEB192E61355AAEAC6DE /* MASShortcutMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 25054C0604BDF8F039586E1B8351F0C6 /* MASShortcutMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 611B03B39A3C1DE850DF21D39CE21095 /* NSSlider+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 406F80B90F80B783BD73B5494D32BF6E /* NSSlider+Rx.swift */; }; - 61200D01A1855D7920CEF835C8BE00B0 /* DispatchQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABDA9F0531A7A7502BDE85649B058DFB /* DispatchQueue+Alamofire.swift */; }; - 6152ECE63A673F74B40C9BA5A851B4ED /* Platform.Darwin.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E912F80E74F9E3D04FE3EAF217CBD /* Platform.Darwin.swift */; }; + 3DD39CA7E6E7BDADC4A4126FC3310FAC /* LockOwnerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48B2C17385071197F259AB746341B272 /* LockOwnerType.swift */; }; + 3E715DFE443524EB6ADE892E4A676224 /* GCDWebServerMultiPartFormRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = DF0D4DE6D3365036C0FA32D93DE77D46 /* GCDWebServerMultiPartFormRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3F5958F756DADBE2D0850A0F17186CCE /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = BED1E9CAFD7494BC65249B31B68985C6 /* Event.swift */; }; + 3F68F1F5B35DB36E1D1A35AF93621DC0 /* InfiniteSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2B98DC1F57C36B412E2E662A8170642 /* InfiniteSequence.swift */; }; + 3FA20C251DB09C90B6E357ED89B534D7 /* VirtualTimeConverterType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9591C37093C86F6625E89B7ECD358BDE /* VirtualTimeConverterType.swift */; }; + 4105ADAD2C51D3E4230C170EA0EC6C5B /* ReplaySubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AC8F7EF565790CE58751914BAB4C1B3 /* ReplaySubject.swift */; }; + 4193C34CAA37C733D8231452EBBE0A46 /* SynchronizedDisposeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30E2E47F7B982BA49DF174E3FDFB288B /* SynchronizedDisposeType.swift */; }; + 42B796D37251F4BCF59ADC3C56B0C05C /* ConcurrentDispatchQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 002B67F5C7E4ECAD0D0339BF321BF117 /* ConcurrentDispatchQueueScheduler.swift */; }; + 42EBF5069D107883B2BAFC32E539345A /* Observable+Concurrency.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7494AFBC1F396F79B1E5BE66FDDFCD /* Observable+Concurrency.swift */; }; + 451920991DC451B2676E9A139C857DD2 /* Queue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E5961CAA9976325C800898EBC9E0C8A /* Queue.swift */; }; + 46507181FD708FCB8B9066F54D38F9D2 /* PrimitiveSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB9BC8FFFB6D237A0A82BB90707A89FA /* PrimitiveSequence.swift */; }; + 46661BD5FD35D16A1D72B05C32BA4805 /* Observable+Bind.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D3C195DE57AB12AEADA0C216773CC29 /* Observable+Bind.swift */; }; + 47C776FC4A5D9C0FE6E5541509E2B06E /* AddRef.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40784518B3B077970ACD76FF6ADC6E18 /* AddRef.swift */; }; + 4811AC35475C767F778C6E3B68648F94 /* PriorityQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1344965A836EE2DFFA93D27044532B30 /* PriorityQueue.swift */; }; + 48FE45BD7BF4ABB32A024550ED96B4C6 /* GCDWebServerStreamedResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A07A8BDB7BFA69AA9291E71416EC58CF /* GCDWebServerStreamedResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 494C1BDAACA36787EE7312E98F2984CA /* PrimitiveSequence+Zip+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD39D59D26656AE80FD3F9C683849740 /* PrimitiveSequence+Zip+arity.swift */; }; + 4A4C1E2799F10F07FD0349A686041EC3 /* NSLayoutConstraint+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEA9F8AE14D36C1EDC66F1C167C4146D /* NSLayoutConstraint+Rx.swift */; }; + 4A6AF0A712D4C473177BE88389D15D2A /* MASDictionaryTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 66999DB6AE23289A4ECDBEBCC7A09C5F /* MASDictionaryTransformer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4B69C82E603D53AC00B7733414B831A9 /* RetryWhen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A595C2E180CE19ADB5A7218E78FD8BC /* RetryWhen.swift */; }; + 4BB5255894FF4DC65E495662590280B3 /* ScheduledItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4AAA88BD8CDEC58F63BB1EABFBFE6EC /* ScheduledItem.swift */; }; + 4DD7E070B3A0D803370EE6CCA28CCA63 /* TakeUntil.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE2FFA6014D5EA973E00B658481C4016 /* TakeUntil.swift */; }; + 4EDE49009B5B68074CD71F8B362F0DDC /* GCDWebServerDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 47B14EF7B2C9724416D7F4F875D1CB32 /* GCDWebServerDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4FF29AE3D6A968F4167A336AC81D6E0D /* ObserverType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3A7C466E29109C01509C4619554BB05 /* ObserverType.swift */; }; + 51358F3E24AC8F1A4172E388769FF1FA /* MASShortcutView.h in Headers */ = {isa = PBXBuildFile; fileRef = 16E2BA0967647D17B5A037805E7CF195 /* MASShortcutView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5207EF225F11ACDE1EBB58D61DB61014 /* Observable+Multiple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C56E70499D215B611C87DF7E81D7DF9 /* Observable+Multiple.swift */; }; + 5209FF4069635478A47FC5F929C25812 /* ObservableType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C980D73B55B8361629ADA1668748A31 /* ObservableType.swift */; }; + 5377A1F2185BF5247D6BC1CE35827700 /* NopDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F4D6DC50E558CC6AE51E3AF56E5018B /* NopDisposable.swift */; }; + 5387216E723A3C68E851CA15573CDD71 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0969FFD491CA3150D85C991F9D642BA /* Request.swift */; }; + 53D63A17DB43C044EFBAA17337600276 /* GCDWebServerRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E149596B24A0F722AAD04DD0E7648FC /* GCDWebServerRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 54D22FC915545C2DBECC569A2763FA93 /* RefCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8402EA2D03C261FDFF31CEC2F3E17390 /* RefCount.swift */; }; + 569E360D93A0FCB66F506D87E9BA7759 /* Just.swift in Sources */ = {isa = PBXBuildFile; fileRef = D85F519585040CC0D398A38AA0930EC4 /* Just.swift */; }; + 576C8796EAC4084B6F49BFC5C839E9D1 /* RxSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 67E751429B6B9BC0FABF01B8867EF866 /* RxSwift-dummy.m */; }; + 57BC884F6BD181585A0B6F7719A49E2B /* Observable+Time.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69B06482690AB04BAC88256758995B90 /* Observable+Time.swift */; }; + 58CE04D9C6CAC7243825ABF4AB20EF32 /* MASShortcutValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = D12B3B0AB6BBE5692CC30020ED890E6C /* MASShortcutValidator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 59CF390612B666999922B2F9B6032D43 /* SingleAssignmentDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 385EF54CE93CF6561FBD6FCD4BC908CF /* SingleAssignmentDisposable.swift */; }; + 59FAD0BBD4C663C17F44B59EFCA2A982 /* CombineLatest+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1714F14E43A69F77960977683265141 /* CombineLatest+arity.swift */; }; + 5A30DAB76BB1814664FA7DC30939DA24 /* MASShortcutBinder.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C0EC59C08B29B12978B1C4DBDD6491F /* MASShortcutBinder.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5AA7F01B9354C3DD1AB37F4AE65A5F4E /* Observable+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64A21A2EB387821C687BFB0B5FC0D242 /* Observable+Debug.swift */; }; + 5AB880D9ADA38379AE40B94C492D6541 /* SharedSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BD8062B3919962E8EFBC3E6DBA8537 /* SharedSequence.swift */; }; + 5D8999DD4665B8E0F332EEC6B75CD6CF /* BooleanDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEA3B8F9A25C60DBAD70F2E3BA7DEC79 /* BooleanDisposable.swift */; }; + 5E74113E3B8562A64DB64EF45BCA52C9 /* DisposeBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77A56791C067FBC9E3AC1405C667F1BA /* DisposeBase.swift */; }; + 5EA93C9BD770ADB728BD2CFE4FF44DC7 /* Never.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF3B7799254D602BB02B42C4E30CFFF /* Never.swift */; }; + 5F1FA9D431587CD257C703AF16134030 /* ja.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 76BDABDC97B3B4B0598FB6DF3966C3EA /* ja.lproj */; }; + 5FF7D42F51FEAEB192E61355AAEAC6DE /* MASShortcutMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = E4B98A26D58EDEECA20933684CC1C45F /* MASShortcutMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61200D01A1855D7920CEF835C8BE00B0 /* DispatchQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72D5CA8AF08CC028C391EB1A38C661B0 /* DispatchQueue+Alamofire.swift */; }; 618D3C71663174E07B65950421C46D48 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 139134EE845E284F4B3ED2EF2F9A302B /* AppKit.framework */; }; + 625FB12932BD111CA0CB053F2820F15A /* NSObject+Rx+RawRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D934D4D41993FB7CED17EF07D57ED0C /* NSObject+Rx+RawRepresentable.swift */; }; 626A7B01D3D6B6EA0869551ACE82FB8B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA9A1A86E1594EEC96C2B7214E16E50F /* Cocoa.framework */; }; - 62BCF246203C0F0872F6ABB6A1620D32 /* Observable+Time.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0C535339357CC5D93CA927CECB123F0 /* Observable+Time.swift */; }; - 62F65AD8DC4F0F9610F4B8B4738EC094 /* ServerTrustPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9C0D3B37EBF8F2D69675B140D08F2C2 /* ServerTrustPolicy.swift */; }; - 6353703943D7D2312070AFD17CCB65AD /* Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F592655CCDF43D1184F7DCC5E7E4FD4 /* Optional.swift */; }; - 636D056E73695F4C9DB7721E8064A02E /* VirtualTimeConverterType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09404441C1943A1C1C15699C71F33D2D /* VirtualTimeConverterType.swift */; }; - 648C55C1798400EC2622AD90E7BB4A7C /* NSView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEE98592A8E669C3B96D3E19120FC821 /* NSView+Rx.swift */; }; - 64995C953E64C6F7105B3728672E316F /* Observable+Multiple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 810CEE92287B0EBC821481019F3339CA /* Observable+Multiple.swift */; }; - 65AC91F0CD9F560A7904BFAABD92C60B /* Logging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47E82A0897F8223FF68BA4F995D79C8D /* Logging.swift */; }; - 66AD0D86950A5C05121AE482F5257717 /* GCDWebServerConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 041B57D22A62A24545E85A4646383BA5 /* GCDWebServerConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66DEB394C39F5DCCD70A27ECEF274983 /* de.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 96A80BADDCAF42068E3B168DD679B06E /* de.lproj */; }; - 68924F5463C83413FAB0AF1EF9A13CBC /* ScheduledDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 714CAF0BEC8075917C6E5B21A40F51DC /* ScheduledDisposable.swift */; }; - 699AFBBF79B3202D7B230A0A22DABB18 /* Zip+Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = F297CA1E051508BD3B6024498BC6FC3C /* Zip+Collection.swift */; }; - 6A7E08A902C0F36A9AC0CFFE7F868C4A /* ControlEvent+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E94EA62172D30A25E824EE75E3D9C0B /* ControlEvent+Driver.swift */; }; - 6A93DF12A8D132337D0B6944A54C7B03 /* Multicast.swift in Sources */ = {isa = PBXBuildFile; fileRef = 430720C6D9B5E4034976BD314857E51E /* Multicast.swift */; }; - 6B023721711ECBB4969FF35AF43D542F /* Never.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB6E0C832D664BB3933B743E204615D /* Never.swift */; }; - 6B4361F5ADC6268E7953732371174FE9 /* MASShortcut-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7840085CAB4823FE9A3BE2CB2174BC31 /* MASShortcut-dummy.m */; }; - 6C62ACD1AF9B80626023D3E654D3E77B /* GCDWebServerStreamedResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 53D1C7024A81399E15CEE5B8F618A68E /* GCDWebServerStreamedResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 62F65AD8DC4F0F9610F4B8B4738EC094 /* ServerTrustPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F857A6751201ED3D72F96DC13C729F /* ServerTrustPolicy.swift */; }; + 63B5A98D9EF3325EEF1F93ACFAB7DC39 /* Timeout.swift in Sources */ = {isa = PBXBuildFile; fileRef = B42525F3404A9781D07CAE62FD5E4918 /* Timeout.swift */; }; + 64E8CC7D517563FA0FE904F5917FE2E1 /* TailRecursiveSink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A1F43CF3068C2DCAA16CAF4E7EDCE4E /* TailRecursiveSink.swift */; }; + 6670B050A7427F9C7393AB5D8D2E26FC /* NSView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96A99E648BA7AA9728B58FA257DAAB8E /* NSView+Rx.swift */; }; + 66AD0D86950A5C05121AE482F5257717 /* GCDWebServerConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = FAFB76E73828C3673CEC60577DD3D7F0 /* GCDWebServerConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66DEB394C39F5DCCD70A27ECEF274983 /* de.lproj in Resources */ = {isa = PBXBuildFile; fileRef = B306B418AC914FC9F036591616123AAF /* de.lproj */; }; + 677791FD8851F4D960BD70AE613BBA14 /* Disposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94E567C35466451FC7539A0BD8DA6046 /* Disposable.swift */; }; + 68EFC793F03DFFF389E88AA969A8BB70 /* Switch.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9ABBB68077D7AD074DFC9923895B5D6 /* Switch.swift */; }; + 69BDA19A850913A07F745502A2943BDA /* SkipWhile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A46EF6D6AE7B13EF91E0A19B18EABEE /* SkipWhile.swift */; }; + 69E55ABC7A2FD0420B1F5DB3172B10E1 /* URLSession+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = A88DC5BE37CE2B71CAC10B055D989D0D /* URLSession+Rx.swift */; }; + 6A46A6E9EC3D5EBE6868B267874C7F75 /* DispatchQueueConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF6621583BA40AE9A61D2F58B49462B2 /* DispatchQueueConfiguration.swift */; }; + 6B4361F5ADC6268E7953732371174FE9 /* MASShortcut-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 999B20A513A4091BA573B86714915DD0 /* MASShortcut-dummy.m */; }; + 6C62ACD1AF9B80626023D3E654D3E77B /* GCDWebServerStreamedResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 49AA0901E701115CB7028794961FEE8E /* GCDWebServerStreamedResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6CE32532AE4F14383FC5987D2EFC594B /* SubjectType.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAF4B22EF3D343BEF33D2881F14213DF /* SubjectType.swift */; }; 6CE3F1A01E6DE8F58A874B780C66A6FA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA9A1A86E1594EEC96C2B7214E16E50F /* Cocoa.framework */; }; - 6D1B82733CCD35C7B720D8B306969DB2 /* _RXObjCRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = 145175C8AA8A892EBA0AEC97F7612D90 /* _RXObjCRuntime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6D6E7ADEA922698A850B81747EDE156A /* Repeat.swift in Sources */ = {isa = PBXBuildFile; fileRef = F49B97A2DDE155335D9A857CBCC1443E /* Repeat.swift */; }; - 7269959C7F25D3669B4CCC0BEFC43EFB /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5B12421F65E2E98C029ADC1ADEC949D /* Event.swift */; }; - 72DE99612A83DF8C807353F1A9ACAB4E /* DispatchQueue+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B53BE22700435344F5040D7A34438C79 /* DispatchQueue+Extensions.swift */; }; - 73F0143CB5E58D6201A6FBA2252858F4 /* Take.swift in Sources */ = {isa = PBXBuildFile; fileRef = C28A12A58B667D3534761E41E833AD91 /* Take.swift */; }; - 74EFCC6DC65CEBCF60B106F7FBB14EA2 /* MASShortcutMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = 3446B97BEC82628B5B70EBA865321925 /* MASShortcutMonitor.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 751AC207B038ADC338015FD80AA54B76 /* MASLocalization.h in Headers */ = {isa = PBXBuildFile; fileRef = D22C2E880EC2CBCA5E33F7C18A7C28E5 /* MASLocalization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 756E3D696CCD8F588DF9292AFF378C4E /* AnonymousDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78DB8C39B2ECE834500856BA7F87808B /* AnonymousDisposable.swift */; }; + 6CEB47895E9B0D9170C31591412A7490 /* Sample.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63973CDD0819B187A85E746CC55ED88F /* Sample.swift */; }; + 6D1A95ED4B8C56039BEA5CB0242D1B29 /* Debounce.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49D0AEBF622CB33505BCC1202E398B34 /* Debounce.swift */; }; + 6D1B82733CCD35C7B720D8B306969DB2 /* _RXObjCRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = B6411B80A4E73D2B05D6D2DC38B39232 /* _RXObjCRuntime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6D71A4D5D45590A99D42928E14133A61 /* RxCocoa.swift in Sources */ = {isa = PBXBuildFile; fileRef = F684374BB1F33C4CA323178463EB2028 /* RxCocoa.swift */; }; + 6DEC6398861E6DCBB4D67813B1E75036 /* Map.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D0D3E3125AF3C4C71554245E74E3A8C /* Map.swift */; }; + 6E8DF9E210380F39D45784980A71822F /* CombineLatest.swift in Sources */ = {isa = PBXBuildFile; fileRef = A04BDAC57478865FE5DD3EC203E58F10 /* CombineLatest.swift */; }; + 71AF173C50F15DA473F398350C6A5FED /* Lock.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFDF2D18587604D407F5C9C506D4018D /* Lock.swift */; }; + 74EFCC6DC65CEBCF60B106F7FBB14EA2 /* MASShortcutMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = 77B1E0282CBC343B82CC78C567B8B534 /* MASShortcutMonitor.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 751AC207B038ADC338015FD80AA54B76 /* MASLocalization.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D679D13A827958B8B727FA6E970D093 /* MASLocalization.h */; settings = {ATTRIBUTES = (Public, ); }; }; 75780983A83E65A597525566173E3C7C /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B792280B7BC7CA44B5D7090C8F732A0D /* RxSwift.framework */; }; - 76537FCDFF46E2EAA84E9632DB6A21ED /* MASKeyMasks.h in Headers */ = {isa = PBXBuildFile; fileRef = 734A36BDD429097E76987966DC4ED7AF /* MASKeyMasks.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 77C70A22F2B4145CF5341817585C134B /* SharedSequence+Operators+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992670FA98E8ED847E3131B73896D8ED /* SharedSequence+Operators+arity.swift */; }; - 7B5FE28C7EA4122B0598738E54DBEBD8 /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D741EA049F662EB20482A9A330B6FAE0 /* SessionDelegate.swift */; }; - 7B70A32CB535894B889DC0400D0DE4B5 /* GCDWebServerDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5804C71C9D97BB10B0FFE80E795CD85E /* GCDWebServerDataRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7C2510201C3D043BAF6D7D3E3D68CB3A /* BinaryDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B2A679FC3BFF4F53FC9DF5CD71C6E75 /* BinaryDisposable.swift */; }; - 7C46C6DFBF9F5A96C6BCE1C93052B63D /* GCDWebServerHTTPStatusCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C3DED13280C0FE73368A82866875B7 /* GCDWebServerHTTPStatusCodes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C71E95D2740D598A7B8B42EF962B00F /* ScheduledItemType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3B86E229BBF998819417BA1EF0B5A5D /* ScheduledItemType.swift */; }; - 7D8CC01E8C9EFFF9F4D65406CDE0AB66 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4865DDF25A3AA8BBC5BE34A85F18D17C /* Result.swift */; }; - 7DDE276EE3BD477C709DBCD1C38B03E0 /* SynchronizedDisposeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C28568E6E85CA37FC088179660CE6A /* SynchronizedDisposeType.swift */; }; - 7E20F5346ADC8F4F5C069EDDE10897FD /* MASShortcut.h in Headers */ = {isa = PBXBuildFile; fileRef = 43F1B63559BBFA7E83623D1C9AC8E633 /* MASShortcut.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F2467C9E8CB2CBC330D331CB6C8BB98 /* SharedSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B8CB36B3783E2A2310ADFB4CC33864 /* SharedSequence.swift */; }; - 80B90DB44C8F9D684F4E301E9C0AC090 /* Throttle.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1CDAA1E9C8D90D41A2E7EDD9164500F /* Throttle.swift */; }; - 81B6397FECC803695902CEDB37CB4DFA /* MASShortcutBinder.h in Headers */ = {isa = PBXBuildFile; fileRef = CD17E58327299EAC195D109A1B69B917 /* MASShortcutBinder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 84A972377538A384D469D5B3799DFC3F /* Just.swift in Sources */ = {isa = PBXBuildFile; fileRef = E809E90945E9BE1B60403F66019B3FF4 /* Just.swift */; }; - 84EB655E0AD1E3646633D47C0D047EBC /* Timeout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79D3FF68C5D11A301F7C27AC3B626AB1 /* Timeout.swift */; }; - 8605C5332B728C31426A255BCF14FBA9 /* ObserveOnSerialDispatchQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 855CC0FE8F67377D0E604979734C70A7 /* ObserveOnSerialDispatchQueue.swift */; }; - 86F7FE179A98E2787500CA0DD68F2574 /* _RX.h in Headers */ = {isa = PBXBuildFile; fileRef = DEB9C9F773C5584C1A64134DF28D78E2 /* _RX.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 876D3351B96DD42235328028C5EA685A /* BehaviorSubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42C0F905B71E4F428236353DE12928B /* BehaviorSubject.swift */; }; - 87E9A539E61AE876EACCBEDB8233D9C4 /* Zip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 732EEA83B671AC91F7FF52CDA4C2835E /* Zip.swift */; }; - 880C6F044DF17CD72542B4A20C22F70B /* ToArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = C62E07D7645966D27B953E4580313A3D /* ToArray.swift */; }; - 886E89D85907BBD7A8C8BAA088D23E3D /* GCDWebServerFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 7568784246140565AB9D65499F73D5CF /* GCDWebServerFileResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 889D4A9563783DAD50090FB7AA14D591 /* KVORepresentable+CoreGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44AB1ECD0CB22EBDA55B3C604C16B84E /* KVORepresentable+CoreGraphics.swift */; }; - 8C1524EFD8466D86020C1F2C6A922D84 /* ControlTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDF7D11C29F998B81F2EC67417F7E5E4 /* ControlTarget.swift */; }; - 8C5EA18EEE22A60BF10955E38F0D3A75 /* MASShortcutValidator.h in Headers */ = {isa = PBXBuildFile; fileRef = DFE42161A598BDA23E054E467E3BBBCD /* MASShortcutValidator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8CC77692B2147DAEBBFB618C179C4175 /* NSImageView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABBC6E0B59D4E0A8264EF5775E962781 /* NSImageView+Rx.swift */; }; - 8D465F56E6992ECD6D7985B7D7D519C3 /* SkipWhile.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB6650CEB7DB19C31BA4430E3E4A0B54 /* SkipWhile.swift */; }; - 8D8907394B54F53C73E1D71ABE09BC66 /* Platform.Linux.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C8A6200FBBE9F05CEF009C65C0AE129 /* Platform.Linux.swift */; }; - 8DB189E11E752F521E1387EB147BC5CB /* RxSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AA25737DC8326205335C494D261A558 /* RxSwift-dummy.m */; }; - 8DC023486CE85BB68B5545EF5409FB71 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = 792F8486AB9FF811EC6308B78C9E71B0 /* Error.swift */; }; + 76537FCDFF46E2EAA84E9632DB6A21ED /* MASKeyMasks.h in Headers */ = {isa = PBXBuildFile; fileRef = 259F77E2EC48E07223226DD78300AABD /* MASKeyMasks.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7743CB22A5AE8379D41C0BDA7FA85470 /* ShareReplay1WhileConnected.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71150F3D7194C1783C37A070F1AD879E /* ShareReplay1WhileConnected.swift */; }; + 77CFCF08FC8EA9F7758207854CED1E55 /* BehaviorSubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D71F1C033CF6233A31594BA370062CA /* BehaviorSubject.swift */; }; + 7841A7635F46B11A9A96F101CF5F4354 /* DelegateProxyType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DED940C0868591ED86659234813AF5B /* DelegateProxyType.swift */; }; + 78EBCD44C7BC4E2AB3ED660E9CAECFBB /* Empty.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB76A421976FAB6ECBC3D127F6A77FC9 /* Empty.swift */; }; + 7A303312792E091ABAE7157A9FB83B23 /* _RX.m in Sources */ = {isa = PBXBuildFile; fileRef = 42677271ADFD7C38E4A2D9A129A60105 /* _RX.m */; }; + 7B5FE28C7EA4122B0598738E54DBEBD8 /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C4A3D2ED8D2752319AA3649ECF09EA1 /* SessionDelegate.swift */; }; + 7B70A32CB535894B889DC0400D0DE4B5 /* GCDWebServerDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F9C2E8F767184184382C0659D0B57C6 /* GCDWebServerDataRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7C46C6DFBF9F5A96C6BCE1C93052B63D /* GCDWebServerHTTPStatusCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D2D8747A63B260F80C40C9DCDAC357E /* GCDWebServerHTTPStatusCodes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7CD1DD00190DB1ACA427120A0F54AAB5 /* _RXObjCRuntime.m in Sources */ = {isa = PBXBuildFile; fileRef = 37276F2D8D3AED22ABF63827FF4C2E1D /* _RXObjCRuntime.m */; }; + 7D6E4A9CA431CA9D7BAF04817FB59C61 /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6200462FD0350D942C06454BF3959B8D /* Observable.swift */; }; + 7D8CC01E8C9EFFF9F4D65406CDE0AB66 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A03D18B60F1C426EF558F967B149830 /* Result.swift */; }; + 7E0C22AADD7C94FAED4BA3FA5802EA11 /* ObservableType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69DF594FDFE7BC49AA1019B10D7065E7 /* ObservableType+Extensions.swift */; }; + 7E20F5346ADC8F4F5C069EDDE10897FD /* MASShortcut.h in Headers */ = {isa = PBXBuildFile; fileRef = BFBCCDD4FB2BFEE4F62E4783156E5C68 /* MASShortcut.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7F04E0567A70E986129DD6C9E2B467F1 /* Deprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC7FD09C09D1BDD8476A89AA647DAF8C /* Deprecated.swift */; }; + 7F3021ED7A62270BBCA3F9A4C13285EA /* SynchronizedSubscribeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DEED24A26C9B7E2A8FFD080F9C8C2AF /* SynchronizedSubscribeType.swift */; }; + 7F56F52F0503DF86BAFA5E0245643804 /* Queue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 214BCB3965A64FB0986840C0E083418A /* Queue.swift */; }; + 7FB525438AD4F2FB899B71CE0FC1A059 /* Platform.Darwin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87580AD4D9D45E84D60D81B7D6E97C0A /* Platform.Darwin.swift */; }; + 7FF7CAC8360011983D8A150A70ECAB6B /* ObserveOnSerialDispatchQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FE77EB2349A660DFADBF5CE01DEF91C /* ObserveOnSerialDispatchQueue.swift */; }; + 8087E705CC00CA7C021AF6601E343C7B /* AnonymousDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56E8831C108769CCDBD44A22DC79FC6C /* AnonymousDisposable.swift */; }; + 81B5B2FE5823C56C6B5E712BF392F1B4 /* Sequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88C9C68749757A2F4BCA7FFF1CA0F9BA /* Sequence.swift */; }; + 81B6397FECC803695902CEDB37CB4DFA /* MASShortcutBinder.h in Headers */ = {isa = PBXBuildFile; fileRef = 90BD54F6E711E6C0C832CFD421265D40 /* MASShortcutBinder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 83EF434424E7664543A3087F24738083 /* DelaySubscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 135780AE39D9C9BBD7443F7F21288DFB /* DelaySubscription.swift */; }; + 84A730F255D8C54A7F8A020CAC048A5A /* Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0394897FCAD2777CF1A4384FE731D25C /* Optional.swift */; }; + 84CE2F3B9BC695F0B6E48B2D6405659F /* KVORepresentable+CoreGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = B548E9BFF5CF1A650F920B46F2078971 /* KVORepresentable+CoreGraphics.swift */; }; + 852BFFEC5A19EC92A4A72C7072E11224 /* Repeat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A11BED0A468B53EAE2F900A790FB03A /* Repeat.swift */; }; + 85A2F7602621DE3FBE64FE43DE060EA7 /* Platform.Linux.swift in Sources */ = {isa = PBXBuildFile; fileRef = 912D7029A05911D1FB4ABFF9E2B851C7 /* Platform.Linux.swift */; }; + 86F7FE179A98E2787500CA0DD68F2574 /* _RX.h in Headers */ = {isa = PBXBuildFile; fileRef = C0064AD98E8E57DDFB68577F20E20FAC /* _RX.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 886E89D85907BBD7A8C8BAA088D23E3D /* GCDWebServerFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 04FCB8C241708CC45FF52AFA691DA336 /* GCDWebServerFileResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 889A7A900C61A4B93329387833E2C65B /* ObservableConvertibleType.swift in Sources */ = {isa = PBXBuildFile; fileRef = F72515DA7F790ADA9DF78910C67193DB /* ObservableConvertibleType.swift */; }; + 8AE3D3F02C4FC2EB6A10602D6A18A234 /* RxCocoaObjCRuntimeError+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9761A45C8B106617BE144782B56D8C8C /* RxCocoaObjCRuntimeError+Extensions.swift */; }; + 8B192520AA37984CAF1D2D760A62307E /* Merge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B3D790CC9A67D70E3E0EDD445F085E1 /* Merge.swift */; }; + 8BAF2E7597F1559A99FFB9C4DBDD9279 /* Observable+Creation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E634B678C5C5CF993CA1475A75B7DEE /* Observable+Creation.swift */; }; + 8C5EA18EEE22A60BF10955E38F0D3A75 /* MASShortcutValidator.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF6A88B14EECBA592B26FDE26199CA /* MASShortcutValidator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8C8CC54FC0B2BC4ACE282AD7EDE2CB6D /* Variable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1F45AC654673C96B25C288CE2ED7757 /* Variable.swift */; }; + 8CBA48409C86D95E6C4ABF3B26B8D0B8 /* Concat.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7104A53E83466AD81DBF532DBA762E1 /* Concat.swift */; }; + 8CE914272F3F97EA9F1568043975674A /* ControlTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C59EAD8143A508A0231627DD42D5C23 /* ControlTarget.swift */; }; + 8D12A35F60C0393445B793DBB638575D /* ControlProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99EFFE07C47D5D98611714C066D640BC /* ControlProperty.swift */; }; + 8E48DA9023ED9B9E18414F2827949056 /* Cancelable.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB8D181B14C53055CA4F2D61166A6C7D /* Cancelable.swift */; }; + 8EA651DF52CCAF3C7F7F8DFE3EBA4130 /* ScheduledDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCBF6FFFBBE49493E089992E786E1A20 /* ScheduledDisposable.swift */; }; + 8F3401FDD9D855007B24BE4AB7C0FC04 /* SchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0947568290847B529166B4C9F28347BB /* SchedulerType.swift */; }; 8FEBDE87BFA67E4AD0EC88774A1097F2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA9A1A86E1594EEC96C2B7214E16E50F /* Cocoa.framework */; }; - 8FFA3A6A77962B3A36B009A49634D081 /* MASHotKey.m in Sources */ = {isa = PBXBuildFile; fileRef = C21DA07175E00F9652FEE28ACB8A721E /* MASHotKey.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 94273CE6C30D0DB5BBF8579D0A97CA9F /* OperationQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55881B24D12F75F02F1EF97DBE920CF9 /* OperationQueueScheduler.swift */; }; - 95AC8562635870772E618499EF083802 /* Reduce.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78697A689E989F8760B7F115D0F15A40 /* Reduce.swift */; }; - 95B3765B29823D808D7E7CDC32980CC8 /* SchedulerServices+Emulation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E01D49455ED5C62F58BBAE0983AEB788 /* SchedulerServices+Emulation.swift */; }; - 95DFDB38DB26CBCCFF296D8ED3E77940 /* DistinctUntilChanged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DF6EBFF755554CC9AB8962CD97A8DC3 /* DistinctUntilChanged.swift */; }; - 965B1E00C33296E80367B418D31E72CE /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EE36FCA3C6A386A888AD56E20DFF50C /* Observable.swift */; }; - 97B374490F695A6ECB06271EF080EB6C /* nl.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 36D63AB3B2F8729D38D2243E79FA9D37 /* nl.lproj */; }; - 9A551C74F80912EFDFC942535ECA28BE /* RxCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 08BD28C9755413291F8752D325956F13 /* RxCocoa.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9B622302DDDA1881AC9ABA9EA4C81564 /* BRLOptionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = C2E109F0988D784B0B51149C9E0CFB7E /* BRLOptionParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8FFA3A6A77962B3A36B009A49634D081 /* MASHotKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 550F2C93957EF2301541066CF63D46BC /* MASHotKey.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 92805E4E337491904604FE86909924FA /* Timer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81A1AAE28282C31243C72011FF5A4830 /* Timer.swift */; }; + 951C065E37A9ED6736A9697B231AC365 /* Multicast.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5374966D42537C6369072660B48CF199 /* Multicast.swift */; }; + 96719B2401B89179B97BE8828702C730 /* SynchronizedUnsubscribeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 528841720C50D9A4B73EE2A4C6A8E132 /* SynchronizedUnsubscribeType.swift */; }; + 9676160A622D6A1E0ED9A304D56E9E0B /* Variable+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EFC56330DB909884DFCFFEE79C788F2 /* Variable+Driver.swift */; }; + 977E457DD1A321217C8A9CA0B1AC8C61 /* SkipUntil.swift in Sources */ = {isa = PBXBuildFile; fileRef = B90BBC0A33E35F445599411A4755CA2E /* SkipUntil.swift */; }; + 9794085A02FC87CF773A9EFB60C40F78 /* ConnectableObservable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6A1E5B8450A97482BAF559588B3DD71 /* ConnectableObservable.swift */; }; + 97B374490F695A6ECB06271EF080EB6C /* nl.lproj in Resources */ = {isa = PBXBuildFile; fileRef = C32CA98BF3892E9768040A5EE4DCCCD2 /* nl.lproj */; }; + 98FBAAEB02A3A0CAA335BD31829CF985 /* ObservableConvertibleType+SharedSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CE6F293A7A5280E8364DA3F1C0B4B1B /* ObservableConvertibleType+SharedSequence.swift */; }; + 99662A21FAA5C025E034AAA5428E8D63 /* Observable+Binding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34B22FFDD2CE991366EAEE41BA0B706A /* Observable+Binding.swift */; }; + 9A551C74F80912EFDFC942535ECA28BE /* RxCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 8865ABAF07DEA295CE14F00DEB443C41 /* RxCocoa.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B18C2229AEFC7674EF9795A7A77DCEB /* Driver+Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3690656BBFBCA6B31887844429A9D961 /* Driver+Subscription.swift */; }; + 9B622302DDDA1881AC9ABA9EA4C81564 /* BRLOptionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B53429CB1F8A25076762F2D82D97CCF /* BRLOptionParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9BDE5D29C68F5622298CA4A54A2BCDD0 /* DistinctUntilChanged.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBCDC9591CE194B7B56FC4194F75DB4E /* DistinctUntilChanged.swift */; }; + 9BE2B48A0DE5CE3C3B4EAF39DA85A876 /* CurrentThreadScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4FB77C479CBE2951C13C488C5CBE57E /* CurrentThreadScheduler.swift */; }; + 9D6566D484F3BA80C9400E9DD202C281 /* Bag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EBB434DC5BFF77FC3F8C0215BDFC40F /* Bag.swift */; }; 9DB91F7B392D045AB8451F515D20D649 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA9A1A86E1594EEC96C2B7214E16E50F /* Cocoa.framework */; }; - 9ED2BB2981896E0A39EFA365503F58CE /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F30225997CEEA64CC0BDB9D5483A203 /* AFError.swift */; }; - 9FA3673BE87BC7DFE277B6A540465F3B /* Generate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF6A784C26C191A7BB651A20F9FE09C2 /* Generate.swift */; }; - A2A6F71B727312BD45CC7A4AAD7B0AB7 /* NetworkReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 156BD4BE88EBFE3B4B75AB2159FFEA69 /* NetworkReachabilityManager.swift */; }; - A4DB0F25CD590C73E2EA2586822D54FD /* Queue.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD85B8D01C25C718B7106EE598B59F05 /* Queue.swift */; }; - A4DBF0AB2E88B1A9D1078042F47618B0 /* ru.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 1E8F8E501B0EEF1A98B9B7557686F4DC /* ru.lproj */; }; - A7B470FCCAD399F59B3627257F78D6D6 /* Sink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F13DE488DCBBAE4BDBC0CFC97574078 /* Sink.swift */; }; - A95A82AE1BBE7BF8A32F427F5263EDC0 /* PriorityQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A7C5FEA0C034019250F845D696DCCC6 /* PriorityQueue.swift */; }; - A97DC783F3BF2BB7191E451487A7830D /* PriorityQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = FECDA2B834D431A94C10FFDA1E53F33E /* PriorityQueue.swift */; }; - A980984343A8FBB1666C9DC5A50760B4 /* ObservableType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED83F972951546FF54141DCDFFA0A699 /* ObservableType+Extensions.swift */; }; - A9E59702B924D5C4228A7E7C0D256DDC /* Switch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E65A0563A25A9BC5540C5C6752AFB8F /* Switch.swift */; }; - A9EEEA7477981DEEBC72432DE9990A4B /* Alamofire-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E6312D7CA68889DE662535E01249EE7 /* Alamofire-dummy.m */; }; - AA7CDF00DFA1EAFF7F28CAF33FE5BC37 /* MASHotKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DCF2459B4B59AA53E371B3303793795 /* MASHotKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AAE9C0157B2A7C8FA1437AE63D7A7281 /* MainScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C63E884ADD906BC90F3C32DB52CC398D /* MainScheduler.swift */; }; - ACBE29C4BF8BAEA483D6EEA940FE5314 /* MASShortcutView+Bindings.m in Sources */ = {isa = PBXBuildFile; fileRef = B2A49B7D2E244535BCE8E120F0D8D070 /* MASShortcutView+Bindings.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - ACD3D417D834EBD534A3E18B3C01B597 /* Disposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26580914BABDC16C8FB464FE319029B4 /* Disposable.swift */; }; - ACE988968174554A0ED558154694E95E /* ObservableConvertibleType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FDB1E75DB13288544C739E40C5BE9EF /* ObservableConvertibleType.swift */; }; - ADD593AFC898ADE7B8FC61DF7BAA4964 /* Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33BF1B946B229E3493A637930A931DA2 /* Range.swift */; }; + 9EACF2968862DF9219BBE32011842CDF /* Reactive.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D6462467149007CC9112C18E0FA2BE0 /* Reactive.swift */; }; + 9ED2BB2981896E0A39EFA365503F58CE /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7CAE213EE8F8ECB17980C4BF269D35A /* AFError.swift */; }; + 9F5E6138A3FE1726687C407708C71B4F /* ConcurrentMainScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B2BA85AB97126B7F170B024F033AF4F /* ConcurrentMainScheduler.swift */; }; + A0C03D1525E6CED9442AE65F080B12E2 /* CombineLatest+Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58FCD780817CA60F10D6C39A083DDCDC /* CombineLatest+Collection.swift */; }; + A2215749D44CF8D1C3F40EBF3FDE3DBD /* DispatchQueue+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30D8B840460D79AB3B8AB39A4164F4B7 /* DispatchQueue+Extensions.swift */; }; + A2871C692E9B86522F46AA4100144621 /* Zip+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23D34D0E9C66E6F9595722372B9AED8D /* Zip+arity.swift */; }; + A2A6F71B727312BD45CC7A4AAD7B0AB7 /* NetworkReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFC679B790AD9EE3F36E8291BBECFF33 /* NetworkReachabilityManager.swift */; }; + A2CF744BF46B0F17DC6607F4D0D82944 /* KVORepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF51438B3E3A777BFCF7D021F49B4043 /* KVORepresentable.swift */; }; + A2E3CE14430670CE78113A4AA2282522 /* _RXDelegateProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EED0973795941F05F42B25E0C0F6D99 /* _RXDelegateProxy.m */; }; + A41241F5F212D2959EE88A02DA4B8006 /* ObserveOn.swift in Sources */ = {isa = PBXBuildFile; fileRef = A24870AF7F42FAA0AD9ABB0325F1E135 /* ObserveOn.swift */; }; + A4DBF0AB2E88B1A9D1078042F47618B0 /* ru.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 15FDCB75F28FF0766B21B59543A5AFED /* ru.lproj */; }; + A66A89FE5B6FC0BB454C391B22DA9E5D /* ControlProperty+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = F91767E7613F8479E6F65DDF39CDB558 /* ControlProperty+Driver.swift */; }; + A802DC058B09432DF8F56F89406CF4F3 /* InvocableType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D21B3357EAEBF44D19D3A611848628E /* InvocableType.swift */; }; + A8F15851A3BDF0B2474224E5776281DA /* RefCountDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A7E7809BC29FA83778B027FE2021B6 /* RefCountDisposable.swift */; }; + A9EA920651EC47BDE57A5BAAD44EF55B /* AnonymousObservable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C5B91DC04B3865DDDDC72512A5C3F54 /* AnonymousObservable.swift */; }; + A9EEEA7477981DEEBC72432DE9990A4B /* Alamofire-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A030F5167FA6558FE91D25425A0B9CBA /* Alamofire-dummy.m */; }; + AA7CDF00DFA1EAFF7F28CAF33FE5BC37 /* MASHotKey.h in Headers */ = {isa = PBXBuildFile; fileRef = DE1C155D92F36B81A10B04D3AECC44DE /* MASHotKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AB8322F9B396436A004AAEBD01BF3015 /* PublishSubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65268C40FD5106D32C7C227F38209B3F /* PublishSubject.swift */; }; + AC5D1A3CC7602A05322EF0B0B7BF8B85 /* TakeWhile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33045890E1D4469FBFD24F367E827FAC /* TakeWhile.swift */; }; + ACA9C9D1223FED43AAE8C8130225DCCF /* RecursiveLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 911BAB036265D98689D411112E34B452 /* RecursiveLock.swift */; }; + ACBE29C4BF8BAEA483D6EEA940FE5314 /* MASShortcutView+Bindings.m in Sources */ = {isa = PBXBuildFile; fileRef = F9A79C0537300E8EC3B4938AE3FCCE88 /* MASShortcutView+Bindings.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; ADE45FBACDF07286A544DC20605FE624 /* Pods-proxy_conf_helper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CE50445A73ECB9A2ED31A6FF93D45808 /* Pods-proxy_conf_helper-dummy.m */; }; - ADE52CEC3C99C491579C84EAD1E9A3AC /* Producer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DBFE4A2BEA99797EECA6F80B01CDD6C /* Producer.swift */; }; - AE1EF48399533730D0066E04B22CA2D6 /* SessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F62634DC9F384C9CC41CEDA292858659 /* SessionManager.swift */; }; - AFD698CCB4B270EA10CA5674A7C5FEE7 /* URLSession+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CA690C1F208F1306162397DEABE31E /* URLSession+Rx.swift */; }; - B2B321D56AF649DAC3D75F6A020ADD55 /* DispatchQueueConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = B17A240A53E7810AEDB4E2936154C885 /* DispatchQueueConfiguration.swift */; }; - B32863B4B34268AE9E40AEFE5A0C648A /* ReplaySubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0356020230831FEF31796FF613BF8AC /* ReplaySubject.swift */; }; - B424B5ADC87DCB8566E2DF93378702C4 /* Debunce.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E154A2F60883D6C1571925AC73829D7 /* Debunce.swift */; }; - B537A51B17BDBA5000C8AFBF5F5D644C /* Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3C8902E07EA5E5DE5E621971E1B5762 /* Debug.swift */; }; - B58863122018B82BEDE5700BFA85D96D /* TailRecursiveSink.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8BCA33BF99DD786DF82E4D02D5E7F3D /* TailRecursiveSink.swift */; }; - B6113F6876CC1EC5942329D951F51F99 /* ImmediateScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = B79A9D696C3F4750347FA86B4C4CC412 /* ImmediateScheduler.swift */; }; - B65FCF589DA398C3EFE0128064E510EC /* MultipartFormData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 637833F0E5DBD5017099EF0583351872 /* MultipartFormData.swift */; }; - B6B0BFAA4B2EDC9B19FFFFF98535A30B /* BooleanDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDCFD4F040A53B3A3EF03BEB2CC74220 /* BooleanDisposable.swift */; }; - B738E54C921B7EB262AAFE452EF5E5B9 /* Using.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13DC76F872C5CE141D7A381C3ED86F83 /* Using.swift */; }; - B7CD8326E8B8F502F56AF37EE47E1F2E /* ObserveOn.swift in Sources */ = {isa = PBXBuildFile; fileRef = 049B3D3D49998DB466FEB6A07B58CE38 /* ObserveOn.swift */; }; - B7D1CCC7182ED2604819332A6B26BC1C /* TakeWhile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6510627A459986B2675C9DF04BB19716 /* TakeWhile.swift */; }; - B7EF65DA3A34ABF3B41F50ADCD198BDC /* GCDWebServerFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BADCC46C21E3D39AF50D9AEC5800CFC /* GCDWebServerFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B99557A2D1CECD83B2AC7D8EE83E2162 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 191592A653EE5E76F4D61D104274AA51 /* Errors.swift */; }; - BAC1B51CD0A87789B317FBD5BB06552A /* DelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD3624B117D9AC549B1CAED71ACDA6FD /* DelegateProxy.swift */; }; - BBEFE2F9CEB73DC7BD97FFA66A0D9D4F /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F0A9B8CFF8FE0E517E372F3A135E25 /* Validation.swift */; }; - BD9A8D8F883436D80DAA180092826F59 /* ControlEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF1D18BE7EFD12AA66C3376332FEF003 /* ControlEvent.swift */; }; - BE5C67A07E289FE1F9BE27335B159997 /* ParameterEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AB8F8AA0CF2C7D1D506FB9347CAD420 /* ParameterEncoding.swift */; }; - BF9CC03D9F304A3B5882DA4C27AB4B49 /* SectionedViewDataSourceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23AF045F391083D9003B490F27BEF7D5 /* SectionedViewDataSourceType.swift */; }; - BFEA88B702838FD3731D4A289FDC060E /* VirtualTimeScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07FDE0C81FDCEF30B795BD32553111FA /* VirtualTimeScheduler.swift */; }; - C06EE84D23391E9FA94864DEDE34F548 /* fr.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 681AD0AD3FE6075FD0C745A2368127DB /* fr.lproj */; }; - C22C6ECD95AFB9E35C25D316E25D5F7C /* NSLayoutConstraint+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A283ECB7F07204392F8B86F905B1B7A /* NSLayoutConstraint+Rx.swift */; }; - C50FA5B211B8916770FBE55623B83DA4 /* MASLocalization.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EA43362B8170DE6F84E11B91A09EC32 /* MASLocalization.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C54AAB75EA7AEA2EC09044E5673A0C34 /* CompositeDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4AA715B5CFDDF37B623E756474221F9 /* CompositeDisposable.swift */; }; - C6B37A8FF222504586343B2DFA9AEF7A /* SubscribeOn.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12E7DBD1E1B501117F95768ED20BBEC /* SubscribeOn.swift */; }; - C83FB3FA4A1BEC6F9C237CDDDECA76A5 /* NopDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9350C02E503091FE07AEC409372D8DA0 /* NopDisposable.swift */; }; - C92206868B5A8ABFC32E91D7A830C8FF /* ObserverType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F76C18CDD50BC726A1A9F9713808F70 /* ObserverType.swift */; }; - C96E54153198E59FF0F8B9F7408523E0 /* GCDWebServerDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = CD9A1A157A1A6F85D6AAE2A82E930E2C /* GCDWebServerDataResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C9D831152A4A9CC9A0AD132C27727ADD /* ElementAt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FFD8762948A54487F18FE67BEE8F77F /* ElementAt.swift */; }; - CA3A97285A08BEC4505C953D548660FB /* ControlProperty+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CF036C948FB845526B616E2A9485814 /* ControlProperty+Driver.swift */; }; - CA3B4A6F5154DA40B8713EF5A2AFDA20 /* NSButton+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61722C6F303EAAE1C5638EE5B33DD66A /* NSButton+Rx.swift */; }; - CA4D925D276335F92C0476A4BB100312 /* Observable+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F8959F53CCE7B042DCD8B664A46438B /* Observable+Debug.swift */; }; - CA65999C4112C3EC6D71C5C8E70EA9D5 /* RecursiveScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CAAF792369765F875B4FABB87ECE3EE /* RecursiveScheduler.swift */; }; - CB6D60925223897FFA2662667DF83E8A /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 877E161F31772E123DCD4BC8EAA3EB75 /* Response.swift */; }; - CB921D3307D0CEE4CD1472946BFC184E /* ConnectableObservable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB043A7F7ED4CC26A55E3EAF07D57BC /* ConnectableObservable.swift */; }; + AE1EF48399533730D0066E04B22CA2D6 /* SessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78D3C582CD284C68D7B5FCF58D73BF07 /* SessionManager.swift */; }; + AE2B4C3519BCF47ED52108E615A778DE /* Observable+Single.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED29315833FAA1E5A338CFA8005377A9 /* Observable+Single.swift */; }; + AF816ABCF197AAB5DA7362510CBC36AF /* AsyncLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CBC95D81A39FE47DF7664F12F9FF6E1 /* AsyncLock.swift */; }; + AFA4B1D93CB3D6DC0AA571F54239C102 /* AnyObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57E4C19B3887697A8F7105471594B11 /* AnyObserver.swift */; }; + B0C1DEAEF59617FD104B45651A9E02E7 /* NSObject+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C22C8CFBFCA98BD54BABA13BDA83B12F /* NSObject+Rx.swift */; }; + B442B2E0FBC57B32C68E7F970A890863 /* SchedulerServices+Emulation.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDC25BCC601EFEC02F400739EAD16FDE /* SchedulerServices+Emulation.swift */; }; + B65FCF589DA398C3EFE0128064E510EC /* MultipartFormData.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA733FB551621A6A266D57AAB2CEDC2C /* MultipartFormData.swift */; }; + B6E8854A928CDD5A03A136A92BAFFDC6 /* Generate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 423730810CF7CCE34FE8316CFF58F0B8 /* Generate.swift */; }; + B6FE3D84E41A57384175035BC92ABEAA /* RxCocoa-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A299EE214CF95998A680C2E5EBEEC779 /* RxCocoa-dummy.m */; }; + B7EF65DA3A34ABF3B41F50ADCD198BDC /* GCDWebServerFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = BFD17FB0B8D729EB83B1AA769D30726F /* GCDWebServerFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA54F883C123CBEDD90E739B2B2ACCAE /* Variable+SharedSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E934534DD61AA5D52BB8BD519A53726 /* Variable+SharedSequence.swift */; }; + BA6C45B6BC8AED9DCFC82D7CF7A8A929 /* VirtualTimeScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = D14826507A4DA27653782BD16CF7B1A4 /* VirtualTimeScheduler.swift */; }; + BBEFE2F9CEB73DC7BD97FFA66A0D9D4F /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C3DDD5AE0D4C7DFC098D473F24ADFC5 /* Validation.swift */; }; + BC1C0A9BB7F0E803C621E106D2DD292B /* Do.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806CAD0BC89F898F94D939211ABC3384 /* Do.swift */; }; + BE5C67A07E289FE1F9BE27335B159997 /* ParameterEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = C32DA9D913B14198C262DA3670259B16 /* ParameterEncoding.swift */; }; + BED10B12B35FCD3CA735FE8A3B65774A /* MainScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4A0B1A36A704F964703C9BC39827964 /* MainScheduler.swift */; }; + C06EE84D23391E9FA94864DEDE34F548 /* fr.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 8EDBB56EE738F917614C08B706C06291 /* fr.lproj */; }; + C171A65415727D094B9AF634E1D172A8 /* Zip+Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB6A96F3AD4E1A22FFED4E6F0A4D1ECD /* Zip+Collection.swift */; }; + C50FA5B211B8916770FBE55623B83DA4 /* MASLocalization.m in Sources */ = {isa = PBXBuildFile; fileRef = 874D347DB51D5D3E716E95F6E97CFF9A /* MASLocalization.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C6696D7D4F90372F47C224F1687AB5D0 /* DisposeBag.swift in Sources */ = {isa = PBXBuildFile; fileRef = D83C9C9C216CD46EAD7B39EB3A0A703C /* DisposeBag.swift */; }; + C733DF41496B0364EF379F77068B4367 /* SectionedViewDataSourceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF2C9231D3FFC3BBC92AD47C894E1F5D /* SectionedViewDataSourceType.swift */; }; + C779A6C734EA83712332BA6A13EFFE5C /* DelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B0382153B0EC132C2BECD3DCB1193B6 /* DelegateProxy.swift */; }; + C7A9B35BE31DF4C7DE1082BB94D1E8F2 /* StartWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 612574DE7BC9EB82F4DCE7D2E38318B9 /* StartWith.swift */; }; + C8FF11576430A8FC899515C128F80A67 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = 941AD6E4532B1B070D2592FE3A2AE752 /* Error.swift */; }; + C96E54153198E59FF0F8B9F7408523E0 /* GCDWebServerDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E0CFCE9AB3B6AFD0691E63F63F62B18 /* GCDWebServerDataResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CAA6C816B24605177BB40AA731710460 /* ConnectableObservableType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D34A2C6821DD92D46F0901C579DAEF53 /* ConnectableObservableType.swift */; }; + CAAA66DC11EF7A8AFC3F9E08689BE08A /* AsyncSubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACEE1641B4A1142BE9D66F1E19A1A083 /* AsyncSubject.swift */; }; + CAFB60F384AE9659EDB5D377F5D183F9 /* Platform.Linux.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58CB8D564AB01DBEED55DBEB75380239 /* Platform.Linux.swift */; }; + CB6D60925223897FFA2662667DF83E8A /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30FBBC7DFAD0F5694D59ACC330B005E0 /* Response.swift */; }; + CC5DF94AD0EDC78D929C06C6E2AC1E95 /* Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85BE206744586C11C8C71BF92918AB7B /* Rx.swift */; }; CD97073476795E5EAA07C91A7F7890D2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA9A1A86E1594EEC96C2B7214E16E50F /* Cocoa.framework */; }; - D0E12AD3CCD78DC53A391809FC085C69 /* WithLatestFrom.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51CD43BBF9E07B471180B3C6A10EC0C /* WithLatestFrom.swift */; }; - D1E502592E9BE6AC042E2BCF0CA546E4 /* ObserverBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2A563269DDD44C5472F388FE17CF34B /* ObserverBase.swift */; }; - D2B04C075D6CA6AF10C35D8BF7DEF0D3 /* GCDWebServerFileRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A9743EE40CDB23A5B902DCA0EACD4F8 /* GCDWebServerFileRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D3117D8EA464B11367A3111EC49F544A /* Variable.swift in Sources */ = {isa = PBXBuildFile; fileRef = E58577DB359E44ED81D9764E891B1E47 /* Variable.swift */; }; - D427A2DEF72EE38F35E0180E6CEA7836 /* UIBindingObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88A487D891BF9234985AA4099272A55F /* UIBindingObserver.swift */; }; - D4B59D90C107A21A4E79D5F1E438791A /* DisposeBag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07CBE0BD61056E4192366A2BEB5035FF /* DisposeBag.swift */; }; - D5E905369D09381D329C16B04EB087DB /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD14A3E25D58B573F248D9BAEFB1FD96 /* Filter.swift */; }; - D63E514E26A060F7C90A92AE8E9B49F9 /* GCDWebServer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3934F71A55252BAEC1B840B4FB0F5831 /* GCDWebServer-dummy.m */; }; - D6E485F4B677A8530CE25D81F2F21BE4 /* CurrentThreadScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399C88A36ABC21E580DC529BB5ABD62D /* CurrentThreadScheduler.swift */; }; - D6EA93219364CDC135BAFE63084F6361 /* es.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 5CC992AE60F80ABE4AF96D7FB5D21FE1 /* es.lproj */; }; - D7524216B4C0994A50624825DFB7CB6B /* GCDWebServerConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ED1793F25CA7EA6496FF4ACB5360784 /* GCDWebServerConnection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D96B27ACC1B194C3E1B658E67687C195 /* ConnectableObservableType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB026E9D4AF4C5FBA8F291E002660852 /* ConnectableObservableType.swift */; }; - DA4140910A4A22776536B76470DF9A1B /* RxTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = D99D4398615AB6F4E3F9A978A1FBBBD1 /* RxTarget.swift */; }; - DB94D782C6F193FB6F56D52926F2A84B /* RxCocoa-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F4B4BFA85D88E0779216DDD104D2F899 /* RxCocoa-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DCEB8485F9DF589F1052AC9BAF1BF386 /* SkipUntil.swift in Sources */ = {isa = PBXBuildFile; fileRef = C77550063B64F014D70901594CE2B8AD /* SkipUntil.swift */; }; - DDA9DBF8AD0279173E5FCB78BAA1FBF1 /* Concat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C4D7DBC6617F730997D93E6D496A63 /* Concat.swift */; }; - DE24C629B3DB152EE4924B56E3CC59F5 /* pl.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 4FA5AD2B9A1E8DE99434B14B3549E0B9 /* pl.lproj */; }; - DF2762B53F71DBC62F8CE6D5A89E7461 /* _RXDelegateProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 5378A3AA30126867581EB3932CC75611 /* _RXDelegateProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DFA6E4455415B3EB3BB38A9F48EEB044 /* Shortcut.h in Headers */ = {isa = PBXBuildFile; fileRef = AD4ECEBBCA289543D5E13C73371BCCB3 /* Shortcut.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DFD85B645794CFCD77427C115F61B528 /* Reactive.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAE504DB6511ED954C7F3F53D78EFE96 /* Reactive.swift */; }; - E0A7C2B4EF093E65496C31BE8AE154EF /* ShareReplay1WhileConnected.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8E064CAF79139120E3D4F21DB6061FE /* ShareReplay1WhileConnected.swift */; }; - E2B2B2682B2F4AD8A0BF7F9007AFFE2E /* ObservableConvertibleType+SharedSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6581F3ACC8B4396727CEB2528B37F04 /* ObservableConvertibleType+SharedSequence.swift */; }; - E33E79B8BBB9FDCA0B0CAA15B335CF18 /* Bag.swift in Sources */ = {isa = PBXBuildFile; fileRef = F774A8AA7CF1C667887EFD6BB875DBBD /* Bag.swift */; }; - E4EF88D306B62375F97BFE1AF85C8CED /* ControlProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DB870B11C1F6D4D44DFD74BC9A31C93 /* ControlProperty.swift */; }; - E5312C0FED7C61135F252D3A7A112990 /* MASShortcutView.m in Sources */ = {isa = PBXBuildFile; fileRef = EB98EC4AC6562F031A89D824210E36CF /* MASShortcutView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E560A21728B29AF234BD0F37AFE16F36 /* en.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 92D90F1E9B3DB74E13DAEE89D729C388 /* en.lproj */; }; - E5FCD7D6CC4A3267A6DBCD636BFBCB90 /* NSObject+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BF8977C2D21F0E3E6B4809F5512A9B6 /* NSObject+Rx.swift */; }; - E62DD91C60246BD1E4E8A0AF5D7BF0E7 /* GCDWebServerErrorResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 296DBD7B4C2829639C9DF408009E61C1 /* GCDWebServerErrorResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E650654EFC351E571C296AE3E66B8CBC /* Driver+Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E84CF71B17BFE084E0D16395EDB8885 /* Driver+Subscription.swift */; }; - E66F7AFACFC665B23022A09E46815B5C /* it.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 454D73DC3052FCEF303D57FAB12CC353 /* it.lproj */; }; - E8BA7E89E83AD1FF70C0B8D690CE7EEF /* ConcurrentDispatchQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91CFF9598EE190FD0A1231111991540B /* ConcurrentDispatchQueueScheduler.swift */; }; - E97573A653DE3A4CB8BAC26FB7B3E9A9 /* MASShortcutView+Bindings.h in Headers */ = {isa = PBXBuildFile; fileRef = 64D4E87F4D1E140147BC9F1FD6C31A64 /* MASShortcutView+Bindings.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EA6D2E46B967F447FFC46520EC328B5E /* GCDWebServer.h in Headers */ = {isa = PBXBuildFile; fileRef = C7BA15653BA24C8CB2D6A810BD172EB4 /* GCDWebServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EBEBC8730F86241C0D7D2BD8BB4A4F5F /* SubscriptionDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A27E7196730EA8A4F03EECF2B8D2643A /* SubscriptionDisposable.swift */; }; + CECC009E42390657E216EAC1EDC6274C /* AsSingle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 351C16C6C5C0715F1C876D91D0EDEA09 /* AsSingle.swift */; }; + D14AF917AAA665B36A071D4272716548 /* Amb.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06609DFEDC0A7E3A67145994809FAAB /* Amb.swift */; }; + D2B04C075D6CA6AF10C35D8BF7DEF0D3 /* GCDWebServerFileRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E1780CA78CC5EE56892186D6699471D /* GCDWebServerFileRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D32273245E8606A37F7600158C272C01 /* Bag.swift in Sources */ = {isa = PBXBuildFile; fileRef = F88F573DA82E488BDAE8BC55E93B96B1 /* Bag.swift */; }; + D5A9F983227BEB62BCA37F568897987C /* RxTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA70E613DAD83B8D5F2C1F9DE64ECAC7 /* RxTarget.swift */; }; + D6315D7F0CC2C411BEC2097E2BEA7242 /* HistoricalScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1369962E25E1F6E43620FE725E9CE874 /* HistoricalScheduler.swift */; }; + D63E514E26A060F7C90A92AE8E9B49F9 /* GCDWebServer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 405572D03A3BCC4C3EEC1F1CECFFD7EC /* GCDWebServer-dummy.m */; }; + D6EA93219364CDC135BAFE63084F6361 /* es.lproj in Resources */ = {isa = PBXBuildFile; fileRef = B10F73EA14E609E0D648284083AE9228 /* es.lproj */; }; + D7524216B4C0994A50624825DFB7CB6B /* GCDWebServerConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4387584024C546AD5AD6B7EDD37485BF /* GCDWebServerConnection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D9ACDAE812F7F132507CBD9D783613D6 /* SynchronizedOnType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64EE1C0399B2FC8E5B84F059BC3B89F9 /* SynchronizedOnType.swift */; }; + D9ED1A4C6F894B1DC0298C280C8056EB /* NSObject+Rx+KVORepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D2E434BDBDBAFB4EAB539971677BB3 /* NSObject+Rx+KVORepresentable.swift */; }; + DB94D782C6F193FB6F56D52926F2A84B /* RxCocoa-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 622BE644A5BCF7100BB04E2E0578F8C2 /* RxCocoa-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DCEB10616CAFEFE12B6D4F6A7DDBBFD4 /* String+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0708DD73E84866CEA805B9C7AB60ADE4 /* String+Rx.swift */; }; + DE24C629B3DB152EE4924B56E3CC59F5 /* pl.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 5151ABAABBD1A1CE800C52AB2A585634 /* pl.lproj */; }; + DF2762B53F71DBC62F8CE6D5A89E7461 /* _RXDelegateProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 1407079A40EB921E4490FEA9DDB23222 /* _RXDelegateProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DF4F1845181D496D965AD3FFD6366CCE /* GroupedObservable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2654F715A28779785D3AD91F2ED2388 /* GroupedObservable.swift */; }; + DFA6E4455415B3EB3BB38A9F48EEB044 /* Shortcut.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EC98D40BE7139C7559F4E49AD0B9202 /* Shortcut.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E16B1A45A5741C6A98DFAE5C24764F55 /* NSImageView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7519EEDC18867A7D4354752DF4FFB06 /* NSImageView+Rx.swift */; }; + E442EEDE70730AB746DADBB7B509B070 /* RecursiveLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4CD8E837A63DA5890EF98BA6E98D9D5 /* RecursiveLock.swift */; }; + E4BC2475373C69F1F805A462F1CA469D /* SubscribeOn.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DA9F52CD97C9FFDD1A42400020B5C86 /* SubscribeOn.swift */; }; + E5312C0FED7C61135F252D3A7A112990 /* MASShortcutView.m in Sources */ = {isa = PBXBuildFile; fileRef = 64D637E8C0ED768E21CFCAE9641662B6 /* MASShortcutView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E560A21728B29AF234BD0F37AFE16F36 /* en.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 967C15B6D2FAA4BA22B657F647B6B412 /* en.lproj */; }; + E62DD91C60246BD1E4E8A0AF5D7BF0E7 /* GCDWebServerErrorResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E85ED0518085EBD804CA390B52EDDFE5 /* GCDWebServerErrorResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E63AC9803426E8646E59772DBED7864E /* Zip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C4E480F924E52E479BFE519D781A826 /* Zip.swift */; }; + E66F7AFACFC665B23022A09E46815B5C /* it.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 2C391D236625ECDDDADDF2E2CF327C90 /* it.lproj */; }; + E88ABB06791F804707EA13EFF1BB714F /* Throttle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 430E0E395046F19946D55C7F791DDCC4 /* Throttle.swift */; }; + E95C2409BDE4CB6BA371A54DD05D7996 /* Platform.Darwin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94F74323508484A216D1C8AECF3B836C /* Platform.Darwin.swift */; }; + E97573A653DE3A4CB8BAC26FB7B3E9A9 /* MASShortcutView+Bindings.h in Headers */ = {isa = PBXBuildFile; fileRef = 1918A3E00F323095B9B4FE41517A6FDA /* MASShortcutView+Bindings.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EA6D2E46B967F447FFC46520EC328B5E /* GCDWebServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BA1E955FC23E417978F5DE57553C65 /* GCDWebServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EBC1F84329AD2225017D47F63D55CA77 /* Disposables.swift in Sources */ = {isa = PBXBuildFile; fileRef = B29423A3BD529F4181880C1CC35631C5 /* Disposables.swift */; }; EBEFF85070E25F0A581B7BA1E08138AC /* Pods-ShadowsocksX-NG-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 24B01D81E3D7058FA14A053EC19874D0 /* Pods-ShadowsocksX-NG-dummy.m */; }; - EC499031542915CA54C314AE2781C6BA /* _RXKVOObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = DDF9D2AC2FD4CD42F8B089BAFDE4C6BD /* _RXKVOObserver.m */; }; - ED084F37DBC7F8C6BF80DB85883C67D4 /* SynchronizedSubscribeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FF9201C9E5F013F957000A1108C6E9 /* SynchronizedSubscribeType.swift */; }; - EDC71599268E09BB4590CCB4E9921855 /* Queue.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE0E8A058AF30A041E8DB6F051BBDE16 /* Queue.swift */; }; - EE3A79FAA60A198321767854B60B772F /* MASDictionaryTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FB5237BDF54A20103EBE82BDC80B5C6 /* MASDictionaryTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ECC084E104E80FB7345F76B6B0C15FAC /* DispatchQueue+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB8FD0BE80EE67981541A1D0567EDF2A /* DispatchQueue+Extensions.swift */; }; + ED270C801E50A979CD21211BD2685550 /* TakeLast.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4209C3E1C531131A7CA7A2DA0BB1F334 /* TakeLast.swift */; }; + ED3B6D9F5F3F89371B6425AB21A42BD5 /* SerialDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 478441DBD43555BE4C13427FB4B1F102 /* SerialDisposable.swift */; }; + ED97B464615625E0F41D4CFE8321AF1B /* AnonymousObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 198E9BC39A4EAE7AF6607A3DE9DBD031 /* AnonymousObserver.swift */; }; + EE3A79FAA60A198321767854B60B772F /* MASDictionaryTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = CDD891211BCACC371F9D43363C3FD01F /* MASDictionaryTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; EE85F313D5EC70842C812EB16038F4F2 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EFD468F10CD22B3EFAB406DAC3FCC7C9 /* Carbon.framework */; }; - EF0DEE821A473B32E266EA6F4AE03A8B /* Bag+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BC1640F774F19AE41AEC0772358B7D1 /* Bag+Rx.swift */; }; - EF34AC8DFCCDA7E37B2BAFB23B8CC208 /* Deferred.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BA2BD2D1A8648107C13AA73BCF0AE2 /* Deferred.swift */; }; - EFD264FC408EBF3BA2528E70B08DDD94 /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EBE7C5174BB4B63F44349A15EE826AF /* Notifications.swift */; }; - EFFA4247C90B98FD9160F30905A64569 /* cs.lproj in Resources */ = {isa = PBXBuildFile; fileRef = EBF2BBFDA4F26C440DB709FAC5D3F25C /* cs.lproj */; }; - F13411F6487E4AE13417D98635C36FB1 /* Buffer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F03278787D78510DCEEDDFAB06AD42F6 /* Buffer.swift */; }; - F192F14395D111EAE279D849E233CA6B /* NSControl+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CF90C9854898D2869D0FA04F6FEFD51 /* NSControl+Rx.swift */; }; - F1FC058E962CB5A786654E301515F175 /* RxCocoa.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF832054667391DF7219EEC7E1426BFB /* RxCocoa.swift */; }; - F20BC8E29804469E866991EBEE2C81B9 /* NSObject+Rx+KVORepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0FF24549EBA19FE3868F5A0F0A65C24 /* NSObject+Rx+KVORepresentable.swift */; }; - F2853E97BDDC82B8F91AE2954D27F775 /* RxSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 32333F64D65C89D5A002F9CB80C2CDE2 /* RxSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F2FFE741AC2834ABDA25E19C4B553B6E /* RefCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFA24FA42F80B63EFCE3B8D7EAEEB17E /* RefCount.swift */; }; - F359857602B1D4C91B4AC3D1A2CDFE1B /* GCDWebServerFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 261510805F67C14BBF23BD04C18168E9 /* GCDWebServerFunctions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F44386819D44846A436139CEF3D372A5 /* zh-Hans.lproj in Resources */ = {isa = PBXBuildFile; fileRef = D55A3EC1AA96E83A76F91664C4C2F29D /* zh-Hans.lproj */; }; - F4AF312CC6AFB71721D0F16DDED1028C /* StartWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = D318C435E4EBC421BC050713E69DE0D2 /* StartWith.swift */; }; - F4DE46050B00D9C5E0D8AFB79C9BBF96 /* HistoricalScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEA7BED190A171843822577606510B95 /* HistoricalScheduler.swift */; }; - F6069304E6720CD883040BD4C6348423 /* Bag.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2EC79DAE53D1D70A47EBAFD39ED862E /* Bag.swift */; }; - F6BECD98B97CBFEBE2C96F0E9E72A6C0 /* ResponseSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2EF9DEF408D295E5391455E123DD67 /* ResponseSerialization.swift */; }; - F7319C5D6B81343F0D43A8CD903AD9D1 /* CombineLatest+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1240BCF9D45671D109A354E1255C9D0C /* CombineLatest+arity.swift */; }; - F75888E0217E015253A9C120DF4E31D3 /* Observable+Creation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C64F36BE9F05BDE74A3E670E69A4432E /* Observable+Creation.swift */; }; + EFBF1BDB8CD460EA4A9610EF91C54928 /* Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F28BB197905FA93BEC98E5D1F6B9F75 /* Range.swift */; }; + EFD264FC408EBF3BA2528E70B08DDD94 /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2437216A55ECC76844C12B5DC39280A0 /* Notifications.swift */; }; + EFFA4247C90B98FD9160F30905A64569 /* cs.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 5048979CBD31FB3468F7CBE0F6623336 /* cs.lproj */; }; + F0CA204303CD1FDCC9AE08D89B231BA8 /* ImmediateScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFAE13F86521FDD3838D3DA229D4AC25 /* ImmediateScheduler.swift */; }; + F22B5B760326351832F4648F432136D8 /* ObservableConvertibleType+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD8770BF62499E1DA3EDF0659C91CBE4 /* ObservableConvertibleType+Driver.swift */; }; + F2853E97BDDC82B8F91AE2954D27F775 /* RxSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D4C11F8F1650F1661596A0F530E6BDF /* RxSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F359857602B1D4C91B4AC3D1A2CDFE1B /* GCDWebServerFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C85F34568C70DB96CF9B23E0D503AB /* GCDWebServerFunctions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F3C83071EFA9A3A1CEFD3DD9817AC887 /* Bag+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59D23F0528F3A7600784924A107552D0 /* Bag+Rx.swift */; }; + F44386819D44846A436139CEF3D372A5 /* zh-Hans.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 0444897C0A30423DE512BC301413EBC3 /* zh-Hans.lproj */; }; + F46CAF4542DF0C7D5C7B62CB1AABD54B /* Catch.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC77664C6DB0A9CA9F4AC1E93463971A /* Catch.swift */; }; + F4D944E38AA9EEB0850C85C303E8E3C2 /* Delay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87C033CF62C6A03D67EA9056684E74B2 /* Delay.swift */; }; + F68A07679A05EFEF9BFDED2B37886513 /* Producer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11C39B1421798570CF7E02C57F90EC4B /* Producer.swift */; }; + F6BECD98B97CBFEBE2C96F0E9E72A6C0 /* ResponseSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C564EF425F990F06F9867FD48C5AAC9 /* ResponseSerialization.swift */; }; + F7DCEFB4AC63035A92A1A1361DAC5D12 /* ScheduledItemType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67DA5A6F6EDD732F5332FE2EAC8DB9EE /* ScheduledItemType.swift */; }; F8815ECB42FCF09BBC99D3730DFD577C /* MASShortcut.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 288F0992DFCC5E6027AA31FD385C34D6 /* MASShortcut.bundle */; }; - F88CA5676D6FEE75F80D102E13BFB568 /* Observable+Binding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 230CC565B82B68200C82450AC93A5CE6 /* Observable+Binding.swift */; }; - F8B3D3092ED0417E8CDF32033F6122F5 /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EA1AA7BA748C2B699B5B73C3E690211 /* Alamofire.swift */; }; - F94ACA6AA0DD416E5BF05E2425E5F2A6 /* MASKeyCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = DDB7132E575EAC0CA9B48A0425DAAD21 /* MASKeyCodes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FBF219CBB84DD6F373B818708C889C9D /* GCDWebServer.m in Sources */ = {isa = PBXBuildFile; fileRef = C743F524B10FDE01231455A0541D06DC /* GCDWebServer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - FC2A6E0CEAD8E453D54189928819140D /* Do.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30522BE8DC862EF75E5D63648F9179F3 /* Do.swift */; }; - FC558372E13AAD8016536702B3964C0D /* NSNotificationCenter+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2E92EE455CBA70E47FF6E1B2A8A8F10 /* NSNotificationCenter+Rx.swift */; }; - FD09105291CBA39191AF89BACC9F1538 /* Delay.swift in Sources */ = {isa = PBXBuildFile; fileRef = A131F62F3B9E538F5835420C712C9967 /* Delay.swift */; }; - FF647F4502B0AE29095FA14A256612EE /* _RXKVOObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 30EACF50723CFE5FA01F06A95D09A211 /* _RXKVOObserver.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F8B3D3092ED0417E8CDF32033F6122F5 /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7DE4B15A2C7B806D42D1BC1189CFC19 /* Alamofire.swift */; }; + F8FDBDB785D58B00E3DD49EFD58CFA34 /* Scan.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E3D4D905C0E79E9AB56BF024A35180 /* Scan.swift */; }; + F94ACA6AA0DD416E5BF05E2425E5F2A6 /* MASKeyCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = D38D66B8CF136FA1B9D3A067600536AE /* MASKeyCodes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB241DBEEFCA95FE872EF4CD6623157A /* AnonymousInvocable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F4BE5C3ABEB89172F29F09B174D6883 /* AnonymousInvocable.swift */; }; + FBF219CBB84DD6F373B818708C889C9D /* GCDWebServer.m in Sources */ = {isa = PBXBuildFile; fileRef = AB35CD1ECD0CD3643AE3F5B53C269AF5 /* GCDWebServer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + FC296F43271A48D9D4C58B5715C051D5 /* ControlEvent+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEDE61F66A8638FA807B3FD84A14A57E /* ControlEvent+Driver.swift */; }; + FE567BBF31C04A25708225C9DD0B3B3F /* SubscriptionDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 187F6C028E99961913EF8CD45D358107 /* SubscriptionDisposable.swift */; }; + FF4F2998C2F400957C309F52B81C8F25 /* InvocableScheduledItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F158686BD10F093816366CBB70A6E30 /* InvocableScheduledItem.swift */; }; + FF647F4502B0AE29095FA14A256612EE /* _RXKVOObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CBFE7DED568FC1C077023212FEEA6C4 /* _RXKVOObserver.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FF6798A03CC53C99950B31DE10942B90 /* Observable+Aggregate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A5020E5D284EBAF7DED99AB83881F38 /* Observable+Aggregate.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -380,364 +392,376 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 00C649D6C2694F89369C6E4BFDF7020D /* AnonymousObserver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnonymousObserver.swift; path = RxSwift/Observers/AnonymousObserver.swift; sourceTree = ""; }; - 041B57D22A62A24545E85A4646383BA5 /* GCDWebServerConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerConnection.h; path = GCDWebServer/Core/GCDWebServerConnection.h; sourceTree = ""; }; - 049B3D3D49998DB466FEB6A07B58CE38 /* ObserveOn.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObserveOn.swift; path = RxSwift/Observables/Implementations/ObserveOn.swift; sourceTree = ""; }; - 04A06344257808FD1937BDB41F18B407 /* MASShortcut-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MASShortcut-prefix.pch"; sourceTree = ""; }; - 0543E52D336EE3D670FA0326B542D1AD /* ObservableConvertibleType+Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ObservableConvertibleType+Driver.swift"; path = "RxCocoa/CocoaUnits/Driver/ObservableConvertibleType+Driver.swift"; sourceTree = ""; }; + 002B67F5C7E4ECAD0D0339BF321BF117 /* ConcurrentDispatchQueueScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConcurrentDispatchQueueScheduler.swift; path = RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift; sourceTree = ""; }; + 015CDD34C2C3E889192595296079F633 /* GCDWebServerFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerFileResponse.h; path = GCDWebServer/Responses/GCDWebServerFileResponse.h; sourceTree = ""; }; + 0394897FCAD2777CF1A4384FE731D25C /* Optional.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Optional.swift; path = RxSwift/Observables/Implementations/Optional.swift; sourceTree = ""; }; + 0444897C0A30423DE512BC301413EBC3 /* zh-Hans.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = "zh-Hans.lproj"; sourceTree = ""; }; + 045B604CBC573827216DD575F3C9A9BE /* MASShortcut-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MASShortcut-prefix.pch"; sourceTree = ""; }; + 04BA1E955FC23E417978F5DE57553C65 /* GCDWebServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServer.h; path = GCDWebServer/Core/GCDWebServer.h; sourceTree = ""; }; + 04FCB8C241708CC45FF52AFA691DA336 /* GCDWebServerFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerFileResponse.m; path = GCDWebServer/Responses/GCDWebServerFileResponse.m; sourceTree = ""; }; 054C3E84057CD06DB85D99E7AD207F48 /* Pods-proxy_conf_helper.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-proxy_conf_helper.debug.xcconfig"; sourceTree = ""; }; - 0621C0B43DFC90DF41B61359E759D5D3 /* RetryWhen.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RetryWhen.swift; path = RxSwift/Observables/Implementations/RetryWhen.swift; sourceTree = ""; }; - 07C3DED13280C0FE73368A82866875B7 /* GCDWebServerHTTPStatusCodes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerHTTPStatusCodes.h; path = GCDWebServer/Core/GCDWebServerHTTPStatusCodes.h; sourceTree = ""; }; - 07CBE0BD61056E4192366A2BEB5035FF /* DisposeBag.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DisposeBag.swift; path = RxSwift/Disposables/DisposeBag.swift; sourceTree = ""; }; - 07FDE0C81FDCEF30B795BD32553111FA /* VirtualTimeScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VirtualTimeScheduler.swift; path = RxSwift/Schedulers/VirtualTimeScheduler.swift; sourceTree = ""; }; + 06571839F983E684AE0631A949E65709 /* DefaultIfEmpty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultIfEmpty.swift; path = RxSwift/Observables/Implementations/DefaultIfEmpty.swift; sourceTree = ""; }; + 0708DD73E84866CEA805B9C7AB60ADE4 /* String+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Rx.swift"; path = "RxSwift/Extensions/String+Rx.swift"; sourceTree = ""; }; + 088BD130A0FBEAEA4D9FDAE864B58DC7 /* NSTextField+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSTextField+Rx.swift"; path = "RxCocoa/macOS/NSTextField+Rx.swift"; sourceTree = ""; }; 089EB7E66F64D3A19BB7681AFCE91031 /* Pods-ShadowsocksX-NG.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ShadowsocksX-NG.release.xcconfig"; sourceTree = ""; }; - 08BD28C9755413291F8752D325956F13 /* RxCocoa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RxCocoa.h; path = RxCocoa/RxCocoa.h; sourceTree = ""; }; - 09404441C1943A1C1C15699C71F33D2D /* VirtualTimeConverterType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VirtualTimeConverterType.swift; path = RxSwift/Schedulers/VirtualTimeConverterType.swift; sourceTree = ""; }; - 0A9743EE40CDB23A5B902DCA0EACD4F8 /* GCDWebServerFileRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerFileRequest.m; path = GCDWebServer/Requests/GCDWebServerFileRequest.m; sourceTree = ""; }; - 0AA9F9CD0EB270DDA2ED76FD3446F305 /* GCDWebServerMultiPartFormRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerMultiPartFormRequest.m; path = GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.m; sourceTree = ""; }; - 0AD4268847B9453CE579C41B609E22B7 /* DelegateProxyType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DelegateProxyType.swift; path = RxCocoa/Common/DelegateProxyType.swift; sourceTree = ""; }; - 0B87C81B82992789E3611469980A1778 /* Variable+SharedSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Variable+SharedSequence.swift"; path = "RxCocoa/CocoaUnits/SharedSequence/Variable+SharedSequence.swift"; sourceTree = ""; }; - 0C8A6200FBBE9F05CEF009C65C0AE129 /* Platform.Linux.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.Linux.swift; path = Platform/Platform.Linux.swift; sourceTree = ""; }; - 0DF6EBFF755554CC9AB8962CD97A8DC3 /* DistinctUntilChanged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DistinctUntilChanged.swift; path = RxSwift/Observables/Implementations/DistinctUntilChanged.swift; sourceTree = ""; }; - 0E84CF71B17BFE084E0D16395EDB8885 /* Driver+Subscription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Driver+Subscription.swift"; path = "RxCocoa/CocoaUnits/Driver/Driver+Subscription.swift"; sourceTree = ""; }; + 0947568290847B529166B4C9F28347BB /* SchedulerType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SchedulerType.swift; path = RxSwift/SchedulerType.swift; sourceTree = ""; }; + 0A7A485A268FA20FBE6CEAB65881AF6F /* InfiniteSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InfiniteSequence.swift; path = Platform/DataStructures/InfiniteSequence.swift; sourceTree = ""; }; + 0B2BA85AB97126B7F170B024F033AF4F /* ConcurrentMainScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConcurrentMainScheduler.swift; path = RxSwift/Schedulers/ConcurrentMainScheduler.swift; sourceTree = ""; }; + 0BE0BBDCBD8F691F0357C2BFD2A61DF7 /* NSControl+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSControl+Rx.swift"; path = "RxCocoa/macOS/NSControl+Rx.swift"; sourceTree = ""; }; + 0C4E480F924E52E479BFE519D781A826 /* Zip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Zip.swift; path = RxSwift/Observables/Implementations/Zip.swift; sourceTree = ""; }; + 0D3C195DE57AB12AEADA0C216773CC29 /* Observable+Bind.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Bind.swift"; path = "RxCocoa/Common/Observable+Bind.swift"; sourceTree = ""; }; + 0DBFAF6F1BA01CE6183C3B565DB8322C /* BinaryDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BinaryDisposable.swift; path = RxSwift/Disposables/BinaryDisposable.swift; sourceTree = ""; }; 0E8A27A8C9BD6FF9AE3DCBC4050CCD76 /* Pods-ShadowsocksX-NGTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ShadowsocksX-NGTests-frameworks.sh"; sourceTree = ""; }; - 0F592655CCDF43D1184F7DCC5E7E4FD4 /* Optional.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Optional.swift; path = RxSwift/Observables/Implementations/Optional.swift; sourceTree = ""; }; - 0FB5237BDF54A20103EBE82BDC80B5C6 /* MASDictionaryTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASDictionaryTransformer.h; path = Framework/MASDictionaryTransformer.h; sourceTree = ""; }; - 1240BCF9D45671D109A354E1255C9D0C /* CombineLatest+arity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CombineLatest+arity.swift"; path = "RxSwift/Observables/Implementations/CombineLatest+arity.swift"; sourceTree = ""; }; - 12DA49F9E5238CF2A4EBB5A83A1AE3DA /* Zip+arity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Zip+arity.swift"; path = "RxSwift/Observables/Implementations/Zip+arity.swift"; sourceTree = ""; }; + 0EED0973795941F05F42B25E0C0F6D99 /* _RXDelegateProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _RXDelegateProxy.m; path = RxCocoa/Runtime/_RXDelegateProxy.m; sourceTree = ""; }; + 0F158686BD10F093816366CBB70A6E30 /* InvocableScheduledItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InvocableScheduledItem.swift; path = RxSwift/Schedulers/Internal/InvocableScheduledItem.swift; sourceTree = ""; }; + 1096074B199A62C38833809533B6325A /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 10AE621FA1B638AD24DC8416AAEA4850 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 11C39B1421798570CF7E02C57F90EC4B /* Producer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Producer.swift; path = RxSwift/Observables/Implementations/Producer.swift; sourceTree = ""; }; + 1255CE4EF584F1227FCFE877388965BE /* GCDWebServer.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GCDWebServer.xcconfig; sourceTree = ""; }; 13333F29A08390FCEFECA0FDCDDC919F /* Pods-ShadowsocksX-NG-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ShadowsocksX-NG-frameworks.sh"; sourceTree = ""; }; + 1344965A836EE2DFFA93D27044532B30 /* PriorityQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PriorityQueue.swift; path = Platform/DataStructures/PriorityQueue.swift; sourceTree = ""; }; + 135780AE39D9C9BBD7443F7F21288DFB /* DelaySubscription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DelaySubscription.swift; path = RxSwift/Observables/Implementations/DelaySubscription.swift; sourceTree = ""; }; + 1369962E25E1F6E43620FE725E9CE874 /* HistoricalScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HistoricalScheduler.swift; path = RxSwift/Schedulers/HistoricalScheduler.swift; sourceTree = ""; }; 139134EE845E284F4B3ED2EF2F9A302B /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/AppKit.framework; sourceTree = DEVELOPER_DIR; }; - 13DC76F872C5CE141D7A381C3ED86F83 /* Using.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Using.swift; path = RxSwift/Observables/Implementations/Using.swift; sourceTree = ""; }; - 145175C8AA8A892EBA0AEC97F7612D90 /* _RXObjCRuntime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _RXObjCRuntime.h; path = RxCocoa/Runtime/include/_RXObjCRuntime.h; sourceTree = ""; }; + 1407079A40EB921E4490FEA9DDB23222 /* _RXDelegateProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _RXDelegateProxy.h; path = RxCocoa/Runtime/include/_RXDelegateProxy.h; sourceTree = ""; }; 14A9EC2BB1EC6484018A5EB4B9B2C231 /* Pods-ShadowsocksX-NG-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ShadowsocksX-NG-umbrella.h"; sourceTree = ""; }; - 14FD2EAF92039F913842A87BA5122B62 /* MASShortcutBinder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASShortcutBinder.m; path = Framework/MASShortcutBinder.m; sourceTree = ""; }; - 156BD4BE88EBFE3B4B75AB2159FFEA69 /* NetworkReachabilityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkReachabilityManager.swift; path = Source/NetworkReachabilityManager.swift; sourceTree = ""; }; - 1633F46EA774BF24EF9CCD7B8CB200E8 /* InvocableType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InvocableType.swift; path = RxSwift/Schedulers/Internal/InvocableType.swift; sourceTree = ""; }; - 18C31186BA3198D89D82D666FBB1905C /* Empty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Empty.swift; path = RxSwift/Observables/Implementations/Empty.swift; sourceTree = ""; }; - 191592A653EE5E76F4D61D104274AA51 /* Errors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Errors.swift; path = RxSwift/Errors.swift; sourceTree = ""; }; + 1529BF693979ADC95825A232E3F7F71B /* GCDWebServerRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerRequest.h; path = GCDWebServer/Core/GCDWebServerRequest.h; sourceTree = ""; }; + 15FDCB75F28FF0766B21B59543A5AFED /* ru.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = ru.lproj; sourceTree = ""; }; + 16E2BA0967647D17B5A037805E7CF195 /* MASShortcutView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASShortcutView.h; path = Framework/MASShortcutView.h; sourceTree = ""; }; + 187F6C028E99961913EF8CD45D358107 /* SubscriptionDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubscriptionDisposable.swift; path = RxSwift/Disposables/SubscriptionDisposable.swift; sourceTree = ""; }; + 1918A3E00F323095B9B4FE41517A6FDA /* MASShortcutView+Bindings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MASShortcutView+Bindings.h"; path = "Framework/MASShortcutView+Bindings.h"; sourceTree = ""; }; + 198E9BC39A4EAE7AF6607A3DE9DBD031 /* AnonymousObserver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnonymousObserver.swift; path = RxSwift/Observers/AnonymousObserver.swift; sourceTree = ""; }; 1A8CE48109F7ED7873F4FF9D2D3603AD /* Pods-proxy_conf_helper-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-proxy_conf_helper-acknowledgements.markdown"; sourceTree = ""; }; - 1B2EF9DEF408D295E5391455E123DD67 /* ResponseSerialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseSerialization.swift; path = Source/ResponseSerialization.swift; sourceTree = ""; }; - 1B9E3352BCF62F8787D5BBC941EEA516 /* RxCocoa.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = RxCocoa.modulemap; sourceTree = ""; }; - 1CB76F5333C4E30B9798A7CB70CCB81F /* TakeUntil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TakeUntil.swift; path = RxSwift/Observables/Implementations/TakeUntil.swift; sourceTree = ""; }; - 1DB870B11C1F6D4D44DFD74BC9A31C93 /* ControlProperty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ControlProperty.swift; path = RxCocoa/CocoaUnits/ControlProperty.swift; sourceTree = ""; }; - 1DCF2459B4B59AA53E371B3303793795 /* MASHotKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASHotKey.h; path = Framework/MASHotKey.h; sourceTree = ""; }; - 1E6D6DE4E89E068F148B72C3C94E25CF /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 1E8F8E501B0EEF1A98B9B7557686F4DC /* ru.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = ru.lproj; sourceTree = ""; }; - 1EA1AA7BA748C2B699B5B73C3E690211 /* Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Alamofire.swift; path = Source/Alamofire.swift; sourceTree = ""; }; + 1B81A53E7BA7B919692592FBAEB2C093 /* SharedSequence+Operators+arity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "SharedSequence+Operators+arity.swift"; path = "RxCocoa/CocoaUnits/SharedSequence/SharedSequence+Operators+arity.swift"; sourceTree = ""; }; + 1BD87FA3022EFB5D55062335BBAA6CDC /* GCDWebServerMultiPartFormRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerMultiPartFormRequest.m; path = GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.m; sourceTree = ""; }; + 1C5B91DC04B3865DDDDC72512A5C3F54 /* AnonymousObservable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnonymousObservable.swift; path = RxSwift/Observables/Implementations/AnonymousObservable.swift; sourceTree = ""; }; + 1D4C11F8F1650F1661596A0F530E6BDF /* RxSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxSwift-umbrella.h"; sourceTree = ""; }; + 1E0CFCE9AB3B6AFD0691E63F63F62B18 /* GCDWebServerDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerDataResponse.m; path = GCDWebServer/Responses/GCDWebServerDataResponse.m; sourceTree = ""; }; 1F162D37B7B6534A6D80FEE301F586EE /* Pods-ShadowsocksX-NGTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ShadowsocksX-NGTests-acknowledgements.plist"; sourceTree = ""; }; - 207CF7A03B53C4DF00C68FBBF1C6E8F7 /* Observable+Aggregate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Aggregate.swift"; path = "RxSwift/Observables/Observable+Aggregate.swift"; sourceTree = ""; }; - 230CC565B82B68200C82450AC93A5CE6 /* Observable+Binding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Binding.swift"; path = "RxSwift/Observables/Observable+Binding.swift"; sourceTree = ""; }; - 23863CFA627473DC27B67457C49C2E18 /* SchedulerType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SchedulerType.swift; path = RxSwift/SchedulerType.swift; sourceTree = ""; }; - 23AF045F391083D9003B490F27BEF7D5 /* SectionedViewDataSourceType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SectionedViewDataSourceType.swift; path = RxCocoa/Common/SectionedViewDataSourceType.swift; sourceTree = ""; }; + 214BCB3965A64FB0986840C0E083418A /* Queue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Queue.swift; path = Platform/DataStructures/Queue.swift; sourceTree = ""; }; + 234D1504F40F558DF1303E8C160D47BD /* BRLOptionParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRLOptionParser.m; path = BRLOptionParser/BRLOptionParser.m; sourceTree = ""; }; + 23D34D0E9C66E6F9595722372B9AED8D /* Zip+arity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Zip+arity.swift"; path = "RxSwift/Observables/Implementations/Zip+arity.swift"; sourceTree = ""; }; + 2437216A55ECC76844C12B5DC39280A0 /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Source/Notifications.swift; sourceTree = ""; }; 24B01D81E3D7058FA14A053EC19874D0 /* Pods-ShadowsocksX-NG-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ShadowsocksX-NG-dummy.m"; sourceTree = ""; }; - 25054C0604BDF8F039586E1B8351F0C6 /* MASShortcutMonitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASShortcutMonitor.h; path = Framework/MASShortcutMonitor.h; sourceTree = ""; }; - 261510805F67C14BBF23BD04C18168E9 /* GCDWebServerFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerFunctions.m; path = GCDWebServer/Core/GCDWebServerFunctions.m; sourceTree = ""; }; - 26339E7D90E6D149F805C377419D25BA /* Disposables.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Disposables.swift; path = RxSwift/Disposables/Disposables.swift; sourceTree = ""; }; - 26580914BABDC16C8FB464FE319029B4 /* Disposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Disposable.swift; path = RxSwift/Disposable.swift; sourceTree = ""; }; + 259F77E2EC48E07223226DD78300AABD /* MASKeyMasks.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASKeyMasks.h; path = Framework/MASKeyMasks.h; sourceTree = ""; }; + 271DC7562BA32ADD28B4A53CA4C92137 /* SingleAsync.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SingleAsync.swift; path = RxSwift/Observables/Implementations/SingleAsync.swift; sourceTree = ""; }; 288F0992DFCC5E6027AA31FD385C34D6 /* MASShortcut.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = MASShortcut.bundle; path = MASShortcut.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 28A7A9E967BF724C11ED0D7AECD827B2 /* Amb.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Amb.swift; path = RxSwift/Observables/Implementations/Amb.swift; sourceTree = ""; }; 28D7F65F9E64735E3320A028DCDDDD90 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 296DBD7B4C2829639C9DF408009E61C1 /* GCDWebServerErrorResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerErrorResponse.m; path = GCDWebServer/Responses/GCDWebServerErrorResponse.m; sourceTree = ""; }; - 2AA25737DC8326205335C494D261A558 /* RxSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RxSwift-dummy.m"; sourceTree = ""; }; - 2E65A0563A25A9BC5540C5C6752AFB8F /* Switch.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Switch.swift; path = RxSwift/Observables/Implementations/Switch.swift; sourceTree = ""; }; - 2FD1D9CC9BD0DB820CE56BBDE2B6E01F /* TaskDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TaskDelegate.swift; path = Source/TaskDelegate.swift; sourceTree = ""; }; - 30522BE8DC862EF75E5D63648F9179F3 /* Do.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Do.swift; path = RxSwift/Observables/Implementations/Do.swift; sourceTree = ""; }; - 30EACF50723CFE5FA01F06A95D09A211 /* _RXKVOObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _RXKVOObserver.h; path = RxCocoa/Runtime/include/_RXKVOObserver.h; sourceTree = ""; }; - 315C104108C26A838CCC718E8258B44A /* Timeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timeline.swift; path = Source/Timeline.swift; sourceTree = ""; }; - 32333F64D65C89D5A002F9CB80C2CDE2 /* RxSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxSwift-umbrella.h"; sourceTree = ""; }; - 32F52D2218ED1A55107BC548E297E9CB /* String+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Rx.swift"; path = "RxSwift/Extensions/String+Rx.swift"; sourceTree = ""; }; + 2A595C2E180CE19ADB5A7218E78FD8BC /* RetryWhen.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RetryWhen.swift; path = RxSwift/Observables/Implementations/RetryWhen.swift; sourceTree = ""; }; + 2C391D236625ECDDDADDF2E2CF327C90 /* it.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = it.lproj; sourceTree = ""; }; + 2C4F41A96AB13FAA06EB576B1286FD61 /* NSButton+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSButton+Rx.swift"; path = "RxCocoa/macOS/NSButton+Rx.swift"; sourceTree = ""; }; + 2D2D8747A63B260F80C40C9DCDAC357E /* GCDWebServerHTTPStatusCodes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerHTTPStatusCodes.h; path = GCDWebServer/Core/GCDWebServerHTTPStatusCodes.h; sourceTree = ""; }; + 2DED940C0868591ED86659234813AF5B /* DelegateProxyType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DelegateProxyType.swift; path = RxCocoa/Common/DelegateProxyType.swift; sourceTree = ""; }; + 2E934534DD61AA5D52BB8BD519A53726 /* Variable+SharedSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Variable+SharedSequence.swift"; path = "RxCocoa/CocoaUnits/SharedSequence/Variable+SharedSequence.swift"; sourceTree = ""; }; + 2EBB434DC5BFF77FC3F8C0215BDFC40F /* Bag.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Bag.swift; path = Platform/DataStructures/Bag.swift; sourceTree = ""; }; + 2F5238F43AAC23E1434E88471A76DAA8 /* RxCocoa-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxCocoa-prefix.pch"; sourceTree = ""; }; + 30D8B840460D79AB3B8AB39A4164F4B7 /* DispatchQueue+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Extensions.swift"; path = "Platform/DispatchQueue+Extensions.swift"; sourceTree = ""; }; + 30E2E47F7B982BA49DF174E3FDFB288B /* SynchronizedDisposeType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SynchronizedDisposeType.swift; path = RxSwift/Concurrency/SynchronizedDisposeType.swift; sourceTree = ""; }; + 30FBBC7DFAD0F5694D59ACC330B005E0 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = Source/Response.swift; sourceTree = ""; }; + 3261881064E033A3711EA27CE78524FC /* RxSwift.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RxSwift.xcconfig; sourceTree = ""; }; + 33045890E1D4469FBFD24F367E827FAC /* TakeWhile.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TakeWhile.swift; path = RxSwift/Observables/Implementations/TakeWhile.swift; sourceTree = ""; }; 3358F45A5BEC1A7F725167CD1969EDC8 /* Pods-ShadowsocksX-NG-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ShadowsocksX-NG-acknowledgements.markdown"; sourceTree = ""; }; - 33BF1B946B229E3493A637930A931DA2 /* Range.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Range.swift; path = RxSwift/Observables/Implementations/Range.swift; sourceTree = ""; }; - 3446B97BEC82628B5B70EBA865321925 /* MASShortcutMonitor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASShortcutMonitor.m; path = Framework/MASShortcutMonitor.m; sourceTree = ""; }; - 351ED3EC72E752AF671FC28B61B82EBB /* Observable+Single.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Single.swift"; path = "RxSwift/Observables/Observable+Single.swift"; sourceTree = ""; }; - 35C4D7DBC6617F730997D93E6D496A63 /* Concat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Concat.swift; path = RxSwift/Observables/Implementations/Concat.swift; sourceTree = ""; }; - 35C565B4B8F119EF72E6D99AE6C5FE4E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 36D63AB3B2F8729D38D2243E79FA9D37 /* nl.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = nl.lproj; sourceTree = ""; }; - 3747A52D98BA28FA152080DA132B4955 /* DispatchQueue+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Extensions.swift"; path = "Platform/DispatchQueue+Extensions.swift"; sourceTree = ""; }; - 375E8496E1F8683C57FE684DE6D592C1 /* Variable+Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Variable+Driver.swift"; path = "RxCocoa/CocoaUnits/Driver/Variable+Driver.swift"; sourceTree = ""; }; - 3934F71A55252BAEC1B840B4FB0F5831 /* GCDWebServer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GCDWebServer-dummy.m"; sourceTree = ""; }; - 399C88A36ABC21E580DC529BB5ABD62D /* CurrentThreadScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CurrentThreadScheduler.swift; path = RxSwift/Schedulers/CurrentThreadScheduler.swift; sourceTree = ""; }; - 3A283ECB7F07204392F8B86F905B1B7A /* NSLayoutConstraint+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSLayoutConstraint+Rx.swift"; path = "RxCocoa/Common/NSLayoutConstraint+Rx.swift"; sourceTree = ""; }; - 3B2A679FC3BFF4F53FC9DF5CD71C6E75 /* BinaryDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BinaryDisposable.swift; path = RxSwift/Disposables/BinaryDisposable.swift; sourceTree = ""; }; - 3BADCC46C21E3D39AF50D9AEC5800CFC /* GCDWebServerFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerFunctions.h; path = GCDWebServer/Core/GCDWebServerFunctions.h; sourceTree = ""; }; - 3CF036C948FB845526B616E2A9485814 /* ControlProperty+Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ControlProperty+Driver.swift"; path = "RxCocoa/CocoaUnits/Driver/ControlProperty+Driver.swift"; sourceTree = ""; }; - 3E154A2F60883D6C1571925AC73829D7 /* Debunce.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debunce.swift; path = RxSwift/Observables/Implementations/Debunce.swift; sourceTree = ""; }; - 3E39C3D16733CDCB7BAD80752EC7D239 /* KVORepresentable+Swift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "KVORepresentable+Swift.swift"; path = "RxCocoa/Foundation/KVORepresentable+Swift.swift"; sourceTree = ""; }; - 3E83A23DEF6EC644ABA3997BE70BFA85 /* Observable+Bind.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Bind.swift"; path = "RxCocoa/Common/Observable+Bind.swift"; sourceTree = ""; }; - 3E94EA62172D30A25E824EE75E3D9C0B /* ControlEvent+Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ControlEvent+Driver.swift"; path = "RxCocoa/CocoaUnits/Driver/ControlEvent+Driver.swift"; sourceTree = ""; }; - 3F13DE488DCBBAE4BDBC0CFC97574078 /* Sink.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sink.swift; path = RxSwift/Observables/Implementations/Sink.swift; sourceTree = ""; }; - 3F8959F53CCE7B042DCD8B664A46438B /* Observable+Debug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Debug.swift"; path = "RxSwift/Observables/Observable+Debug.swift"; sourceTree = ""; }; - 4010445B50195F4EB7E0DD32DD2162C8 /* BRLOptionParser-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BRLOptionParser-prefix.pch"; sourceTree = ""; }; - 406F80B90F80B783BD73B5494D32BF6E /* NSSlider+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSSlider+Rx.swift"; path = "RxCocoa/macOS/NSSlider+Rx.swift"; sourceTree = ""; }; - 430720C6D9B5E4034976BD314857E51E /* Multicast.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Multicast.swift; path = RxSwift/Observables/Implementations/Multicast.swift; sourceTree = ""; }; - 43C28568E6E85CA37FC088179660CE6A /* SynchronizedDisposeType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SynchronizedDisposeType.swift; path = RxSwift/Concurrency/SynchronizedDisposeType.swift; sourceTree = ""; }; - 43F1B63559BBFA7E83623D1C9AC8E633 /* MASShortcut.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASShortcut.h; path = Framework/MASShortcut.h; sourceTree = ""; }; - 44AB1ECD0CB22EBDA55B3C604C16B84E /* KVORepresentable+CoreGraphics.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "KVORepresentable+CoreGraphics.swift"; path = "RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift"; sourceTree = ""; }; - 44F0FB436EC76D655A87DDCE3F993478 /* RxCocoa-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxCocoa-prefix.pch"; sourceTree = ""; }; - 454D73DC3052FCEF303D57FAB12CC353 /* it.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = it.lproj; sourceTree = ""; }; - 456ACDE36340325DBB10D0B916626C43 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 460823F894F0F79E2B8E8992A02BFB25 /* InvocableScheduledItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InvocableScheduledItem.swift; path = RxSwift/Schedulers/Internal/InvocableScheduledItem.swift; sourceTree = ""; }; + 34AEA52D361570E78F8B9792A835A1A1 /* AsMaybe.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AsMaybe.swift; path = RxSwift/Observables/Implementations/AsMaybe.swift; sourceTree = ""; }; + 34B22FFDD2CE991366EAEE41BA0B706A /* Observable+Binding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Binding.swift"; path = "RxSwift/Observables/Observable+Binding.swift"; sourceTree = ""; }; + 351C16C6C5C0715F1C876D91D0EDEA09 /* AsSingle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AsSingle.swift; path = RxSwift/Observables/Implementations/AsSingle.swift; sourceTree = ""; }; + 360EB85AC720C078D420EADAF6C654ED /* GCDWebServerURLEncodedFormRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerURLEncodedFormRequest.m; path = GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.m; sourceTree = ""; }; + 3690656BBFBCA6B31887844429A9D961 /* Driver+Subscription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Driver+Subscription.swift"; path = "RxCocoa/CocoaUnits/Driver/Driver+Subscription.swift"; sourceTree = ""; }; + 37276F2D8D3AED22ABF63827FF4C2E1D /* _RXObjCRuntime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _RXObjCRuntime.m; path = RxCocoa/Runtime/_RXObjCRuntime.m; sourceTree = ""; }; + 385EF54CE93CF6561FBD6FCD4BC908CF /* SingleAssignmentDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SingleAssignmentDisposable.swift; path = RxSwift/Disposables/SingleAssignmentDisposable.swift; sourceTree = ""; }; + 3AC8F7EF565790CE58751914BAB4C1B3 /* ReplaySubject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReplaySubject.swift; path = RxSwift/Subjects/ReplaySubject.swift; sourceTree = ""; }; + 3B3D790CC9A67D70E3E0EDD445F085E1 /* Merge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Merge.swift; path = RxSwift/Observables/Implementations/Merge.swift; sourceTree = ""; }; + 3C3DDD5AE0D4C7DFC098D473F24ADFC5 /* Validation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Validation.swift; path = Source/Validation.swift; sourceTree = ""; }; + 3C59EAD8143A508A0231627DD42D5C23 /* ControlTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ControlTarget.swift; path = RxCocoa/Common/ControlTarget.swift; sourceTree = ""; }; + 3F28BB197905FA93BEC98E5D1F6B9F75 /* Range.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Range.swift; path = RxSwift/Observables/Implementations/Range.swift; sourceTree = ""; }; + 405572D03A3BCC4C3EEC1F1CECFFD7EC /* GCDWebServer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GCDWebServer-dummy.m"; sourceTree = ""; }; + 40784518B3B077970ACD76FF6ADC6E18 /* AddRef.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AddRef.swift; path = RxSwift/Observables/Implementations/AddRef.swift; sourceTree = ""; }; + 4209C3E1C531131A7CA7A2DA0BB1F334 /* TakeLast.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TakeLast.swift; path = RxSwift/Observables/Implementations/TakeLast.swift; sourceTree = ""; }; + 423730810CF7CCE34FE8316CFF58F0B8 /* Generate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Generate.swift; path = RxSwift/Observables/Implementations/Generate.swift; sourceTree = ""; }; + 42677271ADFD7C38E4A2D9A129A60105 /* _RX.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _RX.m; path = RxCocoa/Runtime/_RX.m; sourceTree = ""; }; + 430E0E395046F19946D55C7F791DDCC4 /* Throttle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Throttle.swift; path = RxSwift/Observables/Implementations/Throttle.swift; sourceTree = ""; }; + 435BB7E73157084CAF2FE80FBE224AF2 /* OperationQueueScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = OperationQueueScheduler.swift; path = RxSwift/Schedulers/OperationQueueScheduler.swift; sourceTree = ""; }; + 4387584024C546AD5AD6B7EDD37485BF /* GCDWebServerConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerConnection.m; path = GCDWebServer/Core/GCDWebServerConnection.m; sourceTree = ""; }; 46662EB64876AD1C891F548C69A89E89 /* Pods-ShadowsocksX-NGTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ShadowsocksX-NGTests-dummy.m"; sourceTree = ""; }; - 46722F0D8851A939625EFF1E910938E4 /* GCDWebServerRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerRequest.m; path = GCDWebServer/Core/GCDWebServerRequest.m; sourceTree = ""; }; - 47E82A0897F8223FF68BA4F995D79C8D /* Logging.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Logging.swift; path = RxCocoa/Foundation/Logging.swift; sourceTree = ""; }; - 48352BD4C4E074FC479B0513B92EA7F9 /* Alamofire-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-umbrella.h"; sourceTree = ""; }; - 4865DDF25A3AA8BBC5BE34A85F18D17C /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = Source/Result.swift; sourceTree = ""; }; - 49E673D8031F864FAD63560EA564B5DD /* zh-Hant.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = "zh-Hant.lproj"; sourceTree = ""; }; - 4F715D3AF178663A8CE6B81C0A481755 /* TakeLast.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TakeLast.swift; path = RxSwift/Observables/Implementations/TakeLast.swift; sourceTree = ""; }; - 4FA5AD2B9A1E8DE99434B14B3549E0B9 /* pl.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = pl.lproj; sourceTree = ""; }; + 478441DBD43555BE4C13427FB4B1F102 /* SerialDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SerialDisposable.swift; path = RxSwift/Disposables/SerialDisposable.swift; sourceTree = ""; }; + 47B14EF7B2C9724416D7F4F875D1CB32 /* GCDWebServerDataRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerDataRequest.h; path = GCDWebServer/Requests/GCDWebServerDataRequest.h; sourceTree = ""; }; + 48B2C17385071197F259AB746341B272 /* LockOwnerType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LockOwnerType.swift; path = RxSwift/Concurrency/LockOwnerType.swift; sourceTree = ""; }; + 48FAC49BD2A6F874166D24BB5C9BA1AE /* Skip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Skip.swift; path = RxSwift/Observables/Implementations/Skip.swift; sourceTree = ""; }; + 49AA0901E701115CB7028794961FEE8E /* GCDWebServerStreamedResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerStreamedResponse.h; path = GCDWebServer/Responses/GCDWebServerStreamedResponse.h; sourceTree = ""; }; + 49D0AEBF622CB33505BCC1202E398B34 /* Debounce.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debounce.swift; path = RxSwift/Observables/Implementations/Debounce.swift; sourceTree = ""; }; + 49F857A6751201ED3D72F96DC13C729F /* ServerTrustPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServerTrustPolicy.swift; path = Source/ServerTrustPolicy.swift; sourceTree = ""; }; + 4A1F43CF3068C2DCAA16CAF4E7EDCE4E /* TailRecursiveSink.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TailRecursiveSink.swift; path = RxSwift/Observers/TailRecursiveSink.swift; sourceTree = ""; }; + 4C564EF425F990F06F9867FD48C5AAC9 /* ResponseSerialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseSerialization.swift; path = Source/ResponseSerialization.swift; sourceTree = ""; }; + 4F4BE5C3ABEB89172F29F09B174D6883 /* AnonymousInvocable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnonymousInvocable.swift; path = RxSwift/Schedulers/Internal/AnonymousInvocable.swift; sourceTree = ""; }; + 4F4D6DC50E558CC6AE51E3AF56E5018B /* NopDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NopDisposable.swift; path = RxSwift/Disposables/NopDisposable.swift; sourceTree = ""; }; + 4F9B04B4F8691154899A7BB06F149941 /* GCDWebServerFileRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerFileRequest.h; path = GCDWebServer/Requests/GCDWebServerFileRequest.h; sourceTree = ""; }; 4FEC4B8DFE8753A9B1DE598293568F30 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; - 5093D2110C7158AE638018A9970FA168 /* InfiniteSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InfiniteSequence.swift; path = Platform/DataStructures/InfiniteSequence.swift; sourceTree = ""; }; - 50EDCCCDD718AFFEA7DF382AA8F0B9AD /* GCDWebServer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GCDWebServer-prefix.pch"; sourceTree = ""; }; - 526ACD42F8C85B5E06999E3EC17B3AE9 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 527905F83B340CE24BD35C08B5A42EE5 /* MASShortcut.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MASShortcut.xcconfig; sourceTree = ""; }; + 5048979CBD31FB3468F7CBE0F6623336 /* cs.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = cs.lproj; sourceTree = ""; }; + 5151ABAABBD1A1CE800C52AB2A585634 /* pl.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = pl.lproj; sourceTree = ""; }; + 51C85F34568C70DB96CF9B23E0D503AB /* GCDWebServerFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerFunctions.m; path = GCDWebServer/Core/GCDWebServerFunctions.m; sourceTree = ""; }; + 51D83FA8652F1FBA030AB17ED7FE6A3C /* UIBindingObserver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIBindingObserver.swift; path = RxCocoa/CocoaUnits/UIBindingObserver.swift; sourceTree = ""; }; + 5208F42E4D16971BBD8698E9C751B6ED /* Take.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Take.swift; path = RxSwift/Observables/Implementations/Take.swift; sourceTree = ""; }; + 525C68580D6831E607AD3D862DC133DD /* Buffer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Buffer.swift; path = RxSwift/Observables/Implementations/Buffer.swift; sourceTree = ""; }; + 5280B2DC564CD3CA2D4349E9AB85ADEC /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 528841720C50D9A4B73EE2A4C6A8E132 /* SynchronizedUnsubscribeType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SynchronizedUnsubscribeType.swift; path = RxSwift/Concurrency/SynchronizedUnsubscribeType.swift; sourceTree = ""; }; 52F51F94701ABD692BFFC9F92AE2E115 /* Pods-ShadowsocksX-NG-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ShadowsocksX-NG-acknowledgements.plist"; sourceTree = ""; }; - 52FF9201C9E5F013F957000A1108C6E9 /* SynchronizedSubscribeType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SynchronizedSubscribeType.swift; path = RxSwift/Concurrency/SynchronizedSubscribeType.swift; sourceTree = ""; }; - 53556765457290978538C38D5C2FDA48 /* AnyObserver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnyObserver.swift; path = RxSwift/AnyObserver.swift; sourceTree = ""; }; - 5378A3AA30126867581EB3932CC75611 /* _RXDelegateProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _RXDelegateProxy.h; path = RxCocoa/Runtime/include/_RXDelegateProxy.h; sourceTree = ""; }; - 53D1C7024A81399E15CEE5B8F618A68E /* GCDWebServerStreamedResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerStreamedResponse.h; path = GCDWebServer/Responses/GCDWebServerStreamedResponse.h; sourceTree = ""; }; - 54065E050A33BF7D4D54D1A31297F2F1 /* GCDWebServerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerPrivate.h; path = GCDWebServer/Core/GCDWebServerPrivate.h; sourceTree = ""; }; - 55881B24D12F75F02F1EF97DBE920CF9 /* OperationQueueScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = OperationQueueScheduler.swift; path = RxSwift/Schedulers/OperationQueueScheduler.swift; sourceTree = ""; }; - 566053EA157CE20DAA58DA72F901EAF3 /* GCDWebServer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = GCDWebServer.modulemap; sourceTree = ""; }; - 576B7DEFF20932FE127908D3A5F4A54D /* Lock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Lock.swift; path = RxSwift/Concurrency/Lock.swift; sourceTree = ""; }; - 5804C71C9D97BB10B0FFE80E795CD85E /* GCDWebServerDataRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerDataRequest.m; path = GCDWebServer/Requests/GCDWebServerDataRequest.m; sourceTree = ""; }; - 5A232E9660CB723A1D128D3DFF830596 /* Catch.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Catch.swift; path = RxSwift/Observables/Implementations/Catch.swift; sourceTree = ""; }; - 5AF29FABA8C360B08D7C7424360D6666 /* _RXObjCRuntime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _RXObjCRuntime.m; path = RxCocoa/Runtime/_RXObjCRuntime.m; sourceTree = ""; }; - 5C8B549DF38B641E23F436DE84A1AB1F /* BRLOptionParser.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BRLOptionParser.xcconfig; sourceTree = ""; }; - 5CA3F63B120DCD2B0AD8CA5A75890A10 /* AsyncLock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AsyncLock.swift; path = RxSwift/Concurrency/AsyncLock.swift; sourceTree = ""; }; - 5CC992AE60F80ABE4AF96D7FB5D21FE1 /* es.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = es.lproj; sourceTree = ""; }; + 5374966D42537C6369072660B48CF199 /* Multicast.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Multicast.swift; path = RxSwift/Observables/Implementations/Multicast.swift; sourceTree = ""; }; + 550F2C93957EF2301541066CF63D46BC /* MASHotKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASHotKey.m; path = Framework/MASHotKey.m; sourceTree = ""; }; + 56E8831C108769CCDBD44A22DC79FC6C /* AnonymousDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnonymousDisposable.swift; path = RxSwift/Disposables/AnonymousDisposable.swift; sourceTree = ""; }; + 57D2E434BDBDBAFB4EAB539971677BB3 /* NSObject+Rx+KVORepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSObject+Rx+KVORepresentable.swift"; path = "RxCocoa/Foundation/NSObject+Rx+KVORepresentable.swift"; sourceTree = ""; }; + 58CB8D564AB01DBEED55DBEB75380239 /* Platform.Linux.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.Linux.swift; path = Platform/Platform.Linux.swift; sourceTree = ""; }; + 58FCD780817CA60F10D6C39A083DDCDC /* CombineLatest+Collection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CombineLatest+Collection.swift"; path = "RxSwift/Observables/Implementations/CombineLatest+Collection.swift"; sourceTree = ""; }; + 59AAA65A3B3DF93288B9973C7991DA37 /* ControlEvent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ControlEvent.swift; path = RxCocoa/CocoaUnits/ControlEvent.swift; sourceTree = ""; }; + 59B5C5DECEBDC9747029DD2086C6B00D /* Timeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timeline.swift; path = Source/Timeline.swift; sourceTree = ""; }; + 59D23F0528F3A7600784924A107552D0 /* Bag+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Bag+Rx.swift"; path = "RxSwift/Extensions/Bag+Rx.swift"; sourceTree = ""; }; + 5A11BED0A468B53EAE2F900A790FB03A /* Repeat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Repeat.swift; path = RxSwift/Observables/Implementations/Repeat.swift; sourceTree = ""; }; + 5C4A3D2ED8D2752319AA3649ECF09EA1 /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Source/SessionDelegate.swift; sourceTree = ""; }; + 5C56E70499D215B611C87DF7E81D7DF9 /* Observable+Multiple.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Multiple.swift"; path = "RxSwift/Observables/Observable+Multiple.swift"; sourceTree = ""; }; + 5D803CC81BFCD9AE0F09CC693CCD4993 /* TextInput.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TextInput.swift; path = RxCocoa/Common/TextInput.swift; sourceTree = ""; }; 5D84D92D27CE8A6F5C45E8A03155C1CF /* Pods-proxy_conf_helper-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-proxy_conf_helper-frameworks.sh"; sourceTree = ""; }; - 5DBFE4A2BEA99797EECA6F80B01CDD6C /* Producer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Producer.swift; path = RxSwift/Observables/Implementations/Producer.swift; sourceTree = ""; }; - 5E6312D7CA68889DE662535E01249EE7 /* Alamofire-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Alamofire-dummy.m"; sourceTree = ""; }; - 5EA43362B8170DE6F84E11B91A09EC32 /* MASLocalization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASLocalization.m; path = Framework/MASLocalization.m; sourceTree = ""; }; - 602C7742B3313DB6FEDFF9DD997B84AF /* RxSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxSwift-prefix.pch"; sourceTree = ""; }; - 61722C6F303EAAE1C5638EE5B33DD66A /* NSButton+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSButton+Rx.swift"; path = "RxCocoa/macOS/NSButton+Rx.swift"; sourceTree = ""; }; - 619730E0F7D114E0BBB3773020DBC95D /* GCDWebServerURLEncodedFormRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerURLEncodedFormRequest.m; path = GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.m; sourceTree = ""; }; - 61C799F1F6F393193FDEB6E8B261E48C /* AnonymousObservable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnonymousObservable.swift; path = RxSwift/Observables/Implementations/AnonymousObservable.swift; sourceTree = ""; }; - 625F1E39F5E196BA50F36BE994C84724 /* ko.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = ko.lproj; sourceTree = ""; }; - 637833F0E5DBD5017099EF0583351872 /* MultipartFormData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartFormData.swift; path = Source/MultipartFormData.swift; sourceTree = ""; }; - 64B15D82041B7A6840823B8A9F3751FD /* GCDWebServerErrorResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerErrorResponse.h; path = GCDWebServer/Responses/GCDWebServerErrorResponse.h; sourceTree = ""; }; - 64D4E87F4D1E140147BC9F1FD6C31A64 /* MASShortcutView+Bindings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MASShortcutView+Bindings.h"; path = "Framework/MASShortcutView+Bindings.h"; sourceTree = ""; }; - 6510627A459986B2675C9DF04BB19716 /* TakeWhile.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TakeWhile.swift; path = RxSwift/Observables/Implementations/TakeWhile.swift; sourceTree = ""; }; - 671D0C35D77C5534BD266C99699798F7 /* AnonymousInvocable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnonymousInvocable.swift; path = RxSwift/Schedulers/Internal/AnonymousInvocable.swift; sourceTree = ""; }; - 681AD0AD3FE6075FD0C745A2368127DB /* fr.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = fr.lproj; sourceTree = ""; }; - 6824046BB6F6BA5DA145A55756FCE843 /* SynchronizedOnType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SynchronizedOnType.swift; path = RxSwift/Concurrency/SynchronizedOnType.swift; sourceTree = ""; }; - 686894AC6B1777DEFA921D960D8B519D /* Cancelable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Cancelable.swift; path = RxSwift/Cancelable.swift; sourceTree = ""; }; - 692C39EEB847B6865E05154D699B5A0D /* ImmediateSchedulerType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImmediateSchedulerType.swift; path = RxSwift/ImmediateSchedulerType.swift; sourceTree = ""; }; - 6A6F87048375FCF10848872558242925 /* Platform.Darwin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.Darwin.swift; path = Platform/Platform.Darwin.swift; sourceTree = ""; }; - 6BC1640F774F19AE41AEC0772358B7D1 /* Bag+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Bag+Rx.swift"; path = "RxSwift/Extensions/Bag+Rx.swift"; sourceTree = ""; }; - 6F30225997CEEA64CC0BDB9D5483A203 /* AFError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AFError.swift; path = Source/AFError.swift; sourceTree = ""; }; - 6F76C18CDD50BC726A1A9F9713808F70 /* ObserverType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObserverType.swift; path = RxSwift/ObserverType.swift; sourceTree = ""; }; - 6FDB1E75DB13288544C739E40C5BE9EF /* ObservableConvertibleType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableConvertibleType.swift; path = RxSwift/ObservableConvertibleType.swift; sourceTree = ""; }; - 70BBD10E3B649EA0755AD083EA7CDFB9 /* _RX.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _RX.m; path = RxCocoa/Runtime/_RX.m; sourceTree = ""; }; - 70F68C0A07F092F38A775533EA9D0AAD /* Alamofire.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Alamofire.modulemap; sourceTree = ""; }; - 714CAF0BEC8075917C6E5B21A40F51DC /* ScheduledDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScheduledDisposable.swift; path = RxSwift/Disposables/ScheduledDisposable.swift; sourceTree = ""; }; - 732EEA83B671AC91F7FF52CDA4C2835E /* Zip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Zip.swift; path = RxSwift/Observables/Implementations/Zip.swift; sourceTree = ""; }; - 734A36BDD429097E76987966DC4ED7AF /* MASKeyMasks.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASKeyMasks.h; path = Framework/MASKeyMasks.h; sourceTree = ""; }; - 7568784246140565AB9D65499F73D5CF /* GCDWebServerFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerFileResponse.m; path = GCDWebServer/Responses/GCDWebServerFileResponse.m; sourceTree = ""; }; - 75DFF226271D0F445274C3B660ADEE2A /* Merge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Merge.swift; path = RxSwift/Observables/Implementations/Merge.swift; sourceTree = ""; }; - 765B2B823783215A2E954FAB4853AC93 /* Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Driver.swift; path = RxCocoa/CocoaUnits/Driver/Driver.swift; sourceTree = ""; }; - 76DBA6E4CB608131ADBA7D7DFF8A4E6C /* CombineLatest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombineLatest.swift; path = RxSwift/Observables/Implementations/CombineLatest.swift; sourceTree = ""; }; - 7840085CAB4823FE9A3BE2CB2174BC31 /* MASShortcut-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MASShortcut-dummy.m"; sourceTree = ""; }; - 78697A689E989F8760B7F115D0F15A40 /* Reduce.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Reduce.swift; path = RxSwift/Observables/Implementations/Reduce.swift; sourceTree = ""; }; - 78DB8C39B2ECE834500856BA7F87808B /* AnonymousDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnonymousDisposable.swift; path = RxSwift/Disposables/AnonymousDisposable.swift; sourceTree = ""; }; - 792F8486AB9FF811EC6308B78C9E71B0 /* Error.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Error.swift; path = RxSwift/Observables/Implementations/Error.swift; sourceTree = ""; }; - 7953F0BF7911F293599BC38510760E46 /* Timer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timer.swift; path = RxSwift/Observables/Implementations/Timer.swift; sourceTree = ""; }; - 79AFDA86F88F40BFA89B3B2A729B2F24 /* GCDWebServerURLEncodedFormRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerURLEncodedFormRequest.h; path = GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.h; sourceTree = ""; }; - 79D3FF68C5D11A301F7C27AC3B626AB1 /* Timeout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timeout.swift; path = RxSwift/Observables/Implementations/Timeout.swift; sourceTree = ""; }; - 7A7C5FEA0C034019250F845D696DCCC6 /* PriorityQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PriorityQueue.swift; path = Platform/DataStructures/PriorityQueue.swift; sourceTree = ""; }; - 7B3C30C8BD2ECEF438E4A7E02A0C36B6 /* Platform.Linux.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.Linux.swift; path = Platform/Platform.Linux.swift; sourceTree = ""; }; + 5E149596B24A0F722AAD04DD0E7648FC /* GCDWebServerRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerRequest.m; path = GCDWebServer/Core/GCDWebServerRequest.m; sourceTree = ""; }; + 5EFC56330DB909884DFCFFEE79C788F2 /* Variable+Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Variable+Driver.swift"; path = "RxCocoa/CocoaUnits/Driver/Variable+Driver.swift"; sourceTree = ""; }; + 5FA15EB50AC1F6D3A499615FF5B6A824 /* BRLOptionParser-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BRLOptionParser-prefix.pch"; sourceTree = ""; }; + 60B4EBBBD5D3F3346F7E7334498186B2 /* ImmediateSchedulerType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImmediateSchedulerType.swift; path = RxSwift/ImmediateSchedulerType.swift; sourceTree = ""; }; + 612574DE7BC9EB82F4DCE7D2E38318B9 /* StartWith.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StartWith.swift; path = RxSwift/Observables/Implementations/StartWith.swift; sourceTree = ""; }; + 6200462FD0350D942C06454BF3959B8D /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Observable.swift; path = RxSwift/Observable.swift; sourceTree = ""; }; + 622BE644A5BCF7100BB04E2E0578F8C2 /* RxCocoa-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxCocoa-umbrella.h"; sourceTree = ""; }; + 62543C716FC9EBEA1CAC093AD57E93FD /* BRLOptionParser-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BRLOptionParser-dummy.m"; sourceTree = ""; }; + 62A7E7809BC29FA83778B027FE2021B6 /* RefCountDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RefCountDisposable.swift; path = RxSwift/Disposables/RefCountDisposable.swift; sourceTree = ""; }; + 63973CDD0819B187A85E746CC55ED88F /* Sample.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sample.swift; path = RxSwift/Observables/Implementations/Sample.swift; sourceTree = ""; }; + 64A21A2EB387821C687BFB0B5FC0D242 /* Observable+Debug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Debug.swift"; path = "RxSwift/Observables/Observable+Debug.swift"; sourceTree = ""; }; + 64D637E8C0ED768E21CFCAE9641662B6 /* MASShortcutView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASShortcutView.m; path = Framework/MASShortcutView.m; sourceTree = ""; }; + 64EE1C0399B2FC8E5B84F059BC3B89F9 /* SynchronizedOnType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SynchronizedOnType.swift; path = RxSwift/Concurrency/SynchronizedOnType.swift; sourceTree = ""; }; + 65268C40FD5106D32C7C227F38209B3F /* PublishSubject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PublishSubject.swift; path = RxSwift/Subjects/PublishSubject.swift; sourceTree = ""; }; + 66999DB6AE23289A4ECDBEBCC7A09C5F /* MASDictionaryTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASDictionaryTransformer.m; path = Framework/MASDictionaryTransformer.m; sourceTree = ""; }; + 6746B37DEF5322A16C300B61DED7F1AD /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 67DA5A6F6EDD732F5332FE2EAC8DB9EE /* ScheduledItemType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScheduledItemType.swift; path = RxSwift/Schedulers/Internal/ScheduledItemType.swift; sourceTree = ""; }; + 67E751429B6B9BC0FABF01B8867EF866 /* RxSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RxSwift-dummy.m"; sourceTree = ""; }; + 69B06482690AB04BAC88256758995B90 /* Observable+Time.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Time.swift"; path = "RxSwift/Observables/Observable+Time.swift"; sourceTree = ""; }; + 69DF594FDFE7BC49AA1019B10D7065E7 /* ObservableType+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ObservableType+Extensions.swift"; path = "RxSwift/ObservableType+Extensions.swift"; sourceTree = ""; }; + 6A03D18B60F1C426EF558F967B149830 /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = Source/Result.swift; sourceTree = ""; }; + 6B53429CB1F8A25076762F2D82D97CCF /* BRLOptionParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRLOptionParser.h; path = BRLOptionParser/BRLOptionParser.h; sourceTree = ""; }; + 6B7E831C7BD9ACCDA16302B15F5A8035 /* Deferred.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Deferred.swift; path = RxSwift/Observables/Implementations/Deferred.swift; sourceTree = ""; }; + 6C980D73B55B8361629ADA1668748A31 /* ObservableType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableType.swift; path = RxSwift/ObservableType.swift; sourceTree = ""; }; + 6CBFE7DED568FC1C077023212FEEA6C4 /* _RXKVOObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _RXKVOObserver.h; path = RxCocoa/Runtime/include/_RXKVOObserver.h; sourceTree = ""; }; + 6CE6F293A7A5280E8364DA3F1C0B4B1B /* ObservableConvertibleType+SharedSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ObservableConvertibleType+SharedSequence.swift"; path = "RxCocoa/CocoaUnits/SharedSequence/ObservableConvertibleType+SharedSequence.swift"; sourceTree = ""; }; + 6D4A286AAC017AE5547B794DD2C8AF59 /* TaskDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TaskDelegate.swift; path = Source/TaskDelegate.swift; sourceTree = ""; }; + 6D71F1C033CF6233A31594BA370062CA /* BehaviorSubject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BehaviorSubject.swift; path = RxSwift/Subjects/BehaviorSubject.swift; sourceTree = ""; }; + 6DEED24A26C9B7E2A8FFD080F9C8C2AF /* SynchronizedSubscribeType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SynchronizedSubscribeType.swift; path = RxSwift/Concurrency/SynchronizedSubscribeType.swift; sourceTree = ""; }; + 6E1351027B3142F486A98424D9F42779 /* GCDWebServer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GCDWebServer-umbrella.h"; sourceTree = ""; }; + 6E634B678C5C5CF993CA1475A75B7DEE /* Observable+Creation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Creation.swift"; path = "RxSwift/Observables/Observable+Creation.swift"; sourceTree = ""; }; + 6F8C5EB810D1464D5BE86A414DC08616 /* MASShortcut.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MASShortcut.xcconfig; sourceTree = ""; }; + 71150F3D7194C1783C37A070F1AD879E /* ShareReplay1WhileConnected.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShareReplay1WhileConnected.swift; path = RxSwift/Observables/Implementations/ShareReplay1WhileConnected.swift; sourceTree = ""; }; + 717C5EDEA19D4107A1C3112D049EBB9C /* NotificationCenter+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NotificationCenter+Rx.swift"; path = "RxCocoa/Foundation/NotificationCenter+Rx.swift"; sourceTree = ""; }; + 72D5CA8AF08CC028C391EB1A38C661B0 /* DispatchQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Alamofire.swift"; path = "Source/DispatchQueue+Alamofire.swift"; sourceTree = ""; }; + 76BDABDC97B3B4B0598FB6DF3966C3EA /* ja.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = ja.lproj; sourceTree = ""; }; + 77A56791C067FBC9E3AC1405C667F1BA /* DisposeBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DisposeBase.swift; path = RxSwift/Disposables/DisposeBase.swift; sourceTree = ""; }; + 77B1E0282CBC343B82CC78C567B8B534 /* MASShortcutMonitor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASShortcutMonitor.m; path = Framework/MASShortcutMonitor.m; sourceTree = ""; }; + 78D3C582CD284C68D7B5FCF58D73BF07 /* SessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionManager.swift; path = Source/SessionManager.swift; sourceTree = ""; }; + 797084A009F9EF151DBBF73DD026ADC6 /* BRLOptionParser.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BRLOptionParser.xcconfig; sourceTree = ""; }; + 79CD123F941026E950A51F29197238C8 /* Alamofire-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-prefix.pch"; sourceTree = ""; }; + 7A46EF6D6AE7B13EF91E0A19B18EABEE /* SkipWhile.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SkipWhile.swift; path = RxSwift/Observables/Implementations/SkipWhile.swift; sourceTree = ""; }; + 7A5020E5D284EBAF7DED99AB83881F38 /* Observable+Aggregate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Aggregate.swift"; path = "RxSwift/Observables/Observable+Aggregate.swift"; sourceTree = ""; }; 7B63AB91C9378BEF83982ADCC82E9770 /* GCDWebServer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = GCDWebServer.framework; path = GCDWebServer.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7BB0F5D8F0F27F31636D82187890CC43 /* Map.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Map.swift; path = RxSwift/Observables/Implementations/Map.swift; sourceTree = ""; }; - 7CD18D2965F9753B545A1B1BA54828CB /* SharedSequence+Operators.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "SharedSequence+Operators.swift"; path = "RxCocoa/CocoaUnits/SharedSequence/SharedSequence+Operators.swift"; sourceTree = ""; }; - 7CF90C9854898D2869D0FA04F6FEFD51 /* NSControl+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSControl+Rx.swift"; path = "RxCocoa/macOS/NSControl+Rx.swift"; sourceTree = ""; }; - 7ED1793F25CA7EA6496FF4ACB5360784 /* GCDWebServerConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerConnection.m; path = GCDWebServer/Core/GCDWebServerConnection.m; sourceTree = ""; }; - 7FFD8762948A54487F18FE67BEE8F77F /* ElementAt.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ElementAt.swift; path = RxSwift/Observables/Implementations/ElementAt.swift; sourceTree = ""; }; - 8038341863E5188ED05DCC1BA2CF7CCD /* SerialDispatchQueueScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SerialDispatchQueueScheduler.swift; path = RxSwift/Schedulers/SerialDispatchQueueScheduler.swift; sourceTree = ""; }; - 810CEE92287B0EBC821481019F3339CA /* Observable+Multiple.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Multiple.swift"; path = "RxSwift/Observables/Observable+Multiple.swift"; sourceTree = ""; }; - 817BBAF28AF5DD16F4C657AB7AD305BF /* SingleAsync.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SingleAsync.swift; path = RxSwift/Observables/Implementations/SingleAsync.swift; sourceTree = ""; }; + 7CBC95D81A39FE47DF7664F12F9FF6E1 /* AsyncLock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AsyncLock.swift; path = RxSwift/Concurrency/AsyncLock.swift; sourceTree = ""; }; + 7CD1750A494B17CF183B50C961117C6D /* GCDWebServerErrorResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerErrorResponse.h; path = GCDWebServer/Responses/GCDWebServerErrorResponse.h; sourceTree = ""; }; + 7D0D3E3125AF3C4C71554245E74E3A8C /* Map.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Map.swift; path = RxSwift/Observables/Implementations/Map.swift; sourceTree = ""; }; + 7D6462467149007CC9112C18E0FA2BE0 /* Reactive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Reactive.swift; path = RxSwift/Reactive.swift; sourceTree = ""; }; + 7DB18E3EF0102CDC82F31CA6B466A8B3 /* ToArray.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ToArray.swift; path = RxSwift/Observables/Implementations/ToArray.swift; sourceTree = ""; }; + 7E1780CA78CC5EE56892186D6699471D /* GCDWebServerFileRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerFileRequest.m; path = GCDWebServer/Requests/GCDWebServerFileRequest.m; sourceTree = ""; }; + 7E8FD5D8A77584D71B37963D270CBAE2 /* _RXKVOObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _RXKVOObserver.m; path = RxCocoa/Runtime/_RXKVOObserver.m; sourceTree = ""; }; + 804280091995DFB0D7791D5300473723 /* GroupBy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GroupBy.swift; path = RxSwift/Observables/Implementations/GroupBy.swift; sourceTree = ""; }; + 806CAD0BC89F898F94D939211ABC3384 /* Do.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Do.swift; path = RxSwift/Observables/Implementations/Do.swift; sourceTree = ""; }; + 81A1AAE28282C31243C72011FF5A4830 /* Timer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timer.swift; path = RxSwift/Observables/Implementations/Timer.swift; sourceTree = ""; }; + 828EB8509B88B335C1D7D0C2B3D7D895 /* KVORepresentable+Swift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "KVORepresentable+Swift.swift"; path = "RxCocoa/Foundation/KVORepresentable+Swift.swift"; sourceTree = ""; }; 83323A1A2936BBA3D386DCC078E3821E /* Pods-ShadowsocksX-NGTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ShadowsocksX-NGTests-acknowledgements.markdown"; sourceTree = ""; }; - 843FB1118D1974CEF717BE490B13366C /* Observable+StandardSequenceOperators.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+StandardSequenceOperators.swift"; path = "RxSwift/Observables/Observable+StandardSequenceOperators.swift"; sourceTree = ""; }; - 84CA690C1F208F1306162397DEABE31E /* URLSession+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLSession+Rx.swift"; path = "RxCocoa/Foundation/URLSession+Rx.swift"; sourceTree = ""; }; - 855CC0FE8F67377D0E604979734C70A7 /* ObserveOnSerialDispatchQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObserveOnSerialDispatchQueue.swift; path = RxSwift/Observables/Implementations/ObserveOnSerialDispatchQueue.swift; sourceTree = ""; }; - 877E161F31772E123DCD4BC8EAA3EB75 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = Source/Response.swift; sourceTree = ""; }; - 88A487D891BF9234985AA4099272A55F /* UIBindingObserver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIBindingObserver.swift; path = RxCocoa/CocoaUnits/UIBindingObserver.swift; sourceTree = ""; }; - 89157B205B92DB7240F198AAAE3E1D23 /* GCDWebServerFileRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerFileRequest.h; path = GCDWebServer/Requests/GCDWebServerFileRequest.h; sourceTree = ""; }; - 892156754A7EF53FE3D80BC00C1975AB /* GCDWebServer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GCDWebServer-umbrella.h"; sourceTree = ""; }; - 895C03FCA3BCF07DBDA8A858302D9662 /* KVORepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KVORepresentable.swift; path = RxCocoa/Foundation/KVORepresentable.swift; sourceTree = ""; }; - 89B67DFE619069B6AD5E1D0FAA0BB8E2 /* GCDWebServerRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerRequest.h; path = GCDWebServer/Core/GCDWebServerRequest.h; sourceTree = ""; }; - 8AA937C432E0F9441C102162B7D3DE77 /* GCDWebServerDataRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerDataRequest.h; path = GCDWebServer/Requests/GCDWebServerDataRequest.h; sourceTree = ""; }; + 8402EA2D03C261FDFF31CEC2F3E17390 /* RefCount.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RefCount.swift; path = RxSwift/Observables/Implementations/RefCount.swift; sourceTree = ""; }; + 85BE206744586C11C8C71BF92918AB7B /* Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Rx.swift; path = RxSwift/Rx.swift; sourceTree = ""; }; + 874D347DB51D5D3E716E95F6E97CFF9A /* MASLocalization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASLocalization.m; path = Framework/MASLocalization.m; sourceTree = ""; }; + 87580AD4D9D45E84D60D81B7D6E97C0A /* Platform.Darwin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.Darwin.swift; path = Platform/Platform.Darwin.swift; sourceTree = ""; }; + 87C033CF62C6A03D67EA9056684E74B2 /* Delay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Delay.swift; path = RxSwift/Observables/Implementations/Delay.swift; sourceTree = ""; }; + 8865ABAF07DEA295CE14F00DEB443C41 /* RxCocoa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RxCocoa.h; path = RxCocoa/RxCocoa.h; sourceTree = ""; }; + 88C081789EDC0560233A76D711CE9659 /* Alamofire-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-umbrella.h"; sourceTree = ""; }; + 88C9C68749757A2F4BCA7FFF1CA0F9BA /* Sequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sequence.swift; path = RxSwift/Observables/Implementations/Sequence.swift; sourceTree = ""; }; + 89BD8062B3919962E8EFBC3E6DBA8537 /* SharedSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SharedSequence.swift; path = RxCocoa/CocoaUnits/SharedSequence/SharedSequence.swift; sourceTree = ""; }; + 8B0382153B0EC132C2BECD3DCB1193B6 /* DelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DelegateProxy.swift; path = RxCocoa/Common/DelegateProxy.swift; sourceTree = ""; }; + 8C0EC59C08B29B12978B1C4DBDD6491F /* MASShortcutBinder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASShortcutBinder.m; path = Framework/MASShortcutBinder.m; sourceTree = ""; }; 8CDD45C6D7A038F415A78787317E931A /* Pods-proxy_conf_helper-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-proxy_conf_helper-resources.sh"; sourceTree = ""; }; - 8D0F0E4B2FD793BE40FBBE96FD380D21 /* SynchronizedUnsubscribeType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SynchronizedUnsubscribeType.swift; path = RxSwift/Concurrency/SynchronizedUnsubscribeType.swift; sourceTree = ""; }; - 8D64CB474F7D1B9FDD19465A43A61164 /* GCDWebServerDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerDataResponse.h; path = GCDWebServer/Responses/GCDWebServerDataResponse.h; sourceTree = ""; }; - 8EBE7C5174BB4B63F44349A15EE826AF /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Source/Notifications.swift; sourceTree = ""; }; - 8EBEE1150AB7FFCE3B2375F0351703C4 /* ObservableType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableType.swift; path = RxSwift/ObservableType.swift; sourceTree = ""; }; - 8EE24E5283B182B30014870DA91C3874 /* Alamofire-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-prefix.pch"; sourceTree = ""; }; - 90398724ED993172FCE73E50A7D35827 /* MASShortcutView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASShortcutView.h; path = Framework/MASShortcutView.h; sourceTree = ""; }; - 917C99A8833B2D56222425A6F84CA5DA /* RxCocoaObjCRuntimeError+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "RxCocoaObjCRuntimeError+Extensions.swift"; path = "RxCocoa/Common/RxCocoaObjCRuntimeError+Extensions.swift"; sourceTree = ""; }; - 91CFF9598EE190FD0A1231111991540B /* ConcurrentDispatchQueueScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConcurrentDispatchQueueScheduler.swift; path = RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift; sourceTree = ""; }; - 92D90F1E9B3DB74E13DAEE89D729C388 /* en.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = en.lproj; sourceTree = ""; }; - 9350C02E503091FE07AEC409372D8DA0 /* NopDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NopDisposable.swift; path = RxSwift/Disposables/NopDisposable.swift; sourceTree = ""; }; + 8D21B3357EAEBF44D19D3A611848628E /* InvocableType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InvocableType.swift; path = RxSwift/Schedulers/Internal/InvocableType.swift; sourceTree = ""; }; + 8D679D13A827958B8B727FA6E970D093 /* MASLocalization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASLocalization.h; path = Framework/MASLocalization.h; sourceTree = ""; }; + 8E68586EDAB1716AE8A9303B3149E642 /* ResourceBundle-MASShortcut-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-MASShortcut-Info.plist"; sourceTree = ""; }; + 8E9FC22AFD2BA36D7C298505DD97DB07 /* Errors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Errors.swift; path = RxSwift/Errors.swift; sourceTree = ""; }; + 8EC98D40BE7139C7559F4E49AD0B9202 /* Shortcut.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Shortcut.h; path = Framework/Shortcut.h; sourceTree = ""; }; + 8EDBB56EE738F917614C08B706C06291 /* fr.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = fr.lproj; sourceTree = ""; }; + 8EF3B7799254D602BB02B42C4E30CFFF /* Never.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Never.swift; path = RxSwift/Observables/Implementations/Never.swift; sourceTree = ""; }; + 8F1D6D87906CF7A06C84F16A89701364 /* MASShortcut-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MASShortcut-umbrella.h"; sourceTree = ""; }; + 8F9C2E8F767184184382C0659D0B57C6 /* GCDWebServerDataRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerDataRequest.m; path = GCDWebServer/Requests/GCDWebServerDataRequest.m; sourceTree = ""; }; + 8FE77EB2349A660DFADBF5CE01DEF91C /* ObserveOnSerialDispatchQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObserveOnSerialDispatchQueue.swift; path = RxSwift/Observables/Implementations/ObserveOnSerialDispatchQueue.swift; sourceTree = ""; }; + 90BD54F6E711E6C0C832CFD421265D40 /* MASShortcutBinder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASShortcutBinder.h; path = Framework/MASShortcutBinder.h; sourceTree = ""; }; + 911BAB036265D98689D411112E34B452 /* RecursiveLock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RecursiveLock.swift; path = Platform/RecursiveLock.swift; sourceTree = ""; }; + 912AE5C728F325B6D86D33E827E266C8 /* RxMutableBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxMutableBox.swift; path = RxSwift/RxMutableBox.swift; sourceTree = ""; }; + 912D7029A05911D1FB4ABFF9E2B851C7 /* Platform.Linux.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.Linux.swift; path = Platform/Platform.Linux.swift; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 96452244B9CFEFBA70877833E181A983 /* RxSwift.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RxSwift.xcconfig; sourceTree = ""; }; - 9654A33B220127C74EC683B98310281D /* NSTextField+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSTextField+Rx.swift"; path = "RxCocoa/macOS/NSTextField+Rx.swift"; sourceTree = ""; }; - 96A80BADDCAF42068E3B168DD679B06E /* de.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = de.lproj; sourceTree = ""; }; + 941AC673759A8487CD0E31D9222FE395 /* GCDWebServerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerPrivate.h; path = GCDWebServer/Core/GCDWebServerPrivate.h; sourceTree = ""; }; + 941AD6E4532B1B070D2592FE3A2AE752 /* Error.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Error.swift; path = RxSwift/Observables/Implementations/Error.swift; sourceTree = ""; }; + 94E567C35466451FC7539A0BD8DA6046 /* Disposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Disposable.swift; path = RxSwift/Disposable.swift; sourceTree = ""; }; + 94F74323508484A216D1C8AECF3B836C /* Platform.Darwin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.Darwin.swift; path = Platform/Platform.Darwin.swift; sourceTree = ""; }; + 9591C37093C86F6625E89B7ECD358BDE /* VirtualTimeConverterType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VirtualTimeConverterType.swift; path = RxSwift/Schedulers/VirtualTimeConverterType.swift; sourceTree = ""; }; + 967C15B6D2FAA4BA22B657F647B6B412 /* en.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = en.lproj; sourceTree = ""; }; + 96A99E648BA7AA9728B58FA257DAAB8E /* NSView+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSView+Rx.swift"; path = "RxCocoa/macOS/NSView+Rx.swift"; sourceTree = ""; }; + 96B9E4E997A45EC8F7F95390DF683EA4 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9761A45C8B106617BE144782B56D8C8C /* RxCocoaObjCRuntimeError+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "RxCocoaObjCRuntimeError+Extensions.swift"; path = "RxCocoa/Common/RxCocoaObjCRuntimeError+Extensions.swift"; sourceTree = ""; }; + 981AE7988280E3E58827A4BC2FEC206B /* RxCocoa.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = RxCocoa.modulemap; sourceTree = ""; }; 98522BF2EB25C0255284080F9CA3E195 /* Pods-ShadowsocksX-NG.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ShadowsocksX-NG.debug.xcconfig"; sourceTree = ""; }; - 992670FA98E8ED847E3131B73896D8ED /* SharedSequence+Operators+arity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "SharedSequence+Operators+arity.swift"; path = "RxCocoa/CocoaUnits/SharedSequence/SharedSequence+Operators+arity.swift"; sourceTree = ""; }; - 99BD77B66B1E1355C1E30439B72937EB /* Skip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Skip.swift; path = RxSwift/Observables/Implementations/Skip.swift; sourceTree = ""; }; - 9AB8F8AA0CF2C7D1D506FB9347CAD420 /* ParameterEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoding.swift; path = Source/ParameterEncoding.swift; sourceTree = ""; }; + 999B20A513A4091BA573B86714915DD0 /* MASShortcut-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MASShortcut-dummy.m"; sourceTree = ""; }; + 99EFFE07C47D5D98611714C066D640BC /* ControlProperty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ControlProperty.swift; path = RxCocoa/CocoaUnits/ControlProperty.swift; sourceTree = ""; }; 9B6ACACC69C2EA2681770741535F1D69 /* MASShortcut.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MASShortcut.framework; path = MASShortcut.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9B8B5CBA357BDB968C73E8F58DFBC74C /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 9BA2A0099476E08B6CC8026BDF0C603E /* Pods-ShadowsocksX-NGTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ShadowsocksX-NGTests.debug.xcconfig"; sourceTree = ""; }; - 9BEF9DEF3F2FE69B0036DA832678E66F /* SingleAssignmentDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SingleAssignmentDisposable.swift; path = RxSwift/Disposables/SingleAssignmentDisposable.swift; sourceTree = ""; }; - 9BF8977C2D21F0E3E6B4809F5512A9B6 /* NSObject+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSObject+Rx.swift"; path = "RxCocoa/Foundation/NSObject+Rx.swift"; sourceTree = ""; }; - 9CAAF792369765F875B4FABB87ECE3EE /* RecursiveScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RecursiveScheduler.swift; path = RxSwift/Schedulers/RecursiveScheduler.swift; sourceTree = ""; }; - 9CEB1670F4E8A8FED505B32B7F7DADD3 /* MASShortcut-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MASShortcut-umbrella.h"; sourceTree = ""; }; - 9D539E4E6C4E295220FA4FAE74031789 /* ScheduledItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScheduledItem.swift; path = RxSwift/Schedulers/Internal/ScheduledItem.swift; sourceTree = ""; }; - 9E41B98DB7C06E244630AEDD27EB9878 /* MASShortcut.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = MASShortcut.modulemap; sourceTree = ""; }; - 9EE36FCA3C6A386A888AD56E20DFF50C /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Observable.swift; path = RxSwift/Observable.swift; sourceTree = ""; }; - A131F62F3B9E538F5835420C712C9967 /* Delay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Delay.swift; path = RxSwift/Observables/Implementations/Delay.swift; sourceTree = ""; }; - A1CDAA1E9C8D90D41A2E7EDD9164500F /* Throttle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Throttle.swift; path = RxSwift/Observables/Implementations/Throttle.swift; sourceTree = ""; }; - A1E6CC9C6785132EA7807744DE0ED408 /* GCDWebServerResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerResponse.m; path = GCDWebServer/Core/GCDWebServerResponse.m; sourceTree = ""; }; - A27E7196730EA8A4F03EECF2B8D2643A /* SubscriptionDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubscriptionDisposable.swift; path = RxSwift/Disposables/SubscriptionDisposable.swift; sourceTree = ""; }; - A3C8902E07EA5E5DE5E621971E1B5762 /* Debug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debug.swift; path = RxSwift/Observables/Implementations/Debug.swift; sourceTree = ""; }; + 9BA7C38118F80CD261A2C1877652FBAE /* NSSlider+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSSlider+Rx.swift"; path = "RxCocoa/macOS/NSSlider+Rx.swift"; sourceTree = ""; }; + 9C1694FBE9CBF06E4F1C9F38B5DFA930 /* PriorityQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PriorityQueue.swift; path = Platform/DataStructures/PriorityQueue.swift; sourceTree = ""; }; + 9C1DEE1416BA8E32A4D01FC91692DDA2 /* ko.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = ko.lproj; sourceTree = ""; }; + 9D934D4D41993FB7CED17EF07D57ED0C /* NSObject+Rx+RawRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSObject+Rx+RawRepresentable.swift"; path = "RxCocoa/Foundation/NSObject+Rx+RawRepresentable.swift"; sourceTree = ""; }; + 9DA9F52CD97C9FFDD1A42400020B5C86 /* SubscribeOn.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubscribeOn.swift; path = RxSwift/Observables/Implementations/SubscribeOn.swift; sourceTree = ""; }; + 9DC1F4EFF87C0AA04AFAB87CB07ACFC2 /* SharedSequence+Operators.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "SharedSequence+Operators.swift"; path = "RxCocoa/CocoaUnits/SharedSequence/SharedSequence+Operators.swift"; sourceTree = ""; }; + 9E5961CAA9976325C800898EBC9E0C8A /* Queue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Queue.swift; path = Platform/DataStructures/Queue.swift; sourceTree = ""; }; + 9F0C370A9E746A9710DCDBF48091819B /* ObserverBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObserverBase.swift; path = RxSwift/Observers/ObserverBase.swift; sourceTree = ""; }; + 9F4AD3BB60C4064C0FBE13775748D456 /* ShareReplay1.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShareReplay1.swift; path = RxSwift/Observables/Implementations/ShareReplay1.swift; sourceTree = ""; }; + A030F5167FA6558FE91D25425A0B9CBA /* Alamofire-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Alamofire-dummy.m"; sourceTree = ""; }; + A04BDAC57478865FE5DD3EC203E58F10 /* CombineLatest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombineLatest.swift; path = RxSwift/Observables/Implementations/CombineLatest.swift; sourceTree = ""; }; + A07A8BDB7BFA69AA9291E71416EC58CF /* GCDWebServerStreamedResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerStreamedResponse.m; path = GCDWebServer/Responses/GCDWebServerStreamedResponse.m; sourceTree = ""; }; + A24870AF7F42FAA0AD9ABB0325F1E135 /* ObserveOn.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObserveOn.swift; path = RxSwift/Observables/Implementations/ObserveOn.swift; sourceTree = ""; }; + A299EE214CF95998A680C2E5EBEEC779 /* RxCocoa-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RxCocoa-dummy.m"; sourceTree = ""; }; A5055B8EFFFBEDE50909E935D4BCA446 /* Pods-proxy_conf_helper.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-proxy_conf_helper.release.xcconfig"; sourceTree = ""; }; - A51CD43BBF9E07B471180B3C6A10EC0C /* WithLatestFrom.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WithLatestFrom.swift; path = RxSwift/Observables/Implementations/WithLatestFrom.swift; sourceTree = ""; }; - A58E912F80E74F9E3D04FE3EAF217CBD /* Platform.Darwin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.Darwin.swift; path = Platform/Platform.Darwin.swift; sourceTree = ""; }; - A8B36ED31A6E3C49C77F55E2561C966D /* InfiniteSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InfiniteSequence.swift; path = Platform/DataStructures/InfiniteSequence.swift; sourceTree = ""; }; - A9C0D3B37EBF8F2D69675B140D08F2C2 /* ServerTrustPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServerTrustPolicy.swift; path = Source/ServerTrustPolicy.swift; sourceTree = ""; }; - AA881E4DA90F807751C146D7483CDEC3 /* MASShortcut.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASShortcut.m; path = Framework/MASShortcut.m; sourceTree = ""; }; - AADDE7423A968810AADD026BD63867B0 /* MASDictionaryTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASDictionaryTransformer.m; path = Framework/MASDictionaryTransformer.m; sourceTree = ""; }; - ABBC6E0B59D4E0A8264EF5775E962781 /* NSImageView+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSImageView+Rx.swift"; path = "RxCocoa/macOS/NSImageView+Rx.swift"; sourceTree = ""; }; - ABDA9F0531A7A7502BDE85649B058DFB /* DispatchQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Alamofire.swift"; path = "Source/DispatchQueue+Alamofire.swift"; sourceTree = ""; }; - AD4ECEBBCA289543D5E13C73371BCCB3 /* Shortcut.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Shortcut.h; path = Framework/Shortcut.h; sourceTree = ""; }; - ADA9A70ECA885B87CA7B20916DC7BC6F /* RxCocoa-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RxCocoa-dummy.m"; sourceTree = ""; }; + A57E4C19B3887697A8F7105471594B11 /* AnyObserver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnyObserver.swift; path = RxSwift/AnyObserver.swift; sourceTree = ""; }; + A7104A53E83466AD81DBF532DBA762E1 /* Concat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Concat.swift; path = RxSwift/Observables/Implementations/Concat.swift; sourceTree = ""; }; + A7B90D6B38782365F4D874C83ED140A8 /* WithLatestFrom.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WithLatestFrom.swift; path = RxSwift/Observables/Implementations/WithLatestFrom.swift; sourceTree = ""; }; + A88DC5BE37CE2B71CAC10B055D989D0D /* URLSession+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLSession+Rx.swift"; path = "RxCocoa/Foundation/URLSession+Rx.swift"; sourceTree = ""; }; + AB35CD1ECD0CD3643AE3F5B53C269AF5 /* GCDWebServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServer.m; path = GCDWebServer/Core/GCDWebServer.m; sourceTree = ""; }; + AB8D181B14C53055CA4F2D61166A6C7D /* Cancelable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Cancelable.swift; path = RxSwift/Cancelable.swift; sourceTree = ""; }; + ACEE1641B4A1142BE9D66F1E19A1A083 /* AsyncSubject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AsyncSubject.swift; path = RxSwift/Subjects/AsyncSubject.swift; sourceTree = ""; }; AE6E689502E4366B125481CD898B947E /* Pods-proxy_conf_helper-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-proxy_conf_helper-acknowledgements.plist"; sourceTree = ""; }; - AF5498021A404BB1ACCA140C4B62871C /* GCDWebServerResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerResponse.h; path = GCDWebServer/Core/GCDWebServerResponse.h; sourceTree = ""; }; + AE7494AFBC1F396F79B1E5BE66FDDFCD /* Observable+Concurrency.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Concurrency.swift"; path = "RxSwift/Observables/Observable+Concurrency.swift"; sourceTree = ""; }; + AF6621583BA40AE9A61D2F58B49462B2 /* DispatchQueueConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DispatchQueueConfiguration.swift; path = RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift; sourceTree = ""; }; + AFA95DC4A3942FDA10B5AF5875F3D960 /* Logging.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Logging.swift; path = RxCocoa/Foundation/Logging.swift; sourceTree = ""; }; B0FC490145F0D2AD9B833C41F78CA818 /* RxCocoa.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = RxCocoa.framework; path = RxCocoa.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B17A240A53E7810AEDB4E2936154C885 /* DispatchQueueConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DispatchQueueConfiguration.swift; path = RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift; sourceTree = ""; }; - B2A49B7D2E244535BCE8E120F0D8D070 /* MASShortcutView+Bindings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MASShortcutView+Bindings.m"; path = "Framework/MASShortcutView+Bindings.m"; sourceTree = ""; }; + B10F73EA14E609E0D648284083AE9228 /* es.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = es.lproj; sourceTree = ""; }; + B29423A3BD529F4181880C1CC35631C5 /* Disposables.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Disposables.swift; path = RxSwift/Disposables/Disposables.swift; sourceTree = ""; }; + B2E3D4D905C0E79E9AB56BF024A35180 /* Scan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Scan.swift; path = RxSwift/Observables/Implementations/Scan.swift; sourceTree = ""; }; + B2FB3E4A7941F31C1970E3CC7568BC25 /* Sink.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sink.swift; path = RxSwift/Observables/Implementations/Sink.swift; sourceTree = ""; }; + B306B418AC914FC9F036591616123AAF /* de.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = de.lproj; sourceTree = ""; }; B30805F63C611810B322187824EBC4A5 /* Pods-ShadowsocksX-NGTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ShadowsocksX-NGTests-resources.sh"; sourceTree = ""; }; - B4AA715B5CFDDF37B623E756474221F9 /* CompositeDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CompositeDisposable.swift; path = RxSwift/Disposables/CompositeDisposable.swift; sourceTree = ""; }; - B53BE22700435344F5040D7A34438C79 /* DispatchQueue+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Extensions.swift"; path = "Platform/DispatchQueue+Extensions.swift"; sourceTree = ""; }; + B42525F3404A9781D07CAE62FD5E4918 /* Timeout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timeout.swift; path = RxSwift/Observables/Implementations/Timeout.swift; sourceTree = ""; }; + B4A0B1A36A704F964703C9BC39827964 /* MainScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MainScheduler.swift; path = RxSwift/Schedulers/MainScheduler.swift; sourceTree = ""; }; + B4AAA88BD8CDEC58F63BB1EABFBFE6EC /* ScheduledItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScheduledItem.swift; path = RxSwift/Schedulers/Internal/ScheduledItem.swift; sourceTree = ""; }; + B4FB77C479CBE2951C13C488C5CBE57E /* CurrentThreadScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CurrentThreadScheduler.swift; path = RxSwift/Schedulers/CurrentThreadScheduler.swift; sourceTree = ""; }; + B548E9BFF5CF1A650F920B46F2078971 /* KVORepresentable+CoreGraphics.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "KVORepresentable+CoreGraphics.swift"; path = "RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift"; sourceTree = ""; }; + B6411B80A4E73D2B05D6D2DC38B39232 /* _RXObjCRuntime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _RXObjCRuntime.h; path = RxCocoa/Runtime/include/_RXObjCRuntime.h; sourceTree = ""; }; B792280B7BC7CA44B5D7090C8F732A0D /* RxSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B79A9D696C3F4750347FA86B4C4CC412 /* ImmediateScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImmediateScheduler.swift; path = RxSwift/Schedulers/ImmediateScheduler.swift; sourceTree = ""; }; - B9007D55BF01790E2E753C6B70C41179 /* AddRef.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AddRef.swift; path = RxSwift/Observables/Implementations/AddRef.swift; sourceTree = ""; }; - B91619B91E70B0C5E6FAC0131E42FD7E /* MASShortcutValidator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASShortcutValidator.m; path = Framework/MASShortcutValidator.m; sourceTree = ""; }; - BA9688D287B1F197714D74B40DBE8680 /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = Source/Request.swift; sourceTree = ""; }; - BAE504DB6511ED954C7F3F53D78EFE96 /* Reactive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Reactive.swift; path = RxSwift/Reactive.swift; sourceTree = ""; }; - BBB043A7F7ED4CC26A55E3EAF07D57BC /* ConnectableObservable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConnectableObservable.swift; path = RxSwift/Observables/Implementations/ConnectableObservable.swift; sourceTree = ""; }; - BD3624B117D9AC549B1CAED71ACDA6FD /* DelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DelegateProxy.swift; path = RxCocoa/Common/DelegateProxy.swift; sourceTree = ""; }; - BD85B8D01C25C718B7106EE598B59F05 /* Queue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Queue.swift; path = Platform/DataStructures/Queue.swift; sourceTree = ""; }; + B90BBC0A33E35F445599411A4755CA2E /* SkipUntil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SkipUntil.swift; path = RxSwift/Observables/Implementations/SkipUntil.swift; sourceTree = ""; }; + BA70E613DAD83B8D5F2C1F9DE64ECAC7 /* RxTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxTarget.swift; path = RxCocoa/Common/RxTarget.swift; sourceTree = ""; }; + BA733FB551621A6A266D57AAB2CEDC2C /* MultipartFormData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartFormData.swift; path = Source/MultipartFormData.swift; sourceTree = ""; }; + BB135DF1279B5FD0AB5683BA019DD0CA /* RxSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxSwift-prefix.pch"; sourceTree = ""; }; + BBCDC9591CE194B7B56FC4194F75DB4E /* DistinctUntilChanged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DistinctUntilChanged.swift; path = RxSwift/Observables/Implementations/DistinctUntilChanged.swift; sourceTree = ""; }; + BCCCC4E79BB0BC425916AD8DE96CA785 /* Filter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Filter.swift; path = RxSwift/Observables/Implementations/Filter.swift; sourceTree = ""; }; + BD8770BF62499E1DA3EDF0659C91CBE4 /* ObservableConvertibleType+Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ObservableConvertibleType+Driver.swift"; path = "RxCocoa/CocoaUnits/Driver/ObservableConvertibleType+Driver.swift"; sourceTree = ""; }; + BDCCB04DF57C106193307E90684240A9 /* Using.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Using.swift; path = RxSwift/Observables/Implementations/Using.swift; sourceTree = ""; }; + BE2FFA6014D5EA973E00B658481C4016 /* TakeUntil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TakeUntil.swift; path = RxSwift/Observables/Implementations/TakeUntil.swift; sourceTree = ""; }; BE672B43951C625CA5F89E448A620AB0 /* Pods-ShadowsocksX-NGTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-ShadowsocksX-NGTests.modulemap"; sourceTree = ""; }; - BF02268A49529C89CA28BBD728A4864A /* SerialDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SerialDisposable.swift; path = RxSwift/Disposables/SerialDisposable.swift; sourceTree = ""; }; + BED1E9CAFD7494BC65249B31B68985C6 /* Event.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Event.swift; path = RxSwift/Event.swift; sourceTree = ""; }; BF541EB164C2E45EC80ADBE338F2D325 /* Pods_ShadowsocksX_NG.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ShadowsocksX_NG.framework; path = "Pods-ShadowsocksX-NG.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - BF6A784C26C191A7BB651A20F9FE09C2 /* Generate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Generate.swift; path = RxSwift/Observables/Implementations/Generate.swift; sourceTree = ""; }; - C0E55BD2346FA928953EF952CED22364 /* ResourceBundle-MASShortcut-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-MASShortcut-Info.plist"; sourceTree = ""; }; - C0FF24549EBA19FE3868F5A0F0A65C24 /* NSObject+Rx+KVORepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSObject+Rx+KVORepresentable.swift"; path = "RxCocoa/Foundation/NSObject+Rx+KVORepresentable.swift"; sourceTree = ""; }; - C1135B3B4D2DC6F16A992DFB33D540AA /* ConcurrentMainScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConcurrentMainScheduler.swift; path = RxSwift/Schedulers/ConcurrentMainScheduler.swift; sourceTree = ""; }; - C21DA07175E00F9652FEE28ACB8A721E /* MASHotKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASHotKey.m; path = Framework/MASHotKey.m; sourceTree = ""; }; - C22A091C89D7A9C2B736EF1A49C54280 /* TextInput.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TextInput.swift; path = RxCocoa/Common/TextInput.swift; sourceTree = ""; }; - C260F4B4F6F3E5961E3A49C5B05520CD /* DisposeBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DisposeBase.swift; path = RxSwift/Disposables/DisposeBase.swift; sourceTree = ""; }; - C28A12A58B667D3534761E41E833AD91 /* Take.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Take.swift; path = RxSwift/Observables/Implementations/Take.swift; sourceTree = ""; }; - C2E109F0988D784B0B51149C9E0CFB7E /* BRLOptionParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRLOptionParser.h; path = BRLOptionParser/BRLOptionParser.h; sourceTree = ""; }; - C2E92EE455CBA70E47FF6E1B2A8A8F10 /* NSNotificationCenter+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSNotificationCenter+Rx.swift"; path = "RxCocoa/Foundation/NSNotificationCenter+Rx.swift"; sourceTree = ""; }; - C30F42D2E6C0B7C15B64F1081749B8FF /* SubjectType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubjectType.swift; path = RxSwift/Subjects/SubjectType.swift; sourceTree = ""; }; - C4532CD920B79E94F7B61A2B9A63FCAD /* GCDWebServerStreamedResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerStreamedResponse.m; path = GCDWebServer/Responses/GCDWebServerStreamedResponse.m; sourceTree = ""; }; - C47B091EB868220FDDF555507F5A2254 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C507512A0FC2103B39A0C7761B19968E /* BRLOptionParser-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BRLOptionParser-dummy.m"; sourceTree = ""; }; - C5BA2BD2D1A8648107C13AA73BCF0AE2 /* Deferred.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Deferred.swift; path = RxSwift/Observables/Implementations/Deferred.swift; sourceTree = ""; }; - C5D5F5CEA32B2510E42A4A7976F27CCE /* PublishSubject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PublishSubject.swift; path = RxSwift/Subjects/PublishSubject.swift; sourceTree = ""; }; - C62AFA43EC9E39C9901C2014FBF75441 /* DelaySubscription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DelaySubscription.swift; path = RxSwift/Observables/Implementations/DelaySubscription.swift; sourceTree = ""; }; - C62E07D7645966D27B953E4580313A3D /* ToArray.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ToArray.swift; path = RxSwift/Observables/Implementations/ToArray.swift; sourceTree = ""; }; - C63E884ADD906BC90F3C32DB52CC398D /* MainScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MainScheduler.swift; path = RxSwift/Schedulers/MainScheduler.swift; sourceTree = ""; }; - C64F36BE9F05BDE74A3E670E69A4432E /* Observable+Creation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Creation.swift"; path = "RxSwift/Observables/Observable+Creation.swift"; sourceTree = ""; }; - C6581F3ACC8B4396727CEB2528B37F04 /* ObservableConvertibleType+SharedSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ObservableConvertibleType+SharedSequence.swift"; path = "RxCocoa/CocoaUnits/SharedSequence/ObservableConvertibleType+SharedSequence.swift"; sourceTree = ""; }; - C743F524B10FDE01231455A0541D06DC /* GCDWebServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServer.m; path = GCDWebServer/Core/GCDWebServer.m; sourceTree = ""; }; + BFBCCDD4FB2BFEE4F62E4783156E5C68 /* MASShortcut.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASShortcut.h; path = Framework/MASShortcut.h; sourceTree = ""; }; + BFD17FB0B8D729EB83B1AA769D30726F /* GCDWebServerFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerFunctions.h; path = GCDWebServer/Core/GCDWebServerFunctions.h; sourceTree = ""; }; + C0064AD98E8E57DDFB68577F20E20FAC /* _RX.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _RX.h; path = RxCocoa/Runtime/include/_RX.h; sourceTree = ""; }; + C06C7EB1ACC794EDA28251B83A3D8922 /* zh-Hant.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = "zh-Hant.lproj"; sourceTree = ""; }; + C0969FFD491CA3150D85C991F9D642BA /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = Source/Request.swift; sourceTree = ""; }; + C1714F14E43A69F77960977683265141 /* CombineLatest+arity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CombineLatest+arity.swift"; path = "RxSwift/Observables/Implementations/CombineLatest+arity.swift"; sourceTree = ""; }; + C1A4207D9981121566B1401ED299ECB8 /* SwitchIfEmpty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwitchIfEmpty.swift; path = RxSwift/Observables/Implementations/SwitchIfEmpty.swift; sourceTree = ""; }; + C22C8CFBFCA98BD54BABA13BDA83B12F /* NSObject+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSObject+Rx.swift"; path = "RxCocoa/Foundation/NSObject+Rx.swift"; sourceTree = ""; }; + C2F0513828D310E221B920200A0AF8B9 /* MASShortcut.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASShortcut.m; path = Framework/MASShortcut.m; sourceTree = ""; }; + C32CA98BF3892E9768040A5EE4DCCCD2 /* nl.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = nl.lproj; sourceTree = ""; }; + C32DA9D913B14198C262DA3670259B16 /* ParameterEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoding.swift; path = Source/ParameterEncoding.swift; sourceTree = ""; }; + C439FB2A46E79FAB7443860DB9209DED /* RxSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = RxSwift.modulemap; sourceTree = ""; }; + C524B1525327F67736740D5488CEAFD6 /* ElementAt.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ElementAt.swift; path = RxSwift/Observables/Implementations/ElementAt.swift; sourceTree = ""; }; + C5A524C4B1015097B4130310EBF6D6B0 /* GCDWebServerResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerResponse.m; path = GCDWebServer/Core/GCDWebServerResponse.m; sourceTree = ""; }; + C5B2560C6A7D9250831A76E33D926588 /* RxCocoa.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RxCocoa.xcconfig; sourceTree = ""; }; + C6CF6A88B14EECBA592B26FDE26199CA /* MASShortcutValidator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASShortcutValidator.h; path = Framework/MASShortcutValidator.h; sourceTree = ""; }; + C74A3DC1AECDEFEFB44AB3F60FFDDC33 /* GCDWebServerResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerResponse.h; path = GCDWebServer/Core/GCDWebServerResponse.h; sourceTree = ""; }; C760BAF596F45988BF95E5D3C10BA670 /* libBRLOptionParser.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libBRLOptionParser.a; path = libBRLOptionParser.a; sourceTree = BUILT_PRODUCTS_DIR; }; - C77550063B64F014D70901594CE2B8AD /* SkipUntil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SkipUntil.swift; path = RxSwift/Observables/Implementations/SkipUntil.swift; sourceTree = ""; }; - C7BA15653BA24C8CB2D6A810BD172EB4 /* GCDWebServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServer.h; path = GCDWebServer/Core/GCDWebServer.h; sourceTree = ""; }; - CB4B9ED2B1EB569789C066F34F7123A4 /* GCDWebServerFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerFileResponse.h; path = GCDWebServer/Responses/GCDWebServerFileResponse.h; sourceTree = ""; }; - CD17E58327299EAC195D109A1B69B917 /* MASShortcutBinder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASShortcutBinder.h; path = Framework/MASShortcutBinder.h; sourceTree = ""; }; - CD9A1A157A1A6F85D6AAE2A82E930E2C /* GCDWebServerDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerDataResponse.m; path = GCDWebServer/Responses/GCDWebServerDataResponse.m; sourceTree = ""; }; + CB9BC8FFFB6D237A0A82BB90707A89FA /* PrimitiveSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PrimitiveSequence.swift; path = RxSwift/Units/PrimitiveSequence.swift; sourceTree = ""; }; + CC318351A8A11C1C21A0A22107B2C46B /* Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Driver.swift; path = RxCocoa/CocoaUnits/Driver/Driver.swift; sourceTree = ""; }; + CC674E9D1A6B6D72CE70D5CC2FD43735 /* Debug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debug.swift; path = RxSwift/Observables/Implementations/Debug.swift; sourceTree = ""; }; + CD39D59D26656AE80FD3F9C683849740 /* PrimitiveSequence+Zip+arity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PrimitiveSequence+Zip+arity.swift"; path = "RxSwift/Units/PrimitiveSequence+Zip+arity.swift"; sourceTree = ""; }; + CDC25BCC601EFEC02F400739EAD16FDE /* SchedulerServices+Emulation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "SchedulerServices+Emulation.swift"; path = "RxSwift/Schedulers/SchedulerServices+Emulation.swift"; sourceTree = ""; }; + CDD891211BCACC371F9D43363C3FD01F /* MASDictionaryTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASDictionaryTransformer.h; path = Framework/MASDictionaryTransformer.h; sourceTree = ""; }; + CDFACEE80381FE2B4BC6E4FE88D93A85 /* HistoricalSchedulerTimeConverter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HistoricalSchedulerTimeConverter.swift; path = RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift; sourceTree = ""; }; CE50445A73ECB9A2ED31A6FF93D45808 /* Pods-proxy_conf_helper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-proxy_conf_helper-dummy.m"; sourceTree = ""; }; - CEA7BED190A171843822577606510B95 /* HistoricalScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HistoricalScheduler.swift; path = RxSwift/Schedulers/HistoricalScheduler.swift; sourceTree = ""; }; + CEDE61F66A8638FA807B3FD84A14A57E /* ControlEvent+Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ControlEvent+Driver.swift"; path = "RxCocoa/CocoaUnits/Driver/ControlEvent+Driver.swift"; sourceTree = ""; }; + CF3DCBD1B087248FA6482FA144CDBCD3 /* MASShortcut.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = MASShortcut.modulemap; sourceTree = ""; }; D0531FFA0D5305257F668D1D12A1411F /* Pods_ShadowsocksX_NGTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ShadowsocksX_NGTests.framework; path = "Pods-ShadowsocksX-NGTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - D0F0A9B8CFF8FE0E517E372F3A135E25 /* Validation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Validation.swift; path = Source/Validation.swift; sourceTree = ""; }; - D12E7DBD1E1B501117F95768ED20BBEC /* SubscribeOn.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubscribeOn.swift; path = RxSwift/Observables/Implementations/SubscribeOn.swift; sourceTree = ""; }; - D22C2E880EC2CBCA5E33F7C18A7C28E5 /* MASLocalization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASLocalization.h; path = Framework/MASLocalization.h; sourceTree = ""; }; - D2A563269DDD44C5472F388FE17CF34B /* ObserverBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObserverBase.swift; path = RxSwift/Observers/ObserverBase.swift; sourceTree = ""; }; - D318C435E4EBC421BC050713E69DE0D2 /* StartWith.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StartWith.swift; path = RxSwift/Observables/Implementations/StartWith.swift; sourceTree = ""; }; - D3B86E229BBF998819417BA1EF0B5A5D /* ScheduledItemType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScheduledItemType.swift; path = RxSwift/Schedulers/Internal/ScheduledItemType.swift; sourceTree = ""; }; - D42C0F905B71E4F428236353DE12928B /* BehaviorSubject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BehaviorSubject.swift; path = RxSwift/Subjects/BehaviorSubject.swift; sourceTree = ""; }; - D5049BF3275B506081D6290C03107F75 /* ShareReplay1.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShareReplay1.swift; path = RxSwift/Observables/Implementations/ShareReplay1.swift; sourceTree = ""; }; - D55A3EC1AA96E83A76F91664C4C2F29D /* zh-Hans.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = "zh-Hans.lproj"; sourceTree = ""; }; - D5ABF695E08E23D093300EE17154AD46 /* Sequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sequence.swift; path = RxSwift/Observables/Implementations/Sequence.swift; sourceTree = ""; }; - D5B12421F65E2E98C029ADC1ADEC949D /* Event.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Event.swift; path = RxSwift/Event.swift; sourceTree = ""; }; - D5F42FF8098EE07E0972506FA879BAED /* Scan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Scan.swift; path = RxSwift/Observables/Implementations/Scan.swift; sourceTree = ""; }; - D5FF1DE565E7A0E50A3F648C38E95C78 /* LockOwnerType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LockOwnerType.swift; path = RxSwift/Concurrency/LockOwnerType.swift; sourceTree = ""; }; - D63CEEDC1A1E689C53BE5B8FB80BBB4F /* NSObject+Rx+RawRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSObject+Rx+RawRepresentable.swift"; path = "RxCocoa/Foundation/NSObject+Rx+RawRepresentable.swift"; sourceTree = ""; }; - D741EA049F662EB20482A9A330B6FAE0 /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Source/SessionDelegate.swift; sourceTree = ""; }; + D06609DFEDC0A7E3A67145994809FAAB /* Amb.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Amb.swift; path = RxSwift/Observables/Implementations/Amb.swift; sourceTree = ""; }; + D12B3B0AB6BBE5692CC30020ED890E6C /* MASShortcutValidator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASShortcutValidator.m; path = Framework/MASShortcutValidator.m; sourceTree = ""; }; + D14826507A4DA27653782BD16CF7B1A4 /* VirtualTimeScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VirtualTimeScheduler.swift; path = RxSwift/Schedulers/VirtualTimeScheduler.swift; sourceTree = ""; }; + D1F45AC654673C96B25C288CE2ED7757 /* Variable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Variable.swift; path = RxSwift/Subjects/Variable.swift; sourceTree = ""; }; + D2654F715A28779785D3AD91F2ED2388 /* GroupedObservable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GroupedObservable.swift; path = RxSwift/GroupedObservable.swift; sourceTree = ""; }; + D34A2C6821DD92D46F0901C579DAEF53 /* ConnectableObservableType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConnectableObservableType.swift; path = RxSwift/ConnectableObservableType.swift; sourceTree = ""; }; + D38D66B8CF136FA1B9D3A067600536AE /* MASKeyCodes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASKeyCodes.h; path = Framework/MASKeyCodes.h; sourceTree = ""; }; + D3A7C466E29109C01509C4619554BB05 /* ObserverType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObserverType.swift; path = RxSwift/ObserverType.swift; sourceTree = ""; }; + D402F8A4734F5C848DA2287CD48E6202 /* RecursiveScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RecursiveScheduler.swift; path = RxSwift/Schedulers/RecursiveScheduler.swift; sourceTree = ""; }; + D4CD8E837A63DA5890EF98BA6E98D9D5 /* RecursiveLock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RecursiveLock.swift; path = Platform/RecursiveLock.swift; sourceTree = ""; }; + D6CBB4BD325445F86290A6A3E27E8B45 /* Alamofire.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.xcconfig; sourceTree = ""; }; D7E8128F302CF60BEF206008CE11F6D3 /* Pods-ShadowsocksX-NGTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ShadowsocksX-NGTests-umbrella.h"; sourceTree = ""; }; - D8E064CAF79139120E3D4F21DB6061FE /* ShareReplay1WhileConnected.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShareReplay1WhileConnected.swift; path = RxSwift/Observables/Implementations/ShareReplay1WhileConnected.swift; sourceTree = ""; }; - D95E797893870454BDD396AD03752C2A /* RxCocoa.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RxCocoa.xcconfig; sourceTree = ""; }; - D99D4398615AB6F4E3F9A978A1FBBBD1 /* RxTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxTarget.swift; path = RxCocoa/Common/RxTarget.swift; sourceTree = ""; }; - DB6650CEB7DB19C31BA4430E3E4A0B54 /* SkipWhile.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SkipWhile.swift; path = RxSwift/Observables/Implementations/SkipWhile.swift; sourceTree = ""; }; - DB9CD6FE2DD142EFA2C41E21AB227946 /* GCDWebServerMultiPartFormRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerMultiPartFormRequest.h; path = GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.h; sourceTree = ""; }; + D83C9C9C216CD46EAD7B39EB3A0A703C /* DisposeBag.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DisposeBag.swift; path = RxSwift/Disposables/DisposeBag.swift; sourceTree = ""; }; + D85F519585040CC0D398A38AA0930EC4 /* Just.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Just.swift; path = RxSwift/Observables/Implementations/Just.swift; sourceTree = ""; }; + DA80549D390412FB66E8ADB1475C39D2 /* Observable+StandardSequenceOperators.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+StandardSequenceOperators.swift"; path = "RxSwift/Observables/Observable+StandardSequenceOperators.swift"; sourceTree = ""; }; + DAAD2858D71A42847A49EE0FC347E9FB /* CompositeDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CompositeDisposable.swift; path = RxSwift/Disposables/CompositeDisposable.swift; sourceTree = ""; }; + DAF4B22EF3D343BEF33D2881F14213DF /* SubjectType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubjectType.swift; path = RxSwift/Subjects/SubjectType.swift; sourceTree = ""; }; + DB6A96F3AD4E1A22FFED4E6F0A4D1ECD /* Zip+Collection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Zip+Collection.swift"; path = "RxSwift/Observables/Implementations/Zip+Collection.swift"; sourceTree = ""; }; + DB83C3266870BCD77C80A5BF5F71BFE0 /* GCDWebServerURLEncodedFormRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerURLEncodedFormRequest.h; path = GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.h; sourceTree = ""; }; DC250BF8313F337272DBC9DE1FB6DB6B /* Pods-ShadowsocksX-NG.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-ShadowsocksX-NG.modulemap"; sourceTree = ""; }; - DD14A3E25D58B573F248D9BAEFB1FD96 /* Filter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Filter.swift; path = RxSwift/Observables/Implementations/Filter.swift; sourceTree = ""; }; - DD4766C097C60C5A8CBF72F3E935D01D /* RxSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = RxSwift.modulemap; sourceTree = ""; }; - DDB7132E575EAC0CA9B48A0425DAAD21 /* MASKeyCodes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASKeyCodes.h; path = Framework/MASKeyCodes.h; sourceTree = ""; }; - DDCFD4F040A53B3A3EF03BEB2CC74220 /* BooleanDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BooleanDisposable.swift; path = RxSwift/Disposables/BooleanDisposable.swift; sourceTree = ""; }; - DDF7D11C29F998B81F2EC67417F7E5E4 /* ControlTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ControlTarget.swift; path = RxCocoa/Common/ControlTarget.swift; sourceTree = ""; }; - DDF9D2AC2FD4CD42F8B089BAFDE4C6BD /* _RXKVOObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _RXKVOObserver.m; path = RxCocoa/Runtime/_RXKVOObserver.m; sourceTree = ""; }; - DEB9C9F773C5584C1A64134DF28D78E2 /* _RX.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _RX.h; path = RxCocoa/Runtime/include/_RX.h; sourceTree = ""; }; - DFE42161A598BDA23E054E467E3BBBCD /* MASShortcutValidator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASShortcutValidator.h; path = Framework/MASShortcutValidator.h; sourceTree = ""; }; - E01D49455ED5C62F58BBAE0983AEB788 /* SchedulerServices+Emulation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "SchedulerServices+Emulation.swift"; path = "RxSwift/Schedulers/SchedulerServices+Emulation.swift"; sourceTree = ""; }; - E0356020230831FEF31796FF613BF8AC /* ReplaySubject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReplaySubject.swift; path = RxSwift/Subjects/ReplaySubject.swift; sourceTree = ""; }; - E0C535339357CC5D93CA927CECB123F0 /* Observable+Time.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Time.swift"; path = "RxSwift/Observables/Observable+Time.swift"; sourceTree = ""; }; + DC7FD09C09D1BDD8476A89AA647DAF8C /* Deprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Deprecated.swift; path = RxSwift/Deprecated.swift; sourceTree = ""; }; + DE1C155D92F36B81A10B04D3AECC44DE /* MASHotKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASHotKey.h; path = Framework/MASHotKey.h; sourceTree = ""; }; + DEA3B8F9A25C60DBAD70F2E3BA7DEC79 /* BooleanDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BooleanDisposable.swift; path = RxSwift/Disposables/BooleanDisposable.swift; sourceTree = ""; }; + DF0D4DE6D3365036C0FA32D93DE77D46 /* GCDWebServerMultiPartFormRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerMultiPartFormRequest.h; path = GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.h; sourceTree = ""; }; + DF2C9231D3FFC3BBC92AD47C894E1F5D /* SectionedViewDataSourceType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SectionedViewDataSourceType.swift; path = RxCocoa/Common/SectionedViewDataSourceType.swift; sourceTree = ""; }; + DF51438B3E3A777BFCF7D021F49B4043 /* KVORepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KVORepresentable.swift; path = RxCocoa/Foundation/KVORepresentable.swift; sourceTree = ""; }; + DFAE13F86521FDD3838D3DA229D4AC25 /* ImmediateScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImmediateScheduler.swift; path = RxSwift/Schedulers/ImmediateScheduler.swift; sourceTree = ""; }; E0CF346DBA2C8BDB54C4D65E01BE83B4 /* libPods-proxy_conf_helper.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-proxy_conf_helper.a"; path = "libPods-proxy_conf_helper.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - E0D8E8F499BC8AD11FA423052AD2B91A /* Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Rx.swift; path = RxSwift/Rx.swift; sourceTree = ""; }; - E0E8FB6DEC7DDD0F6FEEE86CCDFBC820 /* BRLOptionParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRLOptionParser.m; path = BRLOptionParser/BRLOptionParser.m; sourceTree = ""; }; + E149E56489936102F081551F32C5F5EB /* Reduce.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Reduce.swift; path = RxSwift/Observables/Implementations/Reduce.swift; sourceTree = ""; }; E15756B54614ACA75251861D700E1946 /* RxSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = RxSwift.framework; path = RxSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E19D18DB5C1EA9E63E6DBF428B35C892 /* RefCountDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RefCountDisposable.swift; path = RxSwift/Disposables/RefCountDisposable.swift; sourceTree = ""; }; - E258DC88C29E64BF1A3523D2FFF806B5 /* RxCocoaRuntime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RxCocoaRuntime.h; path = RxCocoa/Runtime/include/RxCocoaRuntime.h; sourceTree = ""; }; - E4B8CB36B3783E2A2310ADFB4CC33864 /* SharedSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SharedSequence.swift; path = RxCocoa/CocoaUnits/SharedSequence/SharedSequence.swift; sourceTree = ""; }; - E58577DB359E44ED81D9764E891B1E47 /* Variable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Variable.swift; path = RxSwift/Subjects/Variable.swift; sourceTree = ""; }; - E7AC2CB247486E6770E163434DEC2B56 /* Alamofire.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.xcconfig; sourceTree = ""; }; - E809E90945E9BE1B60403F66019B3FF4 /* Just.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Just.swift; path = RxSwift/Observables/Implementations/Just.swift; sourceTree = ""; }; - E8BCA33BF99DD786DF82E4D02D5E7F3D /* TailRecursiveSink.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TailRecursiveSink.swift; path = RxSwift/Observers/TailRecursiveSink.swift; sourceTree = ""; }; - E8E6D1E113A8A1E690491F2E3F8A2201 /* _RXDelegateProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _RXDelegateProxy.m; path = RxCocoa/Runtime/_RXDelegateProxy.m; sourceTree = ""; }; + E32C96F7FC2C415654F4C0F1231FA3E4 /* GCDWebServer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GCDWebServer-prefix.pch"; sourceTree = ""; }; + E49FDA3188916AD3090FCBD300783D02 /* GCDWebServer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = GCDWebServer.modulemap; sourceTree = ""; }; + E4B98A26D58EDEECA20933684CC1C45F /* MASShortcutMonitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASShortcutMonitor.h; path = Framework/MASShortcutMonitor.h; sourceTree = ""; }; + E7CAE213EE8F8ECB17980C4BF269D35A /* AFError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AFError.swift; path = Source/AFError.swift; sourceTree = ""; }; + E7DE4B15A2C7B806D42D1BC1189CFC19 /* Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Alamofire.swift; path = Source/Alamofire.swift; sourceTree = ""; }; + E85ED0518085EBD804CA390B52EDDFE5 /* GCDWebServerErrorResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerErrorResponse.m; path = GCDWebServer/Responses/GCDWebServerErrorResponse.m; sourceTree = ""; }; EA41BEE3B4D9F1A89F0135CA91A7F472 /* Pods-ShadowsocksX-NG-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ShadowsocksX-NG-resources.sh"; sourceTree = ""; }; EA9A1A86E1594EEC96C2B7214E16E50F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; - EAB6E0C832D664BB3933B743E204615D /* Never.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Never.swift; path = RxSwift/Observables/Implementations/Never.swift; sourceTree = ""; }; - EB98EC4AC6562F031A89D824210E36CF /* MASShortcutView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASShortcutView.m; path = Framework/MASShortcutView.m; sourceTree = ""; }; - EBF2BBFDA4F26C440DB709FAC5D3F25C /* cs.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = cs.lproj; sourceTree = ""; }; - ED83F972951546FF54141DCDFFA0A699 /* ObservableType+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ObservableType+Extensions.swift"; path = "RxSwift/ObservableType+Extensions.swift"; sourceTree = ""; }; - EE0E8A058AF30A041E8DB6F051BBDE16 /* Queue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Queue.swift; path = Platform/DataStructures/Queue.swift; sourceTree = ""; }; - EEE98592A8E669C3B96D3E19120FC821 /* NSView+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSView+Rx.swift"; path = "RxCocoa/macOS/NSView+Rx.swift"; sourceTree = ""; }; - EF1D18BE7EFD12AA66C3376332FEF003 /* ControlEvent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ControlEvent.swift; path = RxCocoa/CocoaUnits/ControlEvent.swift; sourceTree = ""; }; - EF5E4BD0EF6C6C73284552531F108886 /* Window.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Window.swift; path = RxSwift/Observables/Implementations/Window.swift; sourceTree = ""; }; - EF832054667391DF7219EEC7E1426BFB /* RxCocoa.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxCocoa.swift; path = RxCocoa/RxCocoa.swift; sourceTree = ""; }; + EB76A421976FAB6ECBC3D127F6A77FC9 /* Empty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Empty.swift; path = RxSwift/Observables/Implementations/Empty.swift; sourceTree = ""; }; + EB8FD0BE80EE67981541A1D0567EDF2A /* DispatchQueue+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Extensions.swift"; path = "Platform/DispatchQueue+Extensions.swift"; sourceTree = ""; }; + EC77664C6DB0A9CA9F4AC1E93463971A /* Catch.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Catch.swift; path = RxSwift/Observables/Implementations/Catch.swift; sourceTree = ""; }; + ED29315833FAA1E5A338CFA8005377A9 /* Observable+Single.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Single.swift"; path = "RxSwift/Observables/Observable+Single.swift"; sourceTree = ""; }; + EEA9F8AE14D36C1EDC66F1C167C4146D /* NSLayoutConstraint+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSLayoutConstraint+Rx.swift"; path = "RxCocoa/Common/NSLayoutConstraint+Rx.swift"; sourceTree = ""; }; + EFC679B790AD9EE3F36E8291BBECFF33 /* NetworkReachabilityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkReachabilityManager.swift; path = Source/NetworkReachabilityManager.swift; sourceTree = ""; }; EFD468F10CD22B3EFAB406DAC3FCC7C9 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/Carbon.framework; sourceTree = DEVELOPER_DIR; }; - EFE14E99FE3CC24013D01106E3710A5A /* GCDWebServer.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GCDWebServer.xcconfig; sourceTree = ""; }; - F03278787D78510DCEEDDFAB06AD42F6 /* Buffer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Buffer.swift; path = RxSwift/Observables/Implementations/Buffer.swift; sourceTree = ""; }; - F1B18A75522A9348284094E1A906CFDB /* ja.lproj */ = {isa = PBXFileReference; includeInIndex = 1; path = ja.lproj; sourceTree = ""; }; - F297CA1E051508BD3B6024498BC6FC3C /* Zip+Collection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Zip+Collection.swift"; path = "RxSwift/Observables/Implementations/Zip+Collection.swift"; sourceTree = ""; }; - F2EC79DAE53D1D70A47EBAFD39ED862E /* Bag.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Bag.swift; path = Platform/DataStructures/Bag.swift; sourceTree = ""; }; - F38DB6F5263618374E7A97C5A4E497A1 /* HistoricalSchedulerTimeConverter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HistoricalSchedulerTimeConverter.swift; path = RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift; sourceTree = ""; }; - F41DBC7F2E4B382CC91B8B28EF579853 /* RxMutableBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxMutableBox.swift; path = RxSwift/RxMutableBox.swift; sourceTree = ""; }; - F4752DE1461395A71AEFA91856BB6469 /* Observable+Concurrency.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Concurrency.swift"; path = "RxSwift/Observables/Observable+Concurrency.swift"; sourceTree = ""; }; - F49B97A2DDE155335D9A857CBCC1443E /* Repeat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Repeat.swift; path = RxSwift/Observables/Implementations/Repeat.swift; sourceTree = ""; }; - F4B4BFA85D88E0779216DDD104D2F899 /* RxCocoa-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxCocoa-umbrella.h"; sourceTree = ""; }; - F62634DC9F384C9CC41CEDA292858659 /* SessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionManager.swift; path = Source/SessionManager.swift; sourceTree = ""; }; + EFDF2D18587604D407F5C9C506D4018D /* Lock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Lock.swift; path = RxSwift/Concurrency/Lock.swift; sourceTree = ""; }; + F1AE55DF48B45CC65465B461F51CA3EA /* Window.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Window.swift; path = RxSwift/Observables/Implementations/Window.swift; sourceTree = ""; }; + F2B98DC1F57C36B412E2E662A8170642 /* InfiniteSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InfiniteSequence.swift; path = Platform/DataStructures/InfiniteSequence.swift; sourceTree = ""; }; + F3BEA0E59DC8EE162D7707F0458BC410 /* Alamofire.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Alamofire.modulemap; sourceTree = ""; }; F67191B1F87DA238C4D87250DFBE43DD /* Pods-ShadowsocksX-NGTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ShadowsocksX-NGTests.release.xcconfig"; sourceTree = ""; }; - F6CAD2064683A8B0C403939B2A81D812 /* Sample.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sample.swift; path = RxSwift/Observables/Implementations/Sample.swift; sourceTree = ""; }; - F774A8AA7CF1C667887EFD6BB875DBBD /* Bag.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Bag.swift; path = Platform/DataStructures/Bag.swift; sourceTree = ""; }; - F9A4EC64F789C4F631F887DA33498D8C /* CombineLatest+Collection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CombineLatest+Collection.swift"; path = "RxSwift/Observables/Implementations/CombineLatest+Collection.swift"; sourceTree = ""; }; - FB026E9D4AF4C5FBA8F291E002660852 /* ConnectableObservableType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConnectableObservableType.swift; path = RxSwift/ConnectableObservableType.swift; sourceTree = ""; }; + F684374BB1F33C4CA323178463EB2028 /* RxCocoa.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxCocoa.swift; path = RxCocoa/RxCocoa.swift; sourceTree = ""; }; + F6A1E5B8450A97482BAF559588B3DD71 /* ConnectableObservable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConnectableObservable.swift; path = RxSwift/Observables/Implementations/ConnectableObservable.swift; sourceTree = ""; }; + F72515DA7F790ADA9DF78910C67193DB /* ObservableConvertibleType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableConvertibleType.swift; path = RxSwift/ObservableConvertibleType.swift; sourceTree = ""; }; + F7519EEDC18867A7D4354752DF4FFB06 /* NSImageView+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSImageView+Rx.swift"; path = "RxCocoa/macOS/NSImageView+Rx.swift"; sourceTree = ""; }; + F786CE1FD64B7570C24F231E23D7566A /* SerialDispatchQueueScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SerialDispatchQueueScheduler.swift; path = RxSwift/Schedulers/SerialDispatchQueueScheduler.swift; sourceTree = ""; }; + F88F573DA82E488BDAE8BC55E93B96B1 /* Bag.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Bag.swift; path = Platform/DataStructures/Bag.swift; sourceTree = ""; }; + F8EA91701D31DC73ED6AA21F7AD637B2 /* RxCocoaRuntime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RxCocoaRuntime.h; path = RxCocoa/Runtime/include/RxCocoaRuntime.h; sourceTree = ""; }; + F91767E7613F8479E6F65DDF39CDB558 /* ControlProperty+Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ControlProperty+Driver.swift"; path = "RxCocoa/CocoaUnits/Driver/ControlProperty+Driver.swift"; sourceTree = ""; }; + F9A79C0537300E8EC3B4938AE3FCCE88 /* MASShortcutView+Bindings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MASShortcutView+Bindings.m"; path = "Framework/MASShortcutView+Bindings.m"; sourceTree = ""; }; + F9ABBB68077D7AD074DFC9923895B5D6 /* Switch.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Switch.swift; path = RxSwift/Observables/Implementations/Switch.swift; sourceTree = ""; }; + FAFB76E73828C3673CEC60577DD3D7F0 /* GCDWebServerConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerConnection.h; path = GCDWebServer/Core/GCDWebServerConnection.h; sourceTree = ""; }; FBAF339F33C80576683D76394CA51047 /* Alamofire.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Alamofire.framework; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FECDA2B834D431A94C10FFDA1E53F33E /* PriorityQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PriorityQueue.swift; path = Platform/DataStructures/PriorityQueue.swift; sourceTree = ""; }; - FFA24FA42F80B63EFCE3B8D7EAEEB17E /* RefCount.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RefCount.swift; path = RxSwift/Observables/Implementations/RefCount.swift; sourceTree = ""; }; + FCBF6FFFBBE49493E089992E786E1A20 /* ScheduledDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScheduledDisposable.swift; path = RxSwift/Disposables/ScheduledDisposable.swift; sourceTree = ""; }; + FD0EA79B1967F9A248BD807632BC9C79 /* GCDWebServerDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerDataResponse.h; path = GCDWebServer/Responses/GCDWebServerDataResponse.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -827,6 +851,83 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 02CDF8BDA510DD82276AE66867F81915 /* Support Files */ = { + isa = PBXGroup; + children = ( + 797084A009F9EF151DBBF73DD026ADC6 /* BRLOptionParser.xcconfig */, + 62543C716FC9EBEA1CAC093AD57E93FD /* BRLOptionParser-dummy.m */, + 5FA15EB50AC1F6D3A499615FF5B6A824 /* BRLOptionParser-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/BRLOptionParser"; + sourceTree = ""; + }; + 05DB2D724616BA9442057EBD83308168 /* RxCocoa */ = { + isa = PBXGroup; + children = ( + C0064AD98E8E57DDFB68577F20E20FAC /* _RX.h */, + 42677271ADFD7C38E4A2D9A129A60105 /* _RX.m */, + 1407079A40EB921E4490FEA9DDB23222 /* _RXDelegateProxy.h */, + 0EED0973795941F05F42B25E0C0F6D99 /* _RXDelegateProxy.m */, + 6CBFE7DED568FC1C077023212FEEA6C4 /* _RXKVOObserver.h */, + 7E8FD5D8A77584D71B37963D270CBAE2 /* _RXKVOObserver.m */, + B6411B80A4E73D2B05D6D2DC38B39232 /* _RXObjCRuntime.h */, + 37276F2D8D3AED22ABF63827FF4C2E1D /* _RXObjCRuntime.m */, + 2EBB434DC5BFF77FC3F8C0215BDFC40F /* Bag.swift */, + 59AAA65A3B3DF93288B9973C7991DA37 /* ControlEvent.swift */, + CEDE61F66A8638FA807B3FD84A14A57E /* ControlEvent+Driver.swift */, + 99EFFE07C47D5D98611714C066D640BC /* ControlProperty.swift */, + F91767E7613F8479E6F65DDF39CDB558 /* ControlProperty+Driver.swift */, + 3C59EAD8143A508A0231627DD42D5C23 /* ControlTarget.swift */, + 8B0382153B0EC132C2BECD3DCB1193B6 /* DelegateProxy.swift */, + 2DED940C0868591ED86659234813AF5B /* DelegateProxyType.swift */, + EB8FD0BE80EE67981541A1D0567EDF2A /* DispatchQueue+Extensions.swift */, + CC318351A8A11C1C21A0A22107B2C46B /* Driver.swift */, + 3690656BBFBCA6B31887844429A9D961 /* Driver+Subscription.swift */, + F2B98DC1F57C36B412E2E662A8170642 /* InfiniteSequence.swift */, + DF51438B3E3A777BFCF7D021F49B4043 /* KVORepresentable.swift */, + B548E9BFF5CF1A650F920B46F2078971 /* KVORepresentable+CoreGraphics.swift */, + 828EB8509B88B335C1D7D0C2B3D7D895 /* KVORepresentable+Swift.swift */, + AFA95DC4A3942FDA10B5AF5875F3D960 /* Logging.swift */, + 717C5EDEA19D4107A1C3112D049EBB9C /* NotificationCenter+Rx.swift */, + 2C4F41A96AB13FAA06EB576B1286FD61 /* NSButton+Rx.swift */, + 0BE0BBDCBD8F691F0357C2BFD2A61DF7 /* NSControl+Rx.swift */, + F7519EEDC18867A7D4354752DF4FFB06 /* NSImageView+Rx.swift */, + EEA9F8AE14D36C1EDC66F1C167C4146D /* NSLayoutConstraint+Rx.swift */, + C22C8CFBFCA98BD54BABA13BDA83B12F /* NSObject+Rx.swift */, + 57D2E434BDBDBAFB4EAB539971677BB3 /* NSObject+Rx+KVORepresentable.swift */, + 9D934D4D41993FB7CED17EF07D57ED0C /* NSObject+Rx+RawRepresentable.swift */, + 9BA7C38118F80CD261A2C1877652FBAE /* NSSlider+Rx.swift */, + 088BD130A0FBEAEA4D9FDAE864B58DC7 /* NSTextField+Rx.swift */, + 96A99E648BA7AA9728B58FA257DAAB8E /* NSView+Rx.swift */, + 0D3C195DE57AB12AEADA0C216773CC29 /* Observable+Bind.swift */, + BD8770BF62499E1DA3EDF0659C91CBE4 /* ObservableConvertibleType+Driver.swift */, + 6CE6F293A7A5280E8364DA3F1C0B4B1B /* ObservableConvertibleType+SharedSequence.swift */, + 94F74323508484A216D1C8AECF3B836C /* Platform.Darwin.swift */, + 58CB8D564AB01DBEED55DBEB75380239 /* Platform.Linux.swift */, + 1344965A836EE2DFFA93D27044532B30 /* PriorityQueue.swift */, + 9E5961CAA9976325C800898EBC9E0C8A /* Queue.swift */, + 911BAB036265D98689D411112E34B452 /* RecursiveLock.swift */, + 8865ABAF07DEA295CE14F00DEB443C41 /* RxCocoa.h */, + F684374BB1F33C4CA323178463EB2028 /* RxCocoa.swift */, + 9761A45C8B106617BE144782B56D8C8C /* RxCocoaObjCRuntimeError+Extensions.swift */, + F8EA91701D31DC73ED6AA21F7AD637B2 /* RxCocoaRuntime.h */, + BA70E613DAD83B8D5F2C1F9DE64ECAC7 /* RxTarget.swift */, + DF2C9231D3FFC3BBC92AD47C894E1F5D /* SectionedViewDataSourceType.swift */, + 89BD8062B3919962E8EFBC3E6DBA8537 /* SharedSequence.swift */, + 9DC1F4EFF87C0AA04AFAB87CB07ACFC2 /* SharedSequence+Operators.swift */, + 1B81A53E7BA7B919692592FBAEB2C093 /* SharedSequence+Operators+arity.swift */, + 5D803CC81BFCD9AE0F09CC693CCD4993 /* TextInput.swift */, + 51D83FA8652F1FBA030AB17ED7FE6A3C /* UIBindingObserver.swift */, + A88DC5BE37CE2B71CAC10B055D989D0D /* URLSession+Rx.swift */, + 5EFC56330DB909884DFCFFEE79C788F2 /* Variable+Driver.swift */, + 2E934534DD61AA5D52BB8BD519A53726 /* Variable+SharedSequence.swift */, + A6D905C92591DD3CC9A5586DC4788A47 /* Support Files */, + ); + name = RxCocoa; + path = RxCocoa; + sourceTree = ""; + }; 07568FCBBF071BD2EE0E5EBA001A4712 /* Pods-ShadowsocksX-NGTests */ = { isa = PBXGroup; children = ( @@ -845,193 +946,68 @@ path = "Target Support Files/Pods-ShadowsocksX-NGTests"; sourceTree = ""; }; - 34FFC41A803A1DE1AD2BA42E08949249 /* Support Files */ = { + 2D7BA557F4C0940A77FFB9270557294B /* Support Files */ = { isa = PBXGroup; children = ( - 566053EA157CE20DAA58DA72F901EAF3 /* GCDWebServer.modulemap */, - EFE14E99FE3CC24013D01106E3710A5A /* GCDWebServer.xcconfig */, - 3934F71A55252BAEC1B840B4FB0F5831 /* GCDWebServer-dummy.m */, - 50EDCCCDD718AFFEA7DF382AA8F0B9AD /* GCDWebServer-prefix.pch */, - 892156754A7EF53FE3D80BC00C1975AB /* GCDWebServer-umbrella.h */, - 35C565B4B8F119EF72E6D99AE6C5FE4E /* Info.plist */, + 96B9E4E997A45EC8F7F95390DF683EA4 /* Info.plist */, + CF3DCBD1B087248FA6482FA144CDBCD3 /* MASShortcut.modulemap */, + 6F8C5EB810D1464D5BE86A414DC08616 /* MASShortcut.xcconfig */, + 999B20A513A4091BA573B86714915DD0 /* MASShortcut-dummy.m */, + 045B604CBC573827216DD575F3C9A9BE /* MASShortcut-prefix.pch */, + 8F1D6D87906CF7A06C84F16A89701364 /* MASShortcut-umbrella.h */, + 8E68586EDAB1716AE8A9303B3149E642 /* ResourceBundle-MASShortcut-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/MASShortcut"; + sourceTree = ""; + }; + 359D3CBF032E922C6E0EBD419E5611A5 /* Pods */ = { + isa = PBXGroup; + children = ( + 9712645556A969816EEB46A364368C74 /* Alamofire */, + BD838F4740449375D7768E6248698B27 /* BRLOptionParser */, + E5268B6C8C971560742CEF27BB088DED /* GCDWebServer */, + AD089A2216580815F93912EDB4FEDE85 /* MASShortcut */, + 05DB2D724616BA9442057EBD83308168 /* RxCocoa */, + 9DF9AD84022C72252E16F01DF14949E2 /* RxSwift */, + ); + name = Pods; + sourceTree = ""; + }; + 4047D8E4A66663BBA78A370A91AE7F79 /* Resources */ = { + isa = PBXGroup; + children = ( + 5048979CBD31FB3468F7CBE0F6623336 /* cs.lproj */, + B306B418AC914FC9F036591616123AAF /* de.lproj */, + 967C15B6D2FAA4BA22B657F647B6B412 /* en.lproj */, + B10F73EA14E609E0D648284083AE9228 /* es.lproj */, + 8EDBB56EE738F917614C08B706C06291 /* fr.lproj */, + 2C391D236625ECDDDADDF2E2CF327C90 /* it.lproj */, + 76BDABDC97B3B4B0598FB6DF3966C3EA /* ja.lproj */, + 9C1DEE1416BA8E32A4D01FC91692DDA2 /* ko.lproj */, + C32CA98BF3892E9768040A5EE4DCCCD2 /* nl.lproj */, + 5151ABAABBD1A1CE800C52AB2A585634 /* pl.lproj */, + 15FDCB75F28FF0766B21B59543A5AFED /* ru.lproj */, + 0444897C0A30423DE512BC301413EBC3 /* zh-Hans.lproj */, + C06C7EB1ACC794EDA28251B83A3D8922 /* zh-Hant.lproj */, + ); + name = Resources; + sourceTree = ""; + }; + 6D327928671CE89EC015B75776F6298A /* Support Files */ = { + isa = PBXGroup; + children = ( + E49FDA3188916AD3090FCBD300783D02 /* GCDWebServer.modulemap */, + 1255CE4EF584F1227FCFE877388965BE /* GCDWebServer.xcconfig */, + 405572D03A3BCC4C3EEC1F1CECFFD7EC /* GCDWebServer-dummy.m */, + E32C96F7FC2C415654F4C0F1231FA3E4 /* GCDWebServer-prefix.pch */, + 6E1351027B3142F486A98424D9F42779 /* GCDWebServer-umbrella.h */, + 1096074B199A62C38833809533B6325A /* Info.plist */, ); name = "Support Files"; path = "../Target Support Files/GCDWebServer"; sourceTree = ""; }; - 4C61D7F456D10FA95D42971061996162 /* RxSwift */ = { - isa = PBXGroup; - children = ( - B9007D55BF01790E2E753C6B70C41179 /* AddRef.swift */, - 28A7A9E967BF724C11ED0D7AECD827B2 /* Amb.swift */, - 78DB8C39B2ECE834500856BA7F87808B /* AnonymousDisposable.swift */, - 671D0C35D77C5534BD266C99699798F7 /* AnonymousInvocable.swift */, - 61C799F1F6F393193FDEB6E8B261E48C /* AnonymousObservable.swift */, - 00C649D6C2694F89369C6E4BFDF7020D /* AnonymousObserver.swift */, - 53556765457290978538C38D5C2FDA48 /* AnyObserver.swift */, - 5CA3F63B120DCD2B0AD8CA5A75890A10 /* AsyncLock.swift */, - F774A8AA7CF1C667887EFD6BB875DBBD /* Bag.swift */, - 6BC1640F774F19AE41AEC0772358B7D1 /* Bag+Rx.swift */, - D42C0F905B71E4F428236353DE12928B /* BehaviorSubject.swift */, - 3B2A679FC3BFF4F53FC9DF5CD71C6E75 /* BinaryDisposable.swift */, - DDCFD4F040A53B3A3EF03BEB2CC74220 /* BooleanDisposable.swift */, - F03278787D78510DCEEDDFAB06AD42F6 /* Buffer.swift */, - 686894AC6B1777DEFA921D960D8B519D /* Cancelable.swift */, - 5A232E9660CB723A1D128D3DFF830596 /* Catch.swift */, - 76DBA6E4CB608131ADBA7D7DFF8A4E6C /* CombineLatest.swift */, - 1240BCF9D45671D109A354E1255C9D0C /* CombineLatest+arity.swift */, - F9A4EC64F789C4F631F887DA33498D8C /* CombineLatest+Collection.swift */, - B4AA715B5CFDDF37B623E756474221F9 /* CompositeDisposable.swift */, - 35C4D7DBC6617F730997D93E6D496A63 /* Concat.swift */, - 91CFF9598EE190FD0A1231111991540B /* ConcurrentDispatchQueueScheduler.swift */, - C1135B3B4D2DC6F16A992DFB33D540AA /* ConcurrentMainScheduler.swift */, - BBB043A7F7ED4CC26A55E3EAF07D57BC /* ConnectableObservable.swift */, - FB026E9D4AF4C5FBA8F291E002660852 /* ConnectableObservableType.swift */, - 399C88A36ABC21E580DC529BB5ABD62D /* CurrentThreadScheduler.swift */, - A3C8902E07EA5E5DE5E621971E1B5762 /* Debug.swift */, - 3E154A2F60883D6C1571925AC73829D7 /* Debunce.swift */, - C5BA2BD2D1A8648107C13AA73BCF0AE2 /* Deferred.swift */, - A131F62F3B9E538F5835420C712C9967 /* Delay.swift */, - C62AFA43EC9E39C9901C2014FBF75441 /* DelaySubscription.swift */, - B53BE22700435344F5040D7A34438C79 /* DispatchQueue+Extensions.swift */, - B17A240A53E7810AEDB4E2936154C885 /* DispatchQueueConfiguration.swift */, - 26580914BABDC16C8FB464FE319029B4 /* Disposable.swift */, - 26339E7D90E6D149F805C377419D25BA /* Disposables.swift */, - 07CBE0BD61056E4192366A2BEB5035FF /* DisposeBag.swift */, - C260F4B4F6F3E5961E3A49C5B05520CD /* DisposeBase.swift */, - 0DF6EBFF755554CC9AB8962CD97A8DC3 /* DistinctUntilChanged.swift */, - 30522BE8DC862EF75E5D63648F9179F3 /* Do.swift */, - 7FFD8762948A54487F18FE67BEE8F77F /* ElementAt.swift */, - 18C31186BA3198D89D82D666FBB1905C /* Empty.swift */, - 792F8486AB9FF811EC6308B78C9E71B0 /* Error.swift */, - 191592A653EE5E76F4D61D104274AA51 /* Errors.swift */, - D5B12421F65E2E98C029ADC1ADEC949D /* Event.swift */, - DD14A3E25D58B573F248D9BAEFB1FD96 /* Filter.swift */, - BF6A784C26C191A7BB651A20F9FE09C2 /* Generate.swift */, - CEA7BED190A171843822577606510B95 /* HistoricalScheduler.swift */, - F38DB6F5263618374E7A97C5A4E497A1 /* HistoricalSchedulerTimeConverter.swift */, - B79A9D696C3F4750347FA86B4C4CC412 /* ImmediateScheduler.swift */, - 692C39EEB847B6865E05154D699B5A0D /* ImmediateSchedulerType.swift */, - A8B36ED31A6E3C49C77F55E2561C966D /* InfiniteSequence.swift */, - 460823F894F0F79E2B8E8992A02BFB25 /* InvocableScheduledItem.swift */, - 1633F46EA774BF24EF9CCD7B8CB200E8 /* InvocableType.swift */, - E809E90945E9BE1B60403F66019B3FF4 /* Just.swift */, - 576B7DEFF20932FE127908D3A5F4A54D /* Lock.swift */, - D5FF1DE565E7A0E50A3F648C38E95C78 /* LockOwnerType.swift */, - C63E884ADD906BC90F3C32DB52CC398D /* MainScheduler.swift */, - 7BB0F5D8F0F27F31636D82187890CC43 /* Map.swift */, - 75DFF226271D0F445274C3B660ADEE2A /* Merge.swift */, - 430720C6D9B5E4034976BD314857E51E /* Multicast.swift */, - EAB6E0C832D664BB3933B743E204615D /* Never.swift */, - 9350C02E503091FE07AEC409372D8DA0 /* NopDisposable.swift */, - 9EE36FCA3C6A386A888AD56E20DFF50C /* Observable.swift */, - 207CF7A03B53C4DF00C68FBBF1C6E8F7 /* Observable+Aggregate.swift */, - 230CC565B82B68200C82450AC93A5CE6 /* Observable+Binding.swift */, - F4752DE1461395A71AEFA91856BB6469 /* Observable+Concurrency.swift */, - C64F36BE9F05BDE74A3E670E69A4432E /* Observable+Creation.swift */, - 3F8959F53CCE7B042DCD8B664A46438B /* Observable+Debug.swift */, - 810CEE92287B0EBC821481019F3339CA /* Observable+Multiple.swift */, - 351ED3EC72E752AF671FC28B61B82EBB /* Observable+Single.swift */, - 843FB1118D1974CEF717BE490B13366C /* Observable+StandardSequenceOperators.swift */, - E0C535339357CC5D93CA927CECB123F0 /* Observable+Time.swift */, - 6FDB1E75DB13288544C739E40C5BE9EF /* ObservableConvertibleType.swift */, - 8EBEE1150AB7FFCE3B2375F0351703C4 /* ObservableType.swift */, - ED83F972951546FF54141DCDFFA0A699 /* ObservableType+Extensions.swift */, - 049B3D3D49998DB466FEB6A07B58CE38 /* ObserveOn.swift */, - 855CC0FE8F67377D0E604979734C70A7 /* ObserveOnSerialDispatchQueue.swift */, - D2A563269DDD44C5472F388FE17CF34B /* ObserverBase.swift */, - 6F76C18CDD50BC726A1A9F9713808F70 /* ObserverType.swift */, - 55881B24D12F75F02F1EF97DBE920CF9 /* OperationQueueScheduler.swift */, - 0F592655CCDF43D1184F7DCC5E7E4FD4 /* Optional.swift */, - A58E912F80E74F9E3D04FE3EAF217CBD /* Platform.Darwin.swift */, - 7B3C30C8BD2ECEF438E4A7E02A0C36B6 /* Platform.Linux.swift */, - 7A7C5FEA0C034019250F845D696DCCC6 /* PriorityQueue.swift */, - 5DBFE4A2BEA99797EECA6F80B01CDD6C /* Producer.swift */, - C5D5F5CEA32B2510E42A4A7976F27CCE /* PublishSubject.swift */, - BD85B8D01C25C718B7106EE598B59F05 /* Queue.swift */, - 33BF1B946B229E3493A637930A931DA2 /* Range.swift */, - BAE504DB6511ED954C7F3F53D78EFE96 /* Reactive.swift */, - 9CAAF792369765F875B4FABB87ECE3EE /* RecursiveScheduler.swift */, - 78697A689E989F8760B7F115D0F15A40 /* Reduce.swift */, - FFA24FA42F80B63EFCE3B8D7EAEEB17E /* RefCount.swift */, - E19D18DB5C1EA9E63E6DBF428B35C892 /* RefCountDisposable.swift */, - F49B97A2DDE155335D9A857CBCC1443E /* Repeat.swift */, - E0356020230831FEF31796FF613BF8AC /* ReplaySubject.swift */, - 0621C0B43DFC90DF41B61359E759D5D3 /* RetryWhen.swift */, - E0D8E8F499BC8AD11FA423052AD2B91A /* Rx.swift */, - F41DBC7F2E4B382CC91B8B28EF579853 /* RxMutableBox.swift */, - F6CAD2064683A8B0C403939B2A81D812 /* Sample.swift */, - D5F42FF8098EE07E0972506FA879BAED /* Scan.swift */, - 714CAF0BEC8075917C6E5B21A40F51DC /* ScheduledDisposable.swift */, - 9D539E4E6C4E295220FA4FAE74031789 /* ScheduledItem.swift */, - D3B86E229BBF998819417BA1EF0B5A5D /* ScheduledItemType.swift */, - E01D49455ED5C62F58BBAE0983AEB788 /* SchedulerServices+Emulation.swift */, - 23863CFA627473DC27B67457C49C2E18 /* SchedulerType.swift */, - D5ABF695E08E23D093300EE17154AD46 /* Sequence.swift */, - 8038341863E5188ED05DCC1BA2CF7CCD /* SerialDispatchQueueScheduler.swift */, - BF02268A49529C89CA28BBD728A4864A /* SerialDisposable.swift */, - D5049BF3275B506081D6290C03107F75 /* ShareReplay1.swift */, - D8E064CAF79139120E3D4F21DB6061FE /* ShareReplay1WhileConnected.swift */, - 9BEF9DEF3F2FE69B0036DA832678E66F /* SingleAssignmentDisposable.swift */, - 817BBAF28AF5DD16F4C657AB7AD305BF /* SingleAsync.swift */, - 3F13DE488DCBBAE4BDBC0CFC97574078 /* Sink.swift */, - 99BD77B66B1E1355C1E30439B72937EB /* Skip.swift */, - C77550063B64F014D70901594CE2B8AD /* SkipUntil.swift */, - DB6650CEB7DB19C31BA4430E3E4A0B54 /* SkipWhile.swift */, - D318C435E4EBC421BC050713E69DE0D2 /* StartWith.swift */, - 32F52D2218ED1A55107BC548E297E9CB /* String+Rx.swift */, - C30F42D2E6C0B7C15B64F1081749B8FF /* SubjectType.swift */, - D12E7DBD1E1B501117F95768ED20BBEC /* SubscribeOn.swift */, - A27E7196730EA8A4F03EECF2B8D2643A /* SubscriptionDisposable.swift */, - 2E65A0563A25A9BC5540C5C6752AFB8F /* Switch.swift */, - 43C28568E6E85CA37FC088179660CE6A /* SynchronizedDisposeType.swift */, - 6824046BB6F6BA5DA145A55756FCE843 /* SynchronizedOnType.swift */, - 52FF9201C9E5F013F957000A1108C6E9 /* SynchronizedSubscribeType.swift */, - 8D0F0E4B2FD793BE40FBBE96FD380D21 /* SynchronizedUnsubscribeType.swift */, - E8BCA33BF99DD786DF82E4D02D5E7F3D /* TailRecursiveSink.swift */, - C28A12A58B667D3534761E41E833AD91 /* Take.swift */, - 4F715D3AF178663A8CE6B81C0A481755 /* TakeLast.swift */, - 1CB76F5333C4E30B9798A7CB70CCB81F /* TakeUntil.swift */, - 6510627A459986B2675C9DF04BB19716 /* TakeWhile.swift */, - A1CDAA1E9C8D90D41A2E7EDD9164500F /* Throttle.swift */, - 79D3FF68C5D11A301F7C27AC3B626AB1 /* Timeout.swift */, - 7953F0BF7911F293599BC38510760E46 /* Timer.swift */, - C62E07D7645966D27B953E4580313A3D /* ToArray.swift */, - 13DC76F872C5CE141D7A381C3ED86F83 /* Using.swift */, - E58577DB359E44ED81D9764E891B1E47 /* Variable.swift */, - 09404441C1943A1C1C15699C71F33D2D /* VirtualTimeConverterType.swift */, - 07FDE0C81FDCEF30B795BD32553111FA /* VirtualTimeScheduler.swift */, - EF5E4BD0EF6C6C73284552531F108886 /* Window.swift */, - A51CD43BBF9E07B471180B3C6A10EC0C /* WithLatestFrom.swift */, - 732EEA83B671AC91F7FF52CDA4C2835E /* Zip.swift */, - 12DA49F9E5238CF2A4EBB5A83A1AE3DA /* Zip+arity.swift */, - F297CA1E051508BD3B6024498BC6FC3C /* Zip+Collection.swift */, - 98D6D29A6358FC51F6699762365905E4 /* Support Files */, - ); - name = RxSwift; - path = RxSwift; - sourceTree = ""; - }; - 596E070C58CFB10BC812CAD8C72703E5 /* Resources */ = { - isa = PBXGroup; - children = ( - EBF2BBFDA4F26C440DB709FAC5D3F25C /* cs.lproj */, - 96A80BADDCAF42068E3B168DD679B06E /* de.lproj */, - 92D90F1E9B3DB74E13DAEE89D729C388 /* en.lproj */, - 5CC992AE60F80ABE4AF96D7FB5D21FE1 /* es.lproj */, - 681AD0AD3FE6075FD0C745A2368127DB /* fr.lproj */, - 454D73DC3052FCEF303D57FAB12CC353 /* it.lproj */, - F1B18A75522A9348284094E1A906CFDB /* ja.lproj */, - 625F1E39F5E196BA50F36BE994C84724 /* ko.lproj */, - 36D63AB3B2F8729D38D2243E79FA9D37 /* nl.lproj */, - 4FA5AD2B9A1E8DE99434B14B3549E0B9 /* pl.lproj */, - 1E8F8E501B0EEF1A98B9B7557686F4DC /* ru.lproj */, - D55A3EC1AA96E83A76F91664C4C2F29D /* zh-Hans.lproj */, - 49E673D8031F864FAD63560EA564B5DD /* zh-Hant.lproj */, - ); - name = Resources; - sourceTree = ""; - }; 785842678515C4CDC9428DD20DCD752D /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -1042,157 +1018,17 @@ name = "Targets Support Files"; sourceTree = ""; }; - 7A633D619ABA3EAE06DBE3C3518CD402 /* Alamofire */ = { - isa = PBXGroup; - children = ( - 6F30225997CEEA64CC0BDB9D5483A203 /* AFError.swift */, - 1EA1AA7BA748C2B699B5B73C3E690211 /* Alamofire.swift */, - ABDA9F0531A7A7502BDE85649B058DFB /* DispatchQueue+Alamofire.swift */, - 637833F0E5DBD5017099EF0583351872 /* MultipartFormData.swift */, - 156BD4BE88EBFE3B4B75AB2159FFEA69 /* NetworkReachabilityManager.swift */, - 8EBE7C5174BB4B63F44349A15EE826AF /* Notifications.swift */, - 9AB8F8AA0CF2C7D1D506FB9347CAD420 /* ParameterEncoding.swift */, - BA9688D287B1F197714D74B40DBE8680 /* Request.swift */, - 877E161F31772E123DCD4BC8EAA3EB75 /* Response.swift */, - 1B2EF9DEF408D295E5391455E123DD67 /* ResponseSerialization.swift */, - 4865DDF25A3AA8BBC5BE34A85F18D17C /* Result.swift */, - A9C0D3B37EBF8F2D69675B140D08F2C2 /* ServerTrustPolicy.swift */, - D741EA049F662EB20482A9A330B6FAE0 /* SessionDelegate.swift */, - F62634DC9F384C9CC41CEDA292858659 /* SessionManager.swift */, - 2FD1D9CC9BD0DB820CE56BBDE2B6E01F /* TaskDelegate.swift */, - 315C104108C26A838CCC718E8258B44A /* Timeline.swift */, - D0F0A9B8CFF8FE0E517E372F3A135E25 /* Validation.swift */, - 8BA2AD8787883059BF2ABA887EAA32C4 /* Support Files */, - ); - name = Alamofire; - path = Alamofire; - sourceTree = ""; - }; 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, D9727D7444B8CA54728F850F99A13C9F /* Frameworks */, - C7E2B68BC8DB477F03CE845072F368E9 /* Pods */, + 359D3CBF032E922C6E0EBD419E5611A5 /* Pods */, AEB9320F726BCC1999DC9E6198BA9F1C /* Products */, 785842678515C4CDC9428DD20DCD752D /* Targets Support Files */, ); sourceTree = ""; }; - 845CD43128EA477D183663496430A9E3 /* Core */ = { - isa = PBXGroup; - children = ( - C7BA15653BA24C8CB2D6A810BD172EB4 /* GCDWebServer.h */, - C743F524B10FDE01231455A0541D06DC /* GCDWebServer.m */, - 041B57D22A62A24545E85A4646383BA5 /* GCDWebServerConnection.h */, - 7ED1793F25CA7EA6496FF4ACB5360784 /* GCDWebServerConnection.m */, - 8AA937C432E0F9441C102162B7D3DE77 /* GCDWebServerDataRequest.h */, - 5804C71C9D97BB10B0FFE80E795CD85E /* GCDWebServerDataRequest.m */, - 8D64CB474F7D1B9FDD19465A43A61164 /* GCDWebServerDataResponse.h */, - CD9A1A157A1A6F85D6AAE2A82E930E2C /* GCDWebServerDataResponse.m */, - 64B15D82041B7A6840823B8A9F3751FD /* GCDWebServerErrorResponse.h */, - 296DBD7B4C2829639C9DF408009E61C1 /* GCDWebServerErrorResponse.m */, - 89157B205B92DB7240F198AAAE3E1D23 /* GCDWebServerFileRequest.h */, - 0A9743EE40CDB23A5B902DCA0EACD4F8 /* GCDWebServerFileRequest.m */, - CB4B9ED2B1EB569789C066F34F7123A4 /* GCDWebServerFileResponse.h */, - 7568784246140565AB9D65499F73D5CF /* GCDWebServerFileResponse.m */, - 3BADCC46C21E3D39AF50D9AEC5800CFC /* GCDWebServerFunctions.h */, - 261510805F67C14BBF23BD04C18168E9 /* GCDWebServerFunctions.m */, - 07C3DED13280C0FE73368A82866875B7 /* GCDWebServerHTTPStatusCodes.h */, - DB9CD6FE2DD142EFA2C41E21AB227946 /* GCDWebServerMultiPartFormRequest.h */, - 0AA9F9CD0EB270DDA2ED76FD3446F305 /* GCDWebServerMultiPartFormRequest.m */, - 54065E050A33BF7D4D54D1A31297F2F1 /* GCDWebServerPrivate.h */, - 89B67DFE619069B6AD5E1D0FAA0BB8E2 /* GCDWebServerRequest.h */, - 46722F0D8851A939625EFF1E910938E4 /* GCDWebServerRequest.m */, - AF5498021A404BB1ACCA140C4B62871C /* GCDWebServerResponse.h */, - A1E6CC9C6785132EA7807744DE0ED408 /* GCDWebServerResponse.m */, - 53D1C7024A81399E15CEE5B8F618A68E /* GCDWebServerStreamedResponse.h */, - C4532CD920B79E94F7B61A2B9A63FCAD /* GCDWebServerStreamedResponse.m */, - 79AFDA86F88F40BFA89B3B2A729B2F24 /* GCDWebServerURLEncodedFormRequest.h */, - 619730E0F7D114E0BBB3773020DBC95D /* GCDWebServerURLEncodedFormRequest.m */, - ); - name = Core; - sourceTree = ""; - }; - 8BA2AD8787883059BF2ABA887EAA32C4 /* Support Files */ = { - isa = PBXGroup; - children = ( - 70F68C0A07F092F38A775533EA9D0AAD /* Alamofire.modulemap */, - E7AC2CB247486E6770E163434DEC2B56 /* Alamofire.xcconfig */, - 5E6312D7CA68889DE662535E01249EE7 /* Alamofire-dummy.m */, - 8EE24E5283B182B30014870DA91C3874 /* Alamofire-prefix.pch */, - 48352BD4C4E074FC479B0513B92EA7F9 /* Alamofire-umbrella.h */, - 526ACD42F8C85B5E06999E3EC17B3AE9 /* Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/Alamofire"; - sourceTree = ""; - }; - 933FA5BA35FA903ACC3F21095CFB4950 /* RxCocoa */ = { - isa = PBXGroup; - children = ( - DEB9C9F773C5584C1A64134DF28D78E2 /* _RX.h */, - 70BBD10E3B649EA0755AD083EA7CDFB9 /* _RX.m */, - 5378A3AA30126867581EB3932CC75611 /* _RXDelegateProxy.h */, - E8E6D1E113A8A1E690491F2E3F8A2201 /* _RXDelegateProxy.m */, - 30EACF50723CFE5FA01F06A95D09A211 /* _RXKVOObserver.h */, - DDF9D2AC2FD4CD42F8B089BAFDE4C6BD /* _RXKVOObserver.m */, - 145175C8AA8A892EBA0AEC97F7612D90 /* _RXObjCRuntime.h */, - 5AF29FABA8C360B08D7C7424360D6666 /* _RXObjCRuntime.m */, - F2EC79DAE53D1D70A47EBAFD39ED862E /* Bag.swift */, - EF1D18BE7EFD12AA66C3376332FEF003 /* ControlEvent.swift */, - 3E94EA62172D30A25E824EE75E3D9C0B /* ControlEvent+Driver.swift */, - 1DB870B11C1F6D4D44DFD74BC9A31C93 /* ControlProperty.swift */, - 3CF036C948FB845526B616E2A9485814 /* ControlProperty+Driver.swift */, - DDF7D11C29F998B81F2EC67417F7E5E4 /* ControlTarget.swift */, - BD3624B117D9AC549B1CAED71ACDA6FD /* DelegateProxy.swift */, - 0AD4268847B9453CE579C41B609E22B7 /* DelegateProxyType.swift */, - 3747A52D98BA28FA152080DA132B4955 /* DispatchQueue+Extensions.swift */, - 765B2B823783215A2E954FAB4853AC93 /* Driver.swift */, - 0E84CF71B17BFE084E0D16395EDB8885 /* Driver+Subscription.swift */, - 5093D2110C7158AE638018A9970FA168 /* InfiniteSequence.swift */, - 895C03FCA3BCF07DBDA8A858302D9662 /* KVORepresentable.swift */, - 44AB1ECD0CB22EBDA55B3C604C16B84E /* KVORepresentable+CoreGraphics.swift */, - 3E39C3D16733CDCB7BAD80752EC7D239 /* KVORepresentable+Swift.swift */, - 47E82A0897F8223FF68BA4F995D79C8D /* Logging.swift */, - 61722C6F303EAAE1C5638EE5B33DD66A /* NSButton+Rx.swift */, - 7CF90C9854898D2869D0FA04F6FEFD51 /* NSControl+Rx.swift */, - ABBC6E0B59D4E0A8264EF5775E962781 /* NSImageView+Rx.swift */, - 3A283ECB7F07204392F8B86F905B1B7A /* NSLayoutConstraint+Rx.swift */, - C2E92EE455CBA70E47FF6E1B2A8A8F10 /* NSNotificationCenter+Rx.swift */, - 9BF8977C2D21F0E3E6B4809F5512A9B6 /* NSObject+Rx.swift */, - C0FF24549EBA19FE3868F5A0F0A65C24 /* NSObject+Rx+KVORepresentable.swift */, - D63CEEDC1A1E689C53BE5B8FB80BBB4F /* NSObject+Rx+RawRepresentable.swift */, - 406F80B90F80B783BD73B5494D32BF6E /* NSSlider+Rx.swift */, - 9654A33B220127C74EC683B98310281D /* NSTextField+Rx.swift */, - EEE98592A8E669C3B96D3E19120FC821 /* NSView+Rx.swift */, - 3E83A23DEF6EC644ABA3997BE70BFA85 /* Observable+Bind.swift */, - 0543E52D336EE3D670FA0326B542D1AD /* ObservableConvertibleType+Driver.swift */, - C6581F3ACC8B4396727CEB2528B37F04 /* ObservableConvertibleType+SharedSequence.swift */, - 6A6F87048375FCF10848872558242925 /* Platform.Darwin.swift */, - 0C8A6200FBBE9F05CEF009C65C0AE129 /* Platform.Linux.swift */, - FECDA2B834D431A94C10FFDA1E53F33E /* PriorityQueue.swift */, - EE0E8A058AF30A041E8DB6F051BBDE16 /* Queue.swift */, - 08BD28C9755413291F8752D325956F13 /* RxCocoa.h */, - EF832054667391DF7219EEC7E1426BFB /* RxCocoa.swift */, - 917C99A8833B2D56222425A6F84CA5DA /* RxCocoaObjCRuntimeError+Extensions.swift */, - E258DC88C29E64BF1A3523D2FFF806B5 /* RxCocoaRuntime.h */, - D99D4398615AB6F4E3F9A978A1FBBBD1 /* RxTarget.swift */, - 23AF045F391083D9003B490F27BEF7D5 /* SectionedViewDataSourceType.swift */, - E4B8CB36B3783E2A2310ADFB4CC33864 /* SharedSequence.swift */, - 7CD18D2965F9753B545A1B1BA54828CB /* SharedSequence+Operators.swift */, - 992670FA98E8ED847E3131B73896D8ED /* SharedSequence+Operators+arity.swift */, - C22A091C89D7A9C2B736EF1A49C54280 /* TextInput.swift */, - 88A487D891BF9234985AA4099272A55F /* UIBindingObserver.swift */, - 84CA690C1F208F1306162397DEABE31E /* URLSession+Rx.swift */, - 375E8496E1F8683C57FE684DE6D592C1 /* Variable+Driver.swift */, - 0B87C81B82992789E3611469980A1778 /* Variable+SharedSequence.swift */, - BD68FB905BE00C76233C5B7F077B07D3 /* Support Files */, - ); - name = RxCocoa; - path = RxCocoa; - sourceTree = ""; - }; 93AB896DD6AD247E69959A4B8C06F5AC /* Pods-ShadowsocksX-NG */ = { isa = PBXGroup; children = ( @@ -1211,39 +1047,302 @@ path = "Target Support Files/Pods-ShadowsocksX-NG"; sourceTree = ""; }; - 94F23F332E9AF6CFB1AE598A25825D20 /* GCDWebServer */ = { + 94196550CA330CD5DBD59FF18DA025DD /* Support Files */ = { isa = PBXGroup; children = ( - 845CD43128EA477D183663496430A9E3 /* Core */, - 34FFC41A803A1DE1AD2BA42E08949249 /* Support Files */, - ); - name = GCDWebServer; - path = GCDWebServer; - sourceTree = ""; - }; - 98D6D29A6358FC51F6699762365905E4 /* Support Files */ = { - isa = PBXGroup; - children = ( - C47B091EB868220FDDF555507F5A2254 /* Info.plist */, - DD4766C097C60C5A8CBF72F3E935D01D /* RxSwift.modulemap */, - 96452244B9CFEFBA70877833E181A983 /* RxSwift.xcconfig */, - 2AA25737DC8326205335C494D261A558 /* RxSwift-dummy.m */, - 602C7742B3313DB6FEDFF9DD997B84AF /* RxSwift-prefix.pch */, - 32333F64D65C89D5A002F9CB80C2CDE2 /* RxSwift-umbrella.h */, + 5280B2DC564CD3CA2D4349E9AB85ADEC /* Info.plist */, + C439FB2A46E79FAB7443860DB9209DED /* RxSwift.modulemap */, + 3261881064E033A3711EA27CE78524FC /* RxSwift.xcconfig */, + 67E751429B6B9BC0FABF01B8867EF866 /* RxSwift-dummy.m */, + BB135DF1279B5FD0AB5683BA019DD0CA /* RxSwift-prefix.pch */, + 1D4C11F8F1650F1661596A0F530E6BDF /* RxSwift-umbrella.h */, ); name = "Support Files"; path = "../Target Support Files/RxSwift"; sourceTree = ""; }; - A0E044ABBAEE4668550471527F21760A /* Support Files */ = { + 9712645556A969816EEB46A364368C74 /* Alamofire */ = { isa = PBXGroup; children = ( - 5C8B549DF38B641E23F436DE84A1AB1F /* BRLOptionParser.xcconfig */, - C507512A0FC2103B39A0C7761B19968E /* BRLOptionParser-dummy.m */, - 4010445B50195F4EB7E0DD32DD2162C8 /* BRLOptionParser-prefix.pch */, + E7CAE213EE8F8ECB17980C4BF269D35A /* AFError.swift */, + E7DE4B15A2C7B806D42D1BC1189CFC19 /* Alamofire.swift */, + 72D5CA8AF08CC028C391EB1A38C661B0 /* DispatchQueue+Alamofire.swift */, + BA733FB551621A6A266D57AAB2CEDC2C /* MultipartFormData.swift */, + EFC679B790AD9EE3F36E8291BBECFF33 /* NetworkReachabilityManager.swift */, + 2437216A55ECC76844C12B5DC39280A0 /* Notifications.swift */, + C32DA9D913B14198C262DA3670259B16 /* ParameterEncoding.swift */, + C0969FFD491CA3150D85C991F9D642BA /* Request.swift */, + 30FBBC7DFAD0F5694D59ACC330B005E0 /* Response.swift */, + 4C564EF425F990F06F9867FD48C5AAC9 /* ResponseSerialization.swift */, + 6A03D18B60F1C426EF558F967B149830 /* Result.swift */, + 49F857A6751201ED3D72F96DC13C729F /* ServerTrustPolicy.swift */, + 5C4A3D2ED8D2752319AA3649ECF09EA1 /* SessionDelegate.swift */, + 78D3C582CD284C68D7B5FCF58D73BF07 /* SessionManager.swift */, + 6D4A286AAC017AE5547B794DD2C8AF59 /* TaskDelegate.swift */, + 59B5C5DECEBDC9747029DD2086C6B00D /* Timeline.swift */, + 3C3DDD5AE0D4C7DFC098D473F24ADFC5 /* Validation.swift */, + 99FD92757D006D2B29F3C6A579522964 /* Support Files */, + ); + name = Alamofire; + path = Alamofire; + sourceTree = ""; + }; + 99FD92757D006D2B29F3C6A579522964 /* Support Files */ = { + isa = PBXGroup; + children = ( + F3BEA0E59DC8EE162D7707F0458BC410 /* Alamofire.modulemap */, + D6CBB4BD325445F86290A6A3E27E8B45 /* Alamofire.xcconfig */, + A030F5167FA6558FE91D25425A0B9CBA /* Alamofire-dummy.m */, + 79CD123F941026E950A51F29197238C8 /* Alamofire-prefix.pch */, + 88C081789EDC0560233A76D711CE9659 /* Alamofire-umbrella.h */, + 10AE621FA1B638AD24DC8416AAEA4850 /* Info.plist */, ); name = "Support Files"; - path = "../Target Support Files/BRLOptionParser"; + path = "../Target Support Files/Alamofire"; + sourceTree = ""; + }; + 9DF9AD84022C72252E16F01DF14949E2 /* RxSwift */ = { + isa = PBXGroup; + children = ( + 40784518B3B077970ACD76FF6ADC6E18 /* AddRef.swift */, + D06609DFEDC0A7E3A67145994809FAAB /* Amb.swift */, + 56E8831C108769CCDBD44A22DC79FC6C /* AnonymousDisposable.swift */, + 4F4BE5C3ABEB89172F29F09B174D6883 /* AnonymousInvocable.swift */, + 1C5B91DC04B3865DDDDC72512A5C3F54 /* AnonymousObservable.swift */, + 198E9BC39A4EAE7AF6607A3DE9DBD031 /* AnonymousObserver.swift */, + A57E4C19B3887697A8F7105471594B11 /* AnyObserver.swift */, + 34AEA52D361570E78F8B9792A835A1A1 /* AsMaybe.swift */, + 351C16C6C5C0715F1C876D91D0EDEA09 /* AsSingle.swift */, + 7CBC95D81A39FE47DF7664F12F9FF6E1 /* AsyncLock.swift */, + ACEE1641B4A1142BE9D66F1E19A1A083 /* AsyncSubject.swift */, + F88F573DA82E488BDAE8BC55E93B96B1 /* Bag.swift */, + 59D23F0528F3A7600784924A107552D0 /* Bag+Rx.swift */, + 6D71F1C033CF6233A31594BA370062CA /* BehaviorSubject.swift */, + 0DBFAF6F1BA01CE6183C3B565DB8322C /* BinaryDisposable.swift */, + DEA3B8F9A25C60DBAD70F2E3BA7DEC79 /* BooleanDisposable.swift */, + 525C68580D6831E607AD3D862DC133DD /* Buffer.swift */, + AB8D181B14C53055CA4F2D61166A6C7D /* Cancelable.swift */, + EC77664C6DB0A9CA9F4AC1E93463971A /* Catch.swift */, + A04BDAC57478865FE5DD3EC203E58F10 /* CombineLatest.swift */, + C1714F14E43A69F77960977683265141 /* CombineLatest+arity.swift */, + 58FCD780817CA60F10D6C39A083DDCDC /* CombineLatest+Collection.swift */, + DAAD2858D71A42847A49EE0FC347E9FB /* CompositeDisposable.swift */, + A7104A53E83466AD81DBF532DBA762E1 /* Concat.swift */, + 002B67F5C7E4ECAD0D0339BF321BF117 /* ConcurrentDispatchQueueScheduler.swift */, + 0B2BA85AB97126B7F170B024F033AF4F /* ConcurrentMainScheduler.swift */, + F6A1E5B8450A97482BAF559588B3DD71 /* ConnectableObservable.swift */, + D34A2C6821DD92D46F0901C579DAEF53 /* ConnectableObservableType.swift */, + B4FB77C479CBE2951C13C488C5CBE57E /* CurrentThreadScheduler.swift */, + 49D0AEBF622CB33505BCC1202E398B34 /* Debounce.swift */, + CC674E9D1A6B6D72CE70D5CC2FD43735 /* Debug.swift */, + 06571839F983E684AE0631A949E65709 /* DefaultIfEmpty.swift */, + 6B7E831C7BD9ACCDA16302B15F5A8035 /* Deferred.swift */, + 87C033CF62C6A03D67EA9056684E74B2 /* Delay.swift */, + 135780AE39D9C9BBD7443F7F21288DFB /* DelaySubscription.swift */, + DC7FD09C09D1BDD8476A89AA647DAF8C /* Deprecated.swift */, + 30D8B840460D79AB3B8AB39A4164F4B7 /* DispatchQueue+Extensions.swift */, + AF6621583BA40AE9A61D2F58B49462B2 /* DispatchQueueConfiguration.swift */, + 94E567C35466451FC7539A0BD8DA6046 /* Disposable.swift */, + B29423A3BD529F4181880C1CC35631C5 /* Disposables.swift */, + D83C9C9C216CD46EAD7B39EB3A0A703C /* DisposeBag.swift */, + 77A56791C067FBC9E3AC1405C667F1BA /* DisposeBase.swift */, + BBCDC9591CE194B7B56FC4194F75DB4E /* DistinctUntilChanged.swift */, + 806CAD0BC89F898F94D939211ABC3384 /* Do.swift */, + C524B1525327F67736740D5488CEAFD6 /* ElementAt.swift */, + EB76A421976FAB6ECBC3D127F6A77FC9 /* Empty.swift */, + 941AD6E4532B1B070D2592FE3A2AE752 /* Error.swift */, + 8E9FC22AFD2BA36D7C298505DD97DB07 /* Errors.swift */, + BED1E9CAFD7494BC65249B31B68985C6 /* Event.swift */, + BCCCC4E79BB0BC425916AD8DE96CA785 /* Filter.swift */, + 423730810CF7CCE34FE8316CFF58F0B8 /* Generate.swift */, + 804280091995DFB0D7791D5300473723 /* GroupBy.swift */, + D2654F715A28779785D3AD91F2ED2388 /* GroupedObservable.swift */, + 1369962E25E1F6E43620FE725E9CE874 /* HistoricalScheduler.swift */, + CDFACEE80381FE2B4BC6E4FE88D93A85 /* HistoricalSchedulerTimeConverter.swift */, + DFAE13F86521FDD3838D3DA229D4AC25 /* ImmediateScheduler.swift */, + 60B4EBBBD5D3F3346F7E7334498186B2 /* ImmediateSchedulerType.swift */, + 0A7A485A268FA20FBE6CEAB65881AF6F /* InfiniteSequence.swift */, + 0F158686BD10F093816366CBB70A6E30 /* InvocableScheduledItem.swift */, + 8D21B3357EAEBF44D19D3A611848628E /* InvocableType.swift */, + D85F519585040CC0D398A38AA0930EC4 /* Just.swift */, + EFDF2D18587604D407F5C9C506D4018D /* Lock.swift */, + 48B2C17385071197F259AB746341B272 /* LockOwnerType.swift */, + B4A0B1A36A704F964703C9BC39827964 /* MainScheduler.swift */, + 7D0D3E3125AF3C4C71554245E74E3A8C /* Map.swift */, + 3B3D790CC9A67D70E3E0EDD445F085E1 /* Merge.swift */, + 5374966D42537C6369072660B48CF199 /* Multicast.swift */, + 8EF3B7799254D602BB02B42C4E30CFFF /* Never.swift */, + 4F4D6DC50E558CC6AE51E3AF56E5018B /* NopDisposable.swift */, + 6200462FD0350D942C06454BF3959B8D /* Observable.swift */, + 7A5020E5D284EBAF7DED99AB83881F38 /* Observable+Aggregate.swift */, + 34B22FFDD2CE991366EAEE41BA0B706A /* Observable+Binding.swift */, + AE7494AFBC1F396F79B1E5BE66FDDFCD /* Observable+Concurrency.swift */, + 6E634B678C5C5CF993CA1475A75B7DEE /* Observable+Creation.swift */, + 64A21A2EB387821C687BFB0B5FC0D242 /* Observable+Debug.swift */, + 5C56E70499D215B611C87DF7E81D7DF9 /* Observable+Multiple.swift */, + ED29315833FAA1E5A338CFA8005377A9 /* Observable+Single.swift */, + DA80549D390412FB66E8ADB1475C39D2 /* Observable+StandardSequenceOperators.swift */, + 69B06482690AB04BAC88256758995B90 /* Observable+Time.swift */, + F72515DA7F790ADA9DF78910C67193DB /* ObservableConvertibleType.swift */, + 6C980D73B55B8361629ADA1668748A31 /* ObservableType.swift */, + 69DF594FDFE7BC49AA1019B10D7065E7 /* ObservableType+Extensions.swift */, + A24870AF7F42FAA0AD9ABB0325F1E135 /* ObserveOn.swift */, + 8FE77EB2349A660DFADBF5CE01DEF91C /* ObserveOnSerialDispatchQueue.swift */, + 9F0C370A9E746A9710DCDBF48091819B /* ObserverBase.swift */, + D3A7C466E29109C01509C4619554BB05 /* ObserverType.swift */, + 435BB7E73157084CAF2FE80FBE224AF2 /* OperationQueueScheduler.swift */, + 0394897FCAD2777CF1A4384FE731D25C /* Optional.swift */, + 87580AD4D9D45E84D60D81B7D6E97C0A /* Platform.Darwin.swift */, + 912D7029A05911D1FB4ABFF9E2B851C7 /* Platform.Linux.swift */, + CB9BC8FFFB6D237A0A82BB90707A89FA /* PrimitiveSequence.swift */, + CD39D59D26656AE80FD3F9C683849740 /* PrimitiveSequence+Zip+arity.swift */, + 9C1694FBE9CBF06E4F1C9F38B5DFA930 /* PriorityQueue.swift */, + 11C39B1421798570CF7E02C57F90EC4B /* Producer.swift */, + 65268C40FD5106D32C7C227F38209B3F /* PublishSubject.swift */, + 214BCB3965A64FB0986840C0E083418A /* Queue.swift */, + 3F28BB197905FA93BEC98E5D1F6B9F75 /* Range.swift */, + 7D6462467149007CC9112C18E0FA2BE0 /* Reactive.swift */, + D4CD8E837A63DA5890EF98BA6E98D9D5 /* RecursiveLock.swift */, + D402F8A4734F5C848DA2287CD48E6202 /* RecursiveScheduler.swift */, + E149E56489936102F081551F32C5F5EB /* Reduce.swift */, + 8402EA2D03C261FDFF31CEC2F3E17390 /* RefCount.swift */, + 62A7E7809BC29FA83778B027FE2021B6 /* RefCountDisposable.swift */, + 5A11BED0A468B53EAE2F900A790FB03A /* Repeat.swift */, + 3AC8F7EF565790CE58751914BAB4C1B3 /* ReplaySubject.swift */, + 2A595C2E180CE19ADB5A7218E78FD8BC /* RetryWhen.swift */, + 85BE206744586C11C8C71BF92918AB7B /* Rx.swift */, + 912AE5C728F325B6D86D33E827E266C8 /* RxMutableBox.swift */, + 63973CDD0819B187A85E746CC55ED88F /* Sample.swift */, + B2E3D4D905C0E79E9AB56BF024A35180 /* Scan.swift */, + FCBF6FFFBBE49493E089992E786E1A20 /* ScheduledDisposable.swift */, + B4AAA88BD8CDEC58F63BB1EABFBFE6EC /* ScheduledItem.swift */, + 67DA5A6F6EDD732F5332FE2EAC8DB9EE /* ScheduledItemType.swift */, + CDC25BCC601EFEC02F400739EAD16FDE /* SchedulerServices+Emulation.swift */, + 0947568290847B529166B4C9F28347BB /* SchedulerType.swift */, + 88C9C68749757A2F4BCA7FFF1CA0F9BA /* Sequence.swift */, + F786CE1FD64B7570C24F231E23D7566A /* SerialDispatchQueueScheduler.swift */, + 478441DBD43555BE4C13427FB4B1F102 /* SerialDisposable.swift */, + 9F4AD3BB60C4064C0FBE13775748D456 /* ShareReplay1.swift */, + 71150F3D7194C1783C37A070F1AD879E /* ShareReplay1WhileConnected.swift */, + 385EF54CE93CF6561FBD6FCD4BC908CF /* SingleAssignmentDisposable.swift */, + 271DC7562BA32ADD28B4A53CA4C92137 /* SingleAsync.swift */, + B2FB3E4A7941F31C1970E3CC7568BC25 /* Sink.swift */, + 48FAC49BD2A6F874166D24BB5C9BA1AE /* Skip.swift */, + B90BBC0A33E35F445599411A4755CA2E /* SkipUntil.swift */, + 7A46EF6D6AE7B13EF91E0A19B18EABEE /* SkipWhile.swift */, + 612574DE7BC9EB82F4DCE7D2E38318B9 /* StartWith.swift */, + 0708DD73E84866CEA805B9C7AB60ADE4 /* String+Rx.swift */, + DAF4B22EF3D343BEF33D2881F14213DF /* SubjectType.swift */, + 9DA9F52CD97C9FFDD1A42400020B5C86 /* SubscribeOn.swift */, + 187F6C028E99961913EF8CD45D358107 /* SubscriptionDisposable.swift */, + F9ABBB68077D7AD074DFC9923895B5D6 /* Switch.swift */, + C1A4207D9981121566B1401ED299ECB8 /* SwitchIfEmpty.swift */, + 30E2E47F7B982BA49DF174E3FDFB288B /* SynchronizedDisposeType.swift */, + 64EE1C0399B2FC8E5B84F059BC3B89F9 /* SynchronizedOnType.swift */, + 6DEED24A26C9B7E2A8FFD080F9C8C2AF /* SynchronizedSubscribeType.swift */, + 528841720C50D9A4B73EE2A4C6A8E132 /* SynchronizedUnsubscribeType.swift */, + 4A1F43CF3068C2DCAA16CAF4E7EDCE4E /* TailRecursiveSink.swift */, + 5208F42E4D16971BBD8698E9C751B6ED /* Take.swift */, + 4209C3E1C531131A7CA7A2DA0BB1F334 /* TakeLast.swift */, + BE2FFA6014D5EA973E00B658481C4016 /* TakeUntil.swift */, + 33045890E1D4469FBFD24F367E827FAC /* TakeWhile.swift */, + 430E0E395046F19946D55C7F791DDCC4 /* Throttle.swift */, + B42525F3404A9781D07CAE62FD5E4918 /* Timeout.swift */, + 81A1AAE28282C31243C72011FF5A4830 /* Timer.swift */, + 7DB18E3EF0102CDC82F31CA6B466A8B3 /* ToArray.swift */, + BDCCB04DF57C106193307E90684240A9 /* Using.swift */, + D1F45AC654673C96B25C288CE2ED7757 /* Variable.swift */, + 9591C37093C86F6625E89B7ECD358BDE /* VirtualTimeConverterType.swift */, + D14826507A4DA27653782BD16CF7B1A4 /* VirtualTimeScheduler.swift */, + F1AE55DF48B45CC65465B461F51CA3EA /* Window.swift */, + A7B90D6B38782365F4D874C83ED140A8 /* WithLatestFrom.swift */, + 0C4E480F924E52E479BFE519D781A826 /* Zip.swift */, + 23D34D0E9C66E6F9595722372B9AED8D /* Zip+arity.swift */, + DB6A96F3AD4E1A22FFED4E6F0A4D1ECD /* Zip+Collection.swift */, + 94196550CA330CD5DBD59FF18DA025DD /* Support Files */, + ); + name = RxSwift; + path = RxSwift; + sourceTree = ""; + }; + A092F58EC487A6343E48EEDD79712C6A /* Core */ = { + isa = PBXGroup; + children = ( + 04BA1E955FC23E417978F5DE57553C65 /* GCDWebServer.h */, + AB35CD1ECD0CD3643AE3F5B53C269AF5 /* GCDWebServer.m */, + FAFB76E73828C3673CEC60577DD3D7F0 /* GCDWebServerConnection.h */, + 4387584024C546AD5AD6B7EDD37485BF /* GCDWebServerConnection.m */, + 47B14EF7B2C9724416D7F4F875D1CB32 /* GCDWebServerDataRequest.h */, + 8F9C2E8F767184184382C0659D0B57C6 /* GCDWebServerDataRequest.m */, + FD0EA79B1967F9A248BD807632BC9C79 /* GCDWebServerDataResponse.h */, + 1E0CFCE9AB3B6AFD0691E63F63F62B18 /* GCDWebServerDataResponse.m */, + 7CD1750A494B17CF183B50C961117C6D /* GCDWebServerErrorResponse.h */, + E85ED0518085EBD804CA390B52EDDFE5 /* GCDWebServerErrorResponse.m */, + 4F9B04B4F8691154899A7BB06F149941 /* GCDWebServerFileRequest.h */, + 7E1780CA78CC5EE56892186D6699471D /* GCDWebServerFileRequest.m */, + 015CDD34C2C3E889192595296079F633 /* GCDWebServerFileResponse.h */, + 04FCB8C241708CC45FF52AFA691DA336 /* GCDWebServerFileResponse.m */, + BFD17FB0B8D729EB83B1AA769D30726F /* GCDWebServerFunctions.h */, + 51C85F34568C70DB96CF9B23E0D503AB /* GCDWebServerFunctions.m */, + 2D2D8747A63B260F80C40C9DCDAC357E /* GCDWebServerHTTPStatusCodes.h */, + DF0D4DE6D3365036C0FA32D93DE77D46 /* GCDWebServerMultiPartFormRequest.h */, + 1BD87FA3022EFB5D55062335BBAA6CDC /* GCDWebServerMultiPartFormRequest.m */, + 941AC673759A8487CD0E31D9222FE395 /* GCDWebServerPrivate.h */, + 1529BF693979ADC95825A232E3F7F71B /* GCDWebServerRequest.h */, + 5E149596B24A0F722AAD04DD0E7648FC /* GCDWebServerRequest.m */, + C74A3DC1AECDEFEFB44AB3F60FFDDC33 /* GCDWebServerResponse.h */, + C5A524C4B1015097B4130310EBF6D6B0 /* GCDWebServerResponse.m */, + 49AA0901E701115CB7028794961FEE8E /* GCDWebServerStreamedResponse.h */, + A07A8BDB7BFA69AA9291E71416EC58CF /* GCDWebServerStreamedResponse.m */, + DB83C3266870BCD77C80A5BF5F71BFE0 /* GCDWebServerURLEncodedFormRequest.h */, + 360EB85AC720C078D420EADAF6C654ED /* GCDWebServerURLEncodedFormRequest.m */, + ); + name = Core; + sourceTree = ""; + }; + A6D905C92591DD3CC9A5586DC4788A47 /* Support Files */ = { + isa = PBXGroup; + children = ( + 6746B37DEF5322A16C300B61DED7F1AD /* Info.plist */, + 981AE7988280E3E58827A4BC2FEC206B /* RxCocoa.modulemap */, + C5B2560C6A7D9250831A76E33D926588 /* RxCocoa.xcconfig */, + A299EE214CF95998A680C2E5EBEEC779 /* RxCocoa-dummy.m */, + 2F5238F43AAC23E1434E88471A76DAA8 /* RxCocoa-prefix.pch */, + 622BE644A5BCF7100BB04E2E0578F8C2 /* RxCocoa-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/RxCocoa"; + sourceTree = ""; + }; + AD089A2216580815F93912EDB4FEDE85 /* MASShortcut */ = { + isa = PBXGroup; + children = ( + CDD891211BCACC371F9D43363C3FD01F /* MASDictionaryTransformer.h */, + 66999DB6AE23289A4ECDBEBCC7A09C5F /* MASDictionaryTransformer.m */, + DE1C155D92F36B81A10B04D3AECC44DE /* MASHotKey.h */, + 550F2C93957EF2301541066CF63D46BC /* MASHotKey.m */, + D38D66B8CF136FA1B9D3A067600536AE /* MASKeyCodes.h */, + 259F77E2EC48E07223226DD78300AABD /* MASKeyMasks.h */, + 8D679D13A827958B8B727FA6E970D093 /* MASLocalization.h */, + 874D347DB51D5D3E716E95F6E97CFF9A /* MASLocalization.m */, + BFBCCDD4FB2BFEE4F62E4783156E5C68 /* MASShortcut.h */, + C2F0513828D310E221B920200A0AF8B9 /* MASShortcut.m */, + 90BD54F6E711E6C0C832CFD421265D40 /* MASShortcutBinder.h */, + 8C0EC59C08B29B12978B1C4DBDD6491F /* MASShortcutBinder.m */, + E4B98A26D58EDEECA20933684CC1C45F /* MASShortcutMonitor.h */, + 77B1E0282CBC343B82CC78C567B8B534 /* MASShortcutMonitor.m */, + C6CF6A88B14EECBA592B26FDE26199CA /* MASShortcutValidator.h */, + D12B3B0AB6BBE5692CC30020ED890E6C /* MASShortcutValidator.m */, + 16E2BA0967647D17B5A037805E7CF195 /* MASShortcutView.h */, + 64D637E8C0ED768E21CFCAE9641662B6 /* MASShortcutView.m */, + 1918A3E00F323095B9B4FE41517A6FDA /* MASShortcutView+Bindings.h */, + F9A79C0537300E8EC3B4938AE3FCCE88 /* MASShortcutView+Bindings.m */, + 8EC98D40BE7139C7559F4E49AD0B9202 /* Shortcut.h */, + 4047D8E4A66663BBA78A370A91AE7F79 /* Resources */, + 2D7BA557F4C0940A77FFB9270557294B /* Support Files */, + ); + name = MASShortcut; + path = MASShortcut; sourceTree = ""; }; AEB9320F726BCC1999DC9E6198BA9F1C /* Products */ = { @@ -1278,90 +1377,17 @@ path = "Target Support Files/Pods-proxy_conf_helper"; sourceTree = ""; }; - BD68FB905BE00C76233C5B7F077B07D3 /* Support Files */ = { + BD838F4740449375D7768E6248698B27 /* BRLOptionParser */ = { isa = PBXGroup; children = ( - 456ACDE36340325DBB10D0B916626C43 /* Info.plist */, - 1B9E3352BCF62F8787D5BBC941EEA516 /* RxCocoa.modulemap */, - D95E797893870454BDD396AD03752C2A /* RxCocoa.xcconfig */, - ADA9A70ECA885B87CA7B20916DC7BC6F /* RxCocoa-dummy.m */, - 44F0FB436EC76D655A87DDCE3F993478 /* RxCocoa-prefix.pch */, - F4B4BFA85D88E0779216DDD104D2F899 /* RxCocoa-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/RxCocoa"; - sourceTree = ""; - }; - BE3D3838C8B84A3CEF2E935A8409A3E6 /* Support Files */ = { - isa = PBXGroup; - children = ( - 1E6D6DE4E89E068F148B72C3C94E25CF /* Info.plist */, - 9E41B98DB7C06E244630AEDD27EB9878 /* MASShortcut.modulemap */, - 527905F83B340CE24BD35C08B5A42EE5 /* MASShortcut.xcconfig */, - 7840085CAB4823FE9A3BE2CB2174BC31 /* MASShortcut-dummy.m */, - 04A06344257808FD1937BDB41F18B407 /* MASShortcut-prefix.pch */, - 9CEB1670F4E8A8FED505B32B7F7DADD3 /* MASShortcut-umbrella.h */, - C0E55BD2346FA928953EF952CED22364 /* ResourceBundle-MASShortcut-Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/MASShortcut"; - sourceTree = ""; - }; - BF8DBFAA295EDD4508C57565E7584442 /* MASShortcut */ = { - isa = PBXGroup; - children = ( - 0FB5237BDF54A20103EBE82BDC80B5C6 /* MASDictionaryTransformer.h */, - AADDE7423A968810AADD026BD63867B0 /* MASDictionaryTransformer.m */, - 1DCF2459B4B59AA53E371B3303793795 /* MASHotKey.h */, - C21DA07175E00F9652FEE28ACB8A721E /* MASHotKey.m */, - DDB7132E575EAC0CA9B48A0425DAAD21 /* MASKeyCodes.h */, - 734A36BDD429097E76987966DC4ED7AF /* MASKeyMasks.h */, - D22C2E880EC2CBCA5E33F7C18A7C28E5 /* MASLocalization.h */, - 5EA43362B8170DE6F84E11B91A09EC32 /* MASLocalization.m */, - 43F1B63559BBFA7E83623D1C9AC8E633 /* MASShortcut.h */, - AA881E4DA90F807751C146D7483CDEC3 /* MASShortcut.m */, - CD17E58327299EAC195D109A1B69B917 /* MASShortcutBinder.h */, - 14FD2EAF92039F913842A87BA5122B62 /* MASShortcutBinder.m */, - 25054C0604BDF8F039586E1B8351F0C6 /* MASShortcutMonitor.h */, - 3446B97BEC82628B5B70EBA865321925 /* MASShortcutMonitor.m */, - DFE42161A598BDA23E054E467E3BBBCD /* MASShortcutValidator.h */, - B91619B91E70B0C5E6FAC0131E42FD7E /* MASShortcutValidator.m */, - 90398724ED993172FCE73E50A7D35827 /* MASShortcutView.h */, - EB98EC4AC6562F031A89D824210E36CF /* MASShortcutView.m */, - 64D4E87F4D1E140147BC9F1FD6C31A64 /* MASShortcutView+Bindings.h */, - B2A49B7D2E244535BCE8E120F0D8D070 /* MASShortcutView+Bindings.m */, - AD4ECEBBCA289543D5E13C73371BCCB3 /* Shortcut.h */, - 596E070C58CFB10BC812CAD8C72703E5 /* Resources */, - BE3D3838C8B84A3CEF2E935A8409A3E6 /* Support Files */, - ); - name = MASShortcut; - path = MASShortcut; - sourceTree = ""; - }; - C07959C695700E8E160113D13009F59E /* BRLOptionParser */ = { - isa = PBXGroup; - children = ( - C2E109F0988D784B0B51149C9E0CFB7E /* BRLOptionParser.h */, - E0E8FB6DEC7DDD0F6FEEE86CCDFBC820 /* BRLOptionParser.m */, - A0E044ABBAEE4668550471527F21760A /* Support Files */, + 6B53429CB1F8A25076762F2D82D97CCF /* BRLOptionParser.h */, + 234D1504F40F558DF1303E8C160D47BD /* BRLOptionParser.m */, + 02CDF8BDA510DD82276AE66867F81915 /* Support Files */, ); name = BRLOptionParser; path = BRLOptionParser; sourceTree = ""; }; - C7E2B68BC8DB477F03CE845072F368E9 /* Pods */ = { - isa = PBXGroup; - children = ( - 7A633D619ABA3EAE06DBE3C3518CD402 /* Alamofire */, - C07959C695700E8E160113D13009F59E /* BRLOptionParser */, - 94F23F332E9AF6CFB1AE598A25825D20 /* GCDWebServer */, - BF8DBFAA295EDD4508C57565E7584442 /* MASShortcut */, - 933FA5BA35FA903ACC3F21095CFB4950 /* RxCocoa */, - 4C61D7F456D10FA95D42971061996162 /* RxSwift */, - ); - name = Pods; - sourceTree = ""; - }; D9727D7444B8CA54728F850F99A13C9F /* Frameworks */ = { isa = PBXGroup; children = ( @@ -1382,6 +1408,16 @@ name = "OS X"; sourceTree = ""; }; + E5268B6C8C971560742CEF27BB088DED /* GCDWebServer */ = { + isa = PBXGroup; + children = ( + A092F58EC487A6343E48EEDD79712C6A /* Core */, + 6D327928671CE89EC015B75776F6298A /* Support Files */, + ); + name = GCDWebServer; + path = GCDWebServer; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -1559,7 +1595,7 @@ isa = PBXNativeTarget; buildConfigurationList = D913F5C08F647E9FCC34C3A5B3030BD5 /* Build configuration list for PBXNativeTarget "RxCocoa" */; buildPhases = ( - A6A7F41BC3E054BC310066CAAE0C98AE /* Sources */, + E4683809F6E2E0E13A1DA3716D22762E /* Sources */, AC6EF4DCF3427EDD23A06A9ACE60D1CB /* Frameworks */, 8D0544708D493A52C828804099AE01DC /* Headers */, ); @@ -1633,7 +1669,7 @@ isa = PBXNativeTarget; buildConfigurationList = C3C04E339BA1928DBC29CEFD07DC6ADF /* Build configuration list for PBXNativeTarget "RxSwift" */; buildPhases = ( - BA3900128DCA208B2F7C8EB0B042D0B3 /* Sources */, + 2BF821D2760C912E8AB21AE0059F2E19 /* Sources */, 656F921478BE483858A20165B6945F4A /* Frameworks */, 515CC0B658FC2F28D886B75DF18D212D /* Headers */, ); @@ -1756,6 +1792,169 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 2BF821D2760C912E8AB21AE0059F2E19 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 47C776FC4A5D9C0FE6E5541509E2B06E /* AddRef.swift in Sources */, + D14AF917AAA665B36A071D4272716548 /* Amb.swift in Sources */, + 8087E705CC00CA7C021AF6601E343C7B /* AnonymousDisposable.swift in Sources */, + FB241DBEEFCA95FE872EF4CD6623157A /* AnonymousInvocable.swift in Sources */, + A9EA920651EC47BDE57A5BAAD44EF55B /* AnonymousObservable.swift in Sources */, + ED97B464615625E0F41D4CFE8321AF1B /* AnonymousObserver.swift in Sources */, + AFA4B1D93CB3D6DC0AA571F54239C102 /* AnyObserver.swift in Sources */, + 08DB8704904133A00B55601FAD0A012F /* AsMaybe.swift in Sources */, + CECC009E42390657E216EAC1EDC6274C /* AsSingle.swift in Sources */, + AF816ABCF197AAB5DA7362510CBC36AF /* AsyncLock.swift in Sources */, + CAAA66DC11EF7A8AFC3F9E08689BE08A /* AsyncSubject.swift in Sources */, + F3C83071EFA9A3A1CEFD3DD9817AC887 /* Bag+Rx.swift in Sources */, + D32273245E8606A37F7600158C272C01 /* Bag.swift in Sources */, + 77CFCF08FC8EA9F7758207854CED1E55 /* BehaviorSubject.swift in Sources */, + 358C6A1EF83AAD32B9453D2A9E6D6AA1 /* BinaryDisposable.swift in Sources */, + 5D8999DD4665B8E0F332EEC6B75CD6CF /* BooleanDisposable.swift in Sources */, + 3330B1E49DA9623EA683C8808CCDAF2F /* Buffer.swift in Sources */, + 8E48DA9023ED9B9E18414F2827949056 /* Cancelable.swift in Sources */, + F46CAF4542DF0C7D5C7B62CB1AABD54B /* Catch.swift in Sources */, + 59FAD0BBD4C663C17F44B59EFCA2A982 /* CombineLatest+arity.swift in Sources */, + A0C03D1525E6CED9442AE65F080B12E2 /* CombineLatest+Collection.swift in Sources */, + 6E8DF9E210380F39D45784980A71822F /* CombineLatest.swift in Sources */, + 380776E07A38623224A8D296024B2C9F /* CompositeDisposable.swift in Sources */, + 8CBA48409C86D95E6C4ABF3B26B8D0B8 /* Concat.swift in Sources */, + 42B796D37251F4BCF59ADC3C56B0C05C /* ConcurrentDispatchQueueScheduler.swift in Sources */, + 9F5E6138A3FE1726687C407708C71B4F /* ConcurrentMainScheduler.swift in Sources */, + 9794085A02FC87CF773A9EFB60C40F78 /* ConnectableObservable.swift in Sources */, + CAA6C816B24605177BB40AA731710460 /* ConnectableObservableType.swift in Sources */, + 9BE2B48A0DE5CE3C3B4EAF39DA85A876 /* CurrentThreadScheduler.swift in Sources */, + 6D1A95ED4B8C56039BEA5CB0242D1B29 /* Debounce.swift in Sources */, + 1C7F09EA3B480077170395B01076A2CF /* Debug.swift in Sources */, + 1FBC620BCD08041C114EEC0A11DDF69D /* DefaultIfEmpty.swift in Sources */, + 0990CFB289EC7E60955ACCF0DE727364 /* Deferred.swift in Sources */, + F4D944E38AA9EEB0850C85C303E8E3C2 /* Delay.swift in Sources */, + 83EF434424E7664543A3087F24738083 /* DelaySubscription.swift in Sources */, + 7F04E0567A70E986129DD6C9E2B467F1 /* Deprecated.swift in Sources */, + A2215749D44CF8D1C3F40EBF3FDE3DBD /* DispatchQueue+Extensions.swift in Sources */, + 6A46A6E9EC3D5EBE6868B267874C7F75 /* DispatchQueueConfiguration.swift in Sources */, + 677791FD8851F4D960BD70AE613BBA14 /* Disposable.swift in Sources */, + EBC1F84329AD2225017D47F63D55CA77 /* Disposables.swift in Sources */, + C6696D7D4F90372F47C224F1687AB5D0 /* DisposeBag.swift in Sources */, + 5E74113E3B8562A64DB64EF45BCA52C9 /* DisposeBase.swift in Sources */, + 9BDE5D29C68F5622298CA4A54A2BCDD0 /* DistinctUntilChanged.swift in Sources */, + BC1C0A9BB7F0E803C621E106D2DD292B /* Do.swift in Sources */, + 03F3C06659D9C05E49701C68B2F368DB /* ElementAt.swift in Sources */, + 78EBCD44C7BC4E2AB3ED660E9CAECFBB /* Empty.swift in Sources */, + C8FF11576430A8FC899515C128F80A67 /* Error.swift in Sources */, + 1AC61C1EA2DF1703163518C3858684FC /* Errors.swift in Sources */, + 3F5958F756DADBE2D0850A0F17186CCE /* Event.swift in Sources */, + 2AF6E7F79209F1F5EC7E2928FBEABC64 /* Filter.swift in Sources */, + B6E8854A928CDD5A03A136A92BAFFDC6 /* Generate.swift in Sources */, + 2247209AAAE299B2C89F2CFC75D3490D /* GroupBy.swift in Sources */, + DF4F1845181D496D965AD3FFD6366CCE /* GroupedObservable.swift in Sources */, + D6315D7F0CC2C411BEC2097E2BEA7242 /* HistoricalScheduler.swift in Sources */, + 1B5CEAC4BA4628D84ED636748404D3E3 /* HistoricalSchedulerTimeConverter.swift in Sources */, + F0CA204303CD1FDCC9AE08D89B231BA8 /* ImmediateScheduler.swift in Sources */, + 0C963577F459E5A7F345D0FBD58E0A67 /* ImmediateSchedulerType.swift in Sources */, + 095B15AD34057F9AF7AF7DC0CD7CC6E5 /* InfiniteSequence.swift in Sources */, + FF4F2998C2F400957C309F52B81C8F25 /* InvocableScheduledItem.swift in Sources */, + A802DC058B09432DF8F56F89406CF4F3 /* InvocableType.swift in Sources */, + 569E360D93A0FCB66F506D87E9BA7759 /* Just.swift in Sources */, + 71AF173C50F15DA473F398350C6A5FED /* Lock.swift in Sources */, + 3DD39CA7E6E7BDADC4A4126FC3310FAC /* LockOwnerType.swift in Sources */, + BED10B12B35FCD3CA735FE8A3B65774A /* MainScheduler.swift in Sources */, + 6DEC6398861E6DCBB4D67813B1E75036 /* Map.swift in Sources */, + 8B192520AA37984CAF1D2D760A62307E /* Merge.swift in Sources */, + 951C065E37A9ED6736A9697B231AC365 /* Multicast.swift in Sources */, + 5EA93C9BD770ADB728BD2CFE4FF44DC7 /* Never.swift in Sources */, + 5377A1F2185BF5247D6BC1CE35827700 /* NopDisposable.swift in Sources */, + FF6798A03CC53C99950B31DE10942B90 /* Observable+Aggregate.swift in Sources */, + 99662A21FAA5C025E034AAA5428E8D63 /* Observable+Binding.swift in Sources */, + 42EBF5069D107883B2BAFC32E539345A /* Observable+Concurrency.swift in Sources */, + 8BAF2E7597F1559A99FFB9C4DBDD9279 /* Observable+Creation.swift in Sources */, + 5AA7F01B9354C3DD1AB37F4AE65A5F4E /* Observable+Debug.swift in Sources */, + 5207EF225F11ACDE1EBB58D61DB61014 /* Observable+Multiple.swift in Sources */, + AE2B4C3519BCF47ED52108E615A778DE /* Observable+Single.swift in Sources */, + 0A018C2159E3422F73CC243BE77CB879 /* Observable+StandardSequenceOperators.swift in Sources */, + 57BC884F6BD181585A0B6F7719A49E2B /* Observable+Time.swift in Sources */, + 7D6E4A9CA431CA9D7BAF04817FB59C61 /* Observable.swift in Sources */, + 889A7A900C61A4B93329387833E2C65B /* ObservableConvertibleType.swift in Sources */, + 7E0C22AADD7C94FAED4BA3FA5802EA11 /* ObservableType+Extensions.swift in Sources */, + 5209FF4069635478A47FC5F929C25812 /* ObservableType.swift in Sources */, + A41241F5F212D2959EE88A02DA4B8006 /* ObserveOn.swift in Sources */, + 7FF7CAC8360011983D8A150A70ECAB6B /* ObserveOnSerialDispatchQueue.swift in Sources */, + 0C59FF6E931F35DE452E544B4E9366E3 /* ObserverBase.swift in Sources */, + 4FF29AE3D6A968F4167A336AC81D6E0D /* ObserverType.swift in Sources */, + 2519514CB62A290340D6D2B43ECC1459 /* OperationQueueScheduler.swift in Sources */, + 84A730F255D8C54A7F8A020CAC048A5A /* Optional.swift in Sources */, + 7FB525438AD4F2FB899B71CE0FC1A059 /* Platform.Darwin.swift in Sources */, + 85A2F7602621DE3FBE64FE43DE060EA7 /* Platform.Linux.swift in Sources */, + 494C1BDAACA36787EE7312E98F2984CA /* PrimitiveSequence+Zip+arity.swift in Sources */, + 46507181FD708FCB8B9066F54D38F9D2 /* PrimitiveSequence.swift in Sources */, + 11C0C606C5CDBA15C8F0E1C06BEE3799 /* PriorityQueue.swift in Sources */, + F68A07679A05EFEF9BFDED2B37886513 /* Producer.swift in Sources */, + AB8322F9B396436A004AAEBD01BF3015 /* PublishSubject.swift in Sources */, + 7F56F52F0503DF86BAFA5E0245643804 /* Queue.swift in Sources */, + EFBF1BDB8CD460EA4A9610EF91C54928 /* Range.swift in Sources */, + 9EACF2968862DF9219BBE32011842CDF /* Reactive.swift in Sources */, + E442EEDE70730AB746DADBB7B509B070 /* RecursiveLock.swift in Sources */, + 1BE8F717FDCFA2CC8DC9318624D80952 /* RecursiveScheduler.swift in Sources */, + 03AEC3CDFC3EAC2C0366631AA17F0021 /* Reduce.swift in Sources */, + 54D22FC915545C2DBECC569A2763FA93 /* RefCount.swift in Sources */, + A8F15851A3BDF0B2474224E5776281DA /* RefCountDisposable.swift in Sources */, + 852BFFEC5A19EC92A4A72C7072E11224 /* Repeat.swift in Sources */, + 4105ADAD2C51D3E4230C170EA0EC6C5B /* ReplaySubject.swift in Sources */, + 4B69C82E603D53AC00B7733414B831A9 /* RetryWhen.swift in Sources */, + CC5DF94AD0EDC78D929C06C6E2AC1E95 /* Rx.swift in Sources */, + 0B02531D97A04A562AD8FEFE3075E528 /* RxMutableBox.swift in Sources */, + 576C8796EAC4084B6F49BFC5C839E9D1 /* RxSwift-dummy.m in Sources */, + 6CEB47895E9B0D9170C31591412A7490 /* Sample.swift in Sources */, + F8FDBDB785D58B00E3DD49EFD58CFA34 /* Scan.swift in Sources */, + 8EA651DF52CCAF3C7F7F8DFE3EBA4130 /* ScheduledDisposable.swift in Sources */, + 4BB5255894FF4DC65E495662590280B3 /* ScheduledItem.swift in Sources */, + F7DCEFB4AC63035A92A1A1361DAC5D12 /* ScheduledItemType.swift in Sources */, + B442B2E0FBC57B32C68E7F970A890863 /* SchedulerServices+Emulation.swift in Sources */, + 8F3401FDD9D855007B24BE4AB7C0FC04 /* SchedulerType.swift in Sources */, + 81B5B2FE5823C56C6B5E712BF392F1B4 /* Sequence.swift in Sources */, + 2C2579538078FA3F4F5945718C44ACB4 /* SerialDispatchQueueScheduler.swift in Sources */, + ED3B6D9F5F3F89371B6425AB21A42BD5 /* SerialDisposable.swift in Sources */, + 2B60F28247A564FD61AF32BB988582DD /* ShareReplay1.swift in Sources */, + 7743CB22A5AE8379D41C0BDA7FA85470 /* ShareReplay1WhileConnected.swift in Sources */, + 59CF390612B666999922B2F9B6032D43 /* SingleAssignmentDisposable.swift in Sources */, + 0EF1FE250F2BFFABD61D2918C76E2916 /* SingleAsync.swift in Sources */, + 29D6BFCA8351A8E55B3A9B9FBBBB316D /* Sink.swift in Sources */, + 338E1BFAB40B2106D7B32979145BBBF3 /* Skip.swift in Sources */, + 977E457DD1A321217C8A9CA0B1AC8C61 /* SkipUntil.swift in Sources */, + 69BDA19A850913A07F745502A2943BDA /* SkipWhile.swift in Sources */, + C7A9B35BE31DF4C7DE1082BB94D1E8F2 /* StartWith.swift in Sources */, + DCEB10616CAFEFE12B6D4F6A7DDBBFD4 /* String+Rx.swift in Sources */, + 6CE32532AE4F14383FC5987D2EFC594B /* SubjectType.swift in Sources */, + E4BC2475373C69F1F805A462F1CA469D /* SubscribeOn.swift in Sources */, + FE567BBF31C04A25708225C9DD0B3B3F /* SubscriptionDisposable.swift in Sources */, + 68EFC793F03DFFF389E88AA969A8BB70 /* Switch.swift in Sources */, + 2C75CE551E9FD25187BC830078E6DD59 /* SwitchIfEmpty.swift in Sources */, + 4193C34CAA37C733D8231452EBBE0A46 /* SynchronizedDisposeType.swift in Sources */, + D9ACDAE812F7F132507CBD9D783613D6 /* SynchronizedOnType.swift in Sources */, + 7F3021ED7A62270BBCA3F9A4C13285EA /* SynchronizedSubscribeType.swift in Sources */, + 96719B2401B89179B97BE8828702C730 /* SynchronizedUnsubscribeType.swift in Sources */, + 64E8CC7D517563FA0FE904F5917FE2E1 /* TailRecursiveSink.swift in Sources */, + 106520C21CE01A94879410E99DD37F47 /* Take.swift in Sources */, + ED270C801E50A979CD21211BD2685550 /* TakeLast.swift in Sources */, + 4DD7E070B3A0D803370EE6CCA28CCA63 /* TakeUntil.swift in Sources */, + AC5D1A3CC7602A05322EF0B0B7BF8B85 /* TakeWhile.swift in Sources */, + E88ABB06791F804707EA13EFF1BB714F /* Throttle.swift in Sources */, + 63B5A98D9EF3325EEF1F93ACFAB7DC39 /* Timeout.swift in Sources */, + 92805E4E337491904604FE86909924FA /* Timer.swift in Sources */, + 184571546F643ABB4ADDC1DAAB6FBE78 /* ToArray.swift in Sources */, + 1B4686F080E5DB31E0FDEC12AD725B0B /* Using.swift in Sources */, + 8C8CC54FC0B2BC4ACE282AD7EDE2CB6D /* Variable.swift in Sources */, + 3FA20C251DB09C90B6E357ED89B534D7 /* VirtualTimeConverterType.swift in Sources */, + BA6C45B6BC8AED9DCFC82D7CF7A8A929 /* VirtualTimeScheduler.swift in Sources */, + 12C4D8F003A5CAEC8FA3C7D03A4A1484 /* Window.swift in Sources */, + 1B3A98673592E3650381A338F20CA81A /* WithLatestFrom.swift in Sources */, + A2871C692E9B86522F46AA4100144621 /* Zip+arity.swift in Sources */, + C171A65415727D094B9AF634E1D172A8 /* Zip+Collection.swift in Sources */, + E63AC9803426E8646E59772DBED7864E /* Zip.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 32B9974868188C4803318E36329C87FE /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1810,64 +2009,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A6A7F41BC3E054BC310066CAAE0C98AE /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 143F5EA30D8845DE6EBA2E7E9619D2E9 /* _RX.m in Sources */, - 46E18CE0A69856E82A7BF5DF5C4129D2 /* _RXDelegateProxy.m in Sources */, - EC499031542915CA54C314AE2781C6BA /* _RXKVOObserver.m in Sources */, - 4B4CE0B02143614597D6DF7AA4BA3DBD /* _RXObjCRuntime.m in Sources */, - F6069304E6720CD883040BD4C6348423 /* Bag.swift in Sources */, - 6A7E08A902C0F36A9AC0CFFE7F868C4A /* ControlEvent+Driver.swift in Sources */, - BD9A8D8F883436D80DAA180092826F59 /* ControlEvent.swift in Sources */, - CA3A97285A08BEC4505C953D548660FB /* ControlProperty+Driver.swift in Sources */, - E4EF88D306B62375F97BFE1AF85C8CED /* ControlProperty.swift in Sources */, - 8C1524EFD8466D86020C1F2C6A922D84 /* ControlTarget.swift in Sources */, - BAC1B51CD0A87789B317FBD5BB06552A /* DelegateProxy.swift in Sources */, - 467BF71F9AA158F2EA6212221B8E757D /* DelegateProxyType.swift in Sources */, - 02FCBABDD1B23C59A7B119F1DAE88D7D /* DispatchQueue+Extensions.swift in Sources */, - E650654EFC351E571C296AE3E66B8CBC /* Driver+Subscription.swift in Sources */, - 4EA689C03ECF1236D3D9D63B2BB5F4FC /* Driver.swift in Sources */, - 02759E469AF7E37C6C2B662D2A8DBB99 /* InfiniteSequence.swift in Sources */, - 889D4A9563783DAD50090FB7AA14D591 /* KVORepresentable+CoreGraphics.swift in Sources */, - 2F4DC6EE9D2D04DD2501C702C782FF87 /* KVORepresentable+Swift.swift in Sources */, - 2259DC05FD87D673C2FE695869381DBC /* KVORepresentable.swift in Sources */, - 65AC91F0CD9F560A7904BFAABD92C60B /* Logging.swift in Sources */, - CA3B4A6F5154DA40B8713EF5A2AFDA20 /* NSButton+Rx.swift in Sources */, - F192F14395D111EAE279D849E233CA6B /* NSControl+Rx.swift in Sources */, - 8CC77692B2147DAEBBFB618C179C4175 /* NSImageView+Rx.swift in Sources */, - C22C6ECD95AFB9E35C25D316E25D5F7C /* NSLayoutConstraint+Rx.swift in Sources */, - FC558372E13AAD8016536702B3964C0D /* NSNotificationCenter+Rx.swift in Sources */, - F20BC8E29804469E866991EBEE2C81B9 /* NSObject+Rx+KVORepresentable.swift in Sources */, - 247AA094C4DE12FB3B5B4761C9FDECE8 /* NSObject+Rx+RawRepresentable.swift in Sources */, - E5FCD7D6CC4A3267A6DBCD636BFBCB90 /* NSObject+Rx.swift in Sources */, - 611B03B39A3C1DE850DF21D39CE21095 /* NSSlider+Rx.swift in Sources */, - 3B5E0C8C1AB83BD7BBBCAE6073F09AFC /* NSTextField+Rx.swift in Sources */, - 648C55C1798400EC2622AD90E7BB4A7C /* NSView+Rx.swift in Sources */, - 370087A98B47E0ED6C36574B16D871A5 /* Observable+Bind.swift in Sources */, - 528F931DA3394230226A64A342C7CE2F /* ObservableConvertibleType+Driver.swift in Sources */, - E2B2B2682B2F4AD8A0BF7F9007AFFE2E /* ObservableConvertibleType+SharedSequence.swift in Sources */, - 21EB6E0D77F98AC3A30680A90B8656D4 /* Platform.Darwin.swift in Sources */, - 8D8907394B54F53C73E1D71ABE09BC66 /* Platform.Linux.swift in Sources */, - A97DC783F3BF2BB7191E451487A7830D /* PriorityQueue.swift in Sources */, - EDC71599268E09BB4590CCB4E9921855 /* Queue.swift in Sources */, - 1E1D791396A3F447B3ADE321ECC7E39E /* RxCocoa-dummy.m in Sources */, - F1FC058E962CB5A786654E301515F175 /* RxCocoa.swift in Sources */, - 1ACC904BF6C39CB0520384B81B1A59A3 /* RxCocoaObjCRuntimeError+Extensions.swift in Sources */, - DA4140910A4A22776536B76470DF9A1B /* RxTarget.swift in Sources */, - BF9CC03D9F304A3B5882DA4C27AB4B49 /* SectionedViewDataSourceType.swift in Sources */, - 77C70A22F2B4145CF5341817585C134B /* SharedSequence+Operators+arity.swift in Sources */, - 50AE3AC1A51BD92B7D417D6783719D10 /* SharedSequence+Operators.swift in Sources */, - 7F2467C9E8CB2CBC330D331CB6C8BB98 /* SharedSequence.swift in Sources */, - 282D05FE9B69BDF19B9573DAD9F3EE9A /* TextInput.swift in Sources */, - D427A2DEF72EE38F35E0180E6CEA7836 /* UIBindingObserver.swift in Sources */, - AFD698CCB4B270EA10CA5674A7C5FEE7 /* URLSession+Rx.swift in Sources */, - 38DB62A5AD3079471CDF2E9D0D3028FA /* Variable+Driver.swift in Sources */, - 0B39234B888575182CA99B07AFC81BA5 /* Variable+SharedSequence.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; AFD9223E8E59CD878E1C56F1407DA2C8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1884,158 +2025,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - BA3900128DCA208B2F7C8EB0B042D0B3 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 165F7D403C750ABB5648860CBA92049E /* AddRef.swift in Sources */, - 5CD1BCE580E7AD73C116C419387F753E /* Amb.swift in Sources */, - 756E3D696CCD8F588DF9292AFF378C4E /* AnonymousDisposable.swift in Sources */, - 202855689CF5074E834DC4C377C1C21F /* AnonymousInvocable.swift in Sources */, - 320FD242550FBA6C940056D6191EF150 /* AnonymousObservable.swift in Sources */, - 41A0D57F7581AE6A50FE1B0EFE59019C /* AnonymousObserver.swift in Sources */, - 5D43FA1C64865954BCD55736B89C62C4 /* AnyObserver.swift in Sources */, - 4FCC38C464EC116DA2EDA928A5AFC90A /* AsyncLock.swift in Sources */, - EF0DEE821A473B32E266EA6F4AE03A8B /* Bag+Rx.swift in Sources */, - E33E79B8BBB9FDCA0B0CAA15B335CF18 /* Bag.swift in Sources */, - 876D3351B96DD42235328028C5EA685A /* BehaviorSubject.swift in Sources */, - 7C2510201C3D043BAF6D7D3E3D68CB3A /* BinaryDisposable.swift in Sources */, - B6B0BFAA4B2EDC9B19FFFFF98535A30B /* BooleanDisposable.swift in Sources */, - F13411F6487E4AE13417D98635C36FB1 /* Buffer.swift in Sources */, - 432E16210E58159994078E2AC4CC5E2A /* Cancelable.swift in Sources */, - 21924D3337F7B20AE94DE0A020D38183 /* Catch.swift in Sources */, - F7319C5D6B81343F0D43A8CD903AD9D1 /* CombineLatest+arity.swift in Sources */, - 287F5692A9ECEE55B0A9E4A033992626 /* CombineLatest+Collection.swift in Sources */, - 08DB29E8F7F7FF81D87DCFB7869ECC45 /* CombineLatest.swift in Sources */, - C54AAB75EA7AEA2EC09044E5673A0C34 /* CompositeDisposable.swift in Sources */, - DDA9DBF8AD0279173E5FCB78BAA1FBF1 /* Concat.swift in Sources */, - E8BA7E89E83AD1FF70C0B8D690CE7EEF /* ConcurrentDispatchQueueScheduler.swift in Sources */, - 1CA6B3BA315902F58D2A539D524D6C3C /* ConcurrentMainScheduler.swift in Sources */, - CB921D3307D0CEE4CD1472946BFC184E /* ConnectableObservable.swift in Sources */, - D96B27ACC1B194C3E1B658E67687C195 /* ConnectableObservableType.swift in Sources */, - D6E485F4B677A8530CE25D81F2F21BE4 /* CurrentThreadScheduler.swift in Sources */, - B537A51B17BDBA5000C8AFBF5F5D644C /* Debug.swift in Sources */, - B424B5ADC87DCB8566E2DF93378702C4 /* Debunce.swift in Sources */, - EF34AC8DFCCDA7E37B2BAFB23B8CC208 /* Deferred.swift in Sources */, - FD09105291CBA39191AF89BACC9F1538 /* Delay.swift in Sources */, - 0F56DF85092077222EFE85B49CED711F /* DelaySubscription.swift in Sources */, - 72DE99612A83DF8C807353F1A9ACAB4E /* DispatchQueue+Extensions.swift in Sources */, - B2B321D56AF649DAC3D75F6A020ADD55 /* DispatchQueueConfiguration.swift in Sources */, - ACD3D417D834EBD534A3E18B3C01B597 /* Disposable.swift in Sources */, - 3631BBE242189BD75BEF9E010BC27E21 /* Disposables.swift in Sources */, - D4B59D90C107A21A4E79D5F1E438791A /* DisposeBag.swift in Sources */, - 1B9C61B405FA747D9223222AA652AF6D /* DisposeBase.swift in Sources */, - 95DFDB38DB26CBCCFF296D8ED3E77940 /* DistinctUntilChanged.swift in Sources */, - FC2A6E0CEAD8E453D54189928819140D /* Do.swift in Sources */, - C9D831152A4A9CC9A0AD132C27727ADD /* ElementAt.swift in Sources */, - 5F6DF5ECECD40261F4E10979C038EEB1 /* Empty.swift in Sources */, - 8DC023486CE85BB68B5545EF5409FB71 /* Error.swift in Sources */, - B99557A2D1CECD83B2AC7D8EE83E2162 /* Errors.swift in Sources */, - 7269959C7F25D3669B4CCC0BEFC43EFB /* Event.swift in Sources */, - D5E905369D09381D329C16B04EB087DB /* Filter.swift in Sources */, - 9FA3673BE87BC7DFE277B6A540465F3B /* Generate.swift in Sources */, - F4DE46050B00D9C5E0D8AFB79C9BBF96 /* HistoricalScheduler.swift in Sources */, - 1E9B353B6011A05BC8A967B4F679AC99 /* HistoricalSchedulerTimeConverter.swift in Sources */, - B6113F6876CC1EC5942329D951F51F99 /* ImmediateScheduler.swift in Sources */, - 00B490DFDC8E910BDF676C7E9EC0F7F8 /* ImmediateSchedulerType.swift in Sources */, - 330A0CDDD45D8019380AE257A5946541 /* InfiniteSequence.swift in Sources */, - 181168219B048D50E6CA6E785240FFAD /* InvocableScheduledItem.swift in Sources */, - 5E0E60641191E835765F082F3986230F /* InvocableType.swift in Sources */, - 84A972377538A384D469D5B3799DFC3F /* Just.swift in Sources */, - 2B2DD472D5ADDCFEB20E2715B76C497F /* Lock.swift in Sources */, - 49F778DEAC864BEE58A4B6E734B9BADC /* LockOwnerType.swift in Sources */, - AAE9C0157B2A7C8FA1437AE63D7A7281 /* MainScheduler.swift in Sources */, - 33432041A2F2B22595A953DADFB962AA /* Map.swift in Sources */, - 5E7DA63F3D502ECE812E041AC672D187 /* Merge.swift in Sources */, - 6A93DF12A8D132337D0B6944A54C7B03 /* Multicast.swift in Sources */, - 6B023721711ECBB4969FF35AF43D542F /* Never.swift in Sources */, - C83FB3FA4A1BEC6F9C237CDDDECA76A5 /* NopDisposable.swift in Sources */, - 525A56AD52E77A0678127239A93BA759 /* Observable+Aggregate.swift in Sources */, - F88CA5676D6FEE75F80D102E13BFB568 /* Observable+Binding.swift in Sources */, - 2F51EBD27184D6642521531C30C2A078 /* Observable+Concurrency.swift in Sources */, - F75888E0217E015253A9C120DF4E31D3 /* Observable+Creation.swift in Sources */, - CA4D925D276335F92C0476A4BB100312 /* Observable+Debug.swift in Sources */, - 64995C953E64C6F7105B3728672E316F /* Observable+Multiple.swift in Sources */, - 5DA42242F35744E48EC08C6DEE5725B3 /* Observable+Single.swift in Sources */, - 203C8C15986DB48FBFB72F65D4837A0F /* Observable+StandardSequenceOperators.swift in Sources */, - 62BCF246203C0F0872F6ABB6A1620D32 /* Observable+Time.swift in Sources */, - 965B1E00C33296E80367B418D31E72CE /* Observable.swift in Sources */, - ACE988968174554A0ED558154694E95E /* ObservableConvertibleType.swift in Sources */, - A980984343A8FBB1666C9DC5A50760B4 /* ObservableType+Extensions.swift in Sources */, - 3CB44363DC3691947BA8E9882053BC4A /* ObservableType.swift in Sources */, - B7CD8326E8B8F502F56AF37EE47E1F2E /* ObserveOn.swift in Sources */, - 8605C5332B728C31426A255BCF14FBA9 /* ObserveOnSerialDispatchQueue.swift in Sources */, - D1E502592E9BE6AC042E2BCF0CA546E4 /* ObserverBase.swift in Sources */, - C92206868B5A8ABFC32E91D7A830C8FF /* ObserverType.swift in Sources */, - 94273CE6C30D0DB5BBF8579D0A97CA9F /* OperationQueueScheduler.swift in Sources */, - 6353703943D7D2312070AFD17CCB65AD /* Optional.swift in Sources */, - 6152ECE63A673F74B40C9BA5A851B4ED /* Platform.Darwin.swift in Sources */, - 107E34C884D6DAEDA56024FF80F83CF6 /* Platform.Linux.swift in Sources */, - A95A82AE1BBE7BF8A32F427F5263EDC0 /* PriorityQueue.swift in Sources */, - ADE52CEC3C99C491579C84EAD1E9A3AC /* Producer.swift in Sources */, - 2CF894F29E1A7E1C5F7F9501934E0059 /* PublishSubject.swift in Sources */, - A4DB0F25CD590C73E2EA2586822D54FD /* Queue.swift in Sources */, - ADD593AFC898ADE7B8FC61DF7BAA4964 /* Range.swift in Sources */, - DFD85B645794CFCD77427C115F61B528 /* Reactive.swift in Sources */, - CA65999C4112C3EC6D71C5C8E70EA9D5 /* RecursiveScheduler.swift in Sources */, - 95AC8562635870772E618499EF083802 /* Reduce.swift in Sources */, - F2FFE741AC2834ABDA25E19C4B553B6E /* RefCount.swift in Sources */, - 0ED25A1662826BF961671ECD0C67522D /* RefCountDisposable.swift in Sources */, - 6D6E7ADEA922698A850B81747EDE156A /* Repeat.swift in Sources */, - B32863B4B34268AE9E40AEFE5A0C648A /* ReplaySubject.swift in Sources */, - 3161617D6E3095F41E350F916D918355 /* RetryWhen.swift in Sources */, - 2990102CBE66DC047A22C1CBF937DB6E /* Rx.swift in Sources */, - 43F8377C7AD6791017DCD42341075D28 /* RxMutableBox.swift in Sources */, - 8DB189E11E752F521E1387EB147BC5CB /* RxSwift-dummy.m in Sources */, - 595666EBE1975A65C6968591FED3477E /* Sample.swift in Sources */, - 1A12CE731D866F4B25F4C05CB262773A /* Scan.swift in Sources */, - 68924F5463C83413FAB0AF1EF9A13CBC /* ScheduledDisposable.swift in Sources */, - 077F6DB761D1176638A57167293DA6BA /* ScheduledItem.swift in Sources */, - 7C71E95D2740D598A7B8B42EF962B00F /* ScheduledItemType.swift in Sources */, - 95B3765B29823D808D7E7CDC32980CC8 /* SchedulerServices+Emulation.swift in Sources */, - 450010E10778B36C2FEEC4B9FBB70AC5 /* SchedulerType.swift in Sources */, - 1E97944F114E25922076ED80748DF4BC /* Sequence.swift in Sources */, - 424673BDBA8D006E6179215F52C5E941 /* SerialDispatchQueueScheduler.swift in Sources */, - 09713E4AD4F8DB9EBD22A77AA12509B7 /* SerialDisposable.swift in Sources */, - 4F4FD0070DB81A8EB981334462E930F1 /* ShareReplay1.swift in Sources */, - E0A7C2B4EF093E65496C31BE8AE154EF /* ShareReplay1WhileConnected.swift in Sources */, - 1F149FBBBB20187B527A87592E7D1D65 /* SingleAssignmentDisposable.swift in Sources */, - 23741DAA4F354BEEAD1B4EE11EECBF82 /* SingleAsync.swift in Sources */, - A7B470FCCAD399F59B3627257F78D6D6 /* Sink.swift in Sources */, - 291963FA0138FBBFE13F98B6F3980E28 /* Skip.swift in Sources */, - DCEB8485F9DF589F1052AC9BAF1BF386 /* SkipUntil.swift in Sources */, - 8D465F56E6992ECD6D7985B7D7D519C3 /* SkipWhile.swift in Sources */, - F4AF312CC6AFB71721D0F16DDED1028C /* StartWith.swift in Sources */, - 1094573AE70DF26E438020148CAA752E /* String+Rx.swift in Sources */, - 1243B6888974A6BE9D7D77B1D5402D73 /* SubjectType.swift in Sources */, - C6B37A8FF222504586343B2DFA9AEF7A /* SubscribeOn.swift in Sources */, - EBEBC8730F86241C0D7D2BD8BB4A4F5F /* SubscriptionDisposable.swift in Sources */, - A9E59702B924D5C4228A7E7C0D256DDC /* Switch.swift in Sources */, - 7DDE276EE3BD477C709DBCD1C38B03E0 /* SynchronizedDisposeType.swift in Sources */, - 47351D20CCCBF94578D448CC836C33FD /* SynchronizedOnType.swift in Sources */, - ED084F37DBC7F8C6BF80DB85883C67D4 /* SynchronizedSubscribeType.swift in Sources */, - 419D4559CBA3D1470729743B06641C8C /* SynchronizedUnsubscribeType.swift in Sources */, - B58863122018B82BEDE5700BFA85D96D /* TailRecursiveSink.swift in Sources */, - 73F0143CB5E58D6201A6FBA2252858F4 /* Take.swift in Sources */, - 59B0C5CEEBC23AF2B21649600F99188D /* TakeLast.swift in Sources */, - 3E6DF7443FD313551869E084C684729A /* TakeUntil.swift in Sources */, - B7D1CCC7182ED2604819332A6B26BC1C /* TakeWhile.swift in Sources */, - 80B90DB44C8F9D684F4E301E9C0AC090 /* Throttle.swift in Sources */, - 84EB655E0AD1E3646633D47C0D047EBC /* Timeout.swift in Sources */, - 420C2F4BDB11DD8CF3D550D0857ECD6B /* Timer.swift in Sources */, - 880C6F044DF17CD72542B4A20C22F70B /* ToArray.swift in Sources */, - B738E54C921B7EB262AAFE452EF5E5B9 /* Using.swift in Sources */, - D3117D8EA464B11367A3111EC49F544A /* Variable.swift in Sources */, - 636D056E73695F4C9DB7721E8064A02E /* VirtualTimeConverterType.swift in Sources */, - BFEA88B702838FD3731D4A289FDC060E /* VirtualTimeScheduler.swift in Sources */, - 18AD86C96492EFC58855F4DD89D50EE8 /* Window.swift in Sources */, - D0E12AD3CCD78DC53A391809FC085C69 /* WithLatestFrom.swift in Sources */, - 032DDE7C99BFEF759E6AD96D49AC2222 /* Zip+arity.swift in Sources */, - 699AFBBF79B3202D7B230A0A22DABB18 /* Zip+Collection.swift in Sources */, - 87E9A539E61AE876EACCBEDB8233D9C4 /* Zip.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; C85081056E3DF73EFBB147D8F01CDE65 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2043,6 +2032,65 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + E4683809F6E2E0E13A1DA3716D22762E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7A303312792E091ABAE7157A9FB83B23 /* _RX.m in Sources */, + A2E3CE14430670CE78113A4AA2282522 /* _RXDelegateProxy.m in Sources */, + 363C02C0DC1D05C96E4C99FA291EFDE1 /* _RXKVOObserver.m in Sources */, + 7CD1DD00190DB1ACA427120A0F54AAB5 /* _RXObjCRuntime.m in Sources */, + 9D6566D484F3BA80C9400E9DD202C281 /* Bag.swift in Sources */, + FC296F43271A48D9D4C58B5715C051D5 /* ControlEvent+Driver.swift in Sources */, + 15C09589084D116390E3B04BF3B026B6 /* ControlEvent.swift in Sources */, + A66A89FE5B6FC0BB454C391B22DA9E5D /* ControlProperty+Driver.swift in Sources */, + 8D12A35F60C0393445B793DBB638575D /* ControlProperty.swift in Sources */, + 8CE914272F3F97EA9F1568043975674A /* ControlTarget.swift in Sources */, + C779A6C734EA83712332BA6A13EFFE5C /* DelegateProxy.swift in Sources */, + 7841A7635F46B11A9A96F101CF5F4354 /* DelegateProxyType.swift in Sources */, + ECC084E104E80FB7345F76B6B0C15FAC /* DispatchQueue+Extensions.swift in Sources */, + 9B18C2229AEFC7674EF9795A7A77DCEB /* Driver+Subscription.swift in Sources */, + 27776D059250B2AEEA4FD883A98F18E2 /* Driver.swift in Sources */, + 3F68F1F5B35DB36E1D1A35AF93621DC0 /* InfiniteSequence.swift in Sources */, + 84CE2F3B9BC695F0B6E48B2D6405659F /* KVORepresentable+CoreGraphics.swift in Sources */, + 35413ADE5985AB5E408AF576A84B4C24 /* KVORepresentable+Swift.swift in Sources */, + A2CF744BF46B0F17DC6607F4D0D82944 /* KVORepresentable.swift in Sources */, + 33856730EE17C2CA1481049F1422FA6A /* Logging.swift in Sources */, + 39F610E5C7762C98378BF845AC774621 /* NotificationCenter+Rx.swift in Sources */, + 1012A309E82945C38EA9CA39444380DF /* NSButton+Rx.swift in Sources */, + 266E93ACE8FFB80FDF783822D630E927 /* NSControl+Rx.swift in Sources */, + E16B1A45A5741C6A98DFAE5C24764F55 /* NSImageView+Rx.swift in Sources */, + 4A4C1E2799F10F07FD0349A686041EC3 /* NSLayoutConstraint+Rx.swift in Sources */, + D9ED1A4C6F894B1DC0298C280C8056EB /* NSObject+Rx+KVORepresentable.swift in Sources */, + 625FB12932BD111CA0CB053F2820F15A /* NSObject+Rx+RawRepresentable.swift in Sources */, + B0C1DEAEF59617FD104B45651A9E02E7 /* NSObject+Rx.swift in Sources */, + 2E3A8BCE3E4D9114ABCBB4D7966812A8 /* NSSlider+Rx.swift in Sources */, + 06067FEB1AB279D49A3F16553693D98C /* NSTextField+Rx.swift in Sources */, + 6670B050A7427F9C7393AB5D8D2E26FC /* NSView+Rx.swift in Sources */, + 46661BD5FD35D16A1D72B05C32BA4805 /* Observable+Bind.swift in Sources */, + F22B5B760326351832F4648F432136D8 /* ObservableConvertibleType+Driver.swift in Sources */, + 98FBAAEB02A3A0CAA335BD31829CF985 /* ObservableConvertibleType+SharedSequence.swift in Sources */, + E95C2409BDE4CB6BA371A54DD05D7996 /* Platform.Darwin.swift in Sources */, + CAFB60F384AE9659EDB5D377F5D183F9 /* Platform.Linux.swift in Sources */, + 4811AC35475C767F778C6E3B68648F94 /* PriorityQueue.swift in Sources */, + 451920991DC451B2676E9A139C857DD2 /* Queue.swift in Sources */, + ACA9C9D1223FED43AAE8C8130225DCCF /* RecursiveLock.swift in Sources */, + B6FE3D84E41A57384175035BC92ABEAA /* RxCocoa-dummy.m in Sources */, + 6D71A4D5D45590A99D42928E14133A61 /* RxCocoa.swift in Sources */, + 8AE3D3F02C4FC2EB6A10602D6A18A234 /* RxCocoaObjCRuntimeError+Extensions.swift in Sources */, + D5A9F983227BEB62BCA37F568897987C /* RxTarget.swift in Sources */, + C733DF41496B0364EF379F77068B4367 /* SectionedViewDataSourceType.swift in Sources */, + 17848AD97F24126359BC05C4E675F0A4 /* SharedSequence+Operators+arity.swift in Sources */, + 07147440201D62C544F94526CA96A5C3 /* SharedSequence+Operators.swift in Sources */, + 5AB880D9ADA38379AE40B94C492D6541 /* SharedSequence.swift in Sources */, + 3ABDC8F6AC096D1B402D23DDE0DA663D /* TextInput.swift in Sources */, + 2FBF7BF077F416DB8C7C99AEAD139F9B /* UIBindingObserver.swift in Sources */, + 69E55ABC7A2FD0420B1F5DB3172B10E1 /* URLSession+Rx.swift in Sources */, + 9676160A622D6A1E0ED9A304D56E9E0B /* Variable+Driver.swift in Sources */, + BA54F883C123CBEDD90E739B2B2ACCAE /* Variable+SharedSequence.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -2099,7 +2147,7 @@ /* Begin XCBuildConfiguration section */ 02E195CBAB30A9CBC71B668C0E2C5F60 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E7AC2CB247486E6770E163434DEC2B56 /* Alamofire.xcconfig */; + baseConfigurationReference = D6CBB4BD325445F86290A6A3E27E8B45 /* Alamofire.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2196,7 +2244,7 @@ }; 3E78636AE74B59428E5A0935753CC17C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 96452244B9CFEFBA70877833E181A983 /* RxSwift.xcconfig */; + baseConfigurationReference = 3261881064E033A3711EA27CE78524FC /* RxSwift.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2231,7 +2279,7 @@ }; 454A1980F630934367D478DF55211291 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5C8B549DF38B641E23F436DE84A1AB1F /* BRLOptionParser.xcconfig */; + baseConfigurationReference = 797084A009F9EF151DBBF73DD026ADC6 /* BRLOptionParser.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2255,7 +2303,7 @@ }; 4F50769607A8A1A40CFF74C962A6EC0C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 527905F83B340CE24BD35C08B5A42EE5 /* MASShortcut.xcconfig */; + baseConfigurationReference = 6F8C5EB810D1464D5BE86A414DC08616 /* MASShortcut.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2289,7 +2337,7 @@ }; 581B7E690A5A7F5E7DF616728F5651C1 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E7AC2CB247486E6770E163434DEC2B56 /* Alamofire.xcconfig */; + baseConfigurationReference = D6CBB4BD325445F86290A6A3E27E8B45 /* Alamofire.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2323,7 +2371,7 @@ }; 5BBF011CC3651D848A68DA27DF8ECC7D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D95E797893870454BDD396AD03752C2A /* RxCocoa.xcconfig */; + baseConfigurationReference = C5B2560C6A7D9250831A76E33D926588 /* RxCocoa.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2435,7 +2483,7 @@ }; 69C0AC77C660068E1F05164BAC26E89F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D95E797893870454BDD396AD03752C2A /* RxCocoa.xcconfig */; + baseConfigurationReference = C5B2560C6A7D9250831A76E33D926588 /* RxCocoa.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2470,7 +2518,7 @@ }; 6F5040456E9D7C1CBF0FC8D4AE544E8E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 96452244B9CFEFBA70877833E181A983 /* RxSwift.xcconfig */; + baseConfigurationReference = 3261881064E033A3711EA27CE78524FC /* RxSwift.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2504,7 +2552,7 @@ }; 7F85541659A067CF326B2DF15039555D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 527905F83B340CE24BD35C08B5A42EE5 /* MASShortcut.xcconfig */; + baseConfigurationReference = 6F8C5EB810D1464D5BE86A414DC08616 /* MASShortcut.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; COMBINE_HIDPI_IMAGES = YES; @@ -2523,7 +2571,7 @@ }; 81B74614E7B351BBFADF2489179A00EE /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5C8B549DF38B641E23F436DE84A1AB1F /* BRLOptionParser.xcconfig */; + baseConfigurationReference = 797084A009F9EF151DBBF73DD026ADC6 /* BRLOptionParser.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2547,7 +2595,7 @@ }; 85EFB31300ECD852FAD5DE392B6CDD3A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EFE14E99FE3CC24013D01106E3710A5A /* GCDWebServer.xcconfig */; + baseConfigurationReference = 1255CE4EF584F1227FCFE877388965BE /* GCDWebServer.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2606,7 +2654,7 @@ }; 9F61FD28CA790C68C44F0E823C9A301A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 527905F83B340CE24BD35C08B5A42EE5 /* MASShortcut.xcconfig */; + baseConfigurationReference = 6F8C5EB810D1464D5BE86A414DC08616 /* MASShortcut.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2758,7 +2806,7 @@ }; EEC1F7D47739588099958DDE9B22FEEB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EFE14E99FE3CC24013D01106E3710A5A /* GCDWebServer.xcconfig */; + baseConfigurationReference = 1255CE4EF584F1227FCFE877388965BE /* GCDWebServer.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2792,7 +2840,7 @@ }; F1B067679E8618A86DA283BCD4698C6D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 527905F83B340CE24BD35C08B5A42EE5 /* MASShortcut.xcconfig */; + baseConfigurationReference = 6F8C5EB810D1464D5BE86A414DC08616 /* MASShortcut.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; COMBINE_HIDPI_IMAGES = YES; diff --git a/Pods/RxCocoa/Platform/DataStructures/Bag.swift b/Pods/RxCocoa/Platform/DataStructures/Bag.swift index 4ab6f94..897cdad 100644 --- a/Pods/RxCocoa/Platform/DataStructures/Bag.swift +++ b/Pods/RxCocoa/Platform/DataStructures/Bag.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation import Swift let arrayDictionaryMaxSize = 30 @@ -44,6 +43,9 @@ struct Bag : CustomDebugStringConvertible { var _key0: BagKey? = nil var _value0: T? = nil + // then fill "array dictionary" + var _pairs = ContiguousArray() + // last is sparse dictionary var _dictionary: [BagKey : T]? = nil @@ -77,6 +79,11 @@ struct Bag : CustomDebugStringConvertible { return key } + if _pairs.count < arrayDictionaryMaxSize { + _pairs.append(key: key, value: element) + return key + } + if _dictionary == nil { _dictionary = [:] } @@ -89,7 +96,7 @@ struct Bag : CustomDebugStringConvertible { /// - returns: Number of elements in bag. var count: Int { let dictionaryCount: Int = _dictionary?.count ?? 0 - return (_value0 != nil ? 1 : 0) + dictionaryCount + return (_value0 != nil ? 1 : 0) + _pairs.count + dictionaryCount } /// Removes all elements from bag and clears capacity. @@ -97,6 +104,7 @@ struct Bag : CustomDebugStringConvertible { _key0 = nil _value0 = nil + _pairs.removeAll(keepingCapacity: false) _dictionary?.removeAll(keepingCapacity: false) } @@ -118,6 +126,14 @@ struct Bag : CustomDebugStringConvertible { return existingObject } + for i in 0 ..< _pairs.count { + if _pairs[i].key == key { + let value = _pairs[i].value + _pairs.remove(at: i) + return value + } + } + return nil } } @@ -148,6 +164,10 @@ extension Bag { action(value0) } + for i in 0 ..< _pairs.count { + action(_pairs[i].value) + } + if dictionary?.count ?? 0 > 0 { for element in dictionary!.values { action(element) diff --git a/Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift b/Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift index 5fad383..5a573a0 100644 --- a/Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift +++ b/Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Sequence that repeats `repeatedValue` infinite number of times. struct InfiniteSequence : Sequence { typealias Element = E diff --git a/Pods/RxCocoa/Platform/DataStructures/PriorityQueue.swift b/Pods/RxCocoa/Platform/DataStructures/PriorityQueue.swift index 725feef..fae70a0 100644 --- a/Pods/RxCocoa/Platform/DataStructures/PriorityQueue.swift +++ b/Pods/RxCocoa/Platform/DataStructures/PriorityQueue.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - struct PriorityQueue { private let _hasHigherPriority: (Element, Element) -> Bool private let _isEqual: (Element, Element) -> Bool diff --git a/Pods/RxCocoa/Platform/DataStructures/Queue.swift b/Pods/RxCocoa/Platform/DataStructures/Queue.swift index cfe3df4..d05726c 100644 --- a/Pods/RxCocoa/Platform/DataStructures/Queue.swift +++ b/Pods/RxCocoa/Platform/DataStructures/Queue.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /** Data structure that represents queue. diff --git a/Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift b/Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift index 0df1ce7..552314a 100644 --- a/Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift +++ b/Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift @@ -6,7 +6,6 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import Foundation import Dispatch extension DispatchQueue { diff --git a/Pods/RxCocoa/Platform/Platform.Darwin.swift b/Pods/RxCocoa/Platform/Platform.Darwin.swift index e0d7f0d..d9e744f 100644 --- a/Pods/RxCocoa/Platform/Platform.Darwin.swift +++ b/Pods/RxCocoa/Platform/Platform.Darwin.swift @@ -9,17 +9,34 @@ #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS) import Darwin - import Foundation + import class Foundation.Thread + import func Foundation.OSAtomicCompareAndSwap32Barrier + import func Foundation.OSAtomicIncrement32Barrier + import func Foundation.OSAtomicDecrement32Barrier + import protocol Foundation.NSCopying typealias AtomicInt = Int32 + fileprivate func castToUInt32Pointer(_ pointer: UnsafeMutablePointer) -> UnsafeMutablePointer { + let raw = UnsafeMutableRawPointer(pointer) + return raw.assumingMemoryBound(to: UInt32.self) + } + let AtomicCompareAndSwap = OSAtomicCompareAndSwap32Barrier let AtomicIncrement = OSAtomicIncrement32Barrier let AtomicDecrement = OSAtomicDecrement32Barrier + func AtomicOr(_ mask: UInt32, _ theValue : UnsafeMutablePointer) -> Int32 { + return OSAtomicOr32OrigBarrier(mask, castToUInt32Pointer(theValue)) + } + func AtomicFlagSet(_ mask: UInt32, _ theValue : UnsafeMutablePointer) -> Bool { + // just used to create a barrier + OSAtomicXor32OrigBarrier(0, castToUInt32Pointer(theValue)) + return (theValue.pointee & Int32(mask)) != 0 + } extension Thread { - static func setThreadLocalStorageValue(_ value: T?, forKey key: String + static func setThreadLocalStorageValue(_ value: T?, forKey key: NSCopying ) { let currentThread = Thread.current let threadDictionary = currentThread.threadDictionary @@ -32,7 +49,7 @@ } } - static func getThreadLocalStorageValueForKey(_ key: String) -> T? { + static func getThreadLocalStorageValueForKey(_ key: NSCopying) -> T? { let currentThread = Thread.current let threadDictionary = currentThread.threadDictionary diff --git a/Pods/RxCocoa/Platform/Platform.Linux.swift b/Pods/RxCocoa/Platform/Platform.Linux.swift index ae5a49d..5cd07e2 100644 --- a/Pods/RxCocoa/Platform/Platform.Linux.swift +++ b/Pods/RxCocoa/Platform/Platform.Linux.swift @@ -7,20 +7,16 @@ // #if os(Linux) - //////////////////////////////////////////////////////////////////////////////// - // This is not the greatest API in the world, this is just a tribute. - // !!! Proof of concept until libdispatch becomes operational. !!! - //////////////////////////////////////////////////////////////////////////////// - import Foundation import XCTest import Glibc import SwiftShims + import class Foundation.Thread final class AtomicInt { typealias IntegerLiteralType = Int fileprivate var value: Int32 = 0 - fileprivate var _lock = NSRecursiveLock() + fileprivate var _lock = RecursiveLock() func lock() { _lock.lock() @@ -48,6 +44,18 @@ return lhs.value == rhs } + func AtomicFlagSet(_ mask: UInt32, _ atomic: inout AtomicInt) -> Bool { + atomic.lock(); defer { atomic.unlock() } + return (atomic.value & Int32(mask)) != 0 + } + + func AtomicOr(_ mask: UInt32, _ atomic: inout AtomicInt) -> Int32 { + atomic.lock(); defer { atomic.unlock() } + let value = atomic.value + atomic.value |= Int32(mask) + return value + } + func AtomicIncrement(_ atomic: inout AtomicInt) -> Int32 { atomic.lock(); defer { atomic.unlock() } atomic.value += 1 diff --git a/Pods/RxCocoa/Platform/RecursiveLock.swift b/Pods/RxCocoa/Platform/RecursiveLock.swift new file mode 100644 index 0000000..10b9bbb --- /dev/null +++ b/Pods/RxCocoa/Platform/RecursiveLock.swift @@ -0,0 +1,34 @@ +// +// RecursiveLock.swift +// Platform +// +// Created by Krunoslav Zaher on 12/18/16. +// Copyright © 2016 Krunoslav Zaher. All rights reserved. +// + +import Foundation + +#if TRACE_RESOURCES + class RecursiveLock: NSRecursiveLock { + override init() { + _ = Resources.incrementTotal() + super.init() + } + + override func lock() { + super.lock() + _ = Resources.incrementTotal() + } + + override func unlock() { + super.unlock() + _ = Resources.decrementTotal() + } + + deinit { + _ = Resources.decrementTotal() + } + } +#else + typealias RecursiveLock = NSRecursiveLock +#endif diff --git a/Pods/RxCocoa/README.md b/Pods/RxCocoa/README.md index c80e351..dce9a23 100644 --- a/Pods/RxCocoa/README.md +++ b/Pods/RxCocoa/README.md @@ -45,7 +45,7 @@ KVO observing, async operations and streams are all unified under [abstraction o ###### ... interact -* All of this is great, but it would be nice to talk with other people using RxSwift and exchange experiences.
[![Slack channel](http://rxswift-slack.herokuapp.com/badge.svg)](http://slack.rxswift.org) [Join Slack Channel](http://rxswift-slack.herokuapp.com) +* All of this is great, but it would be nice to talk with other people using RxSwift and exchange experiences.
[![Slack channel](http://rxswift-slack.herokuapp.com/badge.svg)](http://rxswift-slack.herokuapp.com/) [Join Slack Channel](http://rxswift-slack.herokuapp.com) * Report a problem using the library. [Open an Issue With Bug Template](.github/ISSUE_TEMPLATE.md) * Request a new feature. [Open an Issue With Feature Request Template](Documentation/NewFeatureRequestTemplate.md) @@ -102,7 +102,7 @@ searchResults cell.textLabel?.text = repository.name cell.detailTextLabel?.text = repository.url } - .addDisposableTo(disposeBag) + .disposed(by: disposeBag) @@ -126,7 +126,7 @@ Open Rx.xcworkspace, choose `RxExample` and hit run. This method will build ever **Tested with `pod --version`: `1.1.1`** -``` +```ruby # Podfile use_frameworks! @@ -144,7 +144,7 @@ end Replace `YOUR_TARGET_NAME` and then, in the `Podfile` directory, type: -``` +```bash $ pod install ``` @@ -158,7 +158,7 @@ Add this to `Cartfile` github "ReactiveX/RxSwift" ~> 3.0 ``` -``` +```bash $ carthage update ``` @@ -168,7 +168,7 @@ $ carthage update Create a `Package.swift` file. -``` +```swift import PackageDescription let package = Package( @@ -180,7 +180,7 @@ let package = Package( ) ``` -``` +```bash $ swift build ``` @@ -188,7 +188,7 @@ $ swift build * Add RxSwift as a submodule -``` +```bash $ git submodule add git@github.com:ReactiveX/RxSwift.git ``` diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/ControlEvent.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/ControlEvent.swift index ef8d430..9c9a19b 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/ControlEvent.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/ControlEvent.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/ControlProperty.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/ControlProperty.swift index 6cb2c61..3923077 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/ControlProperty.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/ControlProperty.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/ControlEvent+Driver.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/ControlEvent+Driver.swift index ca73235..8edf2a9 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/ControlEvent+Driver.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/ControlEvent+Driver.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/ControlProperty+Driver.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/ControlProperty+Driver.swift index a8a59e2..a801003 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/ControlProperty+Driver.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/ControlProperty+Driver.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/Driver+Subscription.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/Driver+Subscription.swift index d04007d..3e7ce89 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/Driver+Subscription.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/Driver+Subscription.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/Driver.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/Driver.swift index b31c2b5..2a25b7f 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/Driver.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/Driver.swift @@ -6,7 +6,6 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif @@ -72,6 +71,8 @@ public func driveOnScheduler(_ scheduler: SchedulerType, action: () -> ()) { #if os(Linux) import Glibc +#else + import func Foundation.arc4random #endif func _forceCompilerToStopDoingInsaneOptimizationsThatBreakCode(_ scheduler: SchedulerType) { diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/ObservableConvertibleType+Driver.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/ObservableConvertibleType+Driver.swift index ef97b0e..f5e84d8 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/ObservableConvertibleType+Driver.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/ObservableConvertibleType+Driver.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/Variable+Driver.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/Variable+Driver.swift index 9f9b21d..7f20063 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/Variable+Driver.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/Variable+Driver.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/ObservableConvertibleType+SharedSequence.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/ObservableConvertibleType+SharedSequence.swift index 4cb6de5..ce8f71b 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/ObservableConvertibleType+SharedSequence.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/ObservableConvertibleType+SharedSequence.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/SharedSequence+Operators+arity.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/SharedSequence+Operators+arity.swift index e66fc47..8c4ec23 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/SharedSequence+Operators+arity.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/SharedSequence+Operators+arity.swift @@ -7,7 +7,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/SharedSequence+Operators.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/SharedSequence+Operators.swift index d76fbd3..e1e8ffd 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/SharedSequence+Operators.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/SharedSequence+Operators.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif @@ -217,8 +216,51 @@ extension SharedSequenceConvertibleType { } // MARK: merge -extension SharedSequenceConvertibleType where E : SharedSequenceConvertibleType, E.SharingStrategy == SharingStrategy { +extension SharedSequenceConvertibleType { + /** + Merges elements from all observable sequences from collection into a single observable sequence. + + - seealso: [merge operator on reactivex.io](http://reactivex.io/documentation/operators/merge.html) + + - parameter sources: Collection of observable sequences to merge. + - returns: The observable sequence that merges the elements of the observable sequences. + */ + public static func merge(_ sources: C) -> SharedSequence + where C.Iterator.Element == SharedSequence { + let source = Observable.merge(sources.map { $0.asObservable() }) + return SharedSequence(source) + } + + /** + Merges elements from all observable sequences from array into a single observable sequence. + + - seealso: [merge operator on reactivex.io](http://reactivex.io/documentation/operators/merge.html) + + - parameter sources: Array of observable sequences to merge. + - returns: The observable sequence that merges the elements of the observable sequences. + */ + public static func merge(_ sources: [SharedSequence]) -> SharedSequence { + let source = Observable.merge(sources.map { $0.asObservable() }) + return SharedSequence(source) + } + + /** + Merges elements from all observable sequences into a single observable sequence. + + - seealso: [merge operator on reactivex.io](http://reactivex.io/documentation/operators/merge.html) + + - parameter sources: Collection of observable sequences to merge. + - returns: The observable sequence that merges the elements of the observable sequences. + */ + public static func merge(_ sources: SharedSequence...) -> SharedSequence { + let source = Observable.merge(sources.map { $0.asObservable() }) + return SharedSequence(source) + } +} + +// MARK: merge +extension SharedSequenceConvertibleType where E : SharedSequenceConvertibleType, E.SharingStrategy == SharingStrategy { /** Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/SharedSequence.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/SharedSequence.swift index a0a4162..559dcdf 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/SharedSequence.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/SharedSequence.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif @@ -109,7 +108,7 @@ extension SharedSequence { - returns: An observable sequence with no elements. */ public static func empty() -> SharedSequence { - return SharedSequence(Observable.empty().subscribeOn(S.scheduler)) + return SharedSequence(raw: Observable.empty().subscribeOn(S.scheduler)) } /** @@ -118,7 +117,7 @@ extension SharedSequence { - returns: An observable sequence whose observers will never get called. */ public static func never() -> SharedSequence { - return SharedSequence(Observable.never()) + return SharedSequence(raw: Observable.never()) } /** @@ -128,7 +127,7 @@ extension SharedSequence { - returns: An observable sequence containing the single specified element. */ public static func just(_ element: E) -> SharedSequence { - return SharedSequence(Observable.just(element).subscribeOn(S.scheduler)) + return SharedSequence(raw: Observable.just(element).subscribeOn(S.scheduler)) } /** diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/Variable+SharedSequence.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/Variable+SharedSequence.swift index 904f5f7..3bf580d 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/Variable+SharedSequence.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/Variable+SharedSequence.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/CocoaUnits/UIBindingObserver.swift b/Pods/RxCocoa/RxCocoa/CocoaUnits/UIBindingObserver.swift index 087c74c..cc71117 100644 --- a/Pods/RxCocoa/RxCocoa/CocoaUnits/UIBindingObserver.swift +++ b/Pods/RxCocoa/RxCocoa/CocoaUnits/UIBindingObserver.swift @@ -6,7 +6,6 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import Foundation import Dispatch #if !RX_NO_MODULE import RxSwift @@ -22,7 +21,7 @@ Observer that enforces interface binding rules: In case event binding is attempted from non main dispatch queue, event binding will be dispatched async to main dispatch queue. */ -public class UIBindingObserver : ObserverType where UIElementType: AnyObject { +public final class UIBindingObserver : ObserverType where UIElementType: AnyObject { public typealias E = Value weak var UIElement: UIElementType? diff --git a/Pods/RxCocoa/RxCocoa/Common/ControlTarget.swift b/Pods/RxCocoa/RxCocoa/Common/ControlTarget.swift index 42b7db9..5a7fdde 100644 --- a/Pods/RxCocoa/RxCocoa/Common/ControlTarget.swift +++ b/Pods/RxCocoa/RxCocoa/Common/ControlTarget.swift @@ -8,7 +8,6 @@ #if os(iOS) || os(tvOS) || os(macOS) -import Foundation #if !RX_NO_MODULE import RxSwift #endif @@ -25,7 +24,7 @@ import RxSwift #endif // This should be only used from `MainScheduler` -class ControlTarget: RxTarget { +final class ControlTarget: RxTarget { typealias Callback = (Control) -> Void let selector: Selector = #selector(ControlTarget.eventHandler(_:)) diff --git a/Pods/RxCocoa/RxCocoa/Common/DelegateProxy.swift b/Pods/RxCocoa/RxCocoa/Common/DelegateProxy.swift index 3634ffc..8b3e850 100644 --- a/Pods/RxCocoa/RxCocoa/Common/DelegateProxy.swift +++ b/Pods/RxCocoa/RxCocoa/Common/DelegateProxy.swift @@ -8,7 +8,6 @@ #if !os(Linux) -import Foundation #if !RX_NO_MODULE import RxSwift #if SWIFT_PACKAGE && !os(Linux) @@ -16,16 +15,16 @@ import Foundation #endif #endif -var delegateAssociatedTag: UInt8 = 0 -var dataSourceAssociatedTag: UInt8 = 0 +var delegateAssociatedTag: UnsafeRawPointer = UnsafeRawPointer(UnsafeMutablePointer.allocate(capacity: 1)) +var dataSourceAssociatedTag: UnsafeRawPointer = UnsafeRawPointer(UnsafeMutablePointer.allocate(capacity: 1)) /// Base class for `DelegateProxyType` protocol. /// /// This implementation is not thread safe and can be used only from one thread (Main thread). open class DelegateProxy : _RXDelegateProxy { - private var sentMessageForSelector = [Selector: PublishSubject<[Any]>]() - private var methodInvokedForSelector = [Selector: PublishSubject<[Any]>]() + private var sentMessageForSelector = [Selector: MessageDispatcher]() + private var methodInvokedForSelector = [Selector: MessageDispatcher]() /// Parent object associated with delegate proxy. weak private(set) var parentObject: AnyObject? @@ -86,17 +85,18 @@ open class DelegateProxy : _RXDelegateProxy { - returns: Observable sequence of arguments passed to `selector` method. */ open func sentMessage(_ selector: Selector) -> Observable<[Any]> { + MainScheduler.ensureExecutingOnScheduler() checkSelectorIsObservable(selector) let subject = sentMessageForSelector[selector] if let subject = subject { - return subject + return subject.asObservable() } else { - let subject = PublishSubject<[Any]>() + let subject = MessageDispatcher(delegateProxy: self) sentMessageForSelector[selector] = subject - return subject + return subject.asObservable() } } @@ -143,17 +143,18 @@ open class DelegateProxy : _RXDelegateProxy { - returns: Observable sequence of arguments passed to `selector` method. */ open func methodInvoked(_ selector: Selector) -> Observable<[Any]> { + MainScheduler.ensureExecutingOnScheduler() checkSelectorIsObservable(selector) let subject = methodInvokedForSelector[selector] if let subject = subject { - return subject + return subject.asObservable() } else { - let subject = PublishSubject<[Any]>() + let subject = MessageDispatcher(delegateProxy: self) methodInvokedForSelector[selector] = subject - return subject + return subject.asObservable() } } @@ -162,15 +163,10 @@ open class DelegateProxy : _RXDelegateProxy { if hasWiredImplementation(for: selector) { print("Delegate proxy is already implementing `\(selector)`, a more performant way of registering might exist.") + return } - // It's important to see if super class reponds to selector and not self, - // because super class (_RxDelegateProxy) returns all methods delegate proxy - // can respond to. - // Because of https://github.com/ReactiveX/RxSwift/issues/907 , and possibly - // some other reasons, subclasses could overrride `responds(to:)`, but it shouldn't matter - // for this case. - if !super.responds(to: selector) { + guard (self.forwardToDelegate()?.responds(to: selector) ?? false) || voidDelegateMethodsContain(selector) else { rxFatalError("This class doesn't respond to selector \(selector)") } } @@ -189,7 +185,7 @@ open class DelegateProxy : _RXDelegateProxy { /// /// - returns: Associated object tag. open class func delegateAssociatedObjectTag() -> UnsafeRawPointer { - return _pointer(&delegateAssociatedTag) + return delegateAssociatedTag } /// Initializes new instance of delegate proxy. @@ -224,7 +220,11 @@ open class DelegateProxy : _RXDelegateProxy { /// - parameter forwardToDelegate: Reference of delegate that receives all messages through `self`. /// - parameter retainDelegate: Should `self` retain `forwardToDelegate`. open func setForwardToDelegate(_ delegate: AnyObject?, retainDelegate: Bool) { + #if DEBUG // 4.0 all configurations + MainScheduler.ensureExecutingOnScheduler() + #endif self._setForward(toDelegate: delegate, retainDelegate: retainDelegate) + self.reset() } /// Returns reference of normal delegate that receives all forwarded messages @@ -234,7 +234,36 @@ open class DelegateProxy : _RXDelegateProxy { open func forwardToDelegate() -> AnyObject? { return self._forwardToDelegate } + + private func hasObservers(selector: Selector) -> Bool { + return (sentMessageForSelector[selector]?.hasObservers ?? false) + || (methodInvokedForSelector[selector]?.hasObservers ?? false) + } + override open func responds(to aSelector: Selector!) -> Bool { + return super.responds(to: aSelector) + || (self._forwardToDelegate?.responds(to: aSelector) ?? false) + || (self.voidDelegateMethodsContain(aSelector) && self.hasObservers(selector: aSelector)) + } + + internal func reset() { + guard let delegateProxySelf = self as? DelegateProxyType else { + rxFatalErrorInDebug("\(self) doesn't implement delegate proxy type.") + return + } + + guard let parentObject = self.parentObject else { return } + + let selfType = type(of: delegateProxySelf) + + let maybeCurrentDelegate = selfType.currentDelegateFor(parentObject) + + if maybeCurrentDelegate === self { + selfType.setCurrentDelegate(nil, toObject: parentObject) + selfType.setCurrentDelegate(self, toObject: parentObject) + } + } + deinit { for v in sentMessageForSelector.values { v.on(.completed) @@ -246,13 +275,37 @@ open class DelegateProxy : _RXDelegateProxy { _ = Resources.decrementTotal() #endif } - - // MARK: Pointer - - class func _pointer(_ p: UnsafeRawPointer) -> UnsafeRawPointer { - return p - } } -#endif +fileprivate let mainScheduler = MainScheduler() +fileprivate final class MessageDispatcher { + private let dispatcher: PublishSubject<[Any]> + private let result: Observable<[Any]> + + init(delegateProxy _delegateProxy: DelegateProxy) { + weak var weakDelegateProxy = _delegateProxy + + let dispatcher = PublishSubject<[Any]>() + self.dispatcher = dispatcher + + self.result = dispatcher + .do(onSubscribed: { weakDelegateProxy?.reset() }, onDispose: { weakDelegateProxy?.reset() }) + .share() + .subscribeOn(mainScheduler) + } + + var on: (Event<[Any]>) -> () { + return self.dispatcher.on + } + + var hasObservers: Bool { + return self.dispatcher.hasObservers + } + + func asObservable() -> Observable<[Any]> { + return self.result + } +} + +#endif diff --git a/Pods/RxCocoa/RxCocoa/Common/DelegateProxyType.swift b/Pods/RxCocoa/RxCocoa/Common/DelegateProxyType.swift index 91cf807..7766bd6 100644 --- a/Pods/RxCocoa/RxCocoa/Common/DelegateProxyType.swift +++ b/Pods/RxCocoa/RxCocoa/Common/DelegateProxyType.swift @@ -8,7 +8,6 @@ #if !os(Linux) -import Foundation #if !RX_NO_MODULE import RxSwift #endif @@ -177,7 +176,7 @@ extension DelegateProxyType { assert(Self.currentDelegateFor(object) === proxy) assert(proxy.forwardToDelegate() === currentDelegate) } - + return proxy } @@ -201,19 +200,12 @@ extension DelegateProxyType { proxy.setForwardToDelegate(forwardDelegate, retainDelegate: retainDelegate) - // refresh properties after delegate is set - // some views like UITableView cache `respondsToSelector` - Self.setCurrentDelegate(nil, toObject: object) - Self.setCurrentDelegate(proxy, toObject: object) - - assert(proxy.forwardToDelegate() === forwardDelegate, "Setting of delegate failed:\ncurrent:\n\(proxy.forwardToDelegate())\nexpected:\n\(forwardDelegate)") - return Disposables.create { MainScheduler.ensureExecutingOnScheduler() let delegate: AnyObject? = weakForwardDelegate - assert(delegate == nil || proxy.forwardToDelegate() === delegate, "Delegate was changed from time it was first set. Current \(proxy.forwardToDelegate()), and it should have been \(proxy)") + assert(delegate == nil || proxy.forwardToDelegate() === delegate, "Delegate was changed from time it was first set. Current \(String(describing: proxy.forwardToDelegate())), and it should have been \(proxy)") proxy.setForwardToDelegate(nil, retainDelegate: retainDelegate) } @@ -243,7 +235,7 @@ extension DelegateProxyType { .subscribe { [weak object] (event: Event) in if let object = object { - assert(proxy === P.currentDelegateFor(object), "Proxy changed from the time it was first set.\nOriginal: \(proxy)\nExisting: \(P.currentDelegateFor(object))") + assert(proxy === P.currentDelegateFor(object), "Proxy changed from the time it was first set.\nOriginal: \(proxy)\nExisting: \(String(describing: P.currentDelegateFor(object)))") } binding(proxy, event) diff --git a/Pods/RxCocoa/RxCocoa/Common/NSLayoutConstraint+Rx.swift b/Pods/RxCocoa/RxCocoa/Common/NSLayoutConstraint+Rx.swift index 96db728..8dfa956 100644 --- a/Pods/RxCocoa/RxCocoa/Common/NSLayoutConstraint+Rx.swift +++ b/Pods/RxCocoa/RxCocoa/Common/NSLayoutConstraint+Rx.swift @@ -8,8 +8,6 @@ #if !os(Linux) -import Foundation - #if os(macOS) import Cocoa #else diff --git a/Pods/RxCocoa/RxCocoa/Common/Observable+Bind.swift b/Pods/RxCocoa/RxCocoa/Common/Observable+Bind.swift index e41a40a..378c177 100644 --- a/Pods/RxCocoa/RxCocoa/Common/Observable+Bind.swift +++ b/Pods/RxCocoa/RxCocoa/Common/Observable+Bind.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/Common/RxCocoaObjCRuntimeError+Extensions.swift b/Pods/RxCocoa/RxCocoa/Common/RxCocoaObjCRuntimeError+Extensions.swift index e368b03..529694b 100644 --- a/Pods/RxCocoa/RxCocoa/Common/RxCocoaObjCRuntimeError+Extensions.swift +++ b/Pods/RxCocoa/RxCocoa/Common/RxCocoaObjCRuntimeError+Extensions.swift @@ -6,7 +6,6 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import Foundation #if !RX_NO_MODULE #if SWIFT_PACKAGE && !DISABLE_SWIZZLING && !os(Linux) import RxCocoaRuntime diff --git a/Pods/RxCocoa/RxCocoa/Common/RxTarget.swift b/Pods/RxCocoa/RxCocoa/Common/RxTarget.swift index 804bd91..da1086d 100644 --- a/Pods/RxCocoa/RxCocoa/Common/RxTarget.swift +++ b/Pods/RxCocoa/RxCocoa/Common/RxTarget.swift @@ -6,7 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import class Foundation.NSObject + #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift b/Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift index 5c3cf3c..1532baa 100644 --- a/Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift +++ b/Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift @@ -6,7 +6,7 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import Foundation +import struct Foundation.IndexPath /// Data source with access to underlying sectioned model. public protocol SectionedViewDataSourceType { diff --git a/Pods/RxCocoa/RxCocoa/Common/TextInput.swift b/Pods/RxCocoa/RxCocoa/Common/TextInput.swift index 5f139ea..7fd62bd 100644 --- a/Pods/RxCocoa/RxCocoa/Common/TextInput.swift +++ b/Pods/RxCocoa/RxCocoa/Common/TextInput.swift @@ -6,8 +6,6 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import Foundation - #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift b/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift index 61ef1db..c101d66 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift +++ b/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift @@ -8,11 +8,12 @@ #if !os(Linux) -import Foundation #if !RX_NO_MODULE import RxSwift #endif -import CoreGraphics + import CoreGraphics + + import class Foundation.NSValue #if arch(x86_64) || arch(arm64) let CGRectType = "{CGRect={CGPoint=dd}{CGSize=dd}}" diff --git a/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+Swift.swift b/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+Swift.swift index 00d53dd..f65a93e 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+Swift.swift +++ b/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+Swift.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import class Foundation.NSNumber extension Int : KVORepresentable { public typealias KVOType = NSNumber diff --git a/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable.swift b/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable.swift index ad59682..be12b33 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable.swift +++ b/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Type that is KVO representable (KVO mechanism can be used to observe it). public protocol KVORepresentable { /// Associated KVO type. diff --git a/Pods/RxCocoa/RxCocoa/Foundation/Logging.swift b/Pods/RxCocoa/RxCocoa/Foundation/Logging.swift index 8b821ca..0acb9f8 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/Logging.swift +++ b/Pods/RxCocoa/RxCocoa/Foundation/Logging.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import struct Foundation.URLRequest /// Simple logging settings for RxCocoa library. public struct Logging { diff --git a/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx.swift b/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx.swift index 270d16c..85b4a4a 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx.swift +++ b/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx.swift @@ -312,7 +312,7 @@ extension Reactive where Base: AnyObject { #endif -fileprivate class DeallocObservable { +fileprivate final class DeallocObservable { let _subject = ReplaySubject.create(bufferSize:1) init() { @@ -335,7 +335,7 @@ fileprivate protocol KVOObservableProtocol { var options: NSKeyValueObservingOptions { get } } -fileprivate class KVOObserver +fileprivate final class KVOObserver : _RXKVOObserver , Disposable { typealias Callback = (Any?) -> Void @@ -363,7 +363,7 @@ fileprivate class KVOObserver } } -fileprivate class KVOObservable +fileprivate final class KVOObservable : ObservableType , KVOObservableProtocol { typealias E = Element? diff --git a/Pods/RxCocoa/RxCocoa/Foundation/NSNotificationCenter+Rx.swift b/Pods/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift similarity index 89% rename from Pods/RxCocoa/RxCocoa/Foundation/NSNotificationCenter+Rx.swift rename to Pods/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift index 66703d6..883e973 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/NSNotificationCenter+Rx.swift +++ b/Pods/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift @@ -1,12 +1,14 @@ // -// NSNotificationCenter+Rx.swift +// NotificationCenter+Rx.swift // RxCocoa // // Created by Krunoslav Zaher on 5/2/15. // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import class Foundation.NotificationCenter +import struct Foundation.Notification + #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/Foundation/URLSession+Rx.swift b/Pods/RxCocoa/RxCocoa/Foundation/URLSession+Rx.swift index 57d5737..da46a02 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/URLSession+Rx.swift +++ b/Pods/RxCocoa/RxCocoa/Foundation/URLSession+Rx.swift @@ -6,7 +6,24 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import struct Foundation.URL +import struct Foundation.URLRequest +import struct Foundation.Data +import struct Foundation.Date +import struct Foundation.TimeInterval +import class Foundation.HTTPURLResponse +import class Foundation.URLSession +import class Foundation.URLResponse +import class Foundation.JSONSerialization +import class Foundation.NSError +import var Foundation.NSURLErrorCancelled +import var Foundation.NSURLErrorDomain + +#if os(Linux) + // don't know why + import Foundation +#endif + #if !RX_NO_MODULE import RxSwift #endif @@ -71,7 +88,7 @@ fileprivate func convertURLRequestToCurlCommand(_ request: URLRequest) -> String return returnValue } -fileprivate func convertResponseToString(_ data: Data!, _ response: URLResponse!, _ error: NSError!, _ interval: TimeInterval) -> String { +fileprivate func convertResponseToString(_ response: URLResponse?, _ error: NSError?, _ interval: TimeInterval) -> String { let ms = Int(interval * 1000) if let response = response as? HTTPURLResponse { @@ -124,7 +141,7 @@ extension Reactive where Base: URLSession { if Logging.URLRequests(request) { let interval = Date().timeIntervalSince(d ?? Date()) print(convertURLRequestToCurlCommand(request)) - print(convertResponseToString(data, response, error as NSError!, interval)) + print(convertResponseToString(response, error.map { $0 as NSError }, interval)) } guard let response = response, let data = data else { @@ -141,9 +158,7 @@ extension Reactive where Base: URLSession { observer.on(.completed) } - - let t = task - t.resume() + task.resume() return Disposables.create(with: task.cancel) } diff --git a/Pods/RxCocoa/RxCocoa/Runtime/_RXDelegateProxy.m b/Pods/RxCocoa/RxCocoa/Runtime/_RXDelegateProxy.m index d0333a0..36338a5 100644 --- a/Pods/RxCocoa/RxCocoa/Runtime/_RXDelegateProxy.m +++ b/Pods/RxCocoa/RxCocoa/Runtime/_RXDelegateProxy.m @@ -18,11 +18,11 @@ @end -static NSMutableDictionary *forwardableSelectorsPerClass = nil; +static NSMutableDictionary *voidSelectorsPerClass = nil; @implementation _RXDelegateProxy -+(NSSet*)collectSelectorsForProtocol:(Protocol *)protocol { ++(NSSet*)collectVoidSelectorsForProtocol:(Protocol *)protocol { NSMutableSet *selectors = [NSMutableSet set]; unsigned int protocolMethodCount = 0; @@ -41,7 +41,7 @@ static NSMutableDictionary *forwardableSelectorsPerClass = nil; Protocol * __unsafe_unretained * pSubprotocols = protocol_copyProtocolList(protocol, &numberOfBaseProtocols); for (unsigned int i = 0; i < numberOfBaseProtocols; ++i) { - [selectors unionSet:[self collectSelectorsForProtocol:pSubprotocols[i]]]; + [selectors unionSet:[self collectVoidSelectorsForProtocol:pSubprotocols[i]]]; } free(pSubprotocols); @@ -51,11 +51,11 @@ static NSMutableDictionary *forwardableSelectorsPerClass = nil; +(void)initialize { @synchronized (_RXDelegateProxy.class) { - if (forwardableSelectorsPerClass == nil) { - forwardableSelectorsPerClass = [[NSMutableDictionary alloc] init]; + if (voidSelectorsPerClass == nil) { + voidSelectorsPerClass = [[NSMutableDictionary alloc] init]; } - NSMutableSet *allowedSelectors = [NSMutableSet set]; + NSMutableSet *voidSelectors = [NSMutableSet set]; #define CLASS_HIERARCHY_MAX_DEPTH 100 @@ -70,8 +70,8 @@ static NSMutableDictionary *forwardableSelectorsPerClass = nil; Protocol *__unsafe_unretained *pProtocols = class_copyProtocolList(targetClass, &count); for (unsigned int i = 0; i < count; i++) { - NSSet *selectorsForProtocol = [self collectSelectorsForProtocol:pProtocols[i]]; - [allowedSelectors unionSet:selectorsForProtocol]; + NSSet *selectorsForProtocol = [self collectVoidSelectorsForProtocol:pProtocols[i]]; + [voidSelectors unionSet:selectorsForProtocol]; } free(pProtocols); @@ -84,7 +84,7 @@ static NSMutableDictionary *forwardableSelectorsPerClass = nil; #endif } - forwardableSelectorsPerClass[CLASS_VALUE(self)] = allowedSelectors; + voidSelectorsPerClass[CLASS_VALUE(self)] = voidSelectors; } } @@ -106,20 +106,14 @@ static NSMutableDictionary *forwardableSelectorsPerClass = nil; return [super respondsToSelector:selector]; } --(BOOL)canRespondToSelector:(SEL)selector { +-(BOOL)voidDelegateMethodsContain:(SEL)selector { @synchronized(_RXDelegateProxy.class) { - NSSet *allowedMethods = forwardableSelectorsPerClass[CLASS_VALUE(self.class)]; - NSAssert(allowedMethods != nil, @"Set of allowed methods not initialized"); - return [allowedMethods containsObject:SEL_VALUE(selector)]; + NSSet *voidSelectors = voidSelectorsPerClass[CLASS_VALUE(self.class)]; + NSAssert(voidSelectors != nil, @"Set of allowed methods not initialized"); + return [voidSelectors containsObject:SEL_VALUE(selector)]; } } --(BOOL)respondsToSelector:(SEL)aSelector { - return [super respondsToSelector:aSelector] - || [self._forwardToDelegate respondsToSelector:aSelector] - || [self canRespondToSelector:aSelector]; -} - -(void)forwardInvocation:(NSInvocation *)anInvocation { BOOL isVoid = RX_is_method_signature_void(anInvocation.methodSignature); NSArray *arguments = nil; diff --git a/Pods/RxCocoa/RxCocoa/Runtime/include/_RXDelegateProxy.h b/Pods/RxCocoa/RxCocoa/Runtime/include/_RXDelegateProxy.h index 523e7ae..f82d612 100644 --- a/Pods/RxCocoa/RxCocoa/Runtime/include/_RXDelegateProxy.h +++ b/Pods/RxCocoa/RxCocoa/Runtime/include/_RXDelegateProxy.h @@ -17,6 +17,7 @@ NS_ASSUME_NONNULL_BEGIN -(void)_setForwardToDelegate:(id __nullable)forwardToDelegate retainDelegate:(BOOL)retainDelegate; -(BOOL)hasWiredImplementationForSelector:(SEL)selector; +-(BOOL)voidDelegateMethodsContain:(SEL)selector; -(void)_sentMessage:(SEL)selector withArguments:(NSArray*)arguments; -(void)_methodInvoked:(SEL)selector withArguments:(NSArray*)arguments; diff --git a/Pods/RxCocoa/RxCocoa/RxCocoa.swift b/Pods/RxCocoa/RxCocoa/RxCocoa.swift index e4a646c..37fb82e 100644 --- a/Pods/RxCocoa/RxCocoa/RxCocoa.swift +++ b/Pods/RxCocoa/RxCocoa/RxCocoa.swift @@ -6,7 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import class Foundation.NSNull + #if !RX_NO_MODULE import RxSwift #endif @@ -72,14 +73,22 @@ func bindingErrorToInterface(_ error: Swift.Error) { #endif } -// MARK: Abstract methods - -func rxAbstractMethodWithMessage(_ message: String) -> Swift.Never { - rxFatalError(message) +/// Swift does not implement abstract methods. This method is used as a runtime check to ensure that methods which intended to be abstract (i.e., they should be implemented in subclasses) are not called directly on the superclass. +func rxAbstractMethod(message: String = "Abstract method", file: StaticString = #file, line: UInt = #line) -> Swift.Never { + rxFatalError(message, file: file, line: line) } -func rxAbstractMethod() -> Swift.Never { - rxFatalError("Abstract method") +func rxFatalError(_ lastMessage: @autoclosure () -> String, file: StaticString = #file, line: UInt = #line) -> Swift.Never { + // The temptation to comment this line is great, but please don't, it's for your own good. The choice is yours. + fatalError(lastMessage(), file: file, line: line) +} + +func rxFatalErrorInDebug(_ lastMessage: @autoclosure () -> String, file: StaticString = #file, line: UInt = #line) { + #if DEBUG + fatalError(lastMessage(), file: file, line: line) + #else + print("\(file):\(line): \(lastMessage())") + #endif } // MARK: casts or fatal error diff --git a/Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift b/Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift index 87a1db9..f86a030 100644 --- a/Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift +++ b/Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift @@ -8,7 +8,6 @@ #if os(macOS) -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/macOS/NSControl+Rx.swift b/Pods/RxCocoa/RxCocoa/macOS/NSControl+Rx.swift index e63b911..6b06692 100644 --- a/Pods/RxCocoa/RxCocoa/macOS/NSControl+Rx.swift +++ b/Pods/RxCocoa/RxCocoa/macOS/NSControl+Rx.swift @@ -8,7 +8,6 @@ #if os(macOS) -import Foundation import Cocoa #if !RX_NO_MODULE import RxSwift diff --git a/Pods/RxCocoa/RxCocoa/macOS/NSImageView+Rx.swift b/Pods/RxCocoa/RxCocoa/macOS/NSImageView+Rx.swift index 676f043..c0787d9 100644 --- a/Pods/RxCocoa/RxCocoa/macOS/NSImageView+Rx.swift +++ b/Pods/RxCocoa/RxCocoa/macOS/NSImageView+Rx.swift @@ -8,7 +8,6 @@ #if os(macOS) -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift b/Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift index e987e62..cc7a050 100644 --- a/Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift +++ b/Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift @@ -8,7 +8,6 @@ #if os(macOS) -import Foundation #if !RX_NO_MODULE import RxSwift #endif diff --git a/Pods/RxCocoa/RxCocoa/macOS/NSTextField+Rx.swift b/Pods/RxCocoa/RxCocoa/macOS/NSTextField+Rx.swift index a20c4b4..dc52d73 100644 --- a/Pods/RxCocoa/RxCocoa/macOS/NSTextField+Rx.swift +++ b/Pods/RxCocoa/RxCocoa/macOS/NSTextField+Rx.swift @@ -8,7 +8,6 @@ #if os(macOS) -import Foundation import Cocoa #if !RX_NO_MODULE import RxSwift diff --git a/Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift b/Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift index 74bb16a..f2dbeb7 100644 --- a/Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift +++ b/Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift @@ -8,7 +8,6 @@ #if os(macOS) - import Foundation import Cocoa #if !RX_NO_MODULE import RxSwift diff --git a/Pods/RxSwift/Platform/DataStructures/Bag.swift b/Pods/RxSwift/Platform/DataStructures/Bag.swift index 4ab6f94..897cdad 100644 --- a/Pods/RxSwift/Platform/DataStructures/Bag.swift +++ b/Pods/RxSwift/Platform/DataStructures/Bag.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation import Swift let arrayDictionaryMaxSize = 30 @@ -44,6 +43,9 @@ struct Bag : CustomDebugStringConvertible { var _key0: BagKey? = nil var _value0: T? = nil + // then fill "array dictionary" + var _pairs = ContiguousArray() + // last is sparse dictionary var _dictionary: [BagKey : T]? = nil @@ -77,6 +79,11 @@ struct Bag : CustomDebugStringConvertible { return key } + if _pairs.count < arrayDictionaryMaxSize { + _pairs.append(key: key, value: element) + return key + } + if _dictionary == nil { _dictionary = [:] } @@ -89,7 +96,7 @@ struct Bag : CustomDebugStringConvertible { /// - returns: Number of elements in bag. var count: Int { let dictionaryCount: Int = _dictionary?.count ?? 0 - return (_value0 != nil ? 1 : 0) + dictionaryCount + return (_value0 != nil ? 1 : 0) + _pairs.count + dictionaryCount } /// Removes all elements from bag and clears capacity. @@ -97,6 +104,7 @@ struct Bag : CustomDebugStringConvertible { _key0 = nil _value0 = nil + _pairs.removeAll(keepingCapacity: false) _dictionary?.removeAll(keepingCapacity: false) } @@ -118,6 +126,14 @@ struct Bag : CustomDebugStringConvertible { return existingObject } + for i in 0 ..< _pairs.count { + if _pairs[i].key == key { + let value = _pairs[i].value + _pairs.remove(at: i) + return value + } + } + return nil } } @@ -148,6 +164,10 @@ extension Bag { action(value0) } + for i in 0 ..< _pairs.count { + action(_pairs[i].value) + } + if dictionary?.count ?? 0 > 0 { for element in dictionary!.values { action(element) diff --git a/Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift b/Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift index 5fad383..5a573a0 100644 --- a/Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift +++ b/Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Sequence that repeats `repeatedValue` infinite number of times. struct InfiniteSequence : Sequence { typealias Element = E diff --git a/Pods/RxSwift/Platform/DataStructures/PriorityQueue.swift b/Pods/RxSwift/Platform/DataStructures/PriorityQueue.swift index 725feef..fae70a0 100644 --- a/Pods/RxSwift/Platform/DataStructures/PriorityQueue.swift +++ b/Pods/RxSwift/Platform/DataStructures/PriorityQueue.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - struct PriorityQueue { private let _hasHigherPriority: (Element, Element) -> Bool private let _isEqual: (Element, Element) -> Bool diff --git a/Pods/RxSwift/Platform/DataStructures/Queue.swift b/Pods/RxSwift/Platform/DataStructures/Queue.swift index cfe3df4..d05726c 100644 --- a/Pods/RxSwift/Platform/DataStructures/Queue.swift +++ b/Pods/RxSwift/Platform/DataStructures/Queue.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /** Data structure that represents queue. diff --git a/Pods/RxSwift/Platform/DispatchQueue+Extensions.swift b/Pods/RxSwift/Platform/DispatchQueue+Extensions.swift index 0df1ce7..552314a 100644 --- a/Pods/RxSwift/Platform/DispatchQueue+Extensions.swift +++ b/Pods/RxSwift/Platform/DispatchQueue+Extensions.swift @@ -6,7 +6,6 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import Foundation import Dispatch extension DispatchQueue { diff --git a/Pods/RxSwift/Platform/Platform.Darwin.swift b/Pods/RxSwift/Platform/Platform.Darwin.swift index e0d7f0d..d9e744f 100644 --- a/Pods/RxSwift/Platform/Platform.Darwin.swift +++ b/Pods/RxSwift/Platform/Platform.Darwin.swift @@ -9,17 +9,34 @@ #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS) import Darwin - import Foundation + import class Foundation.Thread + import func Foundation.OSAtomicCompareAndSwap32Barrier + import func Foundation.OSAtomicIncrement32Barrier + import func Foundation.OSAtomicDecrement32Barrier + import protocol Foundation.NSCopying typealias AtomicInt = Int32 + fileprivate func castToUInt32Pointer(_ pointer: UnsafeMutablePointer) -> UnsafeMutablePointer { + let raw = UnsafeMutableRawPointer(pointer) + return raw.assumingMemoryBound(to: UInt32.self) + } + let AtomicCompareAndSwap = OSAtomicCompareAndSwap32Barrier let AtomicIncrement = OSAtomicIncrement32Barrier let AtomicDecrement = OSAtomicDecrement32Barrier + func AtomicOr(_ mask: UInt32, _ theValue : UnsafeMutablePointer) -> Int32 { + return OSAtomicOr32OrigBarrier(mask, castToUInt32Pointer(theValue)) + } + func AtomicFlagSet(_ mask: UInt32, _ theValue : UnsafeMutablePointer) -> Bool { + // just used to create a barrier + OSAtomicXor32OrigBarrier(0, castToUInt32Pointer(theValue)) + return (theValue.pointee & Int32(mask)) != 0 + } extension Thread { - static func setThreadLocalStorageValue(_ value: T?, forKey key: String + static func setThreadLocalStorageValue(_ value: T?, forKey key: NSCopying ) { let currentThread = Thread.current let threadDictionary = currentThread.threadDictionary @@ -32,7 +49,7 @@ } } - static func getThreadLocalStorageValueForKey(_ key: String) -> T? { + static func getThreadLocalStorageValueForKey(_ key: NSCopying) -> T? { let currentThread = Thread.current let threadDictionary = currentThread.threadDictionary diff --git a/Pods/RxSwift/Platform/Platform.Linux.swift b/Pods/RxSwift/Platform/Platform.Linux.swift index ae5a49d..5cd07e2 100644 --- a/Pods/RxSwift/Platform/Platform.Linux.swift +++ b/Pods/RxSwift/Platform/Platform.Linux.swift @@ -7,20 +7,16 @@ // #if os(Linux) - //////////////////////////////////////////////////////////////////////////////// - // This is not the greatest API in the world, this is just a tribute. - // !!! Proof of concept until libdispatch becomes operational. !!! - //////////////////////////////////////////////////////////////////////////////// - import Foundation import XCTest import Glibc import SwiftShims + import class Foundation.Thread final class AtomicInt { typealias IntegerLiteralType = Int fileprivate var value: Int32 = 0 - fileprivate var _lock = NSRecursiveLock() + fileprivate var _lock = RecursiveLock() func lock() { _lock.lock() @@ -48,6 +44,18 @@ return lhs.value == rhs } + func AtomicFlagSet(_ mask: UInt32, _ atomic: inout AtomicInt) -> Bool { + atomic.lock(); defer { atomic.unlock() } + return (atomic.value & Int32(mask)) != 0 + } + + func AtomicOr(_ mask: UInt32, _ atomic: inout AtomicInt) -> Int32 { + atomic.lock(); defer { atomic.unlock() } + let value = atomic.value + atomic.value |= Int32(mask) + return value + } + func AtomicIncrement(_ atomic: inout AtomicInt) -> Int32 { atomic.lock(); defer { atomic.unlock() } atomic.value += 1 diff --git a/Pods/RxSwift/Platform/RecursiveLock.swift b/Pods/RxSwift/Platform/RecursiveLock.swift new file mode 100644 index 0000000..10b9bbb --- /dev/null +++ b/Pods/RxSwift/Platform/RecursiveLock.swift @@ -0,0 +1,34 @@ +// +// RecursiveLock.swift +// Platform +// +// Created by Krunoslav Zaher on 12/18/16. +// Copyright © 2016 Krunoslav Zaher. All rights reserved. +// + +import Foundation + +#if TRACE_RESOURCES + class RecursiveLock: NSRecursiveLock { + override init() { + _ = Resources.incrementTotal() + super.init() + } + + override func lock() { + super.lock() + _ = Resources.incrementTotal() + } + + override func unlock() { + super.unlock() + _ = Resources.decrementTotal() + } + + deinit { + _ = Resources.decrementTotal() + } + } +#else + typealias RecursiveLock = NSRecursiveLock +#endif diff --git a/Pods/RxSwift/README.md b/Pods/RxSwift/README.md index c80e351..dce9a23 100644 --- a/Pods/RxSwift/README.md +++ b/Pods/RxSwift/README.md @@ -45,7 +45,7 @@ KVO observing, async operations and streams are all unified under [abstraction o ###### ... interact -* All of this is great, but it would be nice to talk with other people using RxSwift and exchange experiences.
[![Slack channel](http://rxswift-slack.herokuapp.com/badge.svg)](http://slack.rxswift.org) [Join Slack Channel](http://rxswift-slack.herokuapp.com) +* All of this is great, but it would be nice to talk with other people using RxSwift and exchange experiences.
[![Slack channel](http://rxswift-slack.herokuapp.com/badge.svg)](http://rxswift-slack.herokuapp.com/) [Join Slack Channel](http://rxswift-slack.herokuapp.com) * Report a problem using the library. [Open an Issue With Bug Template](.github/ISSUE_TEMPLATE.md) * Request a new feature. [Open an Issue With Feature Request Template](Documentation/NewFeatureRequestTemplate.md) @@ -102,7 +102,7 @@ searchResults cell.textLabel?.text = repository.name cell.detailTextLabel?.text = repository.url } - .addDisposableTo(disposeBag) + .disposed(by: disposeBag) @@ -126,7 +126,7 @@ Open Rx.xcworkspace, choose `RxExample` and hit run. This method will build ever **Tested with `pod --version`: `1.1.1`** -``` +```ruby # Podfile use_frameworks! @@ -144,7 +144,7 @@ end Replace `YOUR_TARGET_NAME` and then, in the `Podfile` directory, type: -``` +```bash $ pod install ``` @@ -158,7 +158,7 @@ Add this to `Cartfile` github "ReactiveX/RxSwift" ~> 3.0 ``` -``` +```bash $ carthage update ``` @@ -168,7 +168,7 @@ $ carthage update Create a `Package.swift` file. -``` +```swift import PackageDescription let package = Package( @@ -180,7 +180,7 @@ let package = Package( ) ``` -``` +```bash $ swift build ``` @@ -188,7 +188,7 @@ $ swift build * Add RxSwift as a submodule -``` +```bash $ git submodule add git@github.com:ReactiveX/RxSwift.git ``` diff --git a/Pods/RxSwift/RxSwift/AnyObserver.swift b/Pods/RxSwift/RxSwift/AnyObserver.swift index cab759a..dd4f9c4 100644 --- a/Pods/RxSwift/RxSwift/AnyObserver.swift +++ b/Pods/RxSwift/RxSwift/AnyObserver.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// A type-erased `ObserverType`. /// /// Forwards operations to an arbitrary underlying observer with the same `Element` type, hiding the specifics of the underlying observer type. @@ -49,6 +47,11 @@ public struct AnyObserver : ObserverType { } } +extension AnyObserver { + /// Collection of `AnyObserver`s + typealias s = Bag<(Event) -> ()> +} + extension ObserverType { /// Erases type of observer and returns canonical observer. /// diff --git a/Pods/RxSwift/RxSwift/Cancelable.swift b/Pods/RxSwift/RxSwift/Cancelable.swift index 2398be6..1fa7a67 100644 --- a/Pods/RxSwift/RxSwift/Cancelable.swift +++ b/Pods/RxSwift/RxSwift/Cancelable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Represents disposable resource with state tracking. public protocol Cancelable : Disposable { /// Was resource disposed. diff --git a/Pods/RxSwift/RxSwift/Concurrency/AsyncLock.swift b/Pods/RxSwift/RxSwift/Concurrency/AsyncLock.swift index 3ba6ed2..2597078 100644 --- a/Pods/RxSwift/RxSwift/Concurrency/AsyncLock.swift +++ b/Pods/RxSwift/RxSwift/Concurrency/AsyncLock.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /** In case nobody holds this lock, the work will be queued and executed immediately on thread that is requesting lock. @@ -18,7 +16,7 @@ and pending work. That means that enqueued work could possibly be executed later on a different thread. */ -class AsyncLock +final class AsyncLock : Disposable , Lock , SynchronizedDisposeType { diff --git a/Pods/RxSwift/RxSwift/Concurrency/Lock.swift b/Pods/RxSwift/RxSwift/Concurrency/Lock.swift index 78ec442..52afc1c 100644 --- a/Pods/RxSwift/RxSwift/Concurrency/Lock.swift +++ b/Pods/RxSwift/RxSwift/Concurrency/Lock.swift @@ -6,31 +6,29 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - protocol Lock { func lock() func unlock() } // https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000321.html -typealias SpinLock = NSRecursiveLock +typealias SpinLock = RecursiveLock -extension NSRecursiveLock : Lock { +extension RecursiveLock : Lock { @inline(__always) - func performLocked(_ action: () -> Void) { + final func performLocked(_ action: () -> Void) { lock(); defer { unlock() } action() } @inline(__always) - func calculateLocked(_ action: () -> T) -> T { + final func calculateLocked(_ action: () -> T) -> T { lock(); defer { unlock() } return action() } @inline(__always) - func calculateLockedOrFail(_ action: () throws -> T) throws -> T { + final func calculateLockedOrFail(_ action: () throws -> T) throws -> T { lock(); defer { unlock() } let result = try action() return result diff --git a/Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift b/Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift index 41595a9..eca8d8e 100644 --- a/Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift +++ b/Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift @@ -6,10 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - protocol LockOwnerType : class, Lock { - var _lock: NSRecursiveLock { get } + var _lock: RecursiveLock { get } } extension LockOwnerType { diff --git a/Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift b/Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift index 9bd95b9..af9548f 100644 --- a/Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift +++ b/Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - protocol SynchronizedDisposeType : class, Disposable, Lock { func _synchronized_dispose() } diff --git a/Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift b/Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift index 3c383d1..8dfc556 100644 --- a/Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift +++ b/Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - protocol SynchronizedOnType : class, ObserverType, Lock { func _synchronized_on(_ event: Event) } diff --git a/Pods/RxSwift/RxSwift/Concurrency/SynchronizedSubscribeType.swift b/Pods/RxSwift/RxSwift/Concurrency/SynchronizedSubscribeType.swift index ca79012..e6f1d73 100644 --- a/Pods/RxSwift/RxSwift/Concurrency/SynchronizedSubscribeType.swift +++ b/Pods/RxSwift/RxSwift/Concurrency/SynchronizedSubscribeType.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - protocol SynchronizedSubscribeType : class, ObservableType, Lock { func _synchronized_subscribe(_ observer: O) -> Disposable where O.E == E } diff --git a/Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift b/Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift index fc82ddd..bb1aa7e 100644 --- a/Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift +++ b/Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - protocol SynchronizedUnsubscribeType : class { associatedtype DisposeKey diff --git a/Pods/RxSwift/RxSwift/ConnectableObservableType.swift b/Pods/RxSwift/RxSwift/ConnectableObservableType.swift index bf8f5f0..52bf93c 100644 --- a/Pods/RxSwift/RxSwift/ConnectableObservableType.swift +++ b/Pods/RxSwift/RxSwift/ConnectableObservableType.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /** Represents an observable sequence wrapper that can be connected and disconnected from its underlying observable sequence. */ diff --git a/Pods/RxSwift/RxSwift/Deprecated.swift b/Pods/RxSwift/RxSwift/Deprecated.swift new file mode 100644 index 0000000..bd3f2f9 --- /dev/null +++ b/Pods/RxSwift/RxSwift/Deprecated.swift @@ -0,0 +1,49 @@ +// +// Deprecated.swift +// RxSwift +// +// Created by Krunoslav Zaher on 3/5/17. +// Copyright © 2017 Krunoslav Zaher. All rights reserved. +// + +extension Observable { + /** + Converts a optional to an observable sequence. + + - seealso: [from operator on reactivex.io](http://reactivex.io/documentation/operators/from.html) + + - parameter optional: Optional element in the resulting observable sequence. + - returns: An observable sequence containing the wrapped value or not from given optional. + */ + @available(*, deprecated, message: "Implicit conversions from any type to optional type are allowed and that is causing issues with `from` operator overloading.", renamed: "from(optional:)") + public static func from(_ optional: E?) -> Observable { + return ObservableOptional(optional: optional) + } + + /** + Converts a optional to an observable sequence. + + - seealso: [from operator on reactivex.io](http://reactivex.io/documentation/operators/from.html) + + - parameter optional: Optional element in the resulting observable sequence. + - parameter: Scheduler to send the optional element on. + - returns: An observable sequence containing the wrapped value or not from given optional. + */ + @available(*, deprecated, message: "Implicit conversions from any type to optional type are allowed and that is causing issues with `from` operator overloading.", renamed: "from(optional:scheduler:)") + public static func from(_ optional: E?, scheduler: ImmediateSchedulerType) -> Observable { + return ObservableOptionalScheduled(optional: optional, scheduler: scheduler) + } +} + +extension Disposable { + /// Deprecated in favor of `disposed(by:)` + /// + /// **@available(\*, deprecated, message="use disposed(by:) instead")** + /// + /// Adds `self` to `bag`. + /// + /// - parameter bag: `DisposeBag` to add `self` to. + public func addDisposableTo(_ bag: DisposeBag) { + disposed(by: bag) + } +} diff --git a/Pods/RxSwift/RxSwift/Disposable.swift b/Pods/RxSwift/RxSwift/Disposable.swift index 11e5d16..0ff067c 100644 --- a/Pods/RxSwift/RxSwift/Disposable.swift +++ b/Pods/RxSwift/RxSwift/Disposable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Respresents a disposable resource. public protocol Disposable { /// Dispose resource. diff --git a/Pods/RxSwift/RxSwift/Disposables/AnonymousDisposable.swift b/Pods/RxSwift/RxSwift/Disposables/AnonymousDisposable.swift index 74461a6..e54532b 100644 --- a/Pods/RxSwift/RxSwift/Disposables/AnonymousDisposable.swift +++ b/Pods/RxSwift/RxSwift/Disposables/AnonymousDisposable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Represents an Action-based disposable. /// /// When dispose method is called, disposal action will be dereferenced. diff --git a/Pods/RxSwift/RxSwift/Disposables/BinaryDisposable.swift b/Pods/RxSwift/RxSwift/Disposables/BinaryDisposable.swift index aef8200..8a518f0 100644 --- a/Pods/RxSwift/RxSwift/Disposables/BinaryDisposable.swift +++ b/Pods/RxSwift/RxSwift/Disposables/BinaryDisposable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Represents two disposable resources that are disposed together. private final class BinaryDisposable : DisposeBase, Cancelable { diff --git a/Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift b/Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift index bdd285e..8c59242 100644 --- a/Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift +++ b/Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Represents a disposable resource that can be checked for disposal status. public final class BooleanDisposable : Disposable, Cancelable { diff --git a/Pods/RxSwift/RxSwift/Disposables/CompositeDisposable.swift b/Pods/RxSwift/RxSwift/Disposables/CompositeDisposable.swift index e8c31df..d0e3b3d 100644 --- a/Pods/RxSwift/RxSwift/Disposables/CompositeDisposable.swift +++ b/Pods/RxSwift/RxSwift/Disposables/CompositeDisposable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Represents a group of disposable resources that are disposed together. public final class CompositeDisposable : DisposeBase, Disposable, Cancelable { /// Key used to remove disposable from composite disposable diff --git a/Pods/RxSwift/RxSwift/Disposables/Disposables.swift b/Pods/RxSwift/RxSwift/Disposables/Disposables.swift index b409d52..8cd6e28 100644 --- a/Pods/RxSwift/RxSwift/Disposables/Disposables.swift +++ b/Pods/RxSwift/RxSwift/Disposables/Disposables.swift @@ -6,8 +6,6 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import Foundation - /// A collection of utility methods for common disposable operations. public struct Disposables { private init() {} diff --git a/Pods/RxSwift/RxSwift/Disposables/DisposeBag.swift b/Pods/RxSwift/RxSwift/Disposables/DisposeBag.swift index d9cb86f..d5e3b02 100644 --- a/Pods/RxSwift/RxSwift/Disposables/DisposeBag.swift +++ b/Pods/RxSwift/RxSwift/Disposables/DisposeBag.swift @@ -6,13 +6,11 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - extension Disposable { - /// Adds `self` to `bag`. + /// Adds `self` to `bag` /// /// - parameter bag: `DisposeBag` to add `self` to. - public func addDisposableTo(_ bag: DisposeBag) { + public func disposed(by bag: DisposeBag) { bag.insert(self) } } diff --git a/Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift b/Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift index 0a363bb..8c6a44f 100644 --- a/Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift +++ b/Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Base class for all disposables. public class DisposeBase { init() { diff --git a/Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift b/Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift index 9f1df16..149f866 100644 --- a/Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift +++ b/Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Represents a disposable that does nothing on disposal. /// /// Nop = No Operation diff --git a/Pods/RxSwift/RxSwift/Disposables/RefCountDisposable.swift b/Pods/RxSwift/RxSwift/Disposables/RefCountDisposable.swift index df0ab3e..a21662a 100644 --- a/Pods/RxSwift/RxSwift/Disposables/RefCountDisposable.swift +++ b/Pods/RxSwift/RxSwift/Disposables/RefCountDisposable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. public final class RefCountDisposable : DisposeBase, Cancelable { private var _lock = SpinLock() diff --git a/Pods/RxSwift/RxSwift/Disposables/ScheduledDisposable.swift b/Pods/RxSwift/RxSwift/Disposables/ScheduledDisposable.swift index a922600..92c220d 100644 --- a/Pods/RxSwift/RxSwift/Disposables/ScheduledDisposable.swift +++ b/Pods/RxSwift/RxSwift/Disposables/ScheduledDisposable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - private let disposeScheduledDisposable: (ScheduledDisposable) -> Disposable = { sd in sd.disposeInner() return Disposables.create() diff --git a/Pods/RxSwift/RxSwift/Disposables/SerialDisposable.swift b/Pods/RxSwift/RxSwift/Disposables/SerialDisposable.swift index a87814f..4f34bdb 100644 --- a/Pods/RxSwift/RxSwift/Disposables/SerialDisposable.swift +++ b/Pods/RxSwift/RxSwift/Disposables/SerialDisposable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. public final class SerialDisposable : DisposeBase, Cancelable { private var _lock = SpinLock() diff --git a/Pods/RxSwift/RxSwift/Disposables/SingleAssignmentDisposable.swift b/Pods/RxSwift/RxSwift/Disposables/SingleAssignmentDisposable.swift index 18d27ec..cf6d5b1 100644 --- a/Pods/RxSwift/RxSwift/Disposables/SingleAssignmentDisposable.swift +++ b/Pods/RxSwift/RxSwift/Disposables/SingleAssignmentDisposable.swift @@ -6,17 +6,12 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /** Represents a disposable resource which only allows a single assignment of its underlying disposable resource. If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an exception. */ -public class SingleAssignmentDisposable : DisposeBase, Disposable, Cancelable { -#if os(Linux) - fileprivate let _lock = SpinLock() -#endif +public final class SingleAssignmentDisposable : DisposeBase, Disposable, Cancelable { fileprivate enum DisposeState: UInt32 { case disposed = 1 @@ -30,12 +25,12 @@ public class SingleAssignmentDisposable : DisposeBase, Disposable, Cancelable { } // state - private var _state: UInt32 = 0 + private var _state: AtomicInt = 0 private var _disposable = nil as Disposable? /// - returns: A value that indicates whether the object is disposed. public var isDisposed: Bool { - return (_state & DisposeState.disposed.rawValue) != 0 + return AtomicFlagSet(DisposeState.disposed.rawValue, &_state) } /// Initializes a new instance of the `SingleAssignmentDisposable`. @@ -49,15 +44,7 @@ public class SingleAssignmentDisposable : DisposeBase, Disposable, Cancelable { public func setDisposable(_ disposable: Disposable) { _disposable = disposable - #if os(Linux) - _lock.lock() - let previousState = Int32(_state) - _state = _state | DisposeState.disposableSet.rawValue - // We know about `defer { _lock.unlock() }`, but this resolves Swift compiler bug. Using `defer` here causes anomaly. - _lock.unlock() - #else - let previousState = OSAtomicOr32OrigBarrier(DisposeState.disposableSet.rawValue, &_state) - #endif + let previousState = AtomicOr(DisposeState.disposableSet.rawValue, &_state) if (previousState & DisposeStateInt32.disposableSet.rawValue) != 0 { rxFatalError("oldState.disposable != nil") @@ -71,15 +58,7 @@ public class SingleAssignmentDisposable : DisposeBase, Disposable, Cancelable { /// Disposes the underlying disposable. public func dispose() { - #if os(Linux) - _lock.lock() - let previousState = Int32(_state) - _state = _state | DisposeState.disposed.rawValue - // We know about `defer { _lock.unlock() }`, but this resolves Swift compiler bug. Using `defer` here causes anomaly. - _lock.unlock() - #else - let previousState = OSAtomicOr32OrigBarrier(DisposeState.disposed.rawValue, &_state) - #endif + let previousState = AtomicOr(DisposeState.disposed.rawValue, &_state) if (previousState & DisposeStateInt32.disposed.rawValue) != 0 { return diff --git a/Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift b/Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift index 9a3d639..3ae138a 100644 --- a/Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift +++ b/Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - struct SubscriptionDisposable : Disposable { private let _key: T.DisposeKey private weak var _owner: T? diff --git a/Pods/RxSwift/RxSwift/Errors.swift b/Pods/RxSwift/RxSwift/Errors.swift index 92cb2f1..a00a3de 100644 --- a/Pods/RxSwift/RxSwift/Errors.swift +++ b/Pods/RxSwift/RxSwift/Errors.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - let RxErrorDomain = "RxErrorDomain" let RxCompositeFailures = "RxCompositeFailures" diff --git a/Pods/RxSwift/RxSwift/Event.swift b/Pods/RxSwift/RxSwift/Event.swift index d0f995c..498c644 100644 --- a/Pods/RxSwift/RxSwift/Event.swift +++ b/Pods/RxSwift/RxSwift/Event.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Represents a sequence event. /// /// Sequence grammar: diff --git a/Pods/RxSwift/RxSwift/Extensions/Bag+Rx.swift b/Pods/RxSwift/RxSwift/Extensions/Bag+Rx.swift index 7a917e3..895333c 100644 --- a/Pods/RxSwift/RxSwift/Extensions/Bag+Rx.swift +++ b/Pods/RxSwift/RxSwift/Extensions/Bag+Rx.swift @@ -6,32 +6,31 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import Foundation - // MARK: forEach -extension Bag where T: ObserverType { - /// Dispatches `event` to app observers contained inside bag. - /// - /// - parameter action: Enumeration closure. - func on(_ event: Event) { - if _onlyFastPath { - _value0?.on(event) - return - } +@inline(__always) +func dispatch(_ bag: Bag<(Event) -> ()>, _ event: Event) { + if bag._onlyFastPath { + bag._value0?(event) + return + } - let value0 = _value0 - let dictionary = _dictionary + let value0 = bag._value0 + let dictionary = bag._dictionary - if let value0 = value0 { - value0.on(event) - } + if let value0 = value0 { + value0(event) + } - if let dictionary = dictionary { - for element in dictionary.values { - element.on(event) - } + let pairs = bag._pairs + for i in 0 ..< pairs.count { + pairs[i].value(event) + } + + if let dictionary = dictionary { + for element in dictionary.values { + element(event) } } } @@ -50,6 +49,11 @@ func disposeAll(in bag: Bag) { value0.dispose() } + let pairs = bag._pairs + for i in 0 ..< pairs.count { + pairs[i].value.dispose() + } + if let dictionary = dictionary { for element in dictionary.values { element.dispose() diff --git a/Pods/RxSwift/RxSwift/Extensions/String+Rx.swift b/Pods/RxSwift/RxSwift/Extensions/String+Rx.swift index 40fd9a8..42ef636 100644 --- a/Pods/RxSwift/RxSwift/Extensions/String+Rx.swift +++ b/Pods/RxSwift/RxSwift/Extensions/String+Rx.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - extension String { /// This is needed because on Linux Swift doesn't have `rangeOfString(..., options: .BackwardsSearch)` func lastIndexOf(_ character: Character) -> Index? { diff --git a/Pods/RxSwift/RxSwift/GroupedObservable.swift b/Pods/RxSwift/RxSwift/GroupedObservable.swift new file mode 100644 index 0000000..d87e0ba --- /dev/null +++ b/Pods/RxSwift/RxSwift/GroupedObservable.swift @@ -0,0 +1,37 @@ +// +// GroupedObservable.swift +// RxSwift +// +// Created by Tomi Koskinen on 01/12/15. +// Copyright © 2015 Krunoslav Zaher. All rights reserved. +// + +/// Represents an observable sequence of elements that have a common key. +public struct GroupedObservable : ObservableType { + public typealias E = Element + + /// Gets the common key. + public let key: Key + + private let source: Observable + + /// Initializes grouped observable sequence with key and source observable sequence. + /// + /// - parameter key: Grouped observable sequence key + /// - parameter source: Observable sequence that represents sequence of elements for the key + /// - returns: Grouped observable sequence of elements for the specific key + public init(key: Key, source: Observable) { + self.key = key + self.source = source + } + + /// Subscribes `observer` to receive events for this sequence. + public func subscribe(_ observer: O) -> Disposable where O.E == E { + return self.source.subscribe(observer) + } + + /// Converts `self` to `Observable` sequence. + public func asObservable() -> Observable { + return source + } +} diff --git a/Pods/RxSwift/RxSwift/ImmediateSchedulerType.swift b/Pods/RxSwift/RxSwift/ImmediateSchedulerType.swift index fa0c2d3..0c5418f 100644 --- a/Pods/RxSwift/RxSwift/ImmediateSchedulerType.swift +++ b/Pods/RxSwift/RxSwift/ImmediateSchedulerType.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Represents an object that immediately schedules units of work. public protocol ImmediateSchedulerType { /** diff --git a/Pods/RxSwift/RxSwift/Observable.swift b/Pods/RxSwift/RxSwift/Observable.swift index f394063..44aa1de 100644 --- a/Pods/RxSwift/RxSwift/Observable.swift +++ b/Pods/RxSwift/RxSwift/Observable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// A type-erased `ObservableType`. /// /// It represents a push style sequence. @@ -22,7 +20,7 @@ public class Observable : ObservableType { } public func subscribe(_ observer: O) -> Disposable where O.E == E { - abstractMethod() + rxAbstractMethod() } public func asObservable() -> Observable { diff --git a/Pods/RxSwift/RxSwift/ObservableConvertibleType.swift b/Pods/RxSwift/RxSwift/ObservableConvertibleType.swift index 2a94d63..72cfb1a 100644 --- a/Pods/RxSwift/RxSwift/ObservableConvertibleType.swift +++ b/Pods/RxSwift/RxSwift/ObservableConvertibleType.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Type that can be converted to observable sequence (`Observer`). public protocol ObservableConvertibleType { /// Type of elements in sequence. diff --git a/Pods/RxSwift/RxSwift/ObservableType+Extensions.swift b/Pods/RxSwift/RxSwift/ObservableType+Extensions.swift index ea225ab..1603d39 100644 --- a/Pods/RxSwift/RxSwift/ObservableType+Extensions.swift +++ b/Pods/RxSwift/RxSwift/ObservableType+Extensions.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - extension ObservableType { /** Subscribes an event handler to an observable sequence. @@ -113,7 +111,7 @@ extension ObservableType { extension ObservableType { /// All internal subscribe calls go through this method. - func subscribeSafe(_ observer: O) -> Disposable where O.E == E { + fileprivate func subscribeSafe(_ observer: O) -> Disposable where O.E == E { return self.asObservable().subscribe(observer) } } diff --git a/Pods/RxSwift/RxSwift/ObservableType.swift b/Pods/RxSwift/RxSwift/ObservableType.swift index 7fd799c..6331dc8 100644 --- a/Pods/RxSwift/RxSwift/ObservableType.swift +++ b/Pods/RxSwift/RxSwift/ObservableType.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Represents a push style sequence. public protocol ObservableType : ObservableConvertibleType { /// Type of elements in sequence. diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/AddRef.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/AddRef.swift index 36f9d79..b782c13 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/AddRef.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/AddRef.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class AddRefSink : Sink, ObserverType { +final class AddRefSink : Sink, ObserverType { typealias Element = O.E override init(observer: O, cancel: Cancelable) { @@ -26,7 +24,7 @@ class AddRefSink : Sink, ObserverType { } } -class AddRef : Producer { +final class AddRef : Producer { typealias EventHandler = (Event) throws -> Void private let _source: Observable @@ -40,7 +38,7 @@ class AddRef : Producer { override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element { let releaseDisposable = _refCount.retain() let sink = AddRefSink(observer: observer, cancel: cancel) - let subscription = Disposables.create(releaseDisposable, _source.subscribeSafe(sink)) + let subscription = Disposables.create(releaseDisposable, _source.subscribe(sink)) return (sink: sink, subscription: subscription) } diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Amb.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Amb.swift index 698747d..040d8c8 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Amb.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Amb.swift @@ -6,15 +6,13 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - enum AmbState { case neither case left case right } -class AmbObserver : ObserverType { +final class AmbObserver : ObserverType { typealias Element = O.E typealias Parent = AmbSink typealias This = AmbObserver @@ -48,14 +46,14 @@ class AmbObserver : ObserverType { } } -class AmbSink : Sink { +final class AmbSink : Sink { typealias ElementType = O.E typealias Parent = Amb typealias AmbObserverType = AmbObserver private let _parent: Parent - private let _lock = NSRecursiveLock() + private let _lock = RecursiveLock() // state private var _choice = AmbState.neither @@ -71,8 +69,11 @@ class AmbSink : Sink { let forwardEvent = { (o: AmbObserverType, event: Event) -> Void in self.forwardOn(event) + if event.isStopEvent { + self.dispose() + } } - + let decide = { (o: AmbObserverType, event: Event, me: AmbState, otherSubscription: Disposable) in self._lock.performLocked { if self._choice == .neither { @@ -106,7 +107,7 @@ class AmbSink : Sink { } } -class Amb: Producer { +final class Amb: Producer { fileprivate let _left: Observable fileprivate let _right: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/AnonymousObservable.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/AnonymousObservable.swift index bf3627a..c1b9a80 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/AnonymousObservable.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/AnonymousObservable.swift @@ -6,20 +6,31 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class AnonymousObservableSink : Sink, ObserverType { +final class AnonymousObservableSink : Sink, ObserverType { typealias E = O.E typealias Parent = AnonymousObservable // state private var _isStopped: AtomicInt = 0 + #if DEBUG + fileprivate var _numberOfConcurrentCalls: AtomicInt = 0 + #endif + override init(observer: O, cancel: Cancelable) { super.init(observer: observer, cancel: cancel) } func on(_ event: Event) { + #if DEBUG + if AtomicIncrement(&_numberOfConcurrentCalls) > 1 { + rxFatalError("Warning: Recursive call or synchronization error!") + } + + defer { + _ = AtomicDecrement(&_numberOfConcurrentCalls) + } + #endif switch event { case .next: if _isStopped == 1 { @@ -39,7 +50,7 @@ class AnonymousObservableSink : Sink, ObserverType { } } -class AnonymousObservable : Producer { +final class AnonymousObservable : Producer { typealias SubscribeHandler = (AnyObserver) -> Disposable let _subscribeHandler: SubscribeHandler diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/AsMaybe.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/AsMaybe.swift new file mode 100644 index 0000000..36fa685 --- /dev/null +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/AsMaybe.swift @@ -0,0 +1,49 @@ +// +// AsMaybe.swift +// RxSwift +// +// Created by Krunoslav Zaher on 3/12/17. +// Copyright © 2017 Krunoslav Zaher. All rights reserved. +// + +fileprivate final class AsMaybeSink : Sink, ObserverType { + typealias ElementType = O.E + typealias E = ElementType + + private var _element: Event? = nil + + func on(_ event: Event) { + switch event { + case .next: + if _element != nil { + forwardOn(.error(RxError.moreThanOneElement)) + dispose() + } + + _element = event + case .error: + forwardOn(event) + dispose() + case .completed: + if let element = _element { + forwardOn(element) + } + forwardOn(.completed) + dispose() + } + } +} + +final class AsMaybe: Producer { + fileprivate let _source: Observable + + init(source: Observable) { + _source = source + } + + override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element { + let sink = AsMaybeSink(observer: observer, cancel: cancel) + let subscription = _source.subscribe(sink) + return (sink: sink, subscription: subscription) + } +} diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/AsSingle.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/AsSingle.swift new file mode 100644 index 0000000..080aa8e --- /dev/null +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/AsSingle.swift @@ -0,0 +1,52 @@ +// +// AsSingle.swift +// RxSwift +// +// Created by Krunoslav Zaher on 3/12/17. +// Copyright © 2017 Krunoslav Zaher. All rights reserved. +// + +fileprivate final class AsSingleSink : Sink, ObserverType { + typealias ElementType = O.E + typealias E = ElementType + + private var _element: Event? = nil + + func on(_ event: Event) { + switch event { + case .next: + if _element != nil { + forwardOn(.error(RxError.moreThanOneElement)) + dispose() + } + + _element = event + case .error: + forwardOn(event) + dispose() + case .completed: + if let element = _element { + forwardOn(element) + forwardOn(.completed) + } + else { + forwardOn(.error(RxError.noElements)) + } + dispose() + } + } +} + +final class AsSingle: Producer { + fileprivate let _source: Observable + + init(source: Observable) { + _source = source + } + + override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element { + let sink = AsSingleSink(observer: observer, cancel: cancel) + let subscription = _source.subscribe(sink) + return (sink: sink, subscription: subscription) + } +} diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Buffer.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Buffer.swift index c773f47..7c6c523 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Buffer.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Buffer.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class BufferTimeCount : Producer<[Element]> { +final class BufferTimeCount : Producer<[Element]> { fileprivate let _timeSpan: RxTimeInterval fileprivate let _count: Int @@ -29,7 +27,7 @@ class BufferTimeCount : Producer<[Element]> { } } -class BufferTimeCountSink +final class BufferTimeCountSink : Sink , LockOwnerType , ObserverType @@ -39,7 +37,7 @@ class BufferTimeCountSink private let _parent: Parent - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state private let _timerD = SerialDisposable() diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Catch.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Catch.swift index 0f43069..3a7484b 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Catch.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Catch.swift @@ -6,11 +6,9 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // catch with callback -class CatchSinkProxy : ObserverType { +final class CatchSinkProxy : ObserverType { typealias E = O.E typealias Parent = CatchSink @@ -32,7 +30,7 @@ class CatchSinkProxy : ObserverType { } } -class CatchSink : Sink, ObserverType { +final class CatchSink : Sink, ObserverType { typealias E = O.E typealias Parent = Catch @@ -75,7 +73,7 @@ class CatchSink : Sink, ObserverType { } } -class Catch : Producer { +final class Catch : Producer { typealias Handler = (Swift.Error) throws -> Observable fileprivate let _source: Observable @@ -95,7 +93,7 @@ class Catch : Producer { // catch enumerable -class CatchSequenceSink +final class CatchSequenceSink : TailRecursiveSink , ObserverType where S.Iterator.Element : ObservableConvertibleType, S.Iterator.Element.E == O.E { typealias Element = O.E @@ -145,7 +143,7 @@ class CatchSequenceSink } } -class CatchSequence : Producer where S.Iterator.Element : ObservableConvertibleType { +final class CatchSequence : Producer where S.Iterator.Element : ObservableConvertibleType { typealias Element = S.Iterator.Element.E let sources: S diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/CombineLatest+Collection.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/CombineLatest+Collection.swift index fea66e2..3587309 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/CombineLatest+Collection.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/CombineLatest+Collection.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class CombineLatestCollectionTypeSink +final class CombineLatestCollectionTypeSink : Sink where C.Iterator.Element : ObservableConvertibleType { typealias R = O.E typealias Parent = CombineLatestCollectionType @@ -16,7 +14,7 @@ class CombineLatestCollectionTypeSink let _parent: Parent - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state var _numberOfValues = 0 @@ -107,7 +105,7 @@ class CombineLatestCollectionTypeSink } } -class CombineLatestCollectionType : Producer where C.Iterator.Element : ObservableConvertibleType { +final class CombineLatestCollectionType : Producer where C.Iterator.Element : ObservableConvertibleType { typealias ResultSelector = ([C.Iterator.Element.E]) throws -> R let _sources: C diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/CombineLatest+arity.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/CombineLatest+arity.swift index 2969b45..86da43a 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/CombineLatest+arity.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/CombineLatest+arity.swift @@ -7,8 +7,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // 2 @@ -32,7 +30,25 @@ extension Observable { } } -class CombineLatestSink2_ : CombineLatestSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever any of the observable sequences produces an element. + + - seealso: [combineLatest operator on reactivex.io](http://reactivex.io/documentation/operators/combinelatest.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func combineLatest + (_ source1: O1, _ source2: O2) + -> Observable<(O1.E, O2.E)> { + return CombineLatest2( + source1: source1.asObservable(), source2: source2.asObservable(), + resultSelector: { ($0, $1) } + ) + } +} + +final class CombineLatestSink2_ : CombineLatestSink { typealias R = O.E typealias Parent = CombineLatest2 @@ -67,7 +83,7 @@ class CombineLatestSink2_ : CombineLatestSink { } } -class CombineLatest2 : Producer { +final class CombineLatest2 : Producer { typealias ResultSelector = (E1, E2) throws -> R let _source1: Observable @@ -112,7 +128,25 @@ extension Observable { } } -class CombineLatestSink3_ : CombineLatestSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever any of the observable sequences produces an element. + + - seealso: [combineLatest operator on reactivex.io](http://reactivex.io/documentation/operators/combinelatest.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func combineLatest + (_ source1: O1, _ source2: O2, _ source3: O3) + -> Observable<(O1.E, O2.E, O3.E)> { + return CombineLatest3( + source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), + resultSelector: { ($0, $1, $2) } + ) + } +} + +final class CombineLatestSink3_ : CombineLatestSink { typealias R = O.E typealias Parent = CombineLatest3 @@ -152,7 +186,7 @@ class CombineLatestSink3_ : CombineLatestSink { } } -class CombineLatest3 : Producer { +final class CombineLatest3 : Producer { typealias ResultSelector = (E1, E2, E3) throws -> R let _source1: Observable @@ -199,7 +233,25 @@ extension Observable { } } -class CombineLatestSink4_ : CombineLatestSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever any of the observable sequences produces an element. + + - seealso: [combineLatest operator on reactivex.io](http://reactivex.io/documentation/operators/combinelatest.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func combineLatest + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4) + -> Observable<(O1.E, O2.E, O3.E, O4.E)> { + return CombineLatest4( + source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), + resultSelector: { ($0, $1, $2, $3) } + ) + } +} + +final class CombineLatestSink4_ : CombineLatestSink { typealias R = O.E typealias Parent = CombineLatest4 @@ -244,7 +296,7 @@ class CombineLatestSink4_ : CombineLatestSink : Producer { +final class CombineLatest4 : Producer { typealias ResultSelector = (E1, E2, E3, E4) throws -> R let _source1: Observable @@ -293,7 +345,25 @@ extension Observable { } } -class CombineLatestSink5_ : CombineLatestSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever any of the observable sequences produces an element. + + - seealso: [combineLatest operator on reactivex.io](http://reactivex.io/documentation/operators/combinelatest.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func combineLatest + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5) + -> Observable<(O1.E, O2.E, O3.E, O4.E, O5.E)> { + return CombineLatest5( + source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), + resultSelector: { ($0, $1, $2, $3, $4) } + ) + } +} + +final class CombineLatestSink5_ : CombineLatestSink { typealias R = O.E typealias Parent = CombineLatest5 @@ -343,7 +413,7 @@ class CombineLatestSink5_ : CombineLatestSi } } -class CombineLatest5 : Producer { +final class CombineLatest5 : Producer { typealias ResultSelector = (E1, E2, E3, E4, E5) throws -> R let _source1: Observable @@ -394,7 +464,25 @@ extension Observable { } } -class CombineLatestSink6_ : CombineLatestSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever any of the observable sequences produces an element. + + - seealso: [combineLatest operator on reactivex.io](http://reactivex.io/documentation/operators/combinelatest.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func combineLatest + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6) + -> Observable<(O1.E, O2.E, O3.E, O4.E, O5.E, O6.E)> { + return CombineLatest6( + source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), source6: source6.asObservable(), + resultSelector: { ($0, $1, $2, $3, $4, $5) } + ) + } +} + +final class CombineLatestSink6_ : CombineLatestSink { typealias R = O.E typealias Parent = CombineLatest6 @@ -449,7 +537,7 @@ class CombineLatestSink6_ : CombineLate } } -class CombineLatest6 : Producer { +final class CombineLatest6 : Producer { typealias ResultSelector = (E1, E2, E3, E4, E5, E6) throws -> R let _source1: Observable @@ -502,7 +590,25 @@ extension Observable { } } -class CombineLatestSink7_ : CombineLatestSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever any of the observable sequences produces an element. + + - seealso: [combineLatest operator on reactivex.io](http://reactivex.io/documentation/operators/combinelatest.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func combineLatest + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7) + -> Observable<(O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E)> { + return CombineLatest7( + source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), source6: source6.asObservable(), source7: source7.asObservable(), + resultSelector: { ($0, $1, $2, $3, $4, $5, $6) } + ) + } +} + +final class CombineLatestSink7_ : CombineLatestSink { typealias R = O.E typealias Parent = CombineLatest7 @@ -562,7 +668,7 @@ class CombineLatestSink7_ : Combine } } -class CombineLatest7 : Producer { +final class CombineLatest7 : Producer { typealias ResultSelector = (E1, E2, E3, E4, E5, E6, E7) throws -> R let _source1: Observable @@ -617,7 +723,25 @@ extension Observable { } } -class CombineLatestSink8_ : CombineLatestSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever any of the observable sequences produces an element. + + - seealso: [combineLatest operator on reactivex.io](http://reactivex.io/documentation/operators/combinelatest.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func combineLatest + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, _ source8: O8) + -> Observable<(O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E, O8.E)> { + return CombineLatest8( + source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), source6: source6.asObservable(), source7: source7.asObservable(), source8: source8.asObservable(), + resultSelector: { ($0, $1, $2, $3, $4, $5, $6, $7) } + ) + } +} + +final class CombineLatestSink8_ : CombineLatestSink { typealias R = O.E typealias Parent = CombineLatest8 @@ -682,7 +806,7 @@ class CombineLatestSink8_ : Com } } -class CombineLatest8 : Producer { +final class CombineLatest8 : Producer { typealias ResultSelector = (E1, E2, E3, E4, E5, E6, E7, E8) throws -> R let _source1: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/CombineLatest.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/CombineLatest.swift index be5cc2e..8c03e8c 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/CombineLatest.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/CombineLatest.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - protocol CombineLatestProtocol : class { func next(_ index: Int) func fail(_ error: Swift.Error) @@ -19,7 +17,7 @@ class CombineLatestSink , CombineLatestProtocol { typealias Element = O.E - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() private let _arity: Int private var _numberOfValues = 0 @@ -36,7 +34,7 @@ class CombineLatestSink } func getResult() throws -> Element { - abstractMethod() + rxAbstractMethod() } func next(_ index: Int) { @@ -92,7 +90,7 @@ class CombineLatestSink } } -class CombineLatestObserver +final class CombineLatestObserver : ObserverType , LockOwnerType , SynchronizedOnType { @@ -101,12 +99,12 @@ class CombineLatestObserver private let _parent: CombineLatestProtocol - let _lock: NSRecursiveLock + let _lock: RecursiveLock private let _index: Int private let _this: Disposable private let _setLatestValue: ValueSetter - init(lock: NSRecursiveLock, parent: CombineLatestProtocol, index: Int, setLatestValue: @escaping ValueSetter, this: Disposable) { + init(lock: RecursiveLock, parent: CombineLatestProtocol, index: Int, setLatestValue: @escaping ValueSetter, this: Disposable) { _lock = lock _parent = parent _index = index diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Concat.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Concat.swift index 51ac494..527a68a 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Concat.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Concat.swift @@ -6,10 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class ConcatSink +final class ConcatSink : TailRecursiveSink , ObserverType where S.Iterator.Element : ObservableConvertibleType, S.Iterator.Element.E == O.E { typealias Element = O.E @@ -44,7 +42,7 @@ class ConcatSink } } -class Concat : Producer where S.Iterator.Element : ObservableConvertibleType { +final class Concat : Producer where S.Iterator.Element : ObservableConvertibleType { typealias Element = S.Iterator.Element.E fileprivate let _sources: S diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/ConnectableObservable.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/ConnectableObservable.swift index 12eb555..5557a89 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/ConnectableObservable.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/ConnectableObservable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /** Represents an observable wrapper that can be connected and disconnected from its underlying observable sequence. */ @@ -21,52 +19,64 @@ public class ConnectableObservable - returns: Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. */ public func connect() -> Disposable { - abstractMethod() + rxAbstractMethod() } } -class Connection : Disposable { +final class Connection : ObserverType, Disposable { + typealias E = S.SubjectObserverType.E - private var _lock: NSRecursiveLock + private var _lock: RecursiveLock // state private var _parent: ConnectableObservableAdapter? private var _subscription : Disposable? + private var _subjectObserver: S.SubjectObserverType - init(parent: ConnectableObservableAdapter, lock: NSRecursiveLock, subscription: Disposable) { + private var _disposed: Bool = false + + init(parent: ConnectableObservableAdapter, subjectObserver: S.SubjectObserverType, lock: RecursiveLock, subscription: Disposable) { _parent = parent _subscription = subscription _lock = lock + _subjectObserver = subjectObserver + } + + func on(_ event: Event) { + if _disposed { + return + } + _subjectObserver.on(event) + if event.isStopEvent { + self.dispose() + } } func dispose() { _lock.lock(); defer { _lock.unlock() } // { + _disposed = true guard let parent = _parent else { return } - - guard let oldSubscription = _subscription else { - return - } - - _subscription = nil + if parent._connection === self { parent._connection = nil } _parent = nil - - oldSubscription.dispose() + + _subscription?.dispose() + _subscription = nil // } } } -class ConnectableObservableAdapter +final class ConnectableObservableAdapter : ConnectableObservable { typealias ConnectionType = Connection fileprivate let _subject: S fileprivate let _source: Observable - fileprivate let _lock = NSRecursiveLock() + fileprivate let _lock = RecursiveLock() // state fileprivate var _connection: ConnectionType? @@ -82,10 +92,12 @@ class ConnectableObservableAdapter if let connection = _connection { return connection } - - let disposable = _source.subscribe(_subject.asObserver()) - let connection = Connection(parent: self, lock: _lock, subscription: disposable) + + let singleAssignmentDisposable = SingleAssignmentDisposable() + let connection = Connection(parent: self, subjectObserver: _subject.asObserver(), lock: _lock, subscription: singleAssignmentDisposable) _connection = connection + let subscription = _source.subscribe(connection) + singleAssignmentDisposable.setDisposable(subscription) return connection } } diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Debunce.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Debounce.swift similarity index 94% rename from Pods/RxSwift/RxSwift/Observables/Implementations/Debunce.swift rename to Pods/RxSwift/RxSwift/Observables/Implementations/Debounce.swift index 99e8013..0a8d7cc 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Debunce.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Debounce.swift @@ -1,14 +1,12 @@ // -// Debunce.swift +// Debounce.swift // RxSwift // // Created by Krunoslav Zaher on 9/11/16. // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import Foundation - -class DebounceSink +final class DebounceSink : Sink , ObserverType , LockOwnerType @@ -18,7 +16,7 @@ class DebounceSink private let _parent: ParentType - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state private var _id = 0 as UInt64 @@ -83,7 +81,7 @@ class DebounceSink } } -class Debounce : Producer { +final class Debounce : Producer { fileprivate let _source: Observable fileprivate let _dueTime: RxTimeInterval diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Debug.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Debug.swift index 76f8ecd..a90962e 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Debug.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Debug.swift @@ -6,7 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import struct Foundation.Date +import class Foundation.DateFormatter let dateFormat = "yyyy-MM-dd HH:mm:ss.SSS" @@ -14,7 +15,7 @@ func logEvent(_ identifier: String, dateFormat: DateFormatter, content: String) print("\(dateFormat.string(from: Date())): \(identifier) -> \(content)") } -class DebugSink : Sink, ObserverType where O.E == Source.E { +final class DebugSink : Sink, ObserverType where O.E == Source.E { typealias Element = O.E typealias Parent = Debug @@ -54,7 +55,7 @@ class DebugSink : Sink, ObserverType } } -class Debug : Producer { +final class Debug : Producer { fileprivate let _identifier: String fileprivate let _trimOutput: Bool fileprivate let _source: Source diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/DefaultIfEmpty.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/DefaultIfEmpty.swift new file mode 100644 index 0000000..ea967b4 --- /dev/null +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/DefaultIfEmpty.swift @@ -0,0 +1,51 @@ +// +// DefaultIfEmpty.swift +// RxSwift +// +// Created by sergdort on 23/12/2016. +// Copyright © 2016 Krunoslav Zaher. All rights reserved. +// + +final class DefaultIfEmptySink: Sink, ObserverType { + typealias E = O.E + private let _default: E + private var _isEmpty = true + + init(default: E, observer: O, cancel: Cancelable) { + _default = `default` + super.init(observer: observer, cancel: cancel) + } + + func on(_ event: Event) { + switch event { + case .next(_): + _isEmpty = false + forwardOn(event) + case .error(_): + forwardOn(event) + dispose() + case .completed: + if _isEmpty { + forwardOn(.next(_default)) + } + forwardOn(.completed) + dispose() + } + } +} + +final class DefaultIfEmpty: Producer { + private let _source: Observable + private let _default: SourceType + + init(source: Observable, `default`: SourceType) { + _source = source + _default = `default` + } + + override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == SourceType { + let sink = DefaultIfEmptySink(default: _default, observer: observer, cancel: cancel) + let subscription = _source.subscribe(sink) + return (sink: sink, subscription: subscription) + } +} diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Deferred.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Deferred.swift index 43182ce..15d6695 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Deferred.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Deferred.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class DeferredSink : Sink, ObserverType where S.E == O.E { +final class DeferredSink : Sink, ObserverType where S.E == O.E { typealias E = O.E private let _observableFactory: () throws -> S @@ -44,7 +42,7 @@ class DeferredSink : Sink, ObserverType w } } -class Deferred : Producer { +final class Deferred : Producer { typealias Factory = () throws -> S private let _observableFactory : Factory diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Delay.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Delay.swift index 37f6a2f..c5c04b4 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Delay.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Delay.swift @@ -6,16 +6,16 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import Foundation +import struct Foundation.Date -class DelaySink +final class DelaySink : Sink , ObserverType { typealias E = O.E typealias Source = Observable typealias DisposeKey = Bag.KeyType - private let _lock = NSRecursiveLock() + private let _lock = RecursiveLock() private let _dueTime: RxTimeInterval private let _scheduler: SchedulerType @@ -139,13 +139,13 @@ class DelaySink } } - func run(source: Source) -> Disposable { - _sourceSubscription.setDisposable(source.subscribeSafe(self)) + func run(source: Observable) -> Disposable { + _sourceSubscription.setDisposable(source.subscribe(self)) return Disposables.create(_sourceSubscription, _cancelable) } } -class Delay: Producer { +final class Delay: Producer { private let _source: Observable private let _dueTime: RxTimeInterval private let _scheduler: SchedulerType diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/DelaySubscription.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/DelaySubscription.swift index 20207d2..d4e8c65 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/DelaySubscription.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/DelaySubscription.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class DelaySubscriptionSink +final class DelaySubscriptionSink : Sink, ObserverType { typealias E = O.E typealias Parent = DelaySubscription @@ -29,7 +27,7 @@ class DelaySubscriptionSink } -class DelaySubscription: Producer { +final class DelaySubscription: Producer { private let _source: Observable private let _dueTime: RxTimeInterval private let _scheduler: SchedulerType diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/DistinctUntilChanged.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/DistinctUntilChanged.swift index a54f6cf..a9a482a 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/DistinctUntilChanged.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/DistinctUntilChanged.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class DistinctUntilChangedSink: Sink, ObserverType { +final class DistinctUntilChangedSink: Sink, ObserverType { typealias E = O.E private let _parent: DistinctUntilChanged @@ -48,7 +46,7 @@ class DistinctUntilChangedSink: Sink, ObserverType { } } -class DistinctUntilChanged: Producer { +final class DistinctUntilChanged: Producer { typealias KeySelector = (Element) throws -> Key typealias EqualityComparer = (Key, Key) throws -> Bool diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Do.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Do.swift index 0e766dd..db33eba 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Do.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Do.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class DoSink : Sink, ObserverType { +final class DoSink : Sink, ObserverType { typealias Element = O.E typealias Parent = Do @@ -34,18 +32,20 @@ class DoSink : Sink, ObserverType { } } -class Do : Producer { +final class Do : Producer { typealias EventHandler = (Event) throws -> Void fileprivate let _source: Observable fileprivate let _eventHandler: EventHandler fileprivate let _onSubscribe: (() -> ())? + fileprivate let _onSubscribed: (() -> ())? fileprivate let _onDispose: (() -> ())? - init(source: Observable, eventHandler: @escaping EventHandler, onSubscribe: (() -> ())?, onDispose: (() -> ())?) { + init(source: Observable, eventHandler: @escaping EventHandler, onSubscribe: (() -> ())?, onSubscribed: (() -> ())?, onDispose: (() -> ())?) { _source = source _eventHandler = eventHandler _onSubscribe = onSubscribe + _onSubscribed = onSubscribed _onDispose = onDispose } @@ -53,6 +53,7 @@ class Do : Producer { _onSubscribe?() let sink = DoSink(parent: self, observer: observer, cancel: cancel) let subscription = _source.subscribe(sink) + _onSubscribed?() let onDispose = _onDispose let allSubscriptions = Disposables.create { subscription.dispose() diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/ElementAt.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/ElementAt.swift index 0c103a7..0d774e3 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/ElementAt.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/ElementAt.swift @@ -6,10 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class ElementAtSink : Sink, ObserverType { +final class ElementAtSink : Sink, ObserverType { typealias SourceType = O.E typealias Parent = ElementAt @@ -56,7 +54,7 @@ class ElementAtSink : Sink, ObserverType { } } -class ElementAt : Producer { +final class ElementAt : Producer { let _source: Observable let _throwOnEmpty: Bool @@ -74,7 +72,7 @@ class ElementAt : Producer { override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == SourceType { let sink = ElementAtSink(parent: self, observer: observer, cancel: cancel) - let subscription = _source.subscribeSafe(sink) + let subscription = _source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Empty.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Empty.swift index 39861a7..366adec 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Empty.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Empty.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class Empty : Producer { +final class EmptyProducer : Producer { override func subscribe(_ observer: O) -> Disposable where O.E == Element { observer.on(.completed) return Disposables.create() diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Error.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Error.swift index 6ddae8b..6ef7be7 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Error.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Error.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class Error : Producer { +final class ErrorProducer : Producer { private let _error: Swift.Error init(error: Swift.Error) { diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Filter.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Filter.swift index 2f03135..c9ef2d3 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Filter.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Filter.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class FilterSink: Sink, ObserverType { +final class FilterSink: Sink, ObserverType { typealias Predicate = (Element) throws -> Bool typealias Element = O.E @@ -39,7 +37,7 @@ class FilterSink: Sink, ObserverType { } } -class Filter : Producer { +final class Filter : Producer { typealias Predicate = (Element) throws -> Bool private let _source: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Generate.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Generate.swift index aebfb95..a58b37a 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Generate.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Generate.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class GenerateSink : Sink { +final class GenerateSink : Sink { typealias Parent = Generate private let _parent: Parent @@ -47,7 +45,7 @@ class GenerateSink : Sink { } } -class Generate : Producer { +final class Generate : Producer { fileprivate let _initialState: S fileprivate let _condition: (S) throws -> Bool fileprivate let _iterate: (S) throws -> S diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/GroupBy.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/GroupBy.swift new file mode 100644 index 0000000..fe7a4c0 --- /dev/null +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/GroupBy.swift @@ -0,0 +1,119 @@ +// +// GroupBy.swift +// RxSwift +// +// Created by Tomi Koskinen on 01/12/15. +// Copyright © 2015 Krunoslav Zaher. All rights reserved. +// + +final class GroupedObservableImpl : Observable { + private var _subject: PublishSubject + private var _refCount: RefCountDisposable + + init(key: Key, subject: PublishSubject, refCount: RefCountDisposable) { + _subject = subject + _refCount = refCount + } + + override public func subscribe(_ observer: O) -> Disposable where O.E == E { + let release = _refCount.retain() + let subscription = _subject.subscribe(observer) + return Disposables.create(release, subscription) + } +} + + +final class GroupBySink + : Sink + , ObserverType where O.E == GroupedObservable { + typealias E = Element + typealias ResultType = O.E + typealias Parent = GroupBy + + private let _parent: Parent + private let _subscription = SingleAssignmentDisposable() + private var _refCountDisposable: RefCountDisposable! + private var _groupedSubjectTable: [Key: PublishSubject] + + init(parent: Parent, observer: O, cancel: Cancelable) { + _parent = parent + _groupedSubjectTable = [Key: PublishSubject]() + super.init(observer: observer, cancel: cancel) + } + + func run() -> Disposable { + _refCountDisposable = RefCountDisposable(disposable: _subscription) + + _subscription.setDisposable(_parent._source.subscribe(self)) + + return _refCountDisposable + } + + private func onGroupEvent(key: Key, value: Element) { + if let writer = _groupedSubjectTable[key] { + writer.on(.next(value)) + } else { + let writer = PublishSubject() + _groupedSubjectTable[key] = writer + + let group = GroupedObservable( + key: key, + source: GroupedObservableImpl(key: key, subject: writer, refCount: _refCountDisposable) + ) + + forwardOn(.next(group)) + writer.on(.next(value)) + } + } + + final func on(_ event: Event) { + switch event { + case let .next(value): + do { + let groupKey = try _parent._selector(value) + onGroupEvent(key: groupKey, value: value) + } + catch let e { + error(e) + return + } + case let .error(e): + error(e) + case .completed: + forwardOnGroups(event: .completed) + forwardOn(.completed) + _subscription.dispose() + dispose() + } + } + + final func error(_ error: Swift.Error) { + forwardOnGroups(event: .error(error)) + forwardOn(.error(error)) + _subscription.dispose() + dispose() + } + + final func forwardOnGroups(event: Event) { + for writer in _groupedSubjectTable.values { + writer.on(event) + } + } +} + +final class GroupBy: Producer> { + typealias KeySelector = (Element) throws -> Key + + fileprivate let _source: Observable + fileprivate let _selector: KeySelector + + init(source: Observable, selector: @escaping KeySelector) { + _source = source + _selector = selector + } + + override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == GroupedObservable { + let sink = GroupBySink(parent: self, observer: observer, cancel: cancel) + return (sink: sink, subscription: sink.run()) + } +} diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Just.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Just.swift index 08ef34c..98f0ada 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Just.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Just.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class JustScheduledSink : Sink { +final class JustScheduledSink : Sink { typealias Parent = JustScheduled private let _parent: Parent @@ -24,13 +22,14 @@ class JustScheduledSink : Sink { self.forwardOn(.next(element)) return scheduler.schedule(()) { _ in self.forwardOn(.completed) + self.dispose() return Disposables.create() } } } } -class JustScheduled : Producer { +final class JustScheduled : Producer { fileprivate let _scheduler: ImmediateSchedulerType fileprivate let _element: Element @@ -46,7 +45,7 @@ class JustScheduled : Producer { } } -class Just : Producer { +final class Just : Producer { private let _element: Element init(element: Element) { diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Map.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Map.swift index 1a28fcb..b4e2300 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Map.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Map.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class MapSink : Sink, ObserverType { +final class MapSink : Sink, ObserverType { typealias Transform = (SourceType) throws -> ResultType typealias ResultType = O.E @@ -42,7 +40,7 @@ class MapSink : Sink, ObserverType { } } -class MapWithIndexSink : Sink, ObserverType { +final class MapWithIndexSink : Sink, ObserverType { typealias Selector = (SourceType, Int) throws -> ResultType typealias ResultType = O.E @@ -79,7 +77,7 @@ class MapWithIndexSink : Sink, ObserverType { } } -class MapWithIndex : Producer { +final class MapWithIndex : Producer { typealias Selector = (SourceType, Int) throws -> ResultType private let _source: Observable @@ -107,7 +105,7 @@ class MapWithIndex : Producer { } #endif -class Map: Producer { +final class Map: Producer { typealias Transform = (SourceType) throws -> ResultType private let _source: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Merge.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Merge.swift index cd700ab..186a58e 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Merge.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Merge.swift @@ -6,11 +6,9 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // MARK: Limited concurrency version -class MergeLimitedSinkIter +fileprivate final class MergeLimitedSinkIter : ObserverType , LockOwnerType , SynchronizedOnType where S.E == O.E { @@ -21,7 +19,7 @@ class MergeLimitedSinkIter private let _parent: Parent private let _disposeKey: DisposeKey - var _lock: NSRecursiveLock { + var _lock: RecursiveLock { return _parent._lock } @@ -58,7 +56,7 @@ class MergeLimitedSinkIter } } -class MergeLimitedSink +fileprivate final class MergeLimitedSink : Sink , ObserverType , LockOwnerType @@ -66,17 +64,17 @@ class MergeLimitedSink typealias E = S typealias QueueType = Queue - fileprivate let _maxConcurrent: Int + let _maxConcurrent: Int - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state - fileprivate var _stopped = false - fileprivate var _activeCount = 0 - fileprivate var _queue = QueueType(capacity: 2) + var _stopped = false + var _activeCount = 0 + var _queue = QueueType(capacity: 2) - fileprivate let _sourceSubscription = SingleAssignmentDisposable() - fileprivate let _group = CompositeDisposable() + let _sourceSubscription = SingleAssignmentDisposable() + let _group = CompositeDisposable() init(maxConcurrent: Int, observer: O, cancel: Cancelable) { _maxConcurrent = maxConcurrent @@ -137,13 +135,13 @@ class MergeLimitedSink else { _sourceSubscription.dispose() } - + _stopped = true } } } -class MergeLimited : Producer { +final class MergeLimited : Producer { private let _source: Observable private let _maxConcurrent: Int @@ -161,7 +159,7 @@ class MergeLimited : Producer { // MARK: Merge -final class MergeBasicSink : MergeSink where O.E == S.E { +fileprivate final class MergeBasicSink : MergeSink where O.E == S.E { override init(observer: O, cancel: Cancelable) { super.init(observer: observer, cancel: cancel) } @@ -173,7 +171,7 @@ final class MergeBasicSink : Merg // MARK: flatMap -final class FlatMapSink : MergeSink where O.E == S.E { +fileprivate final class FlatMapSink : MergeSink where O.E == S.E { typealias Selector = (SourceType) throws -> S private let _selector: Selector @@ -188,7 +186,7 @@ final class FlatMapSink : MergeSink where O.E == S.E { +fileprivate final class FlatMapWithIndexSink : MergeSink where O.E == S.E { typealias Selector = (SourceType, Int) throws -> S private var _index = 0 @@ -206,13 +204,13 @@ final class FlatMapWithIndexSink : MergeSink where O.E == S.E { +fileprivate final class FlatMapFirstSink : MergeSink where O.E == S.E { typealias Selector = (SourceType) throws -> S private let _selector: Selector override var subscribeNext: Bool { - return _group.count == MergeNoIterators + return _activeCount == 0 } init(selector: @escaping Selector, observer: O, cancel: Cancelable) { @@ -225,10 +223,7 @@ final class FlatMapFirstSink : ObserverType where O.E == S.E { +fileprivate final class MergeSinkIter : ObserverType where O.E == S.E { typealias Parent = MergeSink typealias DisposeKey = CompositeDisposable.DisposeKey typealias E = O.E @@ -242,101 +237,106 @@ class MergeSinkIter : } func on(_ event: Event) { - switch event { - case .next(let value): - _parent._lock.lock(); defer { _parent._lock.unlock() } // lock { + _parent._lock.lock(); defer { _parent._lock.unlock() } // lock { + switch event { + case .next(let value): _parent.forwardOn(.next(value)) - // } - case .error(let error): - _parent._lock.lock(); defer { _parent._lock.unlock() } // lock { + case .error(let error): _parent.forwardOn(.error(error)) _parent.dispose() - // } - case .completed: - _parent._group.remove(for: _disposeKey) - // If this has returned true that means that `Completed` should be sent. - // In case there is a race who will sent first completed, - // lock will sort it out. When first Completed message is sent - // it will set observer to nil, and thus prevent further complete messages - // to be sent, and thus preserving the sequence grammar. - if _parent._stopped && _parent._group.count == MergeNoIterators { - _parent._lock.lock(); defer { _parent._lock.unlock() } // lock { - _parent.forwardOn(.completed) - _parent.dispose() - // } + case .completed: + _parent._group.remove(for: _disposeKey) + _parent._activeCount -= 1 + _parent.checkCompleted() } - } + // } } } -class MergeSink +fileprivate class MergeSink : Sink , ObserverType where O.E == S.E { typealias ResultType = O.E typealias Element = SourceType - fileprivate let _lock = NSRecursiveLock() + let _lock = RecursiveLock() - fileprivate var subscribeNext: Bool { + var subscribeNext: Bool { return true } // state - fileprivate let _group = CompositeDisposable() - fileprivate let _sourceSubscription = SingleAssignmentDisposable() + let _group = CompositeDisposable() + let _sourceSubscription = SingleAssignmentDisposable() - fileprivate var _stopped = false + var _activeCount = 0 + var _stopped = false override init(observer: O, cancel: Cancelable) { super.init(observer: observer, cancel: cancel) } func performMap(_ element: SourceType) throws -> S { - abstractMethod() + rxAbstractMethod() } func on(_ event: Event) { - switch event { - case .next(let element): - if !subscribeNext { - return - } - do { - let value = try performMap(element) - subscribeInner(value.asObservable()) - } - catch let e { - forwardOn(.error(e)) - dispose() - } - case .error(let error): - _lock.lock(); defer { _lock.unlock() } // lock { - forwardOn(.error(error)) - dispose() - // } - case .completed: - _lock.lock(); defer { _lock.unlock() } // lock { - _stopped = true - if _group.count == MergeNoIterators { - forwardOn(.completed) + _lock.lock(); defer { _lock.unlock() } // lock { + switch event { + case .next(let element): + if !subscribeNext { + return + } + do { + let value = try performMap(element) + subscribeInner(value.asObservable()) + } + catch let e { + forwardOn(.error(e)) dispose() } - else { - _sourceSubscription.dispose() - } - //} - } + case .error(let error): + forwardOn(.error(error)) + dispose() + case .completed: + _stopped = true + _sourceSubscription.dispose() + checkCompleted() + } + //} } - + func subscribeInner(_ source: Observable) { let iterDisposable = SingleAssignmentDisposable() if let disposeKey = _group.insert(iterDisposable) { + _activeCount += 1 let iter = MergeSinkIter(parent: self, disposeKey: disposeKey) let subscription = source.subscribe(iter) iterDisposable.setDisposable(subscription) } } + + func run(_ sources: [SourceType]) -> Disposable { + let _ = _group.insert(_sourceSubscription) + _stopped = true + + for source in sources { + self.on(.next(source)) + } + + checkCompleted() + + return _group + } + + @inline(__always) + func checkCompleted() { + if _stopped && _activeCount == 0 { + self.forwardOn(.completed) + self.dispose() + } + } func run(_ source: Observable) -> Disposable { let _ = _group.insert(_sourceSubscription) @@ -422,3 +422,16 @@ final class Merge : Producer { } } +final class MergeArray : Producer { + private let _sources: [Observable] + + init(sources: [Observable]) { + _sources = sources + } + + override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == E { + let sink = MergeBasicSink, O>(observer: observer, cancel: cancel) + let subscription = sink.run(_sources) + return (sink: sink, subscription: subscription) + } +} diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Multicast.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Multicast.swift index fe4ec2d..51e3689 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Multicast.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Multicast.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class MulticastSink: Sink, ObserverType { +final class MulticastSink: Sink, ObserverType { typealias Element = O.E typealias ResultType = Element typealias MutlicastType = Multicast @@ -49,7 +47,7 @@ class MulticastSink: Sink, ObserverType { } } -class Multicast: Producer { +final class Multicast: Producer { typealias SubjectSelectorType = () throws -> S typealias SelectorType = (Observable) throws -> Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Never.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Never.swift index 2e1df69..309d35b 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Never.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Never.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class Never : Producer { +final class NeverProducer : Producer { override func subscribe(_ observer: O) -> Disposable where O.E == Element { return Disposables.create() } diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/ObserveOn.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/ObserveOn.swift index 9c561b1..a5b901d 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/ObserveOn.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/ObserveOn.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class ObserveOn : Producer { +final class ObserveOn : Producer { let scheduler: ImmediateSchedulerType let source: Observable @@ -41,7 +39,7 @@ enum ObserveOnState : Int32 { case running = 1 } -class ObserveOnSink : ObserverBase { +final class ObserveOnSink : ObserverBase { typealias E = O.E let _scheduler: ImmediateSchedulerType diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/ObserveOnSerialDispatchQueue.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/ObserveOnSerialDispatchQueue.swift index 7f4ab9c..252a0e2 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/ObserveOnSerialDispatchQueue.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/ObserveOnSerialDispatchQueue.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - #if TRACE_RESOURCES fileprivate var _numberOfSerialDispatchQueueObservables: AtomicInt = 0 extension Resources { @@ -22,7 +20,7 @@ import Foundation } #endif -class ObserveOnSerialDispatchQueueSink : ObserverBase { +final class ObserveOnSerialDispatchQueueSink : ObserverBase { let scheduler: SerialDispatchQueueScheduler let observer: O @@ -58,7 +56,7 @@ class ObserveOnSerialDispatchQueueSink : ObserverBase { } } -class ObserveOnSerialDispatchQueue : Producer { +final class ObserveOnSerialDispatchQueue : Producer { let scheduler: SerialDispatchQueueScheduler let source: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Optional.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Optional.swift index b05f7ea..534e279 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Optional.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Optional.swift @@ -6,9 +6,7 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import Foundation - -class ObservableOptionalScheduledSink : Sink { +final class ObservableOptionalScheduledSink : Sink { typealias E = O.E typealias Parent = ObservableOptionalScheduled @@ -25,17 +23,19 @@ class ObservableOptionalScheduledSink : Sink { self.forwardOn(.next(next)) return self._parent._scheduler.schedule(()) { _ in self.forwardOn(.completed) + self.dispose() return Disposables.create() } } else { self.forwardOn(.completed) + self.dispose() return Disposables.create() } } } } -class ObservableOptionalScheduled : Producer { +final class ObservableOptionalScheduled : Producer { fileprivate let _optional: E? fileprivate let _scheduler: ImmediateSchedulerType @@ -51,7 +51,7 @@ class ObservableOptionalScheduled : Producer { } } -class ObservableOptional: Producer { +final class ObservableOptional: Producer { private let _optional: E? init(optional: E?) { diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Producer.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Producer.swift index ca20f8a..996b011 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Producer.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Producer.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - class Producer : Observable { override init() { super.init() @@ -34,15 +32,11 @@ class Producer : Observable { } func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element { - abstractMethod() + rxAbstractMethod() } } -fileprivate class SinkDisposer: Cancelable { - #if os(Linux) - fileprivate let _lock = SpinLock() - #endif - +fileprivate final class SinkDisposer: Cancelable { fileprivate enum DisposeState: UInt32 { case disposed = 1 case sinkAndSubscriptionSet = 2 @@ -54,27 +48,19 @@ fileprivate class SinkDisposer: Cancelable { case sinkAndSubscriptionSet = 2 } - private var _state: UInt32 = 0 + private var _state: AtomicInt = 0 private var _sink: Disposable? = nil private var _subscription: Disposable? = nil var isDisposed: Bool { - return (_state & DisposeState.disposed.rawValue) != 0 + return AtomicFlagSet(DisposeState.disposed.rawValue, &_state) } func setSinkAndSubscription(sink: Disposable, subscription: Disposable) { _sink = sink _subscription = subscription - #if os(Linux) - _lock.lock() - let previousState = Int32(_state) - _state = _state | DisposeState.sinkAndSubscriptionSet.rawValue - // We know about `defer { _lock.unlock() }`, but this resolves Swift compiler bugs. Using `defer` here causes anomaly. - _lock.unlock() - #else - let previousState = OSAtomicOr32OrigBarrier(DisposeState.sinkAndSubscriptionSet.rawValue, &_state) - #endif + let previousState = AtomicOr(DisposeState.sinkAndSubscriptionSet.rawValue, &_state) if (previousState & DisposeStateInt32.sinkAndSubscriptionSet.rawValue) != 0 { rxFatalError("Sink and subscription were already set") } @@ -88,15 +74,8 @@ fileprivate class SinkDisposer: Cancelable { } func dispose() { - #if os(Linux) - _lock.lock() - let previousState = Int32(_state) - _state = _state | DisposeState.disposed.rawValue - // We know about `defer { _lock.unlock() }`, but this resolves Swift compiler bugs. Using `defer` here causes anomaly. - _lock.unlock() - #else - let previousState = OSAtomicOr32OrigBarrier(DisposeState.disposed.rawValue, &_state) - #endif + let previousState = AtomicOr(DisposeState.disposed.rawValue, &_state) + if (previousState & DisposeStateInt32.disposed.rawValue) != 0 { return } diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Range.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Range.swift index 74ece4d..c302dd2 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Range.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Range.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class RangeProducer : Producer { +final class RangeProducer : Producer { fileprivate let _start: E fileprivate let _count: E fileprivate let _scheduler: ImmediateSchedulerType @@ -34,7 +32,7 @@ class RangeProducer : Producer { } } -class RangeSink : Sink where O.E: SignedInteger { +final class RangeSink : Sink where O.E: SignedInteger { typealias Parent = RangeProducer private let _parent: Parent diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Reduce.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Reduce.swift index f203709..17d241f 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Reduce.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Reduce.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class ReduceSink : Sink, ObserverType { +final class ReduceSink : Sink, ObserverType { typealias ResultType = O.E typealias Parent = Reduce @@ -50,7 +48,7 @@ class ReduceSink : Sink, Observe } } -class Reduce : Producer { +final class Reduce : Producer { typealias AccumulatorType = (AccumulateType, SourceType) throws -> AccumulateType typealias ResultSelectorType = (AccumulateType) throws -> ResultType diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/RefCount.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/RefCount.swift index 1c5e88c..7b3de82 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/RefCount.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/RefCount.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class RefCountSink +final class RefCountSink : Sink , ObserverType where CO.E == O.E { typealias Element = O.E @@ -22,7 +20,7 @@ class RefCountSink } func run() -> Disposable { - let subscription = _parent._source.subscribeSafe(self) + let subscription = _parent._source.subscribe(self) _parent._lock.lock(); defer { _parent._lock.unlock() } // { if _parent._count == 0 { @@ -38,8 +36,12 @@ class RefCountSink subscription.dispose() self._parent._lock.lock(); defer { self._parent._lock.unlock() } // { if self._parent._count == 1 { - self._parent._connectableSubscription!.dispose() self._parent._count = 0 + guard let connectableSubscription = self._parent._connectableSubscription else { + return + } + + connectableSubscription.dispose() self._parent._connectableSubscription = nil } else if self._parent._count > 1 { @@ -63,8 +65,8 @@ class RefCountSink } } -class RefCount: Producer { - fileprivate let _lock = NSRecursiveLock() +final class RefCount: Producer { + fileprivate let _lock = RecursiveLock() // state fileprivate var _count = 0 diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Repeat.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Repeat.swift index 90b850b..d4749f6 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Repeat.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Repeat.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class RepeatElement : Producer { +final class RepeatElement : Producer { fileprivate let _element: Element fileprivate let _scheduler: ImmediateSchedulerType @@ -25,7 +23,7 @@ class RepeatElement : Producer { } } -class RepeatElementSink : Sink { +final class RepeatElementSink : Sink { typealias Parent = RepeatElement private let _parent: Parent diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/RetryWhen.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/RetryWhen.swift index 00cba3d..b836eb6 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/RetryWhen.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/RetryWhen.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class RetryTriggerSink +final class RetryTriggerSink : ObserverType where S.Iterator.Element : ObservableType, S.Iterator.Element.E == O.E { typealias E = TriggerObservable.E @@ -35,17 +33,19 @@ class RetryTriggerSink - : SingleAssignmentDisposable - , ObserverType where S.Iterator.Element : ObservableType, S.Iterator.Element.E == O.E { +final class RetryWhenSequenceSinkIter + : ObserverType + , Disposable where S.Iterator.Element : ObservableType, S.Iterator.Element.E == O.E { typealias E = O.E typealias Parent = RetryWhenSequenceSink fileprivate let _parent: Parent fileprivate let _errorHandlerSubscription = SingleAssignmentDisposable() + fileprivate let _subscription: Disposable - init(parent: Parent) { + init(parent: Parent, subscription: Disposable) { _parent = parent + _subscription = subscription } func on(_ event: Event) { @@ -57,7 +57,7 @@ class RetryWhenSequenceSinkIter +final class RetryWhenSequenceSink : TailRecursiveSink where S.Iterator.Element : ObservableType, S.Iterator.Element.E == O.E { typealias Element = O.E typealias Parent = RetryWhenSequence - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() fileprivate let _parent: Parent @@ -119,8 +119,9 @@ class RetryWhenSequenceSink) -> Disposable { - let iter = RetryWhenSequenceSinkIter(parent: self) - iter.setDisposable(source.subscribe(iter)) + let subscription = SingleAssignmentDisposable() + let iter = RetryWhenSequenceSinkIter(parent: self, subscription: subscription) + subscription.setDisposable(source.subscribe(iter)) return iter } @@ -131,7 +132,7 @@ class RetryWhenSequenceSink : Producer where S.Iterator.Element : ObservableType { +final class RetryWhenSequence : Producer where S.Iterator.Element : ObservableType { typealias Element = S.Iterator.Element.E fileprivate let _sources: S diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Sample.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Sample.swift index 107dfec..8891677 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Sample.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Sample.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class SamplerSink +final class SamplerSink : ObserverType , LockOwnerType , SynchronizedOnType { @@ -18,7 +16,7 @@ class SamplerSink fileprivate let _parent: Parent - var _lock: NSRecursiveLock { + var _lock: RecursiveLock { return _parent._lock } @@ -58,7 +56,7 @@ class SamplerSink } } -class SampleSequenceSink +final class SampleSequenceSink : Sink , ObserverType , LockOwnerType @@ -68,7 +66,7 @@ class SampleSequenceSink fileprivate let _parent: Parent - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state fileprivate var _element = nil as Element? @@ -107,7 +105,7 @@ class SampleSequenceSink } -class Sample : Producer { +final class Sample : Producer { fileprivate let _source: Observable fileprivate let _sampler: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Scan.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Scan.swift index e381ae3..c84385a 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Scan.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Scan.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class ScanSink : Sink, ObserverType { +final class ScanSink : Sink, ObserverType { typealias Accumulate = O.E typealias Parent = Scan typealias E = ElementType @@ -44,7 +42,7 @@ class ScanSink : Sink, ObserverType { } -class Scan: Producer { +final class Scan: Producer { typealias Accumulator = (Accumulate, Element) throws -> Accumulate fileprivate let _source: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Sequence.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Sequence.swift index b5f972d..e25825a 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Sequence.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Sequence.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class ObservableSequenceSink : Sink where S.Iterator.Element == O.E { +final class ObservableSequenceSink : Sink where S.Iterator.Element == O.E { typealias Parent = ObservableSequence private let _parent: Parent @@ -27,12 +25,13 @@ class ObservableSequenceSink : Sink where S.Ite } else { self.forwardOn(.completed) + self.dispose() } } } } -class ObservableSequence : Producer { +final class ObservableSequence : Producer { fileprivate let _elements: S fileprivate let _scheduler: ImmediateSchedulerType diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/ShareReplay1.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/ShareReplay1.swift index 6f7497b..c874708 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/ShareReplay1.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/ShareReplay1.swift @@ -6,33 +6,34 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // optimized version of share replay for most common case final class ShareReplay1 : Observable , ObserverType , SynchronizedUnsubscribeType { - typealias DisposeKey = Bag>.KeyType + typealias Observers = AnyObserver.s + typealias DisposeKey = Observers.KeyType private let _source: Observable - private var _lock = NSRecursiveLock() + private let _lock = RecursiveLock() private var _connection: SingleAssignmentDisposable? private var _element: Element? private var _stopped = false private var _stopEvent = nil as Event? - private var _observers = Bag>() + private var _observers = Observers() init(source: Observable) { self._source = source } override func subscribe(_ observer: O) -> Disposable where O.E == E { - _lock.lock(); defer { _lock.unlock() } - return _synchronized_subscribe(observer) + _lock.lock() + let result = _synchronized_subscribe(observer) + _lock.unlock() + return result } func _synchronized_subscribe(_ observer: O) -> Disposable where O.E == E { @@ -47,7 +48,7 @@ final class ShareReplay1 let initialCount = self._observers.count - let disposeKey = self._observers.insert(AnyObserver(observer)) + let disposeKey = self._observers.insert(observer.on) if initialCount == 0 { let connection = SingleAssignmentDisposable() @@ -60,8 +61,9 @@ final class ShareReplay1 } func synchronizedUnsubscribe(_ disposeKey: DisposeKey) { - _lock.lock(); defer { _lock.unlock() } + _lock.lock() _synchronized_unsubscribe(disposeKey) + _lock.unlock() } func _synchronized_unsubscribe(_ disposeKey: DisposeKey) { @@ -77,13 +79,13 @@ final class ShareReplay1 } func on(_ event: Event) { - _synchronized_on(event).on(event) + dispatch(_synchronized_on(event), event) } - func _synchronized_on(_ event: Event) -> Bag> { + func _synchronized_on(_ event: Event) -> Observers { _lock.lock(); defer { _lock.unlock() } if _stopped { - return Bag() + return Observers() } switch event { @@ -95,7 +97,8 @@ final class ShareReplay1 _connection?.dispose() _connection = nil } - + return _observers } + } diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/ShareReplay1WhileConnected.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/ShareReplay1WhileConnected.swift index fa8c252..bd8d026 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/ShareReplay1WhileConnected.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/ShareReplay1WhileConnected.swift @@ -6,87 +6,150 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -// optimized version of share replay for most common case -final class ShareReplay1WhileConnected - : Observable - , ObserverType +fileprivate final class ShareReplay1WhileConnectedConnection + : ObserverType , SynchronizedUnsubscribeType { + typealias E = Element + typealias Observers = AnyObserver.s + typealias DisposeKey = Observers.KeyType - typealias DisposeKey = Bag>.KeyType + typealias Parent = ShareReplay1WhileConnected + private let _parent: Parent + private let _subscription = SingleAssignmentDisposable() - private let _source: Observable + private let _lock: RecursiveLock + private var _disposed: Bool = false + fileprivate var _observers = Observers() + fileprivate var _element: Element? - private var _lock = NSRecursiveLock() + init(parent: Parent, lock: RecursiveLock) { + _parent = parent + _lock = lock - private var _connection: SingleAssignmentDisposable? - private var _element: Element? - private var _observers = Bag>() - - init(source: Observable) { - self._source = source + #if TRACE_RESOURCES + _ = Resources.incrementTotal() + #endif } - override func subscribe(_ observer: O) -> Disposable where O.E == E { + final func on(_ event: Event) { + _lock.lock() + let observers = _synchronized_on(event) + _lock.unlock() + dispatch(observers, event) + } + + final private func _synchronized_on(_ event: Event) -> Observers { + if _disposed { + return Observers() + } + + switch event { + case .next(let element): + _element = element + return _observers + case .error, .completed: + let observers = _observers + self._synchronized_dispose() + return observers + } + } + + final func connect() { + _subscription.setDisposable(_parent._source.subscribe(self)) + } + + final func _synchronized_subscribe(_ observer: O) -> Disposable where O.E == Element { _lock.lock(); defer { _lock.unlock() } - return _synchronized_subscribe(observer) - } - - func _synchronized_subscribe(_ observer: O) -> Disposable where O.E == E { - if let element = self._element { + if let element = _element { observer.on(.next(element)) } - let initialCount = self._observers.count - - let disposeKey = self._observers.insert(AnyObserver(observer)) - - if initialCount == 0 { - let connection = SingleAssignmentDisposable() - _connection = connection - - connection.setDisposable(self._source.subscribe(self)) - } + let disposeKey = _observers.insert(observer.on) return SubscriptionDisposable(owner: self, key: disposeKey) } - func synchronizedUnsubscribe(_ disposeKey: DisposeKey) { - _lock.lock(); defer { _lock.unlock() } - _synchronized_unsubscribe(disposeKey) + final private func _synchronized_dispose() { + _disposed = true + if _parent._connection === self { + _parent._connection = nil + } + _observers = Observers() + _subscription.dispose() } - func _synchronized_unsubscribe(_ disposeKey: DisposeKey) { + final func synchronizedUnsubscribe(_ disposeKey: DisposeKey) { + _lock.lock() + _synchronized_unsubscribe(disposeKey) + _lock.unlock() + } + + @inline(__always) + final private func _synchronized_unsubscribe(_ disposeKey: DisposeKey) { // if already unsubscribed, just return if self._observers.removeKey(disposeKey) == nil { return } if _observers.count == 0 { - _connection?.dispose() - _connection = nil - _element = nil + _synchronized_dispose() } } - func on(_ event: Event) { - _synchronized_on(event).on(event) + #if TRACE_RESOURCES + deinit { + _ = Resources.decrementTotal() + } + #endif +} + +// optimized version of share replay for most common case +final class ShareReplay1WhileConnected + : Observable { + + fileprivate typealias Connection = ShareReplay1WhileConnectedConnection + + fileprivate let _source: Observable + + fileprivate let _lock = RecursiveLock() + + fileprivate var _connection: Connection? + + init(source: Observable) { + self._source = source } - func _synchronized_on(_ event: Event) -> Bag> { - _lock.lock(); defer { _lock.unlock() } - switch event { - case .next(let element): - _element = element - return _observers - case .error, .completed: - _element = nil - _connection?.dispose() - _connection = nil - let observers = _observers - _observers = Bag() - return observers + override func subscribe(_ observer: O) -> Disposable where O.E == E { + _lock.lock() + + let connection = _synchronized_subscribe(observer) + let count = connection._observers.count + + let disposable = connection._synchronized_subscribe(observer) + + if count == 0 { + connection.connect() } + + _lock.unlock() + + return disposable + } + + @inline(__always) + private func _synchronized_subscribe(_ observer: O) -> Connection where O.E == E { + let connection: Connection + + if let existingConnection = _connection { + connection = existingConnection + } + else { + connection = ShareReplay1WhileConnectedConnection( + parent: self, + lock: _lock) + _connection = connection + } + + return connection } } diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/SingleAsync.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/SingleAsync.swift index 988677d..8ccd310 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/SingleAsync.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/SingleAsync.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class SingleAsyncSink : Sink, ObserverType { +fileprivate final class SingleAsyncSink : Sink, ObserverType { typealias ElementType = O.E typealias Parent = SingleAsync typealias E = ElementType @@ -36,29 +34,29 @@ class SingleAsyncSink : Sink, ObserverType { return } - if _seenValue == false { - _seenValue = true - forwardOn(.next(value)) - } else { + if _seenValue { forwardOn(.error(RxError.moreThanOneElement)) dispose() + return } - + + _seenValue = true + forwardOn(.next(value)) case .error: forwardOn(event) dispose() case .completed: - if (!_seenValue) { - forwardOn(.error(RxError.noElements)) - } else { + if (_seenValue) { forwardOn(.completed) + } else { + forwardOn(.error(RxError.noElements)) } dispose() } } } -class SingleAsync: Producer { +final class SingleAsync: Producer { typealias Predicate = (Element) throws -> Bool fileprivate let _source: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Sink.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Sink.swift index 21e1d78..bd65cc9 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Sink.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Sink.swift @@ -6,13 +6,15 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - class Sink : Disposable { fileprivate let _observer: O fileprivate let _cancel: Cancelable fileprivate var _disposed: Bool + #if DEBUG + fileprivate var _numberOfConcurrentCalls: AtomicInt = 0 + #endif + init(observer: O, cancel: Cancelable) { #if TRACE_RESOURCES let _ = Resources.incrementTotal() @@ -23,6 +25,15 @@ class Sink : Disposable { } final func forwardOn(_ event: Event) { + #if DEBUG + if AtomicIncrement(&_numberOfConcurrentCalls) > 1 { + rxFatalError("Warning: Recursive call or synchronization error!") + } + + defer { + _ = AtomicDecrement(&_numberOfConcurrentCalls) + } + #endif if _disposed { return } @@ -33,7 +44,7 @@ class Sink : Disposable { return SinkForward(forward: self) } - var disposed: Bool { + final var disposed: Bool { return _disposed } @@ -49,7 +60,7 @@ class Sink : Disposable { } } -class SinkForward: ObserverType { +final class SinkForward: ObserverType { typealias E = O.E private let _forward: Sink @@ -58,7 +69,7 @@ class SinkForward: ObserverType { _forward = forward } - func on(_ event: Event) { + final func on(_ event: Event) { switch event { case .next: _forward._observer.on(event) diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Skip.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Skip.swift index 66d4165..df062d1 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Skip.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Skip.swift @@ -6,11 +6,9 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // count version -class SkipCountSink : Sink, ObserverType { +final class SkipCountSink : Sink, ObserverType { typealias Element = O.E typealias Parent = SkipCount @@ -45,7 +43,7 @@ class SkipCountSink : Sink, ObserverType { } -class SkipCount: Producer { +final class SkipCount: Producer { let source: Observable let count: Int @@ -64,7 +62,7 @@ class SkipCount: Producer { // time version -class SkipTimeSink : Sink, ObserverType where O.E == ElementType { +final class SkipTimeSink : Sink, ObserverType where O.E == ElementType { typealias Parent = SkipTime typealias Element = ElementType @@ -109,7 +107,7 @@ class SkipTimeSink : Sink, ObserverType where O } } -class SkipTime: Producer { +final class SkipTime: Producer { let source: Observable let duration: RxTimeInterval let scheduler: SchedulerType diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/SkipUntil.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/SkipUntil.swift index d7c4c73..0e77c94 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/SkipUntil.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/SkipUntil.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class SkipUntilSinkOther +final class SkipUntilSinkOther : ObserverType , LockOwnerType , SynchronizedOnType { @@ -17,7 +15,7 @@ class SkipUntilSinkOther fileprivate let _parent: Parent - var _lock: NSRecursiveLock { + var _lock: RecursiveLock { return _parent._lock } @@ -56,7 +54,7 @@ class SkipUntilSinkOther } -class SkipUntilSink +final class SkipUntilSink : Sink , ObserverType , LockOwnerType @@ -64,7 +62,7 @@ class SkipUntilSink typealias E = O.E typealias Parent = SkipUntil - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() fileprivate let _parent: Parent fileprivate var _forwardElements = false @@ -87,12 +85,12 @@ class SkipUntilSink } case .error: forwardOn(event) - dispose() + self.dispose() case .completed: if _forwardElements { forwardOn(event) } - _sourceSubscription.dispose() + self.dispose() } } @@ -107,7 +105,7 @@ class SkipUntilSink } } -class SkipUntil: Producer { +final class SkipUntil: Producer { fileprivate let _source: Observable fileprivate let _other: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/SkipWhile.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/SkipWhile.swift index a6c1665..0d98423 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/SkipWhile.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/SkipWhile.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -class SkipWhileSink : Sink, ObserverType { +final class SkipWhileSink : Sink, ObserverType { typealias Element = O.E typealias Parent = SkipWhile @@ -42,7 +42,7 @@ class SkipWhileSink : Sink, ObserverType { } } -class SkipWhileSinkWithIndex : Sink, ObserverType { +final class SkipWhileSinkWithIndex : Sink, ObserverType { typealias Element = O.E typealias Parent = SkipWhile @@ -80,7 +80,7 @@ class SkipWhileSinkWithIndex : Sink, ObserverType { } } -class SkipWhile: Producer { +final class SkipWhile: Producer { typealias Predicate = (Element) throws -> Bool typealias PredicateWithIndex = (Element, Int) throws -> Bool diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/StartWith.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/StartWith.swift index a5ac927..24bd16e 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/StartWith.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/StartWith.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class StartWith: Producer { +final class StartWith: Producer { let elements: [Element] let source: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/SubscribeOn.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/SubscribeOn.swift index b2f871c..e299856 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/SubscribeOn.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/SubscribeOn.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class SubscribeOnSink : Sink, ObserverType where Ob.E == O.E { +final class SubscribeOnSink : Sink, ObserverType where Ob.E == O.E { typealias Element = O.E typealias Parent = SubscribeOn @@ -45,7 +43,7 @@ class SubscribeOnSink : Sink, ObserverTy } } -class SubscribeOn : Producer { +final class SubscribeOn : Producer { let source: Ob let scheduler: ImmediateSchedulerType diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Switch.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Switch.swift index 5b8e34f..af1ccad 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Switch.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Switch.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - class SwitchSink : Sink , ObserverType @@ -18,7 +16,7 @@ class SwitchSink fileprivate let _subscriptions: SingleAssignmentDisposable = SingleAssignmentDisposable() fileprivate let _innerSubscription: SerialDisposable = SerialDisposable() - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state fileprivate var _stopped = false @@ -40,7 +38,7 @@ class SwitchSink } func performMap(_ element: SourceType) throws -> S { - abstractMethod() + rxAbstractMethod() } func _synchronized_on(_ event: Event) { @@ -79,7 +77,7 @@ class SwitchSink } } -class SwitchSinkIter +final class SwitchSinkIter : ObserverType , LockOwnerType , SynchronizedOnType where S.E == O.E { @@ -90,7 +88,7 @@ class SwitchSinkIter fileprivate let _id: Int fileprivate let _self: Disposable - var _lock: NSRecursiveLock { + var _lock: RecursiveLock { return _parent._lock } diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/SwitchIfEmpty.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/SwitchIfEmpty.swift new file mode 100644 index 0000000..d447d31 --- /dev/null +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/SwitchIfEmpty.swift @@ -0,0 +1,90 @@ +// +// SwitchIfEmpty.swift +// RxSwift +// +// Created by sergdort on 23/12/2016. +// Copyright © 2016 Krunoslav Zaher. All rights reserved. +// + +final class SwitchIfEmpty: Producer { + + private let _source: Observable + private let _ifEmpty: Observable + + init(source: Observable, ifEmpty: Observable) { + _source = source + _ifEmpty = ifEmpty + } + + override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element { + let sink = SwitchIfEmptySink(ifEmpty: _ifEmpty, + observer: observer, + cancel: cancel) + let subscription = sink.run(_source.asObservable()) + + return (sink: sink, subscription: subscription) + } +} + +final class SwitchIfEmptySink: Sink + , ObserverType { + typealias E = O.E + + private let _ifEmpty: Observable + private var _isEmpty = true + private let _ifEmptySubscription = SingleAssignmentDisposable() + + init(ifEmpty: Observable, observer: O, cancel: Cancelable) { + _ifEmpty = ifEmpty + super.init(observer: observer, cancel: cancel) + } + + func run(_ source: Observable) -> Disposable { + let subscription = source.subscribe(self) + return Disposables.create(subscription, _ifEmptySubscription) + } + + func on(_ event: Event) { + switch event { + case .next: + _isEmpty = false + forwardOn(event) + case .error: + forwardOn(event) + dispose() + case .completed: + guard _isEmpty else { + forwardOn(.completed) + dispose() + return + } + let ifEmptySink = SwitchIfEmptySinkIter(parent: self) + _ifEmptySubscription.setDisposable(_ifEmpty.subscribe(ifEmptySink)) + } + } +} + +final class SwitchIfEmptySinkIter + : ObserverType { + typealias E = O.E + typealias Parent = SwitchIfEmptySink + + private let _parent: Parent + + init(parent: Parent) { + _parent = parent + } + + func on(_ event: Event) { + switch event { + case .next: + _parent.forwardOn(event) + case .error: + _parent.forwardOn(event) + _parent.dispose() + case .completed: + _parent.forwardOn(event) + _parent.dispose() + } + } +} diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Take.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Take.swift index 9ff6c78..f672638 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Take.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Take.swift @@ -6,11 +6,9 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // count version -class TakeCountSink : Sink, ObserverType { +final class TakeCountSink : Sink, ObserverType { typealias E = O.E typealias Parent = TakeCount @@ -49,7 +47,7 @@ class TakeCountSink : Sink, ObserverType { } -class TakeCount: Producer { +final class TakeCount: Producer { fileprivate let _source: Observable fileprivate let _count: Int @@ -70,7 +68,7 @@ class TakeCount: Producer { // time version -class TakeTimeSink +final class TakeTimeSink : Sink , LockOwnerType , ObserverType @@ -80,7 +78,7 @@ class TakeTimeSink fileprivate let _parent: Parent - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() init(parent: Parent, observer: O, cancel: Cancelable) { _parent = parent @@ -123,7 +121,7 @@ class TakeTimeSink } } -class TakeTime : Producer { +final class TakeTime : Producer { typealias TimeInterval = RxTimeInterval fileprivate let _source: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/TakeLast.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/TakeLast.swift index 4159d09..b3778c0 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/TakeLast.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/TakeLast.swift @@ -6,10 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - - -class TakeLastSink : Sink, ObserverType { +final class TakeLastSink : Sink, ObserverType { typealias E = O.E typealias Parent = TakeLast @@ -43,7 +40,7 @@ class TakeLastSink : Sink, ObserverType { } } -class TakeLast: Producer { +final class TakeLast: Producer { fileprivate let _source: Observable fileprivate let _count: Int diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/TakeUntil.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/TakeUntil.swift index 18bbd55..16aa5c3 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/TakeUntil.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/TakeUntil.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class TakeUntilSinkOther +final class TakeUntilSinkOther : ObserverType , LockOwnerType , SynchronizedOnType { @@ -17,7 +15,7 @@ class TakeUntilSinkOther fileprivate let _parent: Parent - var _lock: NSRecursiveLock { + var _lock: RecursiveLock { return _parent._lock } @@ -55,7 +53,7 @@ class TakeUntilSinkOther #endif } -class TakeUntilSink +final class TakeUntilSink : Sink , LockOwnerType , ObserverType @@ -65,7 +63,7 @@ class TakeUntilSink fileprivate let _parent: Parent - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state fileprivate var _open = false @@ -102,7 +100,7 @@ class TakeUntilSink } } -class TakeUntil: Producer { +final class TakeUntil: Producer { fileprivate let _source: Observable fileprivate let _other: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/TakeWhile.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/TakeWhile.swift index a5a0651..249914b 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/TakeWhile.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/TakeWhile.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class TakeWhileSink +final class TakeWhileSink : Sink , ObserverType { typealias Element = O.E @@ -52,7 +50,7 @@ class TakeWhileSink } -class TakeWhileSinkWithIndex +final class TakeWhileSinkWithIndex : Sink , ObserverType { typealias Element = O.E @@ -98,7 +96,7 @@ class TakeWhileSinkWithIndex } -class TakeWhile: Producer { +final class TakeWhile: Producer { typealias Predicate = (Element) throws -> Bool typealias PredicateWithIndex = (Element, Int) throws -> Bool diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Throttle.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Throttle.swift index f9683fe..4274016 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Throttle.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Throttle.swift @@ -6,9 +6,9 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import struct Foundation.Date -class ThrottleSink +final class ThrottleSink : Sink , ObserverType , LockOwnerType @@ -18,7 +18,7 @@ class ThrottleSink private let _parent: ParentType - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state private var _lastUnsentElement: Element? = nil @@ -120,7 +120,7 @@ class ThrottleSink } } -class Throttle : Producer { +final class Throttle : Producer { fileprivate let _source: Observable fileprivate let _dueTime: RxTimeInterval diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Timeout.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Timeout.swift index bf5d31f..b0e7921 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Timeout.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Timeout.swift @@ -6,15 +6,13 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class TimeoutSink: Sink, LockOwnerType, ObserverType { +final class TimeoutSink: Sink, LockOwnerType, ObserverType { typealias E = O.E typealias Parent = Timeout private let _parent: Parent - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() private let _timerD = SerialDisposable() private let _subscription = SerialDisposable() @@ -33,7 +31,7 @@ class TimeoutSink: Sink, LockOwnerType, ObserverType { _createTimeoutTimer() - original.setDisposable(_parent._source.subscribeSafe(self)) + original.setDisposable(_parent._source.subscribe(self)) return Disposables.create(_subscription, _timerD) } @@ -89,7 +87,7 @@ class TimeoutSink: Sink, LockOwnerType, ObserverType { } if timerWins { - self._subscription.disposable = self._parent._other.subscribeSafe(self.forwarder()) + self._subscription.disposable = self._parent._other.subscribe(self.forwarder()) } return Disposables.create() @@ -100,7 +98,7 @@ class TimeoutSink: Sink, LockOwnerType, ObserverType { } -class Timeout : Producer { +final class Timeout : Producer { fileprivate let _source: Observable fileprivate let _dueTime: RxTimeInterval diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Timer.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Timer.swift index 1b55719..15ef01d 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Timer.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Timer.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class TimerSink : Sink where O.E : SignedInteger { +final class TimerSink : Sink where O.E : SignedInteger { typealias Parent = Timer private let _parent: Parent @@ -26,7 +24,7 @@ class TimerSink : Sink where O.E : SignedInteger { } } -class TimerOneOffSink : Sink where O.E : SignedInteger { +final class TimerOneOffSink : Sink where O.E : SignedInteger { typealias Parent = Timer private let _parent: Parent @@ -47,7 +45,7 @@ class TimerOneOffSink : Sink where O.E : SignedInteger { } } -class Timer: Producer { +final class Timer: Producer { fileprivate let _scheduler: SchedulerType fileprivate let _dueTime: RxTimeInterval fileprivate let _period: RxTimeInterval? diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/ToArray.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/ToArray.swift index 623d6e2..59fc912 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/ToArray.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/ToArray.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class ToArraySink : Sink, ObserverType where O.E == [SourceType] { +final class ToArraySink : Sink, ObserverType where O.E == [SourceType] { typealias Parent = ToArray let _parent: Parent @@ -35,7 +33,7 @@ class ToArraySink : Sink, ObserverType where O.E } } -class ToArray : Producer<[SourceType]> { +final class ToArray : Producer<[SourceType]> { let _source: Observable init(source: Observable) { diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Using.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Using.swift index 19b6e00..2df8dc2 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Using.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Using.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class UsingSink : Sink, ObserverType { +final class UsingSink : Sink, ObserverType { typealias SourceType = O.E typealias Parent = Using diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Window.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Window.swift index 4ca7ac4..d2eeb8b 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Window.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Window.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class WindowTimeCountSink +final class WindowTimeCountSink : Sink , ObserverType , LockOwnerType @@ -18,7 +16,7 @@ class WindowTimeCountSink private let _parent: Parent - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() private var _subject = PublishSubject() private var _count = 0 @@ -42,7 +40,7 @@ class WindowTimeCountSink forwardOn(.next(AddRef(source: _subject, refCount: _refCountDisposable).asObservable())) createTimer(_windowId) - let _ = _groupDisposable.insert(_parent._source.subscribeSafe(self)) + let _ = _groupDisposable.insert(_parent._source.subscribe(self)) return _refCountDisposable } @@ -132,7 +130,7 @@ class WindowTimeCountSink } } -class WindowTimeCount : Producer> { +final class WindowTimeCount : Producer> { fileprivate let _timeSpan: RxTimeInterval fileprivate let _count: Int diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/WithLatestFrom.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/WithLatestFrom.swift index c10bf69..2ed17b1 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/WithLatestFrom.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/WithLatestFrom.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class WithLatestFromSink +final class WithLatestFromSink : Sink , ObserverType , LockOwnerType @@ -19,7 +17,7 @@ class WithLatestFromSink fileprivate let _parent: Parent - var _lock = NSRecursiveLock() + var _lock = RecursiveLock() fileprivate var _latest: SecondType? init(parent: Parent, observer: O, cancel: Cancelable) { @@ -64,7 +62,7 @@ class WithLatestFromSink } } -class WithLatestFromSecond +final class WithLatestFromSecond : ObserverType , LockOwnerType , SynchronizedOnType { @@ -76,7 +74,7 @@ class WithLatestFromSecond private let _parent: Parent private let _disposable: Disposable - var _lock: NSRecursiveLock { + var _lock: RecursiveLock { return _parent._lock } @@ -102,7 +100,7 @@ class WithLatestFromSecond } } -class WithLatestFrom: Producer { +final class WithLatestFrom: Producer { typealias ResultSelector = (FirstType, SecondType) throws -> ResultType fileprivate let _first: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Zip+Collection.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Zip+Collection.swift index 60474fd..c9cdb95 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Zip+Collection.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Zip+Collection.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class ZipCollectionTypeSink +final fileprivate class ZipCollectionTypeSink : Sink where C.Iterator.Element : ObservableConvertibleType { typealias R = O.E typealias Parent = ZipCollectionType @@ -16,7 +14,7 @@ class ZipCollectionTypeSink private let _parent: Parent - private let _lock = NSRecursiveLock() + private let _lock = RecursiveLock() // state private var _numberOfValues = 0 @@ -119,7 +117,7 @@ class ZipCollectionTypeSink } } -class ZipCollectionType : Producer where C.Iterator.Element : ObservableConvertibleType { +final class ZipCollectionType : Producer where C.Iterator.Element : ObservableConvertibleType { typealias ResultSelector = ([C.Iterator.Element.E]) throws -> R let sources: C diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Zip+arity.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Zip+arity.swift index b74464f..4f8aaf1 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Zip+arity.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Zip+arity.swift @@ -7,8 +7,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // 2 @@ -32,7 +30,25 @@ extension Observable { } } -class ZipSink2_ : ZipSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever all of the observable sequences have produced an element at a corresponding index. + + - seealso: [zip operator on reactivex.io](http://reactivex.io/documentation/operators/zip.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func zip + (_ source1: O1, _ source2: O2) + -> Observable<(O1.E, O2.E)> { + return Zip2( + source1: source1.asObservable(), source2: source2.asObservable(), + resultSelector: { ($0, $1) } + ) + } +} + +final class ZipSink2_ : ZipSink { typealias R = O.E typealias Parent = Zip2 @@ -79,7 +95,7 @@ class ZipSink2_ : ZipSink { } } -class Zip2 : Producer { +final class Zip2 : Producer { typealias ResultSelector = (E1, E2) throws -> R let source1: Observable @@ -124,7 +140,25 @@ extension Observable { } } -class ZipSink3_ : ZipSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever all of the observable sequences have produced an element at a corresponding index. + + - seealso: [zip operator on reactivex.io](http://reactivex.io/documentation/operators/zip.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func zip + (_ source1: O1, _ source2: O2, _ source3: O3) + -> Observable<(O1.E, O2.E, O3.E)> { + return Zip3( + source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), + resultSelector: { ($0, $1, $2) } + ) + } +} + +final class ZipSink3_ : ZipSink { typealias R = O.E typealias Parent = Zip3 @@ -177,7 +211,7 @@ class ZipSink3_ : ZipSink { } } -class Zip3 : Producer { +final class Zip3 : Producer { typealias ResultSelector = (E1, E2, E3) throws -> R let source1: Observable @@ -224,7 +258,25 @@ extension Observable { } } -class ZipSink4_ : ZipSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever all of the observable sequences have produced an element at a corresponding index. + + - seealso: [zip operator on reactivex.io](http://reactivex.io/documentation/operators/zip.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func zip + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4) + -> Observable<(O1.E, O2.E, O3.E, O4.E)> { + return Zip4( + source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), + resultSelector: { ($0, $1, $2, $3) } + ) + } +} + +final class ZipSink4_ : ZipSink { typealias R = O.E typealias Parent = Zip4 @@ -283,7 +335,7 @@ class ZipSink4_ : ZipSink { } } -class Zip4 : Producer { +final class Zip4 : Producer { typealias ResultSelector = (E1, E2, E3, E4) throws -> R let source1: Observable @@ -332,7 +384,25 @@ extension Observable { } } -class ZipSink5_ : ZipSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever all of the observable sequences have produced an element at a corresponding index. + + - seealso: [zip operator on reactivex.io](http://reactivex.io/documentation/operators/zip.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func zip + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5) + -> Observable<(O1.E, O2.E, O3.E, O4.E, O5.E)> { + return Zip5( + source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), + resultSelector: { ($0, $1, $2, $3, $4) } + ) + } +} + +final class ZipSink5_ : ZipSink { typealias R = O.E typealias Parent = Zip5 @@ -397,7 +467,7 @@ class ZipSink5_ : ZipSink { } } -class Zip5 : Producer { +final class Zip5 : Producer { typealias ResultSelector = (E1, E2, E3, E4, E5) throws -> R let source1: Observable @@ -448,7 +518,25 @@ extension Observable { } } -class ZipSink6_ : ZipSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever all of the observable sequences have produced an element at a corresponding index. + + - seealso: [zip operator on reactivex.io](http://reactivex.io/documentation/operators/zip.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func zip + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6) + -> Observable<(O1.E, O2.E, O3.E, O4.E, O5.E, O6.E)> { + return Zip6( + source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), source6: source6.asObservable(), + resultSelector: { ($0, $1, $2, $3, $4, $5) } + ) + } +} + +final class ZipSink6_ : ZipSink { typealias R = O.E typealias Parent = Zip6 @@ -519,7 +607,7 @@ class ZipSink6_ : ZipSink { } } -class Zip6 : Producer { +final class Zip6 : Producer { typealias ResultSelector = (E1, E2, E3, E4, E5, E6) throws -> R let source1: Observable @@ -572,7 +660,25 @@ extension Observable { } } -class ZipSink7_ : ZipSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever all of the observable sequences have produced an element at a corresponding index. + + - seealso: [zip operator on reactivex.io](http://reactivex.io/documentation/operators/zip.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func zip + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7) + -> Observable<(O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E)> { + return Zip7( + source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), source6: source6.asObservable(), source7: source7.asObservable(), + resultSelector: { ($0, $1, $2, $3, $4, $5, $6) } + ) + } +} + +final class ZipSink7_ : ZipSink { typealias R = O.E typealias Parent = Zip7 @@ -649,7 +755,7 @@ class ZipSink7_ : ZipSink { } } -class Zip7 : Producer { +final class Zip7 : Producer { typealias ResultSelector = (E1, E2, E3, E4, E5, E6, E7) throws -> R let source1: Observable @@ -704,7 +810,25 @@ extension Observable { } } -class ZipSink8_ : ZipSink { +extension ObservableType where E == Any { + /** + Merges the specified observable sequences into one observable sequence of tuples whenever all of the observable sequences have produced an element at a corresponding index. + + - seealso: [zip operator on reactivex.io](http://reactivex.io/documentation/operators/zip.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func zip + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, _ source8: O8) + -> Observable<(O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E, O8.E)> { + return Zip8( + source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), source6: source6.asObservable(), source7: source7.asObservable(), source8: source8.asObservable(), + resultSelector: { ($0, $1, $2, $3, $4, $5, $6, $7) } + ) + } +} + +final class ZipSink8_ : ZipSink { typealias R = O.E typealias Parent = Zip8 @@ -787,7 +911,7 @@ class ZipSink8_ : ZipSink { } } -class Zip8 : Producer { +final class Zip8 : Producer { typealias ResultSelector = (E1, E2, E3, E4, E5, E6, E7, E8) throws -> R let source1: Observable diff --git a/Pods/RxSwift/RxSwift/Observables/Implementations/Zip.swift b/Pods/RxSwift/RxSwift/Observables/Implementations/Zip.swift index 0cd273c..a283bf2 100644 --- a/Pods/RxSwift/RxSwift/Observables/Implementations/Zip.swift +++ b/Pods/RxSwift/RxSwift/Observables/Implementations/Zip.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - protocol ZipSinkProtocol : class { func next(_ index: Int) @@ -20,7 +18,7 @@ class ZipSink : Sink, ZipSinkProtocol { let _arity: Int - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state private var _isDone: [Bool] @@ -33,11 +31,11 @@ class ZipSink : Sink, ZipSinkProtocol { } func getResult() throws -> Element { - abstractMethod() + rxAbstractMethod() } func hasElements(_ index: Int) -> Bool { - abstractMethod() + rxAbstractMethod() } func next(_ index: Int) { @@ -102,7 +100,7 @@ class ZipSink : Sink, ZipSinkProtocol { } } -class ZipObserver +final class ZipObserver : ObserverType , LockOwnerType , SynchronizedOnType { @@ -111,14 +109,14 @@ class ZipObserver private var _parent: ZipSinkProtocol? - let _lock: NSRecursiveLock + let _lock: RecursiveLock // state private let _index: Int private let _this: Disposable private let _setNextValue: ValueSetter - init(lock: NSRecursiveLock, parent: ZipSinkProtocol, index: Int, setNextValue: @escaping ValueSetter, this: Disposable) { + init(lock: RecursiveLock, parent: ZipSinkProtocol, index: Int, setNextValue: @escaping ValueSetter, this: Disposable) { _lock = lock _parent = parent _index = index diff --git a/Pods/RxSwift/RxSwift/Observables/Observable+Aggregate.swift b/Pods/RxSwift/RxSwift/Observables/Observable+Aggregate.swift index 8e7a29d..a25aa09 100644 --- a/Pods/RxSwift/RxSwift/Observables/Observable+Aggregate.swift +++ b/Pods/RxSwift/RxSwift/Observables/Observable+Aggregate.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // MARK: reduce extension ObservableType { diff --git a/Pods/RxSwift/RxSwift/Observables/Observable+Binding.swift b/Pods/RxSwift/RxSwift/Observables/Observable+Binding.swift index dd4a75e..05d6b4d 100644 --- a/Pods/RxSwift/RxSwift/Observables/Observable+Binding.swift +++ b/Pods/RxSwift/RxSwift/Observables/Observable+Binding.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // MARK: multicast extension ObservableType { diff --git a/Pods/RxSwift/RxSwift/Observables/Observable+Concurrency.swift b/Pods/RxSwift/RxSwift/Observables/Observable+Concurrency.swift index ce66ae9..1dbab63 100644 --- a/Pods/RxSwift/RxSwift/Observables/Observable+Concurrency.swift +++ b/Pods/RxSwift/RxSwift/Observables/Observable+Concurrency.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // MARK: observeOn extension ObservableType { diff --git a/Pods/RxSwift/RxSwift/Observables/Observable+Creation.swift b/Pods/RxSwift/RxSwift/Observables/Observable+Creation.swift index 2f3987b..b45a44e 100644 --- a/Pods/RxSwift/RxSwift/Observables/Observable+Creation.swift +++ b/Pods/RxSwift/RxSwift/Observables/Observable+Creation.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - extension Observable { // MARK: create @@ -33,7 +31,7 @@ extension Observable { - returns: An observable sequence with no elements. */ public static func empty() -> Observable { - return Empty() + return EmptyProducer() } // MARK: never @@ -46,7 +44,7 @@ extension Observable { - returns: An observable sequence whose observers will never get called. */ public static func never() -> Observable { - return Never() + return NeverProducer() } // MARK: just @@ -86,7 +84,7 @@ extension Observable { - returns: The observable sequence that terminates with specified error. */ public static func error(_ error: Swift.Error) -> Observable { - return Error(error: error) + return ErrorProducer(error: error) } // MARK: of @@ -203,13 +201,13 @@ extension Observable { /** Converts a optional to an observable sequence. - + - seealso: [from operator on reactivex.io](http://reactivex.io/documentation/operators/from.html) - + - parameter optional: Optional element in the resulting observable sequence. - returns: An observable sequence containing the wrapped value or not from given optional. */ - public static func from(_ optional: E?) -> Observable { + public static func from(optional: E?) -> Observable { return ObservableOptional(optional: optional) } @@ -222,7 +220,7 @@ extension Observable { - parameter: Scheduler to send the optional element on. - returns: An observable sequence containing the wrapped value or not from given optional. */ - public static func from(_ optional: E?, scheduler: ImmediateSchedulerType) -> Observable { + public static func from(optional: E?, scheduler: ImmediateSchedulerType) -> Observable { return ObservableOptionalScheduled(optional: optional, scheduler: scheduler) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Observable+Debug.swift b/Pods/RxSwift/RxSwift/Observables/Observable+Debug.swift index e0f1c71..8b3cc41 100644 --- a/Pods/RxSwift/RxSwift/Observables/Observable+Debug.swift +++ b/Pods/RxSwift/RxSwift/Observables/Observable+Debug.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // MARK: debug extension ObservableType { diff --git a/Pods/RxSwift/RxSwift/Observables/Observable+Multiple.swift b/Pods/RxSwift/RxSwift/Observables/Observable+Multiple.swift index c679683..7c30641 100644 --- a/Pods/RxSwift/RxSwift/Observables/Observable+Multiple.swift +++ b/Pods/RxSwift/RxSwift/Observables/Observable+Multiple.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // MARK: combineLatest extension Observable { @@ -23,6 +21,18 @@ extension Observable { where C.Iterator.Element: ObservableType { return CombineLatestCollectionType(sources: collection, resultSelector: resultSelector) } + + /** + Merges the specified observable sequences into one observable sequence whenever any of the observable sequences produces an element. + + - seealso: [combinelatest operator on reactivex.io](http://reactivex.io/documentation/operators/combinelatest.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func combineLatest(_ collection: C) -> Observable<[Element]> + where C.Iterator.Element: ObservableType, C.Iterator.Element.E == Element { + return CombineLatestCollectionType(sources: collection, resultSelector: { $0 }) + } } // MARK: zip @@ -37,9 +47,22 @@ extension Observable { - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. */ public static func zip(_ collection: C, _ resultSelector: @escaping ([C.Iterator.Element.E]) throws -> Element) -> Observable - where C.Iterator.Element: ObservableType { - return ZipCollectionType(sources: collection, resultSelector: resultSelector) + where C.Iterator.Element: ObservableType { + return ZipCollectionType(sources: collection, resultSelector: resultSelector) } + + /** + Merges the specified observable sequences into one observable sequence whenever all of the observable sequences have produced an element at a corresponding index. + + - seealso: [zip operator on reactivex.io](http://reactivex.io/documentation/operators/zip.html) + + - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. + */ + public static func zip(_ collection: C) -> Observable<[Element]> + where C.Iterator.Element: ObservableType, C.Iterator.Element.E == Element { + return ZipCollectionType(sources: collection, resultSelector: { $0 }) + } + } // MARK: switch @@ -62,6 +85,22 @@ extension ObservableType where E : ObservableConvertibleType { } } +// switchIfEmpty + +extension ObservableType { + /** + Returns the elements of the specified sequence or `switchTo` sequence if the sequence is empty. + + - seealso: [DefaultIfEmpty operator on reactivex.io](http://reactivex.io/documentation/operators/defaultifempty.html) + + - parameter switchTo: Observable sequence being returned when source sequence is empty. + - returns: Observable sequence that contains elements from switchTo sequence if source is empty, otherwise returns source sequence elements. + */ + public func ifEmpty(switchTo other: Observable) -> Observable { + return SwitchIfEmpty(source: asObservable(), ifEmpty: other) + } +} + // MARK: concat extension ObservableType { @@ -115,6 +154,23 @@ extension Observable { where S.Iterator.Element == Observable { return Concat(sources: collection, count: collection.count.toIntMax()) } + + /** + Concatenates all observable sequences in the given collection, as long as the previous observable sequence terminated successfully. + + This operator has tail recursive optimizations that will prevent stack overflow. + + Optimizations will be performed in cases equivalent to following: + + [1, [2, [3, .....].concat()].concat].concat() + + - seealso: [concat operator on reactivex.io](http://reactivex.io/documentation/operators/concat.html) + + - returns: An observable sequence that contains the elements of each given sequence, in sequential order. + */ + public static func concat(_ sources: Observable ...) -> Observable { + return Concat(sources: sources, count: sources.count.toIntMax()) + } } extension ObservableType where E : ObservableConvertibleType { @@ -133,6 +189,44 @@ extension ObservableType where E : ObservableConvertibleType { // MARK: merge +extension Observable { + /** + Merges elements from all observable sequences from collection into a single observable sequence. + + - seealso: [merge operator on reactivex.io](http://reactivex.io/documentation/operators/merge.html) + + - parameter sources: Collection of observable sequences to merge. + - returns: The observable sequence that merges the elements of the observable sequences. + */ + public static func merge(_ sources: C) -> Observable where C.Iterator.Element == Observable { + return MergeArray(sources: Array(sources)) + } + + /** + Merges elements from all observable sequences from array into a single observable sequence. + + - seealso: [merge operator on reactivex.io](http://reactivex.io/documentation/operators/merge.html) + + - parameter sources: Array of observable sequences to merge. + - returns: The observable sequence that merges the elements of the observable sequences. + */ + public static func merge(_ sources: [Observable]) -> Observable { + return MergeArray(sources: sources) + } + + /** + Merges elements from all observable sequences into a single observable sequence. + + - seealso: [merge operator on reactivex.io](http://reactivex.io/documentation/operators/merge.html) + + - parameter sources: Collection of observable sequences to merge. + - returns: The observable sequence that merges the elements of the observable sequences. + */ + public static func merge(_ sources: Observable...) -> Observable { + return MergeArray(sources: sources) + } +} + extension ObservableType where E : ObservableConvertibleType { /** diff --git a/Pods/RxSwift/RxSwift/Observables/Observable+Single.swift b/Pods/RxSwift/RxSwift/Observables/Observable+Single.swift index d0e38bb..50f60a3 100644 --- a/Pods/RxSwift/RxSwift/Observables/Observable+Single.swift +++ b/Pods/RxSwift/RxSwift/Observables/Observable+Single.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // MARK: distinct until changed extension ObservableType where E: Equatable { @@ -79,10 +77,11 @@ extension ObservableType { - parameter onError: Action to invoke upon errored termination of the observable sequence. - parameter onCompleted: Action to invoke upon graceful termination of the observable sequence. - parameter onSubscribe: Action to invoke before subscribing to source observable sequence. + - parameter onSubscribed: Action to invoke after subscribing to source observable sequence. - parameter onDispose: Action to invoke after subscription to source observable has been disposed for any reason. It can be either because sequence terminates for some reason or observer subscription being disposed. - returns: The source sequence with the side-effecting behavior applied. */ - public func `do`(onNext: ((E) throws -> Void)? = nil, onError: ((Swift.Error) throws -> Void)? = nil, onCompleted: (() throws -> Void)? = nil, onSubscribe: (() -> ())? = nil, onDispose: (() -> ())? = nil) + public func `do`(onNext: ((E) throws -> Void)? = nil, onError: ((Swift.Error) throws -> Void)? = nil, onCompleted: (() throws -> Void)? = nil, onSubscribe: (() -> ())? = nil, onSubscribed: (() -> ())? = nil, onDispose: (() -> ())? = nil) -> Observable { return Do(source: self.asObservable(), eventHandler: { e in switch e { @@ -93,7 +92,7 @@ extension ObservableType { case .completed: try onCompleted?() } - }, onSubscribe: onSubscribe, onDispose: onDispose) + }, onSubscribe: onSubscribe, onSubscribed: onSubscribed, onDispose: onDispose) } } @@ -196,3 +195,37 @@ extension ObservableType { return Scan(source: self.asObservable(), seed: seed, accumulator: accumulator) } } + +// MARK: defaultIfEmpty + +extension ObservableType { + + /** + Emits elements from the source observable sequence, or a default element if the source observable sequence is empty. + + - seealso: [DefaultIfEmpty operator on reactivex.io](http://reactivex.io/documentation/operators/defaultifempty.html) + + - parameter default: Default element to be sent if the source does not emit any elements + - returns: An observable sequence which emits default element end completes in case the original sequence is empty + */ + public func ifEmpty(default: E) -> Observable { + return DefaultIfEmpty(source: self.asObservable(), default: `default`) + } +} + +extension ObservableType { + + /** + Skips elements and completes (or errors) when the receiver completes (or errors). Equivalent to filter that always returns false. + + - seealso: [ignoreElements operator on reactivex.io](http://reactivex.io/documentation/operators/ignoreelements.html) + + - returns: An observable sequence that skips all elements of the source sequence. + */ + public func ignoreElements() + -> Observable { + return filter { _ -> Bool in + return false + } + } +} diff --git a/Pods/RxSwift/RxSwift/Observables/Observable+StandardSequenceOperators.swift b/Pods/RxSwift/RxSwift/Observables/Observable+StandardSequenceOperators.swift index 4dd53f8..49e9cd4 100644 --- a/Pods/RxSwift/RxSwift/Observables/Observable+StandardSequenceOperators.swift +++ b/Pods/RxSwift/RxSwift/Observables/Observable+StandardSequenceOperators.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // MARK: filter aka where extension ObservableType { @@ -259,12 +257,12 @@ extension ObservableType { extension ObservableType { /** - Returns a sequence emitting only item _n_ emitted by an Observable + Returns a sequence emitting only element _n_ emitted by an Observable - seealso: [elementAt operator on reactivex.io](http://reactivex.io/documentation/operators/elementat.html) - - parameter index: The index of the required item (starting from 0). - - returns: An observable sequence that emits the desired item as its own sole emission. + - parameter index: The index of the required element (starting from 0). + - returns: An observable sequence that emits the desired element as its own sole emission. */ public func elementAt(_ index: Int) -> Observable { @@ -277,12 +275,12 @@ extension ObservableType { extension ObservableType { /** - The single operator is similar to first, but throws a `RxError.NoElements` or `RxError.MoreThanOneElement` - if the source Observable does not emit exactly one item before successfully completing. + The single operator is similar to first, but throws a `RxError.noElements` or `RxError.moreThanOneElement` + if the source Observable does not emit exactly one element before successfully completing. - seealso: [single operator on reactivex.io](http://reactivex.io/documentation/operators/first.html) - - returns: An observable sequence that emits a single item or throws an exception if more (or none) of them are emitted. + - returns: An observable sequence that emits a single element or throws an exception if more (or none) of them are emitted. */ public func single() -> Observable { @@ -291,16 +289,32 @@ extension ObservableType { /** The single operator is similar to first, but throws a `RxError.NoElements` or `RxError.MoreThanOneElement` - if the source Observable does not emit exactly one item before successfully completing. + if the source Observable does not emit exactly one element before successfully completing. - seealso: [single operator on reactivex.io](http://reactivex.io/documentation/operators/first.html) - parameter predicate: A function to test each source element for a condition. - - returns: An observable sequence that emits a single item or throws an exception if more (or none) of them are emitted. + - returns: An observable sequence that emits a single element or throws an exception if more (or none) of them are emitted. */ public func single(_ predicate: @escaping (E) throws -> Bool) -> Observable { return SingleAsync(source: asObservable(), predicate: predicate) } - +} + +// MARK: groupBy + +extension ObservableType { + /* + Groups the elements of an observable sequence according to a specified key selector function. + + - seealso: [groupBy operator on reactivex.io](http://reactivex.io/documentation/operators/groupby.html) + + - parameter keySelector: A function to extract the key for each element. + - returns: A sequence of observable groups, each of which corresponds to a unique key value, containing all elements that share that same key value. + */ + public func groupBy(keySelector: @escaping (E) throws -> K) + -> Observable> { + return GroupBy(source: self.asObservable(), selector: keySelector) + } } diff --git a/Pods/RxSwift/RxSwift/Observables/Observable+Time.swift b/Pods/RxSwift/RxSwift/Observables/Observable+Time.swift index b4b86c7..d157d3e 100644 --- a/Pods/RxSwift/RxSwift/Observables/Observable+Time.swift +++ b/Pods/RxSwift/RxSwift/Observables/Observable+Time.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - // MARK: throttle extension ObservableType { @@ -20,7 +18,7 @@ extension ObservableType { - parameter dueTime: Throttling duration for each element. - parameter latest: Should latest element received in a dueTime wide time window since last element emission be emitted. - - parameter scheduler: Scheduler to run the throttle timers and send events on. + - parameter scheduler: Scheduler to run the throttle timers on. - returns: The throttled sequence. */ public func throttle(_ dueTime: RxTimeInterval, latest: Bool = true, scheduler: SchedulerType) @@ -34,7 +32,7 @@ extension ObservableType { - seealso: [debounce operator on reactivex.io](http://reactivex.io/documentation/operators/debounce.html) - parameter dueTime: Throttling duration for each element. - - parameter scheduler: Scheduler to run the throttle timers and send events on. + - parameter scheduler: Scheduler to run the throttle timers on. - returns: The throttled sequence. */ public func debounce(_ dueTime: RxTimeInterval, scheduler: SchedulerType) @@ -145,25 +143,6 @@ extension ObservableType { } } -// MARK: ignoreElements - -extension ObservableType { - - /** - Skips elements and completes (or errors) when the receiver completes (or errors). Equivalent to filter that always returns false. - - - seealso: [ignoreElements operator on reactivex.io](http://reactivex.io/documentation/operators/ignoreelements.html) - - - returns: An observable sequence that skips all elements of the source sequence. - */ - public func ignoreElements() - -> Observable { - return filter { _ -> Bool in - return false - } - } -} - // MARK: delaySubscription extension ObservableType { @@ -236,7 +215,7 @@ extension ObservableType { - parameter dueTime: Maximum duration between values before a timeout occurs. - parameter scheduler: Scheduler to run the timeout timer on. - - returns: An observable sequence with a TimeoutError in case of a timeout. + - returns: An observable sequence with a `RxError.timeout` in case of a timeout. */ public func timeout(_ dueTime: RxTimeInterval, scheduler: SchedulerType) -> Observable { diff --git a/Pods/RxSwift/RxSwift/ObserverType.swift b/Pods/RxSwift/RxSwift/ObserverType.swift index 3447e5e..b024b0f 100644 --- a/Pods/RxSwift/RxSwift/ObserverType.swift +++ b/Pods/RxSwift/RxSwift/ObserverType.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Supports push-style iteration over an observable sequence. public protocol ObserverType { /// The type of elements in sequence that observer can observe. diff --git a/Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift b/Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift index 4abc816..54e83f5 100644 --- a/Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift +++ b/Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - -class AnonymousObserver : ObserverBase { +final class AnonymousObserver : ObserverBase { typealias Element = ElementType typealias EventHandler = (Event) -> Void diff --git a/Pods/RxSwift/RxSwift/Observers/ObserverBase.swift b/Pods/RxSwift/RxSwift/Observers/ObserverBase.swift index 7a6ebe6..3811565 100644 --- a/Pods/RxSwift/RxSwift/Observers/ObserverBase.swift +++ b/Pods/RxSwift/RxSwift/Observers/ObserverBase.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - class ObserverBase : Disposable, ObserverType { typealias E = ElementType @@ -20,17 +18,14 @@ class ObserverBase : Disposable, ObserverType { onCore(event) } case .error, .completed: - - if !AtomicCompareAndSwap(0, 1, &_isStopped) { - return + if AtomicCompareAndSwap(0, 1, &_isStopped) { + onCore(event) } - - onCore(event) } } func onCore(_ event: Event) { - abstractMethod() + rxAbstractMethod() } func dispose() { diff --git a/Pods/RxSwift/RxSwift/Observers/TailRecursiveSink.swift b/Pods/RxSwift/RxSwift/Observers/TailRecursiveSink.swift index 2f9464d..332e6d2 100644 --- a/Pods/RxSwift/RxSwift/Observers/TailRecursiveSink.swift +++ b/Pods/RxSwift/RxSwift/Observers/TailRecursiveSink.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - enum TailRecursiveSinkCommand { case moveNext case dispose @@ -64,7 +62,7 @@ class TailRecursiveSink } func extract(_ observable: Observable) -> SequenceGenerator? { - abstractMethod() + rxAbstractMethod() } // should be done on gate locked @@ -122,18 +120,18 @@ class TailRecursiveSink } } while next == nil - if next == nil { + guard let existingNext = next else { done() return } let disposable = SingleAssignmentDisposable() _subscription.disposable = disposable - disposable.setDisposable(subscribeToNext(next!)) + disposable.setDisposable(subscribeToNext(existingNext)) } func subscribeToNext(_ source: Observable) -> Disposable { - abstractMethod() + rxAbstractMethod() } func disposeCommand() { diff --git a/Pods/RxSwift/RxSwift/Reactive.swift b/Pods/RxSwift/RxSwift/Reactive.swift index 57ecab7..b873996 100644 --- a/Pods/RxSwift/RxSwift/Reactive.swift +++ b/Pods/RxSwift/RxSwift/Reactive.swift @@ -68,7 +68,7 @@ extension ReactiveCompatible { } } -import Foundation +import class Foundation.NSObject /// Extend NSObject with `rx` proxy. extension NSObject: ReactiveCompatible { } diff --git a/Pods/RxSwift/RxSwift/Rx.swift b/Pods/RxSwift/RxSwift/Rx.swift index 18a99b1..93b066e 100644 --- a/Pods/RxSwift/RxSwift/Rx.swift +++ b/Pods/RxSwift/RxSwift/Rx.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - #if TRACE_RESOURCES fileprivate var resourceCount: AtomicInt = 0 @@ -35,13 +33,21 @@ import Foundation #endif /// Swift does not implement abstract methods. This method is used as a runtime check to ensure that methods which intended to be abstract (i.e., they should be implemented in subclasses) are not called directly on the superclass. -func abstractMethod() -> Swift.Never { - rxFatalError("Abstract method") +func rxAbstractMethod(file: StaticString = #file, line: UInt = #line) -> Swift.Never { + rxFatalError("Abstract method", file: file, line: line) } -func rxFatalError(_ lastMessage: String) -> Swift.Never { +func rxFatalError(_ lastMessage: @autoclosure () -> String, file: StaticString = #file, line: UInt = #line) -> Swift.Never { // The temptation to comment this line is great, but please don't, it's for your own good. The choice is yours. - fatalError(lastMessage) + fatalError(lastMessage(), file: file, line: line) +} + +func rxFatalErrorInDebug(_ lastMessage: @autoclosure () -> String, file: StaticString = #file, line: UInt = #line) { + #if DEBUG + fatalError(lastMessage(), file: file, line: line) + #else + print("\(file):\(line): \(lastMessage())") + #endif } func incrementChecked(_ i: inout Int) throws -> Int { diff --git a/Pods/RxSwift/RxSwift/RxMutableBox.swift b/Pods/RxSwift/RxSwift/RxMutableBox.swift index 7606b99..7f3c333 100644 --- a/Pods/RxSwift/RxSwift/RxMutableBox.swift +++ b/Pods/RxSwift/RxSwift/RxMutableBox.swift @@ -6,10 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Creates mutable reference wrapper for any type. -class RxMutableBox : CustomDebugStringConvertible { +final class RxMutableBox : CustomDebugStringConvertible { /// Wrapped value var value : T diff --git a/Pods/RxSwift/RxSwift/SchedulerType.swift b/Pods/RxSwift/RxSwift/SchedulerType.swift index 3c329ba..bdfcf8b 100644 --- a/Pods/RxSwift/RxSwift/SchedulerType.swift +++ b/Pods/RxSwift/RxSwift/SchedulerType.swift @@ -6,7 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import struct Foundation.TimeInterval +import struct Foundation.Date // Type that represents time interval in the context of RxSwift. public typealias RxTimeInterval = TimeInterval diff --git a/Pods/RxSwift/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift b/Pods/RxSwift/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift index f4c202b..d7ec3d8 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift @@ -6,7 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import struct Foundation.Date +import struct Foundation.TimeInterval import Dispatch /// Abstracts the work that needs to be performed on a specific `dispatch_queue_t`. You can also pass a serial dispatch queue, it shouldn't cause any problems. diff --git a/Pods/RxSwift/RxSwift/Schedulers/ConcurrentMainScheduler.swift b/Pods/RxSwift/RxSwift/Schedulers/ConcurrentMainScheduler.swift index 6feaedd..92028b1 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/ConcurrentMainScheduler.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/ConcurrentMainScheduler.swift @@ -6,7 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import struct Foundation.Date +import struct Foundation.TimeInterval import Dispatch /** diff --git a/Pods/RxSwift/RxSwift/Schedulers/CurrentThreadScheduler.swift b/Pods/RxSwift/RxSwift/Schedulers/CurrentThreadScheduler.swift index 8a49ce0..cbdb98d 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/CurrentThreadScheduler.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/CurrentThreadScheduler.swift @@ -6,15 +6,36 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import class Foundation.NSObject +import protocol Foundation.NSCopying +import class Foundation.Thread import Dispatch -let CurrentThreadSchedulerKeyInstance = "RxSwift.CurrentThreadScheduler.SchedulerKey" -let CurrentThreadSchedulerQueueKeyInstance = "RxSwift.CurrentThreadScheduler.Queue" +#if os(Linux) + import struct Foundation.pthread_key_t + import func Foundation.pthread_setspecific + import func Foundation.pthread_getspecific + import func Foundation.pthread_key_create + + fileprivate enum CurrentThreadSchedulerQueueKey { + fileprivate static let instance = "RxSwift.CurrentThreadScheduler.Queue" + } +#else + fileprivate class CurrentThreadSchedulerQueueKey: NSObject, NSCopying { + static let instance = CurrentThreadSchedulerQueueKey() + private override init() { + super.init() + } -typealias CurrentThreadSchedulerValue = NSString -let CurrentThreadSchedulerValueInstance = "RxSwift.CurrentThreadScheduler.SchedulerKey" as NSString + override var hash: Int { + return 0 + } + public func copy(with zone: NSZone? = nil) -> Any { + return self + } + } +#endif /// Represents an object that schedules units of work on the current thread. /// @@ -27,23 +48,37 @@ public class CurrentThreadScheduler : ImmediateSchedulerType { /// The singleton instance of the current thread scheduler. public static let instance = CurrentThreadScheduler() + private static var isScheduleRequiredKey: pthread_key_t = { () -> pthread_key_t in + let key = UnsafeMutablePointer.allocate(capacity: 1) + if pthread_key_create(key, nil) != 0 { + rxFatalError("isScheduleRequired key creation failed") + } + + return key.pointee + }() + + private static var scheduleInProgressSentinel: UnsafeRawPointer = { () -> UnsafeRawPointer in + return UnsafeRawPointer(UnsafeMutablePointer.allocate(capacity: 1)) + }() + static var queue : ScheduleQueue? { get { - return Thread.getThreadLocalStorageValueForKey(CurrentThreadSchedulerQueueKeyInstance) + return Thread.getThreadLocalStorageValueForKey(CurrentThreadSchedulerQueueKey.instance) } set { - Thread.setThreadLocalStorageValue(newValue, forKey: CurrentThreadSchedulerQueueKeyInstance) + Thread.setThreadLocalStorageValue(newValue, forKey: CurrentThreadSchedulerQueueKey.instance) } } /// Gets a value that indicates whether the caller must call a `schedule` method. public static fileprivate(set) var isScheduleRequired: Bool { get { - let value: CurrentThreadSchedulerValue? = Thread.getThreadLocalStorageValueForKey(CurrentThreadSchedulerKeyInstance) - return value == nil + return pthread_getspecific(CurrentThreadScheduler.isScheduleRequiredKey) == nil } set(isScheduleRequired) { - Thread.setThreadLocalStorageValue(isScheduleRequired ? nil : CurrentThreadSchedulerValueInstance, forKey: CurrentThreadSchedulerKeyInstance) + if pthread_setspecific(CurrentThreadScheduler.isScheduleRequiredKey, isScheduleRequired ? nil : scheduleInProgressSentinel) != 0 { + rxFatalError("pthread_setspecific failed") + } } } diff --git a/Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift b/Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift index fede60e..11af238 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import struct Foundation.Date /// Provides a virtual time scheduler that uses `Date` for absolute time and `NSTimeInterval` for relative time. public class HistoricalScheduler : VirtualTimeScheduler { diff --git a/Pods/RxSwift/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift b/Pods/RxSwift/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift index 2ef349a..3602d2d 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import struct Foundation.Date /// Converts historial virtual time into real time. /// diff --git a/Pods/RxSwift/RxSwift/Schedulers/ImmediateScheduler.swift b/Pods/RxSwift/RxSwift/Schedulers/ImmediateScheduler.swift index f3e1635..d411dac 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/ImmediateScheduler.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/ImmediateScheduler.swift @@ -6,10 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Represents an object that schedules units of work to run immediately on the current thread. -private class ImmediateScheduler : ImmediateSchedulerType { +private final class ImmediateScheduler : ImmediateSchedulerType { private let _asyncLock = AsyncLock() diff --git a/Pods/RxSwift/RxSwift/Schedulers/Internal/AnonymousInvocable.swift b/Pods/RxSwift/RxSwift/Schedulers/Internal/AnonymousInvocable.swift index b3a19af..8d1d965 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/Internal/AnonymousInvocable.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/Internal/AnonymousInvocable.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - struct AnonymousInvocable : InvocableType { private let _action: () -> () diff --git a/Pods/RxSwift/RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift b/Pods/RxSwift/RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift index be7040c..dc191b1 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift @@ -6,8 +6,8 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import Foundation import Dispatch +import struct Foundation.TimeInterval struct DispatchQueueConfiguration { let queue: DispatchQueue diff --git a/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift b/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift index 54c7f19..90445f8 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - struct InvocableScheduledItem : InvocableType { let _invocable: I diff --git a/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift b/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift index 1f95c66..0dba433 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - protocol InvocableType { func invoke() } diff --git a/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift b/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift index c03b2eb..454fb34 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - struct ScheduledItem : ScheduledItemType , InvocableType { diff --git a/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift b/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift index a5f0b0b..d2b16ca 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - protocol ScheduledItemType : Cancelable , InvocableType { diff --git a/Pods/RxSwift/RxSwift/Schedulers/MainScheduler.swift b/Pods/RxSwift/RxSwift/Schedulers/MainScheduler.swift index 5adfa78..7d2ac21 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/MainScheduler.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/MainScheduler.swift @@ -6,7 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation import Dispatch /** diff --git a/Pods/RxSwift/RxSwift/Schedulers/OperationQueueScheduler.swift b/Pods/RxSwift/RxSwift/Schedulers/OperationQueueScheduler.swift index 957f053..82d30fb 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/OperationQueueScheduler.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/OperationQueueScheduler.swift @@ -6,7 +6,9 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import class Foundation.OperationQueue +import class Foundation.BlockOperation +import Dispatch /// Abstracts the work that needs to be performed on a specific `NSOperationQueue`. /// diff --git a/Pods/RxSwift/RxSwift/Schedulers/RecursiveScheduler.swift b/Pods/RxSwift/RxSwift/Schedulers/RecursiveScheduler.swift index fd9992b..24d19cc 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/RecursiveScheduler.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/RecursiveScheduler.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - fileprivate enum ScheduleState { case initial case added(CompositeDisposable.DisposeKey) @@ -15,11 +13,11 @@ fileprivate enum ScheduleState { } /// Type erased recursive scheduler. -class AnyRecursiveScheduler { +final class AnyRecursiveScheduler { typealias Action = (State, AnyRecursiveScheduler) -> Void - private let _lock = NSRecursiveLock() + private let _lock = RecursiveLock() // state private let _group = CompositeDisposable() @@ -150,7 +148,7 @@ class AnyRecursiveScheduler { } /// Type erased recursive scheduler. -class RecursiveImmediateScheduler { +final class RecursiveImmediateScheduler { typealias Action = (_ state: State, _ recurse: (State) -> Void) -> Void private var _lock = SpinLock() diff --git a/Pods/RxSwift/RxSwift/Schedulers/SchedulerServices+Emulation.swift b/Pods/RxSwift/RxSwift/Schedulers/SchedulerServices+Emulation.swift index 9374fc5..1d22477 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/SchedulerServices+Emulation.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/SchedulerServices+Emulation.swift @@ -6,14 +6,12 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - enum SchedulePeriodicRecursiveCommand { case tick case dispatchStart } -class SchedulePeriodicRecursive { +final class SchedulePeriodicRecursive { typealias RecursiveAction = (State) -> State typealias RecursiveScheduler = AnyRecursiveScheduler diff --git a/Pods/RxSwift/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift b/Pods/RxSwift/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift index fab8cbe..a163406 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift @@ -6,7 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation +import struct Foundation.TimeInterval +import struct Foundation.Date import Dispatch /** diff --git a/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeConverterType.swift b/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeConverterType.swift index f7aa87a..b207836 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeConverterType.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeConverterType.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Parametrization for virtual time used by `VirtualTimeScheduler`s. public protocol VirtualTimeConverterType { /// Virtual time unit used that represents ticks of virtual clock. diff --git a/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeScheduler.swift b/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeScheduler.swift index 2956c4b..0e650c6 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeScheduler.swift +++ b/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeScheduler.swift @@ -6,8 +6,6 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import Foundation - /// Base class for virtual time schedulers using a priority queue for scheduled items. open class VirtualTimeScheduler : SchedulerType { @@ -234,7 +232,7 @@ extension VirtualTimeScheduler: CustomDebugStringConvertible { } } -class VirtualSchedulerItem