From f7e1fbb0136f11e8a4d76bfa254603b080b545d1 Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 9 Jun 2021 14:10:10 +0600 Subject: [PATCH 1/3] Add Swift Package --- CHANGELOG.md | 79 -- Cartfile | 1 - Cartfile.resolved | 1 - Example/Podfile | 33 - Example/Podfile.lock | 48 - Example/ReCaptcha.xcodeproj/project.pbxproj | 862 ------------------ .../contents.xcworkspacedata | 7 - .../xcschemes/ReCaptcha-Example.xcscheme | 135 --- .../xcschemes/ReCaptcha_UITests.xcscheme | 90 -- .../contents.xcworkspacedata | 10 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - Example/ReCaptcha/.swiftlint.yml | 2 - Example/ReCaptcha/AppDelegate.swift | 24 - Example/ReCaptcha/Base.lproj/LaunchScreen.xib | 42 - Example/ReCaptcha/Base.lproj/Main.storyboard | 122 --- .../AppIcon.appiconset/Contents.json | 53 -- Example/ReCaptcha/Info.plist | 45 - Example/ReCaptcha/ViewController.swift | 134 --- Example/ReCaptcha_Tests/.swiftlint.yml | 9 - .../Core/DispatchQueue__Tests.swift | 197 ---- .../Core/ReCaptchaDecoder__Tests.swift | 243 ----- .../Core/ReCaptchaResult__Tests.swift | 39 - .../Core/ReCaptchaWebViewManager__Tests.swift | 435 --------- .../Core/ReCaptcha_Endpoint__Tests.swift | 27 - .../Core/ReCaptcha__Tests.swift | 135 --- .../Helpers/ReCaptchaDecoder+Helper.swift | 55 -- .../Helpers/ReCaptchaError+Equatable.swift | 42 - .../ReCaptchaWebViewManager+Helpers.swift | 50 - .../Helpers/Result+Helpers.swift | 22 - Example/ReCaptcha_Tests/Info.plist | 22 - .../RxSwift/ReCaptcha+Rx__Tests.swift | 265 ------ Example/ReCaptcha_Tests/mock.html | 33 - Example/ReCaptcha_UITests/.swiftlint.yml | 5 - Example/ReCaptcha_UITests/Info.plist | 22 - .../ReCaptcha_UITests/ReCaptcha_UITests.swift | 51 -- Gemfile | 5 - Gemfile.lock | 266 ------ LICENSE | 19 - Package.swift | 30 + README.md | 116 +-- ReCaptcha-Carthage.xcodeproj/project.pbxproj | 561 ------------ .../contents.xcworkspacedata | 7 - .../xcshareddata/xcschemes/ReCaptcha.xcscheme | 73 -- .../xcschemes/ReCaptcha/RxSwift.xcscheme | 82 -- .../xcschemes/ReCaptcha_RxSwift.xcscheme | 82 -- ReCaptcha-Carthage/Info.plist | 24 - ReCaptcha-Carthage/ReCaptcha-Carthage.h | 19 - ReCaptcha.podspec | 38 - ReCaptcha/Classes/Rx/ReCaptcha+Rx.swift | 84 -- ReCaptcha_RxSwift/Info.plist | 24 - ReCaptcha_RxSwift/ReCaptcha_RxSwift.h | 21 - .../ReCaptcha}/DispatchQueue+Throttle.swift | 0 .../ReCaptcha}/ReCaptcha.swift | 16 - .../ReCaptcha}/ReCaptchaDecoder.swift | 0 .../ReCaptcha}/ReCaptchaError.swift | 0 .../ReCaptcha}/ReCaptchaResult.swift | 0 .../ReCaptcha}/ReCaptchaWebViewManager.swift | 0 .../ReCaptcha}/String+Dict.swift | 0 .../ReCaptcha}/recaptcha.html | 0 Tests/ReCaptchaTests/ReCaptchaTests.swift | 11 + _Pods.xcodeproj | 1 - carthage.sh | 17 - codecov.yml | 26 - example-v2-key.png | Bin 55205 -> 0 bytes example.gif | Bin 222418 -> 0 bytes example2.gif | Bin 49446 -> 0 bytes fastlane/Fastfile | 169 ---- fastlane/actions/codecov | 1 - fastlane/actions/codecov.rb | 1 - pre-push.sh | 10 - 70 files changed, 42 insertions(+), 5009 deletions(-) delete mode 100644 CHANGELOG.md delete mode 100644 Cartfile delete mode 100644 Cartfile.resolved delete mode 100644 Example/Podfile delete mode 100644 Example/Podfile.lock delete mode 100644 Example/ReCaptcha.xcodeproj/project.pbxproj delete mode 100644 Example/ReCaptcha.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Example/ReCaptcha.xcodeproj/xcshareddata/xcschemes/ReCaptcha-Example.xcscheme delete mode 100644 Example/ReCaptcha.xcodeproj/xcshareddata/xcschemes/ReCaptcha_UITests.xcscheme delete mode 100644 Example/ReCaptcha.xcworkspace/contents.xcworkspacedata delete mode 100644 Example/ReCaptcha.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 Example/ReCaptcha/.swiftlint.yml delete mode 100644 Example/ReCaptcha/AppDelegate.swift delete mode 100644 Example/ReCaptcha/Base.lproj/LaunchScreen.xib delete mode 100644 Example/ReCaptcha/Base.lproj/Main.storyboard delete mode 100644 Example/ReCaptcha/Images.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 Example/ReCaptcha/Info.plist delete mode 100644 Example/ReCaptcha/ViewController.swift delete mode 100644 Example/ReCaptcha_Tests/.swiftlint.yml delete mode 100644 Example/ReCaptcha_Tests/Core/DispatchQueue__Tests.swift delete mode 100644 Example/ReCaptcha_Tests/Core/ReCaptchaDecoder__Tests.swift delete mode 100644 Example/ReCaptcha_Tests/Core/ReCaptchaResult__Tests.swift delete mode 100644 Example/ReCaptcha_Tests/Core/ReCaptchaWebViewManager__Tests.swift delete mode 100644 Example/ReCaptcha_Tests/Core/ReCaptcha_Endpoint__Tests.swift delete mode 100644 Example/ReCaptcha_Tests/Core/ReCaptcha__Tests.swift delete mode 100644 Example/ReCaptcha_Tests/Helpers/ReCaptchaDecoder+Helper.swift delete mode 100644 Example/ReCaptcha_Tests/Helpers/ReCaptchaError+Equatable.swift delete mode 100644 Example/ReCaptcha_Tests/Helpers/ReCaptchaWebViewManager+Helpers.swift delete mode 100644 Example/ReCaptcha_Tests/Helpers/Result+Helpers.swift delete mode 100644 Example/ReCaptcha_Tests/Info.plist delete mode 100644 Example/ReCaptcha_Tests/RxSwift/ReCaptcha+Rx__Tests.swift delete mode 100644 Example/ReCaptcha_Tests/mock.html delete mode 100644 Example/ReCaptcha_UITests/.swiftlint.yml delete mode 100644 Example/ReCaptcha_UITests/Info.plist delete mode 100644 Example/ReCaptcha_UITests/ReCaptcha_UITests.swift delete mode 100644 Gemfile delete mode 100644 Gemfile.lock delete mode 100644 LICENSE create mode 100644 Package.swift delete mode 100644 ReCaptcha-Carthage.xcodeproj/project.pbxproj delete mode 100644 ReCaptcha-Carthage.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 ReCaptcha-Carthage.xcodeproj/xcshareddata/xcschemes/ReCaptcha.xcscheme delete mode 100644 ReCaptcha-Carthage.xcodeproj/xcshareddata/xcschemes/ReCaptcha/RxSwift.xcscheme delete mode 100644 ReCaptcha-Carthage.xcodeproj/xcshareddata/xcschemes/ReCaptcha_RxSwift.xcscheme delete mode 100644 ReCaptcha-Carthage/Info.plist delete mode 100644 ReCaptcha-Carthage/ReCaptcha-Carthage.h delete mode 100644 ReCaptcha.podspec delete mode 100644 ReCaptcha/Classes/Rx/ReCaptcha+Rx.swift delete mode 100644 ReCaptcha_RxSwift/Info.plist delete mode 100644 ReCaptcha_RxSwift/ReCaptcha_RxSwift.h rename {ReCaptcha/Classes => Sources/ReCaptcha}/DispatchQueue+Throttle.swift (100%) rename {ReCaptcha/Classes => Sources/ReCaptcha}/ReCaptcha.swift (99%) rename {ReCaptcha/Classes => Sources/ReCaptcha}/ReCaptchaDecoder.swift (100%) rename {ReCaptcha/Classes => Sources/ReCaptcha}/ReCaptchaError.swift (100%) rename {ReCaptcha/Classes => Sources/ReCaptcha}/ReCaptchaResult.swift (100%) rename {ReCaptcha/Classes => Sources/ReCaptcha}/ReCaptchaWebViewManager.swift (100%) rename {ReCaptcha/Classes => Sources/ReCaptcha}/String+Dict.swift (100%) rename {ReCaptcha/Assets => Sources/ReCaptcha}/recaptcha.html (100%) create mode 100644 Tests/ReCaptchaTests/ReCaptchaTests.swift delete mode 120000 _Pods.xcodeproj delete mode 100755 carthage.sh delete mode 100644 codecov.yml delete mode 100644 example-v2-key.png delete mode 100644 example.gif delete mode 100644 example2.gif delete mode 100644 fastlane/Fastfile delete mode 160000 fastlane/actions/codecov delete mode 120000 fastlane/actions/codecov.rb delete mode 100755 pre-push.sh diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index f498473..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,79 +0,0 @@ -# 1.6.0 - -- RxSwift 6.0.0 support (#101) -- Feature: added 2 new cases to ReCaptchaError (`.responseExpired` and `.failedRender`) (#79) - -- Fix: retire JS arrow functions in favor of standard functions (#78) - -# 1.5.0 - -- Swift 5.0 support -- Feature: `didFinishLoading` callback notifier - -- Fix: Resources loading validation (#72 #56 #60) - -# 1.4.2 - -- Fix: Webview's resource loading detection (#56 #60) - -# 1.4.1 - -- Fix RxSwift dependency version (#58) - -# 1.4 - -- Feature: Support Swift 4.2 -- Feature: enable validation to be skipped for testing - -# 1.3.1 - -- Fix: Removing leftover print -- Fix: Removing Result dependency from Carthage - -# 1.3 - -- Feature: Locale support (#39) - -- Fix: Reset not flagging ReCaptha as ready-to-execute (#36) -- Fix: Multiple configure calls after app being idle (#40) - -# 1.2 - -- Feature: Resettable ReCaptchas. (#23) -- Feature: Forcing visible challenge on DEBUG. (#19) - -- Fix: Better encapsulation architecture. -- Fix: Retiring Result dependency. (#24) -- Fix: `validate` completion closure being called consecutively. (#29) -- Fix: `configureWebView` being called multiple times. (#31) - -# 1.1 - -- Fix: better logging for when protocol isn't found on -- Fix: Alternate endpoint not loading -- Fix: Prepends a scheme if `baseURL` doesn't have one - -# 1.0.2 - -- Fix: Better detection of resources loading end (#16) - -# 1.0.1 - -- Fix: Webview content being dismissed when clicking outside of div frame area (#14) - -# 1.0.0 - -- Swift 4 support - -# 0.3.0 - -- Carthage support -- Refactored framework errors -- Alternate endpoint to bypass firewall limitations (#10) -- Fix: JS not loaded (#7) -- Fix: Wrong Domain retrieving (#6) - -# 0.2.0 - -- Removing `presenterView` from ReCaptchaWebViewManager -- Adding view to `validate(on:)` parameters diff --git a/Cartfile b/Cartfile deleted file mode 100644 index bcb3591..0000000 --- a/Cartfile +++ /dev/null @@ -1 +0,0 @@ -github "ReactiveX/RxSwift" ~> 6.0 diff --git a/Cartfile.resolved b/Cartfile.resolved deleted file mode 100644 index c07923a..0000000 --- a/Cartfile.resolved +++ /dev/null @@ -1 +0,0 @@ -github "ReactiveX/RxSwift" "6.0.0" diff --git a/Example/Podfile b/Example/Podfile deleted file mode 100644 index 20ff1b9..0000000 --- a/Example/Podfile +++ /dev/null @@ -1,33 +0,0 @@ -platform :ios, 9.0 - -use_frameworks! -inhibit_all_warnings! - -target 'ReCaptcha_Example' do - pod 'ReCaptcha/RxSwift', :path => '../' - pod 'RxCocoa', '~> 6.0' - pod 'SwiftLint', '~> 0.33' - - target 'ReCaptcha_Tests' do - inherit! :search_paths - - pod 'AppSwizzle', '~> 1.3' - pod 'RxBlocking', '~> 6.0' - end - - target 'ReCaptcha_UITests' do - inherit! :search_paths - end -end - -post_install do |i| - target = File.join(Dir.pwd, "../.git/hooks/pre-push") - unless File.symlink?(target) - puts "Installing git hook for pre-push" - - begin - File.symlink(File.join(Dir.pwd, "../pre-push.sh"), target) - rescue => exc - end - end -end diff --git a/Example/Podfile.lock b/Example/Podfile.lock deleted file mode 100644 index e957acb..0000000 --- a/Example/Podfile.lock +++ /dev/null @@ -1,48 +0,0 @@ -PODS: - - AppSwizzle (1.3.1) - - ReCaptcha/Core (1.6.0) - - ReCaptcha/RxSwift (1.6.0): - - ReCaptcha/Core - - RxSwift (~> 6.0) - - RxBlocking (6.0.0): - - RxSwift (= 6.0.0) - - RxCocoa (6.0.0): - - RxRelay (= 6.0.0) - - RxSwift (= 6.0.0) - - RxRelay (6.0.0): - - RxSwift (= 6.0.0) - - RxSwift (6.0.0) - - SwiftLint (0.33.0) - -DEPENDENCIES: - - AppSwizzle (~> 1.3) - - ReCaptcha/RxSwift (from `../`) - - RxBlocking (~> 6.0) - - RxCocoa (~> 6.0) - - SwiftLint (~> 0.33) - -SPEC REPOS: - trunk: - - AppSwizzle - - RxBlocking - - RxCocoa - - RxRelay - - RxSwift - - SwiftLint - -EXTERNAL SOURCES: - ReCaptcha: - :path: "../" - -SPEC CHECKSUMS: - AppSwizzle: db36e436f56110d93e5ae0147683435df593cabc - ReCaptcha: d493ed256054a7b6a7eabcaf0b47ec9a8f42a16e - RxBlocking: c025b8c6fe08c5b18c039b5b11d41ec413f8a59e - RxCocoa: 3f79328fafa3645b34600f37c31e64c73ae3a80e - RxRelay: 8d593be109c06ea850df027351beba614b012ffb - RxSwift: c14e798c59b9f6e9a2df8fd235602e85cc044295 - SwiftLint: fed9c66336e41fc74dc48a73678380718f0c8b0e - -PODFILE CHECKSUM: 927f56f754e86345b695231d8b5f252ec7c18b35 - -COCOAPODS: 1.10.0 diff --git a/Example/ReCaptcha.xcodeproj/project.pbxproj b/Example/ReCaptcha.xcodeproj/project.pbxproj deleted file mode 100644 index cc4a8ce..0000000 --- a/Example/ReCaptcha.xcodeproj/project.pbxproj +++ /dev/null @@ -1,862 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; }; - 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; }; - 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; }; - 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; - 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; - 9D85E832734B73CFBD0156E0 /* Pods_ReCaptcha_UITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4C17A11F39B6DC940891AE0 /* Pods_ReCaptcha_UITests.framework */; }; - BD850CB2DF4C9C94FC51226C /* Pods_ReCaptcha_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62BEEA62161F672468CCFD64 /* Pods_ReCaptcha_Example.framework */; }; - D091B6E053FD250B4757E34C /* Pods_ReCaptcha_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9417A28DC340FF0BC1627B3F /* Pods_ReCaptcha_Tests.framework */; }; - F206BAD51F8D3FEB00A25807 /* Cartfile in Resources */ = {isa = PBXBuildFile; fileRef = F206BAD41F8D3FEB00A25807 /* Cartfile */; }; - F211C22220F7E0B100709B26 /* ReCaptcha_Endpoint__Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F211C22120F7E0B100709B26 /* ReCaptcha_Endpoint__Tests.swift */; }; - F231B3971FEC325A00F82943 /* DispatchQueue__Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F231B3961FEC325A00F82943 /* DispatchQueue__Tests.swift */; }; - F231B39F1FED4A8C00F82943 /* ReCaptchaDecoder+Helper.swift in Sources */ = {isa = PBXBuildFile; fileRef = F231B39E1FED4A8C00F82943 /* ReCaptchaDecoder+Helper.swift */; }; - F288E9451F9537760018688D /* ReCaptchaError+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F288E9441F9537760018688D /* ReCaptchaError+Equatable.swift */; }; - F28FAC9F200E425600E14987 /* ReCaptcha_UITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F28FAC9E200E425600E14987 /* ReCaptcha_UITests.swift */; }; - F2AE8612204F3430002E28D7 /* ReCaptchaResult__Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2AE8611204F3430002E28D7 /* ReCaptchaResult__Tests.swift */; }; - F2E2685E1F7AEE3400CD876D /* ReCaptcha__Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2E2685D1F7AEE3400CD876D /* ReCaptcha__Tests.swift */; }; - F2ECCF8A1E9FCEFE0097B199 /* ReCaptchaDecoder__Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2ECCF891E9FCEFE0097B199 /* ReCaptchaDecoder__Tests.swift */; }; - F2ECCF8C1E9FE37C0097B199 /* mock.html in Resources */ = {isa = PBXBuildFile; fileRef = F2ECCF8B1E9FE37C0097B199 /* mock.html */; }; - F2ECCF8E1E9FE68C0097B199 /* ReCaptchaWebViewManager__Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2ECCF8D1E9FE68C0097B199 /* ReCaptchaWebViewManager__Tests.swift */; }; - F2ECCF931EA009360097B199 /* ReCaptcha+Rx__Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2ECCF921EA009360097B199 /* ReCaptcha+Rx__Tests.swift */; }; - F2ECCF961EA00A5B0097B199 /* ReCaptchaWebViewManager+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2ECCF951EA00A5B0097B199 /* ReCaptchaWebViewManager+Helpers.swift */; }; - F2ECCF981EA011370097B199 /* Result+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2ECCF971EA011370097B199 /* Result+Helpers.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - F28FACA1200E425600E14987 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 607FACC81AFB9204008FA782 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 607FACCF1AFB9204008FA782; - remoteInfo = ReCaptcha_Example; - }; - F2ECCF7B1E9FC47B0097B199 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 607FACC81AFB9204008FA782 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 607FACCF1AFB9204008FA782; - remoteInfo = ReCaptcha_Example; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0A2D0E5B4C6E445BF971488B /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; - 44568771DD76CFBDF2D1C83D /* Pods-ReCaptcha_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReCaptcha_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ReCaptcha_Tests/Pods-ReCaptcha_Tests.release.xcconfig"; sourceTree = ""; }; - 4A242A5E18CBBFA095B66558 /* Pods-ReCaptcha_UITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReCaptcha_UITests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ReCaptcha_UITests/Pods-ReCaptcha_UITests.release.xcconfig"; sourceTree = ""; }; - 4FED8267564AACFFEE83DB15 /* Pods-ReCaptcha_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReCaptcha_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ReCaptcha_Tests/Pods-ReCaptcha_Tests.debug.xcconfig"; sourceTree = ""; }; - 607FACD01AFB9204008FA782 /* ReCaptcha_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ReCaptcha_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 607FACD71AFB9204008FA782 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; - 607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; - 62BEEA62161F672468CCFD64 /* Pods_ReCaptcha_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ReCaptcha_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 62C1DD0E80E9920845E5DA51 /* ReCaptcha.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = ReCaptcha.podspec; path = ../ReCaptcha.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 80FF4E03D71AACBD81A36301 /* Pods-ReCaptcha_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReCaptcha_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ReCaptcha_Example/Pods-ReCaptcha_Example.debug.xcconfig"; sourceTree = ""; }; - 930BD5ACA20B973070B89ACF /* Pods-ReCaptcha_UITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReCaptcha_UITests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ReCaptcha_UITests/Pods-ReCaptcha_UITests.debug.xcconfig"; sourceTree = ""; }; - 9417A28DC340FF0BC1627B3F /* Pods_ReCaptcha_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ReCaptcha_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B4C17A11F39B6DC940891AE0 /* Pods_ReCaptcha_UITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ReCaptcha_UITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C2A0BDD35B5E219129E9BC65 /* Pods-ReCaptcha_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReCaptcha_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-ReCaptcha_Example/Pods-ReCaptcha_Example.release.xcconfig"; sourceTree = ""; }; - C8537003ECC47117AF54DCA9 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; - F206BAD41F8D3FEB00A25807 /* Cartfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Cartfile; path = ../Cartfile; sourceTree = ""; }; - F211C22120F7E0B100709B26 /* ReCaptcha_Endpoint__Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReCaptcha_Endpoint__Tests.swift; sourceTree = ""; }; - F21901D91F98D62F00D8E2C9 /* CHANGELOG.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = CHANGELOG.md; path = ../CHANGELOG.md; sourceTree = ""; }; - F231B3961FEC325A00F82943 /* DispatchQueue__Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DispatchQueue__Tests.swift; sourceTree = ""; }; - F231B39E1FED4A8C00F82943 /* ReCaptchaDecoder+Helper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ReCaptchaDecoder+Helper.swift"; sourceTree = ""; }; - F288E9441F9537760018688D /* ReCaptchaError+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ReCaptchaError+Equatable.swift"; sourceTree = ""; }; - F28FAC9C200E425600E14987 /* ReCaptcha_UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ReCaptcha_UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - F28FAC9E200E425600E14987 /* ReCaptcha_UITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReCaptcha_UITests.swift; sourceTree = ""; }; - F28FACA0200E425600E14987 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - F2AE8611204F3430002E28D7 /* ReCaptchaResult__Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReCaptchaResult__Tests.swift; sourceTree = ""; }; - F2E2685D1F7AEE3400CD876D /* ReCaptcha__Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReCaptcha__Tests.swift; sourceTree = ""; }; - F2ECCF761E9FC47B0097B199 /* ReCaptcha_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ReCaptcha_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - F2ECCF7A1E9FC47B0097B199 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - F2ECCF891E9FCEFE0097B199 /* ReCaptchaDecoder__Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReCaptchaDecoder__Tests.swift; sourceTree = ""; }; - F2ECCF8B1E9FE37C0097B199 /* mock.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = mock.html; sourceTree = ""; }; - F2ECCF8D1E9FE68C0097B199 /* ReCaptchaWebViewManager__Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReCaptchaWebViewManager__Tests.swift; sourceTree = ""; }; - F2ECCF921EA009360097B199 /* ReCaptcha+Rx__Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ReCaptcha+Rx__Tests.swift"; sourceTree = ""; }; - F2ECCF951EA00A5B0097B199 /* ReCaptchaWebViewManager+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ReCaptchaWebViewManager+Helpers.swift"; sourceTree = ""; }; - F2ECCF971EA011370097B199 /* Result+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Result+Helpers.swift"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 607FACCD1AFB9204008FA782 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - BD850CB2DF4C9C94FC51226C /* Pods_ReCaptcha_Example.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F28FAC99200E425600E14987 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9D85E832734B73CFBD0156E0 /* Pods_ReCaptcha_UITests.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F2ECCF731E9FC47B0097B199 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D091B6E053FD250B4757E34C /* Pods_ReCaptcha_Tests.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 607FACC71AFB9204008FA782 = { - isa = PBXGroup; - children = ( - 607FACF51AFB993E008FA782 /* Podspec Metadata */, - 607FACD21AFB9204008FA782 /* Example for ReCaptcha */, - F2ECCF771E9FC47B0097B199 /* ReCaptcha_Tests */, - F28FAC9D200E425600E14987 /* ReCaptcha_UITests */, - 607FACD11AFB9204008FA782 /* Products */, - 716E2370DBF48D5E2C86E802 /* Pods */, - FDC29111B59FAB9F0F44DADB /* Frameworks */, - ); - sourceTree = ""; - }; - 607FACD11AFB9204008FA782 /* Products */ = { - isa = PBXGroup; - children = ( - 607FACD01AFB9204008FA782 /* ReCaptcha_Example.app */, - F2ECCF761E9FC47B0097B199 /* ReCaptcha_Tests.xctest */, - F28FAC9C200E425600E14987 /* ReCaptcha_UITests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 607FACD21AFB9204008FA782 /* Example for ReCaptcha */ = { - isa = PBXGroup; - children = ( - 607FACD51AFB9204008FA782 /* AppDelegate.swift */, - 607FACD71AFB9204008FA782 /* ViewController.swift */, - 607FACD91AFB9204008FA782 /* Main.storyboard */, - 607FACDC1AFB9204008FA782 /* Images.xcassets */, - 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */, - 607FACD31AFB9204008FA782 /* Supporting Files */, - ); - name = "Example for ReCaptcha"; - path = ReCaptcha; - sourceTree = ""; - }; - 607FACD31AFB9204008FA782 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 607FACD41AFB9204008FA782 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 607FACF51AFB993E008FA782 /* Podspec Metadata */ = { - isa = PBXGroup; - children = ( - 62C1DD0E80E9920845E5DA51 /* ReCaptcha.podspec */, - F206BAD41F8D3FEB00A25807 /* Cartfile */, - 0A2D0E5B4C6E445BF971488B /* README.md */, - C8537003ECC47117AF54DCA9 /* LICENSE */, - F21901D91F98D62F00D8E2C9 /* CHANGELOG.md */, - ); - name = "Podspec Metadata"; - sourceTree = ""; - }; - 716E2370DBF48D5E2C86E802 /* Pods */ = { - isa = PBXGroup; - children = ( - 80FF4E03D71AACBD81A36301 /* Pods-ReCaptcha_Example.debug.xcconfig */, - C2A0BDD35B5E219129E9BC65 /* Pods-ReCaptcha_Example.release.xcconfig */, - 4FED8267564AACFFEE83DB15 /* Pods-ReCaptcha_Tests.debug.xcconfig */, - 44568771DD76CFBDF2D1C83D /* Pods-ReCaptcha_Tests.release.xcconfig */, - 930BD5ACA20B973070B89ACF /* Pods-ReCaptcha_UITests.debug.xcconfig */, - 4A242A5E18CBBFA095B66558 /* Pods-ReCaptcha_UITests.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - F28FAC9D200E425600E14987 /* ReCaptcha_UITests */ = { - isa = PBXGroup; - children = ( - F28FAC9E200E425600E14987 /* ReCaptcha_UITests.swift */, - F28FACA0200E425600E14987 /* Info.plist */, - ); - path = ReCaptcha_UITests; - sourceTree = ""; - }; - F2ECCF771E9FC47B0097B199 /* ReCaptcha_Tests */ = { - isa = PBXGroup; - children = ( - F2ECCF8B1E9FE37C0097B199 /* mock.html */, - F2ECCF821E9FC4AC0097B199 /* Core */, - F2ECCF911EA009220097B199 /* RxSwift */, - F2ECCF941EA00A4A0097B199 /* Helpers */, - F2ECCF7A1E9FC47B0097B199 /* Info.plist */, - ); - path = ReCaptcha_Tests; - sourceTree = ""; - }; - F2ECCF821E9FC4AC0097B199 /* Core */ = { - isa = PBXGroup; - children = ( - F2ECCF891E9FCEFE0097B199 /* ReCaptchaDecoder__Tests.swift */, - F2ECCF8D1E9FE68C0097B199 /* ReCaptchaWebViewManager__Tests.swift */, - F2E2685D1F7AEE3400CD876D /* ReCaptcha__Tests.swift */, - F231B3961FEC325A00F82943 /* DispatchQueue__Tests.swift */, - F2AE8611204F3430002E28D7 /* ReCaptchaResult__Tests.swift */, - F211C22120F7E0B100709B26 /* ReCaptcha_Endpoint__Tests.swift */, - ); - path = Core; - sourceTree = ""; - }; - F2ECCF911EA009220097B199 /* RxSwift */ = { - isa = PBXGroup; - children = ( - F2ECCF921EA009360097B199 /* ReCaptcha+Rx__Tests.swift */, - ); - path = RxSwift; - sourceTree = ""; - }; - F2ECCF941EA00A4A0097B199 /* Helpers */ = { - isa = PBXGroup; - children = ( - F2ECCF951EA00A5B0097B199 /* ReCaptchaWebViewManager+Helpers.swift */, - F2ECCF971EA011370097B199 /* Result+Helpers.swift */, - F288E9441F9537760018688D /* ReCaptchaError+Equatable.swift */, - F231B39E1FED4A8C00F82943 /* ReCaptchaDecoder+Helper.swift */, - ); - path = Helpers; - sourceTree = ""; - }; - FDC29111B59FAB9F0F44DADB /* Frameworks */ = { - isa = PBXGroup; - children = ( - 62BEEA62161F672468CCFD64 /* Pods_ReCaptcha_Example.framework */, - 9417A28DC340FF0BC1627B3F /* Pods_ReCaptcha_Tests.framework */, - B4C17A11F39B6DC940891AE0 /* Pods_ReCaptcha_UITests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 607FACCF1AFB9204008FA782 /* ReCaptcha_Example */ = { - isa = PBXNativeTarget; - buildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "ReCaptcha_Example" */; - buildPhases = ( - 51299F67A8756E2B3EAE411A /* [CP] Check Pods Manifest.lock */, - 607FACCC1AFB9204008FA782 /* Sources */, - 607FACCD1AFB9204008FA782 /* Frameworks */, - 607FACCE1AFB9204008FA782 /* Resources */, - 8F03FFB3F5C55E873C23C682 /* [CP] Embed Pods Frameworks */, - F231B3981FEC3B7F00F82943 /* SwiftLint */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ReCaptcha_Example; - productName = ReCaptcha; - productReference = 607FACD01AFB9204008FA782 /* ReCaptcha_Example.app */; - productType = "com.apple.product-type.application"; - }; - F28FAC9B200E425600E14987 /* ReCaptcha_UITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = F28FACA5200E425600E14987 /* Build configuration list for PBXNativeTarget "ReCaptcha_UITests" */; - buildPhases = ( - B8A66872166B84DAD39A3E1F /* [CP] Check Pods Manifest.lock */, - F28FAC98200E425600E14987 /* Sources */, - F28FAC99200E425600E14987 /* Frameworks */, - F28FAC9A200E425600E14987 /* Resources */, - F28FACA6200E447600E14987 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - F28FACA2200E425600E14987 /* PBXTargetDependency */, - ); - name = ReCaptcha_UITests; - productName = ReCaptcha_UITests; - productReference = F28FAC9C200E425600E14987 /* ReCaptcha_UITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; - F2ECCF751E9FC47B0097B199 /* ReCaptcha_Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = F2ECCF7D1E9FC47B0097B199 /* Build configuration list for PBXNativeTarget "ReCaptcha_Tests" */; - buildPhases = ( - DDB47454887253730AB35230 /* [CP] Check Pods Manifest.lock */, - F2ECCF721E9FC47B0097B199 /* Sources */, - F2ECCF731E9FC47B0097B199 /* Frameworks */, - F2ECCF741E9FC47B0097B199 /* Resources */, - 77003100630E7783A936C451 /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - F2ECCF7C1E9FC47B0097B199 /* PBXTargetDependency */, - ); - name = ReCaptcha_Tests; - productName = ReCaptcha_Tests; - productReference = F2ECCF761E9FC47B0097B199 /* ReCaptcha_Tests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 607FACC81AFB9204008FA782 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0910; - LastUpgradeCheck = 0900; - ORGANIZATIONNAME = ReCaptcha; - TargetAttributes = { - 607FACCF1AFB9204008FA782 = { - CreatedOnToolsVersion = 6.3.1; - DevelopmentTeam = 58EEZG76L8; - LastSwiftMigration = 1020; - ProvisioningStyle = Manual; - }; - F28FAC9B200E425600E14987 = { - CreatedOnToolsVersion = 9.1; - LastSwiftMigration = 1020; - ProvisioningStyle = Automatic; - TestTargetID = 607FACCF1AFB9204008FA782; - }; - F2ECCF751E9FC47B0097B199 = { - CreatedOnToolsVersion = 8.3; - LastSwiftMigration = 1020; - ProvisioningStyle = Automatic; - TestTargetID = 607FACCF1AFB9204008FA782; - }; - }; - }; - buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "ReCaptcha" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - Base, - ); - mainGroup = 607FACC71AFB9204008FA782; - productRefGroup = 607FACD11AFB9204008FA782 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 607FACCF1AFB9204008FA782 /* ReCaptcha_Example */, - F2ECCF751E9FC47B0097B199 /* ReCaptcha_Tests */, - F28FAC9B200E425600E14987 /* ReCaptcha_UITests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 607FACCE1AFB9204008FA782 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F206BAD51F8D3FEB00A25807 /* Cartfile in Resources */, - 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */, - 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */, - 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F28FAC9A200E425600E14987 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F2ECCF741E9FC47B0097B199 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F2ECCF8C1E9FE37C0097B199 /* mock.html in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 51299F67A8756E2B3EAE411A /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ReCaptcha_Example-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 77003100630E7783A936C451 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReCaptcha_Tests/Pods-ReCaptcha_Tests-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/RxSwift/RxSwift.framework", - "${BUILT_PRODUCTS_DIR}/AppSwizzle/AppSwizzle.framework", - "${BUILT_PRODUCTS_DIR}/RxBlocking/RxBlocking.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppSwizzle.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxBlocking.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReCaptcha_Tests/Pods-ReCaptcha_Tests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 8F03FFB3F5C55E873C23C682 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReCaptcha_Example/Pods-ReCaptcha_Example-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/ReCaptcha/ReCaptcha.framework", - "${BUILT_PRODUCTS_DIR}/RxCocoa/RxCocoa.framework", - "${BUILT_PRODUCTS_DIR}/RxRelay/RxRelay.framework", - "${BUILT_PRODUCTS_DIR}/RxSwift/RxSwift.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ReCaptcha.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxCocoa.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxRelay.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxSwift.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReCaptcha_Example/Pods-ReCaptcha_Example-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - B8A66872166B84DAD39A3E1F /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ReCaptcha_UITests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - DDB47454887253730AB35230 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ReCaptcha_Tests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - F231B3981FEC3B7F00F82943 /* SwiftLint */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = SwiftLint; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/SwiftLint/swiftlint\" --path \"${PROJECT_DIR}/..\"\n"; - }; - F28FACA6200E447600E14987 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Unfortuantely, Xcode 7.3 and Cocoapods are not yet fully compatible. The location of the xctest bundle has changed and so we need to manually copy some things ...\n# this fix is necesary - tested on Cocoapods 1.1.rc2 that still have the issue.\n# ver 0.2\n\n# set variables\nBUILD_ROOT=\"${BUILT_PRODUCTS_DIR}\"\n\nMAIN_TARGET_NAME=\"ReCaptcha_Example.app\" #if you know how to get this from here do let me know!\nMAIN_TARGET_FRAMEWORKS=\"${BUILT_PRODUCTS_DIR}/${MAIN_TARGET_NAME}/Frameworks\"\n\nTEST_TARGET_NAME=\"ReCaptcha_UITests\"\nTEST_RUNNER_TARGET_FRAMEWORKS=\"${BUILT_PRODUCTS_DIR}/${TEST_TARGET_NAME}-Runner.app\"\n\n# COPY FRAMEWORKS FROM MAIN TARGET TO TEST TARGET if framework folder exists\nif [[ -d \"${MAIN_TARGET_FRAMEWORKS}\" ]]; then\necho \"**** COPYING FRAMEWORKS FROM \\\"${MAIN_TARGET_FRAMEWORKS}\\\" TO \\\"${TEST_RUNNER_TARGET_FRAMEWORKS}\\\" ...\"\ncp -R \"${MAIN_TARGET_FRAMEWORKS}\" \"${TEST_RUNNER_TARGET_FRAMEWORKS}\"\nfi\n\n# You don't really need this section below if your script works, otherwise it is quite helpful to troubleshoot any problems with paths.\n\n# DEBUG SECTION\necho \"BUILD_ROOT : ${BUILD_ROOT}\"\necho \"MAIN_TARGET_NAME : ${MAIN_TARGET_NAME}\"\necho \"MAIN_TARGET_FRAMEWORKS ${MAIN_TARGET_FRAMEWORKS}\"\necho \"TEST_TARGET_NAME : ${TEST_TARGET_NAME}\"\necho \"TEST_RUNNER_TARGET_FRAMEWORKS : ${TEST_TARGET_FRAMEWORKS}\"\necho \"CONTENT: ${CONTENTS_FOLDER_PATH}\"\necho \"FRAMEWORK PATH: ${FRAMEWORKS_FOLDER_PATH}\"\necho \"TARGET BUILD DIR: ${TARGET_BUILD_DIR}\""; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 607FACCC1AFB9204008FA782 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */, - 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F28FAC98200E425600E14987 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F28FAC9F200E425600E14987 /* ReCaptcha_UITests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F2ECCF721E9FC47B0097B199 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F2AE8612204F3430002E28D7 /* ReCaptchaResult__Tests.swift in Sources */, - F2ECCF961EA00A5B0097B199 /* ReCaptchaWebViewManager+Helpers.swift in Sources */, - F2ECCF8E1E9FE68C0097B199 /* ReCaptchaWebViewManager__Tests.swift in Sources */, - F2ECCF981EA011370097B199 /* Result+Helpers.swift in Sources */, - F231B3971FEC325A00F82943 /* DispatchQueue__Tests.swift in Sources */, - F231B39F1FED4A8C00F82943 /* ReCaptchaDecoder+Helper.swift in Sources */, - F211C22220F7E0B100709B26 /* ReCaptcha_Endpoint__Tests.swift in Sources */, - F2E2685E1F7AEE3400CD876D /* ReCaptcha__Tests.swift in Sources */, - F2ECCF931EA009360097B199 /* ReCaptcha+Rx__Tests.swift in Sources */, - F288E9451F9537760018688D /* ReCaptchaError+Equatable.swift in Sources */, - F2ECCF8A1E9FCEFE0097B199 /* ReCaptchaDecoder__Tests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - F28FACA2200E425600E14987 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 607FACCF1AFB9204008FA782 /* ReCaptcha_Example */; - targetProxy = F28FACA1200E425600E14987 /* PBXContainerItemProxy */; - }; - F2ECCF7C1E9FC47B0097B199 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 607FACCF1AFB9204008FA782 /* ReCaptcha_Example */; - targetProxy = F2ECCF7B1E9FC47B0097B199 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 607FACD91AFB9204008FA782 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 607FACDA1AFB9204008FA782 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */ = { - isa = PBXVariantGroup; - children = ( - 607FACDF1AFB9204008FA782 /* Base */, - ); - name = LaunchScreen.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 607FACED1AFB9204008FA782 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 607FACEE1AFB9204008FA782 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 607FACF01AFB9204008FA782 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 80FF4E03D71AACBD81A36301 /* Pods-ReCaptcha_Example.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = 58EEZG76L8; - INFOPLIST_FILE = ReCaptcha/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MODULE_NAME = ExampleApp; - PRODUCT_BUNDLE_IDENTIFIER = "com.flaviocaetano.ReCaptcha-Example"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Development Wildcard"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 607FACF11AFB9204008FA782 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C2A0BDD35B5E219129E9BC65 /* Pods-ReCaptcha_Example.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = ReCaptcha/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MODULE_NAME = ExampleApp; - PRODUCT_BUNDLE_IDENTIFIER = "com.flaviocaetano.ReCaptcha-Example"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - F28FACA3200E425600E14987 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 930BD5ACA20B973070B89ACF /* Pods-ReCaptcha_UITests.debug.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = ReCaptcha_UITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "ReCaptcha.ReCaptcha-UITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = ReCaptcha_Example; - }; - name = Debug; - }; - F28FACA4200E425600E14987 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4A242A5E18CBBFA095B66558 /* Pods-ReCaptcha_UITests.release.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = ReCaptcha_UITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "ReCaptcha.ReCaptcha-UITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = ReCaptcha_Example; - }; - name = Release; - }; - F2ECCF7E1E9FC47B0097B199 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4FED8267564AACFFEE83DB15 /* Pods-ReCaptcha_Tests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = ReCaptcha_Tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.flaviocaetano.ReCaptcha-Tests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG UNIT_TESTS"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ReCaptcha_Example.app/ReCaptcha_Example"; - }; - name = Debug; - }; - F2ECCF7F1E9FC47B0097B199 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 44568771DD76CFBDF2D1C83D /* Pods-ReCaptcha_Tests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = ReCaptcha_Tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.flaviocaetano.ReCaptcha-Tests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ReCaptcha_Example.app/ReCaptcha_Example"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "ReCaptcha" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 607FACED1AFB9204008FA782 /* Debug */, - 607FACEE1AFB9204008FA782 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "ReCaptcha_Example" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 607FACF01AFB9204008FA782 /* Debug */, - 607FACF11AFB9204008FA782 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F28FACA5200E425600E14987 /* Build configuration list for PBXNativeTarget "ReCaptcha_UITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F28FACA3200E425600E14987 /* Debug */, - F28FACA4200E425600E14987 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F2ECCF7D1E9FC47B0097B199 /* Build configuration list for PBXNativeTarget "ReCaptcha_Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F2ECCF7E1E9FC47B0097B199 /* Debug */, - F2ECCF7F1E9FC47B0097B199 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 607FACC81AFB9204008FA782 /* Project object */; -} diff --git a/Example/ReCaptcha.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Example/ReCaptcha.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index eb752a5..0000000 --- a/Example/ReCaptcha.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Example/ReCaptcha.xcodeproj/xcshareddata/xcschemes/ReCaptcha-Example.xcscheme b/Example/ReCaptcha.xcodeproj/xcshareddata/xcschemes/ReCaptcha-Example.xcscheme deleted file mode 100644 index f31bfd0..0000000 --- a/Example/ReCaptcha.xcodeproj/xcshareddata/xcschemes/ReCaptcha-Example.xcscheme +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/ReCaptcha.xcodeproj/xcshareddata/xcschemes/ReCaptcha_UITests.xcscheme b/Example/ReCaptcha.xcodeproj/xcshareddata/xcschemes/ReCaptcha_UITests.xcscheme deleted file mode 100644 index f562b77..0000000 --- a/Example/ReCaptcha.xcodeproj/xcshareddata/xcschemes/ReCaptcha_UITests.xcscheme +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/ReCaptcha.xcworkspace/contents.xcworkspacedata b/Example/ReCaptcha.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 80c5b41..0000000 --- a/Example/ReCaptcha.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/Example/ReCaptcha.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Example/ReCaptcha.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/Example/ReCaptcha.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/Example/ReCaptcha/.swiftlint.yml b/Example/ReCaptcha/.swiftlint.yml deleted file mode 100644 index 84f8494..0000000 --- a/Example/ReCaptcha/.swiftlint.yml +++ /dev/null @@ -1,2 +0,0 @@ -disabled_rules: - - explicit_top_level_acl diff --git a/Example/ReCaptcha/AppDelegate.swift b/Example/ReCaptcha/AppDelegate.swift deleted file mode 100644 index 86054b4..0000000 --- a/Example/ReCaptcha/AppDelegate.swift +++ /dev/null @@ -1,24 +0,0 @@ -// -// AppDelegate.swift -// ReCaptcha -// -// Created by Flávio Caetano on 03/22/17. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -import UIKit - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - - - func application( - _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? - ) -> Bool { - // Override point for customization after application launch. - return true - } -} diff --git a/Example/ReCaptcha/Base.lproj/LaunchScreen.xib b/Example/ReCaptcha/Base.lproj/LaunchScreen.xib deleted file mode 100644 index b505c79..0000000 --- a/Example/ReCaptcha/Base.lproj/LaunchScreen.xib +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/ReCaptcha/Base.lproj/Main.storyboard b/Example/ReCaptcha/Base.lproj/Main.storyboard deleted file mode 100644 index e888f64..0000000 --- a/Example/ReCaptcha/Base.lproj/Main.storyboard +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/ReCaptcha/Images.xcassets/AppIcon.appiconset/Contents.json b/Example/ReCaptcha/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 19882d5..0000000 --- a/Example/ReCaptcha/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" - }, - { - "idiom" : "ios-marketing", - "size" : "1024x1024", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Example/ReCaptcha/Info.plist b/Example/ReCaptcha/Info.plist deleted file mode 100644 index acfbed7..0000000 --- a/Example/ReCaptcha/Info.plist +++ /dev/null @@ -1,45 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSApplicationCategoryType - - LSRequiresIPhoneOS - - ReCaptchaDomain - http://localhost - ReCaptchaKey - 6LdE-hkUAAAAAKWfpXjXrsLMwDc0psCcjvpBgGr6 - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - - - diff --git a/Example/ReCaptcha/ViewController.swift b/Example/ReCaptcha/ViewController.swift deleted file mode 100644 index 67b25ad..0000000 --- a/Example/ReCaptcha/ViewController.swift +++ /dev/null @@ -1,134 +0,0 @@ -// -// ViewController.swift -// ReCaptcha -// -// Created by Flávio Caetano on 03/22/17. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -import ReCaptcha -import RxCocoa -import RxSwift -import UIKit - - -class ViewController: UIViewController { - private struct Constants { - static let webViewTag = 123 - static let testLabelTag = 321 - } - - private var recaptcha: ReCaptcha! - private var disposeBag = DisposeBag() - - private var locale: Locale? - private var endpoint = ReCaptcha.Endpoint.default - - @IBOutlet private weak var label: UILabel! - @IBOutlet private weak var spinner: UIActivityIndicatorView! - @IBOutlet private weak var localeSegmentedControl: UISegmentedControl! - @IBOutlet private weak var endpointSegmentedControl: UISegmentedControl! - @IBOutlet private weak var visibleChallengeSwitch: UISwitch! - - override func viewDidLoad() { - super.viewDidLoad() - setupReCaptcha() - } - - @IBAction func didPressEndpointSegmentedControl(_ sender: UISegmentedControl) { - label.text = "" - switch sender.selectedSegmentIndex { - case 0: endpoint = .default - case 1: endpoint = .alternate - default: assertionFailure("invalid index") - } - - setupReCaptcha() - } - - @IBAction func didPressLocaleSegmentedControl(_ sender: UISegmentedControl) { - label.text = "" - switch sender.selectedSegmentIndex { - case 0: locale = nil - case 1: locale = Locale(identifier: "zh-CN") - default: assertionFailure("invalid index") - } - - setupReCaptcha() - } - - @IBAction private func didPressButton(button: UIButton) { - disposeBag = DisposeBag() - - recaptcha.rx.didFinishLoading - .debug("did finish loading") - .subscribe() - .disposed(by: disposeBag) - - let validate = recaptcha.rx.validate(on: view, resetOnError: false) - .catch { error in - return .just("Error \(error)") - } - .debug("validate") - .share() - - let isLoading = validate - .map { _ in false } - .startWith(true) - .share(replay: 1) - - isLoading - .bind(to: spinner.rx.isAnimating) - .disposed(by: disposeBag) - - let isEnabled = isLoading - .map { !$0 } - .catchAndReturn(false) - .share(replay: 1) - - isEnabled - .bind(to: button.rx.isEnabled) - .disposed(by: disposeBag) - - isEnabled - .bind(to: endpointSegmentedControl.rx.isEnabled) - .disposed(by: disposeBag) - - validate - .map { [weak self] _ in - self?.view.viewWithTag(Constants.webViewTag) - } - .subscribe(onNext: { subview in - subview?.removeFromSuperview() - }) - .disposed(by: disposeBag) - - validate - .bind(to: label.rx.text) - .disposed(by: disposeBag) - - visibleChallengeSwitch.rx.value - .subscribe(onNext: { [weak recaptcha] value in - recaptcha?.forceVisibleChallenge = value - }) - .disposed(by: disposeBag) - } - - private func setupReCaptcha() { - // swiftlint:disable:next force_try - recaptcha = try! ReCaptcha(endpoint: endpoint, locale: locale) - - recaptcha.configureWebView { [weak self] webview in - webview.frame = self?.view.bounds ?? CGRect.zero - webview.tag = Constants.webViewTag - - // For testing purposes - // If the webview requires presentation, this should work as a way of detecting the webview in UI tests - self?.view.viewWithTag(Constants.testLabelTag)?.removeFromSuperview() - let label = UILabel(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) - label.tag = Constants.testLabelTag - label.accessibilityLabel = "webview" - self?.view.addSubview(label) - } - } -} diff --git a/Example/ReCaptcha_Tests/.swiftlint.yml b/Example/ReCaptcha_Tests/.swiftlint.yml deleted file mode 100644 index 777177c..0000000 --- a/Example/ReCaptcha_Tests/.swiftlint.yml +++ /dev/null @@ -1,9 +0,0 @@ -disabled_rules: - - type_name - - nesting - - force_unwrapping - - explicit_top_level_acl - - function_body_length - - identifier_name - - file_length - - type_body_length diff --git a/Example/ReCaptcha_Tests/Core/DispatchQueue__Tests.swift b/Example/ReCaptcha_Tests/Core/DispatchQueue__Tests.swift deleted file mode 100644 index c5e8fce..0000000 --- a/Example/ReCaptcha_Tests/Core/DispatchQueue__Tests.swift +++ /dev/null @@ -1,197 +0,0 @@ -// -// DispatchQueue__Tests.swift -// ReCaptcha -// -// Created by Flávio Caetano on 21/12/17. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -@testable import ReCaptcha -import XCTest - -class DispatchQueue__Tests: XCTestCase { - override func setUp() { - super.setUp() - // Put setup code here. This method is called before the invocation of each test method in the class. - } - - override func tearDown() { - // Put teardown code here. This method is called after the invocation of each test method in the class. - super.tearDown() - } - - // MARK: Throttle - - func test__Throttle_Nil_Context() { - // Execute closure called once - let exp0 = expectation(description: "did call single closure") - - DispatchQueue.main.throttle(deadline: .now() + 0.1) { - exp0.fulfill() - } - - waitForExpectations(timeout: 1) - - // Does not execute first closure - let exp1 = expectation(description: "did call last closure") - DispatchQueue.main.throttle(deadline: .now() + 0.1) { - XCTFail("Shouldn't be called") - } - - DispatchQueue.main.throttle( - deadline: .now() + 0.1, - action: exp1.fulfill - ) - - waitForExpectations(timeout: 1) - } - - func test__Throttle_Context() { - // Execute closure called once - let exp0 = expectation(description: "did call single closure") - let c0 = UUID() - - DispatchQueue.main.throttle( - deadline: .now() + 0.1, - context: c0, - action: exp0.fulfill - ) - - waitForExpectations(timeout: 1) - - // Does not execute first closure - let exp1 = expectation(description: "execute on valid context") - let c1 = UUID() - DispatchQueue.main.throttle(deadline: .now() + 0.1, context: c1) { - XCTFail("Shouldn't be called") - } - - DispatchQueue.main.throttle( - deadline: .now() + 0.1, - context: c1, - action: exp1.fulfill - ) - - // Execute in a different context - let exp2 = expectation(description: "execute on different context") - let c2 = UUID() - DispatchQueue.main.throttle( - deadline: .now() + 0.1, - context: c2, - action: exp2.fulfill - ) - - waitForExpectations(timeout: 1) - } - - // MARK: Debounce - - func test__Debounce_Nil_Context() { - // Does not execute sequenced closures - let exp0 = expectation(description: "did call first closure") - - DispatchQueue.main.debounce( - interval: 0.1, - action: exp0.fulfill - ) - - DispatchQueue.main.debounce(interval: 0) { - XCTFail("Shouldn't be called") - } - - waitForExpectations(timeout: 1) - - // Executes closure after previous has timed out - let exp1 = expectation(description: "did call closure") - DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { - DispatchQueue.main.debounce( - interval: 0.1, - action: exp1.fulfill - ) - } - - waitForExpectations(timeout: 3) - } - - func test__Debounce_Context() { - // Does not execute sequenced closures - let exp0 = expectation(description: "did call first closure") - let c0 = UUID() - - DispatchQueue.main.debounce( - interval: 0.1, - context: c0, - action: exp0.fulfill - ) - - DispatchQueue.main.debounce(interval: 0, context: c0) { - XCTFail("Shouldn't be called") - } - - // Execute in a different context - let c1 = UUID() - let exp1 = expectation(description: "executes in different context") - DispatchQueue.main.debounce( - interval: 0, - context: c1, - action: exp1.fulfill - ) - - waitForExpectations(timeout: 1) - - // Executes closure after previous has timed out - let exp2 = expectation(description: "did call closure") - DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) { - DispatchQueue.main.debounce( - interval: 0.1, - context: c0, - action: exp2.fulfill - ) - } - - waitForExpectations(timeout: 5) - } - - // MARK: Once - - func test__Once__Single_Dispatch() { - let token = 3 - var dispatchCount = 0 - - // Does dispatch the given action - DispatchQueue.once(token: token) { - dispatchCount = 1 - } - - XCTAssertEqual(dispatchCount, 1) - - // Does not dispatch again for the same token - DispatchQueue.once(token: token) { - dispatchCount = 2 - } - - XCTAssertEqual(dispatchCount, 1) - } - - func test__Once__Multiple_Dispatches() { - let token1 = 4 - var didDispatch1 = false - - // Does dispatch the given action - DispatchQueue.once(token: token1) { - didDispatch1 = true - } - - XCTAssertTrue(didDispatch1) - - // Dispatch for a different token - let token2 = 6 - var didDispatch2 = false - - DispatchQueue.once(token: token2) { - didDispatch2 = true - } - - XCTAssertTrue(didDispatch2) - } -} diff --git a/Example/ReCaptcha_Tests/Core/ReCaptchaDecoder__Tests.swift b/Example/ReCaptcha_Tests/Core/ReCaptchaDecoder__Tests.swift deleted file mode 100644 index bb08513..0000000 --- a/Example/ReCaptcha_Tests/Core/ReCaptchaDecoder__Tests.swift +++ /dev/null @@ -1,243 +0,0 @@ -// -// ReCaptchaDecoder__Tests.swift -// ReCaptcha -// -// Created by Flávio Caetano on 13/04/17. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -@testable import ReCaptcha - -import WebKit -import XCTest - - -class ReCaptchaDecoder__Tests: XCTestCase { - fileprivate typealias Result = ReCaptchaDecoder.Result - - fileprivate var assertResult: ((Result) -> Void)? - fileprivate var decoder: ReCaptchaDecoder! - - override func setUp() { - super.setUp() - - decoder = ReCaptchaDecoder { [weak self] result in - self?.assertResult?(result) - } - } - - override func tearDown() { - // Put teardown code here. This method is called after the invocation of each test method in the class. - super.tearDown() - } - - - func test__Send_Error() { - let exp = expectation(description: "send error message") - var result: Result? - - assertResult = { res in - result = res - exp.fulfill() - } - - - // Send - let err = ReCaptchaError.random() - decoder.send(error: err) - - waitForExpectations(timeout: 1) - - - // Check - XCTAssertNotNil(result) - XCTAssertEqual(result, .error(err)) - } - - - func test__Decode__Wrong_Format() { - let exp = expectation(description: "send unsupported message") - var result: Result? - - assertResult = { res in - result = res - exp.fulfill() - } - - - // Send - let message = MockMessage(message: "foobar") - decoder.send(message: message) - - waitForExpectations(timeout: 1) - - - // Check - XCTAssertEqual(result, .error(ReCaptchaError.wrongMessageFormat)) - } - - - func test__Decode__Unexpected_Action() { - let exp = expectation(description: "send message with unexpected action") - var result: Result? - - assertResult = { res in - result = res - exp.fulfill() - } - - - // Send - let message = MockMessage(message: ["action": "bar"]) - decoder.send(message: message) - - waitForExpectations(timeout: 1) - - - // Check - XCTAssertEqual(result, .error(ReCaptchaError.wrongMessageFormat)) - } - - - func test__Decode__ShowReCaptcha() { - let exp = expectation(description: "send showReCaptcha message") - var result: Result? - - assertResult = { res in - result = res - exp.fulfill() - } - - - // Send - let message = MockMessage(message: ["action": "showReCaptcha"]) - decoder.send(message: message) - - waitForExpectations(timeout: 1) - - - // Check - XCTAssertEqual(result, .showReCaptcha) - } - - - func test__Decode__Token() { - let exp = expectation(description: "send token message") - var result: Result? - - assertResult = { res in - result = res - exp.fulfill() - } - - - // Send - let token = String(arc4random()) - let message = MockMessage(message: ["token": token]) - decoder.send(message: message) - - waitForExpectations(timeout: 1) - - - // Check - XCTAssertEqual(result, .token(token)) - } - - - func test__Decode__DidLoad() { - let exp = expectation(description: "send did load message") - var result: Result? - - assertResult = { res in - result = res - exp.fulfill() - } - - - // Send - let message = MockMessage(message: ["action": "didLoad"]) - decoder.send(message: message) - - waitForExpectations(timeout: 1) - - - // Check - XCTAssertEqual(result, .didLoad) - } - - func test__Decode__Error_Setup_Failed() { - let exp = expectation(description: "send error") - var result: Result? - - assertResult = { res in - result = res - exp.fulfill() - } - - // Send - let message = MockMessage(message: ["error": 27]) - decoder.send(message: message) - - waitForExpectations(timeout: 1) - - // Check - XCTAssertEqual(result, .error(.failedSetup)) - } - - func test__Decode__Error_Response_Expired() { - let exp = expectation(description: "send error") - var result: Result? - - assertResult = { res in - result = res - exp.fulfill() - } - - // Send - let message = MockMessage(message: ["error": 28]) - decoder.send(message: message) - - waitForExpectations(timeout: 1) - - // Check - XCTAssertEqual(result, .error(.responseExpired)) - } - - func test__Decode__Error_Render_Failed() { - let exp = expectation(description: "send error") - var result: Result? - - assertResult = { res in - result = res - exp.fulfill() - } - - // Send - let message = MockMessage(message: ["error": 29]) - decoder.send(message: message) - - waitForExpectations(timeout: 1) - - // Check - XCTAssertEqual(result, .error(.failedRender)) - } - - func test__Decode__Error_Wrong_Format() { - let exp = expectation(description: "send error") - var result: Result? - - assertResult = { res in - result = res - exp.fulfill() - } - - // Send - let message = MockMessage(message: ["error": 26]) - decoder.send(message: message) - - waitForExpectations(timeout: 1) - - // Check - XCTAssertEqual(result, .error(.wrongMessageFormat)) - } -} diff --git a/Example/ReCaptcha_Tests/Core/ReCaptchaResult__Tests.swift b/Example/ReCaptcha_Tests/Core/ReCaptchaResult__Tests.swift deleted file mode 100644 index 7922832..0000000 --- a/Example/ReCaptcha_Tests/Core/ReCaptchaResult__Tests.swift +++ /dev/null @@ -1,39 +0,0 @@ -// -// ReCaptchaResult__Tests.swift -// ReCaptcha -// -// Created by Flávio Caetano on 06/03/18. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -@testable import ReCaptcha -import XCTest - - -class ReCaptchaResult__Tests: XCTestCase { - func test__Get_Token() { - let token = UUID().uuidString - let result = ReCaptchaResult.token(token) - - do { - let value = try result.dematerialize() - XCTAssertEqual(value, token) - } - catch let err { - XCTFail(err.localizedDescription) - } - } - - func test__Get_Token__Error() { - let error = ReCaptchaError.random() - let result = ReCaptchaResult.error(error) - - do { - _ = try result.dematerialize() - XCTFail("Shouldn't have completed") - } - catch let err { - XCTAssertEqual(err as? ReCaptchaError, error) - } - } -} diff --git a/Example/ReCaptcha_Tests/Core/ReCaptchaWebViewManager__Tests.swift b/Example/ReCaptcha_Tests/Core/ReCaptchaWebViewManager__Tests.swift deleted file mode 100644 index 2a9e5b6..0000000 --- a/Example/ReCaptcha_Tests/Core/ReCaptchaWebViewManager__Tests.swift +++ /dev/null @@ -1,435 +0,0 @@ -// -// ReCaptchaWebViewManager__Tests.swift -// ReCaptcha -// -// Created by Flávio Caetano on 13/04/17. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -@testable import ReCaptcha - -import WebKit -import XCTest - - -class ReCaptchaWebViewManager__Tests: XCTestCase { - - fileprivate var apiKey: String! - fileprivate var presenterView: UIView! - - override func setUp() { - super.setUp() - - presenterView = UIApplication.shared.keyWindow! - apiKey = String(arc4random()) - } - - override func tearDown() { - presenterView = nil - apiKey = nil - - super.tearDown() - } - - // MARK: Validate - - func test__Validate__Token() { - let exp1 = expectation(description: "load token") - var result1: ReCaptchaResult? - - // Validate - let manager = ReCaptchaWebViewManager(messageBody: "{token: key}", apiKey: apiKey) - manager.configureWebView { _ in - XCTFail("should not ask to configure the webview") - } - - manager.validate(on: presenterView) { response in - result1 = response - exp1.fulfill() - } - - waitForExpectations(timeout: 10) - - - // Verify - XCTAssertNotNil(result1) - XCTAssertNil(result1?.error) - XCTAssertEqual(result1?.token, apiKey) - - - // Validate again - let exp2 = expectation(description: "reload token") - var result2: ReCaptchaResult? - - // Validate - manager.validate(on: presenterView) { response in - result2 = response - exp2.fulfill() - } - - waitForExpectations(timeout: 10) - - - // Verify - XCTAssertNotNil(result2) - XCTAssertNil(result2?.error) - XCTAssertEqual(result2?.token, apiKey) - } - - - func test__Validate__Show_ReCaptcha() { - let exp = expectation(description: "show recaptcha") - - // Validate - let manager = ReCaptchaWebViewManager(messageBody: "{action: \"showReCaptcha\"}") - manager.configureWebView { _ in - exp.fulfill() - } - - manager.validate(on: presenterView) { _ in - XCTFail("should not call completion") - } - - waitForExpectations(timeout: 10) - } - - - func test__Validate__Message_Error() { - var result: ReCaptchaResult? - let exp = expectation(description: "message error") - - // Validate - let manager = ReCaptchaWebViewManager(messageBody: "\"foobar\"") - manager.configureWebView { _ in - XCTFail("should not ask to configure the webview") - } - - manager.validate(on: presenterView, resetOnError: false) { response in - result = response - exp.fulfill() - } - - waitForExpectations(timeout: 10) - - // Verify - XCTAssertNotNil(result) - XCTAssertEqual(result?.error, .wrongMessageFormat) - XCTAssertNil(result?.token) - } - - func test__Validate__JS_Error() { - var result: ReCaptchaResult? - let exp = expectation(description: "js error") - - // Validate - let manager = ReCaptchaWebViewManager(messageBody: "foobar") - manager.configureWebView { _ in - XCTFail("should not ask to configure the webview") - } - - manager.validate(on: presenterView, resetOnError: false) { response in - result = response - exp.fulfill() - } - - waitForExpectations(timeout: 10) - - // Verify - XCTAssertNotNil(result) - XCTAssertNotNil(result?.error) - XCTAssertNil(result?.token) - - switch result!.error! { - case .unexpected(let error as NSError): - XCTAssertEqual(error.code, WKError.javaScriptExceptionOccurred.rawValue) - default: - XCTFail("Unexpected error received") - } - } - - // MARK: Configure WebView - - func test__Configure_Web_View__Empty() { - let exp = expectation(description: "configure webview") - - // Configure WebView - let manager = ReCaptchaWebViewManager(messageBody: "{action: \"showReCaptcha\"}") - manager.validate(on: presenterView) { _ in - XCTFail("should not call completion") - } - - DispatchQueue.main.asyncAfter(deadline: .now() + 2) { - exp.fulfill() - } - - waitForExpectations(timeout: 10) - } - - func test__Configure_Web_View() { - let exp = expectation(description: "configure webview") - - // Configure WebView - let manager = ReCaptchaWebViewManager(messageBody: "{action: \"showReCaptcha\"}") - manager.configureWebView { [unowned self] webView in - XCTAssertEqual(webView.superview, self.presenterView) - exp.fulfill() - } - - manager.validate(on: presenterView) { _ in - XCTFail("should not call completion") - } - - waitForExpectations(timeout: 10) - } - - func test__Configure_Web_View__Called_Once() { - var count = 0 - let exp0 = expectation(description: "configure webview") - - // Configure WebView - let manager = ReCaptchaWebViewManager(messageBody: "{action: \"showReCaptcha\"}") - manager.configureWebView { _ in - if count < 3 { - manager.webView.evaluateJavaScript("execute();") { XCTAssertNil($1) } - } - - count += 1 - exp0.fulfill() - } - - manager.validate(on: presenterView) { _ in - XCTFail("should not call completion") - } - - waitForExpectations(timeout: 10) - - let exp1 = expectation(description: "waiting for extra calls") - DispatchQueue.main.asyncAfter(deadline: .now() + 1, execute: exp1.fulfill) - waitForExpectations(timeout: 2) - - XCTAssertEqual(count, 1) - } - - func test__Configure_Web_View__Called_Again_With_Reset() { - let exp0 = expectation(description: "configure webview 0") - - let manager = ReCaptchaWebViewManager(messageBody: "{action: \"showReCaptcha\"}") - manager.validate(on: presenterView) { _ in - XCTFail("should not call completion") - } - - // Configure Webview - manager.configureWebView { _ in - manager.webView.evaluateJavaScript("execute();") { XCTAssertNil($1) } - exp0.fulfill() - } - - waitForExpectations(timeout: 10) - - // Reset and ensure it calls again - let exp1 = expectation(description: "configure webview 1") - - manager.configureWebView { _ in - manager.webView.evaluateJavaScript("execute();") { XCTAssertNil($1) } - exp1.fulfill() - } - - manager.reset() - waitForExpectations(timeout: 10) - } - - // MARK: Stop - - func test__Stop() { - let exp = expectation(description: "stop loading") - - // Stop - let manager = ReCaptchaWebViewManager(messageBody: "{action: \"showReCaptcha\"}") - manager.stop() - manager.configureWebView { _ in - XCTFail("should not ask to configure the webview") - } - - manager.validate(on: presenterView) { _ in - XCTFail("should not validate") - } - - DispatchQueue.main.asyncAfter(deadline: .now() + 2) { - exp.fulfill() - } - - waitForExpectations(timeout: 10) - } - - // MARK: Setup - - func test__Key_Setup() { - let exp = expectation(description: "setup key") - var result: ReCaptchaResult? - - // Validate - let manager = ReCaptchaWebViewManager(messageBody: "{token: key}", apiKey: apiKey) - manager.configureWebView { _ in - XCTFail("should not ask to configure the webview") - } - - manager.validate(on: presenterView) { response in - result = response - exp.fulfill() - } - - waitForExpectations(timeout: 10) - - XCTAssertNotNil(result) - XCTAssertNil(result?.error) - XCTAssertEqual(result?.token, apiKey) - } - - func test__Endpoint_Setup() { - let exp = expectation(description: "setup endpoint") - let endpoint = ReCaptcha.Endpoint.alternate.getURL(locale: nil) - var result: ReCaptchaResult? - - let manager = ReCaptchaWebViewManager(messageBody: "{token: endpoint}", endpoint: endpoint) - manager.configureWebView { _ in - XCTFail("should not ask to configure the webview") - } - - manager.validate(on: presenterView) { response in - result = response - exp.fulfill() - } - - waitForExpectations(timeout: 10) - - XCTAssertNotNil(result) - XCTAssertNil(result?.error) - XCTAssertEqual(result?.token, endpoint) - } - - // MARK: Reset - - func test__Reset() { - let exp1 = expectation(description: "fail on first execution") - var result1: ReCaptchaResult? - - // Validate - let manager = ReCaptchaWebViewManager(messageBody: "{token: key}", apiKey: apiKey, shouldFail: true) - manager.configureWebView { _ in - XCTFail("should not ask to configure the webview") - } - - // Error - manager.validate(on: presenterView, resetOnError: false) { result in - result1 = result - exp1.fulfill() - } - - waitForExpectations(timeout: 10) - XCTAssertEqual(result1?.error, .wrongMessageFormat) - - // Resets and tries again - let exp2 = expectation(description: "validates after reset") - var result2: ReCaptchaResult? - - manager.reset() - manager.validate(on: presenterView, resetOnError: false) { result in - result2 = result - exp2.fulfill() - } - - waitForExpectations(timeout: 10) - - XCTAssertNil(result2?.error) - XCTAssertEqual(result2?.token, apiKey) - } - - func test__Validate__Reset_On_Error() { - let exp = expectation(description: "fail on first execution") - var result: ReCaptchaResult? - - // Validate - let manager = ReCaptchaWebViewManager(messageBody: "{token: key}", apiKey: apiKey, shouldFail: true) - manager.configureWebView { _ in - XCTFail("should not ask to configure the webview") - } - - // Error - manager.validate(on: presenterView, resetOnError: true) { response in - result = response - exp.fulfill() - } - - waitForExpectations(timeout: 10) - - XCTAssertNil(result?.error) - XCTAssertEqual(result?.token, apiKey) - } - - func test__Validate__Should_Skip_For_Tests() { - let exp = expectation(description: "did skip validation") - - let manager = ReCaptchaWebViewManager() - manager.shouldSkipForTests = true - - manager.completion = { result in - XCTAssertEqual(result.token, "") - exp.fulfill() - } - - manager.validate(on: presenterView) - - waitForExpectations(timeout: 1) - } - - // MARK: Force Challenge Visible - - func test__Force_Visible_Challenge() { - let manager = ReCaptchaWebViewManager() - - // Initial value - XCTAssertFalse(manager.forceVisibleChallenge) - - // Set True - manager.forceVisibleChallenge = true - XCTAssertEqual(manager.webView.customUserAgent, "Googlebot/2.1") - - // Set False - manager.forceVisibleChallenge = false - XCTAssertNotEqual(manager.webView.customUserAgent?.isEmpty, false) - } - - // MARK: On Did Finish Loading - - func test__Did_Finish_Loading__Immediate() { - let exp = expectation(description: "did finish loading") - - let manager = ReCaptchaWebViewManager() - - /// Should call closure immediately since it's already loaded - manager.onDidFinishLoading = { - manager.onDidFinishLoading = exp.fulfill - } - - waitForExpectations(timeout: 1) - } - - func test__Did_Finish_Loading__Delayed() { - let exp = expectation(description: "did finish loading") - - let manager = ReCaptchaWebViewManager(shouldFail: true) - - var called = false - manager.onDidFinishLoading = { - called = true - } - - XCTAssertFalse(called) - - // Reset - manager.onDidFinishLoading = exp.fulfill - manager.reset() - - waitForExpectations(timeout: 3) - } -} diff --git a/Example/ReCaptcha_Tests/Core/ReCaptcha_Endpoint__Tests.swift b/Example/ReCaptcha_Tests/Core/ReCaptcha_Endpoint__Tests.swift deleted file mode 100644 index 7411bed..0000000 --- a/Example/ReCaptcha_Tests/Core/ReCaptcha_Endpoint__Tests.swift +++ /dev/null @@ -1,27 +0,0 @@ -// -// ReCaptcha_Endpoint__.swift -// ReCaptcha -// -// Created by Flávio Caetano on 12/07/18. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -@testable import ReCaptcha -import XCTest - -class ReCaptcha_Endpoint__Tests: XCTestCase { - - private let endpoint = ReCaptcha.Endpoint.default - private let endpointURL = "https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" - - // MARK: - Locale - - func test__Locale__Nil() { - XCTAssertEqual(endpoint.getURL(locale: nil), endpointURL) - } - - func test__Locale__Valid() { - let locale = Locale(identifier: "pt-BR") - XCTAssertEqual(endpoint.getURL(locale: locale), "\(endpointURL)&hl=pt-BR") - } -} diff --git a/Example/ReCaptcha_Tests/Core/ReCaptcha__Tests.swift b/Example/ReCaptcha_Tests/Core/ReCaptcha__Tests.swift deleted file mode 100644 index 232b508..0000000 --- a/Example/ReCaptcha_Tests/Core/ReCaptcha__Tests.swift +++ /dev/null @@ -1,135 +0,0 @@ -// -// ReCaptcha__Tests.swift -// ReCaptcha -// -// Created by Flávio Caetano on 26/09/17. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -import AppSwizzle -@testable import ReCaptcha -import RxSwift -import XCTest - - -class ReCaptcha__Tests: XCTestCase { - fileprivate struct Constants { - struct InfoDictKeys { - static let APIKey = "ReCaptchaKey" - static let Domain = "ReCaptchaDomain" - } - } - - func test__Fails_Without_HTML_File() { - _ = Bundle.swizzleInstanceMethod( - origSelector: #selector(Bundle.path(forResource:ofType:)), - toAlterSelector: #selector(Bundle.failHTMLLoad(_:type:)) - ) - - do { - _ = try ReCaptcha() - XCTFail("Should have failed") - } catch let e as ReCaptchaError { - print(e) - XCTAssertEqual(e, ReCaptchaError.htmlLoadError) - } catch let e { - XCTFail("Unexpected error: \(e)") - } - - // Unswizzle - _ = Bundle.swizzleInstanceMethod( - origSelector: #selector(Bundle.path(forResource:ofType:)), - toAlterSelector: #selector(Bundle.failHTMLLoad(_:type:)) - ) - } - - func test__Base_URL() { - // Ensures baseURL failure when nil - do { - _ = try ReCaptcha.Config(apiKey: "", infoPlistKey: nil, baseURL: nil, infoPlistURL: nil) - XCTFail("Should have failed") - } catch let e as ReCaptchaError { - print(e) - XCTAssertEqual(e, ReCaptchaError.baseURLNotFound) - } catch let e { - XCTFail("Unexpected error: \(e)") - } - - // Ensures plist url if nil key - let plistURL = URL(string: "https://bar")! - let config1 = try? ReCaptcha.Config(apiKey: "", infoPlistKey: nil, baseURL: nil, infoPlistURL: plistURL) - XCTAssertEqual(config1?.baseURL, plistURL) - - // Ensures preference of given url over plist entry - let url = URL(string: "ftp://foo")! - let config2 = try? ReCaptcha.Config(apiKey: "", infoPlistKey: nil, baseURL: url, infoPlistURL: plistURL) - XCTAssertEqual(config2?.baseURL, url) - } - - func test__Base_URL_Without_Scheme() { - // Ignores URL with scheme - let goodURL = URL(string: "https://foo.bar")! - let config0 = try? ReCaptcha.Config(apiKey: "", infoPlistKey: nil, baseURL: goodURL, infoPlistURL: nil) - XCTAssertEqual(config0?.baseURL, goodURL) - - // Fixes URL without scheme - let badURL = URL(string: "foo")! - let config = try? ReCaptcha.Config(apiKey: "", infoPlistKey: nil, baseURL: badURL, infoPlistURL: nil) - XCTAssertEqual(config?.baseURL.absoluteString, "http://" + badURL.absoluteString) - } - - func test__API_Key() { - // Ensures key failure when nil - do { - _ = try ReCaptcha.Config(apiKey: nil, infoPlistKey: nil, baseURL: nil, infoPlistURL: nil) - XCTFail("Should have failed") - } catch let e as ReCaptchaError { - print(e) - XCTAssertEqual(e, ReCaptchaError.apiKeyNotFound) - } catch let e { - XCTFail("Unexpected error: \(e)") - } - - // Ensures plist key if nil key - let plistKey = "bar" - let config1 = try? ReCaptcha.Config( - apiKey: nil, - infoPlistKey: plistKey, - baseURL: URL(string: "foo"), - infoPlistURL: nil - ) - XCTAssertEqual(config1?.apiKey, plistKey) - - // Ensures preference of given key over plist entry - let key = "foo" - let config2 = try? ReCaptcha.Config( - apiKey: key, - infoPlistKey: plistKey, - baseURL: URL(string: "foo"), - infoPlistURL: nil - ) - XCTAssertEqual(config2?.apiKey, key) - } - - func test__Force_Visible_Challenge() { - let recaptcha = ReCaptcha(manager: ReCaptchaWebViewManager()) - - // Initial value - XCTAssertFalse(recaptcha.forceVisibleChallenge) - - // Set true - recaptcha.forceVisibleChallenge = true - XCTAssertTrue(recaptcha.forceVisibleChallenge) - } -} - - -private extension Bundle { - @objc func failHTMLLoad(_ resource: String, type: String) -> String? { - guard resource == "recaptcha" && type == "html" else { - return failHTMLLoad(resource, type: type) - } - - return nil - } -} diff --git a/Example/ReCaptcha_Tests/Helpers/ReCaptchaDecoder+Helper.swift b/Example/ReCaptcha_Tests/Helpers/ReCaptchaDecoder+Helper.swift deleted file mode 100644 index 63b2a8b..0000000 --- a/Example/ReCaptcha_Tests/Helpers/ReCaptchaDecoder+Helper.swift +++ /dev/null @@ -1,55 +0,0 @@ -// -// ReCaptchaDecoder+Helper.swift -// ReCaptcha -// -// Created by Flávio Caetano on 22/12/17. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -import Foundation -@testable import ReCaptcha -import WebKit - -class MockMessage: WKScriptMessage { - override var body: Any { - return storedBody - } - - fileprivate let storedBody: Any - - init(message: Any) { - storedBody = message - } -} - -// MARK: - Decoder Helpers -extension ReCaptchaDecoder { - func send(message: MockMessage) { - userContentController(WKUserContentController(), didReceive: message) - } -} - -// MARK: - Result Helpers -extension ReCaptchaDecoder.Result: Equatable { - var error: ReCaptchaError? { - guard case .error(let error) = self else { return nil } - return error - } - - public static func == (lhs: ReCaptchaDecoder.Result, rhs: ReCaptchaDecoder.Result) -> Bool { - switch (lhs, rhs) { - case (.showReCaptcha, .showReCaptcha), - (.didLoad, .didLoad): - return true - - case (.token(let lht), .token(let rht)): - return lht == rht - - case (.error(let lhe), .error(let rhe)): - return lhe == rhe - - default: - return false - } - } -} diff --git a/Example/ReCaptcha_Tests/Helpers/ReCaptchaError+Equatable.swift b/Example/ReCaptcha_Tests/Helpers/ReCaptchaError+Equatable.swift deleted file mode 100644 index 264edfa..0000000 --- a/Example/ReCaptcha_Tests/Helpers/ReCaptchaError+Equatable.swift +++ /dev/null @@ -1,42 +0,0 @@ -// -// ReCaptchaError+Equatable.swift -// ReCaptcha -// -// Created by Flávio Caetano on 16/10/17. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -import Foundation -@testable import ReCaptcha - -extension ReCaptchaError: Equatable { - public static func == (lhs: ReCaptchaError, rhs: ReCaptchaError) -> Bool { - switch (lhs, rhs) { - case (.htmlLoadError, .htmlLoadError), - (.apiKeyNotFound, .apiKeyNotFound), - (.baseURLNotFound, .baseURLNotFound), - (.wrongMessageFormat, .wrongMessageFormat), - (.failedSetup, .failedSetup), - (.responseExpired, .responseExpired), - (.failedRender, .failedRender): - return true - case (.unexpected(let lhe as NSError), .unexpected(let rhe as NSError)): - return lhe == rhe - default: - return false - } - } - - static func random() -> ReCaptchaError { - switch arc4random_uniform(7) { - case 0: return .htmlLoadError - case 1: return .apiKeyNotFound - case 2: return .baseURLNotFound - case 3: return .wrongMessageFormat - case 4: return .failedSetup - case 5: return .responseExpired - case 6: return .failedRender - default: return .unexpected(NSError()) - } - } -} diff --git a/Example/ReCaptcha_Tests/Helpers/ReCaptchaWebViewManager+Helpers.swift b/Example/ReCaptcha_Tests/Helpers/ReCaptchaWebViewManager+Helpers.swift deleted file mode 100644 index 7d4f35f..0000000 --- a/Example/ReCaptcha_Tests/Helpers/ReCaptchaWebViewManager+Helpers.swift +++ /dev/null @@ -1,50 +0,0 @@ -// -// ReCaptchaWebViewManager+Helpers.swift -// ReCaptcha -// -// Created by Flávio Caetano on 13/04/17. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -import Foundation -@testable import ReCaptcha -import WebKit - -extension ReCaptchaWebViewManager { - private static let unformattedHTML: String! = { - Bundle(for: ReCaptchaWebViewManager__Tests.self) - .path(forResource: "mock", ofType: "html") - .flatMap { try? String(contentsOfFile: $0) } - }() - - convenience init( - messageBody: String = "", - apiKey: String? = nil, - endpoint: String? = nil, - shouldFail: Bool = false - ) { - let localhost = URL(string: "http://localhost")! - let html = String(format: ReCaptchaWebViewManager.unformattedHTML, arguments: [ - "message": messageBody, - "shouldFail": shouldFail.description - ]) - - self.init( - html: html, - apiKey: apiKey ?? String(arc4random()), - baseURL: localhost, - endpoint: endpoint ?? localhost.absoluteString - ) - } - - func configureWebView(_ configure: @escaping (WKWebView) -> Void) { - configureWebView = configure - } - - func validate(on view: UIView, resetOnError: Bool = true, completion: @escaping (ReCaptchaResult) -> Void) { - self.shouldResetOnError = resetOnError - self.completion = completion - - validate(on: view) - } -} diff --git a/Example/ReCaptcha_Tests/Helpers/Result+Helpers.swift b/Example/ReCaptcha_Tests/Helpers/Result+Helpers.swift deleted file mode 100644 index c39a055..0000000 --- a/Example/ReCaptcha_Tests/Helpers/Result+Helpers.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// Result+Helpers.swift -// ReCaptcha -// -// Created by Flávio Caetano on 13/04/17. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -@testable import ReCaptcha - - -extension ReCaptchaResult { - var token: String? { - guard case .token(let value) = self else { return nil } - return value - } - - var error: ReCaptchaError? { - guard case .error(let error) = self else { return nil } - return error - } -} diff --git a/Example/ReCaptcha_Tests/Info.plist b/Example/ReCaptcha_Tests/Info.plist deleted file mode 100644 index 6c6c23c..0000000 --- a/Example/ReCaptcha_Tests/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/Example/ReCaptcha_Tests/RxSwift/ReCaptcha+Rx__Tests.swift b/Example/ReCaptcha_Tests/RxSwift/ReCaptcha+Rx__Tests.swift deleted file mode 100644 index 9e6c43c..0000000 --- a/Example/ReCaptcha_Tests/RxSwift/ReCaptcha+Rx__Tests.swift +++ /dev/null @@ -1,265 +0,0 @@ -// -// ReCaptcha+Rx__Tests.swift -// ReCaptcha -// -// Created by Flávio Caetano on 13/04/17. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -@testable import ReCaptcha - -import RxBlocking -import RxCocoa -import RxSwift -import XCTest - - -class ReCaptcha_Rx__Tests: XCTestCase { - - fileprivate var apiKey: String! - fileprivate var presenterView: UIView! - - override func setUp() { - super.setUp() - - presenterView = UIApplication.shared.keyWindow! - apiKey = String(arc4random()) - } - - override func tearDown() { - presenterView = nil - apiKey = nil - - super.tearDown() - } - - - func test__Validate__Token() { - let recaptcha = ReCaptcha(manager: ReCaptchaWebViewManager(messageBody: "{token: key}", apiKey: apiKey)) - recaptcha.configureWebView { _ in - XCTFail("should not ask to configure the webview") - } - - do { - // Validate - let result = try recaptcha.rx.validate(on: presenterView) - .toBlocking() - .single() - - // Verify - XCTAssertEqual(result, apiKey) - } - catch let error { - XCTFail(error.localizedDescription) - } - } - - - func test__Validate__Show_ReCaptcha() { - let recaptcha = ReCaptcha( - manager: ReCaptchaWebViewManager(messageBody: "{action: \"showReCaptcha\"}", apiKey: apiKey) - ) - - var didConfigureWebView = false - - recaptcha.configureWebView { _ in - didConfigureWebView = true - } - - do { - // Validate - _ = try recaptcha.rx.validate(on: presenterView) - .toBlocking(timeout: 2) - .single() - - XCTFail("should have thrown exception") - } - catch let error { - XCTAssertEqual(String(describing: error), RxError.timeout.debugDescription) - XCTAssertTrue(didConfigureWebView) - } - } - - - func test__Validate__Error() { - let recaptcha = ReCaptcha(manager: ReCaptchaWebViewManager(messageBody: "\"foobar\"", apiKey: apiKey)) - recaptcha.configureWebView { _ in - XCTFail("should not ask to configure the webview") - } - - do { - // Validate - _ = try recaptcha.rx.validate(on: presenterView, resetOnError: false) - .toBlocking() - .single() - - XCTFail("should have thrown exception") - } - catch let error { - XCTAssertEqual(error as? ReCaptchaError, .wrongMessageFormat) - } - } - - // MARK: - Did Finish Loading - - func test__Did_Finish_Loading__Immediate() { - let manager = ReCaptchaWebViewManager() - let recaptcha = ReCaptcha(manager: manager) - - manager.onDidFinishLoading = { - do { - try recaptcha.rx.didFinishLoading - .toBlocking() - .first() - } - catch let error { - XCTFail(error.localizedDescription) - } - } - } - - func test__Did_Finish_Loading__Multiple() { - let recaptcha = ReCaptcha(manager: ReCaptchaWebViewManager()) - - do { - let obs = recaptcha.rx.didFinishLoading - .take(2) - .share() - - let reset = obs.do(onNext: recaptcha.reset).subscribe() - - let result = try obs - .toBlocking() - .toArray() - - XCTAssertEqual(result.count, 2) - reset.dispose() - } - catch let error { - XCTFail(error.localizedDescription) - } - } - - func test__Did_Finish_Loading__Delayed() { - let recaptcha = ReCaptcha(manager: ReCaptchaWebViewManager(shouldFail: true)) - - do { - _ = try recaptcha.rx.didFinishLoading - .toBlocking(timeout: 0.1) - .first() - - XCTFail("should have timed out") - } - catch let error { - XCTAssertEqual(String(describing: error), RxError.timeout.debugDescription) - } - - do { - recaptcha.reset() - - try recaptcha.rx.didFinishLoading - .toBlocking() - .first() - } - catch let error { - XCTFail(error.localizedDescription) - } - } - - func test__Did_Finish_Loading__Dispose() { - let manager = ReCaptchaWebViewManager() - let recaptcha = ReCaptcha(manager: manager) - - let obs = recaptcha.rx.didFinishLoading - .subscribe() - - XCTAssertNotNil(manager.onDidFinishLoading) - - obs.dispose() - XCTAssertNil(manager.onDidFinishLoading) - } - - // MARK: - Dispose - - func test__Dispose() { - let exp = expectation(description: "stop loading") - - // Stop - let recaptcha = ReCaptcha(manager: ReCaptchaWebViewManager(messageBody: "{log: \"foo\"}")) - recaptcha.configureWebView { _ in - XCTFail("should not ask to configure the webview") - } - - let disposable = recaptcha.rx.validate(on: presenterView) - .do(onDispose: exp.fulfill) - .subscribe { _ in - XCTFail("should not validate") - } - - DispatchQueue.main.asyncAfter(deadline: .now() + 1, execute: disposable.dispose) - - waitForExpectations(timeout: 10) - } - - // MARK: - Reset - - func test__Reset() { - // Validate - let recaptcha = ReCaptcha( - manager: ReCaptchaWebViewManager(messageBody: "{token: key}", apiKey: apiKey, shouldFail: true) - ) - - recaptcha.configureWebView { _ in - XCTFail("should not ask to configure the webview") - } - - do { - // Error - _ = try recaptcha.rx.validate(on: presenterView, resetOnError: false) - .toBlocking() - .single() - } - catch let error { - XCTAssertEqual(error as? ReCaptchaError, .wrongMessageFormat) - - // Resets after failure - _ = Observable.just(()) - .bind(to: recaptcha.rx.reset) - } - - do { - // Resets and tries again - let result = try recaptcha.rx.validate(on: presenterView, resetOnError: false) - .toBlocking() - .single() - - XCTAssertEqual(result, apiKey) - } - catch let error { - XCTFail(error.localizedDescription) - } - } - - func test__Validate__Reset_On_Error() { - // Validate - let recaptcha = ReCaptcha( - manager: ReCaptchaWebViewManager(messageBody: "{token: key}", apiKey: apiKey, shouldFail: true) - ) - - recaptcha.configureWebView { _ in - XCTFail("should not ask to configure the webview") - } - - do { - // Error - let result = try recaptcha.rx.validate(on: presenterView, resetOnError: true) - .toBlocking() - .single() - - XCTAssertEqual(result, apiKey) - } - catch let error { - XCTFail(error.localizedDescription) - } - } -} diff --git a/Example/ReCaptcha_Tests/mock.html b/Example/ReCaptcha_Tests/mock.html deleted file mode 100644 index 09b3c17..0000000 --- a/Example/ReCaptcha_Tests/mock.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - diff --git a/Example/ReCaptcha_UITests/.swiftlint.yml b/Example/ReCaptcha_UITests/.swiftlint.yml deleted file mode 100644 index 2d9f9c0..0000000 --- a/Example/ReCaptcha_UITests/.swiftlint.yml +++ /dev/null @@ -1,5 +0,0 @@ -disabled_rules: - - type_name - - nesting - - force_unwrapping - - explicit_top_level_acl diff --git a/Example/ReCaptcha_UITests/Info.plist b/Example/ReCaptcha_UITests/Info.plist deleted file mode 100644 index 6c40a6c..0000000 --- a/Example/ReCaptcha_UITests/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/Example/ReCaptcha_UITests/ReCaptcha_UITests.swift b/Example/ReCaptcha_UITests/ReCaptcha_UITests.swift deleted file mode 100644 index 8cde2d9..0000000 --- a/Example/ReCaptcha_UITests/ReCaptcha_UITests.swift +++ /dev/null @@ -1,51 +0,0 @@ -// -// ReCaptcha_UITests.swift -// ReCaptcha -// -// Created by Flávio Caetano on 16/01/18. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -import Foundation -@testable import ReCaptcha -@testable import ReCaptcha_Example -import XCTest - -class ReCaptcha_UITests: XCTestCase { - - override func setUp() { - super.setUp() - - // In UI tests it is usually best to stop immediately when a failure occurs. - continueAfterFailure = false - XCUIApplication().launch() - } - - func test__Validate__Default_Endpoint() { - let app = XCUIApplication() - app.segmentedControls.buttons["Default Endpoint"].tap() - app.switches["Switch"].tap() - app.buttons["Validate"].tap() - - verifyValidation() - } - - func test__Validate__Alternate_Endpoint() { - let app = XCUIApplication() - app.segmentedControls.buttons["Alternate"].tap() - app.switches["Switch"].tap() - app.buttons["Validate"].tap() - - verifyValidation() - } - - // MARK: Private Methods - - private func verifyValidation() { - let app = XCUIApplication() - let webview = app.staticTexts.element(matching: .any, identifier: "webview") - let webviewExists = webview.waitForExistence(timeout: 10) - - XCTAssertTrue(webviewExists) - } -} diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 1549a90..0000000 --- a/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -source 'https://rubygems.org' - -gem 'fastlane', '~> 2.163.0' -gem 'cocoapods', '~> 1.10.0' -gem 'jazzy', '~> 0.13' \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 924484e..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,266 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - CFPropertyList (3.0.3) - activesupport (5.2.4.4) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - addressable (2.7.0) - public_suffix (>= 2.0.2, < 5.0) - algoliasearch (1.27.5) - httpclient (~> 2.8, >= 2.8.3) - json (>= 1.5.1) - atomos (0.1.3) - aws-eventstream (1.1.0) - aws-partitions (1.414.0) - aws-sdk-core (3.110.0) - aws-eventstream (~> 1, >= 1.0.2) - aws-partitions (~> 1, >= 1.239.0) - aws-sigv4 (~> 1.1) - jmespath (~> 1.0) - aws-sdk-kms (1.40.0) - aws-sdk-core (~> 3, >= 3.109.0) - aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.87.0) - aws-sdk-core (~> 3, >= 3.109.0) - aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.1) - aws-sigv4 (1.2.2) - aws-eventstream (~> 1, >= 1.0.2) - babosa (1.0.4) - claide (1.0.3) - cocoapods (1.10.0) - addressable (~> 2.6) - claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.10.0) - cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 1.4.0, < 2.0) - cocoapods-plugins (>= 1.0.0, < 2.0) - cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.4.0, < 2.0) - cocoapods-try (>= 1.1.0, < 2.0) - colored2 (~> 3.1) - escape (~> 0.0.4) - fourflusher (>= 2.3.0, < 3.0) - gh_inspector (~> 1.0) - molinillo (~> 0.6.6) - nap (~> 1.0) - ruby-macho (~> 1.4) - xcodeproj (>= 1.19.0, < 2.0) - cocoapods-core (1.10.0) - activesupport (> 5.0, < 6) - addressable (~> 2.6) - algoliasearch (~> 1.0) - concurrent-ruby (~> 1.1) - fuzzy_match (~> 2.0.4) - nap (~> 1.0) - netrc (~> 0.11) - public_suffix - typhoeus (~> 1.0) - cocoapods-deintegrate (1.0.4) - cocoapods-downloader (1.4.0) - cocoapods-plugins (1.0.0) - nap - cocoapods-search (1.0.0) - cocoapods-trunk (1.5.0) - nap (>= 0.8, < 2.0) - netrc (~> 0.11) - cocoapods-try (1.2.0) - colored (1.2) - colored2 (3.1.2) - commander-fastlane (4.4.6) - highline (~> 1.7.2) - concurrent-ruby (1.1.7) - declarative (0.0.20) - declarative-option (0.1.0) - digest-crc (0.6.3) - rake (>= 12.0.0, < 14.0.0) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - dotenv (2.7.6) - emoji_regex (3.2.1) - escape (0.0.4) - ethon (0.12.0) - ffi (>= 1.3.0) - excon (0.78.1) - faraday (1.3.0) - faraday-net_http (~> 1.0) - multipart-post (>= 1.2, < 3) - ruby2_keywords - faraday-cookie_jar (0.0.7) - faraday (>= 0.8.0) - http-cookie (~> 1.0.0) - faraday-net_http (1.0.0) - faraday_middleware (1.0.0) - faraday (~> 1.0) - fastimage (2.2.1) - fastlane (2.163.0) - CFPropertyList (>= 2.3, < 4.0.0) - addressable (>= 2.3, < 3.0.0) - aws-sdk-s3 (~> 1.0) - babosa (>= 1.0.3, < 2.0.0) - bundler (>= 1.12.0, < 3.0.0) - colored - commander-fastlane (>= 4.4.6, < 5.0.0) - dotenv (>= 2.1.1, < 3.0.0) - emoji_regex (>= 0.1, < 4.0) - excon (>= 0.71.0, < 1.0.0) - faraday (~> 1.0) - faraday-cookie_jar (~> 0.0.6) - faraday_middleware (~> 1.0) - fastimage (>= 2.1.0, < 3.0.0) - gh_inspector (>= 1.1.2, < 2.0.0) - google-api-client (>= 0.37.0, < 0.39.0) - google-cloud-storage (>= 1.15.0, < 2.0.0) - highline (>= 1.7.2, < 2.0.0) - json (< 3.0.0) - jwt (>= 2.1.0, < 3) - mini_magick (>= 4.9.4, < 5.0.0) - multipart-post (~> 2.0.0) - plist (>= 3.1.0, < 4.0.0) - rubyzip (>= 2.0.0, < 3.0.0) - security (= 0.1.3) - simctl (~> 1.6.3) - slack-notifier (>= 2.0.0, < 3.0.0) - terminal-notifier (>= 2.0.0, < 3.0.0) - terminal-table (>= 1.4.5, < 2.0.0) - tty-screen (>= 0.6.3, < 1.0.0) - tty-spinner (>= 0.8.0, < 1.0.0) - word_wrap (~> 1.0.0) - xcodeproj (>= 1.13.0, < 2.0.0) - xcpretty (~> 0.3.0) - xcpretty-travis-formatter (>= 0.0.3) - ffi (1.14.2) - fourflusher (2.3.1) - fuzzy_match (2.0.4) - gh_inspector (1.1.3) - google-api-client (0.38.0) - addressable (~> 2.5, >= 2.5.1) - googleauth (~> 0.9) - httpclient (>= 2.8.1, < 3.0) - mini_mime (~> 1.0) - representable (~> 3.0) - retriable (>= 2.0, < 4.0) - signet (~> 0.12) - google-cloud-core (1.5.0) - google-cloud-env (~> 1.0) - google-cloud-errors (~> 1.0) - google-cloud-env (1.4.0) - faraday (>= 0.17.3, < 2.0) - google-cloud-errors (1.0.1) - google-cloud-storage (1.29.2) - addressable (~> 2.5) - digest-crc (~> 0.4) - google-api-client (~> 0.33) - google-cloud-core (~> 1.2) - googleauth (~> 0.9) - mini_mime (~> 1.0) - googleauth (0.14.0) - faraday (>= 0.17.3, < 2.0) - jwt (>= 1.4, < 3.0) - memoist (~> 0.16) - multi_json (~> 1.11) - os (>= 0.9, < 2.0) - signet (~> 0.14) - highline (1.7.10) - http-cookie (1.0.3) - domain_name (~> 0.5) - httpclient (2.8.3) - i18n (1.8.7) - concurrent-ruby (~> 1.0) - jazzy (0.13.6) - cocoapods (~> 1.5) - mustache (~> 1.1) - open4 - redcarpet (~> 3.4) - rouge (>= 2.0.6, < 4.0) - sassc (~> 2.1) - sqlite3 (~> 1.3) - xcinvoke (~> 0.3.0) - jmespath (1.4.0) - json (2.5.1) - jwt (2.2.2) - liferaft (0.0.6) - memoist (0.16.2) - mini_magick (4.11.0) - mini_mime (1.0.2) - minitest (5.14.2) - molinillo (0.6.6) - multi_json (1.15.0) - multipart-post (2.0.0) - mustache (1.1.1) - nanaimo (0.3.0) - nap (1.1.0) - naturally (2.2.0) - netrc (0.11.0) - open4 (1.3.4) - os (1.1.1) - plist (3.6.0) - public_suffix (4.0.6) - rake (13.0.3) - redcarpet (3.5.1) - representable (3.0.4) - declarative (< 0.1.0) - declarative-option (< 0.2.0) - uber (< 0.2.0) - retriable (3.1.2) - rouge (2.0.7) - ruby-macho (1.4.0) - ruby2_keywords (0.0.2) - rubyzip (2.3.0) - sassc (2.4.0) - ffi (~> 1.9) - security (0.1.3) - signet (0.14.0) - addressable (~> 2.3) - faraday (>= 0.17.3, < 2.0) - jwt (>= 1.5, < 3.0) - multi_json (~> 1.10) - simctl (1.6.8) - CFPropertyList - naturally - slack-notifier (2.3.2) - sqlite3 (1.4.2) - terminal-notifier (2.0.0) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) - thread_safe (0.3.6) - tty-cursor (0.7.1) - tty-screen (0.8.1) - tty-spinner (0.9.3) - tty-cursor (~> 0.7) - typhoeus (1.4.0) - ethon (>= 0.9.0) - tzinfo (1.2.9) - thread_safe (~> 0.1) - uber (0.1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.7.7) - unicode-display_width (1.7.0) - word_wrap (1.0.0) - xcinvoke (0.3.0) - liferaft (~> 0.0.6) - xcodeproj (1.19.0) - CFPropertyList (>= 2.3.3, < 4.0) - atomos (~> 0.1.3) - claide (>= 1.0.2, < 2.0) - colored2 (~> 3.1) - nanaimo (~> 0.3.0) - xcpretty (0.3.0) - rouge (~> 2.0.7) - xcpretty-travis-formatter (1.0.1) - xcpretty (~> 0.2, >= 0.0.7) - -PLATFORMS - ruby - -DEPENDENCIES - cocoapods (~> 1.10.0) - fastlane (~> 2.163.0) - jazzy (~> 0.13) - -BUNDLED WITH - 1.17.3 diff --git a/LICENSE b/LICENSE deleted file mode 100644 index e29326a..0000000 --- a/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright © Flávio Caetano - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..7adcda5 --- /dev/null +++ b/Package.swift @@ -0,0 +1,30 @@ +// swift-tools-version:5.3 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "ReCaptcha", + platforms: [.iOS(.v13)], + products: [ + // Products define the executables and libraries a package produces, and make them visible to other packages. + .library( + name: "ReCaptcha", + targets: ["ReCaptcha"]), + ], + dependencies: [ + // Dependencies declare other packages that this package depends on. + // .package(url: /* package url */, from: "1.0.0"), + ], + targets: [ + // Targets are the basic building blocks of a package. A target can define a module or a test suite. + // Targets can depend on other targets in this package, and on products in packages this package depends on. + .target( + name: "ReCaptcha", + dependencies: [], + resources: [.copy("recaptcha.html")]), + .testTarget( + name: "ReCaptchaTests", + dependencies: ["ReCaptcha"]), + ] +) diff --git a/README.md b/README.md index d0fd1c9..1ba9328 100644 --- a/README.md +++ b/README.md @@ -1,117 +1,3 @@ # ReCaptcha -[![Build Status](https://travis-ci.org/fjcaetano/ReCaptcha.svg?branch=master)](https://travis-ci.org/fjcaetano/ReCaptcha) -[![codecov](https://codecov.io/gh/fjcaetano/ReCaptcha/branch/master/graph/badge.svg)](https://codecov.io/gh/fjcaetano/ReCaptcha) -[![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/fjcaetano/ReCaptcha/pulls) -[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-orange.svg)](https://github.com/Carthage/Carthage) -[![Version](https://img.shields.io/cocoapods/v/ReCaptcha.svg?style=flat)](http://cocoapods.org/pods/ReCaptcha) -[![License](https://img.shields.io/cocoapods/l/ReCaptcha.svg?style=flat)](http://cocoapods.org/pods/ReCaptcha) -[![Platform](https://img.shields.io/cocoapods/p/ReCaptcha.svg?style=flat)](http://cocoapods.org/pods/ReCaptcha) - ------ - -Add Google's [Invisible ReCaptcha v2](https://developers.google.com/recaptcha/docs/invisible) to your project. This library -automatically handles ReCaptcha's events and retrieves the validation token or notifies you to present the challenge if -invisibility is not possible. - -![Example Gif 2](https://raw.githubusercontent.com/fjcaetano/ReCaptcha/master/example2.gif) ![Example Gif](https://raw.githubusercontent.com/fjcaetano/ReCaptcha/master/example.gif) - -#### _Warning_ ⚠️ - -Beware that this library only works for ReCaptcha v2 Invisible keys! Make sure to check the reCAPTCHA -v2 Invisible badge option when creating your [API Key](https://www.google.com/recaptcha/admin/create). - -![ReCaptcha v2 invisible key example](https://raw.githubusercontent.com/fjcaetano/ReCaptcha/master/example-v2-key.png) - -You won't be able to use a ReCaptcha v3 key because it requires server-side validation. On v3, all -challenges succeed into a token which is then validated in the server for a score. For this reason, -a frontend app can't know on its own wether or not a user is valid since the challenge will always -result in a valid token. - -## Installation - -ReCaptcha is available through [CocoaPods](http://cocoapods.org) and [Carthage](https://github.com/Carthage/Carthage). -To install it, simply add the following line to your dependencies file: - -#### Cocoapods -``` ruby -pod "ReCaptcha" -# or -pod "ReCaptcha/RxSwift" -``` - -#### Carthage -``` ruby -github "fjcaetano/ReCaptcha" -``` - -Carthage will create two different frameworks named `ReCaptcha` and `ReCaptcha_RxSwift`, the latter containing the RxSwift -extension for the ReCaptcha framework. - -## Usage - -The reCAPTCHA keys can be specified as Info.plist keys or can be passed as parameters when instantiating ReCaptcha(). - -For the Info.plist configuration, add `ReCaptchaKey` and `ReCaptchaDomain` (with a protocol ex. http:// or https://) to your Info.plist and run: - -``` swift -let recaptcha = try? ReCaptcha() - -override func viewDidLoad() { - super.viewDidLoad() - - recaptcha?.configureWebView { [weak self] webview in - webview.frame = self?.view.bounds ?? CGRect.zero - } -} - - -func validate() { - recaptcha?.validate(on: view) { [weak self] (result: ReCaptchaResult) in - print(try? result.dematerialize()) - } -} -``` - -If instead you prefer to keep the information out of the Info.plist, you can use: -``` swift -let recaptcha = try? ReCaptcha( - apiKey: "YOUR_RECAPTCHA_KEY", - baseURL: URL(string: "YOUR_RECAPTCHA_DOMAIN")! -) - -... -``` - -You can also install the reactive subpod and use it with RxSwift: - -``` swift -recaptcha.rx.validate(on: view) - .subscribe(onNext: { (token: String) in - // Do something - }) -``` - -#### Alternte endpoint - -If your app has firewall limitations that may be blocking Google's API, the JS endpoint may be changed on initialization. -It'll then point to `https://www.recaptcha.net/recaptcha/api.js`: - -``` swift -public enum Endpoint { - case default, alternate -} - -let recaptcha = try? ReCaptcha(endpoint: .alternate) // Defaults to `default` when unset -``` - -## Help Wanted - -Do you love ReCaptcha and work actively on apps that use it? We'd love if you could help us keep improving it! -Feel free to message us or to start contributing right away! - -## [Full Documentation](http://fjcaetano.github.io/ReCaptcha) - -## License - -ReCaptcha is available under the MIT license. See the LICENSE file for more info. +A description of this package. diff --git a/ReCaptcha-Carthage.xcodeproj/project.pbxproj b/ReCaptcha-Carthage.xcodeproj/project.pbxproj deleted file mode 100644 index 36e4ac3..0000000 --- a/ReCaptcha-Carthage.xcodeproj/project.pbxproj +++ /dev/null @@ -1,561 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - F206BAB51F8D3DE900A25807 /* ReCaptcha-Carthage.h in Headers */ = {isa = PBXBuildFile; fileRef = F206BAB31F8D3DE900A25807 /* ReCaptcha-Carthage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F206BB1D1F8D4DBC00A25807 /* ReCaptcha_RxSwift.h in Headers */ = {isa = PBXBuildFile; fileRef = F206BB1B1F8D4DBC00A25807 /* ReCaptcha_RxSwift.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F206BB221F8D4DDF00A25807 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F206BB121F8D4D1400A25807 /* RxSwift.framework */; }; - F231B39A1FEC51C800F82943 /* DispatchQueue+Throttle.swift in Sources */ = {isa = PBXBuildFile; fileRef = F231B3991FEC51C800F82943 /* DispatchQueue+Throttle.swift */; }; - F24EA1E11F9683FB001DEC17 /* ReCaptcha+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = F24EA1DD1F9683F5001DEC17 /* ReCaptcha+Rx.swift */; }; - F24EA1E21F968403001DEC17 /* ReCaptchaDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = F24EA1D81F9683F5001DEC17 /* ReCaptchaDecoder.swift */; }; - F24EA1E31F968403001DEC17 /* ReCaptchaWebViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F24EA1D91F9683F5001DEC17 /* ReCaptchaWebViewManager.swift */; }; - F24EA1E41F968403001DEC17 /* String+Dict.swift in Sources */ = {isa = PBXBuildFile; fileRef = F24EA1DA1F9683F5001DEC17 /* String+Dict.swift */; }; - F24EA1E51F968403001DEC17 /* ReCaptchaError.swift in Sources */ = {isa = PBXBuildFile; fileRef = F24EA1DB1F9683F5001DEC17 /* ReCaptchaError.swift */; }; - F24EA1E61F968403001DEC17 /* ReCaptcha.swift in Sources */ = {isa = PBXBuildFile; fileRef = F24EA1DE1F9683F5001DEC17 /* ReCaptcha.swift */; }; - F24EA1E71F968406001DEC17 /* recaptcha.html in Resources */ = {isa = PBXBuildFile; fileRef = F24EA1E01F9683F5001DEC17 /* recaptcha.html */; }; - F2AE8614204F3B42002E28D7 /* ReCaptchaResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2AE8613204F3B41002E28D7 /* ReCaptchaResult.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - F206BB231F8D4DF800A25807 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F206BAA71F8D3DE900A25807 /* Project object */; - proxyType = 1; - remoteGlobalIDString = F206BAAF1F8D3DE900A25807; - remoteInfo = ReCaptcha; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - F206BAB01F8D3DE900A25807 /* ReCaptcha.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ReCaptcha.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F206BAB31F8D3DE900A25807 /* ReCaptcha-Carthage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ReCaptcha-Carthage.h"; sourceTree = ""; }; - F206BAB41F8D3DE900A25807 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - F206BACF1F8D3E2800A25807 /* Cartfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Cartfile; sourceTree = ""; }; - F206BB121F8D4D1400A25807 /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = Carthage/Build/iOS/RxSwift.framework; sourceTree = ""; }; - F206BB191F8D4DBC00A25807 /* ReCaptcha_RxSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ReCaptcha_RxSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F206BB1B1F8D4DBC00A25807 /* ReCaptcha_RxSwift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReCaptcha_RxSwift.h; sourceTree = ""; }; - F206BB1C1F8D4DBC00A25807 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - F231B3991FEC51C800F82943 /* DispatchQueue+Throttle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "DispatchQueue+Throttle.swift"; sourceTree = ""; }; - F24EA1D81F9683F5001DEC17 /* ReCaptchaDecoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReCaptchaDecoder.swift; sourceTree = ""; }; - F24EA1D91F9683F5001DEC17 /* ReCaptchaWebViewManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReCaptchaWebViewManager.swift; sourceTree = ""; }; - F24EA1DA1F9683F5001DEC17 /* String+Dict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Dict.swift"; sourceTree = ""; }; - F24EA1DB1F9683F5001DEC17 /* ReCaptchaError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReCaptchaError.swift; sourceTree = ""; }; - F24EA1DD1F9683F5001DEC17 /* ReCaptcha+Rx.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ReCaptcha+Rx.swift"; sourceTree = ""; }; - F24EA1DE1F9683F5001DEC17 /* ReCaptcha.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReCaptcha.swift; sourceTree = ""; }; - F24EA1E01F9683F5001DEC17 /* recaptcha.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = recaptcha.html; sourceTree = ""; }; - F2AE8613204F3B41002E28D7 /* ReCaptchaResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReCaptchaResult.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - F206BAAC1F8D3DE900A25807 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F206BB151F8D4DBC00A25807 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F206BB221F8D4DDF00A25807 /* RxSwift.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - F206BAA61F8D3DE900A25807 = { - isa = PBXGroup; - children = ( - F206BACF1F8D3E2800A25807 /* Cartfile */, - F206BAB21F8D3DE900A25807 /* ReCaptcha-Carthage */, - F206BB1A1F8D4DBC00A25807 /* ReCaptcha_RxSwift */, - F206BAB11F8D3DE900A25807 /* Products */, - F206BAD11F8D3E7600A25807 /* Frameworks */, - F24EA1D41F967F21001DEC17 /* Recovered References */, - ); - sourceTree = ""; - }; - F206BAB11F8D3DE900A25807 /* Products */ = { - isa = PBXGroup; - children = ( - F206BAB01F8D3DE900A25807 /* ReCaptcha.framework */, - F206BB191F8D4DBC00A25807 /* ReCaptcha_RxSwift.framework */, - ); - name = Products; - sourceTree = ""; - }; - F206BAB21F8D3DE900A25807 /* ReCaptcha-Carthage */ = { - isa = PBXGroup; - children = ( - F24EA1D61F9683F5001DEC17 /* ReCaptcha */, - F206BAB31F8D3DE900A25807 /* ReCaptcha-Carthage.h */, - F206BAB41F8D3DE900A25807 /* Info.plist */, - ); - path = "ReCaptcha-Carthage"; - sourceTree = ""; - }; - F206BAD11F8D3E7600A25807 /* Frameworks */ = { - isa = PBXGroup; - children = ( - F206BB121F8D4D1400A25807 /* RxSwift.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - F206BB1A1F8D4DBC00A25807 /* ReCaptcha_RxSwift */ = { - isa = PBXGroup; - children = ( - F206BB1B1F8D4DBC00A25807 /* ReCaptcha_RxSwift.h */, - F206BB1C1F8D4DBC00A25807 /* Info.plist */, - ); - path = ReCaptcha_RxSwift; - sourceTree = ""; - }; - F24EA1D41F967F21001DEC17 /* Recovered References */ = { - isa = PBXGroup; - children = ( - ); - name = "Recovered References"; - sourceTree = ""; - }; - F24EA1D61F9683F5001DEC17 /* ReCaptcha */ = { - isa = PBXGroup; - children = ( - F24EA1D71F9683F5001DEC17 /* Classes */, - F24EA1DF1F9683F5001DEC17 /* Assets */, - ); - path = ReCaptcha; - sourceTree = SOURCE_ROOT; - }; - F24EA1D71F9683F5001DEC17 /* Classes */ = { - isa = PBXGroup; - children = ( - F24EA1D81F9683F5001DEC17 /* ReCaptchaDecoder.swift */, - F24EA1D91F9683F5001DEC17 /* ReCaptchaWebViewManager.swift */, - F24EA1DA1F9683F5001DEC17 /* String+Dict.swift */, - F24EA1DB1F9683F5001DEC17 /* ReCaptchaError.swift */, - F2AE8613204F3B41002E28D7 /* ReCaptchaResult.swift */, - F231B3991FEC51C800F82943 /* DispatchQueue+Throttle.swift */, - F24EA1DC1F9683F5001DEC17 /* Rx */, - F24EA1DE1F9683F5001DEC17 /* ReCaptcha.swift */, - ); - path = Classes; - sourceTree = ""; - }; - F24EA1DC1F9683F5001DEC17 /* Rx */ = { - isa = PBXGroup; - children = ( - F24EA1DD1F9683F5001DEC17 /* ReCaptcha+Rx.swift */, - ); - path = Rx; - sourceTree = ""; - }; - F24EA1DF1F9683F5001DEC17 /* Assets */ = { - isa = PBXGroup; - children = ( - F24EA1E01F9683F5001DEC17 /* recaptcha.html */, - ); - path = Assets; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - F206BAAD1F8D3DE900A25807 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - F206BAB51F8D3DE900A25807 /* ReCaptcha-Carthage.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F206BB161F8D4DBC00A25807 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - F206BB1D1F8D4DBC00A25807 /* ReCaptcha_RxSwift.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - F206BAAF1F8D3DE900A25807 /* ReCaptcha */ = { - isa = PBXNativeTarget; - buildConfigurationList = F206BAB81F8D3DE900A25807 /* Build configuration list for PBXNativeTarget "ReCaptcha" */; - buildPhases = ( - F206BAAB1F8D3DE900A25807 /* Sources */, - F206BAAC1F8D3DE900A25807 /* Frameworks */, - F206BAAD1F8D3DE900A25807 /* Headers */, - F206BAAE1F8D3DE900A25807 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ReCaptcha; - productName = "ReCaptcha-Carthage"; - productReference = F206BAB01F8D3DE900A25807 /* ReCaptcha.framework */; - productType = "com.apple.product-type.framework"; - }; - F206BB181F8D4DBC00A25807 /* ReCaptcha_RxSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = F206BB1E1F8D4DBC00A25807 /* Build configuration list for PBXNativeTarget "ReCaptcha_RxSwift" */; - buildPhases = ( - F206BB141F8D4DBC00A25807 /* Sources */, - F206BB151F8D4DBC00A25807 /* Frameworks */, - F206BB161F8D4DBC00A25807 /* Headers */, - F206BB171F8D4DBC00A25807 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - F206BB241F8D4DF800A25807 /* PBXTargetDependency */, - ); - name = ReCaptcha_RxSwift; - productName = ReCaptcha_RxSwift; - productReference = F206BB191F8D4DBC00A25807 /* ReCaptcha_RxSwift.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - F206BAA71F8D3DE900A25807 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0900; - ORGANIZATIONNAME = "Flávio Caetano"; - TargetAttributes = { - F206BAAF1F8D3DE900A25807 = { - CreatedOnToolsVersion = 8.3.2; - ProvisioningStyle = Automatic; - }; - F206BB181F8D4DBC00A25807 = { - CreatedOnToolsVersion = 8.3.2; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = F206BAAA1F8D3DE900A25807 /* Build configuration list for PBXProject "ReCaptcha-Carthage" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - ); - mainGroup = F206BAA61F8D3DE900A25807; - productRefGroup = F206BAB11F8D3DE900A25807 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - F206BAAF1F8D3DE900A25807 /* ReCaptcha */, - F206BB181F8D4DBC00A25807 /* ReCaptcha_RxSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - F206BAAE1F8D3DE900A25807 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F24EA1E71F968406001DEC17 /* recaptcha.html in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F206BB171F8D4DBC00A25807 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - F206BAAB1F8D3DE900A25807 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F24EA1E51F968403001DEC17 /* ReCaptchaError.swift in Sources */, - F24EA1E21F968403001DEC17 /* ReCaptchaDecoder.swift in Sources */, - F2AE8614204F3B42002E28D7 /* ReCaptchaResult.swift in Sources */, - F24EA1E61F968403001DEC17 /* ReCaptcha.swift in Sources */, - F24EA1E31F968403001DEC17 /* ReCaptchaWebViewManager.swift in Sources */, - F24EA1E41F968403001DEC17 /* String+Dict.swift in Sources */, - F231B39A1FEC51C800F82943 /* DispatchQueue+Throttle.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F206BB141F8D4DBC00A25807 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F24EA1E11F9683FB001DEC17 /* ReCaptcha+Rx.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - F206BB241F8D4DF800A25807 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = F206BAAF1F8D3DE900A25807 /* ReCaptcha */; - targetProxy = F206BB231F8D4DF800A25807 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - F206BAB61F8D3DE900A25807 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - F206BAB71F8D3DE900A25807 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - F206BAB91F8D3DE900A25807 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = "ReCaptcha-Carthage/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.flaviocaetano.ReCaptcha; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; - }; - name = Debug; - }; - F206BABA1F8D3DE900A25807 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = "ReCaptcha-Carthage/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.flaviocaetano.ReCaptcha; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; - }; - name = Release; - }; - F206BB1F1F8D4DBC00A25807 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - "$(PROJECT_DIR)\\ Carthage\\ Test/Carthage/Build/iOS", - ); - INFOPLIST_FILE = ReCaptcha_RxSwift/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_SWIFT_FLAGS = "-D IMPORT_RECAPTCHA"; - PRODUCT_BUNDLE_IDENTIFIER = "com.flaviocaetano.ReCaptcha-RxSwift"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; - }; - name = Debug; - }; - F206BB201F8D4DBC00A25807 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - "$(PROJECT_DIR)\\ Carthage\\ Test/Carthage/Build/iOS", - ); - INFOPLIST_FILE = ReCaptcha_RxSwift/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_SWIFT_FLAGS = "-D IMPORT_RECAPTCHA"; - PRODUCT_BUNDLE_IDENTIFIER = "com.flaviocaetano.ReCaptcha-RxSwift"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - F206BAAA1F8D3DE900A25807 /* Build configuration list for PBXProject "ReCaptcha-Carthage" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F206BAB61F8D3DE900A25807 /* Debug */, - F206BAB71F8D3DE900A25807 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F206BAB81F8D3DE900A25807 /* Build configuration list for PBXNativeTarget "ReCaptcha" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F206BAB91F8D3DE900A25807 /* Debug */, - F206BABA1F8D3DE900A25807 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F206BB1E1F8D4DBC00A25807 /* Build configuration list for PBXNativeTarget "ReCaptcha_RxSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F206BB1F1F8D4DBC00A25807 /* Debug */, - F206BB201F8D4DBC00A25807 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = F206BAA71F8D3DE900A25807 /* Project object */; -} diff --git a/ReCaptcha-Carthage.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ReCaptcha-Carthage.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 0c3c5b1..0000000 --- a/ReCaptcha-Carthage.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ReCaptcha-Carthage.xcodeproj/xcshareddata/xcschemes/ReCaptcha.xcscheme b/ReCaptcha-Carthage.xcodeproj/xcshareddata/xcschemes/ReCaptcha.xcscheme deleted file mode 100644 index bd454ec..0000000 --- a/ReCaptcha-Carthage.xcodeproj/xcshareddata/xcschemes/ReCaptcha.xcscheme +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ReCaptcha-Carthage.xcodeproj/xcshareddata/xcschemes/ReCaptcha/RxSwift.xcscheme b/ReCaptcha-Carthage.xcodeproj/xcshareddata/xcschemes/ReCaptcha/RxSwift.xcscheme deleted file mode 100644 index 558e9c0..0000000 --- a/ReCaptcha-Carthage.xcodeproj/xcshareddata/xcschemes/ReCaptcha/RxSwift.xcscheme +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ReCaptcha-Carthage.xcodeproj/xcshareddata/xcschemes/ReCaptcha_RxSwift.xcscheme b/ReCaptcha-Carthage.xcodeproj/xcshareddata/xcschemes/ReCaptcha_RxSwift.xcscheme deleted file mode 100644 index 558e9c0..0000000 --- a/ReCaptcha-Carthage.xcodeproj/xcshareddata/xcschemes/ReCaptcha_RxSwift.xcscheme +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ReCaptcha-Carthage/Info.plist b/ReCaptcha-Carthage/Info.plist deleted file mode 100644 index fbe1e6b..0000000 --- a/ReCaptcha-Carthage/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/ReCaptcha-Carthage/ReCaptcha-Carthage.h b/ReCaptcha-Carthage/ReCaptcha-Carthage.h deleted file mode 100644 index cac74ac..0000000 --- a/ReCaptcha-Carthage/ReCaptcha-Carthage.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// ReCaptcha-Carthage.h -// ReCaptcha-Carthage -// -// Created by Flávio Caetano on 10/10/17. -// Copyright © 2017 Flávio Caetano. All rights reserved. -// - -#import - -//! Project version number for ReCaptcha-Carthage. -FOUNDATION_EXPORT double ReCaptcha_CarthageVersionNumber; - -//! Project version string for ReCaptcha-Carthage. -FOUNDATION_EXPORT const unsigned char ReCaptcha_CarthageVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/ReCaptcha.podspec b/ReCaptcha.podspec deleted file mode 100644 index f00daf4..0000000 --- a/ReCaptcha.podspec +++ /dev/null @@ -1,38 +0,0 @@ - -Pod::Spec.new do |s| - s.name = 'ReCaptcha' - s.version = '1.6.0' - s.summary = 'ReCaptcha for iOS' - s.swift_version = '5.0' - - s.description = <<-DESC -Add Google's [Invisible ReCaptcha](https://developers.google.com/recaptcha/docs/invisible) to your project. This library -automatically handles ReCaptcha's events and retrieves the validation token or notifies you to present the challenge if -invisibility is not possible. - DESC - - s.homepage = 'https://github.com/fjcaetano/ReCaptcha' - s.license = { :type => 'MIT', :file => 'LICENSE' } - s.author = { 'Flávio Caetano' => 'flavio@vieiracaetano.com' } - s.source = { :git => 'https://github.com/fjcaetano/ReCaptcha.git', :tag => s.version.to_s } - s.social_media_url = 'https://twitter.com/flavio_caetano' - s.documentation_url = 'http://fjcaetano.github.io/ReCaptcha' - - s.ios.deployment_target = '9.0' - s.default_subspecs = 'Core' - - s.subspec 'Core' do |core| - core.source_files = 'ReCaptcha/Classes/*' - core.frameworks = 'WebKit' - - core.resource_bundles = { - 'ReCaptcha' => ['ReCaptcha/Assets/**/*'] - } - end - - s.subspec 'RxSwift' do |rx| - rx.source_files = 'ReCaptcha/Classes/Rx/**/*' - rx.dependency 'ReCaptcha/Core' - rx.dependency 'RxSwift', '~> 6.0' - end -end diff --git a/ReCaptcha/Classes/Rx/ReCaptcha+Rx.swift b/ReCaptcha/Classes/Rx/ReCaptcha+Rx.swift deleted file mode 100644 index 100d792..0000000 --- a/ReCaptcha/Classes/Rx/ReCaptcha+Rx.swift +++ /dev/null @@ -1,84 +0,0 @@ -// -// ReCaptcha+Rx.swift -// ReCaptcha -// -// Created by Flávio Caetano on 11/04/17. -// Copyright © 2018 ReCaptcha. All rights reserved. -// - -import RxSwift -import UIKit - -/// Makes ReCaptcha compatible with RxSwift extensions -extension ReCaptcha: ReactiveCompatible {} - -/// Provides a public extension on ReCaptcha that makes it reactive. -public extension Reactive where Base: ReCaptcha { - - /** - - parameters: - - view: The view that should present the webview. - - resetOnError: If ReCaptcha should be reset if it errors. Defaults to `true` - - Starts the challenge validation uppon subscription. - - The stream's element is a String with the validation token. - - Sends `stop()` uppon disposal. - - - See: `ReCaptcha.validate(on:resetOnError:completion:)` - - See: `ReCaptcha.stop()` - */ - func validate(on view: UIView, resetOnError: Bool = true) -> Observable { - return Single.create { [weak base] single in - base?.validate(on: view, resetOnError: resetOnError) { result in - switch result { - case .token(let token): - single(.success(token)) - - case .error(let error): - single(.failure(error)) - } - } - - return Disposables.create { [weak base] in - base?.stop() - } - } - .asObservable() - } - - /** - Resets the ReCaptcha. - - The reset is achieved by calling `grecaptcha.reset()` on the JS API. - - - See: `ReCaptcha.reset()` - */ - var reset: AnyObserver { - return AnyObserver { [weak base] event in - guard case .next = event else { - return - } - - base?.reset() - } - } - - /** - Notifies when the webview finishes loading all JS resources - - This Observable may produce multiple events since the resources may be loaded multiple times in - case of error or reset. This may also immediately produce an event if the resources have - already finished loading when you subscribe to this Observable. - */ - var didFinishLoading: Observable { - return Observable.create { [weak base] (observer: AnyObserver) in - base?.didFinishLoading { observer.onNext(()) } - - return Disposables.create { [weak base] in - base?.didFinishLoading(nil) - } - } - } -} diff --git a/ReCaptcha_RxSwift/Info.plist b/ReCaptcha_RxSwift/Info.plist deleted file mode 100644 index fbe1e6b..0000000 --- a/ReCaptcha_RxSwift/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/ReCaptcha_RxSwift/ReCaptcha_RxSwift.h b/ReCaptcha_RxSwift/ReCaptcha_RxSwift.h deleted file mode 100644 index 02c3ca6..0000000 --- a/ReCaptcha_RxSwift/ReCaptcha_RxSwift.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// ReCaptcha_RxSwift.h -// ReCaptcha_RxSwift -// -// Created by Flávio Caetano on 10/10/17. -// Copyright © 2017 Flávio Caetano. All rights reserved. -// - -#import - -@import ReCaptcha; - -//! Project version number for ReCaptcha_RxSwift. -FOUNDATION_EXPORT double ReCaptcha_RxSwiftVersionNumber; - -//! Project version string for ReCaptcha_RxSwift. -FOUNDATION_EXPORT const unsigned char ReCaptcha_RxSwiftVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/ReCaptcha/Classes/DispatchQueue+Throttle.swift b/Sources/ReCaptcha/DispatchQueue+Throttle.swift similarity index 100% rename from ReCaptcha/Classes/DispatchQueue+Throttle.swift rename to Sources/ReCaptcha/DispatchQueue+Throttle.swift diff --git a/ReCaptcha/Classes/ReCaptcha.swift b/Sources/ReCaptcha/ReCaptcha.swift similarity index 99% rename from ReCaptcha/Classes/ReCaptcha.swift rename to Sources/ReCaptcha/ReCaptcha.swift index d552175..02009f0 100644 --- a/ReCaptcha/Classes/ReCaptcha.swift +++ b/Sources/ReCaptcha/ReCaptcha.swift @@ -5,7 +5,6 @@ // Created by Flávio Caetano on 22/03/17. // Copyright © 2018 ReCaptcha. All rights reserved. // - import Foundation import WebKit @@ -72,7 +71,6 @@ public class ReCaptcha { - infoPlistKey: The API key retrived from the application's Info.plist - baseURL: The base URL sent to the ReCaptcha init - infoPlistURL: The base URL retrieved from the application's Info.plist - - Throws: `ReCaptchaError.htmlLoadError`: if is unable to load the HTML embedded in the bundle. - Throws: `ReCaptchaError.apiKeyNotFound`: if an `apiKey` is not provided and can't find one in the project's Info.plist. @@ -112,12 +110,9 @@ public class ReCaptcha { - locale: A locale value to translate ReCaptcha into a different language Initializes a ReCaptcha object - Both `apiKey` and `baseURL` may be nil, in which case the lib will look for entries of `ReCaptchaKey` and `ReCaptchaDomain`, respectively, in the project's Info.plist - A key may be aquired here: https://www.google.com/recaptcha/admin#list - - Throws: `ReCaptchaError.htmlLoadError`: if is unable to load the HTML embedded in the bundle. - Throws: `ReCaptchaError.apiKeyNotFound`: if an `apiKey` is not provided and can't find one in the project's Info.plist. @@ -148,7 +143,6 @@ public class ReCaptcha { /** - parameter manager: A ReCaptchaWebViewManager instance. - Initializes ReCaptcha with the given manager */ init(manager: ReCaptchaWebViewManager) { @@ -160,7 +154,6 @@ public class ReCaptcha { - view: The view that should present the webview. - resetOnError: If ReCaptcha should be reset if it errors. Defaults to `true`. - completion: A closure that receives a ReCaptchaResult which may contain a valid result token. - Starts the challenge validation */ public func validate(on view: UIView, resetOnError: Bool = true, completion: @escaping (ReCaptchaResult) -> Void) { @@ -179,9 +172,7 @@ public class ReCaptcha { /** - parameter configure: A closure that receives an instance of `WKWebView` for configuration. - Provides a closure to configure the webview for presentation if necessary. - If presentation is required, the webview will already be a subview of `presenterView` if one is provided. Otherwise it might need to be added in a view currently visible. */ @@ -191,7 +182,6 @@ public class ReCaptcha { /** Resets the ReCaptcha. - The reset is achieved by calling `grecaptcha.reset()` on the JS API. */ public func reset() { @@ -200,9 +190,7 @@ public class ReCaptcha { /** - parameter closure: A closure that is called when the JS bundle finishes loading. - Provides a closure to be notified when the webview finishes loading JS resources. - The closure may be called multiple times since the resources may also be loaded multiple times in case of error or reset. This may also be immediately called if the resources have already finished loading when you set the closure. @@ -212,7 +200,6 @@ public class ReCaptcha { } // MARK: - Development - #if DEBUG /// Forces the challenge widget to be explicitly displayed. public var forceVisibleChallenge: Bool { @@ -222,7 +209,6 @@ public class ReCaptcha { /** Allows validation stubbing for testing - When this property is set to `true`, every call to `validate()` will immediately be resolved with `.token("")`. Use only when testing your application. @@ -235,12 +221,10 @@ public class ReCaptcha { } // MARK: - Private Methods - private extension ReCaptcha.Config { /** - parameter url: The URL to be fixed - returns: An URL with scheme - If the given URL has no scheme, prepends `http://` to it and return the fixed URL. */ static func fixSchemeIfNeeded(for url: URL) -> URL { diff --git a/ReCaptcha/Classes/ReCaptchaDecoder.swift b/Sources/ReCaptcha/ReCaptchaDecoder.swift similarity index 100% rename from ReCaptcha/Classes/ReCaptchaDecoder.swift rename to Sources/ReCaptcha/ReCaptchaDecoder.swift diff --git a/ReCaptcha/Classes/ReCaptchaError.swift b/Sources/ReCaptcha/ReCaptchaError.swift similarity index 100% rename from ReCaptcha/Classes/ReCaptchaError.swift rename to Sources/ReCaptcha/ReCaptchaError.swift diff --git a/ReCaptcha/Classes/ReCaptchaResult.swift b/Sources/ReCaptcha/ReCaptchaResult.swift similarity index 100% rename from ReCaptcha/Classes/ReCaptchaResult.swift rename to Sources/ReCaptcha/ReCaptchaResult.swift diff --git a/ReCaptcha/Classes/ReCaptchaWebViewManager.swift b/Sources/ReCaptcha/ReCaptchaWebViewManager.swift similarity index 100% rename from ReCaptcha/Classes/ReCaptchaWebViewManager.swift rename to Sources/ReCaptcha/ReCaptchaWebViewManager.swift diff --git a/ReCaptcha/Classes/String+Dict.swift b/Sources/ReCaptcha/String+Dict.swift similarity index 100% rename from ReCaptcha/Classes/String+Dict.swift rename to Sources/ReCaptcha/String+Dict.swift diff --git a/ReCaptcha/Assets/recaptcha.html b/Sources/ReCaptcha/recaptcha.html similarity index 100% rename from ReCaptcha/Assets/recaptcha.html rename to Sources/ReCaptcha/recaptcha.html diff --git a/Tests/ReCaptchaTests/ReCaptchaTests.swift b/Tests/ReCaptchaTests/ReCaptchaTests.swift new file mode 100644 index 0000000..5c59d8a --- /dev/null +++ b/Tests/ReCaptchaTests/ReCaptchaTests.swift @@ -0,0 +1,11 @@ + import XCTest + @testable import ReCaptcha + + final class ReCaptchaTests: XCTestCase { + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct + // results. + XCTAssertEqual(ReCaptcha().text, "Hello, World!") + } + } diff --git a/_Pods.xcodeproj b/_Pods.xcodeproj deleted file mode 120000 index 3c5a8e7..0000000 --- a/_Pods.xcodeproj +++ /dev/null @@ -1 +0,0 @@ -Example/Pods/Pods.xcodeproj \ No newline at end of file diff --git a/carthage.sh b/carthage.sh deleted file mode 100755 index fa44975..0000000 --- a/carthage.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -# carthage.sh -# Usage example: ./carthage.sh build --platform iOS - -set -euo pipefail - -xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX) -trap 'rm -f "$xcconfig"' INT TERM HUP EXIT - -# For Xcode 12 make sure EXCLUDED_ARCHS is set to arm architectures otherwise -# the build will fail on lipo due to duplicate architectures. -echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200 = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig -echo 'EXCLUDED_ARCHS = $(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT)__XCODE_$(XCODE_VERSION_MAJOR))' >> $xcconfig - -export XCODE_XCCONFIG_FILE="$xcconfig" -carthage "$@" \ No newline at end of file diff --git a/codecov.yml b/codecov.yml deleted file mode 100644 index 2c11920..0000000 --- a/codecov.yml +++ /dev/null @@ -1,26 +0,0 @@ -codecov: - branch: master - -coverage: - precision: 2 - round: down - range: "75...95" - - status: - project: - default: - target: auto - threshold: null - branches: null - - patch: - default: - target: auto - branches: null - - changes: - default: - branches: null - -ignore: - - "Example/" diff --git a/example-v2-key.png b/example-v2-key.png deleted file mode 100644 index 77d877d284af6ac769c36f3c6dff8dc964ef7b0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55205 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�+6g+t5dsj4&QQKWU%x-mKT+IcxQH$E9zk_8s-0rgY~*?ygpxum}MWqhf{ z57{3Y`8pC;1njm^Iq%pri|gFnOhzb#X3^?7noZ?%wP6mNqWzo>eosIPN4*N9 zTq|cS1KTckCKv^XQMS@i;8(DQy=^W59RnRmjBNqg*tcyZRGQF65KR%XDCXgWj0F`! zpVSUmkKr?n^3$!P%^iOfq_0Gup52H9h1{d@PM|^+kq+$udVya}(~woVhTp@%RRxU& z35wfoJ8xygA`~$3Up8U&ZubenNxp7cn-Y9;TQ$Epov&g?*^;BK=#V>76K`9kEf7aw zR+VS(0Di70g$mU+;P-ff>3W(zqQ|r~oDo>vCkK$ZhH} z@|SELR+aG;3jgm&kWGdV$elD^C>6QxS%g!S-zUAx#)K5Z}x2^&+oA2v0QFW-y#I{AhkxSR2$_L z`_8c}0C=GV049bds(7(mX7h*k)bAvy8E`JaI)ZKVE$=?&{!WyF=FjupDTsF>6ayj|VJeXBCz<8rDcDPeJb+v>!X9&_$tb};|D1qf#Zn0%L-xh*H9 zFa&;pJN3;Wu}Ha}?iICQF2(C7qXJ@>(&kiYR@;eJ56XQiP$1FM@%AF*V#b%q6x$b_ zKs)elhhP1Ic?*WLs6Vb9-E3A|+X$eg!0PA22vwOCtC$Kbq_>8C`qBSjn>L`N?4C7D z#j>bQO$HJzzY4e+-AL)(GoJ!v5bfcVMF+`={m2Gm-Jxff^#pqRU=YEZ75hCiD$=R2 z*ZbN6&8T5Q`=(V5Z@ix=0a{^sEx5C_CNyMJ77}vgohXyW_NZV~C{i-6Ae7VsJ3zt{ z(!5Ql_LnP-??`n5j+#j@m$}Lgu%DviYX(xQ&uyA)m?GmJ01?@?-~)1C1EBqI5CcJt z&9<{g4YyygKN28w1N}7Mk}&0Vyp6Xu!wN`DFpp)C_>=GVM~?LJw_1V{YEa`%`Thx) z^Qn$QD`x}bs>|;$j+wxlvJD`yn=Kl1J@_UPw0-JSqE(W+As^RFs7V?YM*}h@F}|X) zRe`;mP)K!dt2X`2z!aOkO4*-zvqudMEth9djTDliP*H+5$xEiAQFi-zVDs$Lg@EF1 z!uy3v;swZDFSSaiS;z&wi+70~JJZCj}Cj2wR3|0~b+qyfw8+I@X#|>m%QR(UICglXrjs zz_KjNiPAeHPG+()*g@eP<%7nz8p?C*k0Y^8CD`R#*0?Zub71ahBrVjX&UwUR`2$CMy3L%J}R+N7=5~s2ydo9r(JF z(FMLATTBAFf#G4%Lu3Mp?VPm8BB3X(Bw#``V|q!Jp6q(A(}VApopM4pK@a9Yx=!-* ze3Zqw&&j5nTXI#AQ5N^%r$*m#b2bzik6>ZLBsi-E4|pO41jJ|KvlH2bubX_ig_0hU zLeonPByI@i@a69X3MUHxm-mcfdHkU2lxkM|2*H#>K%#LuGmP2DfU?|HqRN2`A(3{Ch zhh2bu94zkINvv|%?%CJegnDdJIR^$v%5xEdcRDx-zGZ=^q#wO7=lx=e3EWh%ByiFL zXLhi4D;C{h#DS};5{{6&))Cw3Cs$415fGk&fugJO3h-CVs~kF#pO-YHRgHHZPtcLT z&wQSQyV}eh=43D`X=-6m2N7`>Tziz^V`V1Cs$652Ih?Gk@N;rzqJ!19b)9kRf=HC&i#-LND zBbs~q2PTQ5m?!!NJ*^<;{+2R~pq`S;4G&i#aq|=BQC^nPR9g}QWZelo?o-|yr0&R2 zcNl&|FWIKr2eJK-z1@89it>w)k*Svyi<-mmqc3RWq6e1KHj9 zX0dPe%HlKl;&l2T5|kek?+E%a4qFps=H_Z_OHaa2{H>mRl;FovttVLx#Zzi~w=pZ7 zpXbv(sIF_pfCH%u`v|SBhma>bBMlFcU0_WklHM(oJZDOiZCpS+yK?B{cz@%~s#^l_ zy!66l8Jt4Algmy~x=gQeaQz=qNOeVd{!&n{xlxFPMcEQ!pt$W^k}X>b6kr~`$n*E^ zp-H=rDx|}@kCM{HQ#EhWp3>|4Rv$?+O_bA=;1fz;AEaI=o2(cB@sLsvQ=cWo({tl#uF3Zoj=h!+at&~9hD@x zpQf*bun^R~jW1E$E%=6ovaIngMH5G-Boh;iQpbrXS-aB#Hkua2Q+xhYB;}*--BG9; z>&IXoXD;$dQ+mJK!*#4Yjkf1?2Stm5_7In{;5KXzwh^<-CtmS>zn*+ftAkYsYsCsG z*Bm$)1tJqUTPdY8=|Q^7*Q8-XjHh(<`G%=xLpTV2XCpV=Cz@KeJGxx;lUc!4g4lx@ za*5>4qdnjWw04M%^V{v*Lu2c!#oML?DJ3#LWAfCXSI&;FK>hcrxjNs7`w_1_iUaSV znmPJF0qGGN48W%9WVZKK-0BRp;}ZHs#Qv2 z+E-)m2VDnpfPc-?B=-FVb7(9mbO{E2F^i9AH9TWe0}Cq7XtO3>H) zI+KTneaGMa*m=TI3_(=tR2_FGrY>a_@GL@K@&XCAezXGwOwqt22e#rj;Y*1Dp^yVD zy=Q(=ntRP-a690eDg#Z!_N?NG%-_3OB6-=0Qw(*7&E`A#mCEH(rc%99c}Ui;S(k7^ zKldSCk)ws7=QZ=>b$WWBCUzxPifZ<=nymmkc9A#-L3>VvfX#ZTyjfXl%LBDb4qzF0%CJpu7uSkr>wuo-L>WzHn5>FI1(03Ia0A z<2MEP4?%R+`*mM8+Mwmw+|VLL=^+d{P8jF9s*l9P_yh0C4@@-_Q;WT+(q^z$log2n zGNWoxLluid)?eJULZbwh?KN27!p*(l@}VhC)Ni*ry6%!d$7KDwvAI+-_A>@Q%G(W& z`oYUWdA#G>-xF2BMI7YcOL(F>h3l$dmvd;R8A*OM*YSMvf0jae_>vcO&W;rw2djU3 z=TRvwFdyf9>1=(_=d?kycl~J-m*+mQ^Khnyp_Y%Ovqc00=QJSU-HX7@##m%uTp6Aw z)hBV@5D5hhm-00ltVjr$VHVB)B@th4n0TIA)#t?@O)VVQ?KX73T#({VFMrCY%U)DA z-1X%xNS&MJh|o;<+_5s@)V_?dALtl4Q6wu~7U~Q~ZsG<+uD-VjMu7B*AST8a_4z={ za2Gry<*xeO^?IvfKt!5kv$r*r@vUVsKG%J{&*4YRT?jjA2-kKelT*KOspYVE7-r{_ zOUT5`;#Hs)h}^^bbE_y`(^)I;lV?30{17+ACr4XP`Ojy{jT%Ip@Dml|c;)(;PdF;D zKeXeE#LJInWrW=fSW1Ucg1uERp@ zE=gNIdgp)edplTQ$mQ!ajWD$YAF)R+JXy7-5KM?x1TsACNQ&}mH3~HVxh*bR)i$A_ zz{OweGb}nBF@;v`DK1{Y^G(DpNgB!lFXOz)Na}W3X*=aMYO~lDsxH1Yv?r^SiTo(g zNSGRYbGL@c)gUT@=NjP;v@Qw6Gv=e~)g8l8X{A#t+1&Abw0ee6o>Kx2CnB|{Dy!HB z$MQi%EJCah&A{-}PXai5UZs_Y<---41nFkQMUE;G7c8&XS}k^U2!oW%f?U*3ehJ40 zM#s9sJk~6fIA{Z982D2d35jTA}9Uot3bL4l`2DFWxhU;Y3B;O$h^SH9yL~+KuFW`W@(8L68UYx`m8DZ zoN5N>m&_Pfwx(;GKMH<4U}CA8C@l1cUG6irZdW}TyXS8;zFE zM4UqiggUdL9TdA^3~z*4(=hXjhkNP{r#$=z^!s3% zAUVwEEkeDdN*#0`uI?-Lf-y>7$Aox?ki$ro^}^Z_HnlF8rQczFBPxs0B(YoS;#DkZ z*3A@aA!TC63Q^5n!SS|Ay<9yj!`wgxZ(@uz)GI3S|A}QqfLwbj=*wg=8~QzIqXm#Iu@#4kJn=M*P0x7jo;6v^RRou|-KDX>D>f%pzT`Ayt!Z zB2xHVa#(eORpZ_6M4Z$PAufg?GGDghcx*JWe5{UAqKwaQv16@hnVe%9+vv-N0#@B{ z8QM>=9ZJ4pmlh7{8ztY;ou`whyR**h)kwwTKVfc7u^y+NrEjIfys{W2wO6`^+H>BSp$>IvLr|9M-rIXNQXm>9|yRjpFf946YK4lFJB} zSVJHEdFYJh-YQ~t^z7aLm>`OWwn%C=s^wR;ra4b!S9^cZa3i9q;uy+h;juNBYg8S7 zEV~4N$J1G$Li~TL|9@7rV?LIK)XvLTI;8qd=pRi}s?rt_;}%gVv{s@WQX|c~4~8Kh z*D?H8RH$RmQX)8?(1;eW@qSW6)nRp@Y25d6{M&%OMw3iv^}$5Q!kN!|ac z*Ut+BM4G~|xnE-cF|$4gbRJ)dEX)7&PDcd@FLb(d0}eg#>6MRhgXtTUf*=UmDmkJei9#2()tr#Lmxkap|n>-QOo z1p9)AzSS*ct}RWv?g=ko%-~<<1g&pkpr77qt*sYUEIOcNWQpD91+mi8C-#XGI{Z#H zuIb2PiK$o!W08!^Io)>cJ`XkjGtfPXYB6Mw%1$vc_xIh0>D@!W`%)b#2I2;r#G)Cn ziBPENTAE}TF)p>ZpnBceWBHsOKw>E*qHOxzcaE*pxT_bqhh3>HoR}S zlA_1B+mb)NMrx=ytJ$#IPB;5lXpQ`+A)CsQJ~L6!*%_Wa{+7lcgZH#=XnZ}}%3&$T z@lRfyYJo$m?y0)+1)j5hF-x1vS6)`y8oz zsY}v6!?pI7iut>LM-Tz-WA)`1C0KM3faBM@G{5Wv1#m(R4h{xmzs9uRMMp<#-QQka zRgLGXY@9$9iy*zg=TRv!`(?&cEM+FOD0IiJ01wdWj(U}*QfaD{Uq1f6)DNg2Mb`Z( zOqflyoX|}{0wmsjrS>#chSk@*SsWQxMuD;?&;b`FINAG>v|qov^Ny!nd)Dc!(Osh? zkA5};91NzlT-c_`q2&6u4zUNRwcDgM;#2=7cTtc~cUdv!Y4f92w(Kz?Ks2E+PyX`d zvlyk2^F4)CKf_N6*q>^!2Lj6TH5F*m;PMxbHGE6wF4-^YLBx^zuCV_5Uwb*lHWtVT zcW(S!_>P6+EVp(KO7H|>D}+Cd;8C_iJo9iSS>hcJb(VQTH(C&`0YSnCC|mAW3KPae z-AHyaodgo><`3c|FMKgcwkeL+Ao(gL<)5pTe2IF~QdpJ9Adsm|>-)BKc40F3HzIpB658G8mWZ9hazjz--itA0)`z@1oG-))tF zvfi>atzq6JZ`|g^Ca=A?n&0<89V&&Y&DduLCDI3=ewHBMX7gw0G3+@0tL-3jTl)wv zX;S0Lav&p{OEPeLgcGEym*Zq?sH-Sw0lp$2QU^+oUjBM{cho_K)#8U$$y#(&0ee#m zT@Z>etzL_1Yexjd-5fOV^V}Y`j8}FZ-ZB*O9gnai^9NfgF)W;17H8qTmRC_tvyYAK zzNj)B$(#~u+&RwQ$d^psI5S}@Bm+uwb{@5{6Jsqv(e?15wTnafDHe=2z;hzSH@DL- z{(SO?M_t?ldX>#uxS@Xo6uA2oio2OyIrpxD#&*+T0msKlJphqSUUR(3uWSJZV|J6A zOs^mC&LM<1H0x@7MP4a+ea4tHbm9*Qyyyo|9g7s70}|>%bhsq$=&4o;nNa!3qdu9t z^kCn5dw7AI>9;V?Goa;XVRlh!BS{wN zO@_PS-M@m2LHOM9Z2JWy@3B_j9#BsZMJxfW7OUZ^ÅsWi_v#s86*GFdFQnlHFq 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 diff --git a/example.gif b/example.gif deleted file mode 100644 index cc9920942f2307c32f38dcd56d4823f0f54d33d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222418 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 diff --git a/example2.gif b/example2.gif deleted file mode 100644 index 7538d699f264f306c072be38b7ba270546b55ae0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49446 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 UoIIM739R{H2CY9Du4{g*0k9XC4FCWD diff --git a/fastlane/Fastfile b/fastlane/Fastfile deleted file mode 100644 index a947148..0000000 --- a/fastlane/Fastfile +++ /dev/null @@ -1,169 +0,0 @@ -fastlane_version "2.126" - -default_platform :ios - -platform :ios do - skip_docs - - devices = ["iPhone X (~> 12)"] - # devices << "iPhone X (~> 11)" if !Helper.is_ci? - # devices << "iPhone 7 (~> 10)" if !Helper.is_ci? - # devices << "iPhone 6s (~> 9)" if !Helper.is_ci? - - desc "Runs the following lanes:\n- test\n- pod_lint\n- carthage_lint" - lane :ci do - test - pod_lint - carthage_lint - end - - desc "Runs all the tests" - lane :test do - cocoapods( - podfile: "Example/Podfile", - try_repo_update_on_error: true, - ) - - swiftlint( - executable: "Example/Pods/Swiftlint/swiftlint", - strict: true, - reporter: "emoji", - ) - - # The problem lies in the fact (or rather: serious bug in xcodebuild) that - # the timeout for connecting to the XCTest server starts at the moment you - # issue the command xcodebuild. The timeout is 120 seconds, so if your - # compilation + startup of the simulator takes longer than 2 minutes - # xcodebuild will give this "Canceling tests due to timeout" error. - # https://stackoverflow.com/questions/37922146/xctests-failing-on-physical-device-canceling-tests-due-to-timeout/40790171#40790171 - scan( - build_for_testing: true, - devices: self.select_similar_simulator(devices), - scheme: "ReCaptcha-Example", - workspace: "Example/ReCaptcha.xcworkspace", - code_coverage: true, - ) - - scan( - test_without_building: true, - devices: self.select_similar_simulator(devices), - scheme: "ReCaptcha-Example", - workspace: "Example/ReCaptcha.xcworkspace", - code_coverage: true, - ) - - codecov( - project_name: 'ReCaptcha', - use_xcodeplist: true, - ) - - unless Helper.is_ci? - puts "Running UI Tests" - scan( - test_without_building: true, - devices: self.select_similar_simulator(devices), - scheme: "ReCaptcha_UITests", - workspace: "Example/ReCaptcha.xcworkspace", - code_coverage: true, - ) - - puts "Not CI: Skipping coverage files upload" - end - end - - desc "Lint Cocoapods Lib" - lane :pod_lint do - pod_lib_lint( - allow_warnings: true, # Temporarily necessary while this issue isn't fixed: https://github.com/CocoaPods/CocoaPods/issues/10291 - ) - end - - desc "Lint Carthage lib" - lane :carthage_lint do - - # This is a temporary fix while Carthage is broken with Xcode 12 - # https://github.com/Carthage/Carthage/issues/3019#issuecomment-665136323 - # - # The default Fastlane action can be used when a new Carthage version with a fix has been released - # and the ./carthage.sh script can be removed - Dir.chdir("..") do - sh("./carthage.sh", "update", "--platform", "iOS", "--cache-builds") - - sh("./carthage.sh", "build", "--no-skip-current", "--platform", "iOS", "--cache-builds") - end - - # carthage( - # command: "update", - # platform: "iOS", - # cache_builds: true, - # ) - - # carthage( - # command: "build", - # platform: "iOS", - # cache_builds: true, - # no_skip_current: true, - # ) - end - - desc "Deploy a new version to Github and Cocoapods" - lane :release do - # Checking files - tag = last_git_tag - - changelog_contents = File.read '../CHANGELOG.md' - if !changelog_contents.include? tag - UI.user_error! "CHANGELOG hasn't been updated" - end - - if version_get_podspec != tag - UI.user_error! "Podspec version different than tag name" - end - - # This is a temporary fix while Carthage is broken with Xcode 12 - # https://github.com/Carthage/Carthage/issues/3019#issuecomment-665136323 - # - # The default Fastlane action can be used when a new Carthage version with a fix has been released - # and the ./carthage.sh script can be removed - Dir.chdir("..") do - sh("./carthage.sh", "archive") - end - - # carthage( - # command: "archive", - # ) - - pod_push( - path: "ReCaptcha.podspec", - verbose: true, - ) - - prev_tag = sh "git describe --abbrev=0 --tags `git rev-list --tags --skip=1 --max-count=1`" - changelog = changelog_from_git_commits( - between: [tag, prev_tag.strip], - pretty: "- %s" - ) - - set_github_release( - repository_name: "fjcaetano/ReCaptcha", - tag_name: tag, - name: tag, - upload_assets: ["ReCaptcha.framework.zip"], - description: changelog, - ) - end - - # Private - - def select_similar_simulator(args) - args.map { |device_string| - pieces = device_string.split(' (') - FastlaneCore::Simulator.all - .select { |s| s.name == pieces.first } - .sort_by { |s| Gem::Version.create(s.os_version) } - .detect { |s| Gem::Requirement.new(pieces[1].tr('()', '')).satisfied_by?(Gem::Version.create(s.os_version)) } - } - .compact - .map { |s| "#{s.name} (#{s.ios_version})"} - end -end diff --git a/fastlane/actions/codecov b/fastlane/actions/codecov deleted file mode 160000 index 86af438..0000000 --- a/fastlane/actions/codecov +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 86af4384bb211fcb3194522e40aa9274af00fc08 diff --git a/fastlane/actions/codecov.rb b/fastlane/actions/codecov.rb deleted file mode 120000 index d4efafe..0000000 --- a/fastlane/actions/codecov.rb +++ /dev/null @@ -1 +0,0 @@ -codecov/codecov.rb \ No newline at end of file diff --git a/pre-push.sh b/pre-push.sh deleted file mode 100755 index ed04ae4..0000000 --- a/pre-push.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -if $(which bundle &> /dev/null); then - bundle exec fastlane ci -elif $(which fastlane &> /dev/null); then - fastlane ci -else - echo 'Fastlane not installed; Run `bundle install` or install Fastlane directly' - exit 1 -fi From 7f7bc9497d1384d3cd7f366e49f7178e5a1b02ea Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 14 Jun 2021 16:33:00 +0600 Subject: [PATCH 2/3] Change package bundle to be able to load .html resource --- Sources/ReCaptcha/ReCaptcha.swift | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Sources/ReCaptcha/ReCaptcha.swift b/Sources/ReCaptcha/ReCaptcha.swift index 02009f0..2fd901f 100644 --- a/Sources/ReCaptcha/ReCaptcha.swift +++ b/Sources/ReCaptcha/ReCaptcha.swift @@ -55,14 +55,7 @@ public class ReCaptcha { /// The Bundle that holds ReCaptcha's assets private static let bundle: Bundle = { - let bundle = Bundle(for: ReCaptcha.self) - guard let cocoapodsBundle = bundle - .path(forResource: "ReCaptcha", ofType: "bundle") - .flatMap(Bundle.init(path:)) else { - return bundle - } - - return cocoapodsBundle + return Bundle.module }() /** From c9a03caee1ade62ff6fc100dcbc199154c3b5b23 Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 14 Jun 2021 16:46:33 +0600 Subject: [PATCH 3/3] Add onWillShowReCaptchaView closure to get notified when ReCaptchaView will be displayed --- Sources/ReCaptcha/ReCaptcha.swift | 8 ++++++++ Sources/ReCaptcha/ReCaptchaWebViewManager.swift | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/Sources/ReCaptcha/ReCaptcha.swift b/Sources/ReCaptcha/ReCaptcha.swift index 2fd901f..11447ca 100644 --- a/Sources/ReCaptcha/ReCaptcha.swift +++ b/Sources/ReCaptcha/ReCaptcha.swift @@ -191,6 +191,14 @@ public class ReCaptcha { public func didFinishLoading(_ closure: (() -> Void)?) { manager.onDidFinishLoading = closure } + + /** + - parameter closure: A closure that is called when ReCaptcha view will be shown. + Doesn't get called in case of invisible validation. + */ + public func onWillShowReCaptchaView(_ closure: (() -> Void)?) { + manager.onWillShowReCaptchaView = closure + } // MARK: - Development #if DEBUG diff --git a/Sources/ReCaptcha/ReCaptchaWebViewManager.swift b/Sources/ReCaptcha/ReCaptchaWebViewManager.swift index b808040..32c90dd 100644 --- a/Sources/ReCaptcha/ReCaptchaWebViewManager.swift +++ b/Sources/ReCaptcha/ReCaptchaWebViewManager.swift @@ -52,6 +52,9 @@ internal class ReCaptchaWebViewManager { } } } + + /// Notifies that ReCaptcha view will be shown. Doesn't call in case of invisible validation. + var onWillShowReCaptchaView: (() -> Void)? /// Configures the webview for display when required var configureWebView: ((WKWebView) -> Void)? @@ -199,6 +202,7 @@ fileprivate extension ReCaptchaWebViewManager { } case .showReCaptcha: + onWillShowReCaptchaView?() DispatchQueue.once(token: configureWebViewDispatchToken) { [weak self] in guard let `self` = self else { return } self.configureWebView?(self.webView)

7|mF`+0u;5JEp-6yNn zr6Lw!DfWxooS(>{uvzkrr8fshyrq@asegP5m#O+8JM>l$A0r`PkuM0o0J=5wQUeL5R8I>zHw6m@F4#Ay1cxkXk&QVo5^a5zSkW^_%hfU;z06p8`Pp`JO| zKTawcD)Sug*8eLy4Rna%jl3BU#;Kh(H=} zoPc!PP+L}nWw<6`JlhHhPa9T@KgoB#L=22HYe{w+Zf?B82u5B-)PMw2iKxBBNLtQx z66tjLTOq++E4ESn({jBe63j$0Oon_=az>Ky9ghQ?LIRp_@2Y$EU7UAHHhp+L^;kZ2W?)Z5K6eI|yZXn(9%`aN zobPDQbX=dE^|E===7?(+4$Sz`v}mv0U{J{ATJERqlNI6I2#viCk+ck#@uWO;3z4@j zl9o50`~~7D&}T3PH|~lyoX@j-liQ95({1%GN2**Sn3fULK=@7k~|yD|NqDSaV8&-yvTyrY=|)2fBw_ z);VzU7EoFmY{A$W7OR^4%YRr`WXM;fek+i_#KyVP;#1G3X^9N&Atlemu)k70U@Gz- z11sEDi0>rtggX<3n~TrYpdA-IKCdWp%g|l(rs!p>4JGrM&B&2M;5386U^hnQ>i$w( zBI5W-pCiE*SGi2CJgA}ODuvEL+v3xjhO+%H+YWK&nX9}|*gm@nL>`s}ni+)Ys>Y(@ zgn5dIKIC`9)y_?;*VU?dJuTh)@|0|te)PMA5*VHmIpL}aa;u1$(yJb;<&-c>Nio+y zEE%`$z+y9C`Esl`3Dt+p$S20-&nPt5lZ+}OU#hg!_11%>n1qQ)T`ikoUZf(^0z4gWl^fqE9~Xc+NpZ_T9QUP27$*2-jI;o6pB3q?BGMsdaq^pJ-(c|DRp7`$BfFLEP% z(CQ0GxxBk?nhxjWF$UD!W$L%wnj`Pht+JZ=K+p8$U5t(p#r@muZ$NdaoGFW3L>>7? z38ey~0WmMzUxn+vf0xv{zGTJ3O|iOH|IG58N?VPoThpCDT>D+s+x4m+yp0;#joa;A zio5DpYBIBA@N=8;R^9HlTE!1~*h~OMZA%)>e$%t0*M9RUcg#U|AuSVLp?}6$nxmS_ z;R3kZNUrA&Y4ZGbS&gjy(cpyM=63;9EX3pZ!jp-DoQ|JeSB%-)S>PtZqw-u28GY;5 zSU%xpJc?~3LXB_uC3RIpndvDqS;Q{jU`Vop1AjL!xo?^g?KwaogNBVmU{+3%Ytah_ zc{ich!t|I(JC}>hS9&C0iow6XoTM94!iqI#v=i7tAd!glcCWKpM`GCMckn0nQYI^V z6>F=x#k8Yk`LXbbE4IFAtM9*mvFX*h%Tp^())4)zK}5meYowYkMdIZyPaLR6Q4h~; ze&j}yRnEKm%~&(Hyq#3`Ky0F11wR>v6N^z<%bEj@Ka+F}M^F4sYJIjSsyD}9l^nVs zgEH1accCu0WxXQhy@+L&@pQYs3As^kz5b0P_Wp@SH?UTUc1R+SHNs8Dn)R!Easfi| zzPL|t(OBQHMHHz@-7CMxx?f1d?EqGBWA-eMH3!AHXP43`j`JB?=loM>Iu?Z@*0FVjI+577YEB=G$kDs(Oy--aqaGVblCGoLI2{Cl$wTxGCM+l zkc(b)f|%5aHAuyOV75bYIIBEQ$XhY|>8iE}y+;TASz7y_A69gZBby z-Bp)%uex^dcxoV@HBK`IWoA>aU)xKeR7a8*f4+QZ0poM#q<#ZARr;wA#n{4GaIBsa z3Ag4Q_Cz(dG(weWv7CiIu1cu3uIp1aa`qoh4eBs1{aMLpSI@ocAdm z`-yrlYJJ8DMNN0M^7VF`389SyNhZ&PBXoX)WvT|+aAO);6=$_X25mm4>qXaUg{zG{ zCM(&v*s}CqEm*jWYWRGZqp(ep4v64zVcD*FWqOi9wv-`C289Q1y$lAbSy}N^CVhQY z1EQN#OhY*TDEK@Qy-Mba>}ZI6#5P-YE%%pdX0B^xrG!>s)ooxzT`n~$F4lG~rk}(+ z2^v6N8wfJOju#zky`?qvm)P`ktf^#aaF_MHdT?`JtF~ma+AX}Rmy`QG@x{j8d(*|) z3#>65okedo*)fsEqY+cIGQE*^uxUvpGv5_LiUj6N-TXnX&==4VmOdXAg=ctn@3@LS z$d|mUAG>SNwfh3S<|FQ&Y4xu8Tg0BZ-L3`o-X{Y^>)1VqtvyGBJssR!SKod2+ZFZnB5d9p!ax<8HCiAq^46j((-(HyxzOuV#1CA*IwhW*l5+C^nUa@ipKv?xQwh zm2v%0V7m3Rc@Vd{izBy%@m*!{8m`Z0MDO#h(%=2Jd_;rVy> z8|*V2q`hjS6gKxtBbW%%G zXR7?;@GZ-BD>3`C>HxwTj4~lYi>sI@=GU#~b*G_(t&1h|Q+3Ov#1~6c+UIt2@XU?s z?oY;9l?-oiW@GlKuT;gZ_I!^u&#Hfa)Nrd3KEKB9T@h5(x#T$XnD}pO-DOvsZP=#a z;KAM9o#IY$ch^$f-Mt}rAXv~K#ogUXafjkoN^vbtu?o}YotaNFf8t*2KG$*WTNURQ z3|^9upmric44*3biZ>Lykd>uj>^Em|dpER>Q`3gLX}!bfI@k?3V!?-$bMpczJ5#N1 z(+JTK*mchF1r#af&e!z?JuiT!?3gJnBe0Jwh*dntcTfcfVj=Lo*sIEPqRO*irjWuC zVCA!nC%k6-r-a1|*TzQ&3&Mqxix%xy;99dLGvnblPv4M7_l$4d*v@kE}7@sFJ z{&V^-U*mrQ>GcTNk_ER&2fm^Kc~OC=3{i2>3Gs=ji3#ZcJ!_FbMnum}N6bP779j8< z6aq^MD$w!DN>h;;5KtSNo0AHPLe4PqNFn}G_DQjzP5-NcJ*FrdiUJ~(N{~Tuhh8obsF$&Y+|0}beQm-gFlgSx zAp_z8qR?S!NV!thRb;^!j0&F0)FqsO270>j5TzkTrj=9%IU{nhO*Q}d`Fg!tA8Lgk zRvR|=S*k?5`$fFYU+FFtQUNlRL@OSX1cr}Gbtc_GvfLE)1ZLW8R$xJZyiMD9$@Lz$ z{f<6z%NU|TsL*morN_2R+!8Mi*l96c@ZWSTt>`?mX`h}`!84#w=h<=`_Rh=B6U3+w zOctc#m{Sz|FcY-C$`Gl?P2Dn5)@&x#QiZIuyjE4FeoPtaw`z92xh zV|=GE68?7J-=?7b{?*>w*)JP=WpR?>%3@8$$n;&iA=paOzkmUSgKd`%-OxlebdC;y z9k*w`XyR5De{P$7b= z(K$Z$_A%Kz-NRU<;Ij<@Y2c8xKwgoNHR3!QNs*=R6ncUvyHrOZb6S;8TFFe4iKzhD z96F~8AAHXo`U>QNV{v@rJ)d^^4%|^Mi5TrDbJOne*?F7&tpC-Zon7gB^FXn)QKm#y z_GK30K*<@y?WCH~jUPsG;7sPEFCAwhUXX+Z zK@P#B?qPlY&u2M$*8{dkHY{JjOLfkv$1i!D-@v^W_N%iFe*y+&s~o!($M2&IE#lO5 z&PRjAfLhXZ(*c{LHKCj(u$l13h@Utl2|6i>pEgX8Rx;#jm7?UyHKVoh!Oc0T& zjlVzQV;uhTBPKz0MldTY-6BJUQ7cO6w*RIJXa?oeMugB0bhdx+s}J-WnxP{>8Di&v zylS~1s$~)^#urz~u;r^GYi*Smc1EK!Ae5TRub#*VF&r@Y62Jz2leSzmO-d!0%!c2y z!QRGj>nskS`|&ss$!QJY6VDVe2z9Awdh38ccS9xBVqhP=OHJxz=`n>8hD1qFjg62d zm6RA-ji7k^>i`;yfcT`aji!JY1;{eTk>q!#YGDOJT1lQIDM$te-6Xx$VJGOpLSECzSYZ3x9?kywPG6FxhdSqteB!F=57x6Lp8ZVBw{JR^EW;biBc@DyW5$ z&RX7lb>z!k6GE0xYC%fZ3EMAAYYlOumaApybX0iU3SC_vs5lcH62Fri0%@4w9PphI zV^LFrblXY%2>)S+?d6VYuK-+paK3Wyx)_Z#1&LgFPBUtskLwrghN zLq-eXl9?s4=f6FMRvOF94;tbGB}IHa1@bLM3j2lU=^P+y48OmD*iTkb<4kl-!i`mR zgpoAJGOqh(-+r#fisl6S+IG&{#o2<={<~I?>n*{XfO=kz8BlW)Q5suFzHM!SAkm;I?!-Qq)p&-Ky8%H@KU}i1y(={cK&-RirN95K-GDr+Zxi$?0e!|Pjbtf1#J|Cp`WBt| zHnp5vw`ey<7qxMcI&H5a*j222@%zi`&6}9MOyYKvWtL3> zbn3exDTC#U=H=myMcw8CF+R(W@?j;lt5SL|*R}n;l}}tniPVwxf*7)w`;O9hDweN2 zj8H*`+mP9Zyf-a4nFK3!yd2eP&d4bgYKCRTTGeMCSNAv`M7YCP5bbW9H;1{Zzbce;$*p|%zv|=c*-+0p^i{|X zQ4$Hz9=6Z)SG3N=2Wg>|~Jghz{;BW z+hw84*tigqjv-Qp*yEmoMA%5NT|3y$ zi6uumIG?jMhOJ^+*FL-#HTCK6Q9KUGGX!0%#h`X_rYQ2RJSMR6MWVCX&WPHDt$Mf< zX&*g=ZWx&58bB})G)_k1Fl7S?1p+aB4Hbu>sM!qMgI?RLq&9)FiwE(dPJvsM3G}h_ znJOs@MOr)M*j4=8b4EeG4BVu3Xg(bQ-dM4>t`m1Ipyvj;*0EYO36rK(I`^jg7GBGa z`^qVoh1iR-j+MC&#Jl&4(!N%P@RkRAuq1FiC;5p4?hnScKjMFDv&dVu+Qv5s4C2jP zmUXTKGYVh;(7fo!SbFp=FiN6d@GL@~UU5BH0qEyGbX(E+93-& zsfthU($X-wm;KNVz2_$|ubarAcnA!|h-e99hYXY-9B~bDxN1y3)DNjwizJP&2A|St zD39A`qd4Nr8R8ixp`OHie##gwi$$lyI1vc=l1k{t7)~Tg^KggPc}@4?#ZZsWE)*b! zwX6i(O+UWDLUyK;VkUT*=MxqtU^2lUl5vifXFVH=OFaeuP@sKv3cq=xGdLAP|Ebrm zpKY#6fh|bg>R<;}RG$`;KU1dS8KOsaw$#+qP?N)(xc2>i9HxmzzA5&B$lpo8I~~;O zZWZJQs0g-2mdnVc1v#c4x7oxAzsAMg``p>^dK0RMuY|Gfvfb{|7Fe;P>#^`LOCU5+ zeVBkf;cMbt%K|sDgjd<1MP8M@z)b{0dIX^;73DT^{);Nv)TcZq2=$bKcbWm-VKCQ? z5UD_X5Sg*@n>0Jr9W}{)@mdwUYI4B0A^g5F^=n?D&j#eq&#Hw}U#vg1$(q z5?d^$egx&J$Es@C#?pAm$5F`R|Gwjkrmz^TNM|{qP^qN?OxQ5wfQ3bTL0G(%o+5Ic3*t znYiSne>x=)R%6DV3vvXNENbZAbY>+*>Qy@0>+R*F3BReItOSUpO0Nia8+xWMvPPHa z5w5+lYazfn@)Gl|7Q87+(zPXcA%3DS9yjCt@n{wBZ*AS~h2$8vF+t2|=5o8obEszX zHn{PTDWM5w-_L+KHvD1wp>Y1mTa+UxAv>vLBA8ks>uJDP4<8{+T=AMWZ481Hx#mhV z)C>wv>pEoU+|(g))EGNaeV?QLj7JO+s2l0Y${13gC#?X+E3?-mTvcYrG>RJ5kYX@CQ$wKYR{^A2Q&e>60$ z{!O9uZY7Y`MnGsO*bOtjITrm*E7IvLIe-#!XF~6{qVsu=$t9ObV}f1{Y^0|5LHr&) z*s$roU09(xX4Tg@Rz4k)%VZ=TfKQB&wug`%Nti(XagihzypwZp(pK^d&%K972R)43 z>7(egHKDF?O|ZEh0@Bf$#+7J;thoPd8KNdc3GHW9@SqTi@_-fPvIBp~_OHbGF zo^nxDW8>&NiK44=%e?oqcj-LN?u;`c|CPxU-kVjYN`yR^wfX$6swyigH#+<wYf$nC`;z_+8rp*o{E0FK}U4|G) zZqD5%NuS{o0a898w7Fc#3AS9aO0uB?EDq3>t{&{)3<4||XPcj*tOn(8+A{U~-XoKc z{GjuV1)M<4k8PDOmZHFE;SQn1w>H&ek|iUx=Kdwx^1mrwNBp{$4J;5jF!jj`tJ9|9 zKjnqJ#?-R8suM`H;v?M4^mhsN3!y4Ro@w`v;Yzy|sPzT?b`%O)z}L<52SJA}B;p`$?F zI^Kcuzw>&xbUcRyVzxR;?JTHKN}^L!vI?t{a)>=YFJ4=kQ43e;tC}~C|CjF%I_iFyLy|DGfoTszeu>(tNJ({($9N&L!5KAj>~V+>-Q`=LL|pEphIxj z%9T@Q*^v||n zv62xQ<*#lT#)Pdtwe@+H^`5BE$$)!;8h3d>sy%;i;+>%{@xKQhI4xuI&eZnb9i*N@ zo6EfBdl3kBzfw02rcjknMSGEt?tDGXi|bFL(iYU#FfV@!?KXA;{E_&)1V%~t&n71VEPPn?f zsbdAe?8U*~=Onjs!bq3tB*&yM61Pu8Kb1j}0TsKX4am43*qiXkDa+Ab^}(F&@VBls z2DnkmE%N;_6ctCG4c7@>Svm^{Grw-zt4B>HsQjk6vf?e$JOlbs<|%xD*(otID0 zrj%w9+>6fZXD3q^>Xv0Bj{HN~1vNioX~$q;9HXt5G1PEJb{DVGjIFeh^Ecs(I6a<6 z=49A``n>=V`<7tU{ij>{OsI5+H1#tF2v(kk<(@O=|Y9Vny2EK@5s>xKoZdXer{oi=?Bvn;&jk* z@=g`EvJokfQl8Xt3=f z6%E(uL;Jmev0m@8_eT6auzcbn;j#Zp@q3h`o{k#!J#FW4*RlhcY;e<)X+}_Pj{lWU z+N-DA96#wixNykiQzM6`ZRnL4W%4Eb=qm&7OOgk0`EEuSZpZM~LpWfq<`3Bj4>lqD zJ;DIy!8rh<2;42r-<$HQ=k*t(?UZWP)spHyI<9ExVnh3~^sSVm>XLe>1*N6lqOIQ= ziTYY^(w}QH$Ii<<1Q{F>g_9O`42BP4CG3c?p4E&(d|wQo;y%9qz54L9+Q2()lzYbY z(D7^(tW`~p14IP_QKMsHP#M5r8c1A94Elc|qJO7Z1crZ^+hm4laB>0zq$DA~IuV?c zla!l?gWA%TThLhzMBtU~gtPbbG$CZPVzlA3;ZID>wobP$;LPKUPmeDq_I~RA*458j z-#=KL5sMI;A9E6aym?idICycJ&kKBde2jT|y1$7>ZI@TB(?di=C8X0Ulcg@xO_d|Z zlK~*I;x=Ph)iJB%jk}$Ln+1^F4ki?0@YG%=_|2!Yd2EN=9&OP?AQHeIMQhHi;LuMH z#RFA?l7$$>;LBfPZR}%ZDF#OAaDWV0y+pKFeK+3qmENkTE7pJcqJS%jjL*LeRdbY1 zYryA1uF^lhRwJXz`i>0v3+Agi%iqQRZ0)a7Usi-+0pJyo1?d3aG}&MxNx#*$1i=@=b>m-xlS+;J942SYGJ(0hjo!Y`-=eKnJ znhBT@gle)Zz`&n1fp-T#dRIJo>#&^r3~OnF;dPV|lf@^TaSmP*^bD7)t3zD3vi-aA zo#Xu&da7Bt7-J4MM)L4ZCOZH^FZ<5Y#`GOdu7laTlm=ANSmzMJY`6r4L3t*cCgLEI z00=HqRjfvER{2pa-K8>JV#y! zoKTX3XkT}zz3A8qIKSxJiT%ahzGvC%(tT1@Pd6(@^3X=3BWt~ikPL{yF@rX`-i%jt^{br>Iol&~0qMd`0 z_`2=}#NWIWSR7#|l&7b}?r-=TpmW8< zZ^6k4=ntq}cu=%}ypIbWNkmH#zY;3_(T#2i$3y8JyATOjW9#i|HYC(4~dBXJtzQN&DA z5!9KQl2sB!MbbP0(C^d!iPH%r4H|&nCfc$zF~qCyUMHuhuf`JrBLO;Pkv$A($i!@* zcR5^srIb+AFWC}Q^mP8OLSGdkbXI%FIFyw|2#{ku{{0K6Ap!t&#g`h9p9h+BkgKDt zNtD^>3naO9k|5e-9~_k#>91kv1B!@mGy53iKvW&6@Y;M44a6{y1Xl}%tsqo(c`5tc zfT0wonZ-(%%`XujrdZ5Ld`T~29C+XdvApwg(3k2$Dg#uj_frg%n4q;+zn zO~MpPTQUjMU_8WmW`xvd3~8Z2J`9$0`)dhU^rkK*Zb_Ol-ES*y6MQU%DFSK|du0V$ z47Fh>zd!{bo`Vu!9=|G`mBEAp;RazklwrpVg28~t$1KCRDTtu9Y{&m=ACvFqG&fel zTyiQ_oTF!k(XaM(Z}Y{d=uHC;RUZf!-qbc>nzNJycEV=s&7x_T(uD$&Xmgkj^}^2d z%+#i~=upUYrlhWoC7!7m*i{T7%UBpDPj{4*8y}Le~zJ!gnlxYs4+f&}>LS$Y9SOJ5q^olOujuQ}_e1>eB{yo+rl4 zc9yENxV3&*qUsD6)jk`Nmo`<*VoBD#+*@ebRT!?+kKO)pEzLgdx*X6xm9gvU*;yJv zv-5-*UqE{#$5k-4WR)!RC4)y1nR=3b&hiU+Yg-1EI#0TaDBjLIO+jiOk3{K(kFp*N za?JHtQC;Pg(MQnp8m|>i2`y@*+f%wr zC9RMX8&_`vp&a?W;sqGCN+|p;@}+#D!Vkx9?~z@T1^C|c8a)=SY1W#f!J9jA_#5^# z?Sg$P$@@HbDeKIy(EN!AzULeb#q8A1wdALf7`5Xc6JFa=^U4t~l>4?WqX&(slJ1Ny zwym|Ru`-c!&$Xy!e{!=7ly%)bZ;xywDly3<*SQ~dUj6^dcF&muLW zvR|P^e}4!1tH=0nBxziC+xjK&tXp9=tGy22HZA}PB$+<B&pA&~Y>iH1I+0Vb=X%5g&Z{pdb2gRzH+{Kk+VUYv z5A5J+AuOL^-&*v;jjQhW)EvI>MXG+Wo@{YeNX>jHdVT9yQs>m`29<_WUneHiRa%D!hit7p~@wFam*0#!%DM7Vra!#dq0rfEmlQ(%f|)A>JG7jLDCUO!F4>8sc5z zHoqb@DdMFx#CtI>Q%V{xF)rr4CX=O4f0gEj)Dezw6Vfh&{*&3>-jAYmz;eSvZNrv z%!F-xAo5K_7j#Sg`GzKjAl;RZ@mg5%!-S#TL1Y&w?Z8RKtrJJFf)lhX|t$oB|6?lCJcaP0gV7-NqpblE(b8bAYOpc zI9NSu0^Pn#(r%KDCnjvlz?cfzgXRPpluoLqtk{SW*Qd;?9`lN=M@nORFa6j|lU%HM ze&exOWl=W|jTROT*?XIxriy4Bk4nUMj2hV8m0L}hayp^vwW~d@3rt5qXVW+6T1^ls z#RRa^BjX1lkqZo01V%VYDf7u$KMEYh$nRHK?E^4Q2CTR`>5K%dp9P6M_41*uN@r^t zwb^;ct05E2wuc$6d=+$H6Ozm^nwug-##}=f5saTbH?S-HeGm+IV(N%4kPD0QjPpt( zQ&;My$}yp#)m781hL7sfH_IkOx9gTUr4y5S>#j3(urumfr{!ikysSB7*r&WLlO`Vi z@DYVGm;VF7syfQO->P5X;0Z>XVPs;e-$YQ-2Xue3iPvlmQOWU6f9A97DIkp9DO->t zcQ!LCYf|zkh$ZSE?CtZr!)tANdBFVwAE^MmMS-Xx3cva^Lq$anf7}?w)Q~VU^O;x= z>B#;|Y%wQFnj#YI(6b&&X?~{_=$tI}`>JSo!$M1TqPGpDWLYs=Ps31A);$-}0uTsegV38hau@IMYP;O9h)#7m}-F`rt zO7#yR-F+AM`L(4CeFbOn$AWd$8ghHCYH>&8MwMm(AOt|PfQO+bD9PlWmrbqsFZDdA zu50^7G5U=Fomu}du>rjTxT@R%5ot~gt5q=BXVYn-xTJfunc|nl5}s!GhSPV`B&$mB z9(xryJ}jn(uj*+h?dyMVV6kl_xkjpAYXw#psl1KFtO&_RA8=xrsB_IT zcdJc;qUN-;Cnb!awDtW;DLg%L1RvN`nnFT z_~V8@6Df3p<^GlUc#CobY2}7N)EB(%PfddF(zwp&DIu%!yC>_XXr|E1JwVN*wn;RR zgR+M%@YI|^YB?^?VcosN;(|5>H z7lDc%UuwFS&54L}_aA)I#XR1uwjZTQZ0_riltnpIrTNkH+6U@rp(Y^kKOshnWx%m6WK3eM4zPT30sKfSBfj@4 z$zX2R&%54KiQDNy@|TPo?N_nr-et#ASGCtd#N*!Aed(pvy2X3r^NGusTZc%=R)F*d zp>F2fVl0q+_S{||jP0$xy3rCIg+A8SX~6{o8JP*;%)h_Nt% zOx}h84c#bH9{G)3`E%^UyTcYpSYT|yWhA{yQ4YQZAd%watD>i_7yf z+|)L?cH^JaE64L%4mSGy(Jd+lYHw`il!=L%hcydXP?-*_U^5*A7hRZik1 z`-ON!Z6&{DQwOVI2F~Rf;b>};SuXTA;o`XU%as`srudG3&dse)A@#lOEek9l4dtFD zjb%06NM;skfVCUetAd>WqPzNROq%&@64|W9dN(stBnsGNx+8X$>}44GH>9#4oVh%ufVhsARejlb%Ss~`-0eNrK2&{7Obx_&L{JE=&-V$z#?hg3Ded^` zSLs(b?&{09O}$NjUg<9qxo?^s5gKQ_N(=g3nVbvLmxHTNPh-#O}o&d35XAclF#2#f^fE0N@us5e2~d zdWX~Bwx+1`TEfA*{sn8D&2pBDW}Ul#4`F_tb<>I81AOFI-$I-%df6#?*~eef$rMI^ zVo|z|*^0WW666TH{%yH5xcul;eIH6t&m9hZ+58iJ$Tye};iwun-5oppRi~$dWl!Mw z$*#(odsHq}3=iXh6q;GDF|*2(5=0h;Yd z3SZZzf87`InB^%X8>JIr4vC~VQDDzMnH4X6-%Pu8(moPour+0OTgRZ@&!43d-Ne;X z`mU=cqVHF(?4R&6EtRv!NlO%pWmNR(mz(~$+E(q3G{SES(Ua4>tl};OEF7*A?SjyQ zEHl!K=7jxW@a}P_WD6sv2tW6>C(O@#nB)dDWKEUKq2A}g7y!|!Cvd$8Ah7$GKB=lj zcvp~KVVfZTL{fh?S5#PeiJ%L#JUcX-s@4hxy5|YJmzR~?(F&V-i)(MpIdj)REKE*Y zZ5UU0jTv2Swh~HvKPUyL>u4l?>yAMRL0leuSQOP*2V>6~#W;cLAC@i`A-WeoTeG=y zUuWwKR{7`lQCIm#Z+i`Io!=V* z?|)qpdxzh~C`Ai;-kN>B1sy(Is{T6p{^EhT9BFBka}_B+`SUgKx5TF!G$4>24E%SV z<&_3XqoVT0A^?$N(lcT4vC!N&XaNW6zqKuTc1%Gma%o9vSyp--IzCQZbY5;n>nlzR zDh@_>f8W5T?l&W!y9-eHTTy#wXXX~>yIY!2Y4B+#p&M)8W;Y8m(xTFizzk`~`8_k! z(5s8B%{0{0we8*B_1)Sg^uH!6rFMWwBxICxX7gyg*wSbQ0=*YmnT28ZNr&(kBG58c zLh@U3Iz@isNa}KiK{zoEy&OIb1HpkJVeTwk)bng+(zj9@Uads$T7AJP09HZc@ON%w zeUpnqDOB*Yk%LR^P{X;zUuyw34o6J3L`ZdEz15~u5l(Nl$gG7D)gfodK1%O8vr||i zGy!UQcZ-O0#7|q}5@Ri|+@|8O`8w=Oy za7f&d=f^@hFJ2XZ@~8cU9=$~SOpaTFx;LXHgJ6+OzIwOFMZ2U~kc&-We4ccmR;Jq3}gMF;ySfP=SCF0{d<(;7EkF}s?xfKxC{lm`)Ky35{f~6x?4osz#4vpf zmD;K8MSWNo=yY1_n6*#Jm2sG1>oMFyd zBwCsv;xj92CusWu4<-JwQv|6v$6{&FN}GmAI{DMOWkN;!N|ErSO_8J+d=;mHWCZqAHCiIHWUe7fYxGx?HVpS(T7#a}9u3i55Y zx5Kk$_-#<*w@DF718oANg4i8Z_t^6i2OQ%gJRuVaiLC>tkZ}Li+CrBUhY4sbm)S&7 zG?}={7b$PyQhGrOmcFZ@qFv^sBzl*UYD8TGC2#r#rzp)xD$Wx=>Aw;B^wkK>dOnDn z6vtfhZ{G@9`1Ba%-nujUJKn)&_m)pux3^s=-)=q35H@eTj?Uy;uWgsvHfvlN9~m;s z@xSMH=$>4uF!4NJXTPhkzsjxij{jL^Di29h0#(Eq@k@m61(cE{2-3ZY$~5xQBt>gd z2RxqepA?Bf%>KneK$}pc>cx7pT0`eQo708Y>#5T)D$}#pC7(TW1PIWThv^H0(5O{Q6oh0bt9S)?u)1r7_yAZSTmcX|h z?dXIFI+hzjQEZJr&s-vh3>im+{~2dZZmuD_z&{3k^>%Xl$q6~YVr%hwsE)GiuQiOp z7@BUfG-72cMFQ0l1t#(41Rc8)qHL8>*1azf!z3G$${c{R`%R(=);^m9of3~rbCQ*0 zDaGu>*zdt1=xz(7tA>C4!!lp8Uq&g--GnkW#4{xTnTZBzV_cRZoj6dTjE>k;MTy`x zE$+81BQv^cZT?J3&P*AL$mD;<*?+_to3iSZ9{e_=N~4^^cyh`poglg4A93cWI&HRj zo7FW_&J#GPt_@c(8Teh!8>Kp9P0^Y&@hVxt51X8^7jMm-53BfBx0`h~YlV;eC>QRW zob{+6$lAuL6dga+^h&?WKhdbYa^i%?eS4^SjuiiR8OSK#=yjE|gkR&wsGl?L()7 z;<;;QFynr-T*h6xg5!5~p3mZI4PP!e{VF-Xo&6bfT=&Ra3}uLbN~ZL#_+A zS#8NJaI<~WyM5pC*nAB23|*+zbM9_=tHpW6vfwv)%|oO)rHPLC)V+)-urdIA+XN<* z+|tytVP$k4(Vx|=xC!u~d#3a>`^3KTEo8lu_Od=c5_6B>V|!^G6^-dkrj*u^YE*`o zSCTb;s`#lu&)RIWcJJ$^SxKSrxG0Vf21U{&ngn)2tL;hB#{l$78nnqreFnMvYRjiN z<7T`QHf#E8UF#6RX><@fGGeMdFCpEu>EUgtQ0U=Ai;rlRtsZ|{qMa|l^FXde3x|Q6 zt^Yymc=b;{9o4}l1m9pH3Xn|JjobT_0A1wj)T|QCA$?~Acv}E-3$4TgM?O`Xk7A(@ z%O4Ges@>;8CK^6SGsTfWtzT_*5GVUwQj031@G6AHH$IqiOM~CwEh$tVaDs)G$>dWq zHda=c%Vi!SoZTZ+=vq<@cUlV}s>(`^E{VfJP$7J&2j&O@O5DFK5ag|+r}EZDu_4~dU8w-CtEw~B8 z=-!HALD4~&Uyu#+JB%VD?fj$(>U#^{@~W(<5b8>fDpC#=Fvj?szIOnRf^VaOxAKSckTC;;Z*RMAkB8QkZDPc-&Z)%fjS_TlQ;ttnLca{jOQQ*-F0_H6^9?qk{ZDRj3_I@sjfZsicV z_J^sj-#9{G1wyj%pV_6yB1Q%>{O8* zQdb!zT;($@5(UVNl#34|Q;DW@0?UwTe-nw&AOkarftKtC*GT<%Z5PxSQ4%Mui6~7K1F2(WE3(+V3?=tyC7&)OuP#N8pt!=7*r2Ysu=Tiz zr>GBP@n>amV3YWByZHE=c*uHObXR=xQ+z6!Hk2$O!z3ZAN)r~80G|lWTTduEh%6+7 zkP30R>q5$cAQd_Pm@`PtI;8Fi(mU5tk=$0seBK)+2uOURPCdzAp;eyp_qTMP5Z7?x%HHlN0bgsIbSVpfMEIB$Oqby@JJ44br zBf<}+y^)cLoLS10p@E)}Y?qmDkUSgvcQ)_K%-qua^5V+++U7zOc2`bu-0n&hc&K`H>-2o% z?BWOfkYWu`&Qfe=KJReB&3SGvvYM)LHu5Wq$e+%@kHuYI}KBx z{fQh(?bt9=-{Yw?5yu9umsb1v3iVQ@I=F!AQYq~?4z`59`(medX9lZ6)79YTC?r~* zKGB=~G1#4y|AfHwv0$-!idJ~f&$IPL*DrJ7y^ohWpA&JlBl@0iPrkg@rpN6LJ-q%t zoud7rKm7Zx#q>i`?`MzAzX(sXACUS<=pqqW;&;HPBwg>LFytn7qKG;iirvvTj8s)| zoBY1V{rumyMbP_*_@BZBkmY7zL89Q`M0yg>yc1)9NJIR7viQR~LyGjv6GN&z203Gz zGKCo9Yq~mzDWgAon9yp5Rhm9Myt0K=` zjmmgu`q0GG@t$yrKYeb8s|UTf~Ll)Bq@2EMm$`p=eR802yPMKIhV^` z;07mWt@H}v;DDC~sGU_;L_Ak9QH7|S)@F@ioY#33Kb676P^(?jdRaDHVV}1t+#32w z&TE?o7&z-%Mrh96TE6g5awqBPsg~ERFV?tsn1_&a)O@d?xa@*Q^qh7dRhV;h7iCcv z6>NEMdiLFuJUY@tk9tq~Umm8fKL17i{jH{C+4Z^)NUK36ej%K6*>ee|Z0;g#{nhk3 zf>WEwH<;Z9zaGbk;^H^!5XQWiTr6?(nc`~v!4Kme{>|UOzov0F`|00^#DxA)^7czs zi22Pt@fpB-td9Is`XUh{^k!63-o1GYeMo{6kzD~Uhk=m6JhbZFeRdc6zE?2d{Ubs8 z8=ELRK&0<_IUs9bCp>0AEectN8W|5yMr7a&-3HU28zB{p@PYL$^?1?@DG7qLzk4dbBgyQK^De8YKQGe3*)Ncmz>)!>QN3^K z>CZ_vX+ppEqB9^aAwTrz-nPp-g}QuU<^FWJa2}DnIMzr6+C?>Z1HXnudj5G`$m8!% z7@uGs4mNEIoqu@ou`OKXGfDgtVLA?&?>umA=k9*7UjUu1rXwP%Bm>x=D3C>25fSO| zxZg{R9Z%VSlnv)Si8LaSzm~{6)1!i~1&Y>ybcm#3*xrA`x^vlWCPFGszgSqvncSjIT5WD=Ai7QH?bQ|(l%Sx9s-6p`w)F=k>E&yp{iI+ zP7!9j(@>)y)aQxN0trQzMDA!7=_VBOP)$Xw)vbZ6&{h4U1yv!Nj_)Ic=$Dsb#rsu@KlsRG9&T}rzJn#MCh zBQac^=!sDR-f~q1I1IrrsI@${^35eTp0wD&cR@&*TMk%kgaEP>AE3-J9bTtoP0X~5 zow?yE-I?&0?kj{GN`>!6kDzx1c!h4&R)6o;#?ZX9Kw#t@E)i8(`D7g=&-*;!{aTJ4 z@(v7HG#2pvLAAeL8y1E+pn`BM6a+4herx~!l6P{sE9@4*>NPlzLu{?zxEvY)AVhrd z3DihM9Egm;WZ0);)e;IBgC`O?zZp#c`D@+t8TL8gjRPZl`eErl{?!N_acZ<-2FN=a zd${OEawj>=P*tIP-J1aI9uAg|u992ZSl*)T^)=0qD80~hM#TR1!|F~yOa?S`PzJ_c zl|$a4s%o(KVDL_QK`n=w(+eBM-YOs#`I4i&M*nN!TxvPB$2-tV)>DF3nRBGG`#ZRb zU4;+GnLZkg;2hCLjip`eOdfEPUnQpOT#|QyMu7kAL0^;Zzg5&EjqRDCGEl ziDSeYhp1_Mnrm;d>eG*ndcFvCCm~nNcjVHJm;Rl=wM)r~Io(}u%zfpBgV6p^V+ z8@$m!Pdor84XgBYA|5NT+c&0|h7-9RweN$i%^K9=m)#9(Rxg&Yy@kokQTgNi{2bbO zZXoqVm0=TuA_=nqw6G`gXjbEGBO;i;?KA$g!PK}uZj>ZU`?|7y&CJa*QK;`$cI5g;=d1IPyh5FF zoNG5P-&F18!$$wq&OGAWRzhOqS4fxqbsMGCmC|E(G3-L#>(}<)oQU^`djJ0dj6ie0 z5Mz64{XSY~qWy28UHjnv9x?j#&2W4>ye?xFHJPWSM~Y7zS}xE*s2fwG=Pjv*Dyw+N zFCH_JH%n)vZf(QoHN#i;i$d_bij zc2h#--jlA@xi-;!Z;O)g65HlSa|i-Ne|poIj+qUWn6zObsozwo7~rCn;1T=F9TJf(X;WC>sgfe*ldsRLZsms-Z> zI;qeYp%xSGMMR?{O}zwqMI<|`B28(fS;sX0Sm##`T+>7!^#D#LQI#b-AU01;gja zU_yXm1jlppcZ-u(2vP?aPX=9Mm{sIw3&Iot8W?tuRY^H!da31IMHNP@<6R$^jD>eP zY&c5zR8@mGP$L+K@I-4F$Wz&pArZfT^I zx$`Kf#ESakl}|a8Rp?oaQCnB_<^3}bg(*ee%C0D*>aS-2T>mzgSvB$C;gM)H}M z*({$~Ejpu3*Rg^Yw}q=|EGS26S3*oP_n08_ZBs^@c+rTc;yp^$Y)^BUZ5f5^ItFb$)Ko$Q3;Bm7)l?~iJcs(ogUhuAUY`AiBcC@q8Ume;z^+@8lmYq zp)A^<66&CC2?+~#q9%I(qw_(Z{;8S)%A*5{g+3ajKsux*ha|80g*cj|Hu@e5`l1io zqB82FE9#rdq0;8kvPk zsDf&!gSw-KimScKtGjxn20E+6YNJiMs+4-Etg5WZ>Z;3`skBaM#Auev&~z8bH$dY{6osOq|} z?8-3X`mfHqtO47s;@Xzb%C88EZ`6vd44bVD`>=#UstG%>V)w1(DzF8cu@_6Q8|xtG zijfo>vfQSlpINffVzQf=vV?Q8EUU6?=dyRVvM{TeGF!7RYqK$XvpSozJWI1X>$5$} zr$8GMiFz#}d$i*w3Z9q}Oxv_h`?OFSwNi@@S2VR&d$m}bwOYHiT-&u?>$N1-2=O2f zosbV>D+^yMwrRT$zu*9fg*8}%KyVvWG8nfqhX5X6w|c8Vbc;0_U<+>R0D>z6ZEFC( zU;uh+3kD$n0)p!Rdn>n~*SABI3^1SqFkk>d-~bWOxDIdtovQ!`V7P|s0d4!ap6daI zE4Zn90H7cyxNmC!h(nb2(6%zbx(NWf3Qz(HAiKaT0l!PQq)WKSOS}#s z0}?>Eh8uc<%et`Z0KuyOAD{popaLrJ0v+%IAMgUaTfLgQyyLsMo2vl5D*=YPxiUaU zq$aunK!x@oONOvxifcTm>j4Ttz5GkM`#V?>bU3KXzbd6sTe+2DfmnkT0S3Up=S#g3 zPyz=a!TZ~}2{6HJE4~JB02k~F8(ad)Yq%GDxVCExCOlXu9KR{I!uuP%AS}Tk+`_~g z!OGkJ!VoOOHe5l7g;>5j!NkkD{QCk9@B-UA#2tXWE?mR>yT3A^zY&bV$m;-SO9+LF zxbdq&S4@TUlf_x=xP6Poa9g-}Yr76GyNxTlh3mM8OU4c$yNLV6S`5Y-L$@dDxb))zjO)9X+`Xhs#D>egD$u>X+q=u#yq!G0gp0lz_`4>4YWFQ>{7f;$0qE+4ZOsx%fX&2$Q@k& z#z5=;NBd#M`UA zLmbc_;KTeJ#V(uxB|yGSES*)10Ejz7R4BI+UD1sDxLAzFwwuTzfV#Fjz_ts~9j(!6 z9MbW7(va&waVr*zEC@l6&8@r5n*0ktth&G8(TS|Z$pFz*nA7oVyP>7ECUL_yfOg1 ztbEMw>qp02!j3G>giy`01h>%S%z?jl6U^2oJ2t)2va|41@vD#C+2mZu$lbz$ zoyd;O$kuGT*!<4hywHYh*ybGJkWJpG8_$Q^!wLY(l3lfou(X0u$@@G1%L`r4A0E#& zti-YG+CfacM?AiU`vJe80_ZH?KaRu7i_l4)3+Rx>Jgq^@J<&nMw-H{_hYQhW?7C%4 z!uk8QKdr#S{njB}$cjAXg>bl+iv%igzMd=7f!x=PUAXZp$b!qbrmM^`z2XKS$r3zR zRc^aSO={G8$>vSy=k2@X+s95VzRtVE`+daMYvmeE#`2xM>FwUSo5{r6);lA_>^n*) z9ml%RVaUMa=uFzKUFIIWm1W-Qn%n9e4(p057Vdr6r2WGbOwR=D0J&a4HZ0Dr%ep}A z3w(UT7%bt`80b4wy`as_@2t=>oB++6*O_hVOWXnfY{~>oeK!wtUD4Z3|S)8O2? z@oVq~@WcCy0FCSLhb!rzytuc;wxYb$!Hc|19m}k2xLBUa*Ezcp{|JWt|&-t(<3#G~E7Uybw}p7ewO zx*xFSJwL-R9L^H(&4w$%(oTgJ?DIK1&L-T`T+G-gOtxJH78)4KGhFR0Jo4my(uu70 zO8m~)p25_f;y#YO32?-0&%~zwgXd@nl3vn6{oD5x;%U79xvGu5g1fn@tH_Lt;lCi$ ztQ_o^e)1YE7Tena93I_mj_6mf(4m_GuZzOdn+y}b?xC*Ssz2$`$LWF2(3w2e89%(F z``!&t)K0D6z^lzI4CybRzE*D2UY+tRuipyr@;mOlu1_WA+uF_V%qI-wbI$X)4Be$& z*|2`fyl?Fhu;$+Hz-#{MVu8)J>)|jA{Gdz0h`Z(FT+ECN_U~`PJABdr>;kGQ3CbQ8 zd|%Jw4hRwo4iNzc4jvu`h7JmXjgNzpjg1|X1}ZOz4u^w_Fe(a`qm!kSG7d5Z53H@O zuMZKFvV*dRw<@=sySlv&zX}JUgTMy{$H<4j2BgCOjn1CD(z>sls}ITt4#M2aydDSv z2nONf<>ct+<>Kt??&7-$1g-P1_SG_iCHV^b`U(l6jZ?O(A3#UJ5DF`C@Ix?7zC7?k zcjyH)O2H)Bnr2TxJy)GDij<{^mdHy6N`^YgGFeDT7bRIDbc~RS2nKBBv<8ymuV=v$ zIJ;#ifQX{uj*3W8F2y1QOvN!x(JJbqML3~e4Uh-{ECK)k2)Or3QY4IL6&Mhq=wu{8 z5=uae6q8cOW1b9UVu=#xu?V@Yk#)7pBt$}m6RSY{YvZ9%2_0xEh7v|W2PzzLBNng& zCQ!a~*#a9j9i(jux%EOOf}A+l=3c9NZJ;gxvdsye24L0tXuXeLUy%mTh@r56kN5?2 zFi?U6;|GN)P@WKZbWw*1Mhh*?u{C75IE5WgzC3`EEH%~Q%Tks}Q}Ag5hCj0uGMxBx z>IV#%{0l=hnH7v&+Z}^cRPQLoh$Myxa)3~HiL}llOL_GG0b|ia)^Gsu16O>Kv?U;4 zZ_x*0dy?6N-%T#Hc+6ncxVH;>>mBmmOtLJN<7JUmCrU-qtas2)kzr!wcSzpiiZSH; z;@oCKedj@I2!0j0c-BH_b6n>Q<#V^;j6(V5tPO&vG)TnGY(|31VF%0R<$C zg9^zs$Yi^CqswBUg@;U%oWSS`U@8g!DUy04&9c{g7}ZxFC5f_E%1tb~w-bIgxdLGT zrEnvZTBaN`sxXX<$|EPBUKCD`%(0TfQH#(ckD07^Bo960(UMkNXQ6`7hZr3|prweJ z@`3@L?8N9_oZR%?ebd%v4{)t0hM0{rYU>@hoe1NQXFy4YV?oCaQ^}r*fxGRt!zBP= zmZ+tRZjs%1SqxrXV!0gwSoT5y1O#Yc6gjXUe4#5DJ|F;j#RVgSKL`CIfeh3AvyhL@ zrSj9a=K5*ZE`UZGsA$u0XkM?0Ua%kNQ2||so=hvplnsl~{$E-Ao zunrj7N=@7@cG!*^k(8p2CeJ8L2kL27%S|_5-J!gP#=a(tRE&itxYYo{Cfb{U;9hZd)Om4)VWI&cEilOHiAF_F0fr62waZF zm5_6}D{t-EmI?wkoX0u;;7O7*1|sscn%J1Ib5$z`0X!$Ga6mwPR2mFe+Q+crL`(vQ zkb%84GK-IS3>8Kalr><`A|c+wHgv0 zQ6+kdo~C3$9$2O315s+$R^IUns=#75vZ~5G2$mEY!pHzz%i06#hb;7rk$C{L5!?22 zp8(3Jbj|xjSwbnBAH92 z_)NG;GQEQU2$~8k%fX5l8p;4!g8*^JW)kl3&XMtGTWFH#OC=hUGN?2F5d|}thsBI$ zRZP(orC!x4 zA%_ilcrsz0w3x$0>H~q{J0kt0gy?uEGYzFKc3pv+(Tm;(Fm)p3@duoo0ukXwH;@p1scv8QG?a^ z3FJ}}(?JmgX%Aw~gRqBz5|Be1ynshGIAK#aUTZuooSQLiOU&g4sdhVhOzmJ&pm993 zwAQe$!d@}FvWzvWG$CT)z$-SreRD-&J;|h26wv$t5K+cs5&Vi3l$bm&0XTF(&`@Q7 z$0dyb(HO+5C?UUBIYTbjh~=&rNxb}3>wXYEY6km9xfd^_3+7cLP-j z$XEFPa7T%C5P%&Fwg)j67Z~oO^j*^R4&RviI+1*sbD5JWXq1T#22X+{Saq!euqw@L zzN}`BB5$O&h*q-_l0Ri-Q5osmrL|rpT%&5$ew8+@dnR!lr82HuqnxlR4-#4?K?OqN z16lj&#>5U~M?=Fw*~u0KvqJ*qiL=^)NwRpNpMBtG64T<44(SC6=qUaU%G#3#;iQ(4 z1q=vNN+_KYHFnBIWc<|)Wo8!{0i#=!O2`foWY>L+-kt3($wL_dQ5v;H%$8&42vnpJ z%-~M8c29Q?XD-Tkgk$rXRZ@~XE0(L(gcPjsEXF+78_!adZ!0E2ApaJNdkP3Z1m;5j z=%)DvDF|ny`l@nIc(wun_JH_30=birv>1`kyKsC&`A~);+{DGZiZVkSQCKv>A&$kw zcy*j28=W-AIqs}$FIX6747?XM&N<9&jbrhQ=NXb)PPjg(3t}vHrZ#n@EA6?;&IvXw zPe*R)%JW*3`2xlsqxljQD2rcEM}$%hbGV7gimAfr&1b!)+Pqma0|deCg{qg(U>83gAZ7f_8kf(7&j#XkEHl%F=AT1J zZm3FRXXYr?s758jS!J&Fb{ce#5F6qcT)Vcluy_4umSjrcCKc(h$$ioVze)uEwQ_~H zB2RLwaa(Nni4f9}g`{0vBUXsW8T^3Gm%e?7u#+P&sqBd7)H6MMClq+!T$U8S@6|`4 z`vZVu`@7Lw*7oNIes>~TZr92Q7a&8fMPX+hp#o9k`X4Is^Z-*)A+rKU8qg7E0usxE zJn)em{$nZXG$e#9agSb6Q#N)5$Gre|U=Hi;^? z9J&@&*C&Z5NNbN2Ef#S*iql#-hI6RLOqG)w5)m3x!h<|08%S4EbOR5vC169Cf%h;2 zC5HeI;|nEIbRMHRr??Lu69M{gZM`rT)P-fcV0~B^Zj3aB92Rfbv_;79b{rO8Rz!N- zCq|8ccXmf+`Nn>T1%L7v8L5~~_m_@xr3i`;AQ({-`y~|N5RXVUfQGRaF(}$gI98|Acm!9UN5Fm2Y?b1BIGK#37!k_bwo)^l37 zQa9)$QBn-sAZ)6kU-Gg5^P&JMDKEJZ0QyB+jNl7SCJr8egsd=p8FXzM0VfobF$VDu zn_yvl!!502F_wf2%m`*QrHfk_79h7GTSR^{lZHA2UeKgPU?_fUn3dtT7htp!ZYY03 zb6>gDU;7ns{k1f96>$DS3BNF4OT%!605DIfD}X3Ae59Aa^LSw+GkEr4Kd^fq$Y7Cp zdMQ{qH9`s+go2sWm=1IoRo7-}Gl>#O2umU_c{K=rmKsBsM!*%9$9E-%Fk9MS2)@P~ zwMcHZG#E}979Qhuf)Hb~`8&i|3m5Z4v15$LR|_+yC>|3386fjz&6s_{<2lfXHl>h$ znpA#rhLzq_JlSYr%0p>$2Vd6H3MGI&k0U=Y;djsAcg*5n{N-;?0hdh%Dm)?;Wv5OH z#%O-YkJ|H#tfG8@$R4AmZ|~F!2$^Y+D0ARKL6H=ovi3lfq>L%%NtcvBy7PKdg*^~D zIh&L;U~)qwISSh4NdPUKcq+XO&ZRdvjl|Ah-o-h$1O=CtK z>J8&iqm3XKPGKPO(4*xMAIpbv&LbF~_5g@>pA`oGP9G*d$&j6LbC|8A3lLFbz4J>( zVtSxBrx|powNo-GU{R@Y5SeKwNi$?jwU%AdUmx@n=pu(!@+GP$c(tLL$Q5M|bV&3$ zaQm2DO<6DjVslGqBXogOoMT(TQ$QC8j$)V+EMi$v$*Ld+VlV&$l{c6dXsfJ%tCW=$ z47IAuq($1;0qBQD^yn#O8K3Fob?7*g5!i_PXHV(_6-!Zejo@&uAaP{zFczn#tRfFY z^f^^?A`Tf~LHbP_7INx(E%somwpwGgdSV~ut_VP{WM&TZYO8~3tM^K;`#Nsqps)41 zqY6|wnQ;Y8fKeZi01LaY3eZ7tD0G{kRJ*hP7EK8oHI=ciG@fS1U@oS0$r4GdumiHu z3J5S^C#s-yIyTEycE0pPPz0l3L}qKYYY%{{Fxp`wXCZ@WvK)8}INOH+(qTROIj+j2 zg>wbOy0oHTtdBF6ZDn-55P@}7S9F+oSWAFFn2;?r6`c?O4+ExL2!1`JD28zj^6(T~ z0}7NTq;OVg0@QW`)ppM~5Z$s7HVbaQw3OQQQ2aWu#)b<63j;f_7lEn*QSbsya0MT5 z1t9PNkjtFoy(CoQ;6BG-IQ}%8 z(y(o`!#LB{vEB6wt153aF%Y~ua?mpWvj8-P$FMB0YJubMEF?z&tra~(5Cz4$w9i|t zklO+CH3^A2G7&(vBDcL7Mu!%w8&44x{K*?q;cPdlM+|0R$O9?8ba=S}Fgu}8Q<4Ewkg`~gnz z0U%Jh+2W$3iMbOYN}lV37yC-TR}&BrbzrK5;6gVWv_dGPE7Foc3FI!MxKxy|7_%!( zO4Or2Dl^-pc7Z`Nh&5Ttq_1OGudwP+#iK@KmX(DQy~KI|XavQ4ClbGKjup$jakUkI zm3a1~U|+1Y_6M^(j3TwbBKWlbpJ>W872!77q&5)tyM5UnHr6)OLkW;*U7*LOH`d2` z+NuC+4g}0Ony9C_a8ZEMxRC1*5{$u+s{o7q0!yM0-hjnAsJY0tin9^IJoSUEWG#k5 z#>7#XopcDfA{zuS1Muq$9EG`6wuH0m!HokWVL_`#e9QMFusEx$*id;!Y=O1P3bks> z#JsAs>KfzK0ZI$SLV$t*EY_QKIF*i8%f$#sJ_^q=$!!<4xfDkph{sHv4HY0Tm%5i&sRnlP#Kw_{hF``pj`Jg}LN$cm{M4%-3x)v%HK zupw!h**3MA%Nje#8@f0D!WxUQBH#iiEVjF-jGJ>SuaP0OTCiMKyUWGDrVBE$yb+!t z%H{EBvDzXaM_C~EXz5DCot6w*1ijE(EL1!mUy~ulvxMUsH_zKo%9k6LV)`Xi00g=JE zFch40QIm{=MCYha<*2|Vp*=RJIOx~?CNBu4Y^|w~XfjMTwU8nWs3M3|lc`i!=1bZK z3uaQ;KC8C3VzQbYfM~keoz2;n4cf}<0LJP7pn!gTkqZu&8vO=`W=W5*{o1k}+fPcK zZmD70Iv(iT3Imk?73u>6`RI6P7)_XP#uy1{Ta87!TML`=fH=`^jO2>N$ywr%ujOFY zYVEIMjfwwktF%!GD*X#6)^Z)>*9YN}!Qik^qM5#Cs7Kb<4E^5Ra1Ix}LK^*ZD{Qn2 z39?rA*v0{1;0ni7Cd4Zr3UU+sm)Xd_|ob(PZC+niWXp`ZeF>(6RU$btK( z+GZ|Exk2HE0F_4oJCKh_?h!lC3Q4{LgNfvY8nGpS0SRE`Eg2MbqM7Jz+jhd<{nn`Q z&DRnT!rLYP&h2^v!oaS3WA_SgXsBNfp_<7$ zr)VcZ=hvBQ6pCPfYta^wO5gTp;){nZf|XstWw$ffs=<1vEWA6iSA+jsis!CGAo-L7 z(LBmh$CHJtt{~y`4hx*u3M7ZK{rL_Z*XPOvAWkaVWJ#WBnXKU{+X}#r24H{C?x>up z>FpH%H=!&5y2K%dWyf;+XkZwa>dNsnT~Jp|P#+J8%&;f^+tK&h<3FjSazL(k7#9 zcN$6p{K2+k$kK-HbFOSITW;IOSO?dp;acdsitqT&vuVF@(`w90>|y^->TyqIqi!JN zDDWSitOT$3eYNlb1{X!MR<3assY(_Qz_kID>QfE!`Mdb3jttS0_#vlbKJ!)R`Y0XW zBG@_@DIfC#`>)bH(OEe9{XFxt3hrW9-p0b6J})on;*vpQ?2{ueJU<}J4nlCzYp5~* zv9bYIKGh1g1bo9WWfLjOr8i9BUUich+3L<*0?c4Id+&J2+4n$h`u+}|;JqSu(=NhL z$N;sCp7$WW;Y9Nx=06~muw+&<%fNrnJ<(oqjMbb7@9kI9HPLQsBmdOne)SIs27-bS zgApnZiHeJi2nYrUFprUwkd~8@0hExLo0XrJmV+vSFdl=0k1&I)s+O$=tBeN*p}oiLtM-?gpgi?CFB}*!=C;(&Yp94FCWHiGCn_@Iz4mhl(01S}5^>rU0n_3aK;T zK?b%{*f54IFURU2muR0@Q48^Ts59NcBQh`haZjw;#$Lrs8)z>9b#fw zA*RKbd5IW=SSX)J!U-tts9+a+sr6XYXV=8`7--Ol)|fQ*Si(p(pv@%Bkd93wT5ORa z*&vl3++vSAlQHPeO4~T_9RLJCkb)uxh+qJjiEQ}5cB-fV9X+lfkk*{8%;_9FrQG=( zD$^||h>P=F_)mA=2;dhu6+M(tM36pE99anRNRu(fG=nKo5|j{GR3??96sJXXS|Cy~ zn6$`$LDBaflL^iQ%&V6&xs(I99yQ>p3Z}$PBLwtjkyIKwnq4;k0Zdv-0EJB2l8O8s z$JU3>f+$x;bnV58esjGDVBQS73IT7F~#fK+I;NH7|Z=7_-A zX%bx4&1Il+!;Jwhs41`qBD4jSzy+t7<|$DL^6$hXP4eI(0t7J5unvs3;c@R2`X?+f z$V2kTDDU|vK(U~+r=N-av(C4R#B^Ro3gwJmIr2r|0bWM=)YDS161Rv=n__BeP`4uG zUri`Q?d#N0M-_kvpjNFl)hQ+1)k?pGtxduZvO|CX1`!~FR~BBKLRGhsGvbKKvNHGG zc;}6`Mk*9S^F%iWF0RZ-Q6{sf&LmLFkEP)TSopQGP;>n4e?3|sg+?iJID+^x=ak&$( z=XCM>y@C1R7NHznOEEeto~s{r6*I_1a$7W~?UuBb(~tmIw+_2!IHn5F?@$E#$NX1}~9T)Yig4y=6o%C(2-1 z;u4n*_2pYTa718MVxw}Xr*P&NPP$N2f&^p=10`TV31Ik{b^W4C*_fC1HnkctedQES z!r_(xLa~Q=ZW|EeoWa7yM8iBHVQN|lBz%K_rUdK%HwMr^nS#X`k!gn>&5@SMeCIOm zQ0Ha((2jLBGQ@R^DLmmx;0_2d$2lgDB2E!dScdZppS2@Cu%ZR53M3zZTm&+Jl+Q1^ zXdwI82a#U7&y~C+nXFmuecQ++6uSn#1PUt!D7j-N{nteaqJnB4(oeD?#4QWDa&9Y9 zi}MQj!CBh!mbf&}#vZUJg6wh;yPN?yeyIpz&a#)zGbVYEnagH6(>#iLrY!;BJZehw zZ`Pz)Hm}LeZaQdt009XSPdM81p7_kCKHbUB zeS&A6xCAIW2inYf_EVnMEC&Sbq@#v9Kt1LEP=S_y^`>l;hi1%#5hOBdo;R-JB>vb= zIV=`RcU%Z^a0IS9(vd=_2x%KHG_$|)Y>EsCivl{(o)2(UL8wsR147a!aFJ)1yX5GE&?c<2 zea9+qT@_>0p#Xm5CzQr+_W|+*y-9N z8(GML<9`r&)Bhe}6bU_V5x!EvFFf)K^>h}g&m#bH3;ajzDxMBLfk?tJBD0 z#UMVF;!0){)mk8HsD8=W4(_od#HO%$9m}m$%@w*-2p74qqh7^!Lx5G7ws2BQgceRuI}ro;S&pmqzRdH zX0c3@AX6HfX|j;z4D{M0Shf^Wwb+0*Y1b10)r$7Dima4+4$;RX!z*AH~)adj)Z6&E=QmyuG7)EcBFA?Bc&!tQK36T-i{Lv(VquNgfLI-)akwe5fw!V zRdTBdzZ85vvnm|85bUV`tsu0R4{lqV#7d5l1UHTI&`7vShNh6nudgZLIXet%j{ka& zAX|iScg@t5oswhd96~UqvW<#vcbkt(HW1o-*0&wCXYG}8o}mrU+y|^2n7J)9oSH5O zG7+G<)kV^aN++9qn>u#j!{Plb_RH`&Df+%`V3W4)9zL^fh}2cmZLAoQPoO z)UhJ( zpeSy}Gc_@Lizafa=Mj*hdbQ_m8^=fJb9#)HAUxPcQsGaO00U0A3WorIFQ;ktMnDN9 zP;UYoR#P}cM=<8MKGEhBXyPc(XC5SR4;qnVeN!%iP*hOZh8&SFSR+4IBV4#vKOAvk zbp<0U)?&hDOkp@E{wE**)gIHPe*uVys&{rj(};Uy7vAtKGO`0OK#7#N3H;_z$np*I zR!nxqC1NuFA)_-o5~3sPmPae0Gm002Jk}1uGg3BkQk4f%*W&<#wp<{gChFh-34mfP zc2h6*hq}>lF;zN;=3Zu}F0ls;3c!Ep!-MFPXhG9$9+89|kuKOMX&BQ>*%S$OREdG{ zgo7f5q#zM@)KN}BSj4h1^D`0%Lm|=DZd(?87sYqBhFGjcR&Vl9&mnp5!xs7RJ$}_b zg&=klL|4&eeHEG8@u08d+%h-w#r(?(jM_I4iEN0f3GbpeDMX#mw|faXz&Bx#8y z$qARJI~?~Vv}JG4(-r`gf@Bx~S>bRy-FmF}fv421HL|0#Ht65bHJw+wdJV2RlKgQHLWED$+MDp+fj)7i&0O z-)A)fSy-3B4?NdEp0-$iXiH^Bk(CmXte26qk|5RiGaaI29BG`A`FhzXlHh zjml_^tCyZ&nuOhkmS&NbXh~m7xKHgdg)Z7Gu^28SU?Z5UT+fqv?ri&9&8 z_+8lBc04ujw-%69f%CERNtjqKj5fTzR@SE_-86ffhYOx0i2(VrO z5u2$Xl&1g>$2pXyBb-V3B_aS!7z<2a(PNLHAnoO%W|~5@Fs?~hwrRweDabtKDxN4u zr}toDuIH`>vTgG)bOZ(rHTZWSp<+Il6%}?*6!vqVRSwce4pq4xk5FV9c}Hz%qM2H8 zqcgE*=zSOgE=ordP`HLr)Q6qQ2!lAQr`f8EiMOTes;LXIpjw)(+I9p>vK$#@VP<#o zC9^63v$!g=NKpyG0#XU&w_1`P_(h{R7J({ZKth`%XL$*9DP@EHX=)GXszxxrhfmq3^6RDGHMkL?j)yyrTp;#t(g z7^8EWBvG*t`7ND@X@|8QFZXggrWQz52oS|#=y3=EYbQ!KSO*D#gJ3mn5(%u8CN-B8 z#ibRDFm0i#k!M$$CakI|G8e0BqHrOrdt|z*o3gv-k^$;&NwN|Pp(t^(9SO52?a(Io zfh4+Ufb)Vv+ORPU7B9>sP?~3AFzXK?v|cKpI2|Jitau4YO0mx6g2y>6Us8#ZHyo3& zuScVmbgPkSOTO!CzWM+i0+F`rX|C#-#Phv zT%$rYa@R$7zGf%9FwGq!3N2G7)r`$jwibp0CvTZ%+3+@7I?ZB9&1u}e;u&#x;vyjx zDBudmB*(7Hq{E5_QV0fZ_A7jb(&yO@_^(>++nv|bZjJY7Smc;jS1@|4_rmXeBx_Axe=SJcSOA1=^Y6Ipw^4} zwLE6kac#c*W}|`v=W;HBYb3|;9FO}XzhdR(>ER#%-cA@zkO*jIyf!x*Qwh zuD-$}tGYXax7w5l_gP0pm7kh1D2CHy`+DRYYMbOyg9K4?eByk0f)DBe*7XSw{C4GE z?Ru>P49^VK(K{$7l|#dq9sNc}B)Q(O&3Dq_##s#y@d^;pa*E}5dUl1e@qD2dGQt%-DET!$2 z?ZcL;FsDQ}*fnb7FkT|pHru<+$}`@P8YF}=EXy<#Lbm=?>wP05L?I%CW`=Ro#tWp# z#MCMwRPUW-P1uAXG~QB{I}~{Tpfn-~V!2vfY$vL)+!QDX4t5D=Qz&$_QEJZXSbx`N znXdg1ZmTud>b|yZKKAWJ$M&S>@+;m~c4Zfp63O>ZR#9Ann^qLofO$FS1{F8E#BN`K zk-BH6kI*Iy-MHE{ zsQ#*=Z^{nv@8FQ1OYG7G1!lYk_}7PRbZbEL!A00VtGeQC50tw`taey(DV{augWJh`6EQ}1Yh zKrK(|$jV`vl|bC;wY1Owuf@AFFqa53AuXZ$A+&zKw3de74G07<1_%ZU4iOIz1_m7; z4h8`Vj1Di10S1r(iVrh|1_V0<2n37>iUa@v0sxE=hz1d{v#u(#ueY|dxwpH%x3IFc zy{^BsvAVdikOrL21kTPo2%^)~)IWvS+o99}g$Mzq1`>?XsGJbz576l6?d+U{&Wx$5 z2MPy_`OOb1nXfV(0_Xq%0s$}#3g|Z|lPN+5U{or2N|6J81z|`;;6VhXLIOrnintKm zIz<5gL0V}*rNfKN9FBDPkI~4HF>SVd8IUC+pDlaxgk(>Z(W6F5DILXB=?@r9qbgOj zi4(^|C>=O(5lNB%26zuxg+xl$sDO3hbRNw&$-sdGZ(-TI*kRHkOQf7N)cJImt&0#z z!O(R`m`+WkL=6)5?S~=+GsYT?kjz*wV3#ci^UG_q;mn{di#|#E!46K=vKb_VEww>W z;KUKokOBdutOvAuU^$OoZ+E31d=ohchBKJ96(mreV7Wd<_#j1pn3#|Q6)FaSTlr!o zxYaESsaSq{Q6_K@Wg<`!u434uHzn>|DKsWfp8;{!pKG(G%>VZBcav=ntrOBZ0Sw~I zQi5gElvQZS^9=+dz@(J|9zis-BUu@ojEF9Z?H*u1hDpx3d+dL}*Ewtem^TzV>uRi&_pfGkrz;C6=A0-#Q_ z7FsxBL13ZuO^#S`qV7cN_B<=PY%OD#z0o9O0FWv6Tndl#G4{zUk3l4Gm4|2fwne0t)=aaKh^pZqc7?)g|#t6Gu#G2cv?*$qYgl5<~zq+^H4H%#d9F zb)M8`A_7(Y6b>qZL>Xl>dBI=T!9L_Q`shHj)^&giD4{3OD}_w*$@p`Thp~1rOk=Ti zI)P$TO%1`-Owu-_{^5!~2vkul!p1MKzlkTYjiB^ts3_50n^0I5n})EhKCI$qA6q zU;`yODGL%uK^rsHqapz+P(VC6K-sbufd&$3ISD8MDr*;n17Zy)u!@;84it@&B}+E#R*zI00u#@++!3`8*9aog)Gz<9@`?r;hZB$NMg|;Xx2DG>Z1d2>EJ#9V=hN< zM{;!;l2U%SjI8J+ViE9>Jf_(`&~XAYa%mlAytEA2kqsuf2tq7AP=W*Wb4Luz5~ z`qcG-2q=mlx)4Aia+0a2LF5qM*+DiSBGZe3$|wn>*iKw2t62JrHH*%E$zyoAz&h- zdfkPpwd%VKDB_2;;>1tV8IY%(wOLGo<3Iv7STKdrO7;vQnFtA&e!>Nel>rTp z$m9T31t&1n2%%_0;@N1h(NLt#A4KyPkq`psBo}=KY5GB+h9&VXFI|+noHG!Wm{Dhf zY}%s)@}coDZpc6Y7)XVG7kgG@@|S zXUXgf9Qzg}6|_YO3^JLV<<#W^!s{765}<-1qmhCEan7i)b6ep;!Z|uwPfy@DnC}3M z8XC#pd!rFlsosZI{ToVQa3~WPgzX}z{BBDlpwz!i5LhV2q*afC3)`t~i+9d5gqua- z68br!5>r&m@)*uEH#((JwFQAqksli+=TbL_X|_&&z2GVk((jblqiJTU*qq;RFrA zgKKej_u|Fftypn)D5W6~T!Onh#oda#7k76k1&Wl)=I|c*c>ct?=9**7=SI&Gur$JB zCuWI;TCF=*_I&-BzX&%Uh+1Cr{z}sv(SUEp;JV*(H`EZv1(qkfq4ljrwOjq>3 zCA4V4OVIW>r6@ntchSv^D~=W+2e7jpO3hD91kRcjpQNz8)R&8Z1PC{m;*Yov5q@VB z;9S}@O?@4^Zk4j_8W)Aes&uzmMT}pX2P+*JeSgDQqX2_x-I93e3M~kd^y;G#(65?p zyUv;6k+&fwF3GX=HNp+j5<8BTdS>cZ2R}Y*az)XWbusxc6??y8?1t3frp zJke!xLmbC(ca>bKonhFqY8X#iBv(f@v<>1yrCs@2%GWagSb&s(Mmo3c-YxbFy@8J< zwn>We3l3=uMS8Ck41Zh$>a{~Tfxu68I|6ru6u0*${+DPUUw230R<>0wl+FvNZL4FLV=Fw~jbNa{_XyXUs_9rp7HLfD0 zYGcAIP~<5DIy3pDWsWBm>F6L0eS?JtEfYIr#m-U(!k?vT4fb2fydBCX&F{m5Wk!XSO-k*qomP4Lg z!bjZS7r4GP2BVEK_LjtPC-YOjUQ9lzCo#T=R)=}1!f<02Agza3iGoHCOHQM!Ms25> zCrZxdqzN`?5q@C$3%}=WsA|Kb9^Y0oykXPMWFr@Pj%3bZ-J+=1&Vq0VbK?^u?#gF)XQIE zDI-L2S@B;d;%BqAc=5w&R0Z3!2OGAh-gH8_iLT}-LB45U3v`6t3I zv`>w)f=hlBuX_fYmiG49%SZm?X=#2*TSZHI@hf;EASt(59y_B}@VYynVgoAi=!vg2$zU^*gyj98;@TR3`ls z9{H>f#}y28T$nuzZc4NY=m{Sy0je3^>gUAFD2ZeX_{Zq@)Y>4c5fFY%jDcK80U$9P z5z}`j14$EmEL4Ir3Ugpa2RTTg@JMawFM~}^qKyXH^7^I8E{24tHSkjw*>SUC#NH!+ek-vROBN||a?LVgn8mGqV20vGsiTcy0 zGXjy3y|Zr}ZAh{4!EZ|dc_$4ZI37@9(*K|I|U{q_`$?H|%$+aM1NW5rhymzrzd}#Sr zw8AARQ!Pt)K}7kKC5F==Saa>mPtk(9KrXm3+~y~Ih9qZJ+nDyT0F6J=z8L)U>~-Gm zCMKh(tene@&vLAVAPd6hK&Xp%6nyrgK4L~H$rkFTPi(p;o@oTkBmrpVn>f0gX0+*- z9>p7VD63V9MeupqoSG2hNp(p0LXI`8Ctv>TXN!>&%5SJNVaR0vLP|K$!!6Bm8x7bK zR_zLlsb@)>zQ~w1#_Fg{Ep0DRa4dW4Sa;0!aWuS4+=`)d7&Lm0#Tnb?lhel59Zcm@ zsxgQ$P4`0Sc*~$FVppIT9??j0vq-Wto_>5#;TfGWw3?4#w{9*hn3Zu&Lqv-%8glv@ zEN^N_58_GIk>G=sN*V+C#RAb;ZcW*ZJ zer)gEZ0!Bh#4**~ND&}x&kGjR%R9_WkYh9Riw-79uCMx%FB=+dNUFy!-f|erSQuS% z9*(fDRWkwAlg4^RgBmh>@c~(SGOWF%eP9|O{4~~AoQlm>ZLga4J!U{*Ab%J%^?29$xASg4SCk1o%c&HdaR1KcymuIu-9~WYM@(b ztBHHcuaqwH$Tvi8lg-kk1*L+>cQUh`PAH(6JxZ&TF)%s)K?PfveB}ao$c%Z48Ec_B zxRh0v++PA`wu}hslV7V7kBtwcW!yKx^@>`UuE{3B-)YarV3lyU(;xdhdFW!5B zy!YCA@$1tE;`SYDxN23S!Wa$Igg8GbEUDSYUB8w65F?2g7;u(p|MUF0+0QY>K*{S0 z0hJg(;UJ-3AZ36IARg+&j>q}z#VxR@KfAVrp ziPl1l@CHG!35aZgdg-A&*{8*ZlGwOA^$u!u0!(u3#X(u93ifQ@7XhDA&^@*W=kt1xMGjs5Zjy z0yAfDj15H+|6x^N1NafXW`Y~_=HwaMvQ;-5E#HL`;y0gKH+!}>d;e|rQ*8}OZVj7n zjjEG#F6AIHwyHh0X8&!?Q*AFuZVz%60vd2u)wjDpt(`aEY)NkIa;|TDg6vD~Ac40Y zm$mE}DO!LKO-C&Tq+J!N$$fraHcOw!X>kqyOegz9BK54D#f9FQsb|SOw4DX+?J1Dk z+)D-X^ed?AIaN!yP3XgpIoZQK|!00-{HL>5xLk4h4w8`DfGa+Rn#@e zk#MZQ17B_>vf$AaN$^?|0_b<;>_6-|48yX9xy({)#R*Hz+OqfEl(^J+%Zl-|u7?f{{NZ{+Go!|8#U}66L?H=R%dQ z&h#`k=V==6-h}Z9_QFH!_|ad?X91FFQk09D@B0@)oR2trQ#0ayidBw@;0pPEohxB(Mc|jlWRi~ssqd)b|kdR1q1=HBu!}# z-M&EHG?$3K5JL*>3q^5(!JZlP{|LF z{;>9sgaAg)WGJU!GZzRUE})R~!@SgkkOpVOZTnuq_x+dSwS@0PlgE=0U#@Sz)8S*( z($J9lUYAHS*v&Q*SVbamSbtpOabtrpz%X<$%4_-u9v%jcO^8oSPGZDhM8`$go`J$O85 z8p3e!=xQ>s*ZM&iysRpPs=)!ku#by!J-x?Lyy@8iu3~=P$AY`tbv zMyMlhe3kVszSuFTJt@q(R3beAk-4N{BhuItPx;Dd)P=e(Q*ozzY9MT1Jsn~)#u*)I z=@vZ6Ew$x+eM+x~{YZoOC~2@`m0TS1k4iZbFZg+u>#ZPMchDl!Rv8FNyvpu@CKWXOZQq=|1Uk>4zfT|uU7HtP!!y^Ijf6{;$iBe_t$b1ArF z=Dqjis8JrZ&$)8`lC<|yj4L+V+4vOvPmC%+siLWL_JgpwPtu@-X4yXQfmPNFbBn!%4iZomJys|DCP)_ueLzH zgM*qQT{+dk293(4kT6U2qF39xh{~ba^zEIsw-<&MQM))qPX%4-PJyutzeYT>z+GpZ z0q{6zOvaV8o5L8A=Ay$aR7!L#qZ@-**tKg@_EPOV`^6d3)Y49qad}1LA*+yZ28TAV4up<2vt+vN&rOTQODn6_)J`(|$vxqxC>J zi6_Zc}#u$HH5Neqd$gPRvRQW@5t_QF*n}lYnrt{ytcyxOnDXEfjv9b{g!VRsh=| z$a!Q$mK`_JTvfpf!&DwZlfVMVL)r)bReg6&Tza!v4r%v59ny~FgYH(^C>YLH%5CGp zS>$+Qv_T1G5t~Ikvi8(|zNL|>zq69L{OU*6bjb9x6++a;$@XoLx$(Equ=IZp2$H3s zw!CObUwDw^teCsl%tqPqmn#$EBbwNir%ybCo}f~|dhOv9Fq_I@s&?v6v6m9PZt8{J ze8R!cL+k68G=$YLdYp+O7}?)q%HKWQ*ajEh=w$&eM!&Cz8*nYK!zw2TNSRw)&9vyoy3)wl%ZmKTsL!lEKiVxuIt_L)mNb0iyM zZ7sLWf2`q;eCJ4{J?c4B9H^>n#(7;BZzKy3kWC8(-AfGKjRdWX&BdP)6v(R5zbO3u zJ!kBQOsd2=djI?UYxM(um_%oGfSnhH+#R9{V5-V+kS9O+=^tn;$S0h2~TjWQ1$aRp+{!5A^K%oz8cgba}9@5lKiV3;|N?-nk zw*KB55gALixZL{IoVxram~fspN~B&oaAuFJdtz@uMZO`9XoX4`l_o+!p;G}U0Ht!_ z?L?9r6n3^R!Cj!W$c%E$a5F9E#?~R8a46%wGmWn~)UHN!5%C^1+V=+!+Kj8P(F?!9=lgA$4m3sB|M+}gxiB$W@3Wrr9a)}UqKlhgHCcBuce_`ys1VyS)Ske1DADNCO zyU2e-mv*Sy!jOc$ppXzGv}n#(*Tp*hN_rF0p$alG2^3*gEaSojlp!Ug*Uc!63BBWD z{3dH+isejxq+n%-aW(Ej=PjSW){M%VHUE`pw`G(+>1V60jKp=LaZWf2i$PA-FnG$E zE?IeK(nmI{M)ORo%233Os!`1;_rIZp&izTE*uSFNPh~M7p$qece>oB#+uAv=E6p0< z#r?xtbyifjp;D?S_&rVB;WoS!kLr&-;hQw3CROkjD9>qiUdS)ir#_H_co3x?;q;cjkd-+UvlGL_UDrlYt1SEiui9l zPJmwZsvo)>kJ_x{(?0RWl@J_0wzGn-Yt}1VE^%_UQt3-z!k>I@=(Q(fXT^?U-I9kR zw=0*)$qw`IbLaoWJFePb99bk9!Q*##zH}Gh4m(Ki)NlvAbnntT160B)OZ1a8{vBG) z-VtshL{Lz$_L?M0;GFzgEEwTJyINRDVcbQ+q>X48ch=kqw?RE8pvPi<%P-V+D}Q>H@L58f!-+d}wFXYDDk1_QYU<-L3qzI~&teW1&g$F+L^ z$g|k(DdM`NYQmw~zx6dkBJeJ~A%KjKPA~D3flv5WF9bd$pGCh>Tln)U7`~T~Q52(h zOnT6yIEXn1&H96X?G6^FEblKKpd<@SvZ#!<0#% zAd>`k57L2ZB2wS(;CiI+{Z+1iUP5K*!sPrvSQV@EYBPvus@p#J^wGN| zAzaQb)^JL}EVk!~6RoI5HZv5plyE$vZz;jf~=$_l>|sZoRUKf6xOWVM)(n z0Siq5?kvhw{#07~!1xNBg8ulau)sP&6LedrffR4`C5ahlq|U|BZ0NzW^339)mL*DJ@&_1esWC8Xo$u0YA?Fzj zk)Hg>r~ZbAJTNM zN$^Jvg=aG|h>zURQ;1bNXv)X6fl#BpeO3d05Nmn6OJ9Wpi1qs{ zsb_o$HhKDpQg)aEfhN+&O?r3Xbq(wXf(~H3{i3l=qSIr)iShXJR<1IA zg{typ0^0a=+mdJnqOeN?GT0AZRMYKnu9P);OTvmG^*(qLCjQKTDqCF-;j@>LfNzRN zo>@W6MGhn%OTzhQlalN|uoOR6lvKqs;0st*#-gW5wlpf?tq_nkRbDS@bOZ|F&lA>X zVYfdMX2#@f(IEBO=Gc4ZNDOdxD>Frn;0MFFN-P;X$r-%aBrimRQaqTh1H4-YF+U;W zI+T#I8*z6#k#?Tu_LA2~r1lA6E zASx~YLSuhuL>vk`ej&z-CB(!G?XEEB$S8@H7Z(XXySUQfS0y-!7A-R;rK=I`mjmgS z#)53T_zMDsESz;GmD3_q3|;FAd6DQx-dkV2o+48{2vb}?adALkFaZ@wM)_#f$1IwL zw4crK15stCg;Loq%jYgbPhv9d{38IOQ7xYVXfTHggHBGXTsy~cws}WND^E6Szn8O9 z_3KM9H8dVgoNx3MmVjA)W2-|XW@`XgUkiRCY8hGKwn<=h;<~&_-A&RVq}{*~-EeQx z@iAPHTFls{J$qh+GU>Miguf~S-1M`wEp|ivZ!~re85aILQ1Rp~?63|mH0(hdKn=i} z_N~sisSP-Y=(By%ZJTUn_r-Ns!9-E637h}YpAC@y4V1pPs>|+B- zS9AA^d-q?$(39i}jGD*hnPm)HjnXkUROOE+Mb^tIkE<(VTd-EU&HMH~glq(t6(P-_ z6UCrtUW*wI-H3jdZm$-9zs_UCEyFRRPwqa2y(^!od|nZ53PF!;VH#)v5ZgsMX9pj3 zw9x{W7e7;1M@Tg`;!P1`(eYAYRj;S9R#6as^o{(aqf#=A!?M+8c|gzgrEFSXw;Q5}9Ss&`Y_@~g4u!}&+;E){{vgvd0@w2m?= za`x@&O1{DufNmQ{p%|%-b6HwS`G?E*+|n8jxucA2?a(pi}ED%qmk^OieR&nE-oj(y6&41Ek=O)pwGnjsV2Oo zH#!tHBt9?=0eg9!_bgYj_bgm3Q_2(|+no6xle_K#%&A(5o|as|96N};0lTQ*rM;%7 z$z`gK9mEfyn9UAKiZCqSFcY(>t@DvVPoX{M<4sYeOy77%h|JCBQD=WeNCY3rP3 zQb2SK(8igEyc@fk8pY7&tGsdz#;Uyes{o~(L#IiR(1v3@XvBXUKlRL^7jIgO!^^rO zq&Iu<(75FHk|QpmS7EOi#4`8dl1RkEA1VS!Z2*V_gN^FKCPcrKeER7qd^e;hLH0{z zN+Eb*GWN}{1~Qh~p7^t2yKhATCd|5Rf`UdFy_S|O`F z5vxq`<;;m}wa`u~j?Pj?IFk)Y2fQhWQ>ECMtJDg%8`QRa!5r(MyQBJLhLNA!TX?J3 zb|IQ9al5;Zqo?0x;VWfNCuLfi>lA8dPy5w6Da}_HPw({$(zk-orCti24VuDSl(CzB+{fA5Z#wl4NqbcXG1<2#H= zv%@6t{ib+6ho?khtbFaHMDx!Vj0^op8nY&0+rFVVeP*z>4(^VM8^WXQzTT-J_f!oE5h5a?Bi<0w?{Af zee1ABwE{{$9F8g?=poq2C=$%_n35>Mhug6NdGp5#)uxWfUohL<@-AK*U1c}B?UX5SqtVPv6wQ+ z4V}vx1CtMJoCha@6dG1JH`j9)#o%;4@IU8bTYHbAVIox`ui^$gs&ASDzh2zGFK*%n zAC4-`oi!+aE~TxxekXlx=)_bOhP5UmhnyqU_NYFX+`E`M&P5^E1ctG^QhOSYW_!Le5|?L#vZV zby8Q7YKD&{OsnU5qzm(HCC)b$jg;T5PGw-6&^l_5AC^OUn5{(}x_uI~u`oWz8Jvk_V$&sOv;jgca-p=-t$imgg40JSfM$)mN zfv;m=M*Jd1zS-Hs!>pTITqFP*@bTA5#uLszZZsY}jv#y$)R*3mAgjO90#4tWwU(rg zzzD~E#?TUr{#X>;BFTU@Vug+)nNXC-!l-o<<7&pK3@)2NEY{}oT8NM{n{GMZ>Vy`= zqv`5dYm?C@Lu`NZw4qGPicc7I=9mVCPKM_mMwa^#xmJ^YA0K@6# z(UwtBbe+M5YshGg4{I^FdIql#m&uAZ+#oeW82V}E5!u`o@p3cvOE>yzh;+s*0DGZe z^t8tJoAP8HJvOB{nO3smwe$j?5`ah!blotlfgiG6= zV%|V{J;x^RFBv$M2+X!YyQ)-R>UJBsQ=M|BoyP%6765I8mf2JC4}<(@Uv&4|#)TLVTuY(H4T!;+gQB1*AwVd>qoq$B;><%!GpNgBc!2~udI0)mUHV{>ga$HBq zVpcg``0$1+$AM}t;N!$-Vp^xmR#73w!4{REzzEJCUu7!>$aHe4y=PSerg{o2)C9~1 z`)oJqcr!G`Rq>6L`kxGXOwQ=C$~9GGGRp0PlPWE~+w%L%rk^nnH7T=BA*?vTM8pzg z6@6ko%G5NuY0xWdj91JN<(4}?wR~2d_ zx8&ZNWsX*rOFB4WR_j0c_(6&62AxL+cZ6zC`mkr*LzHjHFCHCu<{r2bv2NdNP*;-g z@F#7nq|7`-e!I?SqwOy^be z6`A?KBzWhcE5Y^w6Md@$*+{p4^rlo*<;){!a40Ll!oE89CL!>hL~&u&QzJiFOHhg*rD^no#^1q+)0M&16u9!LB-qW$#`6vGJZ6hUR;!6 zz<3a58&*`#tb{^vt;kD`b+uQ9Rw=(Y;Skx8%Mw}hDF?ML;z6o_`|w3M$ezA|z@jw2BmS-#(w zM?3n=W3)zn?mFl%lhEp3WU5~8|j4m$r zs+$`dk8K?@wQeu|Q=2=#AKUw}>pUV=w+_e+JDMcwyfUV?PQ;!%=i}>qDpa>GOrE;d zX6pRfr?#(yp1P~4I0D90ckZ&Edd}4AgI51+A2mIFy@{_6K2_cQz46rhYoCz0) zLsGwg>>i|xKq4Xh)sLppfD4J+Lu1bz!1KF-QK?yxsEG`c_BMo@7a9UjS5c_}jZt!H z2lzQ1!z@ybF}l+SMBN=DoR2q=m{%~A)qnxP@#GBOh+d?6xnlLLSFQH2F(ds z7;d9n932-X_aa}&C6C31*4M_R+L}^ku0Dv1ub0l&*5RXCBBT7S|050X3aNHlBzE%W zP@7Z>RloL9tyyW&5bnaPHRXl=b#Zi|C`#WBWh|GWXDMi8lx?x@piT~G^Pj?SYA&X{PA z#E`#O(#y%qF*W#!nKq`nmjY2>QPRK+@4e zJD`%?ZPa!lS1x(~@2SZD&C&L)gctX1+nes9Mk59N$Ox&GSNH?u!UG<57Krbv4!)es zXuRaPszMbU{@g&R4?Ih$YdjZIA9%f)@S&kS`YhcPFUj{;m@4H#EXM3|R*Py3BZGD9)b1OOnuAD~NK{=V9D5|32Mq|`pf6fp1n$rymO2Xf6ejVWe9NJrzER8*ik zSZ#nTCMz0zjZ^U|VPchuH>ELMm2n%DLgfEXgeLhvBD5=z;(v?KB>z{0{-0c3d_p23 zDLEPxhLn<-m7SBDmyZSlrePHq78ggOpu^HgFi|3aFr+d&LQ~CD~58%h= z-+%5;Gui(l33V|v6b{Ipt3WGoR+CWcbE>3>9M-D)$| z2J)#49-GPB35-Z=N>Puq{;HJI+1$4uksg$NDz%H0!q_;oQ_mMlG;?HqReY=UtBgvV zYO~WWSH8UO*4VBZ!UJXqkd5>={{Ka2YK{(`{h^45^6hXrS!~L9+Mj0ZGF}>!>AMCI z!J>TjGg-W!i6z&)&u1#+a<1dDTQ61$-_&7pVvF^sti^wf|3Ey9Njq>zet&B#lIeFL3AN;+V6-Lf!o|CxT@@{-f zuwByvF%7Dne#KbsrvxY<*At8-W)I7H_O5p;g}vfRJWi*} zHLj6PBJ$Lg#*S1FFu|nSWeY694w~_$LvjiWEM7A}C`fRPCJG0&Nw5njXgTAX(zGY# zi`9MP*1GZ^P${ZffzBfHd;0jS$omiYH0H*vq)fk27Yz>v%!=iBKE13*PW<=pagoA9 z1`I*q7M*^<{Az_oU?vUF;En5L`rw;G9d?0-H@7>y_;$RZAH8V`Z(E)oXt8JOGk7=+ zz&s*thgP^%%22tXRmv>-AjBzMQv7+8D3&}=(BidI(09taFqHuC+X*1LRVFf)MuWrn zU=bF9Lah^LycqUTz9|hLbm~kRg;gmOho!j;DUb#=cJmv4N{2ip&9@Mh)L4}A%#qQ! zx{q7P1vol*q7?tp6hAoOARmP?kj0Ov6( zjQM03S!z7=V95vgX0IQBM^i$5%#uM_%8R<2l8br0_D;|X^Cjd<_e6!|7w)9Q zg5#n8)hv_##$ODX51%&CS|-J)jP~Cg+9pwu20acyT&XEf_`U{!D1ObpwX>p5z-wUy zq3or)gj!Jk0fmn1yK^2fln8L+K}k~;f`y>AZ>g9;2KwC0h#shTUkCAz(8OZSqazxL zLJ=9Y)Ivx@Xtq%MS4@@#lWX}xWmm0elWNUkh*p&uTcap$WmTaF!u*3nOqiEPJs&qV zlo8caG-vX$|qzfG4NU*=dK!AKUfrHffLP-VO8HH^(0-!=LM{J+M^12{o z`18;aPu96G)mdRgZ4VUP+8>DAzz=izc8n_Du+oRBjpB|;C*Zp`+czPb4*L*m`IU9G zzb>(e>s7uMG8A2YmPTqfV?+t^7succN~yNl-K8NAPxRb}`Nseo*sitA-H&+Su zQcojWW__c(V9e%T|HUi?lhpC8Gb(=`2&?dgrB#&E=6Vo0=$O%QcaYeE5)bLg`Tai! z5<{#@?r0d|112>lwM;;N4>mCh(^!zIT2n&f1wrU{v;Lj#wnUOd$0D!Z%mHIQmCvM# z`YxZJ7}7WsKcHPOFcv+@!&b_IXw$Zj+ah)Ql}Wll(-!_Y?7M1CXeE~=SPCE6#Qi7h zPyyy|a%#oxDfBXu@0SaR_1UB_)cSiNY23=ISnox_gGp|Ij*o5fqbgCFebk@WSR(z3 z(Z}|_P`mD%Zf!_4XsD*MsC_pfx;)S>QAD>>=-*5gHAKfDtk0mntvqxxoa-`bXjN^r zUuHmRt1+tU%H7_z-W&H&fufq4s9)H=Y)SnyC+5o=;WZ7%BBRT2BUu;sR7Rh2Q4v>N zmoUr1^}Hk*uhaB%G^oCcQCb8dSW#qT6qcqE?KS@9##(Q89_}(WIDYf|@IU_s6oPvR zR<>SESX1`j4L*mH9{nr9Ci(QcS`EtJpEIF-N6vdpR)hw> z_eyO9?)+$aLNuxT_;}tOnu{Lr(oLBh#r`Dz3;d&yGx_7~Q5YMvth#+6^TrZ-xa#N@ zkUt&f5tf=n?8( z^BC#ZBuTN|?W>3Xy8za3b?RNDK0XWjPDrB&}+&%if&)KoqM<=zti z+M&91{*QA0$gt1E-tzPIr0J;yf$|ppr^+M&pC9M~v&V$P_+f6z1j0$eEJ_r=TF6$8 zR2dz}1P2{N`;GqSik%Qi6Ft62b{Yn=?lhtGN<4}Z_*~?HbF%c}m(MsQ5%j?@6!zf3I z>6T=Kv|R*@#Ekuc8ps$C@!lI8kmX{d4!xVPZp!3lrp63a&OVHq}VJV%6jw8v_*t8Q*p6bgh9}c;tZ*) zOqn4~(H%85{V=+%GS)zeit{vtIr%N1LBoz&kXJe^%o3o3&drmd7|EmlmN9}^SQQIR zS7!*e#9~8g@HSLP)#~^~*5AQa-2Uxh=7$Im<4RkQW`^9+Q^*;5;+{}KxA12<2NFd= zalnBRx}gT|JXougNz7Wm`$2w;RC%$<&B+U+q2G)VZVs6Tn|sCC+5*(!F^l&e)8%g? z1wd)MAgxS`71?-a+T^Zd54z}hR%tx*lhB=t&%jCseYgoJnkwUnVda8f*u6mzqqb_*ptuBcV5e-afZ7W(Gr3tS?t!}%tya#7sX_^|Dq1S`+ zpD@?2ho8fh-r#_QT9Ror?@jq4yzV}j#|*h~p-B=*E5|)*TlvIZtY~uUd*Y2rKEpHU z9qm$iL8NC%?3;%0L90ox-ESu zP`$?-kS7^T77aWV*NsnztgE6yh63;7h;w*GtezK*eU4>aI^qn84E`#F`I90GlNwwh zOXe)+_%6$ST}h}u36oTUwJbBsbg-e(xnDIi2C}*@A}6!7y6TS;i+NxKlIe08D8&h6 zaMD=Bq$0aNWW@dCqJIvuPq)50l8rG&?jlM~I=37>F8H3MOAXK3DsjkpP99hj-4#~p zh5|%*)F+exjBsTNMjiAG*UFz<)LJ?nKb=AS#_gj@Z4TlGN7gnYCNt^QVwr}E0-`H- z5njHkV!)T2(TQ;C2F&--B@!8NXgsQ7g{G_?>Ef^XIpa4P#1I0458vqXBX1;;2DRx# z`Dez%Z;0U{08hMrkMDY!>=>$e0P`rVf=EkAwCZ@VW2i|?GHUjF$9Evq590T$Ss}b} zKaFUIi6NOSm;h@J6h+lq%UJhSQclZa7ZzZ1XTf@lC1B8{ij#G`6S z&&ss(EoPhPqxaj~3w1o2qTxfQc3aMtA$1Q(;=NMbcl5BXu~LZRIa+S-j47f`p$Oa9C%sd5?DmDBiZ@^ZiTwj-%i>W6N7Yf*@17|jpb~h?t)Op%R;bl^_sWdW} zHp;*%?lPO|vnviOLbx!$aAG#sk$+*!;kadX`{mFiX4+&&P)okq`1Z050gD}`^Dz%cyj9#N&%m@*FSa!l(kQ~$q(;%El2eZhZc$KevCCf6%>RDY{-{Tv^T}-a!1V8aGqq^Q=iVyL!IJe} zC&b{6#It+G6}4*E?!JN7znj_A2IhX8Q1O~|Ld1C8FMYddHm#ch!^JZ>qMT+ z>Brmuwd|y~6sS)YNlun(Do1*DCo z#!giHy3y%8B^Nx>eQ)Yn|5X2*siOF)L9Xdx_32UPX;#qmSU>cod+N9-YU+=oaAbW7 zA^V3m>Q$^MZSag-_e`=u*@EQx%xeG4V*fO?=FA#&X4z_rHWz?Z0!SWtO4%A%`=hR>EZvqeij;sU@`T93W;2;%fyEIFR@Z z2-7;tl?zA^0NO)0-Z%i6+f+&fAvC}Yl#8@yfgT4E02Y}k0GBM-ZiXVP0Y>1!*SME) zSs-}pE666G&b@>i0Gu`eP6{9lfU$=(!W1e_3YFyyaFctP*%WM+1-fu#ShXy{u&Ws2 zIVks<6dbz>J^=mUS_5I%3N+U8>F09;*9t3^VXdz~o1o8`3qdmrbXg$D%~^R_3W%^Q zgncbkxt4zbF3+-I+nnv*0O{Z<>RIy)WMJSgz>HdWJ_FDlEHJl%VX|-Ff7hAGl);U) zW~n&_jSbpLK#vu+23@v4Sidr}!Bx4$Oa?K_zI`_U;JM#!{@vJZ0eFaujO6*ZGxPMa zuQdSh=?0Y%g-W;;G=2T8y#^QqY=UP&bQYVgSs>!y8(;c?ulJUzq`*AHSEqDqKLY^F zk4+ZjtN;2bLRiqf8499;l65doE4#`Ie=Vc2$VhyJ=6S{Zc#EC>E<@n?{}k=KxOumW z?2sEwC%cFsgUA{{+6+K-_(tsSLWSufrKPd@FNOCLz#~nu`U)7u8E?FqNyfhonpq*w z?Arfbww?iA|J{h4S+NWJAh@~q-xpBgz)Diw3gIg??}hDWliCQsCxQoYl2@E=FA3AH zA~pbai%sD6s!-+d1bW{#Xseul{Vq2JhT1BscvW2SUeW@5AO%XPcyD$9v}|mpa4#CV zEFcJgylikba{aprbonnu>Ha!mW?|#+y5aT@Q=20)SY;0s|? zn9I8xmDDj`*N^`$gLu9<%>e9_H$)BazfBeCgIQG2oOJfqx#SkoVy+HnarWgS;_WAf z>)R$SV5Ahq+2A8ydML^L86z4xPWgbNTD?CHi-k18*c}7QCfEMpAP!Mav?$ zzwmzAESm)h9nMnyrC1_&hu*@LkxR_7`!u-y?SUoFe_uV#K-%w?__G(JE_~Dn%Re+$ zgj*?C*_8wJz3@R$jLVWU{jzWcK!5mdrvgMzTur$>mN7iraxlw$|5IVbtCE@hqu8~q z>tC>O9~trMLSH{FNv-o#0?RI6E?4|O1#U?^_|)ujPC@3b3vz#6{JQ>%`?c}oALJ{) z%*=i*aBug1U0&k;68UXwPaS6Q_v=6fsFwGw-p&7}HI~R42YOfE;Wq%pzpph?UlFYr zn>^pedrA`rd>niy@a;d)mDlb;CjfGFj!O}N-0<1>cJgPF!~7MM%olxnc<%LuFY4Rz z1F!lRc3Wn?D^^foQb!c2-M8O1-1s^}kc(bEf@)3pd9W|^7$1dG|AtLtwz-oD%1DyAL~ zgpI%<{2&MqX=HsR&Kb%?6pqr>&m48lQADw8=)7Shd&#r2*t;q*RFmoyYA`XL!)48IEg21&o zW3Z&gypHP{7(#=Q+`$dii?y;PZ+-ikZQ+FM@wj?1E(C0Ir~=S7(L<7lU^Rp zIdFkSbdv}pV(D~`qOb{6h?gU?3E$3k5QgVmiEqIkX@xM~Uj;ulJ+WhvX0Z~6)N4kC z%->0x{J;2_%<0t?_-Ns+1g0#=bSjCe&1V?EDNWWcm}(*y4Scfc4DJUic~W3zDVh9* zIShv%NLQUzmTVomN<3ME@MZ;M_(>_=&eo#n>ASLPJo2061f;{7Pu9d{sVnu7K)jlq zoF)$psTQ8E$x-2e!Rg*pud8%=-l_@UQ^#@UmPu}A*AKCS z--HgnPX)=bTuH38pamLj1Uu}s48tFtoES#Whkd6LQKq-1NS^8DKXOP8pd`>hl#)4O z{}J)^u+syhx6!{fYvHsoJQe=lX0q`k6;j2;uT1Dz%~zv7bb_Y*S#8}`fATGzTr91i zfM~xf2^UWSgbp>yZKlkIU?tu3`w!Kn2mnM$s(8VAN(1Z2mm-KA0!!e@S~pec!z=`{ zFq^}95_Ac9V6j9hpe3i@#HGN-x6UtpDdESx@ai`J3 z{cT+5^xaQ1^_GhFqpnMJ7)oo1e&+E|=#6p$d+}TIJekv3Fp_K$-IQ7yWh$}zwp%u} zsS&`vsHjQ;QEO37k{jjLLM{3BGHhKsY zL~2`+Ivkli}B}vXzn#f?6N@yrqLD}f?ZaPxN)4vc8m;78w0x4rqUFTt&Y;EK@)I@K(>>H7RRpRbt+MO^HI-1 zuw0t%*4XNUz!ot316fk#J>Bs;m`W;psv%){W*!#3rVD22$S$dN@Sp8|Feb!am51(jQm=xjy!*i znX6GHa%$Z=mf1U8QQWh^vdm5fgs)eLgOjREYb{(ccav_>4FT=yLTn$NEpB{bHQUmR z=cjv3vq@ddf^L!$bx=3C--wZS#3#D4@6RlAX!XvZH$~s9ItzbgO7|zBnOl7HVGw(= zxjI>WO7>%$4P57H??le9Y;Mdnix}&2ryceF?&U~$n$E2LJ&nWS=fj3Y+97Gq-(Tv` z?{(R*1ia^ zSfbhf5|W{(GETY&P|MUR(049iG_HPW(|I|bx*1(cMVDchz4k2JN)#hwdY*=wi`OSz zFT~gn1oX+iT$l~guHWn7@TA_IaA96b{vb(N$`xYuzzH^1Wf_D|@Jl^?Ut8bP#p!ef zl_t*a5!$HV_f zL(>#umDM!R#9x>X+w}14gQsb6)d~*ct@!MO%AM$75<|XUO_&J^QA4)cKL}qy`)Gin z6Bn8XB?^ikwfwWJX3M0{5m7iXR)DcOa!&_KG~ME(e<6WoQw<@XL-hJWQ!}N`vc3zw zzvdM3j6YTUUNb67nfKQArI^Q!d~5vycoi4Nt}Ls-tM8c78f`va?wCt#IMW4bVaIJA zay$sC#!XW_58G1u3##-I??O?0%^R z`FGqC5-?VO{6gmGsKL+vPz;sz;-DAw$-Z1^S->xxXI%05CB}Y#(5HxSZvJ9zOeIB%IB%y=1$&%H~kxf-*25MiEMz(i>imI{GQT- zD{TIX!f=3&9??#7n4+kdJt1qYVYLF`jRYRlmhXMx*q%ajhf`4%8*7Hf@P~C$+j5uC zN4x|220FD74TXHq>is(-{IAp*XxAC&FZtix^5->(?;DFBtGC_Qwx88ye19p>$tFf( zF6s}K;VUiQlhFj+egZ@`=+PFqXpbI*^2wnX-^hbu!)(w+>a;}leWHG6ieu-3^tmwl zZNBmO>DWWAbyxa&*_pjwA$+$rJANVR z^y1pv%TZKInukZ?x!xFGPfSuU=2HkrEee!IQq6Pl$!PR>Yk?|1mdAw>?ewgbgp?Te z({9k3*G42WrSc?bEALyOg(8DId?I>_{0Wycg7%W#`D}iB1_=2C@IiI5llUypQpV~t zdPNB=cv})JR};z}nUL@x*zTdAF;YHD>nuSsm>o$*9@j+c&?2dEp|nh_Ym6AG5f2C{ z$!gW(H8tTwNK%v!@$Z<-cOS(5T}|X6_-7;d$*N;11(?J8kKyS;YN_~m|og6af+@%=$D97_<>3Q9lYfr<2*<#lO!y}$*NPuH# z`3T@*&How;-X%&r2EgG)4#X)Zzhs5in$b591mh9ra7Jv0&dbG&Jg3Ar{;m=Of z2oq)vt7*dz>4u2XI;EPUmFC)x1w}nUWnzld_-mceGVVi~u|sQaWevWbc(jtuc%$vP zvLOS(AMAdayY)d7H75j=;Lyw8SL&K1au4n9s(LAbV0-0G5hEpBMaE4oc1)JR0*sQs zdK?OJS56+NP5NrUaczR{ZHED8L9P#<^>GiveB{;-tx^e6PDE%;Y48068wA_OQk`Gm zPf;1EqHw2{6=laeYe1NJj*OZa1_mjn`UIJWVpLjlWB zT%~UTW};>rtoDoD##yY)i~zpMlHteaALNZ3cfe|fX9_ytZw8w>vL}uAJaGL5VmVBy z<8UROK{c!rL`jAd=qf4-P|Re{+FmqL{pe?|ytEbg=+Fo|FTdFuz)h+?A|(|kv947Y zu7)MY$LH2VZS&X#;FaK%TQ$s8;Iq{hBtHAcaH9qs9(0y+9F3?IOK}!c8x^r0)vq&1 z_v|6)ohn$@!S>`RuaK|ox7j#K(B zOp?GZj%I(DnA*nN-TdAtPqupF6zbSmlE;jh&?ZoFJL)~Pk1;o2GqFR6IcRc=L`DwH zR?EwTQW;|{%<$utJ!-|zr6Fg*+Fj<7f^~w$DPN5|HMPLD!{$ErI&ZAY1!)s*CBVjq z1c$)hZ}{t1i#T9m{MI&Uf@!J-4H!R9dF%JOeax`M6CUh(etWJIUs&IUuVj7oxjG%o zU5o!fSt$i1P7(QQwsrrdR5aQC@I}t}H=P-T=>FmuZY(TU)tD(L8`|$Mo$6@d7<5Xq zWU`9t90EILaC&*leCv>2+{a4(7`)n;CH({Gp2~bXTsBW4)_yq=@E{OKk*g=&X9NO% z4tLU>zM9_hkSTS3&bYBU#w|BfO~>5ObLO&6NM{NRRaW&eB_=gb&m-A$&V;ks ztNeG*FQf81XFdPm-Yg3t5A6(V^KQfHZYw_(`O<*&Jsq*>MCzA3&%rfxhrqhm8~$wZ ztj_m!jEI*Vs+9cb>kv>W4o~F>LuHM(e^MC&$y1%k=`AgzzXy-CpU=#N zz9SnK9m*TBqL*#3QEX&0S0quP25y%l7kohmPdZD+zHNFT;Sb#6WMDyqK7M>5TPM%-c&;2G>j3&Gj@Jr{eKtLYG<-|f9D?#q zrd~U~UDzN3%AGl}M$yTQuHr{QP~Y6#(Wesa;)>RPjl-YrqIWKZQ+r%@@Um4=*Ae;M!eoEYVJ+b6XlCJ|DggfVX}q-daNWY~YMBD3V8p$rH%p(Y zX0<$NennLcU?ms(?xnyic%`YqGL-;Ywhk*1 z!lWbgrR!8u#e;S+MsA?`S4&^&<#B_^e{PiFuz7lRQjL!iE60qFXlb9y7q6_QGJaY09%hGD{~ zJM!d)L3pGBw?@fix}I+Vq;lbE%j&|`qP0_OBKP=x!`{^O-01zq*9}wg!@21hmnU%{ zf^SmRG^VvY2Xd;I9WCL^C~(zh{!+IqT%Q=??SU>0L7H5Ur6s`j!E1C5`hKyVU-l{| zT4HH{{+{Qo7(M!VhpMO|_$S)s&vt%OTAxesn+1_6C+nHJ?)}RfY}h|7#r*NxVPogj zcp*_6OxqUUWxJ&=RS0mqV|EFq``xCOZkj>QaqhQ~=01gsMjA6xS`ynYRRart z#=ctkyD2iurgeS#b)b`5w|2MCl#O0oV%!ta>xI&Z)3zKoyfOPa>0ZN!OSP?BeAt{a zyIyfNw~jg2pR#^K!H-7K;Oc6iwB79H48uMIRw0748>4H+x=>mtJMqMCHsF{~W-)^0 zR*`Sky^`(1+wX?HO3qu2{z{*jW&78&5YlS^lIr}cn}MI~F9q;A;Sai%4zhGIty5V^ zdtUVURqo+e8h*;w*?eU3W0F9z%P4ZOsphC{V;iUJ3v#WUbtZRoo;t@%U3Djfql^1w zWvs&^^97S&vIPqpcd{Z6X)V7{4e#|}$}bO|r$8K$lb3avyp?QKoorv<2=Ou7PxN|H zr72U%d|!4`flkgQp4DOK9TSr`IZt5r2k;22B%Zj*{Q;rXwmGY*0^Zy`{s&e1@r2X= zX0Ly2KhcFM74$fOVUP0hUa3NR;iPpQF<^vfAdSceBC@JNTrhjO|RWPL8e0fua;n&?ap~_~aqO8BSG$e*!!fz&x5T0LSKw85`gk#@c z4~&a9n?Cg{$Fo^8mmZ<^N*CRP7k51a$IgKYAas+BZYuhtoE4M)PMBIq7m9=yX1vnW zo&8M!3=+6?^_-qt?L_~UmHh{V*A5_Sfk{YLg>HhZ_NEv9YiMDzt}48od_;`U{!(`b z79I1Firc0{?0l#9>6^0ikSiPiT^OO!;t4WHIPHaEBn2rWo|6oR!LS+#Y>^SCFefXW zC>=vJTOAu64IN)Kq6Iv<-G?Cpg!_VZ+oj6kF>!dMVwW?~uyZ$U!p zmzRNM>bkW8L4+Xe-MiNJn{CBi2>1o`E)#OK4l>ZWr%|w7fZZzi)cQ+wi?MNnl0rp$ zRq%|mRW_1>`u~cpuK&R~R_afs?AZ9DrEmCb|wpjOl6AN zhMnaa!k`bV%qYrjuG&pCbj?|+Z~`cqrlZ;|wG7BxqC&P?h2jGwG~8bf&l?MCH9Jz# za;RGnj$Gpzw<}*(oMuVe7?qg3_e-uUO+bL4tE1sxeXloStA!y|6zOJks>G2^qlIRQ zVZNw+Txw;@-m6OO8>!d{5bXA!EB$B0Z%J6KR(972oqa{$d49Q-!N0HNwP_^jsnLT> ziA+0XX3bT6N%^77tXdiqR*2U6F}>0jUScvY)- z7DM`P&#(ZSlX1?OO$|B!hg*6}0|C6#K{A4euT&aNN6c~C#8$it=p!SK)-$ex3?HtD zeOH|W=5cGGLQx>zGgH>hfLcw;#ul7Rp<>|6j+M1G702XS#@j57TG5s&S0ys(AU)qh z6r!qYX*ks>#0wZ?{18=(f$ow_8osWMiZKeSX~%=#U9!8LrRY_<7}mQaxs;k*eBDx0 zaml$&RBO`#5|&KnYbl{5z_9n2MAA~T4E7|=L8BOVTcPj#o|)~t7T&yeeqy>wgaWdV zhM*UtS`rSNrqyWqeJCpBOPC|AV59ISY-VgI%wS{)7(ryJ93?UOiE55KvHJ7!UhB|5 zzj(#-R>Dsku!PTEMdZ^z{6jJ+2B^2iSsuFgqdyEiy)O@n0)k3l)MP&A9ZABZB=B)0 z$o8w{v9|X~>!TpahQecPBC04MTaxN;yEU2mhTq{3^Y!|Vv`>KlL^HXYOKJo%W`@z~ z86JPMf{6U7RO(A7x$+fm8L3%-5d}_EL%LDi5g4J8-440|hK6-=WR9UpiA8^OP%5SGL&;KC_)a zQ}X@=5gonP+p184=LI1M6yl8PG=MRWlHNmT?PJ_uy$m$>d$SJ0edRlnxWZXCdCm^8NW~6v)xA#`1 zY@Ra~!RdUneiN;+(@B@!Al!VkbVu#E`IQX%O&M>Tic=4LAegA%3*(5AWT;vswx|U{76gOV>HMOpYVKHV_Q*fW@^0gqG6zV7 zja=Qte!fa*i3G<d18^RXV_lS zh@(+puQLc!NVRGYal`lv1-N`PvKkv@6n0q4D{}`q5Q!i<{M~bhSBUvSF ze8$X6$A^B+2(B7i?7ZsJSF4H@G%)hXd02I)h77J_HB4WV)I{{R=)O?yn+KMPX9uAtN_TbuA? zz=AJ5L7fsL5P(pAIG?FzDPTUcnd9S16pmPxrJ- zX($UDFK{g)^OABGBQh|O^V-|l?x#w=5JG}G(*+t5d{F>67g^l0$QJw#=3#l^+;%Db z#YM5Xr_i(0Sf)tB}Nf>TB# z`ENRs!IDPk zs3tnNNk~~tR*!n0cF#24aN_FYy|+p=g@NKP z!khi~gCeiBW)^*}Mr64lTQ^yqzdOp-3xUq*xZKoOri~DEgpd9KBhxFbPf}y@3`7~I ztElMBGpuH0;#CS}?HW1+Y3@!E|3HF%cq+Gu#J=P(74~>X+47cHApLL+kQ9RCQoilj-jp^1OqGpLJ}zZ6UyzhKf94Hl@PwWi z+^{5ycQ_esZMy##cF0um&DF8b<mhZV8p3CM^9AuW-OG0j*ylAu{)g9c)#^2zl17tokv2d7r9v_ zi6&<5pgAEeZfX>cY6X)wmSx0F)H=Uz3xk!6J=wFMo}THBfiJ!O%!Ld`tA!qfv@8FPp$hMToB zzy1-w{UV<`PvHTK)M}jD-BPNnz&>+t`4fGoqNMYmGAF6NNsbb$;wuU`XO1=w<`INUWSIYHdK7!2xzjU zXS^`lm{&R0)iyHHivIZ-iH+I#%dW;j{*`Kxt4tU4W%kL65L5+><`* zim6+Lap_5M`-=9N20@luK{Z&!sytmj=0>q7Aa97hm+I%yC|+&rS5+VGd1j>!G9)ad zqv8?GUgH1lIlK}$m+d{Yfx?VDx{M@)1Mn|MR?&rahK0+5`fl4McCJ=ph3S(}3lWE+ zg%X#nl0f4*I6Wb2O%zT~WKMkQup92Mi4ii>3|ddc?b&NCe8;1LJ(j)T$NOf@v;mFw zNuIq|{&sn`vWY2Cm!6I!?z<=5I4gj+6fH=Z3K1{4%SEHK~eK znDl?%DG`nNwHO-@jJm-jy2zDy?m?VAz5`oAmGqjA>N-!@72@kiygn?>!fZQis^;hi zp;eb&cAj4{XJX+ZhWg!&bU|xjX|gqz6QovCZwqBdgqzTwWX1MgvTReG`EK7rM%>r} z~?t2^#)PS`&tb0di5dg8Yc)YjXYmqNPkHUWso*jm5{WJW5tyrpWs z1@}rU#vF35lj>&NEU&BTU-a-CFpg&ub@L75YBf|=(?&Bet(}c zJU#qRF+=xR7`?4>(N=*%`ekltWcsa0YcYZBc&&gm_r$uqi|G!W*CnN$`z4>;Kj;O0 zTRT^}s!eY(|L{@k-EV0RcP`&fENqG{#YMv&_z8*pR1s+s!fHnVmP~=3MJ$Z6iq_U1 z^?2=TnpZ^%ue`NJDHWuP7+iTd(X2FI-4uN5-`TB7QSYQQ_Di=KdFPV}6QyJ0qzG{~ z(<25cjIW58y&0(tr(Kz-7xZqTt}!%&qL|G^hF`l?T(wXx8vW!?(-SkN%J*!wn((?d zlzzSsJ$o7Wt3HEJW$XGT=uPfD53v-g(|qRWHa6cp+O9i~+{9sZMCzn;NMnmuSftAq ziDk^Cn9n>#>rsnrc6L4dgO~lRH5_`;p3r&7SJ{ym{%~p-%(MC6TYBiVb|I9Y0!8p# z0X-_@Qr)SY->HjGa50R&xy7QIkiF3-{Ff{`I zIx{I{SF8+f?J!;OjcK+_WrrBX2y$|uewB8UbSf~S2U=E9Z9txv3$Lx7jUP*xJ0OAc zSyZ$aHGHD`x=w*fNOIFEtGIJ@_|c=|Vi=)Ic?DeayYqdp+S|L&-pSLg#}igIK_Eh! zR~aB(De_gA6LZaCUZo*im1iqDB@Q0mSKeobP6xX-#>9xZce(N@$(^|>tzTj1%}0IE`|RAMSc%=_U#F_aHZq&0`E?P_0H?<+=xR3o{R4u>^Vphh;Go9 z{`gzLN1oM$Da^eJQSRX7ydHER@q1n>GL7mUE4y+W)hyIgV&oGq?4$k4sax3TDu%0t zCU_{tk$tVK|3Mx-6sO+zqGbl~i~^y~Ng6kgxZ%}tGWBpScA*;U5q@os<6PEmmFsE} zp*JY+XeX~)K1KGq7{jlOn5(dMghlFqPyYn!!l z=H6C@U`^~uvMW~O94veWETib^Uvpc`ajS=h1_*XJZEI>XX`1$(cj~E`UMs!f2WCBp z5GiYHo!$hU=q2)bDD(NT-#x6h1Es5ire?;IN`lz~K8sE}m6%UV^~YAr%;)erk5^WS zbo`|1{vI6SBO}KwYfaL4w*}`B>XpB2Kgn3fPsQW^9gh2NruU&n)M;4@q1Kh-*(|vJ zBiFOqG*!Vj4TgFvl90%P=>`A2%o1GRI?;wuB+ct8pMrdbDO%zh>O|A_HlWOMcNX4s8-AYt*uE zS!2oO0`2;joi=)j$E}f?*#BT_i95a@e}H;zz05qfbV`a|!Ew7Eu)F<5-85bH=SBwx z(udQp_?n_4Tb7tCu~;%G5gpJ0fEg;a10iuYsOUW+JS1B{VisvJ@?v6yu>6Yb!Wq*( z3x;GaIu(opb-SwL5SX@A_0tL>ujEFp>2nytzCoi9dbr9a3#!ir-|19i+NA2s2TND3 z_YbTO&a5vJhK*AcB;NZj5t3loYfEF^OV~(qWTrgHcIF^Jy7Oi+$m=@0(~Id9BngTo z0J1oBi{zL<-B!*eyLWL7V+pKA_Hbp-S06Fw@2+bodPU@(T=$x)Bp9SjfAzknu)|!M zf#~tIswzkMGp2q1qn=K|G(OixJnK|K027*3xEsxoDv*uZi)q1dm;( zzmeb=TebF(#YvuL!@V3D#?RyBv}@URzM;$09aHF6UFOYs{87YHbNNHhV~V1!^qxrJ zI|YrH*0=9`XO@3+e{PeGnQjNbW>WMoQCk~qM@6cIN@?m2mbJ-^?8QSyoIG#(1&UH*S(wWU&zl7MGj(k)?-|bSA({n z9Z)^zeiOYymxu8T9C;g;HfgDJE?lk16s!d{+n#ys^r)^bNIsY?{fgLcY4pi9+xQ?4 zEdVwqh=0Mum050nu7FCASpkb(Hrra=XL{*4F(K+ZPFy!8=(Kp^!ZhD-58!Kmcs68e z3Z&zi?1G_Z_j)TOus@P!YyT>QhXWRZRFvCW?1Os;4#)iW4+LC(iMYTQE!B9v$G0Z)NA+uVD`Q>= z-V$)K&u^BJN8aJ7SYdqr0+F)D{`_;%S95|js%eW2O?Ykj1tb9|B=-Y8RYz}gzD&g{ z9d3f;ZXDlwym$HCI%)R&nAk?IX2Ea-8L+4l7J?wFI{Mw6qJkQFzq+QjuD+r1Vbi1gvRBn=z|{~W5=Q&GOkOtx*eM!kKXr7$tKS7gcq-LSkgxG_trXMgn;=MEz2$MA>)H((ke#5{d4* zyiC$2sNUc1aJE5GMhKyp2~1l+t!eeO-BGYUsZvIfT7gj*mE8I{w*F+EcCW1H8lz1$ z^Jdfj!Xueekd7J3m@!ONAHJA_xM~w-&^ZD;1p+{4`8a=CC8ilSX~7;aWSTjC zMQQx3eU&DuFk$shMS-WWd%sTWJ2Uux4eOPo#@teMe?ydo+JqFDO!XAAx~lr>gm}*H z#&4ql(q#=UxMsk1>hRv+g)^22nuhJZkC3!o$uEHQD?p)w_({eBYoqV)t)w*N&r&jRD;= z54tc3m}JZ_xg@qbN|aaVo#WXQ?eG3pNA>$8;WE`Ksmd}l`4$2oC-E@-jSP=ZWqDA~ z?z8ov>i0@kQqj8Os2dpy3)f3iq4ARKDYAVA=B>e41FIqhGAXK5&>~*YJnOg=1g@ppkdhlgDm2^ZbHnS;?wG#X8qi8}7Q|B9bJ&kA1b2Q9p z+aR^HxCvB&IZvUdc>?}WuuCuSmtdr`Fm7UA2c2ZRV3BswvAxfQPK3)kvJ zmgKy<5?x^C?jqF_8%wUFy{Df=_4r>jJ@teno(}Z9()6%4?fPok5VGe7A;w`+7zRz< z2=$g5SmYN)_>b5glIYBfZ?o(I{%BHccVq5`yy zr4CL)K+4{22RT>Wu2(kQ#T4yq50M4y52Z*o`EM2=2genf-@k-1jDF4Rd zKaNXXV*i%pH(a)qovZjb@POuCZ&~A@FjSYkBT4*d^gvG&7)^W;SQTuv8QYe{8$lyS zb4*14QW{NCq;o3`VX_nM;vF^A0{z72C7OlP_h8|guvD`DCL6YtxmF3)niYfvROf!B z1I(Xv;DgnAru)*M4(sKwMOMNl3JoASTrGdij^rl`aMZa@o7qC5$f$WPeR7G-i|=>6 zyFwi4A=*8|-@O{OSz-Z+{4)k{x8)?X{X5v#(&53&xv?yN6%s51E!EzN8_$V^&bq&UE~} zoh>cYe%g})Bf}Xl*s(OhweDOu>o_SOmZClAxj7#`-@sSMAC(pWm<*oT7#84ERmI+S z^ZZhK>)KFzqgh9wtqjFn4iai5HMmM%Rc;LydXzeL>Rg$vOAH&s8Icx4 zm~+ciK@K3KvB_7l=fBMR)dvlnu%@YVB`y4Vz*Ft`QGhl#sk2RKMon1pefu*b=wq$< z;kqrq?ms@uJJnsZ!uz0zx4|zNpOgKs8Q)LeDC?&W2gjZsJ!%0<44D(O0o0*{%`@Cxv@lqV=Qy5>U-p2p}v>2*L**>=7IHPqj}}V@r-aY4*Z_Z+f(oCK~!>C%1?DTle#;I4=H!c_zUX82b4d- zcG@monX?^Ml)7L3QpOpjd}t>wmnjEWGs~xGGH|H4S!Xsz80C($y3s^xPF}oi~&T~5dU_z)=i<<32RVb#g-ABM;dmLt~~ZmnFgoOr@;s^dx^Wrg^Nx*$4q z{iEh`Jp{3Lj(gH&ey)(F&9d1gd{!rQjJR%b*2er9aTr>wZe1#yy>%T#9#)M?yMK`Q zKzx)jFu`iR=B!(R@S(x!MVwLo54V=nRN003Kd-24et*b6x^x5Y9?w$-P}WN6?2`Z8 z>?e$ZFq;{j|Gp2THKj16pW&-E!&+BcEoRaE^F%H zn@)1gte=;AsXHnQdAD}%12l$k?LDS_58Dr;U7gYEPIMJm@O zm5CHO3+KmO{ptJyG?4%bF6_aW}9Oj*h6?5eGxH5~D@StB}yuU~>kDreY^m*Us|aAL*a?P-U;^XE19U_aolm3m zCZb%E5(fle5k&#{xWFHm727Kj58e582)us?^0QUU9d1ETdHTkN80112_jmV1TR3ge z74I!$IF+@;A(N;aPQU8v@u52hm53jo9O9{m_;v`~8@m?<`~(<2Fkd}G0S0)W+AZXa z?9WE4iAaD3>GA(!HvbdmA%59gp3PM%^7aSskPnydR5;wW-gixH6HTTlFD7Ab9I=R{ z>SlGYaI_-wDM}S6KKKu4;Rlu0PJ0BDJ#fp%R>#cbr<+$o%=O6V3=5MdJ-lfi9I1RT z#?W&X2c{dQ5UP4mM6f*F&r@BRNX!7i3}6(rZ2+W#>TG>F^kJ6 zt4s_rKq|G5fg9*taCb;SP3t91SM$HMUKNezWl^_jRs#H!xITGX`GB!5mU{lxz>ApXQ6`rtQ z+8sQYA`z9~*RD{F1{ReO!PHI=4Fx!)p*kgUoht>S@f_k>;%}qOECy@eOqLk$%JCrcT&I56CXL=sw~znb80E?ow&QBxX)EIPOY1Hz<_CmM zwFBJRi=bzhxvHY>t(mtuWNkFh0<&Ucu%cH=q2qy-xP$0I?XOf281kzGc6*^3xYQ!6 z{2NIIGKSy++f;LF{<8%B?}r5JJR*Nn@fa=7&IFRh`ejavt*o%JKMXed7RucXug4eGQcxp}H(Y)0kDmSdE{e4jiQCF_uLnn z$97Y&Ojta($kzw{BKn@{0%FGk$!jReX;`6c16FwkguBXC;Zap6i|2<_4J4W3MXP!{ zO)De9JHFE21jXN#l2%Pta1jQVPYAhapiMLNvS{3dtI{t@-55ZHri7Gg!i~hLqm)7` zCIZOeT6?s24(vH}8gf3bczr)Hb14N}OB-w!>R(aoJS3l2cLF+W{5qY?S1)m3Jwj_T zU$aHJhq6pqLJ6^#(jR3DmVeKUcl>qd5LLMtUc}G}YPX7Lgp1>C!jkcb@}bn#6O*(y zs9|`U z#-*?mv<{J7Cvwkt!m=WI2s}I22-^gU$hEH%?lq-n>=B_yDY=3;agjn#4WgTiQxMWZ z?Gk_KJw9Ik@465igUq3V+o$BcBmKqHLN-Cv}ZY89|pi~qC zP*l{9JUrh&;QVlYIOlcW*L_{@E1;;^c3P=5(ABGEFX5<8_}h0j2LhZc-Ixn^YT#GT zJ4c1J?1j3s0fS277rkN!-?3L(a!9tH*{v$x2y!$C2^4L^Z>JY_mNJ)?vPm0qhTDYp z+yQQRg1-MYN~yMW)(bx%o0z8)jJyP3?GPB%K$Z^DZXYUf3^qRYm+8r#U&+R34zl@0 zh!&P$%Q~WGt{%Kl{cTPDGn8>tfS=I;m&C3e*Tcl1l2-|U#+w;CsX%9)kea4KZTp3? zT;R0|?6_U|FZHo&p}T!oo^B*Yw1;2ZxUxYn<*e|NGnf;%M2=IHa}SDjhEPc{3U!ig8{ET(DXmDU+XnfJfa@;Xm%w?*KJA}{1x zAQ=RQ*?R+08B21@454_yRhuzKpjoZXU8E3JB9M7a`|j#isNB5B`H)O{09^5&aY8h# z+Nadbl9+Oo-yO|U5jT+0?44@aX)Dy>(P#?FQFP}cM@^(OtAB36w;O=+z&qx)W;2SC zKbs%tDa#vfP)p_I2}<`*4Ppp+S)9SHAT5Qr5Js0ecE(xeUdDo&1KPeDq&x zhgH4e2^g;6!1N&6ogfp4t?J?U*f;Eb|6yDZPn4N>UXYLP$!We#!ubtg#QHE7y9pu? zwKuj^{}o)2r76qiFzf!kQ6^uQ{XKcg5=PA{S}g&P?I32-O)~<&S?7gQTclaw#mr8K z#LJMPY50OL@cf>HYeh!-ao_n zh|Kdl-kET8yDW~mB)2g7cjkrC9OVCf59~)?JcbXlJ zT=~c{5iB)P1l|~Cpx(QV4AN@(6iUb=pmGc>69(;G><6rws;GRjliD~Z$He`2L(V~; za}Z!A{OAHc)^lav#s6ZHtYPNGyEequiO>LU-C1Kw8$?uPq| zsJ7CMtE)5J52e$xQp$vXfr1P|ycs*5ye#}P^3#wn6!7MMWcgv-M}Pr4ZCyS&aqOgWzV^U@uoNYWWB0(f#> zkQr;#_3hrbEB9m%R=@CoP=_Ln=u?Anbg+4u5lR~=wj3vJ#3^BegSGEee5O5p7g0Ai zbI>L+{%6D#wo839Grc=raSLJcpgA>g1N;$zuit%m9To4J=o+iqUvldI2(I7! zS}7un6+L|1m?l^+;&goD(MIeeOSd779CC_ro*{Q%aP$yH))v8e)E!s@*4d3TeHp26 zgv?n7{%8xD9(%Pe8eA(p<(zf8TASqW@B<|C$+VDq#*%b4+*2|$bjIutaW%|ysAN-L zRqNjRH4@!ueu4eD%T18eQRWU~dG*A`Uy9cP-}WC@G!d=P5A29NenSxmYL0GC6^Q%& zHbCIq;!PEdX5P4#1*^SV~?d<|1(BH5h>Gti^ zHrrMi-&`VYygehfQPoX0$e8UuZtwWe$hdE|RFMwKYrP{6P{> z|KRF#w+}O3Bg5z?o4Z*2q1ysJ-=(SeOph) z*S!)9d_MQAus&E!s0UO$#5S!Ia1mPTf;54bfe(!USRLDCabaAjv#5B14k8*Jfu>#h zdh$H&T$UPZiOhq`b{V&y3yiQj(edF-6bnkIRJ%D)!gf?L`-3wsW1HKD8cLx;iQwu` zJ4$+mrARPZ%B0RZ9r6m{)}T5a+}V2m2v**~X+fhrW6B|o&KjS3_Mgdvt}Wjed0xFY zBJ?}1a2Pk>@H&@%UZo+B7odTo7~MgV$O>rR_j$Ofbm7H{P(JhxQFdn~e%s;thYiwg z5-&{c`wD8z7rK^sQ&YFL^Q9Fp)ia@ z$37p_hiO5IXZ!z1F|I}43VtI<7 z+Z~LX;#YMf&S4hX;t%#92HrG!1dUS3*#dg7WX_Ooo1HEt9H};HTe2u3QZJUsZaxiL z(L3V|%x1E`0$nL>EsFbec_yhMVms!YL6feLv6{L7(xbJr`80J*s*GS9oRcVJz3UdJ zSDn|1E_&j=StE_0fCT?_!qfvKK~a{(1SEyYkOZNZBPN)3E~Y&%d77ilYTm%Q&ipK; z-EPo+D&18_bAx@xKGqF5Gj-hA zKtBP|9|&y3R+xUal+UFPkZU)go)~tF8OyiRZ~Fg5Rf8Q8;;>RN#Nq=1h2*w)6K{D7 zaa&f<6Vg++6#EGVA}LGTp222b6Uu+AU0vkidv3ejMO!4KRui$CAhgLzr*NQ?NIl>I zRSV?(=*X?hJ)+{LE>4m>`i2KdHlP-hOI8-Rr*tmCvU0=dxb{*0?^fdA_6gbe54xGN zpXIc~GY|<&Y2)l}nXW7rvgn?2_v<^5^ecv&G;pr|T#b+eYtq)gPVA-nCYB5w@}e38 zq|qfl7)5XwHL;6>W)KqyF`~K;9dX`MPqC$O6(7RB-7%$?;T+W6@~aarO-XpCfSFp@ zLz~!%28!fH@QPhn!GOYC-a_1?v`?Yks})!tfSX?0C$LEAp;7A%HUo!6XUcPaC;v@s zn*u!q@QQUiyn+45vZ$yVR+N(IYstTtEw{oVff7OUuE~u;gI$?Id~*`)rRkj2#OBRh zloLSZ?AesjOSfFDK%zWc0qSZ`dxv2qjx8-A=W3QeI@+}`?D+{v9N>rPT@XBTETU*4 zC8uA!j)?idJj8HSR0prgo>wVqzYFxr$>8h}PIBK{Djy^yK8Y1CcO0w{w?;p;pnolG zruDW&@8EE#qG?>8X=uWi^JthhB>~666@8BBWt$hst-e2FO$q5$%zLqpiOOv#?EQ!i zQ(B0Z6l=hGiSSd0RFl!u<{ep3Li@(XYme3)yDY6kwfA|i)n#i43%*k(8n0+-Ib%A@ zcU-Yohj*0*#?qfE0Md3M)L8RFkP~s1CF9_tzfUt8gTMociY6nl9FWbznt7!_!vW^S z&RyA)1LlC;VX>I3bylt&>D1|FfF~(&X*!Bu_;34l%obMh%SuRu29m4y+pA1^J++)o zwqI*y-Q)lAEE=AozJH1DndTvqX>zGxjf7Sx6h$}1DiP=3pC{fn0-f@mA<4B6e&A%R z7}QwQZ9{8vnww$E z*iX)Mn69V-Nb~8-D10o1DJWcmxH}qF(=i$=^D?6b2a$q{RCu5YqtI!g?c`}BX$x>J z$R!A!F1|C0Ar(OtfN-1FOm}1TH(@*f9Zz1JPpuI5XKURd!P~ing17uKD*H zKJ`xNr*EZ4FORPv80c%lSk$iU+{u{eZ;+R{XaKF3$8m2K4d7^eBOw5>(ofoqmdnHr zPZMU6GV3}2*Ld7bZM0o;YNzkNQa(~1sNb~1afvu^KZ<>+3R?MLH0wL38&J7n@oY-O zGR?T)6oA~n{Rm`50Vomu%1>J?EYB>fuZv|L4`knGxc6=_2in^6z{rrQ8`$gWGq`iv zljy~`S*0Mex%I~sWz6wh__~vpMJ^mMbyy$u{O7}@z+3N=*e#ctyb#YC|GRtA@sa;R zS56f-@e4KjyCAC)k!oyZQ7?KGP6LMoQ5wBSvBOc4_|ScPXq7yebsnBUVQb6P*3wo! zq`yqb6*2uOV_7Y$bQrq517csiR;V3*slnhANNB448d($>GQm$?_91~>9W8#2zt z8c=muE93>lJLGbqI4`g3RZ5XqgWH$vyz;jr>EZ%QF8lp4biLTbCEJDS@37SvV*a9d zO35ywyc1<^W{7S~1`)|gjdFzdG&Z;rV!E0K6NHhIM--qDyB$1L%WPPp-k~xZcehYS zoY#>c@&nO;QtS95G%#irkor#UYv(yLIl@_yhh%T$s`L*9$wf4i2EF4xjbKA34IR2t zGA`Y1DfNhKBhbwk5o@My=hT-IdJZdHspQw-opxqoe*Qe;a;Ha9vT$si zS?~mKLsV@;PC|YXa2o}*J*+igYV~xS=~fwf9VljYw68$+q>$UsoKv87&DEqNfiukJ zN}kQ51#Z20fm=yZNUH0Of#%l)m#b@>vO3a__Pi0|NzKVZ9=K>rY$y*tRDpQ@M=o)^ zdw? zSf?v|FY1R0g4OcspwOA7oEJFu=t6OZ1J2prJVDyoy&WDC0m3ALT5zF^WSf^I8NmkN zNf86EW}8>V-Jd|GR#GtxI7V#EK&z2yC-foXpVORTH$nzEU{+ZMlFE| zhL8e^F~x^dj@1H|%!0nJ>gBVS?-g-I50D{{fC+Deh`QJB$fSZ|pfOyBdmO zagWDB^6782*4y;X%Xx*$v8JVflccP5#l;k{m0d*98fFdyFVuRD$z;ODcdmRsOVzE)%srTh=%KLU=1M+E z&@8tgDo!THlXNe8eLN$gC+826?yb7z428%!G9i>fnI1e6hE z(WK;(-|AKHRO{;>Eiwbeg`zt<`cTpx(qXEN$&Df)*6=(wd}L!3EC^A2Bp%v;OPfb1 zZbl?WH7!IoqkkE<>$)1`gpLKddf9+-?lw0sNZt$NG)hVM>u9G|ngoKFsJh^q7V;RW zc^A}E3yFM1Kt)7;$$trISP-&Il(xAW1nFnW+U4#?x9+N8pYcR^=dX zyt0R?I)@Dxs z2ANU^KQ+1Wn~FivfpiuC2l3H!&A=NB)+xrFkaZAc!?qz$-chLW^0$j>%UOj#aNT{V z*W3c?h5jtV0a!|t_CP|bcT?9{aJ<>}1f#ar2SQr<^Z|)N2i@GBMs=(G6V`cF#dV8K zckWt(5f)%hNN8DPDZ&90E{1>;={mvzR>~P8G;mTOP~?+?b2A)eQG#l3ol`E$&aHYN z_bA)`5li^U3U{E2lgBs62(b0&*u|t__hHgdE1S-RMKV$L@T@zXi!)g9EgR_mVhHtl zQT9U3-QuEs!_!;Y?r1gN$YR65qQPs7bbACk47YgYd(SyM@ppv zmu4oH{6J++K$$;Cj5s|VC$>1B)gR~Cuq$2!R-QKSk=f#u%@yaA)JUCbW3Df+*M0Jp z>L!>Fl;v(T@`=lU3Y_=ybIB0t`@qjFiInAOen-a$f~borSD1Zxcr^`su{8QZ62d&oeK<_c)V`t z3eac*8e7bG-;Vy8eCu@k#>yw5i9L#l80fiAT{%3~!gnHlDl?1Bf9#RDyOlY@D3hKc z)%#;ILQ1(Vs39&WYs!axF@37$)6^Lkpwxf3VsP1UZqo6;9~>MD@P)Q+)C(wP%M5bc~iY z)UliZ1o6ce#aLR))-G95R(~PRpDRi0%MiAxQ;QUA(RyA$i8OvRDdfN6p@({5|7M!; z)(29_etX_{#FYJiuaA21dTCHN3`3vsLMZNp-v+s~*v|1QdEstDO6!4U>s0kmx3%aT>w>=V=k#B)wAvN7k zPkNu3kLFxAXcJ*~g+Bri={(sWnHLgq9o#J)0T8y~wGP)<(DLF=_UjLDi+q6ZV@1Hq zq4`Kdz{h1jkZiAih&*;N40Y`I1SPIzQe)nCdcY2>+m zj^*PoR$*@|&n1>%%$a}rR>Z2a>auHrAJRM+qvR9+pdC&3Xsdd|A-#vTYC$C_9 zo1k|HisI6(SLUBatJ`JyfU2OKMlWEa)uzBFIX!^%qx#N>T6To!*?_F(rMr~~x>bz2 z#Xx-;ZeGc6lv(pMeBa- zB`Y576Ybx!^ZT-I6MvT7V6VDwUn2XvF#Biyg|OnUT}79y#$KKN$hrT%+m0VZV&0UW zNIul+elBxkL}u_*>yu9OEt@}II@vo(2-l?QKp4AV|06|Xc%~2D`W4)LG{uZ@m+hw_ zD*gf)hTWG@Tgx{76eIQQHINqbpLTZcHh=QuZO7g9nqNCr-^Aig8s8msGb8Zt^kP~M zZ6w&iFcuU&DlQ=@F+Mdp9(sncg`Gic3yX^X*E^PrO~}r}g6Qk&(&)v{9JQdD%IbD{ z1mn4$hYz@!kpqtg2jM8hnc)^LHO9n@ncZ7!92RTba zAjo-PfxW)V&5{s$4T?Q5thd~Pj@F(bx&VpLgp5TKiU3HLo@xHB%?gS2fiL;Zbmk23 zIi7BywXIAu9C#JF^<#Y5AUr_rNy<#<*yf(40g7i_dQ&b^VWX9igEVO}-#Yvhr&DYs zmyzRhx#?2N#kr^+AJh8*)0O6$D@}GaV70Y#P5R9?ZRC+k48@iieXfA#VZB-TH-;fh zhPu4T1)cjV%@ynBge@8p-3%7;@ z0jQX}g(nt1IUmd7^8ip}vIqg_Ey!pA46fZGPOg=@YYCM=3L2T>MQZX=(jrn8Eqdyk zT+_0Y-kKn?62{69dUX2Ftz}dam*}!!#I(z{;(_co%>EX3FpL}xugCDo;HtrjN1+hi z*4h}a(C&fq+7-&O{!sXwkIx)Xdb4Puv_iZIO%GS!SuG)-C_jS)bIfxH6^NIJluetd zfc22C*u4{RT0`0}{RFaiBA-P_1DI8gAnu!T`7Vrbui6R@>S){h&{zm1m0fc65Q`J9 z$A_j`Y2G>l1x=ozv$P+3vwNS0j8mu!Ao_)$ufy_{LQrbYhHUm_yPe&0g1_9gK?~{gjj3moc->sI}heikHxlkUxs1Dh0FqHaKgoc z;>t(!lH^LgYYYW$db65PMOw+i7R_ly1hZdG94Hs%N)cjG{Xofr{l&vCwXy=sAUn8t zosE7{J0;J_C5(a?ry8^9naEh%(NB})j6Lb9A$C`TL7!jcebuhBD_QoAxAR09;W=z< zJ)YNf3llxBT??_ALTU0Sg=zOiS1x-|SwLyAHEEC2e^lqNC=G*a3s<=O20ZSFH;hQP zKJ*8ifMzgugmCv%JR9e6S^n;WyAl5MF+}#(nFW)fxJOD8Amde&S1&uzS5IL5PX&D5 z?2U6UzK%L@-!#)%3foL*#Y+V)hYTFPkk+J|oXWoWj;KTFeCKPs61Q>uqE8$Blv|+2 zwtGhV8%BmWY!HM+w$tPuxwj7q>u(Od-i-GBtfZ;oLCn`;U2-=-p#gbot>3%n!4|?6 zM>*CkVtajt!UwUn6;m^cD=ziMBzl5PRMLDuv_v-YeXMJmwFk#01tmn2kliQJU7%>Q z8{t9Wk!)B0f=hG{YtLpgs>gg?BQcYr;H^FnE_&ERXwTG9xqR8cNSDQ=W85mNtjuSS zKK+2RgY6XRGuDLH&d~lf=eS_vBq9WYu&V{A=ZwG(q7qqVLq$AKH_M5zoQm|4FBu