From 3ded5b2aa36ed8c8c2046993dc6d959c29c1a662 Mon Sep 17 00:00:00 2001 From: "dawood.khan" Date: Mon, 11 Mar 2019 17:31:36 -0700 Subject: [PATCH] Revert "Initial iOS Project" This reverts commit 74f1a5bde53069f31e08171ef86bc30b6df48a5b. --- iOS/.gitignore | 42 -- iOS/Gradio.xcodeproj/project.pbxproj | 456 ------------------ iOS/Gradio/AppDelegate.swift | 46 -- .../AppIcon.appiconset/Contents.json | 98 ---- iOS/Gradio/Assets.xcassets/Contents.json | 6 - .../Flash Off Icon.imageset/Contents.json | 26 - .../Flash Off Icon.imageset/ic_flash_off.png | Bin 208 -> 0 bytes .../ic_flash_off_2x.png | Bin 311 -> 0 bytes .../ic_flash_off_3x.png | Bin 435 -> 0 bytes .../Flash On Icon.imageset/Contents.json | 26 - .../Flash On Icon.imageset/ic_flash_on.png | Bin 155 -> 0 bytes .../Flash On Icon.imageset/ic_flash_on_2x.png | Bin 224 -> 0 bytes .../Flash On Icon.imageset/ic_flash_on_3x.png | Bin 294 -> 0 bytes .../Front Camera Icon.imageset/Contents.json | 26 - .../ic_camera_front.png | Bin 189 -> 0 bytes .../ic_camera_front_2x.png | Bin 313 -> 0 bytes .../ic_camera_front_3x.png | Bin 435 -> 0 bytes .../Pencil.imageset/Contents.json | 15 - .../Pencil.imageset/pencil.pdf | Bin 5681 -> 0 bytes .../Photo Camera Icon.imageset/Contents.json | 26 - .../ic_photo_camera.png | Bin 236 -> 0 bytes .../ic_photo_camera_2x.png | Bin 430 -> 0 bytes .../ic_photo_camera_3x.png | Bin 643 -> 0 bytes .../Rear Camera Icon.imageset/Contents.json | 26 - .../ic_camera_rear.png | Bin 159 -> 0 bytes .../ic_camera_rear_2x.png | Bin 258 -> 0 bytes .../ic_camera_rear_3x.png | Bin 364 -> 0 bytes .../Redo Button.imageset/Contents.json | 23 - .../Redo Button.imageset/Redo Button.png | Bin 2754 -> 0 bytes .../Redo Button.imageset/Redo Button@2x.png | Bin 6133 -> 0 bytes .../Redo Button.imageset/Redo Button@3x.png | Bin 10373 -> 0 bytes .../Assets.xcassets/T.imageset/Contents.json | 15 - .../T.imageset/letter-t-icon-png-24.pdf | Bin 7161 -> 0 bytes .../TapForCamera.imageset/Contents.json | 15 - .../TapForCamera.imageset/TapForCamera.pdf | Bin 31878 -> 0 bytes .../Title Image.imageset/Contents.json | 21 - .../Screen Shot 2019-03-09 at 7.56.56 PM.png | Bin 13101 -> 0 bytes .../Video Camera Icon.imageset/Contents.json | 26 - .../ic_videocam.png | Bin 127 -> 0 bytes .../ic_videocam_2x.png | Bin 171 -> 0 bytes .../ic_videocam_3x.png | Bin 224 -> 0 bytes .../X Button.imageset/Contents.json | 23 - .../X Button.imageset/X Button.png | Bin 15391 -> 0 bytes .../X Button.imageset/X Button@2x.png | Bin 33831 -> 0 bytes .../X Button.imageset/X Button@3x.png | Bin 59597 -> 0 bytes iOS/Gradio/Base.lproj/LaunchScreen.storyboard | 25 - iOS/Gradio/Base.lproj/Main.storyboard | 162 ------- iOS/Gradio/Camera.swift | 222 --------- .../CameraInterfaceViewController.swift | 120 ----- iOS/Gradio/CameraViewController.swift | 129 ----- iOS/Gradio/Info.plist | 49 -- iOS/Gradio/Interfaces/CameraInterface.swift | 15 - .../Interfaces/SketchPadInterface.swift | 121 ----- iOS/Gradio/Interfaces/TextInterface.swift | 56 --- iOS/Gradio/MainPageViewController.swift | 75 --- iOS/Gradio/MainTabBarViewController.swift | 41 -- .../SketchPadToImageViewController.swift | 61 --- iOS/Gradio/TextToTextViewController.swift | 94 ---- iOS/Gradio/UIImage+Extensions.swift | 77 --- iOS/Podfile | 11 - iOS/Podfile.lock | 16 - 61 files changed, 2190 deletions(-) delete mode 100644 iOS/.gitignore delete mode 100644 iOS/Gradio.xcodeproj/project.pbxproj delete mode 100644 iOS/Gradio/AppDelegate.swift delete mode 100644 iOS/Gradio/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/Flash Off Icon.imageset/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/Flash Off Icon.imageset/ic_flash_off.png delete mode 100644 iOS/Gradio/Assets.xcassets/Flash Off Icon.imageset/ic_flash_off_2x.png delete mode 100644 iOS/Gradio/Assets.xcassets/Flash Off Icon.imageset/ic_flash_off_3x.png delete mode 100644 iOS/Gradio/Assets.xcassets/Flash On Icon.imageset/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/Flash On Icon.imageset/ic_flash_on.png delete mode 100644 iOS/Gradio/Assets.xcassets/Flash On Icon.imageset/ic_flash_on_2x.png delete mode 100644 iOS/Gradio/Assets.xcassets/Flash On Icon.imageset/ic_flash_on_3x.png delete mode 100644 iOS/Gradio/Assets.xcassets/Front Camera Icon.imageset/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/Front Camera Icon.imageset/ic_camera_front.png delete mode 100644 iOS/Gradio/Assets.xcassets/Front Camera Icon.imageset/ic_camera_front_2x.png delete mode 100644 iOS/Gradio/Assets.xcassets/Front Camera Icon.imageset/ic_camera_front_3x.png delete mode 100644 iOS/Gradio/Assets.xcassets/Pencil.imageset/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/Pencil.imageset/pencil.pdf delete mode 100644 iOS/Gradio/Assets.xcassets/Photo Camera Icon.imageset/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/Photo Camera Icon.imageset/ic_photo_camera.png delete mode 100644 iOS/Gradio/Assets.xcassets/Photo Camera Icon.imageset/ic_photo_camera_2x.png delete mode 100644 iOS/Gradio/Assets.xcassets/Photo Camera Icon.imageset/ic_photo_camera_3x.png delete mode 100644 iOS/Gradio/Assets.xcassets/Rear Camera Icon.imageset/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/Rear Camera Icon.imageset/ic_camera_rear.png delete mode 100644 iOS/Gradio/Assets.xcassets/Rear Camera Icon.imageset/ic_camera_rear_2x.png delete mode 100644 iOS/Gradio/Assets.xcassets/Rear Camera Icon.imageset/ic_camera_rear_3x.png delete mode 100644 iOS/Gradio/Assets.xcassets/Redo Button.imageset/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/Redo Button.imageset/Redo Button.png delete mode 100644 iOS/Gradio/Assets.xcassets/Redo Button.imageset/Redo Button@2x.png delete mode 100644 iOS/Gradio/Assets.xcassets/Redo Button.imageset/Redo Button@3x.png delete mode 100644 iOS/Gradio/Assets.xcassets/T.imageset/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/T.imageset/letter-t-icon-png-24.pdf delete mode 100644 iOS/Gradio/Assets.xcassets/TapForCamera.imageset/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/TapForCamera.imageset/TapForCamera.pdf delete mode 100644 iOS/Gradio/Assets.xcassets/Title Image.imageset/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/Title Image.imageset/Screen Shot 2019-03-09 at 7.56.56 PM.png delete mode 100644 iOS/Gradio/Assets.xcassets/Video Camera Icon.imageset/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/Video Camera Icon.imageset/ic_videocam.png delete mode 100644 iOS/Gradio/Assets.xcassets/Video Camera Icon.imageset/ic_videocam_2x.png delete mode 100644 iOS/Gradio/Assets.xcassets/Video Camera Icon.imageset/ic_videocam_3x.png delete mode 100644 iOS/Gradio/Assets.xcassets/X Button.imageset/Contents.json delete mode 100644 iOS/Gradio/Assets.xcassets/X Button.imageset/X Button.png delete mode 100644 iOS/Gradio/Assets.xcassets/X Button.imageset/X Button@2x.png delete mode 100644 iOS/Gradio/Assets.xcassets/X Button.imageset/X Button@3x.png delete mode 100644 iOS/Gradio/Base.lproj/LaunchScreen.storyboard delete mode 100644 iOS/Gradio/Base.lproj/Main.storyboard delete mode 100644 iOS/Gradio/Camera.swift delete mode 100644 iOS/Gradio/CameraInterfaceViewController.swift delete mode 100644 iOS/Gradio/CameraViewController.swift delete mode 100644 iOS/Gradio/Info.plist delete mode 100644 iOS/Gradio/Interfaces/CameraInterface.swift delete mode 100644 iOS/Gradio/Interfaces/SketchPadInterface.swift delete mode 100644 iOS/Gradio/Interfaces/TextInterface.swift delete mode 100644 iOS/Gradio/MainPageViewController.swift delete mode 100644 iOS/Gradio/MainTabBarViewController.swift delete mode 100644 iOS/Gradio/SketchPadToImageViewController.swift delete mode 100644 iOS/Gradio/TextToTextViewController.swift delete mode 100644 iOS/Gradio/UIImage+Extensions.swift delete mode 100644 iOS/Podfile delete mode 100644 iOS/Podfile.lock diff --git a/iOS/.gitignore b/iOS/.gitignore deleted file mode 100644 index 05ca299a70..0000000000 --- a/iOS/.gitignore +++ /dev/null @@ -1,42 +0,0 @@ -# Xcode -# -# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore -.DS_Store - -## Build generated -build/ -DerivedData - -## Various settings -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata - -## Other -*.xccheckout -*.moved-aside -*.xcuserstate -*.xcscmblueprint - -*.xcworkspace - -## Obj-C/Swift specific -*.hmap -*.ipa - -# CocoaPods -# -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -# -Pods/ - -build -Output diff --git a/iOS/Gradio.xcodeproj/project.pbxproj b/iOS/Gradio.xcodeproj/project.pbxproj deleted file mode 100644 index 41166410c7..0000000000 --- a/iOS/Gradio.xcodeproj/project.pbxproj +++ /dev/null @@ -1,456 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - BA9C6129222F882B00B02D82 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9C6128222F882B00B02D82 /* AppDelegate.swift */; }; - BA9C612B222F882B00B02D82 /* CameraInterfaceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9C612A222F882B00B02D82 /* CameraInterfaceViewController.swift */; }; - BA9C612E222F882B00B02D82 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BA9C612C222F882B00B02D82 /* Main.storyboard */; }; - BA9C6130222F882C00B02D82 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BA9C612F222F882C00B02D82 /* Assets.xcassets */; }; - BA9C6133222F882C00B02D82 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BA9C6131222F882C00B02D82 /* LaunchScreen.storyboard */; }; - BA9C613B222F88B600B02D82 /* CameraViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9C613A222F88B600B02D82 /* CameraViewController.swift */; }; - BA9C613D222F965800B02D82 /* Camera.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9C613C222F965800B02D82 /* Camera.swift */; }; - BA9C614D2231E17C00B02D82 /* UIImage+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9C614C2231E17C00B02D82 /* UIImage+Extensions.swift */; }; - BA9C61512234667600B02D82 /* MainPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9C61502234667600B02D82 /* MainPageViewController.swift */; }; - BA9C61532234755D00B02D82 /* CameraInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9C61522234755D00B02D82 /* CameraInterface.swift */; }; - BA9C615522348CB900B02D82 /* TextInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9C615422348CB900B02D82 /* TextInterface.swift */; }; - BA9C61582234915700B02D82 /* TextToTextViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9C61572234915700B02D82 /* TextToTextViewController.swift */; }; - BA9C615A2234CC9A00B02D82 /* SketchPadInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9C61592234CC9A00B02D82 /* SketchPadInterface.swift */; }; - BA9C615C2234CE2700B02D82 /* SketchPadToImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9C615B2234CE2700B02D82 /* SketchPadToImageViewController.swift */; }; - BA9C615E2234DB4600B02D82 /* MainTabBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA9C615D2234DB4600B02D82 /* MainTabBarViewController.swift */; }; - FA56A3291E9C242D9A59B355 /* Pods_Gradio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0F4AB8C8860E479D08D9B1B /* Pods_Gradio.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0478E5221F843AD4860486D2 /* Pods-Gradio.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Gradio.release.xcconfig"; path = "Pods/Target Support Files/Pods-Gradio/Pods-Gradio.release.xcconfig"; sourceTree = ""; }; - 3DD599F9F02691C494D21AD8 /* Pods-Gradio.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Gradio.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Gradio/Pods-Gradio.debug.xcconfig"; sourceTree = ""; }; - BA9C6125222F882B00B02D82 /* Gradio.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Gradio.app; sourceTree = BUILT_PRODUCTS_DIR; }; - BA9C6128222F882B00B02D82 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - BA9C612A222F882B00B02D82 /* CameraInterfaceViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraInterfaceViewController.swift; sourceTree = ""; }; - BA9C612D222F882B00B02D82 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - BA9C612F222F882C00B02D82 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - BA9C6132222F882C00B02D82 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - BA9C6134222F882C00B02D82 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - BA9C613A222F88B600B02D82 /* CameraViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraViewController.swift; sourceTree = ""; }; - BA9C613C222F965800B02D82 /* Camera.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Camera.swift; sourceTree = ""; }; - BA9C614C2231E17C00B02D82 /* UIImage+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Extensions.swift"; sourceTree = ""; }; - BA9C61502234667600B02D82 /* MainPageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainPageViewController.swift; sourceTree = ""; }; - BA9C61522234755D00B02D82 /* CameraInterface.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraInterface.swift; sourceTree = ""; }; - BA9C615422348CB900B02D82 /* TextInterface.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextInterface.swift; sourceTree = ""; }; - BA9C61572234915700B02D82 /* TextToTextViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextToTextViewController.swift; sourceTree = ""; }; - BA9C61592234CC9A00B02D82 /* SketchPadInterface.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SketchPadInterface.swift; sourceTree = ""; }; - BA9C615B2234CE2700B02D82 /* SketchPadToImageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SketchPadToImageViewController.swift; sourceTree = ""; }; - BA9C615D2234DB4600B02D82 /* MainTabBarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainTabBarViewController.swift; sourceTree = ""; }; - C0F4AB8C8860E479D08D9B1B /* Pods_Gradio.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Gradio.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - BA9C6122222F882B00B02D82 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FA56A3291E9C242D9A59B355 /* Pods_Gradio.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 5107ACADEAE2E89D7C45766D /* Frameworks */ = { - isa = PBXGroup; - children = ( - C0F4AB8C8860E479D08D9B1B /* Pods_Gradio.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 5DF7B4C66DEE1809778C41DF /* Pods */ = { - isa = PBXGroup; - children = ( - 3DD599F9F02691C494D21AD8 /* Pods-Gradio.debug.xcconfig */, - 0478E5221F843AD4860486D2 /* Pods-Gradio.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - BA9C611C222F882B00B02D82 = { - isa = PBXGroup; - children = ( - BA9C6127222F882B00B02D82 /* Gradio */, - BA9C6126222F882B00B02D82 /* Products */, - 5DF7B4C66DEE1809778C41DF /* Pods */, - 5107ACADEAE2E89D7C45766D /* Frameworks */, - ); - sourceTree = ""; - }; - BA9C6126222F882B00B02D82 /* Products */ = { - isa = PBXGroup; - children = ( - BA9C6125222F882B00B02D82 /* Gradio.app */, - ); - name = Products; - sourceTree = ""; - }; - BA9C6127222F882B00B02D82 /* Gradio */ = { - isa = PBXGroup; - children = ( - BA9C6128222F882B00B02D82 /* AppDelegate.swift */, - BA9C615B2234CE2700B02D82 /* SketchPadToImageViewController.swift */, - BA9C61572234915700B02D82 /* TextToTextViewController.swift */, - BA9C612A222F882B00B02D82 /* CameraInterfaceViewController.swift */, - BA9C613A222F88B600B02D82 /* CameraViewController.swift */, - BA9C613C222F965800B02D82 /* Camera.swift */, - BA9C612C222F882B00B02D82 /* Main.storyboard */, - BA9C612F222F882C00B02D82 /* Assets.xcassets */, - BA9C6131222F882C00B02D82 /* LaunchScreen.storyboard */, - BA9C6134222F882C00B02D82 /* Info.plist */, - BA9C614C2231E17C00B02D82 /* UIImage+Extensions.swift */, - BA9C61502234667600B02D82 /* MainPageViewController.swift */, - BA9C615D2234DB4600B02D82 /* MainTabBarViewController.swift */, - BA9C61562234904F00B02D82 /* Interfaces */, - ); - path = Gradio; - sourceTree = ""; - }; - BA9C61562234904F00B02D82 /* Interfaces */ = { - isa = PBXGroup; - children = ( - BA9C61522234755D00B02D82 /* CameraInterface.swift */, - BA9C615422348CB900B02D82 /* TextInterface.swift */, - BA9C61592234CC9A00B02D82 /* SketchPadInterface.swift */, - ); - path = Interfaces; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - BA9C6124222F882B00B02D82 /* Gradio */ = { - isa = PBXNativeTarget; - buildConfigurationList = BA9C6137222F882C00B02D82 /* Build configuration list for PBXNativeTarget "Gradio" */; - buildPhases = ( - 7FCDB3521EE8259A582818B7 /* [CP] Check Pods Manifest.lock */, - BA9C6121222F882B00B02D82 /* Sources */, - BA9C6122222F882B00B02D82 /* Frameworks */, - BA9C6123222F882B00B02D82 /* Resources */, - 1F4F92E2906F89435ADF179A /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Gradio; - productName = Gradio; - productReference = BA9C6125222F882B00B02D82 /* Gradio.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - BA9C611D222F882B00B02D82 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1010; - LastUpgradeCheck = 1010; - ORGANIZATIONNAME = Gradio; - TargetAttributes = { - BA9C6124222F882B00B02D82 = { - CreatedOnToolsVersion = 10.1; - }; - }; - }; - buildConfigurationList = BA9C6120222F882B00B02D82 /* Build configuration list for PBXProject "Gradio" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = BA9C611C222F882B00B02D82; - productRefGroup = BA9C6126222F882B00B02D82 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - BA9C6124222F882B00B02D82 /* Gradio */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - BA9C6123222F882B00B02D82 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BA9C6133222F882C00B02D82 /* LaunchScreen.storyboard in Resources */, - BA9C6130222F882C00B02D82 /* Assets.xcassets in Resources */, - BA9C612E222F882B00B02D82 /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 1F4F92E2906F89435ADF179A /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-Gradio/Pods-Gradio-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Gradio/Pods-Gradio-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 7FCDB3521EE8259A582818B7 /* [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-Gradio-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; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - BA9C6121222F882B00B02D82 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BA9C612B222F882B00B02D82 /* CameraInterfaceViewController.swift in Sources */, - BA9C6129222F882B00B02D82 /* AppDelegate.swift in Sources */, - BA9C61532234755D00B02D82 /* CameraInterface.swift in Sources */, - BA9C615A2234CC9A00B02D82 /* SketchPadInterface.swift in Sources */, - BA9C614D2231E17C00B02D82 /* UIImage+Extensions.swift in Sources */, - BA9C615522348CB900B02D82 /* TextInterface.swift in Sources */, - BA9C613D222F965800B02D82 /* Camera.swift in Sources */, - BA9C61582234915700B02D82 /* TextToTextViewController.swift in Sources */, - BA9C615C2234CE2700B02D82 /* SketchPadToImageViewController.swift in Sources */, - BA9C615E2234DB4600B02D82 /* MainTabBarViewController.swift in Sources */, - BA9C61512234667600B02D82 /* MainPageViewController.swift in Sources */, - BA9C613B222F88B600B02D82 /* CameraViewController.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - BA9C612C222F882B00B02D82 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - BA9C612D222F882B00B02D82 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - BA9C6131222F882C00B02D82 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - BA9C6132222F882C00B02D82 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - BA9C6135222F882C00B02D82 /* 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++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = 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_IMPLICIT_RETAIN_SELF = 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - 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 = 12.1; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - BA9C6136222F882C00B02D82 /* 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++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = 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_IMPLICIT_RETAIN_SELF = 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "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 = gnu11; - 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 = 12.1; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - BA9C6138222F882C00B02D82 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3DD599F9F02691C494D21AD8 /* Pods-Gradio.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = RHW8FBGSTX; - INFOPLIST_FILE = Gradio/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = app.gradio.Gradio; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - BA9C6139222F882C00B02D82 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0478E5221F843AD4860486D2 /* Pods-Gradio.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = RHW8FBGSTX; - INFOPLIST_FILE = Gradio/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = app.gradio.Gradio; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - BA9C6120222F882B00B02D82 /* Build configuration list for PBXProject "Gradio" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BA9C6135222F882C00B02D82 /* Debug */, - BA9C6136222F882C00B02D82 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - BA9C6137222F882C00B02D82 /* Build configuration list for PBXNativeTarget "Gradio" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BA9C6138222F882C00B02D82 /* Debug */, - BA9C6139222F882C00B02D82 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = BA9C611D222F882B00B02D82 /* Project object */; -} diff --git a/iOS/Gradio/AppDelegate.swift b/iOS/Gradio/AppDelegate.swift deleted file mode 100644 index 7d79017016..0000000000 --- a/iOS/Gradio/AppDelegate.swift +++ /dev/null @@ -1,46 +0,0 @@ -// -// AppDelegate.swift -// Gradio -// -// Created by Dawood Khan on 3/5/19. -// Copyright © 2019 Gradio. 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 - } - - func applicationWillResignActive(_ application: UIApplication) { - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. - } - - func applicationDidEnterBackground(_ application: UIApplication) { - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. - } - - func applicationWillEnterForeground(_ application: UIApplication) { - // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. - } - - func applicationDidBecomeActive(_ application: UIApplication) { - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. - } - - func applicationWillTerminate(_ application: UIApplication) { - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. - } - - -} - diff --git a/iOS/Gradio/Assets.xcassets/AppIcon.appiconset/Contents.json b/iOS/Gradio/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index d8db8d65fd..0000000000 --- a/iOS/Gradio/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +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" : "ipad", - "size" : "20x20", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "83.5x83.5", - "scale" : "2x" - }, - { - "idiom" : "ios-marketing", - "size" : "1024x1024", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Gradio/Assets.xcassets/Contents.json b/iOS/Gradio/Assets.xcassets/Contents.json deleted file mode 100644 index da4a164c91..0000000000 --- a/iOS/Gradio/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Gradio/Assets.xcassets/Flash Off Icon.imageset/Contents.json b/iOS/Gradio/Assets.xcassets/Flash Off Icon.imageset/Contents.json deleted file mode 100644 index af8e1f2c12..0000000000 --- a/iOS/Gradio/Assets.xcassets/Flash Off Icon.imageset/Contents.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "ic_flash_off.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "ic_flash_off_2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "ic_flash_off_3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - }, - "properties" : { - "template-rendering-intent" : "template" - } -} \ No newline at end of file diff --git a/iOS/Gradio/Assets.xcassets/Flash Off Icon.imageset/ic_flash_off.png b/iOS/Gradio/Assets.xcassets/Flash Off Icon.imageset/ic_flash_off.png deleted file mode 100644 index 4367ecbca128e532be71270be4d2e54ff8b00c34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i>7Fi*Ar*{AFB){iKsbc`JDP6V*BFq-C8r-rRVx|EsxSMWb&Q4{Q`OLuS-(4*_d%pWlI;hrKJ5gf7oBI!Ke%!dosB|YX$|0qFD#s6pBkcT5 z^PV)RYgaXM$TXZ%J=n|Iu_blG^I+H0vz)@8)m)us|BcDsr$q6+Z~SJU6B#^R{an^L HB{Ts5p6X9* diff --git a/iOS/Gradio/Assets.xcassets/Flash Off Icon.imageset/ic_flash_off_2x.png b/iOS/Gradio/Assets.xcassets/Flash Off Icon.imageset/ic_flash_off_2x.png deleted file mode 100644 index 70ba9d28be2ff4f90d54bb6d52dc33c681987a99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311 zcmV-70m%M|P)L~|3*%S(-2?Pej zj<^Oycr}}-*+k7IYAP`RUK^1C+?slBL^Sa3ka(g2SAgSKqCIw-c%lIp&z1D{R}JNYJN4ps+l;8&uv&#J(iJ&9G9Qk&V7+L?9#v@f}d(G$Gm@VEc~002ov JPDHLkV1kB0eh&Zu diff --git a/iOS/Gradio/Assets.xcassets/Flash Off Icon.imageset/ic_flash_off_3x.png b/iOS/Gradio/Assets.xcassets/Flash Off Icon.imageset/ic_flash_off_3x.png deleted file mode 100644 index c1fb7a7882dbdf81b33a2950324147850ee9b3ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz*yz!;uuoF`1Xoz)|5bz;}6v* zybOBH_J}X3-g{&BefbwkP1+kS*>)@yVv*jsf9ekAjhh65vS;=@-YRpx?LDNmsXbZv1+-tjYx~wPAj;>`)^tWS>Ccb4`` zE_mzteBIN=wo;EOPdN>>xt1qbjxJGu(wKBfy}EM2j4g#OKv7$DL6OOywB4nydMuX8 z3{eJ}{3GPvH2zg?Qmh_|FJ{LxYKm?td{XG(#k!ZNpD9S{MZ0!GJEJCN2@|8H;FqIa z4O6&wJ-jc+vLw<`KIYor1{3KQcN8m^NPIa|@_o(!Uq98DOP(94G%A?CWex_`_6GN!x`omTw*rztQp O7(8A5T-G@yGywo!$i8X- diff --git a/iOS/Gradio/Assets.xcassets/Flash On Icon.imageset/Contents.json b/iOS/Gradio/Assets.xcassets/Flash On Icon.imageset/Contents.json deleted file mode 100644 index 82b5c2ce35..0000000000 --- a/iOS/Gradio/Assets.xcassets/Flash On Icon.imageset/Contents.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "ic_flash_on.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "ic_flash_on_2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "ic_flash_on_3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - }, - "properties" : { - "template-rendering-intent" : "template" - } -} \ No newline at end of file diff --git a/iOS/Gradio/Assets.xcassets/Flash On Icon.imageset/ic_flash_on.png b/iOS/Gradio/Assets.xcassets/Flash On Icon.imageset/ic_flash_on.png deleted file mode 100644 index a621a7075baa3528deea009563f72e76d659e92c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iBu^K|kP615mliTQFo>`{6n44G z6gDA#TZ^VnB4_Z6^->2}b}dujx+MDUeEjd9dtPtdq9Ef@0LMHPX4VB4EDUxv=Y;Tm wNjTt?c)*jJ%_rf2-`fKXSxZY6JU*V+tyt9m{PKz)K-(BRUHx3vIVCg!04sDi82|tP diff --git a/iOS/Gradio/Assets.xcassets/Flash On Icon.imageset/ic_flash_on_2x.png b/iOS/Gradio/Assets.xcassets/Flash On Icon.imageset/ic_flash_on_2x.png deleted file mode 100644 index 44a7f41189e1d016bcd4729eb259032927273158..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0D<(@8%Ar*{or!C}dG8AFs59~~5 z40Bk#+hzF+q1Z*iSCS|5GU^&5HRDq zyO4^?v0olNUj@S3j3^P6$?hEy=Vy|FR(P=JKnMdyc? z_KJVtS{Gc+xh#QmS_0RvEj+A0|jdp)d zCe>c~wc=~w>&4gH*Y-!rZ?((9EpYt&?=SyTuZz7%&22n4#eu(=yJQK=F3Twn`O>Nv zT7_O@X3pKTmKAc|+wmZ0cEtu`h`DI%mQ>;egylG-DTsTY2 xw>ns>UYII`+q6c%pxv{VY?GFj{$2i??b=RuQx)Io?|>d>@O1TaS?83{1ONdmgZTge diff --git a/iOS/Gradio/Assets.xcassets/Front Camera Icon.imageset/Contents.json b/iOS/Gradio/Assets.xcassets/Front Camera Icon.imageset/Contents.json deleted file mode 100644 index 9fd5490c6c..0000000000 --- a/iOS/Gradio/Assets.xcassets/Front Camera Icon.imageset/Contents.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "ic_camera_front.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "ic_camera_front_2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "ic_camera_front_3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - }, - "properties" : { - "template-rendering-intent" : "template" - } -} \ No newline at end of file diff --git a/iOS/Gradio/Assets.xcassets/Front Camera Icon.imageset/ic_camera_front.png b/iOS/Gradio/Assets.xcassets/Front Camera Icon.imageset/ic_camera_front.png deleted file mode 100644 index 85390cdb5643d5cdfe56d498ad954e0f73b4f448..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i7Ec$)kP6156E5-|GT>p&*Ek{; z%EG*G6HAg&grc81gPmNB&_ffqpD*stpE~)?hog+neXT9s3)|Yd18VFfWFj?|RBQ;D z&EC``U@524bLI(~^q))fw9Dn>^J8v&Z8Bc|V|7TnH zL79-2Z&pw-N0fC;DL}u18M0xsO^6CHRHNS91hl9p9~nL$3k<-RhDCq#{=k^$?B-p8 zCcAlOV3FOtGtfl?)fb@j2ljbFK6_;33-m-yyQ*aL|DNOl*ki&4H{7vYb;~v99I@*I z9CF1gLf#9P9Bc>daK;<5rX{D_04Io|V>|Gm0`3ifp&teYU;w)4AHP!*P{#fN>EF|8 zqNYW3W$$Uz62X&bLZS)rBxFrJ5%?shUkk*4MG7?i=`&4)E@9d`2{kSj^>>HM00000 LNkvXXu0mjfm~Dap diff --git a/iOS/Gradio/Assets.xcassets/Front Camera Icon.imageset/ic_camera_front_3x.png b/iOS/Gradio/Assets.xcassets/Front Camera Icon.imageset/ic_camera_front_3x.png deleted file mode 100644 index eee062d124b54fde16af6e57052b37b4d1b2a13d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmV;k0ZjghP)&(XzNN()I$hvLW-!k>`HGTibv2xn6whxV$V^igive8r62>=%$Lp} z-+TM=gJk;3lnoM-lC!`#v}Qz~1c7vU#Rzpm7stdd981TjhH^V8pIB1Ad7UG}^ zrG+^S~0bL6_Wf)GjFEiu#WiRhL9 diff --git a/iOS/Gradio/Assets.xcassets/Pencil.imageset/Contents.json b/iOS/Gradio/Assets.xcassets/Pencil.imageset/Contents.json deleted file mode 100644 index 87c67b4c07..0000000000 --- a/iOS/Gradio/Assets.xcassets/Pencil.imageset/Contents.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "pencil.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - }, - "properties" : { - "preserves-vector-representation" : true - } -} \ No newline at end of file diff --git a/iOS/Gradio/Assets.xcassets/Pencil.imageset/pencil.pdf b/iOS/Gradio/Assets.xcassets/Pencil.imageset/pencil.pdf deleted file mode 100644 index 104668f2c720ea215fe1d1267991d7f480c3d965..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5681 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 diff --git a/iOS/Gradio/Assets.xcassets/Photo Camera Icon.imageset/Contents.json b/iOS/Gradio/Assets.xcassets/Photo Camera Icon.imageset/Contents.json deleted file mode 100644 index 359e08a545..0000000000 --- a/iOS/Gradio/Assets.xcassets/Photo Camera Icon.imageset/Contents.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "ic_photo_camera.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "ic_photo_camera_2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "ic_photo_camera_3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - }, - "properties" : { - "template-rendering-intent" : "template" - } -} \ No newline at end of file diff --git a/iOS/Gradio/Assets.xcassets/Photo Camera Icon.imageset/ic_photo_camera.png b/iOS/Gradio/Assets.xcassets/Photo Camera Icon.imageset/ic_photo_camera.png deleted file mode 100644 index 2ce3c5b7c82ca5ac6363b748d5ee02dd19b092d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i&7LlfAr*{wC&qF$Imoc5R}1+I zaxZNE@R&vMuEGnp#)}JGjzqIGJ?W$|7=WRm0}mdKI;Vst0A%c3asU7T diff --git a/iOS/Gradio/Assets.xcassets/Photo Camera Icon.imageset/ic_photo_camera_2x.png b/iOS/Gradio/Assets.xcassets/Photo Camera Icon.imageset/ic_photo_camera_2x.png deleted file mode 100644 index d83d658d03ec9c91c50e3fcdc5185fb50918b688..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP)hDSG`b1yb)y7wf)E%rK~RXhz(BI{1lhRBAw*F!ApSW|5cB{+RFWAI zQ<+7eiQSE%tAq*kd&?ixgKDa(wfq36G`;7d4oo;X(9h`KX`>EFK8hDV&8biKM)ky=N74XcO0>VMTl{Zkp_3l zI01yg9JLb!z6!_~R>IeQEJ26(x{W2MjV~F~k|1M2_iU3Vi;X~FlVy<|I`ITuQ(=^T zQmoN39khu}kPLNmK|SV)B2UjmP>&BpHAhc>&^%rivs9>2qrwaVuLa#fo4Aeeg)5|M zO;#Dkt*$fZ8XFuhxj^>WIg{YX(9#!F@#Hj-KD%TB9P7G*?iocH;Q|@3Gc1%89X&zY z;HV%&RtCqeo}fI6#Z_ofgCUfno}etsEHc8TQF3~MY@Y`f{?O8Tf&@w}QcxAedi+6y z`N*;;Gm(O(bRX(P6hSjI=Q~3vB|Skq;8+a}S_a3Su2)A2Wtekhz>X0pHeFpW*EMiV zav5*|^Bf!-`rh^}GT@lt%;(o}=ZtZqFGy0y&7w>L?@?Yx;I^gvFKiyKCrneON|iEG z4B=HY@h5+ds6O&w<}+x4D2hCo`%tWtA;=h8raz@ytdpW2n+mpaXm@#S&D&m&K{^oUaH1jB{c*=P4m9N*vNQaFh=yAb4aF di9{li_zj}-1QU&Csq_E<002ovPDHLkV1hQ_6@35z diff --git a/iOS/Gradio/Assets.xcassets/Rear Camera Icon.imageset/Contents.json b/iOS/Gradio/Assets.xcassets/Rear Camera Icon.imageset/Contents.json deleted file mode 100644 index aaf470231e..0000000000 --- a/iOS/Gradio/Assets.xcassets/Rear Camera Icon.imageset/Contents.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "ic_camera_rear.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "ic_camera_rear_2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "ic_camera_rear_3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - }, - "properties" : { - "template-rendering-intent" : "template" - } -} \ No newline at end of file diff --git a/iOS/Gradio/Assets.xcassets/Rear Camera Icon.imageset/ic_camera_rear.png b/iOS/Gradio/Assets.xcassets/Rear Camera Icon.imageset/ic_camera_rear.png deleted file mode 100644 index 222e9030fdc3020cc452e4bce41ccef365765ec3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iG*1`DkP60R2c||IeaU~xjq4@; zNN!-HmxIEpuHOmovr~aqyPC`_T!sk-^i|&t;uc GLK6U9^E0;q diff --git a/iOS/Gradio/Assets.xcassets/Rear Camera Icon.imageset/ic_camera_rear_2x.png b/iOS/Gradio/Assets.xcassets/Rear Camera Icon.imageset/ic_camera_rear_2x.png deleted file mode 100644 index d24d3b7833a07837dbe7493878ce8e4e9e5bc2b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmV+d0sa1oP)Y(?1XYz?o^ee;{Jo!9Ngd z0~yn<{(&2Rn2x;s0*1(l*^%=^G=Sv=AOHafKmY;|03Be|{`hU2fKvAd?U7#9pn{P z>D%$7alKqP4_8&{nfuFXBAWPmGR+?!=PU6J_b*$(85?`Mk!zRLM>eZ%%)T#Qo#HET z5AQEq;D0W|{NZgrl|6;`9_>+{rm*ngJV|9Yw$;vtc8-i(0S!zd3m8~69FUm3+vB-s zzgZxNw^7x|qGI5@|Y{b^ua;6#ZXQt6%MlPZ+K#L54Ymt5cC z5x1@OEw9RzKF5zIzO>(Zu(h8*ncq(*JY1&j!5=2$^&ZyK*Bkl)Ly^JL)z4*}Q$iB} D)|Hgl diff --git a/iOS/Gradio/Assets.xcassets/Redo Button.imageset/Contents.json b/iOS/Gradio/Assets.xcassets/Redo Button.imageset/Contents.json deleted file mode 100644 index 23eedd49e2..0000000000 --- a/iOS/Gradio/Assets.xcassets/Redo Button.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "Redo Button.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "Redo Button@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "Redo Button@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Gradio/Assets.xcassets/Redo Button.imageset/Redo Button.png b/iOS/Gradio/Assets.xcassets/Redo Button.imageset/Redo Button.png deleted file mode 100644 index 69e6243a6de96d4c4e63452cfb5372662a2d18ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2754 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 IM6N<$f}OD@_W%F@ diff --git a/iOS/Gradio/Assets.xcassets/Redo Button.imageset/Redo Button@2x.png b/iOS/Gradio/Assets.xcassets/Redo Button.imageset/Redo Button@2x.png deleted file mode 100644 index e56367d87d55e9f7758119e037245c7dbae6f4dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6133 zcmVPy1uSrBfRCodHoeR`eRk?<_sEDLUiXK5xK@!OugrS)Uc?mIoVtD zYk%Ju@4wbwd#(9>^PThk=Vi^ccIQrJnKQ6y)23}nROk+RgPx#Iw9lr~x!_>!G-0=J z?mVy_ya3jL#b7O112%N-+<7D0QW~6gC1Z2Jfi5%H*`>3x`HF-f5%dLv!Cqh>*dP1{ z*bVFmwg*|;CK6l@B#tHEMIgaE51xzmSF>G*aCB~=%>)v7@lils2vHSX6@Li$02mG= z2nnGZ2*oxK$TIL(@FaK~JPrN=))rAPCJ;(4G>ck@J&Efu@G)>W=m*{die~DHsg-#G z%mRM|FCmt9*#>VWkU)xvf>4*}05A$12Mz^A6a-<{H3{ZfFcbVQcmlDgOBSS=Ks*); z8dvDES#1V1r92x<2KOP96}3;x|ELKhXO1EGy|_3P zoCSvE?5>Q-zeJ|)0=I*g5z9YaX3_+b6Wft6B#LoBT`IG546Nkxd%#U#K0?uya_(jV z$(UjjM#hA;O>PZ`egl3CW+Rkbr;AM>Z3`gL5s2)?g=2xW7>O86bdhGiE(de-YEgU% zq)Q??0=x(Uy8%tp&H>j0>rS~VrxS3c!Te7tgM-|;&EHeu1ww&z0Y^cV=I^Hf-Q+WK z&p>xvejfaR^0*dgk!Ino&;p?lcBKTa0}q4a3tt-L$iPlyV*+@b@;MW9D{{69DG*5S z3QmN0HR~6GLKi}jD^Q)-)y16*rcqWy>zo(#SA`P@WUJM<8K_G&C}?&qI5D85JHMyg zCIEHA3T1^62;^3_8k(UhOzefK5%~nGZr8Qo0m^YGD9k#yLR7NoKhISVY^_E<71&j( zBXIP4FrG3kM7KD2fk5P72z>xt3WAT97|rT4pw{F@@Jq^8&)NiS!B#lPQ`ezF zf@aZzOTxg(T=Xbqd~A}7U0oBTKp<@g2)GPP1$|wSVSb!5FaVF50vVlw?uy?J)F(A-Z3a{arc)=zsBZYC z!mB_c0yIs{D_Gr@(VSB6u6D=TX#5 z3l}ccJ(gg!rfFZ$AAATL3iJ}Z-9gz*|8$)GBXBK{PmsYoK#+G$o2*T0?w^~i zSc7-9F#W&?Fa~@Sl;Ix~*~s6V2!ui!O;+v(MHR;qVxJ1`0(x^tuCKVkM=ln%F8hIURM!BkDQh)SFiIJ#1^Fh> zK;G$+j}&32x>Pe4sSV=Po%#j{RUDd;ngGtQE)^^!G`L&Mr5azJ0v07qrcjq<(t;q6 z6UeomB@c1jp@KXcJWK(X=0+d+@oJR$KmyQAmKtIKsQIIj%(sg;LRT`UMvi*X$YQ5-)bt}!N#TE(8tv8c;+A*qcArEHy3 z2?SEKl==)1l5HdyiS|nr;F}=@R>oN1cpdqg2)+nbfKplFE*7oFE-<0Rd?B?S5{H`m zA5n0n{EtT7f;H;IF$AYo+r5GfvdO>_wIC3o>n;T$isM!jN0YT6qtoGC_rN{{O4E`g zYC#alP)L{qLV55eZaE|l?VEXIfch~K_jdtJ;1t@LzS%?OwMOSVz{F9IqNmKRBGh9Y zhPxhLiT?RIjIkkCO$&rn^)%XX4W*v{NopGc~EO<#tbyvg3x+s zTK9kA3q5bA;Qw+Hhv!mg0rw3H1TM}2dk4VDY-0Ed;#eC%EEYn^8E8l#(b(h50dTQ| z7|uc*c85HG!f1sM8WIRZj0O96CPYitC61Ro$6@YUh=C3TLhGSr10jq(zCj!_TBvL+ zs{t_3p+JaHZ{YJi_PCcAZl?9H^;H2>npO&-u0Uu#^cd}zJQMOd{=bSiv})AM7;wr! zU4amZ-VQ#*X+&+EU4l3kw>@k}jDh?aXjdS#9=eG*4)|PCqt^%BnLiEY!5FB`K)V9r zbd5WFuDSXf{x7huRqcYaqiz_eCy+6O(8Em_HND)3I2P6X#ts?-ju@yZ5V}`d(ykX6 z`?C2sp5)89`85V&25Jg~FNcAH;*%V2HI;iQt;b5oe$AaR(1w9F0-^QLpj?klHoMZd zP2vd;%;Gvdx@l$%cxRxEK!`}=j?tbXQ|oapt%of{^i%-mc54P|2}Dny?YH%5&OWL2 zu;nDq=r%_kF;Gh&YCUQl?1io$Tk!kT- zVrd!JN+2Yrn}fcVmgvO`w%#gjiQ4s2 z4bJC!@M|uOfesm{6v!c*tywJBHq~wn=1%!`xqB$7gUaP3M|jAi-uU;B2fwZ6@=-Eu zGlWS?UH3o04B*%B8)Hv!`4-G+)L*vkb%n>DTOq8JzzdX)Mbi9ZSL($c=$6 z43hPL)ZpAaw4d-}w)U!ha_pNh7*GqMsowW_2*=;q+A&0UuIZ2gAa zv#C?D1dM^48IVA<2FvvfmKG+yl5^fHd1D|o0}_bD;d+U?e&^$z)X`f4#z4*tNFX}_ z-6(WvFXPO9Skfiq<|`2c5=h@fSEjpYF_+u&_H-QD)eabtKz4WFr`p9*d;X)E68jt? z0}_ajRh}<|NQT8^3{*29fsC&{=-{&tQ98($xhNY063D@hGxaY1mOA!n?u>y%3`iiZ zO|w^8sAy&k1kZpEfru2JzgiW1p;&<7FyKod;V@v47z1?}FoDz|$G$QKOdwVVjDb1~ zm_X`~V_z8qCJ?Iw#y}kgOdxg0v9F8)6NuFTW1tQLz64?`dFvF4eH9J^J_Mp?;PniO znK2MN0}{x5$5HALUmwq)IL@ZID+2=($oD;D#NIaUfpl}(JOdJlkIJf_nl>{Af@eSi z`J0C*`$jLU^WfTC8Uu|pAc6RJHbbvEwH3XMmy@08i2(^j&t|M~?0+BpX*SEu7zmmH z3FHm1%5jwXJ;WUy`!sjPK+_CJAbJE=B5`TGaJHvQhvv%|NWy>wqW9$fJ;}u>uF?B| z^_wJS#z4>vNFaJfe4&RZhkEd7E{%bv80Zqcz->WOS7meZ5lr>^xCfI>^p;9XFrXGh zw)o#0r+?p%x86=YnloddNd{tp=(jr7HhFE@)3spHx>;#iwCi(aAQs4LcyT?GrHp+f z*W6j+#z0C2Vu9#J;fpELN^F%MyN#pehQe$AyZ&=3Qa0{K6#Sl!T7*`D+{>th|$Wne3T zME64;ZujhbzZgdH$K>n6Qa1*gV_++RM3+9mR^t)ZrdTef714XM%#48`7^o!>{Y0~m zWhWv;YqLgb$IKWAfq_~A(I8!|h!4}7PSlFnb0R+2H=k`7Xd{s50jghdrk*tPVQNJ_ z?!&S9GzO{}sQGRx{)2bpM6JylQhkA=&w9dfIAUGt$e+3K$N=@ND`maGV+ifKZqtJ3 zOoG*2^`EzURsLTL#>IIMS5v_GyEhN67@&;xezcp}eiQU?0$=tI91lpH z5lbLw1}Njv6%}kg`=0{g&twwhHsD_1)28Cw2JAss@#Mi#wmreKH7eMH92*X_PA^;| zz~jJ1;M2YkE<+YsQU<6{oxzoLD%Lu_n*{nN^^yB^1lJur34GdXIPaHxX3c?91}M|R zz^Vo+*6W;eJ_vJsLSX;hKqm4&myKZf&AS`o4PGhl;uKUJY=uawpHQJJyH)qX+hhXOz2 z6C8)qiiqW#fc=bH)791O1(cEQcU%En+1og}8tm#er+CAuT9Fq(D0VJ^`1x<)oc-cC zq-?YrV;ooyT-#r8_yyp0e1gMMK`6F?KvV!V7hM*wN|h^O%H>3$GV*CNajq31ZkDa! zs2i9LLNOJ9Zf2TD0@4@daSYIc(@<=bGkVDJP_QPHoD+wM#98Tg?1=J^I93EyKjsrl zqW7*P{jWP0nkIEjm9sOHkBLBY;z{%5EZDL-f_n|fk0*b6A~lq$_)WxeG0!-yaLPMG z>;e{okSrdP*zA_m+OT;7N8(UdH>940>gE*S=l%$ePXInqeA?3y4Q<`vyeqgJglLlqDwJlvEqNt50>?eT4??T}#B?_BdmDfNdV|oq zT7T0E3p_v!ST4Z@V@cW-6xayreAh^_$ zb=~6-w;`IkR^cpaB^Y(Jt_hK;C?+kB{u`7Rg?Y~lFF`r8b zO9M5nv<=zrCb)g`VW9k}!rg%&)Gk$A?|#Bgn6sD!HV7<@BMo%>Dsi0!tTky+({QDK ze&az%cg6{)jXlqiL^lK*q$2%k1b8wCbv#nZs9F;nz}G2q_)*vS!$6ZAq1!tI_@O%4 z3F9k*6sebo&Sn(fa<-R%9m8NRoG9R=510tnfg)IVpnzLY#xE?S?RFe zn9&}=IUa`tP1|1v7K5VLtpw`lZh6wOAmE;0c2O9P;(UayrZ2lE&393+BhNj+Snwh! zl4&{nd-CEv*Lwp5z6XKN0Y#fRnnBFp1COxC?OnE|G|ETi-y5iVawa$c6v^~sPamO- zmgN<6t^!fe6v82F^n*P5CEKEzegfh)a35GsL1<-Y;f*p;cVrNdFg^+VtyjW%LVK0# zPM}QYC%nF)%W@ZpqM$%Vv$-4Wpw9)gCB!@x+y&+qu~nfAx)S>?UGuY`qx#>R~ZWFbo7A1QLc&bWxCn zEp{FpJ9}8qwLs+Wd~m~-?3QQeO|l}vsD+VOo&!t4+h9G|lvPWE5X7UpOj@m~*W2_5 z8tV-M5{5p9x!i)lQrKl&dp$ggPbcP7Aj%Pis{!Ig;M@9KVp9vV97rTD0gYo`2NIE5 z86AHIRNBhuL-n-fUL4o!Yjy(rfqj7n*4o$mX{*oYQ0YwK_%7lQug=W5K$J5?qW^B= z!BwE;?m3WWnM5K~+FQ|wo|OmLZv_EVWqGTQUc{jYya*)DIzlPKz&*~6ZL?=!HA!9! ze&o94h_m8bAo4#3OaVon-HQ3NZFUSu9L{E|+6!B=9^Nb(v}(%qGvF0(ftcga7*JhM zolxEIYF=BA%AC{PI+)M*fB}`qZNKFhSU`?XVUpOnIKw_2=%C78R0>*(>T@@VD z5!&`?0=gVLj5w-SEr%9syYUoSAj%aYQ8#fYxEg52%giqWdgkRi@Dqfghs6qQg%?Q7 zK0?`^eZ8UM>)?R+xNV&=um(?h6m}xQSmexW&W=hWkeDZg(u@7EK;5qX@p0Sc#(;#O zH`d$)<{^$!O`eoaAaON7DDP$eEMP*3Ny&CwDUA6DBe-QES!B1g0*T2np~OsNw*3bw z{TgU-;WG%s=`-S)<)XoaN-vO@he#-=@>#9Qu=u!b8)iT^_ihK8wtc0nEk-pPEhCUP z;|N7>2RRbx#?{AwKAY8MK&`_pFd5v3D1u)aQac;TkG7mZVyY0zHtcH{F2WV`u5J9YBYt{|}CXjZBsXmNYx^PVEy>=kVXvDJ-A2}fNv zjd8Lzt(093)&PwkB!L z6_7}Yh{*^czDOTi=xLHPjB##~kcg-oXlq!7lkOH%zH`*+7@&SOq4h$HA(a8jtpn>M zKhV%FpkS%E2Zg0_O$+CGyoQV9QliNW8Na?3Lf*Zl!K+;^)?HJY^h%TV)_(7|h4u9x zpQFqc+}uz9#`cE%?)kZ+b`;~|-Y730b-HuwXkml|G*Y1GqoEXl9>9a4ZFk`Tr(b%n zB!+%y%hYeaaS9#(xjtM74o|)ux_NE(P<%w)^~1B<93>GiG-dNY0%p~^e;(`V#MVL(sf!d6kUuMnjB^M@Vtw*2tr z{;M}owppf?hy!pqKz8a*n-m0x2r(!!8_pvY`=(hg(gdN-C3}rmB~TqG;pAX-VoH`i zK62qSpQ*XY=TK|}frDBHSKLIU9d1$JQ_}Y#k{nY>x7H`qE{hDlKqX3W-3+S7Y}rW= z+WNttf(ak9qI3WzJ5_OTpan|6CG`*W&g3UNHLyCL98kN20_d8F5!q5Ndw9m^E|g4( z@iXZw9lSfPm4Kuep208xtKl5XIqY8bUPd^@i9atoW7|&IC+6qA;*|sW+bN9e9?!;Q}Ed~$nurO!EZ@LlMR%9?iq9%(ii351~c6sh1djE=<6S5`O5p<5RIV%$t ziz}nW7v`NCp%mg|4xFI7PYZvNh1}dXb$&ODX3-lEUp5kZVsFWDSDk7H)(IGsF#{?z zZhHqRv8M%gXL)>ct8^oXz1YPcmC1SbRRTxVY3Mz7-ZTmJBlqO4=!>Xd>AgF?>#pEV zNUf|+ecW=(s$e>Td7e$e`o6#E9R?ux`%HD@3w$@#+z9l7V}g!$7I|EL>1LU>Ma4J6 zK9l98x3gg{gGqWj4gfctYqCkv+N6PvFJC`_VNHs_VsEQ0qz_KN6^=P`{8Rxv)oX9I z7Fks7Dt|2j7i8ozRALSnvN~UV(G^?DYz&XRpQfr#KF4>zF>$?sLcDxZWP*(*lKf*F zqki@06Y*!;30bp_I@EJ&RJIK9N38V;-nMlx5d>DS^|mrc{p1#VoI4PR;Jvw~lK)U4 z&u5loi1jLmqAoDC?jsUCBUbzx|C^wTcLzo~Lm%E(C#mAMFEDwKG9Uzxb;725YnE;~ zucr~eg!taLc??wm} zS=h7I->Wci`;V)4pJcT3zr_tDc^E6;{RjQ9SHiFx>cA(tIYAOr3wC%pH1DCr-TkV!07XiF0QOrru0-q`!9hx$r!>qT{*1z~1w zcd@5v9i0jI3=hE;C9bn8ow7m&=gJ(T^sum<`BmFGV}m zR|yy_uO9}ME|m)4EIjJ|>u{4$7MO&VuEwB*wiiaABOu?zqd8dBZwlH$PJQ8?IX)Oo zu$TTFx}6#7JNITm`u=r!(I6>E>QcN}}*J3b`Yf*+@be z?{NWE93SaCeIv>lh<=DTRh(?MK|gL_N-ATOph0k78WS|_tTbF*D=zV9I~ zlcb~8e|Et~I0kXL`fCmeX0D~fI~N>My<}g=!;rS99qxmJo$iS1jd|+y%#(7BIQ3MY z!(yirAqRHP@1$H^RDlbcnkc30mho@)lbN5=DSo_&nk;B!Ot-725f|%D|8pl$nwaKE zoIEcY^P&y)k1vfeDo5^(0TPuGIT@416vy7;-R2IPKHpyZV>VDHe#m~G$GE!(i*C=J zz1|$!pj=^R7>LGtlBdyJ$?B_7f>_*#A&geWl-{T*C_-u)jnx)L64THQxg(s&(V! z;EeAmeMxo6=mhFo5!>mcm!8_C6z0kX71je*Q`Wsb#54?JGjTb#`C zHlF_FeGayv1WT)ZZg6W5bn$+^0CwXICzL%J;}%GW^Yh!4<$az7O{XY0JtTRFh6>(c z_~MyZ(^XBme9aZj;A!j&K^P^YFcfwFHBVA_G;zF}G+BFAh<96&UU4G#rde8qoan~? ziM+Mf2L09wfQ3!6-T@G3Y_#g9HQ}m{GSWiTeGI&!_gCRv5jxMc)h3ZW_Vzp!Q6zNh z+ot7`nm{zOgjhbeYY(HRai5YjK>F~%ik068PCmt$FIpD{4}jISozAaon8A%^=ozFW z9}vwXA(rFc_=@x%H)Ez-M{S3h2kI+w$dc;?Ut1sc@O3*AWS26OT#I&m8ge`Wg`sr> z?NgIu=@srwDk?E2N-caTo3KdJH(ye%=g-S&<~00#t!{1)7bmF_7wnJLBJfx50usgeY52~EY; zJ=bh5^^+j}Uw5gZIoj{#I+6g^*-{aHDVb|1pw6~0xV8i-%UbJQhw4h5`Sta|UJk9z z+MMxYtj*^5M~>(#0ohl4yjIe4yk9&ueZf+f&pd6qv6?_J774L<;6fvbxAV+@#|Jf) zLeV!%Bg-?$`@!-dA=J?`R>_Tk(dxI>c&Hm%hhl>FX9uE@<{SO3VQS@4Rm(Vy`Y#~D zt#cV=!1NM}@>Ue|TLt8#4GfuhabUf`=z8(IR<2RzLC9GT^*to)a>2#g*&z72;`bAU zDlQs@r0ra(tOHRs8JGcW+JhSNKlS;G@1qXX1}$f5|AJrY56oq8w5rGisj!G|!rJ97(;kjm4giyn3(7g|n(42nrEVp5 zF=%h3w}gP}mXd$RP|bu%*pxZ}m(MG5<=Roqp`;#UnR=mSKQSJ;V({=I(SsC?Zo{9* z2jEYhV#oc#nvVpq?3kyDir-~0cE843R0c~<#-Lt~n)bH#vs#wy!BNT~g&IhXm)*$J z`Wo6c4q2$9Scp#ibNe!DFcN9c00{y*H|K zNlliTzJGvJRB$n1-19aXVHc%;8&P-h2N6{r)no zId_VeL$*D5ZJf^J2f-2qkA}ps=c8`;vKheF#1QJ6y%G-w-ewONl2r)x{;;*HkE~9v zDKWg9IL=*0%__eM`3QBElpy!Je7JM|z{n|n5(DalXB1EvMl`W}-68r7L79XTQ5qJCYv7DfyO!)Kd2 z)r6|Hx5U+pXqnD+5Cc@o6D=&iqacBwI_}fvKyHSRrJKII{ z)W}=1pG)2X{_=J9QVQ^P$q4~0H>WmEjwg@1McriwbUbxFOjANXRWMKxv>Y~kXv12U zZ8+1UJqjI1C&ESPB+m;c`6=zeKjOI&nVtSiXXKC#JKTykw(gSYo4Zg`G~?$2m@)kT zNPqz4eh9Zms#k9zGYJYE^S!(mNF3}8N`_YKeIkeVXl6!pNVp^hx?xnzf@diaNy5#74sXTRs zY#8D=uyx~v)LHLL;%@;-O3tjy+k8@a1{r`OHS1w@NY1BX!Z<@(XZ*h+N#=ohNbnx% znk*))qK0NOqC6f=oN>DbB#H4n1lImz_IfqtSIr z4(;s$wFtsn8d#Bh>5i=-(U{<^0e1BuTbYT;CI@#69dMC_chvLi>-1wyHSKK&u0*&A z9Wlh*fFt-7P>VQRH7nc6fVu8cIwQ*D6mB#gTS!zmo`!Xq;LKS!Wb4ve6?n1T($FGP z^6x8?A?#MTWD_HvUg2--ivB0#$(L`p-SHp=c27Or>GydZezzT)i+hR|Uw7LeGJqK3 zVGp-K?;X_B{kMo|s#kcja}wG0PZ0S(PI5qujNGL1OeY6Z&3@<-k<1DL3Be0K$+Qea z$VLZ~Va3(fedPh}yo|uVEE1jZX^d+P&j)KnLAKgkUCT-UcMQ)zM#clu`i1d`(zs|& zY@JuBs@L@h60-3Wg(CN1%bLVQ`Tm%-_7!xG8-*5vT9}D)INmP48CB3!G2Umo`{kkS zEtZrRS-_d>gauCDX}dMx*#o7D3Wb!S1~JLo9R3&W>^FW@*qGp~={uw{uh>F!qnpA06HnTaaGyCZ= z=FPuP*M@is!t21>Th9m1g|1%dZEvN2xM=GlS}_<86(=mBk6O!(jYDsbWn_MIKKCXr z{}a>#t~W0hwmgG8Jj6?DW8bmwAR!{Ts1EWp(%%&yq}o~=kKbV^m(sAprpq950{%Wa zQO~|ht!)z&+0p-A1Lq}7w1`MHst4UF+Tk_nX&l-_x%5!1VKREA@Re_hEDli;{$=Us z^~AMx*o6F&mUP9h%c=YC^iXq$(k17bkE4xn?7j9ci)JMi-d-@pB?y#^soPbt%L7{4 zAC%tPhk~?RGT!%$591xs1GbBqCOE0rk0K%Y5yP#gCHgJiW}0Yng-mCxR&=D6sYK4(*AF*P1eq z3(*#Qpb=IHpvZ~HnC|ldg;zl|Unx@SCw3Yj8;Pj;#EK<6f22V*`f)%#ubGDzaeN}k z6dXf$rcLrPfK^!;^)RZFKj>VYjDeQWF7A&_ z#C!si2Ts>cTJA3CF#k6C^B1mtwP;Ng{Ky50uIMnfXHsMBqSRBn7R#M%E^+780}8+k zCUF)SUaZB_OrZ9tJL_e3p?}?Zp+tr~E&xjsvprrxeHpVlPPB-AA*$Yp-I8rPu_dkl zKjLB&JOFS#3+k2NQ-agb$B(kg-aN!%A4*86XMxbV^g)F5S~+mpkLX#`&;Cs{+UP8V zOcgjb9eAscLYYDRLhvyB)?;%SAK`!Vic!8G@!tuwhOq76b4VZhLrAkbZ!l34;U{~p zFXFTo^2YziNFR_=SMWWC+VDMc+0jq`OMK+Q+cx_NF!E?_tNMQjL4DERRTC8J%jp+D zuK$+G|N5nXXdo>j0HY`ooa761al@lod_FD&{C_37FiA8j*}pg3dNv9jBr4fDR&V#_ ziR)OD57Aq?*`Fac9pjqjb(J{^KMeL^FBJd;c}&{%Fd^#B5CO6inX-N-I(!^7ok}#a zC8N$es-DQ1|B`7&8VXQ%A%9RrWcqRB^c#2wNeM3Ng3^UG(^X;tRD%%=~#{^?^1a&_!`IoOmt zCK@XIkVtR^>EkMqN<}>XM^d>xdKAKOo6{IKt(I6w*w+-Q2sR?*|K+ekCq^!2Y2# zVR6ufBRI2$_9kuP=@f{39GT!P)Gifn_EWiCpsQ}=Y%c1bcO;_Dl0Xo-G(?py^8xrz zr~ChNTi$J&dxnv+YOmjhm>#M^h_1}%!pl@2#rMmupqC8h7%9%v)GD%>+osECc{H1K; zO5q+h3T^xs+++0R>SeGBsP;4Lt+F3x+bvT=sRY+=Qe3xxb$B`njVnhQA zD2%Xm=byq#t2o0vIDHOZSsZ-)w*&A0WiNb}4OhAeZg#+f;7$}n#~yBk<7m1PZGM^b zZU4vfGv6>`sBB~rGiiwUrl&^l%boYZv}~#WH&cg!j#=uf420T#(!72Dldg;QtH-}X z1{2^hwar7$?b4TIc-w&k4STx+Y{0*|<_!D+uGcM+mHd&%GTN{czOeq3E?^W|_AlY5 z^m7dR^ftRh2&=wsj(bPco!10tPo2wpbROlpDwbh3A$iPU_nf6@SrJeyBa?}c%{T#5 z-~Z2m55?I<8C%buEFJou=m%u%FZFO75ym3Cjb$&U?e{6e54t@IihCf{8K~T_+4haR zfr>5y%}mFv^_cyXkCuH()2QIK7`((4xHSlklaz2g2-DFY^!{^KMYDIenON5SWQdj0 zvvg$Tv(cimdW+Vy%iSleWphzCu&z6qkPj$SE_z1a7O-!>t)?{97u(hUqvevQJ|YkZ z1WTw@9(`CbAdl#`^>m9^$mdNPG|fltK{jl08?2_n3$n|?j+^=ZZq|mq^0xs4G82sm z#pbST?BE-hme#GS`i98LXIB{wvC(9*$p;3Rzk7tN*8E6G0t0j4+83Dc}>Ka8SJV{qPbgitUQDuBWr{c`uF^4CX+ zsiy4*P42wp!0O@mgc4u}ukhhz9I`^|phJO&Dx5KpE_tDH?V`(we-x6BB7Z6I}^0 zo)>`Yp;Hdry;~!{x$ph)t*4m1&3^qr9a!DvEqF;D+=;Jj_1b#zQ{HKT|K``#uz+O(qZ zYhumU3!;IgRv71}P<_T*#)&kpv$<1%Vux{2s7tJ(r;4N`M_VqSSK23BgyeUYP?}R3 zjU9Gt()oo&St!>fRd{zl?HghjIG}FO9O>B^Qx4NOw2vfesF#nh`YWrU3PC9QpQ%X5B5g^?h~x!lFUHl`MT_*|ETSO5m!D zm@CGd^2T5ytl!Yrv!*ftefa0CG;CX1>iwo7l;)_J>S3E#M1~olv4q9e+W3>hR>_`I zozxRwwzc~;!}G_Vv+&NXlcqpD0jq~!1af~*?aUxwkAkv4k<4W~S%wKFJ9`tDFRX4K zR^69=G0*C)Mw|OCeudH3pWK=b^eO$_t}OU-yyiqPtPmoShFYKo>dlRxN8^s8JOa4JrS`nru_s`vp<4+=K*_jn^@^rn!lo>Y{~&G!?6OF* zJ}YAJtwZR^Crdk!dO=A~i>Uyfv|cTon1-SBR`TQbh5w zk$5W@E5qHu5(2Pf7H_J(RTje_u^co$`pe&WG%5b~+Hz1w1iOu&|LcxmG%Gk+pksO>pH&aEUlXFc5QZ4!Kqi3~nuQNyp1udia%*#Hh7Tvlv z%Jt`qpCt}+^Z%TSDrbGF7T)%A$EXA8zo(_4o-kXqT2k%I^2LkS8@;?Un)pumyx?J$ z_nZu^wJbLpW;T59U={?s4iP@sUNOSpfSM%6bpx4=bvn)UC#dgpKZBxUJ5*^J3J%Wx*5bzO;ixk* zvWM!Li=qecWb906p}Q-^S9R;`v70vBhSrG5Fn||xEx}(+@(ZRj6JIZEiOQqJ^K`+; z0NJg;={SHwP$#`h#o^-nVX*iwF|1MbJJ+iCBlrE8weedC5iBebX^{yI<07J8DG2`B z*Lnx598Cv){k7Q*h(Rwe$36)ynoz;hYch+T?!v@Ezp6K{gWg$+u4wL;xk4fxh$xl^ zmZmmj>;|CX1pX<-AAkQUDL~yICN>8D`q5Q$Fd^%j`Im@N9(omHs)Ry>L`CsYsMVRG zs#wKC!bx2?=wiurD_Ott9^M`OyDc1H_@6{~zhSC=6QB?WpN(}xSCG_@7`=hewoP9vDp2QWpD$S<^}N~R zm~UB{%`h#HMgx3rCQc0~*BGquR5Xl<2%Qluu~xWs?i^=+C2#x2vTGl2Gw|yHdRMCE!U1*jnOlRn0zkk;mY45}2PW$#>F5VRKRV!OI;-jG0e=fdbB=!vh zO1A+wj`r=K<8^ALI<@PwauIrd)3VFOvCH$WY5Xm zObkakB86V;rPv%CgT=-HuRhs+GZ_7?SM6GHZ)v92VJ1$C%i_|BZioDoyg;ksV@cZ; zB>Y+9J*e8Gk}|CguHQ;^-5?nWo(lJVC@!$x9Rag%D@Vz9dgfYIjdF0(vrV!o( zp68Bc@TGeKa5x8TPzD%neQ?|@vAB9ppv@KWYH3lZY`uTREckp)pbRz_#M#cRKT>IV z#{-u>R(+$hu&Uup6h0RU__-b5X?Bo+ZZLjNbskS!!xRvjqiGJW@vEHSmM|Ai>sN}96hr`$9_+)Mqmx>v- zv3=QM3)4(pTtAQ{JV2=z*ig+UpdOW9e*9;kdqp%55Kd|g{7pK;6w~AJRc}dKUn!^uP#}oy442AW>}hb(<7#pvdWV*N&6>)T zT5zo@zAn9J-?{FN^QD~EN<&TydNI5*}PU2!0qoHW0o6wdtEV4a9)W%nZ+ zQv7bt=^NOw=9wHj_PKj+a7U_P-8J7m2m_8iLGm-!)zmON&qmb1ILbmqx`dGe_Rms> z-GM5uQ1Qeoa8v59!@4UM6H^?sNLfWYJ;2^+emqYDja33|FxHL7r!mxFN@#Z~wX>Kd z7*U=zA*~ec4DYz+N1$7vi+mFGc-V5TH|Aq#{_!@M5G=5Z6njiOYKY1Q$`W>qn&CAE zSuFMS?iR?mZ>0a5eAGuQ`y2ocm^yIB#BpwN!N8%}v9G5>mn}%7go`?Z!sz7k%XJ}& z3NoR!k;HGc#(&%`p6A04hp1A`h3;Gf>kDFjU?IuRNKe=WY{s=WqUNN8zY6XQgD9f8 zO8lr}mwu~W2LSmHP)Gc0!o3hC@f?#~dpM1~u8|M>&Cxj(dQZ|jg%GM@)S>bpy9BYt zq`WA>_BM15V^Uyu-X#xew0WHPuZNPwd@QL#2JqV0bG5bEL=h}L^4r^gw+OTEp_=~H zoR5OB|GAkFO}~-Yp(bg>WeDy5<4o{&xv@GqOm}S5W-vAMMG;^vgAt|aB_HCq8n;=6 zCP&!g{$?A#ZmrNTX>DWOI%>UE1h~lr(&a}(N+&rr9hd;D^+IyZj@m|HW;2Vw=52IS z-@3^h2;^^^%}p_gFVnT0IOEYXNzZ=7F*dlJT_Z58b8@3!Bfb(b2>i|R3J<5=C$LNT zq2L!rpU^Y9&-w0eKc2V6_xN${X^lXIK^qZs*JN?p_3ojMT(~k@5v_Jx$+?4XLdm~U z-fWF1xFHX?l*Qyu|HgMvS!1ijj`d)5oN!8Ie_G@ zIJ>1xys_(?A-$@PBZ5kokL6cxQ_WG)PZalGB7X!ejNqXlop~FhjKwoEBjQ^MLKx&xJmQGt+DmxBgtsVWiEjf?-+>YfbkP@AavU!TLevhwn zjS`=D>!#=TxL{FD#IR^UZ2vN%SlPo$Tx zuLeV5&AAffF2x?X8G4)8i54dF-tjJ6e_8^b!s=UxW00kuzd)Gd$R?IQyp8wueY(6* z(pbu6j8!VO%=OxWD*0TPpU${sEt3bcnXQ?bDV$c}ic^#$I!U#s2PEJjqMI7uv`3~F zC&40VC_#=S>2aGim;9RH2tM}Qn2EL1=&{~+qUlNVqyzNn`XvfY@;#OvK2atBU_>)Nffel=p;fS zOF4#+R7gTulI%3i?>m;aPW`Uy_g>d~UGMw;(f69m^SGb;xu560pXGk;`y*wltFM4m zM8l-&hdvFB-I%`GR^I@_00@9aa)%u{1i+0c-mVNc01J}L0k}TZlR=?_r6-X=(WQ`S z&J;jh9p=lRQ;1%$KrVSpK1*54HUUEgqoWG4az|RsWFJFeJH=$ffeTNu)@@h|!&a-d z`4+6DPcv`602Go$-!cxPcss920Bf9qIiszVSWX+KhWchomO(xg0B%ZjUHMC=cryU> z>h#PhzBE5Nnc@rJRtY*ZZwA=z3vg62=S+1?9;ba>MN>MBY(ZfF_MlK*eE^R40!3@D zl{#xB9&iNUHYOx@3Yh_L41@PV0!nLAzY)wKtqWeWo$?A7e0AFEBH$K&B*uy&E5iYB zYpOG7XA~9(zzr!>S2xCL9SgjQaE5v;h% z?>sjW`9E>pUmZ0Ju1oQ!k|_psVi5Rp`0CPuRhRy~dj|en?)k-SFG(#ysMZTS+HK3< zS=(kts9Idbv29Jtx1%0eUJu^8Hx$Yz2xx{wxVZnfD?WO!r>9jHmX|7?j?Ajo)UY>% zX=oHX7M~)p<#YP(TdAV~;%5Io_ zY&~0JKKi%nY}jD%P{9&GZgx0hspdr0Co5KQa`5y~R)4wEV*VFvqu$Vw$w@Zr@7Hri z#RTppcv^!aTYuz^Ia{iue60W7{bQpw&Y}S7;`f8TOaFU-T zpyDdO#I<_ld^wzZqPwO&sIW7v8S`OD>0oinPhmf8_HVa_J^ugVWP!&yLWDak^yBlU zA1}6*3v1&==Y!cg)%H0hhs939_EhrZcBW z-Ta>fO&e;>boGXMV?FpM3$fFE>8wWE{+^M$-94_8A>9=a)6b`&4;eOG;g~ENp$}uV z4!>-FQa{hVQ;=(`4cCJK7Z<3(f-ZOG=PI?dw3~(vrE?z?!<{Q%9;h*u_I<_2=`_g-VMIaVJ}pKH7z1Lm$ti$f2Tx(_-ZVby;HeX7Wew!s~ z+q&yM=1Od(XTyZgdZoD~OcaVwOxQjfc3Z6J>E9D-!BT4qUbdQ&9%o+BioIgn z?>T-8UL_2fleD|MyRJWS%#Y~tf- z*SFylo6^<3U?a)3ZJ$Si#C7gGz4QxPuZ!J_GfX(~mS^MHEaIh|!VS9y&)UWgkd6_b zk&F;sm&lin8H)_#Tm;b(i>Gr)UAJ>>WNvBr^W(N%j#H>Vc0B&LeM#zVp6A4IRq?Hj z4|cr~_X#cE>45Ua7D4X{bjMbPkJW7%ke&*>zrRmt^0Yv$??=+9ebulq@vuGp@p~I; zWG?XAK|M|j?7Ij^dP-Ufit>%{u_CuU#F$0gG+{_Y3kKCYkmPRv{#@%mUR?TUk`O*x zQp8+RF0CxW67MeID6J-4wJ)jpptAver>&-wNs(kGK#&qh)G$q!l@>BF64%r2IjUlG zPcuj}NGHd9%T4c2oBT@^8FnUBx*U8R0b74|Jf=9|&>Pab+})D-A{~2y!(qu zp62_Kr&2llM729|f}WO_9Vt8bg7N~f+d%31a!1npM>BihRn72Iq$u`7vP0rSqC=&R z%{M+o9A7}2@5+fyimi-|pT-Q|V-7N3;)flERk8|;CT=LSt6%Re zP%9+gEVXgXK3dwk-7!(oUP%^t&U(wG8lW#hGySGKmd^q*Z-sXNqkDm&=%qWmVc^ET%*gnNYv2PO_!D2yH0 zYb$5F!N#j>v}CF7MSZ%5BRQlo+I^5*+M3%te5Wu^q2Iq|B1ARav7}eH@@OSwK%cBmtCuN*c4JE|N4n!i{Oi5yd!MWIu*#R^1r7@&7@TiR zzL7K{%G~7iTWYa&f_3rT#Cg)B`{WJvgX%Hraq8Qv{i_Q?;0r_+H_Lyice?xI$Wr&R z2~-(+i~k+$I#eHej8}aVivO1le$cvFuG-4ed*M$Bk`A51+}fXY{G$%>V>dhQSn}Pe zcmQ)tdOWDyDljxK0IERJ)77c3G>mV0+GKD(PWZ5JfPS;VBfTzzBYG$GQuPj}+8nSg zeXAd97YpR73GWr#aZ=Kso;Uxr_wd=l@i(x+4~l4qi>2c)=y!(lo-m6p5Nd5t?B64{ zcXz)aJ7)XCydmSF8N$7QA!v6}<=N%Lkp}sZxGBd4%I5@VYUH1h?YgP;jxl6>5q<}L zklRG-&TGFv37;a~<|SW9&Xz;xwdeg!jVxOz>(G`Wo-2`eM61bE!Rs*D2%U<@)UFR! z+plT1Cm756+PYL;`u&UXtYNI=WvMf^n@ZjP>~l4sWIi@)*)}}$HvO&llikhJ&C8)! z7i@r^YqkHE=+Cv-4<1_!qn;Hxyu5cbz_GSsV77WJ-V5+D?D_aa|4AH0tl#@wU#Hns zvy$rLZl#mM4chm#%?7FzTJ5)bKJwh*InnDV01^ZIec_b?Rv=dhJ*^)bi=tr@NKbkMs_zjJzaQ2#Z|YH~ z<@Jd8YT#BKbL`q^MU871Axw9|a4Lam5M_|l_%PnDOSQ9G>84UL?qOVF!|lNnjWpKl zS)G&H3*MWev+pfHmG`Mky=h$7J9%aEp`M^~A^GoRSebKwwb`As%X;?eS zC;Q)rcVz5t-L0T;nSE*|b}lWw^s(z#ZFWA=y@-zmOopi7PuCvII4zZgj7vLv*MoZsl0NLFdj;Me`nIG>b*}X z>*8SH@6{VZMwT3x;eB%zAw$2jGsJk#Z(RDISbdW1^h)i0NFS@6H&4Jxqa|3G<;Eh9 z4_=djne4xkuTjYATIhDktC|_V+I^f^`kQNfbh!?kow8VLQn!Jb$CTGE(;qb`G+@Rq z#`Xr^o_X}~No;DzU{sCVm%rvy+6yv61D2~?NzL^iJ=(|8G>rOgR;w&MoAVlRe)qN` zfI69b<6K`swZ>coD{GlN)0psn++@KdB{NPV;1vJoPl3{2F2nuvk<-in=Do^!hH~Dk zC>#>C9*J|Z+8i2~kH_oiXcK)Y&H$40hBXHq*Ll|aaWe5=@c>@{euUyoC2G?G0eepB z8;qlo%3$JNhvo++$dLg2FxA-?O!Tiw`zCLX{1)_Bm8e5x5It$Gt5AdQI>vB}LieT8 zya6~;5&Lcbb<9H6i%2%H0M^-%2t`n|gRHh6)e}@hSqrU#bdUqg{D^c$FaY8WD-cB> zLvCF&aLTLd%jzCPA&@EvG!lWpVwDg$I|M=o{C(wIW8~NX#4w!w$RIR>TtjMfKtzTC z&Qq83tY47{!Z$}~&fot36%GlcQ(R!6xs+gt|M~zN7K_FLF2EWMhgAkwhVud5>of!s z_X7=wM*ToTAW)#mzwe6$(<|T6P?#V4qS0W!=AV2hlnSWlKWR9W3b-r&NkgGI_V_0a zjYWed{+@;fft!EQa44l8=8VH|(nR0!VU)nV^BoO~`9>atPNaHL=qq@d1vMC44nRM2E)EY1Z*K@hPR6b6eVQm|y4voeW{a8W|2 d!~Qc12wAOwbKq86SzsIvhk;2+>6z%m{soc_nxy~$ diff --git a/iOS/Gradio/Assets.xcassets/TapForCamera.imageset/Contents.json b/iOS/Gradio/Assets.xcassets/TapForCamera.imageset/Contents.json deleted file mode 100644 index 9237614e84..0000000000 --- a/iOS/Gradio/Assets.xcassets/TapForCamera.imageset/Contents.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "TapForCamera.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - }, - "properties" : { - "preserves-vector-representation" : true - } -} \ No newline at end of file diff --git a/iOS/Gradio/Assets.xcassets/TapForCamera.imageset/TapForCamera.pdf b/iOS/Gradio/Assets.xcassets/TapForCamera.imageset/TapForCamera.pdf deleted file mode 100644 index 8c6f44abc8b20c02fa283c89a3ed708cd87a19f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31878 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%0D57H!xXoo)|ZuFAy&M4{Wosvb9x! z+4wWZ7nKuz!*b`Jj4)qdsWxPRlwYJ?Grlvvv#g_47%9*Vd$feF|M*b0ba3nRi8W&& z0{3o7q_vZ*qQyG@c&xs&8}##HGho101dq$7HN-1Qoq!NUvcECToyb1;C6iJWX~uY0 zf;rGP-z@fAzFmo(phw*(+}GN{d5@)fKdpgoBLQk(p0M4d~0L?C08d4nA>QJpZh zwl%VXaJe%dssm>uLYP4t^A_?Hh(Q%<;W(O2(Sw~>vE+G6jDDv>Ofp9Jgp15dSCCaVn4Q!K8h+$X8~RwgAXz}vwk!2(LtwAj zefStx`PWX46mf1?i6|cjR^Uo4<#>c zj|M&os1=!oD^5|DmAmK3_v}u+4C-w`ej$83e2iSc_j-ex-`7E6A}u&D18>hBx@-zK zHGBC4IRyV)FtFa#lSDyk(p%<3cyemVFwZQo?0Ubl^j_FIZD=;GVQ5zDY~*AkHZ?rH zllu0diP?brw`Hh zgm z93h}-9_c8{xI>50yO+~YHbcbIc3yAAXu{OyK*3G zrOJNRFnkJKP@8$%3`4gn0d0L?dzJR- zMmqqR8fzN8UVvV*7gxn_(J2JMM{zYC;se4JuL7Tp{cmWrW6SHzh{4%8JfEtsYu zCuiL#-iP%Cua|{qF*YX_~4ytuLED(jJO&_^=v?Uh!QsB7_(+jU>mR`+t_FxmIM*y4X_7p3_ym_ANweQ2sKE3)8b{oEvF23A;C?Qh;_}O1Le)%JkqqrYs#%`bM2uIIZkCiv&9$6NP|O zC^WQOTCh;XA~6D&UWi!UtR?EfKpq%2Hn2W9lCHMs&4;Px)F;pC;9StcK3eEH|}FG)}2;rdR|#gXrc0ge4n8P32)r9 z0!w6ZPq?42k$bRhcV365Ng#gVn9>~UyQM*lGK5c7M!AFOG|TNVGlbQMp%9nH`i3dD zr7-S}^NJdVYKD!7XNE~Adh)02@(6)|!bLls_l-mf7SNt*3p^6X+Kb&`!~TNIqc~pp z12S3-K4Db#z1Z5(vm^Z6od_tRO^YtA%!1EhPxaE7G8}zs1~bivemm{af+yBSc9744 zMhT;=|HDdyxAg;WYYMnoxc{}#;4L8Te=aomGX^fR0w`K8v+!G(VtY_zSdzb%4X8+h zV%`34(Tg*`dZ?)`;DnB~aND2_rt}mD z)#a)M?$4g1g>`b+3BG zXjh_gnSJ$(C*u;OfB{1gpW*!AONF})@kOPX71gY?l190n7X_6AOrcz}$om9q)~Y6*2DW`mGc|RWAqU2S zm1;1uOO<0A&MJeDDu`J=JEbUd>qcY}J9IzV-opj=wwj_11T00n_?e#LnQxdQXXt3IqjLUZ+w)zP@ z8%WfMkw-_iF5uZVO!RwPkJ*6^L+v3vx2eM?j~aZ1xPk%X(%5Wf;@gEqg|cEJBS5^9klrYLJEttp?e4LSV$fx_(1o4`5<}U@$}`@@I2|Tp_B!zMDmvuLI~-UWdUCau!0LbL&MG$ z{vL;ukD4kni$i5m;DS2R2hEkWphoT?a)?(_E?Q6>H>a#w;TIK9sg-(bf{ z*kPW*eS*+aAf}9v=fQsZFI4dn!AW)vuZekLXTaiiEUn8l;0U19cj2xRo`Eq08+0YY z2@SwOPDp6M5uS^Q#A#80qm$ailjTE{h^NJ&5ZZ-CO zUpsXiybhF2AS&rs5(--iH8cXaUAX5U^e%SgfMP{gvJkY7JwRjHA2IX7Ez(3(3W-?K zAr!bO6ttAWbeQZ-srY3s*(2G2 zDVy4W)KBK6@Tmbpxl^c9H6X7_BS&Jrwu?VlT0AW`$vDh7%{bin^9Dz+GG$9bKter+ zVu{dx)g)yBDS^mT!N{<`%PdQjCA?$z*MecgS)e~?I!M$krp zPoPea%-+X=pJtynn6{m^%idpWse@PtrL(QGTc^*GlzK9vW=>fX$&*uFaa_bWA&~#O zl)v1hxJJt&PoZWMQ!jx@mrJ-FSg-0KqA1I(#cWWie3~PmoL!!s-!9p%>o?RfPO@ki zDV*L}oD-4LZj@z|w{AlIJ-&2;E>9^Gk74+Ed_KBnK(Bl1UTMP}ms#xY953WO%Pl zs|~GXS9?(P(7o7`W}|1~(;s5JX;L#<_wKw&TDe0osOzlzHQRLA)L?qlZ+-XKU z=Lx6v1|sKpCR3&;15d}CX?4&XLg(;dM1C%M*S*KC=l4AS!gIqTJ*q5fykunmm!ia7 zf-yw>u;fb3c+JZCgj?fN>(e3uUV(6dXaUSN_qI|W<~yTjh-deQ-?9!T*Z|^qsKPXTw-(RW5RA9{ciNR-ksS~JXCT}bY~{8+G5)t|2D5Fw_Zvn)1SCD9^Q!9P^4T=I9%2C(Y*gXauamiT5wbF z=&|Mw=dt{Izv)sd)mU49VZ35ZuY7ytBKM-cS@Wn(!${Z35Y;NyG`5ztxVlxQ(pqw+ z=pg?ffFL$)r}e3d5w2a z+@w6`8~u0hPqUCdEPRac`Myv6oPG0iTqi;&XLflu{AWI=mA9Pt>c0O}Ch;gSqhR{$ zr>m%&)U=u*3)!*wQS6L#o@@`_3z5Fy^T=@AP+m<}fu`E6$;^tXik0Dj^|r{GOye; z`E19$W)eb1!aSTXwRyklFZ1vFtUOP^mZ0hjj(BlDTRxi{ZRS!VDAHwp7c76CxtlXD zX}vo7HfK0i6J`+`(jdzGnsi^O*bO~aGDa^^D{&xME;$x;ANAYo$5rpya8&ZtW^g<0 z%g@`SiPCIekH=OE}WxcPw-C{o>X?`JFB-rmyiF$eD!a51}i7vkLm2&H1&-}@U{gZ7^Fo- zMT}g`Oi2KLLLKz}UOfBnQ`&zaAY4e8<;_g3j6@tfNp#)X0RARTym1`<^eJlOYGmtR@h4xx&ED~1EF0P`MM$ROlIy1`| z{gnU!xc*{7{84KzZiKgX`Tz3#e|qBlV|nxcd>#&txB9%jzvTjL|MJAj_11MBR8t>1>R4}pwUETcOTHDsh0@S;pW_xRQ5zy#C z&}9U$0JupQ*|`BE0CqM`5CMaO2Q-YNK?B0dMA+WK)(li2W?>hTH{u8v7wGfbDc=%| ztZ%#xQ6tAc@f!$Ste~W-tC^h!$P*8U{_z)E96hu$X`4f5PJl4IS6v{zwl^!wGmyh z%)YkOe{U*nzWjE%cSXLh=FyZ$b&56+DW(#1LV*TBx*p#nHc1iPiHycVQp^$`Ds;vZ z6S&93+I>>R-IVD+KQK@oysSJ@Q?Ef^^;k{4lreH_>vGfU zG^7*R~B71zs zX%d1Y+M`7mIS2M|q7^6AC7Naoas&M27Ut0MlnWp0=!=rgR+{-Yh8-03oy5y#G*kr3 zC$l-m@!Y&vh)FO?p1Z^9$QjF$^d`V92a$yMr8x#E65uKDQ=bX$DL+AN=rRxLe1Qs! z6JUA0X4#2D9;NdT+!=^h{$^)jKvf3<;baPEM{+1pkVx%;7v=tj9JMF_Qy_5UmHLgL zu`CpyBtv2onK7v}0kJQmEcDqq_sV0}WU`)Om3z3LGIKLuP`SN6;(PvPVu_Cs?^pCS zsn&HQIGWgaeU}yLR;4dY$INs|FhDgfl50gOH=#v6*X*lwWSL);Y*=-}_#MQMlWcOt zaqg2(ie;Jv?@&>JxEj9+zXX3hQJqfk0Y6!QoHVvbtM!M;B_gfkZO+HB2xs?p22+L2 z*Wo$$+NOKN578H_cn87ePdofE zot=l=-&?=zUHW>NJHIkshwKo69J*5B*C6%gL$fDFHDO*(Q96OfO5RMCO>)RdFBQHU z^;kw3 zXob9qVvfL&DSs*fv3o-=!&jo5Q$ZT9m>kH_FRimwegeZmW%6^iujJYW(9sno2CbF8*Y}O@ zvb(2t&hDfZpL8|d)1F!pZGXO8mTG_gHC9x|XnAV7cz9Xqez*K`iBezQu8;4bcL|&Y zo;u!k1ILc~UK*>%_?4LFyovNZrrLNFucMT0?C`Zq7ca?eKF*uY*p~B}ExXzLGW_Lc zTaN$7i?>lho1Sf|rZ@*eO_D^y4Xavxse?|EKq#F z!IEJ-)K_q_7C0N)jTU5YWkeLbo=ZH4-CIZ~wnM2^)j_)LboV64QuSg)OHhMJTSexW zzCmk&-(90eXxi5bC~dgCW4>#LFX)OHrw=kgDW8Mki>KDe;D+U^BFyf7zJq-Vq2Flv z1pk^f&Ui#->te`u6qvlO?g=Xpc*z2{+Kq+~WQ8%><9(KGwVd5}4y3OS@%HEI)Z6Mm ze~*}3rCz7(Mne&_g6N}|l1K_EvoD_w9le%Ui}tkx;SSnX2>qw9;8VbOR-kIJDF4m| zcUjkhC;ba%MTn#mS6dM1@2Oe6WAJ)J)J`Z&$-2^q<(oep$DAOSh3(^F*S+sJp3q-R zUI;r$Y7r!9GF8kgGzh)t8BWE7-AZBv3Eel*~5#!=RzStxef zd*Wn;g5$yI^%&|Kk&lA0K zcH001uNZ$NN!}1hJ4-xhY3h8RiZ`y89-Pe=i(D|3W9jMd?c3`YlN6WOt0hn_$M8fU z9o{Uqt+}6Cd=g2^YvN5$BG&(Yrms4&Q?IPPy(i#HNVr>2sLXG6(0JCA<=jy8VG{HD zCo9eHX!S=T&R3`UZk&!C?dUIlut=MdU%uaVcE zX<5%@W^wN%(`*v(o(TH|klNk7z>N@Cavfdk?mkNiU}DT0 zgcBjuC8wHlaBX<*YaUDSrP2TO@m)jV#8`obmyb`9Z=)T3{Ah$-*_MyL3AikX)TRKXs?cn*7Ww?2zl|tgF2i>E&?@l`)it8A|~!V9UN;zv3`x%Hp5RlX^RpgLHcEy|XH z$$#+*EkCs(8Rmsyj;c6EnJZSkHh{D-y?O6MD(F?YqgnmTmh>}UAu%s8)uF)HnvPE{ z%Z9FatfL>$Hj zN2FYLNX?Y2jh9tKVVeM_g=k*)iQwd1@_heFlVhqcseu70swR}bn-LOh zReelfg7Z8k_Ruj3U#GQkMhrD<+kwzk%}WtJ6JDo0IU>AWK$qi$ym7;w1Rhf(X$W-; z330C@tx?th9@FDJUYi+KccO3F`UUzjlnPbtHbQrz14cJCSJ&AWLgRV8y<@Avv>p3g%rqZRk1^C>@m8h9D>#t35`Ab;3k!k#wbSE@Veau-*?wY z0D!MkNL*2CRB<)%cAvY>GSYj_mI;kKSC9eA+;5KMgBs%j%OAR`GWJ4kHXTphjBxF} z4BOnWwiyNGKOPQzMmt!7^DPy*e@YkoxD>5)(n>mn8%07a{*li}zk}xV&M$x219|(K z7q+`2C0Lh12h%cq0fqV(X6j7YYh9_IDvg1r$PU47%la%;AD(|AXZKD75EQS2CE2kg z6Z<|f;PP4CpGOv12ec{7bpOiD?G6pn8CRwaq(~S&ndb;lfwgv|Z0mJ%TxtY+|I6bX z77EQ=m0r?dM`%@9az9@^NV;0D;OFFRIEl{3@e(NdF&CV2om#RKj>XoS3Rd2hRHu?M z_hQ?Sm-K3#XC?eE$;e3n{A4bHzIU5s3#3m}j@u0fd$)-YBG22q_y|yZ0Rj?-VM+{= zxxAuVP|>rNwL)NounlV1wA!VG>M`@044N7xt?cY#7Gx(ibxQi9JCbSXl7666Ut(OD4UmcvC&PpXE=~a``^Pc{gD*Or$<{rk<;s3g{LF_+HBXSP(#^rnb3*zqUPmfm z^vTyKzO<^i%1|VYTwE>EeQ4=&Ulu^Mk`g8HnIBefdMZ9agC(c9iYDff`v;Apy}SBI z+WZC9>+;AKU7d6v{K2NRZ$GW^`;M2Ik~R|)0v*Km?rAI~sEXl7W zG@qvj^-v9_qkmw@<7a2AVNhqXfeBh+(767P^GTq%4={vl$=cRBJ<9Yn@{Yplj$l6>6;&&S8tm60p4BeREf_{rNF4Qijy&j10dDGE%5_P z;=hkCVZ9e#OP@mrO&z#$Ou0Zst#%AKt>G- z0Woa{Nq<7{!X*vo?#W7g=*`-_Zq~{D*qT|-tpV^bU9H``SFbeq>&Lo`9q*6n_2`Ig zBIHAwUr+t+>KZZieGQiox8@pi61&8zL(^KAp|g^TG^{y$9lELA0txEq>h#S@l+_Q4 z7Ek)4O*o}_1p>JGD0}crIi@fR35#@eFm$4ReNDW}IcvOTTdL=LW-ps|&?uin1cJR! z?jMWFdf&>P78|3W#;1Ce3*e*&kOl0j+=*=R(+=9jx5fkWdk3W_VyV-K6>^Q|(?p8~ zGs;cJram_s@x~-_n8-TohK5C(l{b`O57fJiE2kLdQ!MUt3S<+dX(!P{Oo-BM=tkz9 z$9ayGrz@%rI-xHs1up6?j%$6f6_XUZgw$L?cqhIu_hHrLlz3Pp!=RyON%wN?B;x9+ z=YvDPLR1ftTz)$>){=b=NsXqPT)0Vr^N?#w4CAoQ%diTa@VE2o?$hf7|7`oEi{)LZKY^A zUBVb$_Wgzy*Zlh%sMkOZ0V#RL(A2=KKy(tkK$dy`>q2 zo`5cVVk1_o29dnpT-qo=IwLr+(ILo}@@AYbA1aF#B4*g=p4Ec8nC9IsR5LOHRaG;1 zR?eInu7`SoBBcijUwNLP zyS8NjcZxfjXW3$Zbhrv^l?-QpxblHiX7uo;X$)7~b;BN!9!hhu=ZfifPgvL3n+IOOI6Z69S%*vpf>-5A zPM+uUv_^6veQK~3Vh$j2*}0Fds~8rK^#sV;UFB2@A6O$nl)Zoz4j2n-?1h^KE=9Yhm!Gj4;Z_GW1~pTS-|zzo8Zy zo2x>u!tL|OSR?(jauZR>!g=&n)$qDa9B01NXwlsu9xQ_q*DL|O(FsZ|3|5Q?%$*1U zWjl1YZwg^ClO;4ib#q;rB5Au4f`X}Bj3?JiPn8%id*>4tb3CvuOqDa2-|5ERux&>( zkwVkb z(bV!Tmo;iDekE(d>}L3I(f!nI`{r;6%2v%U__NK9fvcYPoZEK6TvF0&UL}6}Q`1e> z;Sjyn{VN#NNErYBAP@hosj_pi{TKZg@HZQm#?Ht@QI+IxITpae1Yjot(ulZOfh1G_ zw=f$I07y%s>}KTb>O}&A`ToKG^>n5ETSErva(^neG-AB0EC3!BHWp46b`A~}9vv1I zYS8Pya=y`T|5n&QfM8QM6A;$p$~>{IP??#eeu?<=_OVng6u0uyDTB{U7;28tH#4AAp@5)FJ=O z$I8md^Pm1$S-IZC;(z!9m4y|g?EZ(1gY&=HI9XW!+c`K{Isdb6Yyg%w3HcxX*Z_dH z$Q=J^`}a0=bv6QtuFik3y;ZHeK>Z7nW>p*%6&{}?cA05%pD M1WHPAMG1ue1M!aQ2LJ#7 diff --git a/iOS/Gradio/Assets.xcassets/Title Image.imageset/Contents.json b/iOS/Gradio/Assets.xcassets/Title Image.imageset/Contents.json deleted file mode 100644 index a87a580743..0000000000 --- a/iOS/Gradio/Assets.xcassets/Title Image.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "Screen Shot 2019-03-09 at 7.56.56 PM.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Gradio/Assets.xcassets/Title Image.imageset/Screen Shot 2019-03-09 at 7.56.56 PM.png b/iOS/Gradio/Assets.xcassets/Title Image.imageset/Screen Shot 2019-03-09 at 7.56.56 PM.png deleted file mode 100644 index 5fab0322a36c1c6e5abaf29c7fb09e250f27c5a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13101 zcmZX)1yEc;vo^fAYhZDAT_m_$V1eN78rD!R+Uka-&)Bye_H?m6Kp3V zqXw3dp;mKu`DEv44FD*_X6T~mX^sO64K={Fp=xCje`Q&Il}F6dqACzNM$jj#Stz5@ zdIR;5mN;pP>kq19;_H!;TffwMsh>QT#7suT8QivtC-oU|DfV#gr@N*Nwh4 zRioOhd1Z*$!`%St-@c;y{D4&swHekO8yU*eJlt+Dq6Hd2*eWLcp0*IM#T+BQx38*e zVT(e}+Xo$gL9yB6VoJ&qOIT>Fj38&sRJ!*4_A=xBD{hV^E{`KnAGZ&fPXO)r7s4?PJHwmky&wLBE3a^6Vfp@H zlHCoF$f84fmevhU0KDC;$Bd&o@47fq!8DAu$xaeocj>e!2GAm;gq}xhD(T}?svN!T ziS@s$691+VT5bWI@EQzRusUg>abO{9h-Hjn1itqbZjzcf_oqr=C>Ohtv4}UA8N4_j z@1=+#{qB7)sNC<8G$5aKGG6Pbj)p&th|xaqvKYRDdf~~pwuM?8T)(kd2t3JH5&hbwBv%UBQwmT%Jc4iu8hrSFji#0M zI;iL+FTWdgg1nIQt5>8ml23HHcsW+a z&e;;kd}lA9QL+%^P9T;`pcdY&@WrKsjP*O9l2dko&IHm=H|`?FBCrQ#2Kl6!HW%N! z#h%po>zRojMBvfB=d%gc=XJ)>@3~MD#l4bo&X3K5*A2u>7#$ z?C-xElZwQVA(a!WOEV{$2H1-@1Ymt*4tTJRp6~pG4a?vaz4i*6CMp2-2iz=WE?YQK zd6SAH7K~tb1@!w0Kg-K zhlfYMEROWs_`lKuDwAFpg~&r25aqcySi z2fCwV+QQ6_>>eZ}k7U{o3`7>kF^$vR7P(-2q7Oz2fxtG4&^*IP1|p%VP<%%GW;9+j z>j=d`{z14wmizZ!@BZS($}-M{9v~ErzPG@3<9B0mLvRzgByI{{mOEieQDCGe(x7HZ z9Ht{oo=`XjcPq$)v%r7Ke5^Q{8CJr{rBs-delYAPUa4H+U0Gkfy8_5%S;$|09acw7 z*H7O~uS?gNkW&<}hE&UY6(eh;RSL~V&a>Ln-4fh#-ezQGX0~P)Eh2I>EyCBa)`=O| zv{2gid_DY~Z%4jrl^fQU&{p7`;2nP#r}A~}x6Hxe4g3R-zt}V4v-ooXzf3?nzpi1i zm}&QiZt!FCod-o+Vga_HO|?psO8K;SLA-EJ7lCnraU!RxPoeYYGpRphUC;iQVm>{B zJ%K&t{vx;2M`8<1hik{t#~3$Cx9tZ-v*#9Om}JP&12%zU%M*el2mI8eg2b*^?wG8Y z!Th!Y2fXtFggijk!q?#`op@^swk^Yza|g|HhTC|f zG^5hn?%RJxml7nh8Xw12GW1C%j#{yTlHs zs9d2uhU_W+H4E>7+Ku%=(O*XPy?>t~{2Gvc(+<;)S$rPBi>FkIvQ92vcK^Jq{!>CP zik+V=NqaGg0>24r$ikMk}T&W)^>We?KK( zLtb0+CJ-?dN%0A1kqgrE+aBG#B_;F93$XY7AH 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 diff --git a/iOS/Gradio/Assets.xcassets/Video Camera Icon.imageset/Contents.json b/iOS/Gradio/Assets.xcassets/Video Camera Icon.imageset/Contents.json deleted file mode 100644 index 4c325a4f49..0000000000 --- a/iOS/Gradio/Assets.xcassets/Video Camera Icon.imageset/Contents.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "ic_videocam.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "ic_videocam_2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "ic_videocam_3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - }, - "properties" : { - "template-rendering-intent" : "template" - } -} \ No newline at end of file diff --git a/iOS/Gradio/Assets.xcassets/Video Camera Icon.imageset/ic_videocam.png b/iOS/Gradio/Assets.xcassets/Video Camera Icon.imageset/ic_videocam.png deleted file mode 100644 index 0722a69290367ad1e31ad9a158b9eef749de7980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1H%}MGkP60R1;(DH$vpoH4+sZ{ za;=d1_qZ+KDSyW`hR}cWGk67_s$?)|s{0o>WZWp5|eY|L&jo;#5mPL4U6McTOHmZB-Ae5w@=^n%`p0d}uD?!*dM< z=?*)L74Aq1yyLZKWV!a=SF$s9e%HhsKX=M?+Rr;9?Ej|p?+f`WN1n^Oxahp&eQwIR UE#vBiFre)Wp00i_>zopr08juyvH$=8 diff --git a/iOS/Gradio/Assets.xcassets/Video Camera Icon.imageset/ic_videocam_3x.png b/iOS/Gradio/Assets.xcassets/Video Camera Icon.imageset/ic_videocam_3x.png deleted file mode 100644 index 0039e804eb1684ea4ebc31799709a087f572e5f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhawmV3H5hEy=Vy|MA+VFv-1hn?^8 z4~ug1g)FcZ2tQ~w=Lplx+X;0Q`O-fM6yDE!@w@{FUidGcwkmVlvbJqjp=XW1?wu~T z^_Jsx-sfxGL;v3?&|*&U<2W%#V1lKfLa~y=Gna-loeVRD8I9DLAQAzLOe`D%^2a{x z=bL%t*T#(tHXb^qa&Ey|=ZV3$mi+%IV|?53_`T+<7p`3W@mfYIs|#!;^C!uxN8C@h R>H?k2;OXk;vd$@?2>^U;U)TTu diff --git a/iOS/Gradio/Assets.xcassets/X Button.imageset/Contents.json b/iOS/Gradio/Assets.xcassets/X Button.imageset/Contents.json deleted file mode 100644 index 8aeb47dff8..0000000000 --- a/iOS/Gradio/Assets.xcassets/X Button.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "X Button.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "X Button@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "X Button@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Gradio/Assets.xcassets/X Button.imageset/X Button.png b/iOS/Gradio/Assets.xcassets/X Button.imageset/X Button.png deleted file mode 100644 index 54f1403d8768386444964df2da61a11c3fcd69d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15391 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 diff --git a/iOS/Gradio/Assets.xcassets/X Button.imageset/X Button@2x.png b/iOS/Gradio/Assets.xcassets/X Button.imageset/X Button@2x.png deleted file mode 100644 index dd92625a1896dd40f62168d197be432df6e960d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33831 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 z 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≀MIJ9FLfFQ^VOxdd) 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 P_-D4>YF*}9(&7IB%<6wf diff --git a/iOS/Gradio/Base.lproj/LaunchScreen.storyboard b/iOS/Gradio/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index bfa3612941..0000000000 --- a/iOS/Gradio/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS/Gradio/Base.lproj/Main.storyboard b/iOS/Gradio/Base.lproj/Main.storyboard deleted file mode 100644 index 00c6f0a33f..0000000000 --- a/iOS/Gradio/Base.lproj/Main.storyboard +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS/Gradio/Camera.swift b/iOS/Gradio/Camera.swift deleted file mode 100644 index 6fa216a0f7..0000000000 --- a/iOS/Gradio/Camera.swift +++ /dev/null @@ -1,222 +0,0 @@ -// -// Camera.swift -// Gradio -// -// Created by Dawood Khan on 3/5/19. -// Copyright © 2019 Gradio. All rights reserved. -// - -import UIKit -import AVFoundation - -class Camera: NSObject { - var captureSession: AVCaptureSession? - - var currentCameraPosition: CameraPosition? - - var frontCamera: AVCaptureDevice? - var frontCameraInput: AVCaptureDeviceInput? - - var photoOutput: AVCapturePhotoOutput? - - var rearCamera: AVCaptureDevice? - var rearCameraInput: AVCaptureDeviceInput? - - var previewLayer: AVCaptureVideoPreviewLayer? - - var flashMode = AVCaptureDevice.FlashMode.off - var photoCaptureCompletionBlock: ((UIImage?, Error?) -> Void)? -} - -extension Camera { - func prepare(completionHandler: @escaping (Error?) -> Void) { - func createCaptureSession() { - self.captureSession = AVCaptureSession() - } - - func configureCaptureDevices() throws { - - let session = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: AVMediaType.video, position: .unspecified) - let cameras = session.devices.compactMap { $0 } - guard !cameras.isEmpty else { throw CameraError.noCamerasAvailable } - - for camera in cameras { - if camera.position == .front { - self.frontCamera = camera - } - - if camera.position == .back { - self.rearCamera = camera - - try camera.lockForConfiguration() - camera.focusMode = .continuousAutoFocus - camera.unlockForConfiguration() - } - } - } - - func configureDeviceInputs() throws { - guard let captureSession = self.captureSession else { throw CameraError.captureSessionIsMissing } - - if let rearCamera = self.rearCamera { - self.rearCameraInput = try AVCaptureDeviceInput(device: rearCamera) - - if captureSession.canAddInput(self.rearCameraInput!) { captureSession.addInput(self.rearCameraInput!) } - - self.currentCameraPosition = .rear - } - - else if let frontCamera = self.frontCamera { - self.frontCameraInput = try AVCaptureDeviceInput(device: frontCamera) - - if captureSession.canAddInput(self.frontCameraInput!) { captureSession.addInput(self.frontCameraInput!) } - else { throw CameraError.inputsAreInvalid } - - self.currentCameraPosition = .front - } - - else { throw CameraError.noCamerasAvailable } - } - - func configurePhotoOutput() throws { - guard let captureSession = self.captureSession else { throw CameraError.captureSessionIsMissing } - - self.photoOutput = AVCapturePhotoOutput() - self.photoOutput!.setPreparedPhotoSettingsArray([AVCapturePhotoSettings(format: [AVVideoCodecKey : AVVideoCodecType.jpeg])], completionHandler: nil) - - if captureSession.canAddOutput(self.photoOutput!) { captureSession.addOutput(self.photoOutput!) } - captureSession.startRunning() - } - - DispatchQueue(label: "prepare").async { - do { - createCaptureSession() - try configureCaptureDevices() - try configureDeviceInputs() - try configurePhotoOutput() - } - - catch { - DispatchQueue.main.async { - completionHandler(error) - } - - return - } - - DispatchQueue.main.async { - completionHandler(nil) - } - } - } - - func displayPreview(on view: UIView) throws { - guard let captureSession = self.captureSession, captureSession.isRunning else { throw CameraError.captureSessionIsMissing } - - self.previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) - self.previewLayer?.videoGravity = AVLayerVideoGravity.resizeAspectFill - self.previewLayer?.connection?.videoOrientation = .portrait - - view.layer.insertSublayer(self.previewLayer!, at: 0) - self.previewLayer?.frame = view.frame - } - - func switchCameras() throws { - guard let currentCameraPosition = currentCameraPosition, let captureSession = self.captureSession, captureSession.isRunning else { throw CameraError.captureSessionIsMissing } - - captureSession.beginConfiguration() - - func switchToFrontCamera() throws { - - guard let rearCameraInput = self.rearCameraInput, captureSession.inputs.contains(rearCameraInput), - let frontCamera = self.frontCamera else { throw CameraError.invalidOperation } - - self.frontCameraInput = try AVCaptureDeviceInput(device: frontCamera) - - captureSession.removeInput(rearCameraInput) - - if captureSession.canAddInput(self.frontCameraInput!) { - captureSession.addInput(self.frontCameraInput!) - - self.currentCameraPosition = .front - } - - else { - throw CameraError.invalidOperation - } - } - - func switchToRearCamera() throws { - - guard let frontCameraInput = self.frontCameraInput, captureSession.inputs.contains(frontCameraInput), - let rearCamera = self.rearCamera else { throw CameraError.invalidOperation } - - self.rearCameraInput = try AVCaptureDeviceInput(device: rearCamera) - - captureSession.removeInput(frontCameraInput) - - if captureSession.canAddInput(self.rearCameraInput!) { - captureSession.addInput(self.rearCameraInput!) - - self.currentCameraPosition = .rear - } - - else { throw CameraError.invalidOperation } - } - - switch currentCameraPosition { - case .front: - try switchToRearCamera() - - case .rear: - try switchToFrontCamera() - } - - captureSession.commitConfiguration() - } - - func captureImage(completion: @escaping (UIImage?, Error?) -> Void) { - guard let captureSession = captureSession, captureSession.isRunning else { completion(nil, CameraError.captureSessionIsMissing); return } - - let settings = AVCapturePhotoSettings() - settings.flashMode = self.flashMode - - self.photoOutput?.capturePhoto(with: settings, delegate: self) - self.photoCaptureCompletionBlock = completion - } - -} - -extension Camera: AVCapturePhotoCaptureDelegate { - public func photoOutput(_ captureOutput: AVCapturePhotoOutput, didFinishProcessingPhoto photoSampleBuffer: CMSampleBuffer?, previewPhoto previewPhotoSampleBuffer: CMSampleBuffer?, - resolvedSettings: AVCaptureResolvedPhotoSettings, bracketSettings: AVCaptureBracketedStillImageSettings?, error: Swift.Error?) { - if let error = error { self.photoCaptureCompletionBlock?(nil, error) } - - else if let buffer = photoSampleBuffer, let data = AVCapturePhotoOutput.jpegPhotoDataRepresentation(forJPEGSampleBuffer: buffer, previewPhotoSampleBuffer: nil), - let image = UIImage(data: data) { - - self.photoCaptureCompletionBlock?(image, nil) - } - - else { - self.photoCaptureCompletionBlock?(nil, CameraError.unknown) - } - } -} - -extension Camera { - enum CameraError: Swift.Error { - case captureSessionAlreadyRunning - case captureSessionIsMissing - case inputsAreInvalid - case invalidOperation - case noCamerasAvailable - case unknown - } - - public enum CameraPosition { - case front - case rear - } -} - diff --git a/iOS/Gradio/CameraInterfaceViewController.swift b/iOS/Gradio/CameraInterfaceViewController.swift deleted file mode 100644 index fb00f47bd9..0000000000 --- a/iOS/Gradio/CameraInterfaceViewController.swift +++ /dev/null @@ -1,120 +0,0 @@ -// -// CameraInterfaceViewController.swift -// Gradio -// -// Created by Dawood Khan on 3/5/19. -// Copyright © 2019 Gradio. All rights reserved. -// - -import UIKit -import Photos -import Starscream - -class CameraInterfaceViewController: UIViewController, WebSocketDelegate { - - var titleImageView: UIImageView = UIImageView() - var cameraViewController: CameraViewController? - var preview: UIImageView = UIImageView() - var outputTextView: UITextView = UITextView() - var socket: WebSocket = WebSocket(url: URL(string: "ws://c3f3ea66.ngrok.io")!) - - override func viewDidLoad() { - super.viewDidLoad() - self.view.backgroundColor = UIColor.white - - titleImageView.image = UIImage(named: "Title Image") - titleImageView.translatesAutoresizingMaskIntoConstraints = false - self.view.addSubview(titleImageView) - titleImageView.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 10.0).isActive = true - titleImageView.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 0.5).isActive = true - titleImageView.heightAnchor.constraint(equalTo: self.view.heightAnchor, multiplier: 0.08).isActive = true - titleImageView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true - - let stackView = UIStackView() - stackView.translatesAutoresizingMaskIntoConstraints = false - self.view.addSubview(stackView) - stackView.distribution = .equalSpacing - stackView.alignment = .fill - stackView.axis = .vertical - stackView.heightAnchor.constraint(equalTo: self.view.heightAnchor, multiplier: 0.8).isActive = true - stackView.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 0.8).isActive = true - stackView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true - stackView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true - - let tapForCameraImage = UIImage(named: "TapForCamera") - preview = UIImageView(image: tapForCameraImage) - preview.translatesAutoresizingMaskIntoConstraints = false - preview.contentMode = .scaleAspectFit - stackView.addArrangedSubview(preview) - preview.heightAnchor.constraint(equalTo: stackView.heightAnchor, multiplier: 0.45).isActive = true - preview.widthAnchor.constraint(equalTo: stackView.widthAnchor).isActive = true - - outputTextView = UITextView() - outputTextView.translatesAutoresizingMaskIntoConstraints = false - outputTextView.backgroundColor = UIColor(red: 0.72, green: 0.72, blue: 0.72, alpha: 1.0) - outputTextView.isEditable = false - outputTextView.text = "OUTPUT" - outputTextView.textColor = UIColor.darkGray - outputTextView.font = UIFont(name: "ArialMT", size: 24) - stackView.addArrangedSubview(outputTextView) - outputTextView.heightAnchor.constraint(equalTo: stackView.heightAnchor, multiplier: 0.45).isActive = true - outputTextView.widthAnchor.constraint(equalTo: stackView.widthAnchor).isActive = true - - let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) - cameraViewController = storyBoard.instantiateViewController(withIdentifier: "CameraViewController") as? CameraViewController - - let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:))) - preview.isUserInteractionEnabled = true - preview.addGestureRecognizer(tapGestureRecognizer) - - updatePreviewWithCapturedImage() - setupWebSocket() - } - - @objc func imageTapped(tapGestureRecognizer: UITapGestureRecognizer) { -// let cameraInterfaceViewController = CameraInterfaceViewController() -// self.navigationController?.pushViewController(cameraInterfaceViewController, animated: true) - guard let cameraInterfaceViewController = cameraViewController else { return } - self.present(cameraInterfaceViewController, animated: true, completion: nil) - } - - func updatePreviewWithCapturedImage() { - guard let cameraViewController = cameraViewController else { return } - cameraViewController.imageCaptureCompletionBlock = { image in - DispatchQueue.main.async { - self.preview.image = image - self.preview.setNeedsDisplay() - self.preview.setNeedsLayout() - } - let resizedImage = image.resizeImage(targetSize: CGSize(width: 360, height: 360)) - let imageData: NSData = resizedImage.pngData()! as NSData - let strBase64 = imageData.base64EncodedString(options: .lineLength64Characters) - let fullBase64String = "data:image/png;base64,\(strBase64))" - self.socket.write(string: fullBase64String) - - } - } - - func setupWebSocket() { - socket.delegate = self - socket.connect() - } - - func websocketDidConnect(socket: WebSocketClient) { - print("Web Socket Connected!") - } - - func websocketDidDisconnect(socket: WebSocketClient, error: Error?) { - print("Web Socket Disconnected: ", error.debugDescription) - } - - func websocketDidReceiveMessage(socket: WebSocketClient, text: String) { - print("Web Socket received message!") - outputTextView.text = "Text Recieved: " + text - } - - func websocketDidReceiveData(socket: WebSocketClient, data: Data) { - print("Web Socket received data!") - outputTextView.text = "Data Recieved: " + data.base64EncodedString() - } -} diff --git a/iOS/Gradio/CameraViewController.swift b/iOS/Gradio/CameraViewController.swift deleted file mode 100644 index a58a1c908e..0000000000 --- a/iOS/Gradio/CameraViewController.swift +++ /dev/null @@ -1,129 +0,0 @@ -// -// CameraViewController.swift -// Gradio -// -// Created by Dawood Khan on 3/5/19. -// Copyright © 2019 Gradio. All rights reserved. -// - -import UIKit -import Photos - -class CameraViewController: UIViewController { - - @IBOutlet fileprivate var captureButton: UIButton! - - ///Displays a preview of the video output generated by the device's cameras. - @IBOutlet fileprivate var capturePreviewView: UIView! - - ///Allows the user to put the camera in photo mode. - @IBOutlet fileprivate var photoModeButton: UIButton! - @IBOutlet fileprivate var toggleCameraButton: UIButton! - @IBOutlet fileprivate var toggleFlashButton: UIButton! - - ///Allows the user to put the camera in video mode. - @IBOutlet fileprivate var videoModeButton: UIButton! - @IBOutlet var xButton: UIButton! - - let camera = Camera() - - var imageCaptureCompletionBlock: ((_ image: UIImage) -> ())? - - override var prefersStatusBarHidden: Bool { return true } -} - -extension CameraViewController { - override func viewDidLoad() { - if AVCaptureDevice.authorizationStatus(for: AVMediaType.video) == AVAuthorizationStatus.authorized { - configurecamera() - } else { - AVCaptureDevice.requestAccess(for: AVMediaType.video, completionHandler: { (granted: Bool) -> Void in - if granted == true { - self.configurecamera() - } else { - print("User rejected camera access") - } - }) - } - - func styleCaptureButton() { - captureButton.layer.borderColor = UIColor.black.cgColor - captureButton.layer.borderWidth = 2 - - captureButton.layer.cornerRadius = min(captureButton.frame.width, captureButton.frame.height) / 2 - } - - styleCaptureButton() - - } - - func configurecamera() { - camera.prepare {(error) in - if let error = error { - print(error) - } - - try? self.camera.displayPreview(on: self.capturePreviewView) - } - } -} - -extension CameraViewController { - - - @IBAction func toggleFlash(_ sender: UIButton) { - if camera.flashMode == .on { - camera.flashMode = .off - toggleFlashButton.setImage(#imageLiteral(resourceName: "Flash Off Icon"), for: .normal) - } - - else { - camera.flashMode = .on - toggleFlashButton.setImage(#imageLiteral(resourceName: "Flash On Icon"), for: .normal) - } - } - - @IBAction func switchCameras(_ sender: UIButton) { - do { - try camera.switchCameras() - } - - catch { - print(error) - } - - switch camera.currentCameraPosition { - case .some(.front): - toggleCameraButton.setImage(#imageLiteral(resourceName: "Front Camera Icon"), for: .normal) - - case .some(.rear): - toggleCameraButton.setImage(#imageLiteral(resourceName: "Rear Camera Icon"), for: .normal) - - case .none: - return - } - } - //next do completion block for view controller class - @IBAction func captureImage(_ sender: UIButton) { - camera.captureImage {(image, error) in - guard let image = image else { - print(error ?? "Image capture error") - return - } - - self.imageCaptureCompletionBlock?(image) - - try? PHPhotoLibrary.shared().performChangesAndWait { - PHAssetChangeRequest.creationRequestForAsset(from: image) - } -// self.captureButton.setImage(UIImage(named: "Redo Button"), for: .normal) - self.dismiss(animated: false, completion: { - //dismissed - }) - } - } - - @IBAction func xButtonPressed(_ sender: Any) { - self.dismiss(animated: true) - } -} diff --git a/iOS/Gradio/Info.plist b/iOS/Gradio/Info.plist deleted file mode 100644 index cc0396af14..0000000000 --- a/iOS/Gradio/Info.plist +++ /dev/null @@ -1,49 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSCameraUsageDescription - $(PRODUCT_NAME) camera use - NSPhotoLibraryUsageDescription - $(PRODUCT_NAME) photo use - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/iOS/Gradio/Interfaces/CameraInterface.swift b/iOS/Gradio/Interfaces/CameraInterface.swift deleted file mode 100644 index 5ae0e1ab02..0000000000 --- a/iOS/Gradio/Interfaces/CameraInterface.swift +++ /dev/null @@ -1,15 +0,0 @@ -// -// CameraInterface.swift -// Gradio -// -// Created by Dawood Khan on 3/9/19. -// Copyright © 2019 Gradio. All rights reserved. -// - -import UIKit - -class CameraInterface: UIView { - - - -} diff --git a/iOS/Gradio/Interfaces/SketchPadInterface.swift b/iOS/Gradio/Interfaces/SketchPadInterface.swift deleted file mode 100644 index 9742f5c26b..0000000000 --- a/iOS/Gradio/Interfaces/SketchPadInterface.swift +++ /dev/null @@ -1,121 +0,0 @@ -// -// SketchPadInterface.swift -// Gradio -// -// Created by Dawood Khan on 3/9/19. -// Copyright © 2019 Gradio. All rights reserved. -// - -import UIKit - -class SketchPadInterface: UIView { - - let interfaceType: InterfaceType? - var mainImageView: UIImageView = UIImageView() - var tempImageView: UIImageView = UIImageView() - - var lastPoint = CGPoint.zero - var color = UIColor.black - var brushWidth: CGFloat = 10.0 - var opacity: CGFloat = 1.0 - var swiped = false - - init(interfaceType: InterfaceType) { - self.interfaceType = interfaceType - super.init(frame: CGRect.zero) - setupView() - } - - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - func setupView() { - self.addSubview(mainImageView) -// self.isExclusiveTouch = true - mainImageView.translatesAutoresizingMaskIntoConstraints = false - mainImageView.topAnchor.constraint(equalTo: self.topAnchor).isActive = true - mainImageView.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true - mainImageView.leadingAnchor.constraint(equalTo: self.leadingAnchor).isActive = true - mainImageView.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true - - self.addSubview(tempImageView) - tempImageView.translatesAutoresizingMaskIntoConstraints = false - tempImageView.topAnchor.constraint(equalTo: self.topAnchor).isActive = true - tempImageView.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true - tempImageView.leadingAnchor.constraint(equalTo: self.leadingAnchor).isActive = true - tempImageView.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true - - } - - func drawLine(from fromPoint: CGPoint, to toPoint: CGPoint) { - UIGraphicsBeginImageContext(self.frame.size) - guard let context = UIGraphicsGetCurrentContext() else { - return - } - tempImageView.image?.draw(in: self.bounds) - - context.move(to: fromPoint) - context.addLine(to: toPoint) - - context.setLineCap(.round) - context.setBlendMode(.normal) - context.setLineWidth(brushWidth) - context.setStrokeColor(color.cgColor) - - context.strokePath() - - tempImageView.image = UIGraphicsGetImageFromCurrentImageContext() - tempImageView.alpha = opacity - - UIGraphicsEndImageContext() - } - - override func touchesBegan(_ touches: Set, with event: UIEvent?) { - guard let touch = touches.first else { - return - } - swiped = false - lastPoint = touch.location(in: self) - } - - override func touchesMoved(_ touches: Set, with event: UIEvent?) { - guard let touch = touches.first else { - return - } - swiped = true - let currentPoint = touch.location(in: self) - drawLine(from: lastPoint, to: currentPoint) - - lastPoint = currentPoint - } - - override func touchesEnded(_ touches: Set, with event: UIEvent?) { - if !swiped { - // draw a single point - drawLine(from: lastPoint, to: lastPoint) - } - - // Merge tempImageView into mainImageView - UIGraphicsBeginImageContext(mainImageView.frame.size) - mainImageView.image?.draw(in: self.bounds, blendMode: .normal, alpha: 1.0) - tempImageView.image?.draw(in: self.bounds, blendMode: .normal, alpha: opacity) - mainImageView.image = UIGraphicsGetImageFromCurrentImageContext() - UIGraphicsEndImageContext() - - tempImageView.image = nil - } -} - -// MARK: - SettingsViewControllerDelegate - -//extension SketchPadInterface: SettingsViewControllerDelegate { -// func settingsViewControllerFinished(_ settingsViewController: SettingsViewController) { -// brushWidth = settingsViewController.brush -// opacity = settingsViewController.opacity -// color = UIColor(red: settingsViewController.red, -// green: settingsViewController.green, -// blue: settingsViewController.blue, -// alpha: opacity) -// dismiss(animated: true) -// } diff --git a/iOS/Gradio/Interfaces/TextInterface.swift b/iOS/Gradio/Interfaces/TextInterface.swift deleted file mode 100644 index 20523828b3..0000000000 --- a/iOS/Gradio/Interfaces/TextInterface.swift +++ /dev/null @@ -1,56 +0,0 @@ -// -// TextInterface.swift -// Gradio -// -// Created by Dawood Khan on 3/9/19. -// Copyright © 2019 Gradio. All rights reserved. -// - -import UIKit - -enum InterfaceType: String { - case Input - case Output -} - -class TextInterface: UIView { - - let interfaceType: InterfaceType? - var textView: UITextView = UITextView() - - init(interfaceType: InterfaceType) { - self.interfaceType = interfaceType - super.init(frame: CGRect.zero) - setupView() - } - - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - func setupView() { -// var textView: UITextView = UITextView() - textView = UITextView() - textView.translatesAutoresizingMaskIntoConstraints = false - textView.backgroundColor = UIColor(red: 0.72, green: 0.72, blue: 0.72, alpha: 1.0) - textView.textColor = UIColor.darkGray - textView.font = UIFont(name: "ArialMT", size: 24) - guard let interfaceType = interfaceType else { return } - if interfaceType == InterfaceType.Input { - textView.isEditable = true - } else { - textView.isEditable = false - } - textView.text = "\(interfaceType)".uppercased() - self.addSubview(textView) - textView.topAnchor.constraint(equalTo: self.topAnchor).isActive = true - textView.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true - textView.leadingAnchor.constraint(equalTo: self.leadingAnchor).isActive = true - textView.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true - } - - func setText(text: String) { - textView.text = text - } - -} diff --git a/iOS/Gradio/MainPageViewController.swift b/iOS/Gradio/MainPageViewController.swift deleted file mode 100644 index 2e27304e1a..0000000000 --- a/iOS/Gradio/MainPageViewController.swift +++ /dev/null @@ -1,75 +0,0 @@ -// -// MainPageViewController.swift -// Gradio -// -// Created by Dawood Khan on 3/9/19. -// Copyright © 2019 Gradio. All rights reserved. -// - -import UIKit - -class MainPageViewController: UIPageViewController, UIPageViewControllerDelegate, UIPageViewControllerDataSource { - - var pageControl = UIPageControl() - - lazy var pages: [UIViewController] = { - var pages = [UIViewController]() - let firstVC = CameraInterfaceViewController() - let secondVC = TextToTextViewController() - let thirdVC = SketchPadToImageViewController() - pages.append(firstVC) - pages.append(secondVC) - pages.append(thirdVC) - return pages - }() - - override func viewDidLoad() { - super.viewDidLoad() - self.dataSource = self - self.delegate = self - if let firstVC = pages.first { - setViewControllers([firstVC], direction: .forward, animated: true, completion: nil) - } - configurePageControl() - } - - func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? { - guard let viewControllerIndex = pages.index(of: viewController) else { return nil } - let previousIndex = viewControllerIndex - 1 - guard previousIndex >= 0 else { return pages.last } - guard pages.count > previousIndex else { return nil } - return pages[previousIndex] - } - - func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? { - guard let viewControllerIndex = pages.index(of: viewController) else { return nil } - let nextIndex = viewControllerIndex + 1 - guard nextIndex < pages.count else { return pages.first } - guard pages.count > nextIndex else { return nil } - return pages[nextIndex] - } - - func configurePageControl() { - pageControl = UIPageControl(frame: CGRect(x: 0,y: UIScreen.main.bounds.maxY - 50,width: UIScreen.main.bounds.width,height: 50)) - self.pageControl.numberOfPages = pages.count - self.pageControl.currentPage = 0 - self.pageControl.alpha = 0.5 - self.pageControl.tintColor = UIColor.black - self.pageControl.pageIndicatorTintColor = UIColor.lightGray - self.pageControl.currentPageIndicatorTintColor = UIColor.black - self.view.addSubview(pageControl) - } - - func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int { - return pages.count - } - - func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int { - return 0 - } - - func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) { - let pageContentViewController = pageViewController.viewControllers![0] - self.pageControl.currentPage = pages.index(of: pageContentViewController)! - } -} diff --git a/iOS/Gradio/MainTabBarViewController.swift b/iOS/Gradio/MainTabBarViewController.swift deleted file mode 100644 index 49d5e06f3d..0000000000 --- a/iOS/Gradio/MainTabBarViewController.swift +++ /dev/null @@ -1,41 +0,0 @@ -// -// MainTabBarViewController.swift -// Gradio -// -// Created by Dawood Khan on 3/9/19. -// Copyright © 2019 Gradio. All rights reserved. -// - -import UIKit - -class MainTabBarViewController: UITabBarController, UITabBarControllerDelegate { - - override func viewDidLoad() { - super.viewDidLoad() - self.delegate = self - // Do any additional setup after loading the view. - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - let firstVC = CameraInterfaceViewController() - let firstIcon = UITabBarItem(title: "Camera", image: UIImage(named: "Photo Camera Icon"), tag: 1) - firstVC.tabBarItem = firstIcon - - let secondVC = TextToTextViewController() - let secondIcon = UITabBarItem(title: "Text", image: UIImage(named: "T"), tag: 2) - secondVC.tabBarItem = secondIcon - - let thirdVC = SketchPadToImageViewController() - let thirdIcon = UITabBarItem(title: "Sketch", image: UIImage(named: "Pencil"), tag: 2) - thirdVC.tabBarItem = thirdIcon - - let controllers = [firstVC, secondVC, thirdVC] - self.viewControllers = controllers - } - - func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool { - return true; - } - -} diff --git a/iOS/Gradio/SketchPadToImageViewController.swift b/iOS/Gradio/SketchPadToImageViewController.swift deleted file mode 100644 index 42579b0ab2..0000000000 --- a/iOS/Gradio/SketchPadToImageViewController.swift +++ /dev/null @@ -1,61 +0,0 @@ -// -// SketchPadToImageViewController.swift -// Gradio -// -// Created by Dawood Khan on 3/9/19. -// Copyright © 2019 Gradio. All rights reserved. -// - -import UIKit - -class SketchPadToImageViewController: UIViewController, UIGestureRecognizerDelegate { - - var titleImageView: UIImageView = UIImageView() - var sketchPadInput: SketchPadInterface = SketchPadInterface(interfaceType: InterfaceType.Input) - var outputImage: UIImageView = UIImageView() - - override func viewDidLoad() { - super.viewDidLoad() - self.view.backgroundColor = UIColor.white - titleImageView.image = UIImage(named: "Title Image") - titleImageView.translatesAutoresizingMaskIntoConstraints = false - self.view.addSubview(titleImageView) - titleImageView.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 10.0).isActive = true - titleImageView.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 0.5).isActive = true - titleImageView.heightAnchor.constraint(equalTo: self.view.heightAnchor, multiplier: 0.08).isActive = true - titleImageView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true - - let stackView = UIStackView() - stackView.translatesAutoresizingMaskIntoConstraints = false - self.view.addSubview(stackView) - stackView.distribution = .equalSpacing - stackView.alignment = .fill - stackView.axis = .vertical - stackView.heightAnchor.constraint(equalTo: self.view.heightAnchor, multiplier: 0.8).isActive = true - stackView.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 0.8).isActive = true - stackView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true - stackView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true - - sketchPadInput.translatesAutoresizingMaskIntoConstraints = false - sketchPadInput.backgroundColor = UIColor(red: 0.72, green: 0.72, blue: 0.72, alpha: 1.0) - stackView.addArrangedSubview(sketchPadInput) - sketchPadInput.heightAnchor.constraint(equalTo: stackView.heightAnchor, multiplier: 0.45).isActive = true - sketchPadInput.widthAnchor.constraint(equalTo: stackView.widthAnchor).isActive = true - - outputImage.translatesAutoresizingMaskIntoConstraints = false - outputImage.backgroundColor = UIColor(red: 0.72, green: 0.72, blue: 0.72, alpha: 1.0) - stackView.addArrangedSubview(outputImage) - outputImage.heightAnchor.constraint(equalTo: stackView.heightAnchor, multiplier: 0.45).isActive = true - outputImage.widthAnchor.constraint(equalTo: stackView.widthAnchor).isActive = true - - // let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) - // cameraViewController = storyBoard.instantiateViewController(withIdentifier: "CameraViewController") as? CameraViewController - // - // let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:))) - // preview.isUserInteractionEnabled = true - // preview.addGestureRecognizer(tapGestureRecognizer) - // - // updatePreviewWithCapturedImage() - // setupWebSocket() - } -} diff --git a/iOS/Gradio/TextToTextViewController.swift b/iOS/Gradio/TextToTextViewController.swift deleted file mode 100644 index e2330d88a8..0000000000 --- a/iOS/Gradio/TextToTextViewController.swift +++ /dev/null @@ -1,94 +0,0 @@ -// -// TextToTextViewController.swift -// Gradio -// -// Created by Dawood Khan on 3/9/19. -// Copyright © 2019 Gradio. All rights reserved. -// - -import UIKit -import Starscream - -class TextToTextViewController: UIViewController, WebSocketDelegate { - - var titleImageView: UIImageView = UIImageView() - var inputTextView: TextInterface = TextInterface(interfaceType: InterfaceType.Input) - var outputTextView: TextInterface = TextInterface(interfaceType: InterfaceType.Output) - var socket: WebSocket = WebSocket(url: URL(string: "ws://c3f3ea66.ngrok.io")!) - - override func viewDidLoad() { - super.viewDidLoad() - self.view.backgroundColor = UIColor.white - - let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard)) - self.view.addGestureRecognizer(tap) - - titleImageView.image = UIImage(named: "Title Image") - titleImageView.translatesAutoresizingMaskIntoConstraints = false - self.view.addSubview(titleImageView) - titleImageView.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 10.0).isActive = true - titleImageView.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 0.5).isActive = true - titleImageView.heightAnchor.constraint(equalTo: self.view.heightAnchor, multiplier: 0.08).isActive = true - titleImageView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true - - let stackView = UIStackView() - stackView.translatesAutoresizingMaskIntoConstraints = false - self.view.addSubview(stackView) - stackView.distribution = .equalSpacing - stackView.alignment = .fill - stackView.axis = .vertical - stackView.heightAnchor.constraint(equalTo: self.view.heightAnchor, multiplier: 0.8).isActive = true - stackView.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 0.8).isActive = true - stackView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true - stackView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true - - inputTextView.translatesAutoresizingMaskIntoConstraints = false - inputTextView.backgroundColor = UIColor(red: 0.72, green: 0.72, blue: 0.72, alpha: 1.0) - stackView.addArrangedSubview(inputTextView) - inputTextView.heightAnchor.constraint(equalTo: stackView.heightAnchor, multiplier: 0.45).isActive = true - inputTextView.widthAnchor.constraint(equalTo: stackView.widthAnchor).isActive = true - - outputTextView.translatesAutoresizingMaskIntoConstraints = false - outputTextView.backgroundColor = UIColor(red: 0.72, green: 0.72, blue: 0.72, alpha: 1.0) - stackView.addArrangedSubview(outputTextView) - outputTextView.heightAnchor.constraint(equalTo: stackView.heightAnchor, multiplier: 0.45).isActive = true - outputTextView.widthAnchor.constraint(equalTo: stackView.widthAnchor).isActive = true - -// let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) -// cameraViewController = storyBoard.instantiateViewController(withIdentifier: "CameraViewController") as? CameraViewController -// -// let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:))) -// preview.isUserInteractionEnabled = true -// preview.addGestureRecognizer(tapGestureRecognizer) -// -// updatePreviewWithCapturedImage() - setupWebSocket() - } - - @objc func dismissKeyboard() { - view.endEditing(true) - } - - func setupWebSocket() { - socket.delegate = self - socket.connect() - } - - func websocketDidConnect(socket: WebSocketClient) { - print("Web Socket Connected!") - } - - func websocketDidDisconnect(socket: WebSocketClient, error: Error?) { - print("Web Socket Disconnected: ", error.debugDescription) - } - - func websocketDidReceiveMessage(socket: WebSocketClient, text: String) { - print("Web Socket received message!") - outputTextView.setText(text: text) - } - - func websocketDidReceiveData(socket: WebSocketClient, data: Data) { - print("Web Socket received data!") - outputTextView.setText(text: data.base64EncodedString()) - } -} diff --git a/iOS/Gradio/UIImage+Extensions.swift b/iOS/Gradio/UIImage+Extensions.swift deleted file mode 100644 index c9aaa6412c..0000000000 --- a/iOS/Gradio/UIImage+Extensions.swift +++ /dev/null @@ -1,77 +0,0 @@ -// -// UIImage+Extensions.swift -// Gradio -// -// Created by Dawood Khan on 3/7/19. -// Copyright © 2019 Gradio. All rights reserved. -// - -import UIKit - -extension UIImage { -// func resizeImage(_ dimension: CGFloat, opaque: Bool, contentMode: UIView.ContentMode = .scaleAspectFit) -> UIImage { -// var width: CGFloat -// var height: CGFloat -// var newImage: UIImage -// -// let size = self.size -// let aspectRatio = size.width/size.height -// -// switch contentMode { -// case .scaleAspectFit: -// if aspectRatio > 1 { // Landscape image -// width = dimension -// height = dimension / aspectRatio -// } else { // Portrait image -// height = dimension -// width = dimension * aspectRatio -// } -// -// default: -// fatalError("UIIMage.resizeToFit(): FATAL: Unimplemented ContentMode") -// } -// -// if #available(iOS 10.0, *) { -// let renderFormat = UIGraphicsImageRendererFormat.default() -// renderFormat.opaque = opaque -// let renderer = UIGraphicsImageRenderer(size: CGSize(width: width, height: height), format: renderFormat) -// newImage = renderer.image { -// (context) in -// self.draw(in: CGRect(x: 0, y: 0, width: width, height: height)) -// } -// } else { -// UIGraphicsBeginImageContextWithOptions(CGSize(width: width, height: height), opaque, 0) -// self.draw(in: CGRect(x: 0, y: 0, width: width, height: height)) -// newImage = UIGraphicsGetImageFromCurrentImageContext()! -// UIGraphicsEndImageContext() -// } -// -// return newImage -// } - - func resizeImage(targetSize: CGSize) -> UIImage { - let size = self.size - - let widthRatio = targetSize.width / size.width - let heightRatio = targetSize.height / size.height - - // Figure out what our orientation is, and use that to form the rectangle - var newSize: CGSize - if(widthRatio > heightRatio) { - newSize = CGSize(width: size.width * heightRatio, height: size.height * heightRatio) - } else { - newSize = CGSize(width: size.width * widthRatio, height: size.height * widthRatio) - } - - // This is the rect that we've calculated out and this is what is actually used below - let rect = CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height) - - // Actually do the resizing to the rect using the ImageContext stuff - UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0) - self.draw(in: rect) - let newImage = UIGraphicsGetImageFromCurrentImageContext() - UIGraphicsEndImageContext() - - return newImage! - } -} diff --git a/iOS/Podfile b/iOS/Podfile deleted file mode 100644 index d0fc19f57a..0000000000 --- a/iOS/Podfile +++ /dev/null @@ -1,11 +0,0 @@ -# Uncomment the next line to define a global platform for your project -# platform :ios, '9.0' - -target 'Gradio' do - # Comment the next line if you're not using Swift and don't want to use dynamic frameworks - use_frameworks! - - # Pods for Gradio - pod 'Starscream', '~> 3.0.2' - -end diff --git a/iOS/Podfile.lock b/iOS/Podfile.lock deleted file mode 100644 index b32e764d41..0000000000 --- a/iOS/Podfile.lock +++ /dev/null @@ -1,16 +0,0 @@ -PODS: - - Starscream (3.0.6) - -DEPENDENCIES: - - Starscream (~> 3.0.2) - -SPEC REPOS: - https://github.com/cocoapods/specs.git: - - Starscream - -SPEC CHECKSUMS: - Starscream: ef3ece99d765eeccb67de105bfa143f929026cf5 - -PODFILE CHECKSUM: 2f2c34c8ff3ab88ffa46fb47cbe80129af8b19a3 - -COCOAPODS: 1.5.3