commit 22a5a3ecf340dc565a4b2d793ef3c1f47e317942 Author: Arpan Date: Tue Jan 13 11:36:24 2026 +0530 last updated diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..79c113f --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.build/ +.buildlog/ +.history +.svn/ +.swiftpm/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..ab6d41f --- /dev/null +++ b/.metadata @@ -0,0 +1,30 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "fcf2c11572af6f390246c056bc905eca609533a0" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + - platform: android + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..44910bd --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,25 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "OnUFitnessMobile", + "request": "launch", + "type": "dart" + }, + { + "name": "OnUFitnessMobile (profile mode)", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "OnUFitnessMobile (release mode)", + "request": "launch", + "type": "dart", + "flutterMode": "release" + } + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e37e4b1 --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# Introduction +TODO: Give a short introduction of your project. Let this section explain the objectives or the motivation behind this project. + +# Getting Started +TODO: Guide users through getting your code up and running on their own system. In this section you can talk about: +1. Installation process +2. Software dependencies +3. Latest releases +4. API references + +# Build and Test +TODO: Describe and show how to build your code and run the tests. + +# Contribute +TODO: Explain how other users and developers can contribute to make your code better. + +If you want to learn more about creating good readme files then refer the following [guidelines](https://docs.microsoft.com/en-us/azure/devops/repos/git/create-a-readme?view=azure-devops). You can also seek inspiration from the below readme files: +- [ASP.NET Core](https://github.com/aspnet/Home) +- [Visual Studio Code](https://github.com/Microsoft/vscode) +- [Chakra Core](https://github.com/Microsoft/ChakraCore) \ No newline at end of file diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..0e4a296 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,33 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +analyzer: + errors: + must_be_immutable: ignore + depend_on_referenced_packages: ignore + constant_identifier_names: ignore +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..be3943c --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,14 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java +.cxx/ + +# Remember to never publicly share your keystore. +# See https://flutter.dev/to/reference-keystore +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts new file mode 100644 index 0000000..4d85f50 --- /dev/null +++ b/android/app/build.gradle.kts @@ -0,0 +1,56 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") + id("com.google.gms.google-services") +} + +android { + namespace = "com.onufitness.dev" + compileSdk = flutter.compileSdkVersion + ndkVersion = "27.0.12077973" + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + isCoreLibraryDesugaringEnabled = true + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + defaultConfig { + applicationId = "com.onufitness.dev" + minSdk = 24 + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + multiDexEnabled = true + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + isMinifyEnabled = false + isShrinkResources = false + } + } + + packagingOptions { + pickFirst("lib/**/libaosl.so") + } + +} + +flutter { + source = "../.." +} + +dependencies { + implementation("com.google.gms:google-services:4.4.2") + implementation("com.google.firebase:firebase-analytics") + implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2") + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") + api("io.agora.infra:aosl:1.2.13") +} \ No newline at end of file diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 0000000..525bfd6 --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,37 @@ +{ + "project_info": { + "project_number": "1015952306116", + "project_id": "onufitness-436db", + "storage_bucket": "onufitness-436db.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:1015952306116:android:6359da68ee7b58f6587e91", + "android_client_info": { + "package_name": "com.onufitness.dev" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyBurwTb2vfZ2Ku6-98iSM-pnW5Tr8ZNdKY" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "1015952306116-r2ee1e0a6ohchpbeb4q0cpub0gqeda39.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "com.onufitness.dev" + } + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..489eb68 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/onufitness/dev/MainActivity.kt b/android/app/src/main/kotlin/com/onufitness/dev/MainActivity.kt new file mode 100644 index 0000000..7cc7a0d --- /dev/null +++ b/android/app/src/main/kotlin/com/onufitness/dev/MainActivity.kt @@ -0,0 +1,11 @@ +package com.onufitness.dev +import io.flutter.embedding.android.FlutterActivity +import io.flutter.embedding.engine.FlutterEngine +import io.flutter.plugins.GeneratedPluginRegistrant + +class MainActivity: FlutterActivity() { + override fun configureFlutterEngine(flutterEngine: FlutterEngine) { + super.configureFlutterEngine(flutterEngine) + GeneratedPluginRegistrant.registerWith(flutterEngine) + } +} diff --git a/android/app/src/main/kotlin/com/onufitness/onufitness/MainActivity.kt b/android/app/src/main/kotlin/com/onufitness/onufitness/MainActivity.kt new file mode 100644 index 0000000..c34d9f3 --- /dev/null +++ b/android/app/src/main/kotlin/com/onufitness/onufitness/MainActivity.kt @@ -0,0 +1,5 @@ +package com.onufitness.onufitness + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity : FlutterActivity() diff --git a/android/app/src/main/res/drawable-hdpi/ic_stat_notification.png b/android/app/src/main/res/drawable-hdpi/ic_stat_notification.png new file mode 100644 index 0000000..28b0b93 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_stat_notification.png differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_stat_notification.png b/android/app/src/main/res/drawable-mdpi/ic_stat_notification.png new file mode 100644 index 0000000..2e96280 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_stat_notification.png differ diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable-xhdpi/ic_stat_notification.png b/android/app/src/main/res/drawable-xhdpi/ic_stat_notification.png new file mode 100644 index 0000000..7409ef4 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_stat_notification.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_stat_notification.png b/android/app/src/main/res/drawable-xxhdpi/ic_stat_notification.png new file mode 100644 index 0000000..41306f9 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_stat_notification.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_stat_notification.png b/android/app/src/main/res/drawable-xxxhdpi/ic_stat_notification.png new file mode 100644 index 0000000..9716881 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_stat_notification.png differ diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..33deebe Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..01215b1 Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..95b0577 Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..7b0a924 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..8d402e2 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/raw/ringtone.mp3 b/android/app/src/main/res/raw/ringtone.mp3 new file mode 100644 index 0000000..69bbd8d Binary files /dev/null and b/android/app/src/main/res/raw/ringtone.mp3 differ diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..b6dc355 --- /dev/null +++ b/android/app/src/main/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #D2EB16 + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 0000000..708c587 --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,35 @@ +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + classpath("com.android.tools.build:gradle:8.1.0") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.0") + classpath("com.google.gms:google-services:4.4.2") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} + +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} \ No newline at end of file diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..f018a61 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..afa1e8e --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 0000000..591be60 --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1,25 @@ +pluginManagement { + val flutterSdkPath = run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.7.0" apply false + id("org.jetbrains.kotlin.android") version "2.1.0" apply false +} + +include(":app") \ No newline at end of file diff --git a/assets/accounts/achievements.png b/assets/accounts/achievements.png new file mode 100644 index 0000000..b12e55a Binary files /dev/null and b/assets/accounts/achievements.png differ diff --git a/assets/accounts/calender_icon.png b/assets/accounts/calender_icon.png new file mode 100644 index 0000000..47c5b88 Binary files /dev/null and b/assets/accounts/calender_icon.png differ diff --git a/assets/accounts/calories_burned.png b/assets/accounts/calories_burned.png new file mode 100644 index 0000000..9ddc3b3 Binary files /dev/null and b/assets/accounts/calories_burned.png differ diff --git a/assets/accounts/check-waves.png b/assets/accounts/check-waves.png new file mode 100644 index 0000000..14ee788 Binary files /dev/null and b/assets/accounts/check-waves.png differ diff --git a/assets/accounts/connections.png b/assets/accounts/connections.png new file mode 100644 index 0000000..1d50c2b Binary files /dev/null and b/assets/accounts/connections.png differ diff --git a/assets/accounts/delete.png b/assets/accounts/delete.png new file mode 100644 index 0000000..e1b7811 Binary files /dev/null and b/assets/accounts/delete.png differ diff --git a/assets/accounts/editIcon.png b/assets/accounts/editIcon.png new file mode 100644 index 0000000..2e21125 Binary files /dev/null and b/assets/accounts/editIcon.png differ diff --git a/assets/accounts/file-text.png b/assets/accounts/file-text.png new file mode 100644 index 0000000..ecac5fe Binary files /dev/null and b/assets/accounts/file-text.png differ diff --git a/assets/accounts/fitness_goal.png b/assets/accounts/fitness_goal.png new file mode 100644 index 0000000..23dc7e4 Binary files /dev/null and b/assets/accounts/fitness_goal.png differ diff --git a/assets/accounts/go.png b/assets/accounts/go.png new file mode 100644 index 0000000..e7fcdb7 Binary files /dev/null and b/assets/accounts/go.png differ diff --git a/assets/accounts/goal_heart_outline1.png b/assets/accounts/goal_heart_outline1.png new file mode 100644 index 0000000..d9e931c Binary files /dev/null and b/assets/accounts/goal_heart_outline1.png differ diff --git a/assets/accounts/goal_heart_outline2.png b/assets/accounts/goal_heart_outline2.png new file mode 100644 index 0000000..e257567 Binary files /dev/null and b/assets/accounts/goal_heart_outline2.png differ diff --git a/assets/accounts/health_info.png b/assets/accounts/health_info.png new file mode 100644 index 0000000..de56e50 Binary files /dev/null and b/assets/accounts/health_info.png differ diff --git a/assets/accounts/menu_icon.png b/assets/accounts/menu_icon.png new file mode 100644 index 0000000..796d2ab Binary files /dev/null and b/assets/accounts/menu_icon.png differ diff --git a/assets/accounts/my_activity.png b/assets/accounts/my_activity.png new file mode 100644 index 0000000..8596b66 Binary files /dev/null and b/assets/accounts/my_activity.png differ diff --git a/assets/accounts/notification_icon.png b/assets/accounts/notification_icon.png new file mode 100644 index 0000000..52d09e3 Binary files /dev/null and b/assets/accounts/notification_icon.png differ diff --git a/assets/accounts/play_start.png b/assets/accounts/play_start.png new file mode 100644 index 0000000..e2aca41 Binary files /dev/null and b/assets/accounts/play_start.png differ diff --git a/assets/accounts/privacy_policy.png b/assets/accounts/privacy_policy.png new file mode 100644 index 0000000..c99f67d Binary files /dev/null and b/assets/accounts/privacy_policy.png differ diff --git a/assets/accounts/rise.png b/assets/accounts/rise.png new file mode 100644 index 0000000..f0f5276 Binary files /dev/null and b/assets/accounts/rise.png differ diff --git a/assets/accounts/u_vault.png b/assets/accounts/u_vault.png new file mode 100644 index 0000000..7a761ef Binary files /dev/null and b/assets/accounts/u_vault.png differ diff --git a/assets/accounts/user-circle.png b/assets/accounts/user-circle.png new file mode 100644 index 0000000..3fc2280 Binary files /dev/null and b/assets/accounts/user-circle.png differ diff --git a/assets/auth/1.png b/assets/auth/1.png new file mode 100644 index 0000000..e62bb5e Binary files /dev/null and b/assets/auth/1.png differ diff --git a/assets/auth/2.png b/assets/auth/2.png new file mode 100644 index 0000000..48709b0 Binary files /dev/null and b/assets/auth/2.png differ diff --git a/assets/auth/apple.png b/assets/auth/apple.png new file mode 100644 index 0000000..d9e0d56 Binary files /dev/null and b/assets/auth/apple.png differ diff --git a/assets/auth/facebook.png b/assets/auth/facebook.png new file mode 100644 index 0000000..75796ac Binary files /dev/null and b/assets/auth/facebook.png differ diff --git a/assets/auth/google.png b/assets/auth/google.png new file mode 100644 index 0000000..12e1f52 Binary files /dev/null and b/assets/auth/google.png differ diff --git a/assets/auth/instagram.png b/assets/auth/instagram.png new file mode 100644 index 0000000..4651da5 Binary files /dev/null and b/assets/auth/instagram.png differ diff --git a/assets/auth/otp_auth.png b/assets/auth/otp_auth.png new file mode 100644 index 0000000..185a10d Binary files /dev/null and b/assets/auth/otp_auth.png differ diff --git a/assets/auth/password_auth.png b/assets/auth/password_auth.png new file mode 100644 index 0000000..998511c Binary files /dev/null and b/assets/auth/password_auth.png differ diff --git a/assets/auth/user_auth.png b/assets/auth/user_auth.png new file mode 100644 index 0000000..d6c35df Binary files /dev/null and b/assets/auth/user_auth.png differ diff --git a/assets/challenge/challenge_leaderboard_1st_rank.png b/assets/challenge/challenge_leaderboard_1st_rank.png new file mode 100644 index 0000000..03f2252 Binary files /dev/null and b/assets/challenge/challenge_leaderboard_1st_rank.png differ diff --git a/assets/challenge/challenge_leaderboard_2nd_rank.png b/assets/challenge/challenge_leaderboard_2nd_rank.png new file mode 100644 index 0000000..120cb5e Binary files /dev/null and b/assets/challenge/challenge_leaderboard_2nd_rank.png differ diff --git a/assets/challenge/challenge_leaderboard_3rd_rank.png b/assets/challenge/challenge_leaderboard_3rd_rank.png new file mode 100644 index 0000000..1b2ec21 Binary files /dev/null and b/assets/challenge/challenge_leaderboard_3rd_rank.png differ diff --git a/assets/chat/chat_appbar_bg_image.png b/assets/chat/chat_appbar_bg_image.png new file mode 100644 index 0000000..549d532 Binary files /dev/null and b/assets/chat/chat_appbar_bg_image.png differ diff --git a/assets/cloud-add.png b/assets/cloud-add.png new file mode 100644 index 0000000..76e83b9 Binary files /dev/null and b/assets/cloud-add.png differ diff --git a/assets/filter.png b/assets/filter.png new file mode 100644 index 0000000..220d1a2 Binary files /dev/null and b/assets/filter.png differ diff --git a/assets/fonts/Inter/Inter_18pt-Black.ttf b/assets/fonts/Inter/Inter_18pt-Black.ttf new file mode 100644 index 0000000..89673de Binary files /dev/null and b/assets/fonts/Inter/Inter_18pt-Black.ttf differ diff --git a/assets/fonts/Inter/Inter_18pt-Bold.ttf b/assets/fonts/Inter/Inter_18pt-Bold.ttf new file mode 100644 index 0000000..57704d1 Binary files /dev/null and b/assets/fonts/Inter/Inter_18pt-Bold.ttf differ diff --git a/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf b/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf new file mode 100644 index 0000000..e71c601 Binary files /dev/null and b/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf differ diff --git a/assets/fonts/Inter/Inter_18pt-ExtraLight.ttf b/assets/fonts/Inter/Inter_18pt-ExtraLight.ttf new file mode 100644 index 0000000..f9c6cfc Binary files /dev/null and b/assets/fonts/Inter/Inter_18pt-ExtraLight.ttf differ diff --git a/assets/fonts/Inter/Inter_18pt-Light.ttf b/assets/fonts/Inter/Inter_18pt-Light.ttf new file mode 100644 index 0000000..acae361 Binary files /dev/null and b/assets/fonts/Inter/Inter_18pt-Light.ttf differ diff --git a/assets/fonts/Inter/Inter_18pt-Medium.ttf b/assets/fonts/Inter/Inter_18pt-Medium.ttf new file mode 100644 index 0000000..71d9017 Binary files /dev/null and b/assets/fonts/Inter/Inter_18pt-Medium.ttf differ diff --git a/assets/fonts/Inter/Inter_18pt-Regular.ttf b/assets/fonts/Inter/Inter_18pt-Regular.ttf new file mode 100644 index 0000000..ce097c8 Binary files /dev/null and b/assets/fonts/Inter/Inter_18pt-Regular.ttf differ diff --git a/assets/fonts/Inter/Inter_18pt-SemiBold.ttf b/assets/fonts/Inter/Inter_18pt-SemiBold.ttf new file mode 100644 index 0000000..053185e Binary files /dev/null and b/assets/fonts/Inter/Inter_18pt-SemiBold.ttf differ diff --git a/assets/fonts/Inter/Inter_18pt-Thin.ttf b/assets/fonts/Inter/Inter_18pt-Thin.ttf new file mode 100644 index 0000000..e68ec47 Binary files /dev/null and b/assets/fonts/Inter/Inter_18pt-Thin.ttf differ diff --git a/assets/fonts/Inter/Inter_24pt-Bold.ttf b/assets/fonts/Inter/Inter_24pt-Bold.ttf new file mode 100644 index 0000000..e974d96 Binary files /dev/null and b/assets/fonts/Inter/Inter_24pt-Bold.ttf differ diff --git a/assets/fonts/Montserrat/Montserrat-Black.ttf b/assets/fonts/Montserrat/Montserrat-Black.ttf new file mode 100644 index 0000000..2fab7ab Binary files /dev/null and b/assets/fonts/Montserrat/Montserrat-Black.ttf differ diff --git a/assets/fonts/Montserrat/Montserrat-Bold.ttf b/assets/fonts/Montserrat/Montserrat-Bold.ttf new file mode 100644 index 0000000..4033587 Binary files /dev/null and b/assets/fonts/Montserrat/Montserrat-Bold.ttf differ diff --git a/assets/fonts/Montserrat/Montserrat-ExtraBold.ttf b/assets/fonts/Montserrat/Montserrat-ExtraBold.ttf new file mode 100644 index 0000000..476ec30 Binary files /dev/null and b/assets/fonts/Montserrat/Montserrat-ExtraBold.ttf differ diff --git a/assets/fonts/Montserrat/Montserrat-Light.ttf b/assets/fonts/Montserrat/Montserrat-Light.ttf new file mode 100644 index 0000000..881f12d Binary files /dev/null and b/assets/fonts/Montserrat/Montserrat-Light.ttf differ diff --git a/assets/fonts/Montserrat/Montserrat-Medium.ttf b/assets/fonts/Montserrat/Montserrat-Medium.ttf new file mode 100644 index 0000000..c9a39ea Binary files /dev/null and b/assets/fonts/Montserrat/Montserrat-Medium.ttf differ diff --git a/assets/fonts/Montserrat/Montserrat-Regular.ttf b/assets/fonts/Montserrat/Montserrat-Regular.ttf new file mode 100644 index 0000000..895e220 Binary files /dev/null and b/assets/fonts/Montserrat/Montserrat-Regular.ttf differ diff --git a/assets/fonts/Montserrat/Montserrat-SemiBold.ttf b/assets/fonts/Montserrat/Montserrat-SemiBold.ttf new file mode 100644 index 0000000..161477a Binary files /dev/null and b/assets/fonts/Montserrat/Montserrat-SemiBold.ttf differ diff --git a/assets/fonts/Montserrat/Montserrat-Thin.ttf b/assets/fonts/Montserrat/Montserrat-Thin.ttf new file mode 100644 index 0000000..c9cf195 Binary files /dev/null and b/assets/fonts/Montserrat/Montserrat-Thin.ttf differ diff --git a/assets/goals/goal_achievement_reward.png b/assets/goals/goal_achievement_reward.png new file mode 100644 index 0000000..3485281 Binary files /dev/null and b/assets/goals/goal_achievement_reward.png differ diff --git a/assets/image.png b/assets/image.png new file mode 100644 index 0000000..390b51c Binary files /dev/null and b/assets/image.png differ diff --git a/assets/logo/Logo onU.png b/assets/logo/Logo onU.png new file mode 100644 index 0000000..d8c1f4e Binary files /dev/null and b/assets/logo/Logo onU.png differ diff --git a/assets/nav_bar/account.png b/assets/nav_bar/account.png new file mode 100644 index 0000000..4f5661d Binary files /dev/null and b/assets/nav_bar/account.png differ diff --git a/assets/nav_bar/echoboard.png b/assets/nav_bar/echoboard.png new file mode 100644 index 0000000..19955d6 Binary files /dev/null and b/assets/nav_bar/echoboard.png differ diff --git a/assets/nav_bar/goal.png b/assets/nav_bar/goal.png new file mode 100644 index 0000000..8634e7a Binary files /dev/null and b/assets/nav_bar/goal.png differ diff --git a/assets/nav_bar/home.png b/assets/nav_bar/home.png new file mode 100644 index 0000000..62ddceb Binary files /dev/null and b/assets/nav_bar/home.png differ diff --git a/assets/social/beast color.png b/assets/social/beast color.png new file mode 100644 index 0000000..bb0b87f Binary files /dev/null and b/assets/social/beast color.png differ diff --git a/assets/social/chat_logo.png b/assets/social/chat_logo.png new file mode 100644 index 0000000..d4de751 Binary files /dev/null and b/assets/social/chat_logo.png differ diff --git a/assets/social/comments_icon.png b/assets/social/comments_icon.png new file mode 100644 index 0000000..6b6b427 Binary files /dev/null and b/assets/social/comments_icon.png differ diff --git a/assets/social/connection_icon.png b/assets/social/connection_icon.png new file mode 100644 index 0000000..84d31bd Binary files /dev/null and b/assets/social/connection_icon.png differ diff --git a/assets/social/create_poll_icon.png b/assets/social/create_poll_icon.png new file mode 100644 index 0000000..ab3aa67 Binary files /dev/null and b/assets/social/create_poll_icon.png differ diff --git a/assets/social/facebook.png b/assets/social/facebook.png new file mode 100644 index 0000000..c2d0fd6 Binary files /dev/null and b/assets/social/facebook.png differ diff --git a/assets/social/heart color.png b/assets/social/heart color.png new file mode 100644 index 0000000..d3120a9 Binary files /dev/null and b/assets/social/heart color.png differ diff --git a/assets/social/high-five_color.png b/assets/social/high-five_color.png new file mode 100644 index 0000000..f019514 Binary files /dev/null and b/assets/social/high-five_color.png differ diff --git a/assets/social/high_five_like_icon.png b/assets/social/high_five_like_icon.png new file mode 100644 index 0000000..86ae6d8 Binary files /dev/null and b/assets/social/high_five_like_icon.png differ diff --git a/assets/social/image_icon_social_wall.png b/assets/social/image_icon_social_wall.png new file mode 100644 index 0000000..f6e0c3b Binary files /dev/null and b/assets/social/image_icon_social_wall.png differ diff --git a/assets/social/instagram_1.png b/assets/social/instagram_1.png new file mode 100644 index 0000000..003ad45 Binary files /dev/null and b/assets/social/instagram_1.png differ diff --git a/assets/social/linkedIn.png b/assets/social/linkedIn.png new file mode 100644 index 0000000..2ffe4af Binary files /dev/null and b/assets/social/linkedIn.png differ diff --git a/assets/social/share_icon.png b/assets/social/share_icon.png new file mode 100644 index 0000000..9471b74 Binary files /dev/null and b/assets/social/share_icon.png differ diff --git a/assets/social/twitter.png b/assets/social/twitter.png new file mode 100644 index 0000000..b29f69c Binary files /dev/null and b/assets/social/twitter.png differ diff --git a/assets/social/video_icon1.png b/assets/social/video_icon1.png new file mode 100644 index 0000000..b1282b3 Binary files /dev/null and b/assets/social/video_icon1.png differ diff --git a/assets/social/video_post_icon.png b/assets/social/video_post_icon.png new file mode 100644 index 0000000..b1706d3 Binary files /dev/null and b/assets/social/video_post_icon.png differ diff --git a/assets/sounds/callertune.mp3 b/assets/sounds/callertune.mp3 new file mode 100644 index 0000000..24efcfe Binary files /dev/null and b/assets/sounds/callertune.mp3 differ diff --git a/assets/sounds/endcalltune.mp3 b/assets/sounds/endcalltune.mp3 new file mode 100644 index 0000000..eb17f8d Binary files /dev/null and b/assets/sounds/endcalltune.mp3 differ diff --git a/assets/sounds/ringtone.mp3 b/assets/sounds/ringtone.mp3 new file mode 100644 index 0000000..69bbd8d Binary files /dev/null and b/assets/sounds/ringtone.mp3 differ diff --git a/assets/splash/thumbnail_IMG.jpg b/assets/splash/thumbnail_IMG.jpg new file mode 100644 index 0000000..83f829d Binary files /dev/null and b/assets/splash/thumbnail_IMG.jpg differ diff --git a/assets/upload_text_with_icon.png b/assets/upload_text_with_icon.png new file mode 100644 index 0000000..f23f99b Binary files /dev/null and b/assets/upload_text_with_icon.png differ diff --git a/assets/user_default_image.png b/assets/user_default_image.png new file mode 100644 index 0000000..c706d4c Binary files /dev/null and b/assets/user_default_image.png differ diff --git a/devtools_options.yaml b/devtools_options.yaml new file mode 100644 index 0000000..fa0b357 --- /dev/null +++ b/devtools_options.yaml @@ -0,0 +1,3 @@ +description: This file stores settings for Dart & Flutter DevTools. +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states +extensions: diff --git a/firebase.json b/firebase.json new file mode 100644 index 0000000..f26934f --- /dev/null +++ b/firebase.json @@ -0,0 +1 @@ +{"flutter":{"platforms":{"android":{"default":{"projectId":"onufitness-436db","appId":"1:1015952306116:android:6359da68ee7b58f6587e91","fileOutput":"android/app/google-services.json"}},"dart":{"lib/firebase_options.dart":{"projectId":"onufitness-436db","configurations":{"android":"1:1015952306116:android:6359da68ee7b58f6587e91","ios":"1:1015952306116:ios:4b16953a643786dc587e91"}}}}}} \ No newline at end of file diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..7c56964 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 12.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..ec97fc6 --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..c4855bf --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 0000000..44580f2 --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,81 @@ +# Uncomment this line to define a global platform for your project +platform :ios, '13.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + + +pre_install do |installer| + # Define the path for the AgoraRtm framework + rtm_pod_path = File.join(installer.sandbox.root, 'AgoraRtm') + + # Full path to aosl.xcframework + aosl_xcframework_path = File.join(rtm_pod_path, 'aosl.xcframework') + + # Check if the file exists, and if it does, delete it + if File.exist?(aosl_xcframework_path) + puts "Deleting aosl.xcframework from #{aosl_xcframework_path}" + FileUtils.rm_rf(aosl_xcframework_path) + else + puts "aosl.xcframework not found, skipping deletion." + end +end + + + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + + # Add permission handler configurations + target.build_configurations.each do |config| + config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [ + '$(inherited)', + + ## dart: PermissionGroup.camera + 'PERMISSION_CAMERA=1', + + ## dart: PermissionGroup.microphone + 'PERMISSION_MICROPHONE=1', + + ## dart: PermissionGroup.notification + 'PERMISSION_NOTIFICATIONS=1', + + ## dart: PermissionGroup.photos + 'PERMISSION_PHOTOS=1', + ] + end + end +end \ No newline at end of file diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 0000000..1e8ff70 --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,263 @@ +PODS: + - AppAuth (1.7.6): + - AppAuth/Core (= 1.7.6) + - AppAuth/ExternalUserAgent (= 1.7.6) + - AppAuth/Core (1.7.6) + - AppAuth/ExternalUserAgent (1.7.6): + - AppAuth/Core + - AppCheckCore (11.2.0): + - GoogleUtilities/Environment (~> 8.0) + - GoogleUtilities/UserDefaults (~> 8.0) + - PromisesObjC (~> 2.4) + - better_player_plus (1.0.0): + - Cache (~> 6.0.0) + - Flutter + - GCDWebServer + - HLSCachingReverseProxyServer + - PINCache + - Cache (6.0.0) + - DKImagePickerController/Core (4.3.9): + - DKImagePickerController/ImageDataManager + - DKImagePickerController/Resource + - DKImagePickerController/ImageDataManager (4.3.9) + - DKImagePickerController/PhotoGallery (4.3.9): + - DKImagePickerController/Core + - DKPhotoGallery + - DKImagePickerController/Resource (4.3.9) + - DKPhotoGallery (0.0.19): + - DKPhotoGallery/Core (= 0.0.19) + - DKPhotoGallery/Model (= 0.0.19) + - DKPhotoGallery/Preview (= 0.0.19) + - DKPhotoGallery/Resource (= 0.0.19) + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Core (0.0.19): + - DKPhotoGallery/Model + - DKPhotoGallery/Preview + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Model (0.0.19): + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Preview (0.0.19): + - DKPhotoGallery/Model + - DKPhotoGallery/Resource + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Resource (0.0.19): + - SDWebImage + - SwiftyGif + - file_picker (0.0.1): + - DKImagePickerController/PhotoGallery + - Flutter + - Flutter (1.0.0) + - GCDWebServer (3.5.4): + - GCDWebServer/Core (= 3.5.4) + - GCDWebServer/Core (3.5.4) + - get_thumbnail_video (0.0.1): + - Flutter + - libwebp + - google_sign_in_ios (0.0.1): + - AppAuth (>= 1.7.4) + - Flutter + - FlutterMacOS + - GoogleSignIn (~> 8.0) + - GTMSessionFetcher (>= 3.4.0) + - GoogleSignIn (8.0.0): + - AppAuth (< 2.0, >= 1.7.3) + - AppCheckCore (~> 11.0) + - GTMAppAuth (< 5.0, >= 4.1.1) + - GTMSessionFetcher/Core (~> 3.3) + - GoogleUtilities/Environment (8.1.0): + - GoogleUtilities/Privacy + - GoogleUtilities/Logger (8.1.0): + - GoogleUtilities/Environment + - GoogleUtilities/Privacy + - GoogleUtilities/Privacy (8.1.0) + - GoogleUtilities/UserDefaults (8.1.0): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GTMAppAuth (4.1.1): + - AppAuth/Core (~> 1.7) + - GTMSessionFetcher/Core (< 4.0, >= 3.3) + - GTMSessionFetcher (3.5.0): + - GTMSessionFetcher/Full (= 3.5.0) + - GTMSessionFetcher/Core (3.5.0) + - GTMSessionFetcher/Full (3.5.0): + - GTMSessionFetcher/Core + - HLSCachingReverseProxyServer (0.1.0): + - GCDWebServer (~> 3.5) + - PINCache (>= 3.0.1-beta.3) + - image_picker_ios (0.0.1): + - Flutter + - libwebp (1.5.0): + - libwebp/demux (= 1.5.0) + - libwebp/mux (= 1.5.0) + - libwebp/sharpyuv (= 1.5.0) + - libwebp/webp (= 1.5.0) + - libwebp/demux (1.5.0): + - libwebp/webp + - libwebp/mux (1.5.0): + - libwebp/demux + - libwebp/sharpyuv (1.5.0) + - libwebp/webp (1.5.0): + - libwebp/sharpyuv + - package_info_plus (0.4.5): + - Flutter + - path_provider_foundation (0.0.1): + - Flutter + - FlutterMacOS + - PINCache (3.0.4): + - PINCache/Arc-exception-safe (= 3.0.4) + - PINCache/Core (= 3.0.4) + - PINCache/Arc-exception-safe (3.0.4): + - PINCache/Core + - PINCache/Core (3.0.4): + - PINOperation (~> 1.2.3) + - PINOperation (1.2.3) + - PromisesObjC (2.4.0) + - SDWebImage (5.21.0): + - SDWebImage/Core (= 5.21.0) + - SDWebImage/Core (5.21.0) + - Sentry/HybridSDK (8.46.0) + - sentry_flutter (8.14.2): + - Flutter + - FlutterMacOS + - Sentry/HybridSDK (= 8.46.0) + - share_plus (0.0.1): + - Flutter + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS + - sign_in_with_apple (0.0.1): + - Flutter + - sms_autofill (0.0.1): + - Flutter + - sqflite_darwin (0.0.4): + - Flutter + - FlutterMacOS + - SwiftyGif (5.4.5) + - url_launcher_ios (0.0.1): + - Flutter + - video_player_avfoundation (0.0.1): + - Flutter + - FlutterMacOS + - wakelock_plus (0.0.1): + - Flutter + +DEPENDENCIES: + - better_player_plus (from `.symlinks/plugins/better_player_plus/ios`) + - file_picker (from `.symlinks/plugins/file_picker/ios`) + - Flutter (from `Flutter`) + - get_thumbnail_video (from `.symlinks/plugins/get_thumbnail_video/ios`) + - google_sign_in_ios (from `.symlinks/plugins/google_sign_in_ios/darwin`) + - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) + - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) + - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) + - sentry_flutter (from `.symlinks/plugins/sentry_flutter/ios`) + - share_plus (from `.symlinks/plugins/share_plus/ios`) + - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) + - sign_in_with_apple (from `.symlinks/plugins/sign_in_with_apple/ios`) + - sms_autofill (from `.symlinks/plugins/sms_autofill/ios`) + - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) + - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) + - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`) + - wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`) + +SPEC REPOS: + trunk: + - AppAuth + - AppCheckCore + - Cache + - DKImagePickerController + - DKPhotoGallery + - GCDWebServer + - GoogleSignIn + - GoogleUtilities + - GTMAppAuth + - GTMSessionFetcher + - HLSCachingReverseProxyServer + - libwebp + - PINCache + - PINOperation + - PromisesObjC + - SDWebImage + - Sentry + - SwiftyGif + +EXTERNAL SOURCES: + better_player_plus: + :path: ".symlinks/plugins/better_player_plus/ios" + file_picker: + :path: ".symlinks/plugins/file_picker/ios" + Flutter: + :path: Flutter + get_thumbnail_video: + :path: ".symlinks/plugins/get_thumbnail_video/ios" + google_sign_in_ios: + :path: ".symlinks/plugins/google_sign_in_ios/darwin" + image_picker_ios: + :path: ".symlinks/plugins/image_picker_ios/ios" + package_info_plus: + :path: ".symlinks/plugins/package_info_plus/ios" + path_provider_foundation: + :path: ".symlinks/plugins/path_provider_foundation/darwin" + sentry_flutter: + :path: ".symlinks/plugins/sentry_flutter/ios" + share_plus: + :path: ".symlinks/plugins/share_plus/ios" + shared_preferences_foundation: + :path: ".symlinks/plugins/shared_preferences_foundation/darwin" + sign_in_with_apple: + :path: ".symlinks/plugins/sign_in_with_apple/ios" + sms_autofill: + :path: ".symlinks/plugins/sms_autofill/ios" + sqflite_darwin: + :path: ".symlinks/plugins/sqflite_darwin/darwin" + url_launcher_ios: + :path: ".symlinks/plugins/url_launcher_ios/ios" + video_player_avfoundation: + :path: ".symlinks/plugins/video_player_avfoundation/darwin" + wakelock_plus: + :path: ".symlinks/plugins/wakelock_plus/ios" + +SPEC CHECKSUMS: + AppAuth: d4f13a8fe0baf391b2108511793e4b479691fb73 + AppCheckCore: cc8fd0a3a230ddd401f326489c99990b013f0c4f + better_player_plus: 10794c0ed1b3b4ae058939e22a6172f850a2039b + Cache: 4ca7e00363fca5455f26534e5607634c820ffc2d + DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c + DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 + file_picker: a0560bc09d61de87f12d246fc47d2119e6ef37be + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + GCDWebServer: 2c156a56c8226e2d5c0c3f208a3621ccffbe3ce4 + get_thumbnail_video: 1a754d46b860dffefcc57b7290a43089cd5d7e58 + google_sign_in_ios: b48bb9af78576358a168361173155596c845f0b9 + GoogleSignIn: ce8c89bb9b37fb624b92e7514cc67335d1e277e4 + GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 + GTMAppAuth: f69bd07d68cd3b766125f7e072c45d7340dea0de + GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6 + HLSCachingReverseProxyServer: 59935e1e0244ad7f3375d75b5ef46e8eb26ab181 + image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a + libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8 + package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + PINCache: d9a87a0ff397acffe9e2f0db972ac14680441158 + PINOperation: fb563bcc9c32c26d6c78aaff967d405aa2ee74a7 + PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 + SDWebImage: f84b0feeb08d2d11e6a9b843cb06d75ebf5b8868 + Sentry: da60d980b197a46db0b35ea12cb8f39af48d8854 + sentry_flutter: 27892878729f42701297c628eb90e7c6529f3684 + share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a + shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + sign_in_with_apple: c5dcc141574c8c54d5ac99dd2163c0c72ad22418 + sms_autofill: b36b2147535657fea83d7f3898d7831de70bd8e4 + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 + SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 + url_launcher_ios: 694010445543906933d732453a59da0a173ae33d + video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b + wakelock_plus: e29112ab3ef0b318e58cfa5c32326458be66b556 + +PODFILE CHECKSUM: 4305caec6b40dde0ae97be1573c53de1882a07e5 + +COCOAPODS: 1.16.2 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..0f92b65 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,756 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + CC56E4FE4B1E3EADB920F39B /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA4EDFC9BC51E4E12E643799 /* Pods_Runner.framework */; }; + F221C4259CC8A47744243A38 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B487AD7732B386ADBC3BE559 /* Pods_RunnerTests.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 1A759948CA8558A3E9F293C4 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 1AED0F9D2265A88618549A4B /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 62AD452C2EB4EE7DEB56254D /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 706B4D96769DE276AF3C5FF6 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + B487AD7732B386ADBC3BE559 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B4CC7FA2CE032E4E669F1134 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + B55BE37F3BFBECC4A0F9DF48 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + CA4EDFC9BC51E4E12E643799 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CEC946E82DF83C7C00EBC0AA /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 745441C903EC8362F1F78F60 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F221C4259CC8A47744243A38 /* Pods_RunnerTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CC56E4FE4B1E3EADB920F39B /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2DA3B9BA89336215DB3DAC1C /* Frameworks */ = { + isa = PBXGroup; + children = ( + CA4EDFC9BC51E4E12E643799 /* Pods_Runner.framework */, + B487AD7732B386ADBC3BE559 /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 40D2CBCA3C32D6A80D6CFDE6 /* Pods */ = { + isa = PBXGroup; + children = ( + 1AED0F9D2265A88618549A4B /* Pods-Runner.debug.xcconfig */, + B55BE37F3BFBECC4A0F9DF48 /* Pods-Runner.release.xcconfig */, + 1A759948CA8558A3E9F293C4 /* Pods-Runner.profile.xcconfig */, + B4CC7FA2CE032E4E669F1134 /* Pods-RunnerTests.debug.xcconfig */, + 706B4D96769DE276AF3C5FF6 /* Pods-RunnerTests.release.xcconfig */, + 62AD452C2EB4EE7DEB56254D /* Pods-RunnerTests.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + 40D2CBCA3C32D6A80D6CFDE6 /* Pods */, + 2DA3B9BA89336215DB3DAC1C /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + CEC946E82DF83C7C00EBC0AA /* Runner.entitlements */, + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 9EAAB6A68D5A04AF6B043DC7 /* [CP] Check Pods Manifest.lock */, + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + 745441C903EC8362F1F78F60 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 3889C222E50244EB8483566E /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 9936D4C890EB709E3C33E3C0 /* [CP] Embed Pods Frameworks */, + 4488747CB21A9D2FE44DAD47 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3889C222E50244EB8483566E /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-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; + }; + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 4488747CB21A9D2FE44DAD47 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; + 9936D4C890EB709E3C33E3C0 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 9EAAB6A68D5A04AF6B043DC7 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-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 */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_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_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CURRENT_PROJECT_VERSION = 3; + DEVELOPMENT_TEAM = TZ73HT6DNW; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0.0; + PRODUCT_BUNDLE_IDENTIFIER = com.onufitness.dev; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B4CC7FA2CE032E4E669F1134 /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.onufitness.dev.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 706B4D96769DE276AF3C5FF6 /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.onufitness.dev.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 62AD452C2EB4EE7DEB56254D /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.onufitness.dev.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_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_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_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_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CURRENT_PROJECT_VERSION = 3; + DEVELOPMENT_TEAM = TZ73HT6DNW; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0.0; + PRODUCT_BUNDLE_IDENTIFIER = com.onufitness.dev; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CURRENT_PROJECT_VERSION = 3; + DEVELOPMENT_TEAM = TZ73HT6DNW; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0.0; + PRODUCT_BUNDLE_IDENTIFIER = com.onufitness.dev; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..15cada4 --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..08fb586 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,29 @@ +import UIKit +import Flutter +import Firebase +import flutter_local_notifications + + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + + // For Push Notification Action Buttons + FlutterLocalNotificationsPlugin.setPluginRegistrantCallback { (registry) in + GeneratedPluginRegistrant.register(with: registry) + } + + // ✅ Initialize Firebase + FirebaseApp.configure() + + if #available(iOS 10.0, *) { + UNUserNotificationCenter.current().delegate = self as UNUserNotificationCenterDelegate + } + + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} \ No newline at end of file diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png new file mode 100644 index 0000000..673ca30 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/102.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/102.png new file mode 100644 index 0000000..d5697d8 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/102.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 0000000..24208dc Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/108.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/108.png new file mode 100644 index 0000000..4408e85 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/108.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png new file mode 100644 index 0000000..1bd8ea1 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png new file mode 100644 index 0000000..b33b794 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png new file mode 100644 index 0000000..e1c17eb Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png new file mode 100644 index 0000000..8776b02 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png new file mode 100644 index 0000000..2d45676 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png new file mode 100644 index 0000000..a4d194b Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png new file mode 100644 index 0000000..418328f Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png new file mode 100644 index 0000000..a56ffc2 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png new file mode 100644 index 0000000..57a655f Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png new file mode 100644 index 0000000..5c6290c Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png new file mode 100644 index 0000000..c64a775 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png new file mode 100644 index 0000000..99d8d06 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/234.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/234.png new file mode 100644 index 0000000..bdbb46c Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/234.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png new file mode 100644 index 0000000..14589ae Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/258.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/258.png new file mode 100644 index 0000000..54f161d Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/258.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png new file mode 100644 index 0000000..6e6a724 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png new file mode 100644 index 0000000..e4bdc7a Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png new file mode 100644 index 0000000..bfe1235 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png new file mode 100644 index 0000000..79ea342 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png new file mode 100644 index 0000000..8ef72a3 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png new file mode 100644 index 0000000..8723a25 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png new file mode 100644 index 0000000..ded4ec8 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png new file mode 100644 index 0000000..2c64d09 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png new file mode 100644 index 0000000..62ba19e Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png new file mode 100644 index 0000000..6c56bd3 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png new file mode 100644 index 0000000..f7f1e15 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/66.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/66.png new file mode 100644 index 0000000..0bd1b87 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/66.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png new file mode 100644 index 0000000..b3b9dee Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png new file mode 100644 index 0000000..f04f33d Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png new file mode 100644 index 0000000..315228e Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png new file mode 100644 index 0000000..9f19ca2 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png new file mode 100644 index 0000000..80ca37c Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/92.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/92.png new file mode 100644 index 0000000..4af241c Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/92.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..1319290 --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1 @@ +{"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"idiom":"watch","filename":"172.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"86x86","expected-size":"172","role":"quickLook"},{"idiom":"watch","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"40x40","expected-size":"80","role":"appLauncher"},{"idiom":"watch","filename":"88.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"40mm","scale":"2x","size":"44x44","expected-size":"88","role":"appLauncher"},{"idiom":"watch","filename":"102.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"45mm","scale":"2x","size":"51x51","expected-size":"102","role":"appLauncher"},{"idiom":"watch","filename":"108.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"49mm","scale":"2x","size":"54x54","expected-size":"108","role":"appLauncher"},{"idiom":"watch","filename":"92.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"41mm","scale":"2x","size":"46x46","expected-size":"92","role":"appLauncher"},{"idiom":"watch","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"44mm","scale":"2x","size":"50x50","expected-size":"100","role":"appLauncher"},{"idiom":"watch","filename":"196.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"42mm","scale":"2x","size":"98x98","expected-size":"196","role":"quickLook"},{"idiom":"watch","filename":"216.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"44mm","scale":"2x","size":"108x108","expected-size":"216","role":"quickLook"},{"idiom":"watch","filename":"234.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"45mm","scale":"2x","size":"117x117","expected-size":"234","role":"quickLook"},{"idiom":"watch","filename":"258.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"49mm","scale":"2x","size":"129x129","expected-size":"258","role":"quickLook"},{"idiom":"watch","filename":"48.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"24x24","expected-size":"48","role":"notificationCenter"},{"idiom":"watch","filename":"55.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"42mm","scale":"2x","size":"27.5x27.5","expected-size":"55","role":"notificationCenter"},{"idiom":"watch","filename":"66.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"45mm","scale":"2x","size":"33x33","expected-size":"66","role":"notificationCenter"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch","role":"companionSettings","scale":"3x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch","role":"companionSettings","scale":"2x"},{"size":"1024x1024","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch-marketing","scale":"1x"},{"size":"128x128","expected-size":"128","filename":"128.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"256x256","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"128x128","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"256x256","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"512x512","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"16","filename":"16.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"64","filename":"64.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"512x512","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"}]} \ No newline at end of file diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/GoogleService-Info.plist new file mode 100644 index 0000000..8e64876 --- /dev/null +++ b/ios/Runner/GoogleService-Info.plist @@ -0,0 +1,34 @@ + + + + + CLIENT_ID + 1015952306116-r2ee1e0a6ohchpbeb4q0cpub0gqeda39.apps.googleusercontent.com + REVERSED_CLIENT_ID + com.googleusercontent.apps.1015952306116-r2ee1e0a6ohchpbeb4q0cpub0gqeda39 + API_KEY + AIzaSyC0OA2De0skAm0w176KPO_eKgZ9Ou5zPgE + GCM_SENDER_ID + 1015952306116 + PLIST_VERSION + 1 + BUNDLE_ID + com.onufitness.dev + PROJECT_ID + onufitness-436db + STORAGE_BUCKET + onufitness-436db.firebasestorage.app + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:1015952306116:ios:4b16953a643786dc587e91 + + \ No newline at end of file diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..21a3b02 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,118 @@ + + + + + + NSMicrophoneUsageDescription + This app needs access to the microphone for voice and video calls. + + + NSCameraUsageDescription + This app requires access to the camera for video calls and live streaming. + + + NSPhotoLibraryUsageDescription + This app requires access to the photo library. + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Onufitness + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + onufitness + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + + + UIBackgroundModes + + fetch + remote-notification + voip + audio + + + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + + CFBundleURLTypes + + + CFBundleURLSchemes + + com.googleusercontent.apps.1015952306116-r2ee1e0a6ohchpbeb4q0cpub0gqeda39 + + + + CFBundleURLName + com.onufitness.dev + CFBundleURLSchemes + + onufitness + + + + + + AssociatedDomains + + applinks:uat.onufitness.com + + + + + FirebaseAppDelegateProxyEnabled + + + + NSUserNotificationUsageDescription + This app uses notifications to alert you about updates, messages, and reminders. + + UIBackgroundModes + + remote-notification + + + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + + \ No newline at end of file diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/ios/Runner/Runner.entitlements b/ios/Runner/Runner.entitlements new file mode 100644 index 0000000..a812db5 --- /dev/null +++ b/ios/Runner/Runner.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.developer.applesignin + + Default + + + diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/ios/build/ios/XCBuildData/PIFCache/project/PROJECT@v11_mod=8df9ee72a434823faea6d09b791c2e9d_hash=bfdfe7dc352907fc980b868725387e98plugins=1OJSG6M1FOV3XYQCBH7Z29RZ0FPR9XDE1-json b/ios/build/ios/XCBuildData/PIFCache/project/PROJECT@v11_mod=8df9ee72a434823faea6d09b791c2e9d_hash=bfdfe7dc352907fc980b868725387e98plugins=1OJSG6M1FOV3XYQCBH7Z29RZ0FPR9XDE1-json new file mode 100644 index 0000000..5b249df --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/project/PROJECT@v11_mod=8df9ee72a434823faea6d09b791c2e9d_hash=bfdfe7dc352907fc980b868725387e98plugins=1OJSG6M1FOV3XYQCBH7Z29RZ0FPR9XDE1-json @@ -0,0 +1 @@ +{"appPreferencesBuildSettings":{},"buildConfigurations":[{"buildSettings":{"ALWAYS_SEARCH_USER_PATHS":"NO","CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED":"YES","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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"YES","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","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":"POD_CONFIGURATION_DEBUG=1 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.0","MTL_ENABLE_DEBUG_INFO":"INCLUDE_SOURCE","MTL_FAST_MATH":"YES","ONLY_ACTIVE_ARCH":"YES","PRODUCT_NAME":"$(TARGET_NAME)","STRIP_INSTALLED_PRODUCT":"NO","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"DEBUG","SWIFT_OPTIMIZATION_LEVEL":"-Onone","SWIFT_VERSION":"5.0","SYMROOT":"${SRCROOT}/../build"},"guid":"bfdfe7dc352907fc980b868725387e98814b7e2c3bac55ee99d78eaa8d1ec61e","name":"Debug"},{"buildSettings":{"ALWAYS_SEARCH_USER_PATHS":"NO","CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED":"YES","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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"YES","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","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_PREPROCESSOR_DEFINITIONS":"POD_CONFIGURATION_PROFILE=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.0","MTL_ENABLE_DEBUG_INFO":"NO","MTL_FAST_MATH":"YES","PRODUCT_NAME":"$(TARGET_NAME)","STRIP_INSTALLED_PRODUCT":"NO","SWIFT_COMPILATION_MODE":"wholemodule","SWIFT_OPTIMIZATION_LEVEL":"-O","SWIFT_VERSION":"5.0","SYMROOT":"${SRCROOT}/../build"},"guid":"bfdfe7dc352907fc980b868725387e98c22f26ca3341c3062f2313dc737070d4","name":"Profile"},{"buildSettings":{"ALWAYS_SEARCH_USER_PATHS":"NO","CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED":"YES","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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"YES","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","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_PREPROCESSOR_DEFINITIONS":"POD_CONFIGURATION_RELEASE=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.0","MTL_ENABLE_DEBUG_INFO":"NO","MTL_FAST_MATH":"YES","PRODUCT_NAME":"$(TARGET_NAME)","STRIP_INSTALLED_PRODUCT":"NO","SWIFT_COMPILATION_MODE":"wholemodule","SWIFT_OPTIMIZATION_LEVEL":"-O","SWIFT_VERSION":"5.0","SYMROOT":"${SRCROOT}/../build"},"guid":"bfdfe7dc352907fc980b868725387e9828903703a9fe9e3707306e58aab67b51","name":"Release"}],"classPrefix":"","defaultConfigurationName":"Release","developmentRegion":"en","groupTree":{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98d0b25d39b515a574839e998df229c3cb","path":"../Podfile","sourceTree":"SOURCE_ROOT","type":"file"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984418d0c3f75886b37556a3f3cc65867f","path":"../../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios/Classes/BetterPlayer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ae3ca0a7ac9e8c184b40023fc7ee0a4f","path":"../../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios/Classes/BetterPlayer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984b948423f4e6b2300477d673886f65fe","path":"../../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios/Classes/BetterPlayerEzDrmAssetsLoaderDelegate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c27645b99e2391255f580099ffbb29a1","path":"../../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios/Classes/BetterPlayerEzDrmAssetsLoaderDelegate.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b9103e2271cbfc166fe2660fd2692d05","path":"../../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios/Classes/BetterPlayerPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9849ac3e04558e5f2867038a141f75ac97","path":"../../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios/Classes/BetterPlayerPlugin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e7ec57cf4f8204038df619242d2b526f","path":"../../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios/Classes/BetterPlayerTimeUtils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980b7def8b3ac13244f4046acc579bd47c","path":"../../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios/Classes/BetterPlayerTimeUtils.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981ef4add4f0f7c3fd094353bf29f31e74","path":"../../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios/Classes/BetterPlayerView.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9868952393e262db434dad80282a46892a","path":"../../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios/Classes/BetterPlayerView.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e980867eb6bbb294c85db46f63f94e84058","path":"../../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios/Classes/CacheManager.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f5038db6efdaecd19977d1f892e78e56","path":"../../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios/Classes/CachingPlayerItem.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98bb11a02757dd8e10271d5ff0efd47b16","name":"Classes","path":"Classes","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985f2b70eb7272dcddadbd8a6cfa79c79d","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d035821d0afab4abb63a1671751b208c","name":"better_player_plus","path":"better_player_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dc619fc8de61029fbcdfe072d59bafec","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98aeb0751d158856f0fa4c1e7d05fad69b","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dbb1090e56943d0a1b0395e64471737b","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988743440697ae8c6861e3b045aff1b601","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9802358e095278e1ef05141cb0f29d7ef1","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984024164e5fa76ff86f313035522cdb52","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98678a22bd709f409b993c3d99cbb6589a","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bed4da90293eb04c67b8ae78b4ffba72","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981d2c0bd338ec2eaa15a9b57083bf6bbb","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98462a20069b4c562c389067f27ba8f118","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bc29795ba1420affac76585855ec3f2e","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios","sourceTree":"","type":"group"},{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e9829c01a5639d727ed4fc42e9fd7db67d3","path":"../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/ios/better_player_plus.podspec","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9818ddb8a3989969cea2b3b6c21b8d8d40","path":"../../../../../../../.pub-cache/hosted/pub.dev/better_player_plus-1.0.8/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e988f1856a7dba7703f5c05e12f1b20e9d1","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e9885b0bd0a30ad84effadc8fac9a1e7189","path":"better_player_plus.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98188e3a6e5499c1698ca9920867c8e4f6","path":"better_player_plus-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e986af974e8fb20a81b6ef16153c866d983","path":"better_player_plus-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982372b0ee6a1bb2b2f2dd78e5eb2a559c","path":"better_player_plus-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98263e6f9a5d92d4e8d2963c1154f461f8","path":"better_player_plus-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98e985e378d71adcc73aaffb9c1f6c0b9b","path":"better_player_plus.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e988441e236375b4cb392ca55ffd653fa54","path":"better_player_plus.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98853514b3fbb92f22cf29847f9beff135","name":"Support Files","path":"../../../../Pods/Target Support Files/better_player_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b24b6a23b3d465b483858c1d988340a0","name":"better_player_plus","path":"../.symlinks/plugins/better_player_plus/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f62dd99f1a275b3ad308abb443d07ee8","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/ios/file_picker/Sources/file_picker/FileInfo.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98dd1d97c2fa84fdd23d18cbb5bf981ca3","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/ios/file_picker/Sources/file_picker/FilePickerPlugin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982d8ee0dbe467e1ab5e558655dfc394d3","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/ios/file_picker/Sources/file_picker/FileUtils.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9850f3cdab1f52269cbaa172c4efc2afa1","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/ios/file_picker/Sources/file_picker/ImageUtils.m","sourceTree":"","type":"file"},{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9862198211ba6034642bbc5f4a29e29268","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/ios/file_picker/Sources/file_picker/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984d7e44faf95d2e6669296b9041abcee7","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/ios/file_picker/Sources/file_picker/include/file_picker-umbrella.h","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982c4cd0aa851a88c15deea5d21af58c97","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/ios/file_picker/Sources/file_picker/include/file_picker/FileInfo.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fc0bc3a668c7cd453a18e5273e326c6c","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/ios/file_picker/Sources/file_picker/include/file_picker/FilePickerPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9897ecee62713cf3daa147b8d101a60f6d","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/ios/file_picker/Sources/file_picker/include/file_picker/FileUtils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d6b44ed2856cf13b797725519011b5af","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/ios/file_picker/Sources/file_picker/include/file_picker/ImageUtils.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98a339a10a9c879c7ad954fc2c265bfaa8","name":"file_picker","path":"file_picker","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9847a8ada9aa69363d3f56ac1848dc9ea7","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98850a8fccd8e014a60deaa3f50f631308","name":"file_picker","path":"file_picker","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9814397788281aa3ce3bb3092e5ce0df09","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d0320f3e0e3552121abacefe33d175ee","name":"file_picker","path":"file_picker","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986aaa0a074c28a1d3a49988001ccde213","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984fbbac44529f4f2988763a81db47f78a","name":"file_picker","path":"file_picker","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986a295c5d24dd66cfc9cd26baf8c15d01","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9869a7b06c623a8b10bfc68b63698c151c","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98377db485a73cb68a0fa60caca0f4fb11","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988945897e9f3d3d95a0eef4c5e059463d","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98092ca25e6eb2bb871c9614dd21d67028","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983447b669d72a0e1423e2d6735cafed6f","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b8e8981cd0b698ac2a4f71a6c05fa374","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cd5250fb6035dd97e3ca56f58fab72bd","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c06dbb0bac479cb36d7210098cc4e490","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d1cd9c34670a7216ccd401c6f9b658a1","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98545ea6732bd09d89561cefdb969b8d29","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9805507b0203268e1b06ff288feb9f2243","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983a145f9a2671035405d2bb8e37afbbfc","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/ios/file_picker/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e984da62d03f0fe9dfe9d6f77cb36b03e35","path":"../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/ios/file_picker/Sources/file_picker/include/file_picker.modulemap","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e9891b73e6aa49918b448d885961884fb83","path":"../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/ios/file_picker.podspec","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9894010401013a1368d1a437532620fde2","path":"../../../../../../../.pub-cache/hosted/pub.dev/file_picker-9.2.3/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9872d827f5500aa348b0bac40dc88b686b","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e988e20b2dddbca75f0c510c0a8191b95df","path":"file_picker.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98aa46b32498462091196d698107b2b8ce","path":"file_picker-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e989decc2c3d7d6fd09d9fdff177070103e","path":"file_picker-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c4bf12ed79b02030bf64a4037ad47ac6","path":"file_picker-prefix.pch","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98d004a44bc0f83b36de4c06c0e2d7acf9","path":"file_picker.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98e1a34420b75d91042885836aff28acec","path":"file_picker.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e982d1e2fe227a8abe1fce5b503fe409541","path":"ResourceBundle-file_picker_ios_privacy-file_picker-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e986d39711115f1f6eafc79651f61add7fa","name":"Support Files","path":"../../../../Pods/Target Support Files/file_picker","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ce0ac0a58bab43ee703966ddcbeb51bb","name":"file_picker","path":"../.symlinks/plugins/file_picker/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e983130e808e3ed70ed22f93c5c2d93fd9c","path":"Flutter.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98ab93b116569e34b9a63eaed8952b7a35","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e982d88fc83a5b8fe50739851256ce3687c","path":"Flutter.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e988fe5b71b828dd1ca85523b7e794b6a88","path":"Flutter.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9823a114f8f2be01e28c0245e2add5655e","name":"Support Files","path":"../Pods/Target Support Files/Flutter","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983810f81e40a5cf2ee58446bd5748c731","name":"Flutter","path":"../Flutter","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f583ac326afb0485d75384ffb6dba690","path":"../../../../../../../../.pub-cache/hosted/pub.dev/get_thumbnail_video-0.7.3/ios/Classes/VideoThumbnailPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987d395f0f5798141178bbc687f4907437","path":"../../../../../../../../.pub-cache/hosted/pub.dev/get_thumbnail_video-0.7.3/ios/Classes/VideoThumbnailPlugin.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98ab336c98f0debf82abecc037b66559d7","name":"Classes","path":"Classes","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dfeeb4e745aa00ecb800f217d4ceab69","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a3843df52d5d659ab093cb96962024e6","name":"get_thumbnail_video","path":"get_thumbnail_video","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ab2251465638172d3084f44237db69a1","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9867d2495b2e4c8ae5f9a57017064f028a","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983f7b5a7c8d102f40d22562a662a80467","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988cdc6d9dbff90330d09b345d34976341","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984e6abf9c2c76e315be8213f90f591775","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98abf1ad3ed54bde17a95d9f05be18359d","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ccf38bb0c6df64383c6bec82902f2340","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98da7b04a7f02c5e431cc818e02b1f4b32","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984366cff8d1d947953faa7d3d096100d9","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9863fe3b7db4ef3a03155b6fcc81b002d3","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981bbfcfa18ccdf81b9ca3f5624d3c8f80","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/get_thumbnail_video-0.7.3/ios","sourceTree":"","type":"group"},{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98e4e4ab922185525c2d2f91fdf2a204f6","path":"../../../../../../../.pub-cache/hosted/pub.dev/get_thumbnail_video-0.7.3/ios/get_thumbnail_video.podspec","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9898d229f7773c50f6c284c2ccba0b28a6","path":"../../../../../../../.pub-cache/hosted/pub.dev/get_thumbnail_video-0.7.3/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9852dbbfe92662481357ffaf061acf084a","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e986eaf4ac69b9860206c06e788d276430f","path":"get_thumbnail_video.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987a469c36e3142c42200830f7e024ed8c","path":"get_thumbnail_video-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98840a521c78be16c2ee7d3315eb355d4b","path":"get_thumbnail_video-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985f44f4ee1f7fc2885eb2af1ffa24e5bc","path":"get_thumbnail_video-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98655355ef116ad849adc14710a8876d53","path":"get_thumbnail_video-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e981bec8910b7d28be215d53481be797475","path":"get_thumbnail_video.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98c3b733e9ef0ed327bc439a2f469777f6","path":"get_thumbnail_video.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e983e53d4be4241b696b372ee88dbca720f","name":"Support Files","path":"../../../../Pods/Target Support Files/get_thumbnail_video","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98174e5971ca755f7fa1a7d3c85e8a305c","name":"get_thumbnail_video","path":"../.symlinks/plugins/get_thumbnail_video/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98f04b467bc1129aa9bc6b8ee2d94ed4dd","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/google_sign_in_ios-5.9.0/darwin/google_sign_in_ios/Sources/google_sign_in_ios/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98922ba536f317b1f0c1c62f6ea3a63a2f","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9819b97275eb5869a04ca0ee46c8a71254","name":"google_sign_in_ios","path":"google_sign_in_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982f3cac794cc9c89221bb18b45e9eab03","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987f776d539c614fedd1a594c5ac9ea2c9","name":"google_sign_in_ios","path":"google_sign_in_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98799c5025d022f1cf6c3118689e96b23f","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9804e4076ad9a9d8fb2c2ea0d077edd9fc","name":"google_sign_in_ios","path":"google_sign_in_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a87b279335843617d2798138502ceba8","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9857927ee431effb36e120cec851afba31","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984d584eb5eda0eb072ae09a99448e408c","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986a161343f548e6e060b05df405f0c778","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98692daf68a4e5555ceb40c2e029d53a3f","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984e9694666120da803eb4bf162a46ac51","name":"..","path":".","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984623f2dff5d599f280c1008d3b839d70","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/google_sign_in_ios-5.9.0/darwin/google_sign_in_ios/Sources/google_sign_in_ios/FLTGoogleSignInPlugin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988fc596a57be07c0620a869973ad6a721","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/google_sign_in_ios-5.9.0/darwin/google_sign_in_ios/Sources/google_sign_in_ios/messages.g.m","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9892ee26e2d1ae306258f55404a53c4583","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/google_sign_in_ios-5.9.0/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios-umbrella.h","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9876729823b3dbba267eaa104ef604fb72","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/google_sign_in_ios-5.9.0/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/FLTGoogleSignInPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983c2b9a94c5714ad20f4c384e2a01ee5f","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/google_sign_in_ios-5.9.0/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/FLTGoogleSignInPlugin_Test.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fe0fadf4dd3aaa771341b7cc10a14bbf","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/google_sign_in_ios-5.9.0/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/google_sign_in_ios/messages.g.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98f2c606f600fb0cc2b9aa202e86bcd01d","name":"google_sign_in_ios","path":"google_sign_in_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d2e9abdc5996a912c65253f8d1758216","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9873e710b49e95c69ba713a7501df272fd","name":"google_sign_in_ios","path":"google_sign_in_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98602667c6e09ac1d5e41b27c7086e148e","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9812352bb44fd92fa2eb5330cbd83399dc","name":"google_sign_in_ios","path":"google_sign_in_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980237e0855fcc6d4c52afa38ef9d2ac2e","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987998ab4a1022d8752fc4d84a4b9774bf","name":"google_sign_in_ios","path":"google_sign_in_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d25855c9fa9922219a63d9ace2d38255","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986b7fe561c9514d56784d3e8931ef5bab","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9826c1bc2b6d2c5b083ce1369104516e72","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9868bdffa0aabd6e43905d8ba30938f67f","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9867e4e3b900695d06afe9b030331962dc","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9819e3f76cce14c34b6509bbbaa03b401b","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987f13bc0f74ba93ad7f1f1e532baf5b03","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982aee10e01904e7cd31b8a453162979c5","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987dbc5e42bec36f70c8ac9d8a6ac2a7bf","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98669c24ce15a431d89102f3b9e72d8631","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b38d8456c87b2b1a119bac34c884dfff","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c0acc549acc5d552f300b3d63729e072","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981548932accf68e24eccf0736260ae3d8","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/google_sign_in_ios-5.9.0/darwin/google_sign_in_ios/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98eb856776f1feda0cd22d4e3bcd333f94","path":"../../../../../../../.pub-cache/hosted/pub.dev/google_sign_in_ios-5.9.0/darwin/google_sign_in_ios/Sources/google_sign_in_ios/include/FLTGoogleSignInPlugin.modulemap","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e9825d540737deb8478000903c0e6a20db8","path":"../../../../../../../.pub-cache/hosted/pub.dev/google_sign_in_ios-5.9.0/darwin/google_sign_in_ios.podspec","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98409ead27f99bbdd0f6dca85e73d05ac3","path":"../../../../../../../.pub-cache/hosted/pub.dev/google_sign_in_ios-5.9.0/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98a74bb3e772e8f1d9727d6aef70eecb7e","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98af61f162f24152a94bbdd5aad48311c2","path":"google_sign_in_ios.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98197a2beb0a3647110cb2c64d4d479781","path":"google_sign_in_ios-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98e31fa1e9b33488d29749728f33466252","path":"google_sign_in_ios-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981c1b4fb9b4d95f503175cc245d85cdf9","path":"google_sign_in_ios-prefix.pch","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f18f0c43af5ca85b293f18013cee90a4","path":"google_sign_in_ios.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f66df6b80a453710ee890ea3341aa9f8","path":"google_sign_in_ios.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e989f7428a5518d524fd5651ad5ebc14e1b","path":"ResourceBundle-google_sign_in_ios_privacy-google_sign_in_ios-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e987dd6358c69ffb9daf6fdbccb5d60666c","name":"Support Files","path":"../../../../Pods/Target Support Files/google_sign_in_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ab6111da121ac831e77be0b7e39c2f03","name":"google_sign_in_ios","path":"../.symlinks/plugins/google_sign_in_ios/darwin","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98e87b98156028c3163077fa73a16ac220","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9813d2e5c27ddef4a64d68ec0714af1c2f","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98087f66b61626ee49203c1c9e0be147ca","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a48c6f745aec1b07d60b7c95956ae4a2","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f27435c309982c5c4416aa970d6f1795","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981d25d127226e628bc52d8e57ca61b844","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988a4e10da093f65e3e0cd783e1fd9cfb4","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9863d3b7c45299e2d0af340e49b879e5a2","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98083b290ea5c24df3d938b8feeffc41fe","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9876ac8b1762c0dda4fb3900080bbf0877","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9834ff63c132d13c2b097d69687e59dc25","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ca2e540fdfebcba66d96f43f6322eb11","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98afcfbfc283524ac08e57ac8911c165c7","name":"..","path":".","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980ca42cb9880dfcc87fa505b7d120d4ca","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerImageUtil.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98243570643f3171ca1dc8bcfa28465beb","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerMetaDataUtil.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9813728463e8c567a4cb996ca4abfa5947","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerPhotoAssetUtil.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980210a3efa5fabed8022e9cce3c6f3b96","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerPlugin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9820449af1930e0fcf0c9675fb21b8dcea","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/FLTPHPickerSaveImageToPathOperation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98076775a8984730f436623db047239b5f","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/messages.g.m","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f02a12394f614f673704a71af8898c1d","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios-umbrella.h","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9823fda51250fb9a46f112ae6c9f5012bf","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/FLTImagePickerImageUtil.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9850839acc9b469e43f328c2056eaabab0","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/FLTImagePickerMetaDataUtil.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983f063d053695d267139f5464bc810ace","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/FLTImagePickerPhotoAssetUtil.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9813a57168f14d7cc0a2ca7d7463fbf7ff","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/FLTImagePickerPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c47b2587ffd9d40975ace15673b26fb3","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/FLTImagePickerPlugin_Test.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ae5998e506dbb9b999fe027e2086ab16","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/FLTPHPickerSaveImageToPathOperation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98311e077ed95a3fb4594b294e3b5ca460","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/messages.g.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e7e4c42309c248c698c08586f6275c3e","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d0eff4dea6f29440546ab2d481269c04","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985b723fc77b2fe1baf67af427c2bdca01","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cbc5705fc8def080fccaa02a2df6bdb5","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98930d69e6bbc0c2456499bfd8a1935f12","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9874f67ae55c36fda89855e108888f61ab","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98711885a70059f0048dcefd451ed6c6ae","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988666301ca432da8257248a6fc72514a7","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dc340a4d12ab46075d53ba32811e8edc","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98606b44320393f6d57a57c4af5e51a811","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98067e3351a069c90f0bda8b2a3017b9c1","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98488d3bb20734ed9d2ce5ea4951a7ddc0","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ea2acd693ed4d05a479097a869dabda4","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f2a75bd8f62632dd3f11ee9999df9a61","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f28149349d215a4ae53a1e9a6193c40a","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9866ab364973b7915f20ad3199a1c1f341","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98934dec5624732a4b3b69a528c2c22eb6","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9870d61e7e1a9262a424fa6f0fd460e1af","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9809aa0fb5cc276c41a0a2e1ed55e8f65c","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cda16390124109a1d3bb6b9f426a0158","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e982cfee52cd561c3f2f0105c3d27f6d5d7","path":"../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios.podspec","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e982554d2feb1c2a8bd6021bf1bc3779e12","path":"../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/ios/image_picker_ios/Sources/image_picker_ios/include/ImagePickerPlugin.modulemap","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98e6391a939b7f202fd74f68586ac777a9","path":"../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98bff3b565e007cb3f1392e2ec64c33963","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98d98f2b58a457587401b22da8e075a64e","path":"image_picker_ios.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ecb8322458e1379bbb85a3169f9679af","path":"image_picker_ios-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98c15812bb003f13e52ac3a382bc5c0fd0","path":"image_picker_ios-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c5ca9aa35af576d337011d0cd35dc2e4","path":"image_picker_ios-prefix.pch","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98e2cb861f0c3d7355adc0b87017f02c72","path":"image_picker_ios.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9811f2ba2770a9de88641eb8273e3aa006","path":"image_picker_ios.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e982b3aa6928c5421667745fd1870532e34","path":"ResourceBundle-image_picker_ios_privacy-image_picker_ios-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e939d68bd6959bbff563fa0a217d4df3","name":"Support Files","path":"../../../../Pods/Target Support Files/image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e133b161be213c30df2a3a429b21f177","name":"image_picker_ios","path":"../.symlinks/plugins/image_picker_ios/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985217cfb3a0f0173fdafdf6859072dace","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/ios/package_info_plus/Sources/package_info_plus/FPPPackageInfoPlusPlugin.m","sourceTree":"","type":"file"},{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98e12148e562af39591b51480293bb758a","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/ios/package_info_plus/Sources/package_info_plus/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f2e5868d14f01410abc58c219879d488","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/ios/package_info_plus/Sources/package_info_plus/include/package_info_plus/FPPPackageInfoPlusPlugin.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9801eb256df00f6a4b40b55ad2d1b3a244","name":"package_info_plus","path":"package_info_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983ef4544830a5fb26c05e3b649b2334f2","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d1a47908e7599a732efa22eca89ba453","name":"package_info_plus","path":"package_info_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989788223c3605cd7a7f276022ba42827a","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f0308ce2541019b136ebd8c4162acee8","name":"package_info_plus","path":"package_info_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981ebe4aece3ec7f3b6772b7ca9d160ca4","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ff32810859f950dde0b28139217fe50f","name":"package_info_plus","path":"package_info_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985c5f9d5072d407468b985a4c60cd806f","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982c366ac2c26c3343b4454e107b0609c2","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9860286de8bb8aee0986786a365590b891","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981186a763dad724e8986c170a0e0f4028","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9864022a0ca1bd2c24289e5b97ef7b12ad","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988ff4ee3132ecb47b3a486860813f6328","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d72ab901603985d871b07aff73744685","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fdb8dd0076b50dd7eee8850d9ed61b2a","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987c9468958a035e3bcea1764d87e0caf8","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9862055dd05f0e1a2dd828bc4d05261682","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985273478d6d7b7c216df4705a4c75827a","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9841cc08813c158908561612d9033e0b1e","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98172a38f01f722a29d282a8553f643e07","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/ios/package_info_plus/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98913910347146975312a1a54e8d53b739","path":"../../../../../../../.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e989b7204174b86f63c9cb3e18ba7a01b19","path":"../../../../../../../.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/ios/package_info_plus.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e984f2efffc77d8815f7e3ef4f20188314f","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e983006e88e312461272bc884762416f06b","path":"package_info_plus.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98938fe42eccd51562b225c55eee77dcd5","path":"package_info_plus-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e984a158fc25a1966a021859594e244583f","path":"package_info_plus-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982fa54d72c7d0708ed2736f45553b5e26","path":"package_info_plus-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98119acdf47b100728e8b5072ae423c670","path":"package_info_plus-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98a1a6bf6218802cfcc0131de0a56b79e5","path":"package_info_plus.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9874865a6a69751a866558c3d5b1bc5edd","path":"package_info_plus.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98b8a38244fe48ed6c7f711ca36857045e","path":"ResourceBundle-package_info_plus_privacy-package_info_plus-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98ded43327002722c5ebb452f94b7ea2e8","name":"Support Files","path":"../../../../Pods/Target Support Files/package_info_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ce34650a7ac87c512cbec9bf5a6ab3b7","name":"package_info_plus","path":"../.symlinks/plugins/package_info_plus/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9818deba5db5bbe9743838078d412588c6","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/darwin/path_provider_foundation/Sources/path_provider_foundation/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98680a50fcacc65b8803ee7f9d071a6fb3","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e3970f59c589179fd30ef0c18be17df6","name":"path_provider_foundation","path":"path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9835b2a98757ee070d8de89637d0b7b2fd","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98747ea896682cca2617c84ae61c888383","name":"path_provider_foundation","path":"path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ee3793b3adbffcb94ab0c2e1ea3138b0","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b65e0400c99fe5baec6a4de82c39ad11","name":"path_provider_foundation","path":"path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cbd3757e3bee322b7c5283ba47b53ff8","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98880d761b56375d8a5976a73541ebacec","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9860068e94be684cb3caa5dd6f85818375","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9802d83e383a28896aec7ddb3fad43055d","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9821d618abc26a8669bb5856b1ec3a4198","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a7ea6e112913bbf191b8475dd69453af","name":"..","path":".","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98ed0d0e57f01a2a4054ec9ed6f31f76d2","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/darwin/path_provider_foundation/Sources/path_provider_foundation/messages.g.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98bb8979ac57e465dc4281e2be258e754e","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/darwin/path_provider_foundation/Sources/path_provider_foundation/PathProviderPlugin.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98c0a5eb405a0ffad1085ebca1dd024084","name":"path_provider_foundation","path":"path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c9e9315b9cd4b9fe3fd6a95008a0f30f","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982698758a4989208854af31ae72971ccf","name":"path_provider_foundation","path":"path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f6b5ec562c4fa63471a8dbfa9d43160d","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ec332c084c410e4667bf6a83860aa8e5","name":"path_provider_foundation","path":"path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982a4d7ad6032a88a905a9c0ff09f2237b","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989ac6db11ccf53fa4f358363057710821","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cccff0ea9852463d6f41dac6bfef70cd","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ec3fe34ab8b7e18b0e60bdce3416f387","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9890961542032d31dc777162b86ff68cf0","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982f6a6f3eef0e90d4a7ac3a34d8fe6889","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980df31176089c011127e85e603a601a91","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981523b63c62064adbd860d9e00a45768b","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d1f281e433230009a4cbe47e7dfd7e5b","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981be2e7f5f90361c585f1af20c71d692a","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988de36aed224b2f378622c2859ca5ad62","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9812532ff6a39830e9d387bbe0d19294b1","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985e259cd60378754d082b64e4f786c15d","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/darwin/path_provider_foundation/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98ad6129b6483d6a6f46384a1a710c70f2","path":"../../../../../../../.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98c598e0e626da488d80de512bcd4ad76c","path":"../../../../../../../.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/darwin/path_provider_foundation.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98f3e839a91b8a047f9715097a5f5a1142","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98d39be1404d8d12ae4fd5840d39d99738","path":"path_provider_foundation.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98eacd43492482602008db1d818025331a","path":"path_provider_foundation-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e983edbef8d549adfdacf5d83a18122876b","path":"path_provider_foundation-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9856af8218251a0ce9487f689064bb5d51","path":"path_provider_foundation-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981eab3ce181c9ff0e070f98fbc07da6ba","path":"path_provider_foundation-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98fd697e403563ad805b57963ffcfab70a","path":"path_provider_foundation.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98421b7b1c964452f17fe30563d0290935","path":"path_provider_foundation.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98c6e9b54dbcc96ea231b73c6c9301b505","path":"ResourceBundle-path_provider_foundation_privacy-path_provider_foundation-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98f7ca2acbdd859a53f2121f395bc3d8cf","name":"Support Files","path":"../../../../Pods/Target Support Files/path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986899ae0aeac5262e137868070d02f324","name":"path_provider_foundation","path":"../.symlinks/plugins/path_provider_foundation/darwin","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e988a40b023d6143b9c348cf1a20854a7da","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sentry_flutter-8.14.2/ios/sentry_flutter/Sources/sentry_flutter/SentryFlutter.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98942801b26980e8551334586eaa285e23","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sentry_flutter-8.14.2/ios/sentry_flutter/Sources/sentry_flutter/SentryFlutterPlugin.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9832fc27629414f7fce1c4e0798bb22e50","name":"sentry_flutter","path":"sentry_flutter","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98517806c219f93bedd4032af32841860a","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sentry_flutter-8.14.2/ios/sentry_flutter/Sources/sentry_flutter_objc/SentryFlutterReplayBreadcrumbConverter.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987d2c6edfefad823aa834393dd7e7ab6f","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sentry_flutter-8.14.2/ios/sentry_flutter/Sources/sentry_flutter_objc/SentryFlutterReplayScreenshotProvider.m","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9860c2e9be82de1a7342b85f7da37b2b15","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/sentry_flutter-8.14.2/ios/sentry_flutter/Sources/sentry_flutter_objc/include/SentryFlutterReplayBreadcrumbConverter.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b39960d24b4c6df44e6546570652134b","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/sentry_flutter-8.14.2/ios/sentry_flutter/Sources/sentry_flutter_objc/include/SentryFlutterReplayScreenshotProvider.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98cbb7733ec8068c0164d16aa535fc6ca5","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e4e125bae9f683a46df9664eee5222eb","name":"sentry_flutter_objc","path":"sentry_flutter_objc","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986e88e2590e53108f8656a98db39ef306","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a0f70ceb57f0dafc2520fb3fd49cebcb","name":"sentry_flutter","path":"sentry_flutter","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98546f610614da05b4492e4226a7853282","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98858a1c11b2bce581394943cf9e90b4bd","name":"sentry_flutter","path":"sentry_flutter","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984181556b41e896d33b635b1e0d68dcda","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e7b43d5f20fb94d2f66686c8a3af78a7","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982b2fc1865e69cd3369d1f2883b9ae7da","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c375ef5198af728355b500b449a24411","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982c75f152405549f0483c4697280da0b9","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ccab42963838f882bc28e910703ddbfe","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9814c3e488261007b562bebd5e30afb630","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ff7d0e379174d322588909016e185b3d","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986c8aa2f1100e385a75df33246757d151","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98721e2246e8d08518f4140b38cd73e998","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f5517ba697a81b190209b1adfd47f8ff","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c9c389d71ce07393b726414cb2fed304","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/sentry_flutter-8.14.2/ios/sentry_flutter","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9845b55cb1af24c30bb06f73adc02069ac","path":"../../../../../../../.pub-cache/hosted/pub.dev/sentry_flutter-8.14.2/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98e25d86cd8270a4e6f98e5bc2f6013a6b","path":"../../../../../../../.pub-cache/hosted/pub.dev/sentry_flutter-8.14.2/ios/sentry_flutter.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98c616ba960d1ddb1ce6d213108b2b8a8b","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98a2c86b8e3547df7d2583d71b03db2346","path":"sentry_flutter.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9808ec8f8e620e425581507f7649068972","path":"sentry_flutter-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e987fd773730740d1624ed834abff220a4e","path":"sentry_flutter-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d5868b604225c564480e8f025a99d48f","path":"sentry_flutter-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9819bc8a85a33aecc678f5327370bc40f2","path":"sentry_flutter-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9833cdcecf5317117bf8d53f371b342b7b","path":"sentry_flutter.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f7f5ba2bd7429a7d195d46b06488047a","path":"sentry_flutter.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e986921a9c08f8dd64d2bcc1b0ed1e0c53d","name":"Support Files","path":"../../../../Pods/Target Support Files/sentry_flutter","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9825ea0e3bb046d32232e3501bd76c9524","name":"sentry_flutter","path":"../.symlinks/plugins/sentry_flutter/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a330af3d6fc51bea174180b4a5fab716","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/share_plus-11.0.0/ios/share_plus/Sources/share_plus/FPPSharePlusPlugin.m","sourceTree":"","type":"file"},{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9817cde765059df85fb7823538ffec26d9","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/share_plus-11.0.0/ios/share_plus/Sources/share_plus/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982a2610763014401a0505737a3e91eeee","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/share_plus-11.0.0/ios/share_plus/Sources/share_plus/include/share_plus/FPPSharePlusPlugin.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98d241d556fc41fd11e96e1909a743b90e","name":"share_plus","path":"share_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fe515d76221b64e96e4aa7241c22bffb","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984fb4255796badf151409fa3cfc33a101","name":"share_plus","path":"share_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981a1f46cd35bdee33265ddd94f93cd366","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985550612d4ee553bac5596bd00abca97c","name":"share_plus","path":"share_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bbe30064abfa8df07207368de2899536","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b02baac4006681240f0e8765ca0b7dbf","name":"share_plus","path":"share_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980fecdf87fcf87d2c19071993c8acc38b","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981e2a94d9de505998406f5892701caad1","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9813937799f39c91a5e491244914065ad6","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b599cf8ab24a57a5e563d7af1235df08","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983227637da9e1beefd2b425f1e81eb588","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982a0aeaabf4273cc28b015b28702f4d93","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a4e148e8ce5c320ce0b4828b51001f70","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b185f97560878d65d923a523e85472c5","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985e9c4f0bafcaa1f319c5d7a2fb9dabe4","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f80bc1e9b2867958ddc46d91b18ddaf9","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985fa54663a44e900dbb51d8937b0e2664","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984271edb8a9edaf9d8d6d15da593eb585","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984a68b69ef4ab0c4d89f8143b3c4743cb","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/share_plus-11.0.0/ios/share_plus/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9817e1a412f8c812e246459fca8de8ccad","path":"../../../../../../../.pub-cache/hosted/pub.dev/share_plus-11.0.0/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e985ea15ecba90c821623188ce6568f80b2","path":"../../../../../../../.pub-cache/hosted/pub.dev/share_plus-11.0.0/ios/share_plus.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e5f62d89e319ab1a259a52c1601036b5","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98b897234ad37a61e72b3b8cb430f11bf5","path":"ResourceBundle-share_plus_privacy-share_plus-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98ed93635a81f5bae734c522df255772f5","path":"share_plus.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984e1c134bd40761a32a32ae2fdfbb756d","path":"share_plus-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e988e969032000bcb7cedced458aa5bf5df","path":"share_plus-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98441ddbce7a8e0613ef7d5dc96aab44e5","path":"share_plus-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988c0f90ff017f34c9c7db14de501b828f","path":"share_plus-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f0ec0b4ee38e6fab633e09b70d30ce29","path":"share_plus.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98a5f61ec1f3173176575d7d9ea45f5750","path":"share_plus.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e980c6879d004416af4a38d07d06c6a17d4","name":"Support Files","path":"../../../../Pods/Target Support Files/share_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983fe1721213b8a56364848d4a655f6d3c","name":"share_plus","path":"../.symlinks/plugins/share_plus/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e987c34275765e0b96690ad1d9b47e40e8b","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/darwin/shared_preferences_foundation/Sources/shared_preferences_foundation/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98845134b878ce7a479e017b637c79d036","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98945f9e8e8c59b288ccc2eb9e1a75c905","name":"shared_preferences_foundation","path":"shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982e5c6fc6b8da7dae17708b07c6f3e9be","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980f82209ed702394e86b61ba4cd30bc16","name":"shared_preferences_foundation","path":"shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9835aa32c0bceb88e9382d1e505452c707","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c891fd93daa48911e7f6680784e3f74a","name":"shared_preferences_foundation","path":"shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9853d03e7c10eb9293c6b50146cec056d1","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981d98960195ded9f641cbcd972827d69b","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98141a72c2a6c1cc4c59ac5b8311a41abe","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c74abbf522f2f0caa1593285d563cc81","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98887b28412ed7468bfa5b98c1f6a98de6","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d6a070ab7b6aa6b740a53cdbb32d5f79","name":"..","path":".","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9894f3b7e256000776a0004878b2bbf719","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/darwin/shared_preferences_foundation/Sources/shared_preferences_foundation/messages.g.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98772993a089c4b4bc42511f7fc6784751","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/darwin/shared_preferences_foundation/Sources/shared_preferences_foundation/SharedPreferencesPlugin.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9833f195ea67c1327783da14b3db88c4e8","name":"shared_preferences_foundation","path":"shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9822b4237904bee3ed79debf90e9291b8e","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9812edbc2d2abd5091782d820544dd10c2","name":"shared_preferences_foundation","path":"shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98eb50145408787bef632e2e9347193880","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98efe437866d5994f26683e92eb93e1ba4","name":"shared_preferences_foundation","path":"shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c12cc481cbb57d5bb4701b80ccf67f25","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c4c507dbbab34e30a765cf53bf3b7b4c","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981700b1b0115ba200e9c4e8b6c0b2854d","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9857d75e285e81c6b0a10908cc8153ba4a","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980b0e50ba9e3179b20d78f25505f5fe23","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983eecdb7be2089801caaa47dfd0f9fac9","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98770ff8f9b6bfb0ffdf76f0a000ab8373","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9868d7f7c6e45018c3699ec0e5ebd20096","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b2e078434d0e3be3f4969d5108719883","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9894d84642064223f0cba02909f7037be0","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9886ac5a193e8f682b3edc4126feb1acc8","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98627545b4fe1d6f4006901617702b8ac3","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9890ce3a0aee2ee47346f494f625fd93a9","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/darwin/shared_preferences_foundation/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9801fb478fd94986806e6ad40c65276451","path":"../../../../../../../.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98e16b94339ee6893f5dd294bec6879de5","path":"../../../../../../../.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/darwin/shared_preferences_foundation.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9849c805bf438dfa0835ab62f209776e71","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98b32db0cb517b65502bf26be5e045b505","path":"ResourceBundle-shared_preferences_foundation_privacy-shared_preferences_foundation-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98828fe10512bf4d5fbe8f7caf7654c12a","path":"shared_preferences_foundation.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ff77b50a35b3307e9f40b58099dbd12f","path":"shared_preferences_foundation-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e982a54f425bc69f839476870596411aed8","path":"shared_preferences_foundation-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f0e8408db8ffa568dfa37c8c36b560ff","path":"shared_preferences_foundation-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988ffd44c2515506db53278fe1d021c588","path":"shared_preferences_foundation-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e983cec0bc18b2db7434234b0bb9f60b333","path":"shared_preferences_foundation.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e981e9b29ba00bbe596786c71d5afe0807e","path":"shared_preferences_foundation.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e986c120702eab7666805d910c22106e30d","name":"Support Files","path":"../../../../Pods/Target Support Files/shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fbb798fca26ef9ad9431e01278370a8a","name":"shared_preferences_foundation","path":"../.symlinks/plugins/shared_preferences_foundation/darwin","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98ff36749fa25f5140b8e87aa21ff1a4a7","path":"../../../../../../../../.pub-cache/hosted/pub.dev/sign_in_with_apple-7.0.1/ios/Classes/SignInWithAppleAvailablePlugin.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9823ac2ebb412b151e6d2f8a10c000e8f1","path":"../../../../../../../../.pub-cache/hosted/pub.dev/sign_in_with_apple-7.0.1/ios/Classes/SignInWithAppleError.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ce88f7662b64673b3e02f36c04fdaaa6","path":"../../../../../../../../.pub-cache/hosted/pub.dev/sign_in_with_apple-7.0.1/ios/Classes/SignInWithApplePlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98bb14c5aa2e8c5f852cfe2c6928b58da8","path":"../../../../../../../../.pub-cache/hosted/pub.dev/sign_in_with_apple-7.0.1/ios/Classes/SignInWithApplePlugin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98bea1d30a44ce7c3b81fcb1084ef81aed","path":"../../../../../../../../.pub-cache/hosted/pub.dev/sign_in_with_apple-7.0.1/ios/Classes/SignInWithAppleUnavailablePlugin.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e980eb365f12058fd8fd2412172ce5175d1","path":"../../../../../../../../.pub-cache/hosted/pub.dev/sign_in_with_apple-7.0.1/ios/Classes/SwiftSignInWithApplePlugin.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98a1e686aefcb2524af854819eb872fb24","name":"Classes","path":"Classes","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cfd3ce0353ea98a9fecd8046f0c81530","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ef750f22b3958f0f1f9144c78c2da642","name":"sign_in_with_apple","path":"sign_in_with_apple","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d960fabd2e48666bd55964a56ebf8dfa","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98edc22655bde0af5fe5225ea8018e7cee","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e0a36c9485700803de17c0c37069a6ab","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9861d37fb78386e0345a7cec2e2f37d770","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9811bc68f42a7bc8c7734a8f1aa70a595a","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ea19a097e34904916a7ed1468ff2cd79","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985c57d980c28bfc31f24502eed92707b4","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9875ac2e097717da840b7f6dbe863e7f09","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982c62bed774a5fdf5e999eac34f12789b","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9844777c64fd35e1f20ec800fdabd00453","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b7ce448529f7a0144e1d636867e74872","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/sign_in_with_apple-7.0.1/ios","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e985cd0e6599e49464c62e95e0801aabbc8","path":"../../../../../../../.pub-cache/hosted/pub.dev/sign_in_with_apple-7.0.1/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e983493625333e652546e324c6e86634000","path":"../../../../../../../.pub-cache/hosted/pub.dev/sign_in_with_apple-7.0.1/ios/sign_in_with_apple.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98a01cc1ec3cad868d9981126f0ac62163","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e989ea8f0b3ed8cf56d795a8a25df7c873e","path":"sign_in_with_apple.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981049980b857ded311f46423483617e3a","path":"sign_in_with_apple-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98e5c8ae0c98d551e64683140750474a4e","path":"sign_in_with_apple-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d2523e92ded7907f09b9abd2b8295250","path":"sign_in_with_apple-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9814c3eb0df3c2e52400b381d694dda564","path":"sign_in_with_apple-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e987b64c6e213a672c37e13f9e176c26e66","path":"sign_in_with_apple.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9835c0f425583188146a59b33c739c98b4","path":"sign_in_with_apple.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9880f946cda5160e9ace2887b5e7f2365f","name":"Support Files","path":"../../../../Pods/Target Support Files/sign_in_with_apple","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9891db39c3cd9a76f200c12a4a864d25b4","name":"sign_in_with_apple","path":"../.symlinks/plugins/sign_in_with_apple/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bd0017951dac2b37603f9883a88a92d4","path":"../../../../../../../../.pub-cache/hosted/pub.dev/sms_autofill-2.4.1/ios/Classes/SmsAutoFillPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9874ea3be6ebbfc140ff5b3f5dbb5bc315","path":"../../../../../../../../.pub-cache/hosted/pub.dev/sms_autofill-2.4.1/ios/Classes/SmsAutoFillPlugin.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e983b29e84062b1a8774f5929c6ff227d65","name":"Classes","path":"Classes","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f42328953e2c682424215114986dc58d","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9891ecc9251f26449a6f364d9de4e3c962","name":"sms_autofill","path":"sms_autofill","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b7d6e0fd32c63f943d19bfbbc8ead905","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9807544f3ca984b4d632fad108e0e9e1ea","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fcb8c01f5e7752192ba045440922fc9c","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f97b7116000afefd8243b2fff8fd3ba7","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984f6765cf0925671ef943a63a731f5965","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983a909101be3e8f875a909bafd9b1c130","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98aee06440d60727032d7b74645a0db566","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9809a193d8be4c00aa60bffd20730ec260","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f5fe36bbf3fc523df76621bbde2804c8","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981ac3a974f58f41ff3ebe3fccfbdfe17f","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98940b5d73c05be5b9b44d3e373243bb0f","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/sms_autofill-2.4.1/ios","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98bb41cd8ab6f6b63e53b541334539fa76","path":"../../../../../../../.pub-cache/hosted/pub.dev/sms_autofill-2.4.1/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e985dc0d6ceebd9b50d428d943b3cbdc03d","path":"../../../../../../../.pub-cache/hosted/pub.dev/sms_autofill-2.4.1/ios/sms_autofill.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98cfe3138a7fb83d2ea5e99ced90d67305","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e988601c2fc29330dae1ba47a0c8ce30b48","path":"sms_autofill.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e986f010232c3d5ad34cafdc9ed252e3b10","path":"sms_autofill-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e983ef566dad9ff57af37eaccb70990fd8d","path":"sms_autofill-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989add53bbfeab25af3d8301630c53e82d","path":"sms_autofill-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986062ad2fb9572a48e39b121020bb907b","path":"sms_autofill-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98edc927ef808dc9c69e60bcbe1636b16d","path":"sms_autofill.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9817d038dbda971a4614ab031ec2e7c07b","path":"sms_autofill.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e988d2756abdcca4cf9df70ec25afc638ff","name":"Support Files","path":"../../../../Pods/Target Support Files/sms_autofill","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9863390fb02422492d5fd9a818bf1d8f76","name":"sms_autofill","path":"../.symlinks/plugins/sms_autofill/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98d68fc1d153189e9e8975516bcdd9b6b9","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9895fbf3b1059c04d317a925a50ff8ebc6","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981cc67bb3de7347a52b58ca026e3b47e4","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c9a00e5ef546736b3a8b71948fa2a1cd","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ae1b88efbe3409273e2ec0f0808b8d12","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981eee9559b6423d36c53c71e7e0e4c75a","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e2ef3d4d3a7a9c6ef90213758aa1dd13","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e30ce22ffc651ed96e09db61b52d60a3","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987b1745a2dc1b530e802c6e9c2676a185","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c5a26195ec4c5f0c2534127e3a2d8805","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ed0d92682b3d38ecf5da4b699c5fd2e6","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fd69f846e66bbe9d04713a94d5737b82","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a9a9d168c1a06c84e9d50321dce22040","name":"..","path":".","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c8e360108ee2e1f62699ef57975dfbaf","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteCursor.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9886ec81aeee49719355e8e46e427b1b75","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteCursor.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981c2e524df448ec5379c91610a0af54f1","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDatabase.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98cb294a021298d283d77df78c5a104118","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDatabase.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dec427cb4378a1cf1c1a5eaf60bc4086","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDatabaseAdditions.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ad7a26c5d770a43b1288fb8e328c090a","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDatabaseAdditions.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c180991e9f6197b8c30b5ab78f406138","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDatabaseQueue.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9807bdcddd5e597bd7a9182823d23f1a5e","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDatabaseQueue.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9813d63878936e0dfd0489465d9e4ea8e3","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDB.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ff3c9e8065ad758f9b2e560abdc7b59b","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinImport.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98229c9dc8d3f90d42d02df76e77208999","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinResultSet.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9828fe20134422084898a6b58ea7cb5470","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinResultSet.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984fbce5ea987a9b1532ff61541cf87c11","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDatabase.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987b41de98677ad128a668140eb77340cc","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDatabase.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981947f810b0ebb95937f7183ac2ea0988","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteImport.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988e34a55db9095098db7a441065522a3e","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteOperation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98aa588c49c0f29c2521e19ed9e78ab9ee","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteOperation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9885e6bde4939849d8a7715e5d5b762fc1","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqflitePlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a1af171f5a917f60e0c6cbf3e5230e77","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqflitePlugin.m","sourceTree":"","type":"file"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9875923d8e0772f7b0db36579d32f49445","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/include/sqflite_darwin/SqfliteImportPublic.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f75e9257f8e084ca370d46dfe69314cb","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/include/sqflite_darwin/SqflitePluginPublic.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98834e2e08403606d7817d1be0c9521a02","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ed6f6000e65bdd97097b231b0d9ab973","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b8f2f4c883f57731edcb9e61a4587e53","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9893d765dc791d7e924243553ca678322a","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98941db39a6fe2b9314f266507266087c2","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e8b93f2f25f120043b5f3cfc9f066c35","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a4dedd0be49892bbe3d91abcf200326d","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9874cd9d995b46f854ac704ee16a3b40cc","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f56e425c43f6a5e2b3fcfa7280c5ccbc","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d82f6716191c45219ceb92b75121d0f0","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c2049fbb5c7539544c89da2cd00dffdf","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f8ebc1bfc6035945db930e5673ae8fa6","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9870c2609c9298d43fe87f4bafc539e234","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98aaf4a778cff74efe79008abf436f4cf7","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c09aa1f6e5a6522ecaccff6bd59e4957","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984a5317ac97e824b5041954169356c546","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9869f242f9f8d05ca0da10f6fa2365127b","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b068ddf9c9dc1e2302044c34f007aafa","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988a558455c314f08614751d22d04a2b4e","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9898dfba39b721a12bd1eac162eedcd2ba","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98f16f578612c5494ae00fd8a61869b03b","path":"../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/LICENSE","sourceTree":"","type":"file"},{"fileType":"net.daringfireball.markdown","guid":"bfdfe7dc352907fc980b868725387e98e181c66e99905c3c2daa06e900803be7","path":"../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/README.md","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98708a5993e92d58f2e7ef332612268e15","path":"../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9880ec5715cc4dbe364be384d93dfcf6ac","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9816f7f5a4a982f2a6f67323748e3d7dc2","path":"ResourceBundle-sqflite_darwin_privacy-sqflite_darwin-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98e8e86024b893ddddbc63b3274c9feee8","path":"sqflite_darwin.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c4c973325f6885c1407918615777412b","path":"sqflite_darwin-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98dae78edcf6ddd8bfc46b50f48a3c54d6","path":"sqflite_darwin-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d35dc859be7847ba9b6f2927326ecf1d","path":"sqflite_darwin-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987c84b00ffb0607561fdfb521489cb944","path":"sqflite_darwin-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9852db5518fe94a802610aee1b1ea98697","path":"sqflite_darwin.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98ca5d52647c3b954ba805fb853478ece0","path":"sqflite_darwin.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e986cd15283772a81a47aec5d16e6c136b6","name":"Support Files","path":"../../../../Pods/Target Support Files/sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987c3a98bcfbcfbb6b83c05b9c70dc1ad3","name":"sqflite_darwin","path":"../.symlinks/plugins/sqflite_darwin/darwin","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98483bb6568cbb7d3a9cc227f379164fe4","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.3/ios/url_launcher_ios/Sources/url_launcher_ios/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98a304d6188e151556347a98bb89ca3ef0","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983daf726d5a2a9ea5bc4342ea41d36cf8","name":"url_launcher_ios","path":"url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a152ccefc84c82d70c10650b0e08711e","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989639ef8ccfa4cb28829d43aa4e0101c9","name":"url_launcher_ios","path":"url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982b9f58d1a8c7abea09b09259854083b3","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98877a6288e8cfc5df6c709c7e5c01ed18","name":"url_launcher_ios","path":"url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ce97ec38882438ab387d1095449accc6","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988d9373ab52563028a52c227d7cb11f38","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e3c67a68bd19d560275268143410b5fa","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dabd92336105cd189e48933f9828f26a","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980f4f07bdf8379a7a7fea83ce57ceec11","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980b9a4b5de99f16cfae9670b4f8e0964d","name":"..","path":".","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98ae94c10d72f53da8f32251911c67a005","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.3/ios/url_launcher_ios/Sources/url_launcher_ios/Launcher.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e982e806a803437de1e7af6178e43ed5b33","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.3/ios/url_launcher_ios/Sources/url_launcher_ios/messages.g.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e982977b9e20c6f4a788bc1460d88fd1e38","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.3/ios/url_launcher_ios/Sources/url_launcher_ios/URLLauncherPlugin.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a3f1b868565c7fcd564cef7451cd53a0","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.3/ios/url_launcher_ios/Sources/url_launcher_ios/URLLaunchSession.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9815de667789192be53ecdce6bedba86cd","name":"url_launcher_ios","path":"url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98df96bbefdd299a5c5672a36653c040e0","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b527eb59e16051a9ebccab95fd229138","name":"url_launcher_ios","path":"url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e44b235f61f41a762a89860ee424d7c4","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cb2c8abadcd9a236eb3082b2fdfeb886","name":"url_launcher_ios","path":"url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e602dcd2303f8d01733837a6a59aaf12","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986f9fb675b34d258206b93108329f4b4b","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9866e857208f4b6e899556a186ac24a120","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982b6f1fa9016abc280592f2cce218973f","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987f176e98160e984c91af7cba3333a179","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988d777dfc6c791c20acb8f5129c8908f0","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984644f7bf6a164bea654005178bf95ecd","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a3a4f10a49a48e48867057a98a5b4232","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b8b0b085be93211cec2e2b180fcc48db","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ae45703655d7f36ff9e5585ca5585d83","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980fc5c06712bb90e28a6413ffcce877a7","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982114622aa9882827a43e69e703812887","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98984c42a4aec2f6450bef3fef0e016c29","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.3/ios/url_launcher_ios/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e986b63726e6199c64094fb8c68a24edcda","path":"../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.3/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e9888b5603af14823099e95e4826ceefa60","path":"../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.3/ios/url_launcher_ios.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e981b8442397b8a899066fc33c5ec84a231","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9834892b232f91e7594678e07f9452e25a","path":"ResourceBundle-url_launcher_ios_privacy-url_launcher_ios-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e981c7e96944be6b1478dd1a1af1f262854","path":"url_launcher_ios.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981df616f65e0eb6e976df053a806ca498","path":"url_launcher_ios-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98da47b48c395f154c1048be3f13a5c69d","path":"url_launcher_ios-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989ca453d179dbbf67d93157899719625d","path":"url_launcher_ios-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f5dcf8d986007ce95aff850abd35a938","path":"url_launcher_ios-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98c54284e567057e4c19e270b997cf3e15","path":"url_launcher_ios.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98c9082038c3a091fff2fa7f003c3a2fd4","path":"url_launcher_ios.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98a80e9bedbfaa492ab42cf4222206f104","name":"Support Files","path":"../../../../Pods/Target Support Files/url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98feba3abecb8653c3e0fdcf42fcb22e66","name":"url_launcher_ios","path":"../.symlinks/plugins/url_launcher_ios/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9822649e67d20ea7e6c146fd8c43eff34e","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98fb20b4650dd91f2feb610493f91b532a","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98638b2db77b0d5baf810daeb02dce7242","name":"video_player_avfoundation","path":"video_player_avfoundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984b1068441cd1430b1c3309b4fdce0d37","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a2a0620bf9d78b40d1e50b1b45072099","name":"video_player_avfoundation","path":"video_player_avfoundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a1ba19345d1b43b384c553320fab22c7","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9827c76f283ceec546e5010cee636ad88d","name":"video_player_avfoundation","path":"video_player_avfoundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98301e1a3e5c81e563928fef54f75ac367","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98968e4a53746890e2da8154f49a8867ad","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d97c705ac087ff381c2d39d71c9f4331","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9810fef527b04e4198ad64befb78f219c8","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cdc0fb1e5c37c7951666fbdf23d84d7b","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980ed8e08ffb92d29d9cfa99195bf9554d","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9841408e9a4d98fc714c42ffe54a609588","name":"..","path":".pub-cache","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985f33bbee40fafa1d5f86ffae6f910a33","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/AVAssetTrackUtils.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f82f3d4f630ddc11f2c259f7d680cd9a","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/FVPAVFactory.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983fb3a3922d9d7d1b57e53172a257992c","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/FVPFrameUpdater.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98010f4c6e5a300816edd8e79ca88e2c22","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/FVPTextureBasedVideoPlayer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e3bfc676967365da7f59e5fc134ab13b","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/FVPVideoPlayer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9880f5aa0644e8a8c3e543e1a131fadac7","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/FVPVideoPlayerPlugin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98017c35d1247d3fc3a7b1f23791934721","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/messages.g.m","sourceTree":"","type":"file"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985adcb840da0c9eee8a4a30ade77d3164","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/AVAssetTrackUtils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f45c79e93cf8410528c3aeccfd7e71cc","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/FVPAVFactory.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c2c7e5fd2c68b441b72e779241aabe7c","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/FVPDisplayLink.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bbbc15346f0876ee6aedefbe49008dc3","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/FVPFrameUpdater.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983e5903f2862b3a4f03ea07b55a81809f","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/FVPNativeVideoView.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ae774d57e7a99e49f39b2447a3e723c3","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/FVPNativeVideoViewFactory.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9832205c61db1273c6b79c226465dc657d","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/FVPTextureBasedVideoPlayer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9870bef7a6e98605fbd37e3b645a9ab2f0","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/FVPTextureBasedVideoPlayer_Test.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982852a3f15074edeb53702d3da7777293","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/FVPVideoPlayer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989c358fdfaeee0dfc2f0bf32b43d3198b","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/FVPVideoPlayer_Internal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9889a993f10419282526149c65f05d1d6d","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/FVPVideoPlayer_Test.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ae79dcf56251fc677518b5f7a205e90a","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/FVPVideoPlayerPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bcaaf2b5a834fdd5ff43688174609c62","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/FVPVideoPlayerPlugin_Test.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9856a1b5ec989abb659c05cc042f469db6","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/messages.g.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e983ed3f1f360a8ef24c7e082b569035d5b","name":"video_player_avfoundation","path":"video_player_avfoundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98aff9ccb58ec644bb80bb21682f830588","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fd299c07ad583565b521426d4fee6c13","name":"video_player_avfoundation","path":"video_player_avfoundation","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98952e5cb4ebef951c0e1ce848bbe8e165","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation_ios/FVPDisplayLink.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a9fd8c4640efbc7127122be777c1a1b8","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation_ios/FVPNativeVideoView.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987efb3b149741ae2c8b620f200c576321","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation/Sources/video_player_avfoundation_ios/FVPNativeVideoViewFactory.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e984c9be09e7288286b57d848c338f38756","name":"video_player_avfoundation_ios","path":"video_player_avfoundation_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986d3be8e75b2411cafdfb90626a273636","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98515995e8bf982e817ff5bcd4f660562f","name":"video_player_avfoundation","path":"video_player_avfoundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9823030f5331527e096f37552b65ac0723","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ce4d11b6fd52e040e081858351349da2","name":"video_player_avfoundation","path":"video_player_avfoundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d5b94324a7b98f68f6b0642d22b519c8","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98efb23c5bdcf6cdf7dc11a4b08fa3e258","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ecc40aeee54e5afe5522d87ea35acda2","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984799fd259bfce65cebf8d425e03e99d3","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981898df1b4e0db1017100c282d595a3aa","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98181c416340ac871143631c669e0aa28f","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984bedce007672e2861973ce5809da214b","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984439803954d1606de1b428b215cc29b8","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989b7b72a3b80ced6150bd428d5ff08a43","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fb6ab2708a339d4ccf847d41a60121d5","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98af00906bdc6f08a1da3ecb5f49001b03","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9869f9fb6a416b5285468ba790a8aaa675","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e988ff6e8f78fa0a185f3ef3edbf6897f09","path":"../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e9899317a2fda305cf13d705d93b8e977c6","path":"../../../../../../../.pub-cache/hosted/pub.dev/video_player_avfoundation-2.7.1/darwin/video_player_avfoundation.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98d3bc3397737f08a676f1af295053a01e","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e983cf8b016004157bc1b1a8aecab1f3d84","path":"ResourceBundle-video_player_avfoundation_privacy-video_player_avfoundation-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98cf424638960dd52ff79771197fd553c4","path":"video_player_avfoundation.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981472c236e0915d067c80f7a6e6cc17ca","path":"video_player_avfoundation-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98be3caec067ec0cb8b5334b542278f427","path":"video_player_avfoundation-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9814c68d8aee9713b74e48a3414e23e82e","path":"video_player_avfoundation-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9818ff9c7b330cfbd914505c6276ab67c0","path":"video_player_avfoundation-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98483d8bd2b885c4cd70bd6eb217c16a3d","path":"video_player_avfoundation.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98022b9671f20c7c4558d82328932f679a","path":"video_player_avfoundation.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98167399c9f5ed0bd281a5011c92cc1575","name":"Support Files","path":"../../../../Pods/Target Support Files/video_player_avfoundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98592fb5e8532c77dc14b8258ba8a6fd37","name":"video_player_avfoundation","path":"../.symlinks/plugins/video_player_avfoundation/darwin","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9862875e91e158e0bd0497f696c5d0c1a4","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/wakelock_plus-1.3.2/ios/wakelock_plus/Sources/wakelock_plus/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98ef8bf7c2e9e4011afad1106e4c627e7c","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b79414cfcec4a80c7b42a886c67535c6","name":"wakelock_plus","path":"wakelock_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983ee39449a7641b89932d3d91b4e9335d","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98244ba95422882473970f8223e00d5a75","name":"wakelock_plus","path":"wakelock_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b277525978905d67c4958cfbbc3dc2a1","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98aa12287870457dd3b50b48a146f34c88","name":"wakelock_plus","path":"wakelock_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dae072cc2a7c7b4f16dac5a0dc5d0a63","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981b2521f4bdfe53782e3503d5bcf4b6b0","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d21aaa8307c115970a98148bca2e0f70","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ceb57460e43da5ebe033990426efce87","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986e40cf4950fe1dea117be5ab9f996b08","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a1642d2c11b4047e48cdd88c4ee4fc2d","name":"..","path":".","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d46ec504b110745f479b4b37ea51bd6a","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/wakelock_plus-1.3.2/ios/wakelock_plus/Sources/wakelock_plus/messages.g.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b8831a289739d7ad79bf16542837390b","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/wakelock_plus-1.3.2/ios/wakelock_plus/Sources/wakelock_plus/UIApplication+idleTimerLock.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987a7d597e4c3ba769556c0021bce2a2c5","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/wakelock_plus-1.3.2/ios/wakelock_plus/Sources/wakelock_plus/WakelockPlusPlugin.m","sourceTree":"","type":"file"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b7c6a1f47cdd76ee2b05730ceb9e3f91","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/wakelock_plus-1.3.2/ios/wakelock_plus/Sources/wakelock_plus/include/wakelock_plus/messages.g.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984b28bcff5671fc94abf8a223d44a74dc","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/wakelock_plus-1.3.2/ios/wakelock_plus/Sources/wakelock_plus/include/wakelock_plus/UIApplication+idleTimerLock.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e824cfb8763633af81b34235dde5f40b","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/wakelock_plus-1.3.2/ios/wakelock_plus/Sources/wakelock_plus/include/wakelock_plus/WakelockPlusPlugin.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e986ad224ad51d41d9836e134d7f62cb9e8","name":"wakelock_plus","path":"wakelock_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e19689df8befe1b615dabdf9e5bcc196","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980506f10540aebb82b70d233931c5a898","name":"wakelock_plus","path":"wakelock_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983466ceae9d50e5868809030e1f28d271","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98000e72f0fbea315ce5d5ffde000968ca","name":"wakelock_plus","path":"wakelock_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980cf0962102e5564a7510eac387bcd78f","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982f59c05e240b9775173330fb7d95b357","name":"wakelock_plus","path":"wakelock_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985c863bad1784e3af5f53072c6111db60","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983431e24b0afdc45a19dd10acd77fcead","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9884efd316e82137bbda4cc6b731332c3f","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b99874602691d322bc8f80438166e4ac","name":"OnUFitnessMobile","path":"OnUFitnessMobile","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d016bd1233777c42ad952013b967ea4d","name":"Documents","path":"Documents","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ea46f1003fcc19e602ffb94162f9e9b3","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ef1d1068414c2589c1dd32d69d2b0ebb","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98495f19324981b5c52a212d44718c9cdb","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d3b4e0df009d3e67d3394ec8fbe294d3","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98186bd3683117dc75e9dca6754fdf2019","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980ca8ef17aa5bd3b09e9f6de739ace458","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b52c4357ae3ac93bad20ba200e6a3a70","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c7627b8d37506c47679e422ee0c36e7a","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/wakelock_plus-1.3.2/ios/wakelock_plus/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9867da96a42f935db8ec5c83afb78b2c31","path":"../../../../../../../.pub-cache/hosted/pub.dev/wakelock_plus-1.3.2/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e9839d7f30361308419f88bca626ee8f1a3","path":"../../../../../../../.pub-cache/hosted/pub.dev/wakelock_plus-1.3.2/ios/wakelock_plus.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e989254b1e1525aa286e7038e7b1d0535a8","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98df7bc378035838f215f5331e26630a43","path":"ResourceBundle-wakelock_plus_privacy-wakelock_plus-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e988efa217719be9e96435da19a74c397fc","path":"wakelock_plus.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987a93ccb5ea3b7083fba7e5d08b357a2a","path":"wakelock_plus-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98be171fa91704c40b3ee11289ef8b4af3","path":"wakelock_plus-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985121d6eca3614e82afb982c08646b7f5","path":"wakelock_plus-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983794e4dff317c4644264c1bc61f27550","path":"wakelock_plus-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9807971a9517bde8ab94126d7c7ea18faf","path":"wakelock_plus.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e987497a2e6d36626ea41277a9a858f90c8","path":"wakelock_plus.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98229a7526ac055023064e967b1ed399f2","name":"Support Files","path":"../../../../Pods/Target Support Files/wakelock_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a7d65627d9625026d71a08d9a4d84f6d","name":"wakelock_plus","path":"../.symlinks/plugins/wakelock_plus/ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980e7f8d57c4183052697a8c9d48556e4e","name":"Development Pods","path":"","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e98908295e54fe99f6fdbbdafaaab65b411","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/AVFoundation.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e9846c402515c051dde79e0603b8988800a","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/AVKit.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e98505b692fb495fe72661f167c4313cc6e","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CFNetwork.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e98fbe738dd964da96dc5378f10f34c55d4","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreGraphics.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e9820f3d3dfa4ce6beffa61409b4c33d9e6","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreText.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e981606cc412f715cfa3074e33b586cc81e","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/ImageIO.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e98bb3682592bc2dbd4718b670b97fbc5a4","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/LocalAuthentication.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e9836b3bf7b0389bcedef90c61b86078695","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/MobileCoreServices.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e98fca39a1b3a759435878c72e88d354056","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Photos.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e9803ee236a40fef55416b6acccb5786310","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/SafariServices.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e98837e741867d5fe8bc907927670287ace","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Security.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e98843620cb9303c260af54f17d584e9561","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/UIKit.framework","sourceTree":"DEVELOPER_DIR","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e0a75ef1ba70890a296cb6710e696727","name":"iOS","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d53f611f7a234a45f3aa4b9252c861d1","name":"Frameworks","path":"","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988f5044eafae1f72ad0aad1fe9759751c","path":"Sources/AppAuthCore.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98436d2321216a1204bdca93d9f3408967","path":"Sources/AppAuthCore/OIDAuthorizationRequest.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ca77ea056651f04861ecf47ccaa24d82","path":"Sources/AppAuthCore/OIDAuthorizationRequest.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ef822ac1ee49268261b662fc9bb82a48","path":"Sources/AppAuthCore/OIDAuthorizationResponse.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98436f3f316bd551c4341844f883e3eeda","path":"Sources/AppAuthCore/OIDAuthorizationResponse.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fdce16b94e155fb5bc1a2d82086f5c82","path":"Sources/AppAuthCore/OIDAuthorizationService.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989893775f4a9241c91570f3e275e6fc59","path":"Sources/AppAuthCore/OIDAuthorizationService.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983ba782bb46a2a98078f1a8c69723e748","path":"Sources/AppAuthCore/OIDAuthState.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a15be603ed9689691a2533f54df87bb2","path":"Sources/AppAuthCore/OIDAuthState.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986e24c2a6a19f55672e0bc7aaeab720bb","path":"Sources/AppAuthCore/OIDAuthStateChangeDelegate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988680829ea010545d6a1fc5345a6c7950","path":"Sources/AppAuthCore/OIDAuthStateErrorDelegate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987ca52d0b5272c25e45c1cf3d3536d30f","path":"Sources/AppAuthCore/OIDClientMetadataParameters.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98011084e91af0544dacc51f15dd7f4d9b","path":"Sources/AppAuthCore/OIDClientMetadataParameters.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d2b0da3a4ad50125d0aad4fe29dd45eb","path":"Sources/AppAuthCore/OIDDefines.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d4a58b0816b7ddda478a2195f64d2a44","path":"Sources/AppAuthCore/OIDEndSessionRequest.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a0f40d6d99c7919a26ec76ad1414f1e2","path":"Sources/AppAuthCore/OIDEndSessionRequest.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e6ed0c91ff5f2ccda0b5c67ae9b885bc","path":"Sources/AppAuthCore/OIDEndSessionResponse.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98004310bf8c3563d60663b2475e05c5f4","path":"Sources/AppAuthCore/OIDEndSessionResponse.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987bbe038a671268d08d46cc6591f1dd9a","path":"Sources/AppAuthCore/OIDError.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f617a5564650282acb51825ae1f12ace","path":"Sources/AppAuthCore/OIDError.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b348c7ef456426d255457af034d9c397","path":"Sources/AppAuthCore/OIDErrorUtilities.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98819a97f0778a64ffd6ef050339dda7e1","path":"Sources/AppAuthCore/OIDErrorUtilities.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a2f7792275344f9157ef3e8d5780abc9","path":"Sources/AppAuthCore/OIDExternalUserAgent.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d9debd3a35e773ead5d79c4548431ceb","path":"Sources/AppAuthCore/OIDExternalUserAgentRequest.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9815c91bd4101d4623e88c4f045dc27f1d","path":"Sources/AppAuthCore/OIDExternalUserAgentSession.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c248004e480731c08adee24b05379247","path":"Sources/AppAuthCore/OIDFieldMapping.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ff1c0196f34973dc1a394da08b32bd1c","path":"Sources/AppAuthCore/OIDFieldMapping.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981aa370d66e85e05338064c6edbe89f77","path":"Sources/AppAuthCore/OIDGrantTypes.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e986ba406595c9137d8367ae0fec493de87","path":"Sources/AppAuthCore/OIDGrantTypes.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98404ffc92e76232747bd41f3a792cb17a","path":"Sources/AppAuthCore/OIDIDToken.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987033476d2fea35b299e97c88ca0cac1e","path":"Sources/AppAuthCore/OIDIDToken.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989761eb6db740e2136f7a2975a33ef304","path":"Sources/AppAuthCore/OIDRegistrationRequest.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b8771d682a2428842b52c01cb94d2742","path":"Sources/AppAuthCore/OIDRegistrationRequest.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989e26e887ed947c53e4557a4f3834259f","path":"Sources/AppAuthCore/OIDRegistrationResponse.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98fb7497f27a9887fe1d31ced69518fc82","path":"Sources/AppAuthCore/OIDRegistrationResponse.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dbecc8c9e6fe62d162edeef8f47d9f36","path":"Sources/AppAuthCore/OIDResponseTypes.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988f8463dcd3afa4b45c7e27a2ed1a7c95","path":"Sources/AppAuthCore/OIDResponseTypes.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9838b410d9776178a0a6ed799a04edf0dd","path":"Sources/AppAuthCore/OIDScopes.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9801ac96d9f419c13c4d3e6ee1b0b681c8","path":"Sources/AppAuthCore/OIDScopes.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984b3c5f24a96353460aa52bfa632ceae0","path":"Sources/AppAuthCore/OIDScopeUtilities.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f7d84c3424a741c13248097331d827bb","path":"Sources/AppAuthCore/OIDScopeUtilities.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98959ebdb1843f628584278d2b2a0e5b89","path":"Sources/AppAuthCore/OIDServiceConfiguration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d1b12257cfe1ab7190174fe2dc71ffd9","path":"Sources/AppAuthCore/OIDServiceConfiguration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9813ff98d711eab16db9f74f5c1248c882","path":"Sources/AppAuthCore/OIDServiceDiscovery.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9883352c742ef80ca980ac6e2ec4840af8","path":"Sources/AppAuthCore/OIDServiceDiscovery.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f865bc5c6e9fbd2c8649c4c031c48736","path":"Sources/AppAuthCore/OIDTokenRequest.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c66fa385bb62758dbd8a753c3a763444","path":"Sources/AppAuthCore/OIDTokenRequest.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983ac7bf5dd7cc5e3d3b407cf74756ce2f","path":"Sources/AppAuthCore/OIDTokenResponse.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e1126f4e75dea7c4febe8dd3653fe08f","path":"Sources/AppAuthCore/OIDTokenResponse.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986d39b68a8356c08def6fc556ae104ebb","path":"Sources/AppAuthCore/OIDTokenUtilities.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98eb9d5308fa5c79a9c4b8d45e5f734650","path":"Sources/AppAuthCore/OIDTokenUtilities.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98709a761a1d871105331116e3228409c2","path":"Sources/AppAuthCore/OIDURLQueryComponent.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a04742e650b5536857d63dc557c7ed69","path":"Sources/AppAuthCore/OIDURLQueryComponent.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9891446fe7b4a7dece8640f6884a460b8f","path":"Sources/AppAuthCore/OIDURLSessionProvider.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98da41e9b9411204e2567663b9b92f187d","path":"Sources/AppAuthCore/OIDURLSessionProvider.m","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e982c71d0b4392784f047a4915539da8c40","path":"Sources/AppAuthCore/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98cd90b85c591d2dec753121abc299b08f","name":"Resources","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d2b9e7d881533834e70a96e513e2609b","name":"Core","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98996e4e2d34c7f1c15aa385e4c8e87e1c","path":"Sources/AppAuth.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cdfd164da908078e7ef14596587f7dc6","path":"Sources/AppAuth/iOS/OIDAuthorizationService+IOS.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a999ddae6750aee1795959ddc33b9ca6","path":"Sources/AppAuth/iOS/OIDAuthorizationService+IOS.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c622245b5ed332ef8bca5cba07c45b9f","path":"Sources/AppAuth/iOS/OIDAuthState+IOS.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98aa590b628a3848d6cd511e1482f129b8","path":"Sources/AppAuth/iOS/OIDAuthState+IOS.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983662254fa33ece809a1b7361798a882d","path":"Sources/AppAuth/iOS/OIDExternalUserAgentCatalyst.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9869b1c4bab6d62a20728098bfd620541b","path":"Sources/AppAuth/iOS/OIDExternalUserAgentCatalyst.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9809cb7c7b2d002bada8e83c14888a7d1b","path":"Sources/AppAuth/iOS/OIDExternalUserAgentIOS.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98003244a56b437ecb2c70bde801efe9dc","path":"Sources/AppAuth/iOS/OIDExternalUserAgentIOS.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9832f200727c5afdc838bebe606d6989a0","path":"Sources/AppAuth/iOS/OIDExternalUserAgentIOSCustomBrowser.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9858836cf9534cd711f2973418510d317a","path":"Sources/AppAuth/iOS/OIDExternalUserAgentIOSCustomBrowser.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e8f7d445946cef6b50dc14d46f5b0144","name":"ExternalUserAgent","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98dab6f195eca41092b507b9dbd703c9f7","path":"AppAuth.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b5d225b711256a9973deae0809025b0b","path":"AppAuth-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e985064b9c48714258acb49500e0919de38","path":"AppAuth-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981cd0fb502756dcd647581b1e5da9538a","path":"AppAuth-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983d35b34becc98c98b6652f5bdb5052d1","path":"AppAuth-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98dfeaebcd8aea2e753049392f4566e8ab","path":"AppAuth.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e984e9846f9bd02001bffc698b449150ddb","path":"AppAuth.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98684d4dbf16b2c533ce6788e644a7b577","path":"ResourceBundle-AppAuthCore_Privacy-AppAuth-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98dfdf29419370c42c3db48ec39cac5f74","name":"Support Files","path":"../Target Support Files/AppAuth","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b78fce2621b9523d68d4fe5f0c9da960","name":"AppAuth","path":"AppAuth","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9840ae57cda55777ee9dd2ecbe4e858efc","path":"AppCheckCore/Sources/Public/AppCheckCore/AppCheckCore.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ccb5e2e8a33384069169259ac6784e31","path":"AppCheckCore/Sources/AppAttestProvider/DCAppAttestService+GACAppAttestService.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98456778bf4f3738cb0928ebc01a5fa070","path":"AppCheckCore/Sources/AppAttestProvider/DCAppAttestService+GACAppAttestService.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c57e72aaf55fc99f8d8c3a30f79666a0","path":"AppCheckCore/Sources/DeviceCheckProvider/DCDevice+GACDeviceCheckTokenGenerator.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98742a586220e386997703ba60babbc46d","path":"AppCheckCore/Sources/DeviceCheckProvider/DCDevice+GACDeviceCheckTokenGenerator.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980f0de9e1b9ef908d1955d0f695d71081","path":"AppCheckCore/Sources/AppAttestProvider/API/GACAppAttestAPIService.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e5e6491044618056151148ad6b528203","path":"AppCheckCore/Sources/AppAttestProvider/API/GACAppAttestAPIService.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981caf4535ab2485d28f7c7c695bcd1105","path":"AppCheckCore/Sources/AppAttestProvider/Storage/GACAppAttestArtifactStorage.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9819c6bfb474d595f44d3f24165aec56ce","path":"AppCheckCore/Sources/AppAttestProvider/Storage/GACAppAttestArtifactStorage.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98350af08976f088fd7e3fee2e60cd1e92","path":"AppCheckCore/Sources/AppAttestProvider/API/GACAppAttestAttestationResponse.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98cf008a4bc4eec179d9beac3e8c743ed1","path":"AppCheckCore/Sources/AppAttestProvider/API/GACAppAttestAttestationResponse.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982abd22ea5e43e883694656d7a85a688c","path":"AppCheckCore/Sources/AppAttestProvider/Storage/GACAppAttestKeyIDStorage.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d06fda4cebe4cf847e59fabdd6790d2f","path":"AppCheckCore/Sources/AppAttestProvider/Storage/GACAppAttestKeyIDStorage.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988d77bec9f911e331ae6ee14e5d7610a3","path":"AppCheckCore/Sources/Public/AppCheckCore/GACAppAttestProvider.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9867244f63ef9af215d11afe2b544b9b9b","path":"AppCheckCore/Sources/AppAttestProvider/GACAppAttestProvider.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981be67a72afc7082b9b5b2282071da1b4","path":"AppCheckCore/Sources/AppAttestProvider/GACAppAttestProviderState.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983d3284e394b57891ca0b72897e3ed911","path":"AppCheckCore/Sources/AppAttestProvider/GACAppAttestProviderState.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ab8133d14c570dc4cbb06bdc80b2980e","path":"AppCheckCore/Sources/AppAttestProvider/Errors/GACAppAttestRejectionError.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98943d6abfbbc1063382f9f6c47948de29","path":"AppCheckCore/Sources/AppAttestProvider/Errors/GACAppAttestRejectionError.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981f89116807932be57c553d5d2afab924","path":"AppCheckCore/Sources/AppAttestProvider/GACAppAttestService.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98139b5ccdc9a8f77002c7a412ea65b768","path":"AppCheckCore/Sources/AppAttestProvider/Storage/GACAppAttestStoredArtifact.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988e3a313c27e137f655d5bdadc2f3732a","path":"AppCheckCore/Sources/AppAttestProvider/Storage/GACAppAttestStoredArtifact.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98acdd97bd04922658dacd494b65f83717","path":"AppCheckCore/Sources/Public/AppCheckCore/GACAppCheck.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98710ca7b4d0df4b41b299b0b491dad5c4","path":"AppCheckCore/Sources/Core/GACAppCheck.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b775098135f585743aa033017400c13a","path":"AppCheckCore/Sources/Core/APIService/GACAppCheckAPIService.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ef2e276b1cf0bf038e4058ddf60076a4","path":"AppCheckCore/Sources/Core/APIService/GACAppCheckAPIService.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9827de06c4a65309725799925fbe220aff","path":"AppCheckCore/Sources/Public/AppCheckCore/GACAppCheckAvailability.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a5c97bc8a85a6c9aacf3597c63c1fc28","path":"AppCheckCore/Sources/Core/Backoff/GACAppCheckBackoffWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9897e674ba8c761d2cacc4b8062c83173a","path":"AppCheckCore/Sources/Core/Backoff/GACAppCheckBackoffWrapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a367917b67ebcb1ff04d84e3c3d56167","path":"AppCheckCore/Sources/Core/Utils/GACAppCheckCryptoUtils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987596fe6414db928fa31385678a860140","path":"AppCheckCore/Sources/Core/Utils/GACAppCheckCryptoUtils.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9865e64959b7a3900476f4b07ac525b8f7","path":"AppCheckCore/Sources/Public/AppCheckCore/GACAppCheckDebugProvider.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9879df5a55ccb6d9f182d0dfbafa4577e7","path":"AppCheckCore/Sources/DebugProvider/GACAppCheckDebugProvider.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980c8b67627bd3206d668e22dd01ac28e3","path":"AppCheckCore/Sources/DebugProvider/API/GACAppCheckDebugProviderAPIService.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98077f8bb01c705445edabe867b09d2028","path":"AppCheckCore/Sources/DebugProvider/API/GACAppCheckDebugProviderAPIService.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987e7cff551885b515b1be7e7686cafa0e","path":"AppCheckCore/Sources/Public/AppCheckCore/GACAppCheckErrors.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987f71e152b7eed8509f126383382e56ad","path":"AppCheckCore/Sources/Core/Errors/GACAppCheckErrors.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9843ea5efe1425cf35b91010e84131a260","path":"AppCheckCore/Sources/Core/Errors/GACAppCheckErrorUtil.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98cbef55b7c67e16b0daaed4a11327dd83","path":"AppCheckCore/Sources/Core/Errors/GACAppCheckErrorUtil.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989116160b3bd824317f3eba7b571fc062","path":"AppCheckCore/Sources/Core/Errors/GACAppCheckHTTPError.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982b37a13ad8d60ec21e1567d559582b13","path":"AppCheckCore/Sources/Core/Errors/GACAppCheckHTTPError.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9822a7b520345f327467784885b8e36b54","path":"AppCheckCore/Sources/Public/AppCheckCore/GACAppCheckLogger.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98770c3dcac3422ed828e69f07c526e41f","path":"AppCheckCore/Sources/Core/GACAppCheckLogger.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9830af6f8b03739584f0ca7a3de1b66268","path":"AppCheckCore/Sources/Core/GACAppCheckLogger+Internal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d643cbe281a0fa02ac6401b3f31fa713","path":"AppCheckCore/Sources/Public/AppCheckCore/GACAppCheckProvider.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9877bf51196b7a533515253a400ab3521d","path":"AppCheckCore/Sources/Public/AppCheckCore/GACAppCheckSettings.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c1b924e662d718b863a37cfd7672bbad","path":"AppCheckCore/Sources/Core/GACAppCheckSettings.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988741c7c41d69c2eca6c837aacac67264","path":"AppCheckCore/Sources/Core/Storage/GACAppCheckStorage.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98aa2b64b648011be2e8c0606259bd5022","path":"AppCheckCore/Sources/Core/Storage/GACAppCheckStorage.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985e284c16aebfdca4362e1b7b6422de47","path":"AppCheckCore/Sources/Core/Storage/GACAppCheckStoredToken.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9869fd71edbc73ae36e2bf694b32d70154","path":"AppCheckCore/Sources/Core/Storage/GACAppCheckStoredToken.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ae136a3877f6f26916b6676b41633e3b","path":"AppCheckCore/Sources/Core/Storage/GACAppCheckStoredToken+GACAppCheckToken.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9889469fd9d006667956520e6d04b7b9a4","path":"AppCheckCore/Sources/Core/Storage/GACAppCheckStoredToken+GACAppCheckToken.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9893fab755d31dfcc59efb2ba0a0bf5a34","path":"AppCheckCore/Sources/Core/TokenRefresh/GACAppCheckTimer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98123a7672ebf087b8278f35c5b67a923f","path":"AppCheckCore/Sources/Core/TokenRefresh/GACAppCheckTimer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d2ee92096efc6a05617f99cab54873be","path":"AppCheckCore/Sources/Public/AppCheckCore/GACAppCheckToken.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98bea217c0447db27da1698c9a2d785904","path":"AppCheckCore/Sources/Core/GACAppCheckToken.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983b9e839d25209c673c8352e5cc709181","path":"AppCheckCore/Sources/Core/APIService/GACAppCheckToken+APIResponse.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989762d8e6736e8a77503308e938275398","path":"AppCheckCore/Sources/Core/APIService/GACAppCheckToken+APIResponse.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98946e7ff9b1e445f6ba04fa3cd5c5903a","path":"AppCheckCore/Sources/Public/AppCheckCore/GACAppCheckTokenDelegate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a9578cf0b3b2096f4c09dbb7499b73c3","path":"AppCheckCore/Sources/Core/TokenRefresh/GACAppCheckTokenRefresher.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a4bd9ec0d6875177ac995511ff02243e","path":"AppCheckCore/Sources/Core/TokenRefresh/GACAppCheckTokenRefresher.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9836f57bbc65ed6ec838ab5abdaa8cfe76","path":"AppCheckCore/Sources/Core/TokenRefresh/GACAppCheckTokenRefreshResult.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98bb658f52bd3633d238bed37b584d0507","path":"AppCheckCore/Sources/Core/TokenRefresh/GACAppCheckTokenRefreshResult.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c5266e94e095bac4071409d3908fa471","path":"AppCheckCore/Sources/Public/AppCheckCore/GACAppCheckTokenResult.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988bc8857707ac1d36cb8505932d1cc6ba","path":"AppCheckCore/Sources/Core/GACAppCheckTokenResult.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985c8909f86495dcfa3dd2a63fdb74cf5e","path":"AppCheckCore/Sources/DeviceCheckProvider/API/GACDeviceCheckAPIService.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9890d3db03e96c778e25179d33f3703f24","path":"AppCheckCore/Sources/DeviceCheckProvider/API/GACDeviceCheckAPIService.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98756bcf1020e86e02171db66840f18eb4","path":"AppCheckCore/Sources/Public/AppCheckCore/GACDeviceCheckProvider.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9829bb43f18eb0f783bb08c3609e55547c","path":"AppCheckCore/Sources/DeviceCheckProvider/GACDeviceCheckProvider.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982e381c2f5045da0b053b3c6e93f6feee","path":"AppCheckCore/Sources/DeviceCheckProvider/GACDeviceCheckTokenGenerator.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983e72b8712f9ebc03c258a9e8af21967c","path":"AppCheckCore/Sources/Core/APIService/GACURLSessionDataResponse.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98960695c6c25df781c0949edf1e2ffea2","path":"AppCheckCore/Sources/Core/APIService/GACURLSessionDataResponse.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bdd7bcd7e6c17660ea4e4ffa324e3e2c","path":"AppCheckCore/Sources/Core/APIService/NSURLSession+GACPromises.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989cf770892d1ebe2cb06717ee7ac0b7df","path":"AppCheckCore/Sources/Core/APIService/NSURLSession+GACPromises.m","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e983d1cef39305a9c09a4e6bcc5ce6fb672","path":"AppCheckCore.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985810c144972513ea7d5d52d4bd7fd31f","path":"AppCheckCore-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9816ee939def2dde7864525b14627b471d","path":"AppCheckCore-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bb1683d3dcf65a93325e2d4b9fc9e3ea","path":"AppCheckCore-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98152c52d5cde47684e140cf9bbe2eb658","path":"AppCheckCore.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9888becb7db8ca675a0e081b8e329aac2a","path":"AppCheckCore.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98fff6284bd559ea67de75180fab583997","name":"Support Files","path":"../Target Support Files/AppCheckCore","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cc3d45b36dc5371d5666de17ec42d00c","name":"AppCheckCore","path":"AppCheckCore","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98ee4feead94fdaa388a0aa1da10d03081","path":"Source/Shared/Storage/AsyncStorage.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9813d7048e3c601667d4c1b2368c9da518","path":"Source/Shared/Library/DataSerializer.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98177533ddc8a5590aaf23666590e0de14","path":"Source/Shared/Extensions/Date+Extensions.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98ff37ae58009e058ab4984f4f10a075c6","path":"Source/Shared/Configuration/DiskConfig.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e984e3dafd83ca4111df4cde1899384f89f","path":"Source/Shared/Storage/DiskStorage.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9880dddb774d7d1a4a9e8b66a2543bd970","path":"Source/Shared/Library/Entry.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98d40fb5a0063a227208e00f16dc4ce599","path":"Source/Shared/Library/ExpirationMode.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e986255273ceec26cef9a33743fba2ef35b","path":"Source/Shared/Library/Expiry.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e983ba35b109b358833ffec2bd3a6c2c6d1","path":"Source/Shared/Extensions/Hasher+constantAccrossExecutions.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e980369313ddf00818b31a3c8aadd8626d1","path":"Source/Shared/Storage/HybridStorage.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f337985a26c1e2eaa18042a1004987f8","path":"Source/Shared/Library/ImageWrapper.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e980719a0ecd3d9429b8a4b6178161f29d3","path":"Source/Shared/Library/JSONArrayWrapper.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a19601500a16f5dacd5cff5d2dbac90d","path":"Source/Shared/Extensions/JSONDecoder+Extensions.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98ff9e0efdcc31290788ebede8b0fc91ca","path":"Source/Shared/Library/JSONDictionaryWrapper.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98eaf8c2b86dd791b806e93db946b081ba","path":"Source/Shared/Storage/KeyObservationRegistry.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9817e4d89d4beebbb54daa923e79563605","path":"Source/Shared/Library/MD5.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e987f5d6133f4b823b5676001856367b239","path":"Source/Shared/Library/MemoryCapsule.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e983d156fc54ed3816babab663e8d67a491","path":"Source/Shared/Configuration/MemoryConfig.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9842fc4b1d8f8753e66fa4943bbb2c2f88","path":"Source/Shared/Storage/MemoryStorage.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98cf1fc4beaa19efc7ab86f8950fd10dcf","path":"Source/Shared/Library/ObservationToken.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98af4ea6fc5f26eb1192d0f53a1319af03","path":"Source/Shared/Library/Optional+Extension.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e985f9a8f41663bccee0793176bf6f11b62","path":"Source/Shared/Library/Result.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98801f43a08d46317b261b74bee5a5483d","path":"Source/Shared/Storage/Storage.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9896d7a5f9173da19f8a0ad6f8eb503255","path":"Source/Shared/Storage/Storage+Transform.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e982b12df098bbdb5c5d6e6899e15a4e841","path":"Source/Shared/Storage/StorageAware.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98db23451d2cb585a50816d949a43de5b7","path":"Source/Shared/Library/StorageError.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e986612a5aa23258a41878f3692bad068ca","path":"Source/Shared/Storage/StorageObservationRegistry.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e989588f910d6cf59505e889a92fa6c520a","path":"Source/Shared/Storage/SyncStorage.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98d9ac9e14d78234e52cf56478bcab0696","path":"Source/Shared/Library/Transformer.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f1c21a118888846ae49b7c178705e45b","path":"Source/Shared/Library/TransformerFactory.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9895972485ce24c88e727bfa5f53b3ce5e","path":"Source/Shared/Library/Types.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e987193d58a8619d21177bab8b742aef892","path":"Source/Shared/Library/TypeWrapper.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98ea30ad25b73449567441824cf2c4cbe2","path":"Source/iOS/UIImage+Extensions.swift","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e981e8dc59aa7774620ca3989ef5122eb52","path":"Cache.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b267bf8f27dc8f9633f31e14f865963c","path":"Cache-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98b48ca87f17ea788ff81ef9d3d7906935","path":"Cache-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982b1a2e7e7ac71849165dd36c2f4c12bd","path":"Cache-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98834f69cf26b82c488064ee57fced8070","path":"Cache-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f70f5b5132ed18bf605c024985b6611c","path":"Cache.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98182554de8941372ede8df44273f13769","path":"Cache.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9876bd4179fe4c1d2b45f4828d9c92b030","name":"Support Files","path":"../Target Support Files/Cache","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cf9af51e06806e5c120e3de9b85ea566","name":"Cache","path":"Cache","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98c7372d22fb1e82c47656f91001ef126c","path":"Sources/DKImagePickerController/View/Cell/DKAssetGroupCellItemProtocol.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e988619d33595179ee2f81b798fc133990a","path":"Sources/DKImagePickerController/View/Cell/DKAssetGroupDetailBaseCell.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98be4cb5f13dd8974e52e959d08a984bdb","path":"Sources/DKImagePickerController/View/Cell/DKAssetGroupDetailCameraCell.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a2fb55c6523338198b21b271bab775c2","path":"Sources/DKImagePickerController/View/Cell/DKAssetGroupDetailImageCell.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98c5c763316ea9c2c00f2d0f75384b6d3d","path":"Sources/DKImagePickerController/View/DKAssetGroupDetailVC.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98462fffaa53921d017ed272122461610d","path":"Sources/DKImagePickerController/View/Cell/DKAssetGroupDetailVideoCell.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e985b48bbb139bba24627b709e08d903ff6","path":"Sources/DKImagePickerController/View/DKAssetGroupGridLayout.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98c74ae5b319226a190ddd0f9275a6a6f6","path":"Sources/DKImagePickerController/View/DKAssetGroupListVC.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9863f19671557899072a23eb4d4896a73f","path":"Sources/DKImagePickerController/DKImageAssetExporter.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e986f68c343117d72d8d81bc24768068cb7","path":"Sources/DKImagePickerController/DKImageExtensionController.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9869fb27659423104cc5a6e3053cbc4ebc","path":"Sources/DKImagePickerController/DKImagePickerController.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98993094d0e13f5df0f41d41a2bc39b850","path":"Sources/DKImagePickerController/DKImagePickerControllerBaseUIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98290bea910c733c8370f189d9d9298f46","path":"Sources/DKImagePickerController/View/DKPermissionView.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98d760f069f9083df3b15aeaa4859fc8c6","path":"Sources/DKImagePickerController/DKPopoverViewController.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9851de63851a693297e32f536f4abe7121","name":"Core","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9815e1d305143c3566e09fccf36bac17e9","path":"Sources/DKImageDataManager/Model/DKAsset.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98dbe35b800abf413ed3a0088762de3402","path":"Sources/DKImageDataManager/Model/DKAsset+Export.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a97b0cd55a593cb3e9375aefd82e78a6","path":"Sources/DKImageDataManager/Model/DKAsset+Fetch.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9863d6b236b467112fdda8a9fcb288a59e","path":"Sources/DKImageDataManager/Model/DKAssetGroup.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98619fe2ab87de953ac892bbd26722d119","path":"Sources/DKImageDataManager/DKImageBaseManager.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98b6d293741a3b3fd0339e12c112461bfb","path":"Sources/DKImageDataManager/DKImageDataManager.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9894fc4456916def2244bd64a62648e92c","path":"Sources/DKImageDataManager/DKImageGroupDataManager.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e985c5f4ee4230dfb306a5e68ad1543e937","name":"ImageDataManager","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a9b1fac151336b02d21559f689d4ed14","path":"Sources/Extensions/DKImageExtensionGallery.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e988b94a546eb8ed513b4327b188fde5d2c","name":"PhotoGallery","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98af86d75723a2c86e4645cec72ea13640","path":"Sources/DKImagePickerController/Resource/DKImagePickerControllerResource.swift","sourceTree":"","type":"file"},{"children":[{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e984af4c36361cfca652bfc55babe898641","path":"Sources/DKImagePickerController/Resource/Resources/ar.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e986b6f57dfa71d2afa0a1a7ce26d99b5a2","path":"Sources/DKImagePickerController/Resource/Resources/Base.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98df7c69e3ed1091809359bce305f9555e","path":"Sources/DKImagePickerController/Resource/Resources/da.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e9898abc9b32795ce4ad7781ac1e2e4b3d1","path":"Sources/DKImagePickerController/Resource/Resources/de.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98fc38ef0398a4796a2de06421ff183a9a","path":"Sources/DKImagePickerController/Resource/Resources/en.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98e6b2fcb4cb6340f0299d0d29bb9654ba","path":"Sources/DKImagePickerController/Resource/Resources/es.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e9817a97c5058844beb69d20797b73c7526","path":"Sources/DKImagePickerController/Resource/Resources/fr.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e988727ab15488508d431d5b6122041c61c","path":"Sources/DKImagePickerController/Resource/Resources/hu.lproj","sourceTree":"","type":"file"},{"fileType":"folder.assetcatalog","guid":"bfdfe7dc352907fc980b868725387e98afd6b10bb81327d92cccce38e1d8342c","path":"Sources/DKImagePickerController/Resource/Resources/Images.xcassets","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98db545466dc5bb1b86cbec9bf55448c17","path":"Sources/DKImagePickerController/Resource/Resources/it.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e980984f181573c0854d8c1c189a380652e","path":"Sources/DKImagePickerController/Resource/Resources/ja.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e983c1b94c54d06c068cb4aa90b23ebf4d9","path":"Sources/DKImagePickerController/Resource/Resources/ko.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98a3c66444d1d46fed13fa66d7e2506a4e","path":"Sources/DKImagePickerController/Resource/Resources/nb-NO.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e984f0f57e75418bfc934becd3e9ececbdf","path":"Sources/DKImagePickerController/Resource/Resources/nl.lproj","sourceTree":"","type":"file"},{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e989fa2c482b2545b0fcf9d89fae63b780d","path":"Sources/DKImagePickerController/Resource/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98af8ee0601e897c93fa19d8c64831242b","path":"Sources/DKImagePickerController/Resource/Resources/pt_BR.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e9867d92cf590690a7e7ab82b6720d701b3","path":"Sources/DKImagePickerController/Resource/Resources/ru.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e983a1c934e5c0aab08a070780f1bad1dda","path":"Sources/DKImagePickerController/Resource/Resources/tr.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e988d98784fbd9485aba98b7ae568ba9a90","path":"Sources/DKImagePickerController/Resource/Resources/ur.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e983ab7b4b586f09d4c1e506e4d9c82b585","path":"Sources/DKImagePickerController/Resource/Resources/vi.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e980ab8ea50256089d4f1dd50bca3a00e89","path":"Sources/DKImagePickerController/Resource/Resources/zh-Hans.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98d2c3285b28ae5ac999a78b9b5074e62e","path":"Sources/DKImagePickerController/Resource/Resources/zh-Hant.lproj","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98cda6b5892e62939ea94517cebeb815ec","name":"Resources","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98920e45606e7a3ddcc83740c74528e70f","name":"Resource","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e9869d9c3ed94bf0e84a91cf2e4fff88ad2","path":"DKImagePickerController.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a59e90a6793b47683b529863d87e9912","path":"DKImagePickerController-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9851a6f589335ff7afc109c587fbfaf113","path":"DKImagePickerController-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d3c0c7d6b0c0dec6aace84d386425710","path":"DKImagePickerController-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989cdb1244cc2ca97ed61f38ff8a723c3c","path":"DKImagePickerController-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e982ae55349f9521db650f2a18a78d76937","path":"DKImagePickerController.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98c601278e0434b87db13223dbd986fe53","path":"DKImagePickerController.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e985ac2ce344e7d32acda2bf502bb6a9593","path":"ResourceBundle-DKImagePickerController-DKImagePickerController-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e988b68b246f2f757f484b036b2eb82372e","name":"Support Files","path":"../Target Support Files/DKImagePickerController","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986f7f3d008798446173bd404f499b3958","name":"DKImagePickerController","path":"DKImagePickerController","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9823499508c529a49966ccb53a9be6c40b","path":"DKPhotoGallery/DKPhotoGallery.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98ce641793fdc091f70af56d0b6d7a785d","path":"DKPhotoGallery/DKPhotoGalleryContentVC.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9837e7a9c401ef4bc772dab2ae795d38aa","path":"DKPhotoGallery/Transition/DKPhotoGalleryInteractiveTransition.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98be715d69c2ebce099735dfd4b659e2db","path":"DKPhotoGallery/DKPhotoGalleryScrollView.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e988df463e07baffcfc4d7af3eac5dfe8d4","path":"DKPhotoGallery/Transition/DKPhotoGalleryTransitionController.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98dddda571ff5d7a858e04d448d7487335","path":"DKPhotoGallery/Transition/DKPhotoGalleryTransitionDismiss.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98c5d87c5ae4a2216a54e144246bd21e1f","path":"DKPhotoGallery/Transition/DKPhotoGalleryTransitionPresent.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98c302d9580a490b4aa288cc345541c475","path":"DKPhotoGallery/DKPhotoIncrementalIndicator.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9826c33d12b60d0940407a322618698c39","path":"DKPhotoGallery/DKPhotoPreviewFactory.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e989427c4d9d304aa6a8e497bc698c76723","name":"Core","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e984441bc5bf1872af7d5ad523c66522b7c","path":"DKPhotoGallery/DKPhotoGalleryItem.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e7638dbe6c230b151a433922d300e247","name":"Model","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a1a443e93e6ea6ee1aaa85177cd1624e","path":"DKPhotoGallery/Preview/PDFPreview/DKPDFView.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98dcc8020623eeb96287ffc7c187345d2a","path":"DKPhotoGallery/Preview/ImagePreview/DKPhotoBaseImagePreviewVC.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e982bccec3a122a1abeabd5be9abf14764a","path":"DKPhotoGallery/Preview/DKPhotoBasePreviewVC.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98b84ea5995ec3dd04441af46e3f415da5","path":"DKPhotoGallery/Preview/DKPhotoContentAnimationView.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e981064995dd6a27c13aadc1d9c042b9173","path":"DKPhotoGallery/Preview/ImagePreview/DKPhotoImageDownloader.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e983301ed0959371ee5961d8b476a7298bc","path":"DKPhotoGallery/Preview/ImagePreview/DKPhotoImagePreviewVC.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9862a87514fe50b8f6240000f8027f44c4","path":"DKPhotoGallery/Preview/ImagePreview/DKPhotoImageUtility.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e983895df943363e74a233f99d64d15591e","path":"DKPhotoGallery/Preview/ImagePreview/DKPhotoImageView.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98647d4c08856bb03a3e50d3806da40f80","path":"DKPhotoGallery/Preview/PDFPreview/DKPhotoPDFPreviewVC.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98039b6d95b92d90978a3646890454cf22","path":"DKPhotoGallery/Preview/PlayerPreview/DKPhotoPlayerPreviewVC.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9822bace87f86357eb196413bd32a538ba","path":"DKPhotoGallery/Preview/DKPhotoProgressIndicator.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98120f04ad44fd7f0cee4f9e8475445636","path":"DKPhotoGallery/Preview/DKPhotoProgressIndicatorProtocol.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e989185f1664ed06367f563b5e77401b5e3","path":"DKPhotoGallery/Preview/QRCode/DKPhotoQRCodeResultVC.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9881748808cdc080c52c6ae5e1159d522d","path":"DKPhotoGallery/Preview/QRCode/DKPhotoWebVC.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9828803fbca43f8791c35c0162379f2d47","path":"DKPhotoGallery/Preview/PlayerPreview/DKPlayerView.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9869bc2c0cdc2ba471a4901525079e195b","name":"Preview","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98169a1d8a03c9592b024d3390e1d46f1e","path":"DKPhotoGallery/Resource/DKPhotoGalleryResource.swift","sourceTree":"","type":"file"},{"children":[{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98fae782eb7db542c8117253e4a99b1919","path":"DKPhotoGallery/Resource/Resources/Base.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e980780fe74ea8184fd41b42dd074aa0c7c","path":"DKPhotoGallery/Resource/Resources/en.lproj","sourceTree":"","type":"file"},{"fileType":"folder.assetcatalog","guid":"bfdfe7dc352907fc980b868725387e9824f4967d8eeba90efef60f211374ade7","path":"DKPhotoGallery/Resource/Resources/Images.xcassets","sourceTree":"","type":"file"},{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9823911894fdad9bc4d9cf0fb01ce54b8a","path":"DKPhotoGallery/Resource/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e981faa4c42182fd65669396155b00b1cd0","path":"DKPhotoGallery/Resource/Resources/zh-Hans.lproj","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9868b9bd12c4e2ffaadfbef6cb087e82cf","name":"Resources","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9857fef7e87bb08c9bcd6245de2120794a","name":"Resource","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98adebbec43d30455f4a0a417d4afcfea9","path":"DKPhotoGallery.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a39260b394e776f127a1874b72c7afc9","path":"DKPhotoGallery-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98b93be37ac8864c38b1054fe4a6bef9d7","path":"DKPhotoGallery-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ac275035fa05af396a343c7cdfa01d71","path":"DKPhotoGallery-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98aa0f75287ef97dfd92076c1831529ccf","path":"DKPhotoGallery-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f40a524c9a9b720eab38f32f93b699ae","path":"DKPhotoGallery.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98a61afc599309c6316d5575e2d2c9da83","path":"DKPhotoGallery.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9837d7169d3785c28883b594c39af7437a","path":"ResourceBundle-DKPhotoGallery-DKPhotoGallery-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98170220edff8d85499bafac366d112c24","name":"Support Files","path":"../Target Support Files/DKPhotoGallery","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984b348f5309ba8de23b4f79783a93cc79","name":"DKPhotoGallery","path":"DKPhotoGallery","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98695896a4aa7b94965e6b341047b50cac","path":"GCDWebServer/Core/GCDWebServer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f510e7ce389740b5cf6c0c91c273f248","path":"GCDWebServer/Core/GCDWebServer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b6907b262f696b694bd67c0103193fdf","path":"GCDWebServer/Core/GCDWebServerConnection.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b08c571ed83d416a7a38997000719155","path":"GCDWebServer/Core/GCDWebServerConnection.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9834f88a322cc956b411e63a5d017eef96","path":"GCDWebServer/Requests/GCDWebServerDataRequest.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9887348a02a2f403f1374b824e0deed70c","path":"GCDWebServer/Requests/GCDWebServerDataRequest.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9844f3843bf41710fcf7801bbdcdf42f39","path":"GCDWebServer/Responses/GCDWebServerDataResponse.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f0da228d65da84df9de0bf0a699a0c43","path":"GCDWebServer/Responses/GCDWebServerDataResponse.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989391e192dce418088e0f805575dfba61","path":"GCDWebServer/Responses/GCDWebServerErrorResponse.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98dd63fc8ec8993a2b99eebc6fc79bbf1a","path":"GCDWebServer/Responses/GCDWebServerErrorResponse.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981ff2a86277e98bb60441b41652df1b81","path":"GCDWebServer/Requests/GCDWebServerFileRequest.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98021195d22c8a8f3334c369b0e13487f7","path":"GCDWebServer/Requests/GCDWebServerFileRequest.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9853af3474f59f9016bad2804ff1a245d2","path":"GCDWebServer/Responses/GCDWebServerFileResponse.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98944f11758be2b45fc435dac2c10d4f40","path":"GCDWebServer/Responses/GCDWebServerFileResponse.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98af3b4f5d56cf3a12757ecef5224f6665","path":"GCDWebServer/Core/GCDWebServerFunctions.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98869b9d6f6e9443db2f940316dd772285","path":"GCDWebServer/Core/GCDWebServerFunctions.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c91af4b597110ec28b745e8641d86059","path":"GCDWebServer/Core/GCDWebServerHTTPStatusCodes.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988b035628f5a4d05f064d2a9b00d0b014","path":"GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9887bdb91e61b7a8cbcfe841fc7e7d2bfe","path":"GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b5847d3a869ef3267909c06950afb3e9","path":"GCDWebServer/Core/GCDWebServerPrivate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9880d24f261f391f2e230382a23465415a","path":"GCDWebServer/Core/GCDWebServerRequest.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98178f09040d40257ace85d2c6ae77f396","path":"GCDWebServer/Core/GCDWebServerRequest.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981aa1682c57ad22157f227987df7e900b","path":"GCDWebServer/Core/GCDWebServerResponse.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98dc49cc644706024aa9dc6b1a656903a6","path":"GCDWebServer/Core/GCDWebServerResponse.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98af1342c47688a9911f6b89b2a2c15636","path":"GCDWebServer/Responses/GCDWebServerStreamedResponse.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981edb79406b75bb638043b9c98e0ae4a8","path":"GCDWebServer/Responses/GCDWebServerStreamedResponse.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987241621cddee3f8ed37396d7f88594b7","path":"GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981b46d0139998470783436ddf04e8b3bd","path":"GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e981e03d3cecf2218da27e9f3e3c953a6bc","name":"Core","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98a3f40e1d1f1c65cbe2f83afc7fdb058d","path":"GCDWebServer.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c7cdfd85fae2afad80d9f1a8665e9ffa","path":"GCDWebServer-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e987b9f96e24f2354260cbbd9891ccbeb55","path":"GCDWebServer-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984744c06c8ad25efdc8723e95b05b38f4","path":"GCDWebServer-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9821913dda31a509348b0c1665bdd46304","path":"GCDWebServer-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e981fecd01a1b9a3fddc0e141abe3529640","path":"GCDWebServer.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e988b6161d4f134859408f35073fdc074c8","path":"GCDWebServer.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e986d79e4eb1e018789b394f858abc17506","name":"Support Files","path":"../Target Support Files/GCDWebServer","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ee4921b1d0ac3a5eedfe3663fee1552f","name":"GCDWebServer","path":"GCDWebServer","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b8f1af5358ed0a98c580aa12cc83d2ba","path":"GoogleSignIn/Sources/GIDAppCheck/UI/GIDActivityIndicatorViewController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9856ca0758c266c3b63284fa42dcf4152b","path":"GoogleSignIn/Sources/GIDAppCheck/UI/GIDActivityIndicatorViewController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9862d69e70308c80315b382847621c4de5","path":"GoogleSignIn/Sources/GIDAppCheck/Implementations/GIDAppCheck.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989aa3ee265354593677be2375aefb2ca3","path":"GoogleSignIn/Sources/GIDAppCheck/Implementations/GIDAppCheck.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bf9831b79146f52c5ebb377ef06b770d","path":"GoogleSignIn/Sources/Public/GoogleSignIn/GIDAppCheckError.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d9818fab698a2b47d78ba2ca2948b556","path":"GoogleSignIn/Sources/GIDAppCheck/Implementations/Fake/GIDAppCheckProviderFake.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e4fcfefc0be54ac949962232e4f5e10e","path":"GoogleSignIn/Sources/GIDAppCheck/Implementations/Fake/GIDAppCheckProviderFake.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988408138e3cb6b974bdd8a180458447f8","path":"GoogleSignIn/Sources/GIDAuthentication.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f6a29d8d7987890ee438bec5c003c629","path":"GoogleSignIn/Sources/GIDAuthentication.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981406728884a3a3b137584192814a1dbc","path":"GoogleSignIn/Sources/GIDAuthStateMigration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d9230e9f32c0e50cd87db339556aa433","path":"GoogleSignIn/Sources/GIDAuthStateMigration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e30c145b180504c41a52c92db07028d7","path":"GoogleSignIn/Sources/GIDCallbackQueue.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c32c125cd7d66d183a4f85a77adf18cb","path":"GoogleSignIn/Sources/GIDCallbackQueue.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b32a5cfe1156d81f6318fde36fbfb32d","path":"GoogleSignIn/Sources/Public/GoogleSignIn/GIDConfiguration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981fcce4c8ebeb86d8fae07c2a0bb0eacf","path":"GoogleSignIn/Sources/GIDConfiguration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989532be47c00a7c4944525fbc9c255251","path":"GoogleSignIn/Sources/GIDEMMErrorHandler.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9882d0f9bfd9bbb5c0b62978525292a85e","path":"GoogleSignIn/Sources/GIDEMMErrorHandler.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986eedd803405eea85cd05d35655e2b7a9","path":"GoogleSignIn/Sources/GIDEMMSupport.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987e9375bc8a3fef86d81e22fab2e64c05","path":"GoogleSignIn/Sources/GIDEMMSupport.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985de0e6f70dad7f0786d7d7028aae288c","path":"GoogleSignIn/Sources/Public/GoogleSignIn/GIDGoogleUser.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989973409d79e570d6cd3802abe493e5f8","path":"GoogleSignIn/Sources/GIDGoogleUser.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98806b51ceff564cf5ecfb25e8ae7cef9f","path":"GoogleSignIn/Sources/GIDGoogleUser_Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986317fff0909998b7b9c65eb4c80e53f5","path":"GoogleSignIn/Sources/GIDMDMPasscodeCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c3dfda0bddd1812634706c01fd9beeaa","path":"GoogleSignIn/Sources/GIDMDMPasscodeCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988292e7e507d013cbe787a0195f4c78f0","path":"GoogleSignIn/Sources/GIDMDMPasscodeState.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981c474d0265b77ef2075eca6d43a328eb","path":"GoogleSignIn/Sources/GIDMDMPasscodeState.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9813bf8af9a41d47d3830c3ef53c5085f7","path":"GoogleSignIn/Sources/GIDMDMPasscodeState_Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984906e3f99fd527ce1434762a1d4c764f","path":"GoogleSignIn/Sources/Public/GoogleSignIn/GIDProfileData.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985455d50aa178016d9866d11bae29300d","path":"GoogleSignIn/Sources/GIDProfileData.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cc5e1faa2db34345c09f3fab9eea8fda","path":"GoogleSignIn/Sources/GIDProfileData_Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ab75154500e1dbfe3d570395c7a7e7cf","path":"GoogleSignIn/Sources/GIDScopes.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982b3ff697cc33e29345e1ded9a050cb92","path":"GoogleSignIn/Sources/GIDScopes.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981630c9b1a911165ede151df7818152e3","path":"GoogleSignIn/Sources/Public/GoogleSignIn/GIDSignIn.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9826cc234936f552182f48aca7201362eb","path":"GoogleSignIn/Sources/GIDSignIn.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989680aa2242821f1caffdfc034676340c","path":"GoogleSignIn/Sources/GIDSignIn_Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98486cb268ebd6fd576fb77c6b3c97118a","path":"GoogleSignIn/Sources/Public/GoogleSignIn/GIDSignInButton.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98edce6babe22590a4fe9f75a14d870034","path":"GoogleSignIn/Sources/GIDSignInButton.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dfe68fcd58c2ba8f92f33fa705f3301d","path":"GoogleSignIn/Sources/GIDSignInCallbackSchemes.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98cdbcd728e916118122347cccda4ef499","path":"GoogleSignIn/Sources/GIDSignInCallbackSchemes.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987778a5832888d7784523fb6b02bddad6","path":"GoogleSignIn/Sources/GIDSignInInternalOptions.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9897ae9a101e7105d04b0b3af948d7c25e","path":"GoogleSignIn/Sources/GIDSignInInternalOptions.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981f25f8a292fc8c8b9749eff9fd750548","path":"GoogleSignIn/Sources/GIDSignInPreferences.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c3b896da0f63c8d6959b513b228dbd5f","path":"GoogleSignIn/Sources/GIDSignInPreferences.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987d70b93c11eb6cafadd4a3ddd1c9f54f","path":"GoogleSignIn/Sources/Public/GoogleSignIn/GIDSignInResult.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ec7a6dfef74a857a3a8017a987cba807","path":"GoogleSignIn/Sources/GIDSignInResult.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98341343eeb535f0165be9bc4f25baa341","path":"GoogleSignIn/Sources/GIDSignInResult_Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980038f8404d4cd520eddb99c473f69d37","path":"GoogleSignIn/Sources/GIDSignInStrings.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98135d60bfa4759b5cc49c122823479af7","path":"GoogleSignIn/Sources/GIDSignInStrings.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9884753dc15050f97a1f7d35e96b895b83","path":"GoogleSignIn/Sources/GIDTimedLoader/GIDTimedLoader.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989312d605a717bb92c24814c2001853e9","path":"GoogleSignIn/Sources/GIDTimedLoader/GIDTimedLoader.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98aa09c2cf7a87d49097736ac51f9dbcb0","path":"GoogleSignIn/Sources/Public/GoogleSignIn/GIDToken.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9839f142d07b8c730b79b66eb0d81d9916","path":"GoogleSignIn/Sources/GIDToken.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98907136b15e0cc2315f2f26d86a3668fe","path":"GoogleSignIn/Sources/GIDToken_Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983aca420a4e7d21fd3a6b7d973f7d5886","path":"GoogleSignIn/Sources/Public/GoogleSignIn/GoogleSignIn.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98314f1632b73eebcde0afe19f5ce2815e","path":"GoogleSignIn/Sources/NSBundle+GID3PAdditions.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980560f41a7f707a10482b3537ac93bc69","path":"GoogleSignIn/Sources/NSBundle+GID3PAdditions.m","sourceTree":"","type":"file"},{"children":[{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e9871d6dbad6196a0d535e30404c0337106","path":"GoogleSignIn/Sources/Strings/ar.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98ff9875af9671057c7feac89b6e0f24e1","path":"GoogleSignIn/Sources/Strings/ca.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e981ed3c091ed2ca6cf5861e86db4a4219d","path":"GoogleSignIn/Sources/Strings/cs.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e9827a669f6fe595fe8dd32079d62be5360","path":"GoogleSignIn/Sources/Strings/da.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e981236c3b753e4758f610f42cdb418c704","path":"GoogleSignIn/Sources/Strings/de.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e985afd0140125190dd3812c4ae8db77a65","path":"GoogleSignIn/Sources/Strings/el.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e985cbb02109057f6b76ed9127dc449bea9","path":"GoogleSignIn/Sources/Strings/en.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98e43e63d02f37c14144166391949c0d3e","path":"GoogleSignIn/Sources/Strings/en_GB.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98e75adbbb494d6a711cade385df87456f","path":"GoogleSignIn/Sources/Strings/es.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e981ee723fbca2297b6c2521b1ec7e71dbe","path":"GoogleSignIn/Sources/Strings/es_MX.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98abbc2bbf47ff8828424e56a5a865f083","path":"GoogleSignIn/Sources/Strings/fi.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98fac678e55ff26ef47e70a8b45af233ac","path":"GoogleSignIn/Sources/Strings/fr.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e9840a0e2c9088f1db15a645b3cf9e46453","path":"GoogleSignIn/Sources/Strings/fr_CA.lproj","sourceTree":"","type":"file"},{"fileType":"image.png","guid":"bfdfe7dc352907fc980b868725387e98554784dbdc41d2f3a5a9b3697c39e912","path":"GoogleSignIn/Sources/Resources/google.png","sourceTree":"","type":"file"},{"fileType":"image.png","guid":"bfdfe7dc352907fc980b868725387e9809e80502663158518a38212cd46d5f3c","path":"GoogleSignIn/Sources/Resources/google@2x.png","sourceTree":"","type":"file"},{"fileType":"image.png","guid":"bfdfe7dc352907fc980b868725387e98f14c239c96799c4674a4b3bd2652b526","path":"GoogleSignIn/Sources/Resources/google@3x.png","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98f3cdc73820e26cf40cc13681d7a75061","path":"GoogleSignIn/Sources/Strings/he.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98ade0aca1008c505f04cacdaa9fff3287","path":"GoogleSignIn/Sources/Strings/hi.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98968778dca678552db9c05cbd569cb8b4","path":"GoogleSignIn/Sources/Strings/hr.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98b4002ea9874206202efa9e2da8da1943","path":"GoogleSignIn/Sources/Strings/hu.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e9895a7303c9473e33d07e82257d86c0ee1","path":"GoogleSignIn/Sources/Strings/id.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e980412b030f5b7dd33774274676e293d4d","path":"GoogleSignIn/Sources/Strings/it.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e983ec58ce8b3b0764c0ef11c1266631639","path":"GoogleSignIn/Sources/Strings/ja.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e9843cd55c24f0af9abb9bc181d0bcda4de","path":"GoogleSignIn/Sources/Strings/ko.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98cae9812d105945a31fa562d166466d9c","path":"GoogleSignIn/Sources/Strings/ms.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e984cc3c6a58243aef16426c45fcb875458","path":"GoogleSignIn/Sources/Strings/nb.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98772da3e09e47265745ad18ce50ae053b","path":"GoogleSignIn/Sources/Strings/nl.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98b799b3ef43a0118e9541b362d2c1d6b9","path":"GoogleSignIn/Sources/Strings/pl.lproj","sourceTree":"","type":"file"},{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98c24361ab56355cb17d5cdd361d6908b9","path":"GoogleSignIn/Sources/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98b3d207267e656f0de7db41dda827374f","path":"GoogleSignIn/Sources/Strings/pt.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98bb029f4d3142860d9011f5d6f16d3557","path":"GoogleSignIn/Sources/Strings/pt_BR.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e982a78dacb329ba45ffb7a93d660551a67","path":"GoogleSignIn/Sources/Strings/pt_PT.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98d81107b8899fb7a3b4016a55919340ed","path":"GoogleSignIn/Sources/Strings/ro.lproj","sourceTree":"","type":"file"},{"fileType":"file","guid":"bfdfe7dc352907fc980b868725387e984d20bdb704e5dbbf4668b4ad7ed420df","path":"GoogleSignIn/Sources/Resources/Roboto-Bold.ttf","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98307c9583a8cff73e9d3414d0f8a350b5","path":"GoogleSignIn/Sources/Strings/ru.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e982e05ec53e2672fb1bec098d3dac70ac7","path":"GoogleSignIn/Sources/Strings/sk.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98e64f3bec976cc97f25dcd3dc162494c1","path":"GoogleSignIn/Sources/Strings/sv.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98a2032ca5760fa6862b5bf670df3e6ff9","path":"GoogleSignIn/Sources/Strings/th.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98818f8e7ad429e847a4868bf4a5e9e6a8","path":"GoogleSignIn/Sources/Strings/tr.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e981f7086b08042d34c5aba4a7d20c7fe78","path":"GoogleSignIn/Sources/Strings/uk.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e9825730bafa00d2dc72c66c070d65b9cc1","path":"GoogleSignIn/Sources/Strings/vi.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e985e29b3e43249814a78f255556c3c63dc","path":"GoogleSignIn/Sources/Strings/zh_CN.lproj","sourceTree":"","type":"file"},{"fileType":"folder","guid":"bfdfe7dc352907fc980b868725387e98a7a953bf22bb509218f0b84620020ef9","path":"GoogleSignIn/Sources/Strings/zh_TW.lproj","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e0ddfbe84ab50a10bef0cc5ef8f984ac","name":"Resources","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e988213f8069943a3ed2b8a030f6e996d8a","path":"GoogleSignIn.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9811eb2879931185646a719637bc3279c3","path":"GoogleSignIn-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9891bc21891d35c1b9bee6854e9efb71e5","path":"GoogleSignIn-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dff055f2dde26483920acff1e346a268","path":"GoogleSignIn-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e980506e30044f99965ee32dcad10ea17c6","path":"GoogleSignIn.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e989daf2e88caa8494e1832d8bce0659e6c","path":"GoogleSignIn.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e984c21b9a372f3e7eb5af9897cb45b348d","path":"ResourceBundle-GoogleSignIn-GoogleSignIn-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98ea6e856d6b6670d13214aa6359ff13c7","name":"Support Files","path":"../Target Support Files/GoogleSignIn","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986c0b52817b69b0fcb77989817de92f86","name":"GoogleSignIn","path":"GoogleSignIn","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c24bf59f76771e18e3a38576d9a8fc62","path":"GoogleUtilities/Environment/Public/GoogleUtilities/GULAppEnvironmentUtil.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98cf86a8499fd067b6f8fe6432ec793296","path":"GoogleUtilities/Environment/GULAppEnvironmentUtil.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981a4e04fa8da241a99a7d6b498071b378","path":"GoogleUtilities/Environment/Public/GoogleUtilities/GULKeychainStorage.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983273dce697e09c7f420558eb90a69b49","path":"GoogleUtilities/Environment/SecureStorage/GULKeychainStorage.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9879acb9a523bfe446a07847d9c409dcb3","path":"GoogleUtilities/Environment/Public/GoogleUtilities/GULKeychainUtils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983c3206dc0c2013f719271497c226705a","path":"GoogleUtilities/Environment/SecureStorage/GULKeychainUtils.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983347e86b68119defb556cc3500cb02d9","path":"GoogleUtilities/Environment/Public/GoogleUtilities/GULNetworkInfo.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b60b139473a2131c208d56684eb34e76","path":"GoogleUtilities/Environment/NetworkInfo/GULNetworkInfo.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985cf549f1e0e64e30c2de82ce95d3c594","path":"third_party/IsAppEncrypted/Public/IsAppEncrypted.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98fe2238c862931eb5e52c6d53b65e4669","path":"third_party/IsAppEncrypted/IsAppEncrypted.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9808b0ce1a09ad17ab8b60b63fef301156","name":"Environment","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98df3fe6c7a68156bc4e4bc7de9a97c3d0","path":"GoogleUtilities/Logger/Public/GoogleUtilities/GULLogger.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984d8eec2f813cc7769aef24ffd662dc57","path":"GoogleUtilities/Logger/GULLogger.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98378741d36efe92ba89a293484ab23ecc","path":"GoogleUtilities/Logger/Public/GoogleUtilities/GULLoggerLevel.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98c5a3db1b058f39c5346a0e650d30f9bf","name":"Logger","path":"","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98e14a4b4a0af680d654d94db07c66eecd","path":"GoogleUtilities/Privacy/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e985f592783168a4b03019c05d6a0dc4dde","name":"Resources","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98efe7a381b302ea8dbb2da47146cf8a63","name":"Privacy","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98c33550a0102905a1c5bd0d46b715d8c1","path":"GoogleUtilities.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98648b322b92bb11beacbc7f1c1f83db48","path":"GoogleUtilities-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e986359af80d157721d166e5cc5f135543d","path":"GoogleUtilities-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986420df3c569b657cd5e64f113971f08e","path":"GoogleUtilities-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98750ef893532f252d748afdc3775f3731","path":"GoogleUtilities.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98b5d95bb80b2175c0fd617a09c487b6be","path":"GoogleUtilities.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98d0cdb291995432d52a8847632a6b5715","path":"ResourceBundle-GoogleUtilities_Privacy-GoogleUtilities-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9893a714a8e2fa7a85d6746d4dab5e99da","name":"Support Files","path":"../Target Support Files/GoogleUtilities","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989f398ffbdcaa63ecd78172be4bc1b41d","path":"GoogleUtilities/UserDefaults/Public/GoogleUtilities/GULUserDefaults.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b20f28d557c7b8df32c04632da8c51d4","path":"GoogleUtilities/UserDefaults/GULUserDefaults.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9869c0fa258995faaae05e836f90af118f","name":"UserDefaults","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984463180121f5c252cf500389c6405c27","name":"GoogleUtilities","path":"GoogleUtilities","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f9d74e515bf64a26c8251d47a81c0db3","path":"GTMAppAuth/Sources/AuthSession.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98784334d56e740a31eddf09b02cbc45d7","path":"GTMAppAuth/Sources/AuthSessionDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e984a3b36bc94e5a12df638c10fedc50e7f","path":"GTMAppAuth/Sources/AuthSessionStore.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98d7311da92c29294aab1273686aa5f9fc","path":"GTMAppAuth/Sources/KeychainStore/GTMOAuth2Compatibility.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98e2cc28e9cb80409b0cba8a566f1a1733","path":"GTMAppAuth/Sources/KeychainStore/KeychainAttribute.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e982b1d9ce064ec4ec77038d35498f5616c","path":"GTMAppAuth/Sources/KeychainStore/KeychainHelper.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98dddeee2808554b9861a4aa0231022eba","path":"GTMAppAuth/Sources/KeychainStore/KeychainStore.swift","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98b7a0cb4cabaf7adf79aa69e9dac4e40a","path":"GTMAppAuth/Sources/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98cd91d24fe85485694b352053327d124a","name":"Resources","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98b58abac3746564792a0475a456652710","path":"GTMAppAuth.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985b5a2d3ff2cc54c52427364d7f0c2e91","path":"GTMAppAuth-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98813ff16a909a909336296ae2fa830a91","path":"GTMAppAuth-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9821ab825f740da32d1e70191914f94ebd","path":"GTMAppAuth-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98cba956d57cfe44411172ba385027fea9","path":"GTMAppAuth.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e986282cf88e62b023588e08b945665fb72","path":"GTMAppAuth.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98568f9f2b757367d27b01ca1ff8db4916","path":"ResourceBundle-GTMAppAuth_Privacy-GTMAppAuth-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e987af9da4932b5152085975ebeab33471a","name":"Support Files","path":"../Target Support Files/GTMAppAuth","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f760076bdd9cadeed63f742df3eaf2f5","name":"GTMAppAuth","path":"GTMAppAuth","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98056a748c83a937584becc90d0bbeec3b","path":"Sources/Core/Public/GTMSessionFetcher/GTMSessionFetcher.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9897de95ef442bbfcd93e267a165034482","path":"Sources/Core/GTMSessionFetcher.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986b393831da762f1acb5e50213cb2a21d","path":"Sources/Core/Public/GTMSessionFetcher/GTMSessionFetcherLogging.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982c4acd7793856c013ec759357abd2c2e","path":"Sources/Core/GTMSessionFetcherLogging.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98880bce3dc9c1eb164f8e6401484efd9e","path":"Sources/Core/Public/GTMSessionFetcher/GTMSessionFetcherService.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b52164c2053775789f6f94964885cb97","path":"Sources/Core/GTMSessionFetcherService.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988df9169ddd9ef777e4df671caec18896","path":"Sources/Core/GTMSessionFetcherService+Internal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e80dbdb6100ad7a0a11f880494f0022a","path":"Sources/Core/Public/GTMSessionFetcher/GTMSessionUploadFetcher.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a3d360c9e9d2466edd678446246c0498","path":"Sources/Core/GTMSessionUploadFetcher.m","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98f7a6c55744de3f1a8389dfcb0a7917d2","path":"Sources/Core/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98585faf27cb28d781b350a9b632e0c9d2","name":"Resources","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985f4df5ae81a5310ba79391e962709c87","name":"Core","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988f433310b528a5a78bbcc3b8b1e9cd6c","path":"Sources/Full/Public/GTMSessionFetcher/GTMGatherInputStream.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9868063b3af35269348f18b3336f9045fd","path":"Sources/Full/GTMGatherInputStream.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987d12e52eb21351bac7c93385e66c2a60","path":"Sources/Full/Public/GTMSessionFetcher/GTMMIMEDocument.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98aa76cc50cc6fdb72f3b83ae5fb95d1b0","path":"Sources/Full/GTMMIMEDocument.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98888e59e6008e75ff869b4edb895aaf4d","path":"Sources/Full/Public/GTMSessionFetcher/GTMReadMonitorInputStream.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9811e6ceea98471321fe43ef777259d120","path":"Sources/Full/GTMReadMonitorInputStream.m","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98e5f5a6ca139e971b373b28dee0bc4868","path":"Sources/Full/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9886ee2d614049b5edd36881b85f5919c3","name":"Resources","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a757fb6665f9b90ac5644d1aa947d9a9","name":"Full","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98a3b15588fcb597fc52cea6456215855d","path":"GTMSessionFetcher.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d813e8630da53ea0c6444dc302a879c5","path":"GTMSessionFetcher-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e987766ebf683db8de4ee177887caa08510","path":"GTMSessionFetcher-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9819b153d1a20a1ce9cb835f6ff9e0c107","path":"GTMSessionFetcher-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98490fde87ae055958de1d1f8e2cd97696","path":"GTMSessionFetcher.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e984ae7daf5f58d55b28e60985ea305a6ba","path":"GTMSessionFetcher.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98506167ed03fe519946decbc1ffb06005","path":"ResourceBundle-GTMSessionFetcher_Core_Privacy-GTMSessionFetcher-Info.plist","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98f09e9d01820f4bfe10d6baa394008207","path":"ResourceBundle-GTMSessionFetcher_Full_Privacy-GTMSessionFetcher-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e987866b31446cbdc8332280a86fc8ea31f","name":"Support Files","path":"../Target Support Files/GTMSessionFetcher","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989e93834de2deabe37439a44c0e98466f","name":"GTMSessionFetcher","path":"GTMSessionFetcher","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e982a43fd98fe05e1be257bc77601c267c6","path":"Sources/HLSCachingReverseProxyServer/HLSCachingReverseProxyServer.swift","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98f26fbfdcd8bc85b5957df07769f2ef78","path":"HLSCachingReverseProxyServer.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989c376fc751db38f83b4045be0fe6aae3","path":"HLSCachingReverseProxyServer-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e982357654a10a80862ee7d6d0e720b0fc5","path":"HLSCachingReverseProxyServer-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988ac181b0fb895bd885cd498f9b758b13","path":"HLSCachingReverseProxyServer-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98931b725bfcf17b6d76f25262d0153c37","path":"HLSCachingReverseProxyServer-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e980ac13cddb51943ff14ca886a6d1a6d97","path":"HLSCachingReverseProxyServer.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98ac8ac333e47f2623204786b3e6e8d88d","path":"HLSCachingReverseProxyServer.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98c0fba24469e9d0b18c062b6d82a242d6","name":"Support Files","path":"../Target Support Files/HLSCachingReverseProxyServer","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9818fe338bc573f4ac9ab0ffc299f845ce","name":"HLSCachingReverseProxyServer","path":"HLSCachingReverseProxyServer","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98f9d095ed2518e9fd650015fd99ce3bc6","path":"src/demux/anim_decode.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e980ff7eb6c97680074e3a0f289137eb577","path":"src/demux/demux.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98074860e9c34c8d4b020dd8be16534ac7","path":"src/webp/demux.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98bdfa3056842f8be878c5ffb704b28168","name":"demux","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98fb4826540ec3c76343de5a2357ebf6b2","path":"src/mux/anim_encode.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e03e6b35a5c7e4d109478218d9a97c88","path":"src/mux/animi.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9846d955952c62567948e7b6f4b579d33b","path":"src/webp/mux.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98e0965a681efa8bdfa06622d349882597","path":"src/mux/muxedit.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984d5c40e421b8cf6053e5798f336608ce","path":"src/mux/muxi.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98cb394f8a60db1fea92b1973dbc85795e","path":"src/mux/muxinternal.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e981df2d160c1025242618fcf08518c0f0e","path":"src/mux/muxread.c","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9842e0c6757d41418792110ab1cfadaaf3","name":"mux","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e981bbccebcf5fb5e01b6374c93f7273d6d","path":"sharpyuv/sharpyuv.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9881fb6745ee34ba06492963eb30c31709","path":"sharpyuv/sharpyuv.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98491e9a19db754102453614dec1a7a55d","path":"sharpyuv/sharpyuv_cpu.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984d581004ca70e6e3361405d2fe8e7c58","path":"sharpyuv/sharpyuv_cpu.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e982b8daf98119f248a7333a71d931e21cf","path":"sharpyuv/sharpyuv_csp.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98991d56f079d3e63882cc91b6ce748ae1","path":"sharpyuv/sharpyuv_csp.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98068c4f918460b8ea1f45c8db5652eb43","path":"sharpyuv/sharpyuv_dsp.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981a83c5d040b137b6879ff8c91bb17de6","path":"sharpyuv/sharpyuv_dsp.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98be34e9ad0011bb556cea9adb59259b06","path":"sharpyuv/sharpyuv_gamma.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c2af9652376141937f0894fd268c4478","path":"sharpyuv/sharpyuv_gamma.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9841fd1d7f702f218a8b2c0747fcf9fb90","path":"sharpyuv/sharpyuv_neon.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98e32e9c04c4f4c8ffc8830d4877332837","path":"sharpyuv/sharpyuv_sse2.c","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e4991fc4c8f87fed71d35f55c5e50ac3","name":"sharpyuv","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98883f4eb55420aa45dfca88594c019fbf","path":"libwebp.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e8bd6c3d937bb816b0decab4e83ef667","path":"libwebp-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98d91075489696b82b92581ae6670f3fe5","path":"libwebp-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ded3dcba3e80fd5b1330bd522ae38659","path":"libwebp-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98253ac3c5afa874c40c5e930ff0c88cac","path":"libwebp-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e986b6dfa003852f03cd58cfbdc0205be08","path":"libwebp.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98db9922fae833d0a300b2c6f79c47acf9","path":"libwebp.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98c3e26ff850a99282e1820eb85e6f6708","name":"Support Files","path":"../Target Support Files/libwebp","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98413af65f886d968e98e0a0d1ceba7cfc","path":"src/dec/alpha_dec.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9881bc7dc779662d03da2191876992b173","path":"src/enc/alpha_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98f56872a02b2b7f63cbf6424e60942040","path":"src/dsp/alpha_processing.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98bc91bd32c93401161a6dc6a7e1355a28","path":"src/dsp/alpha_processing_mips_dsp_r2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98d2b2cfbc898db0c44e5179c0f3e466ed","path":"src/dsp/alpha_processing_neon.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e988bf1cfaccc98b1e8597dfab8ea81ac08","path":"src/dsp/alpha_processing_sse2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98f97f70cf9620bc49c63b149d4025a96c","path":"src/dsp/alpha_processing_sse41.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9865cf11fbdeaecd798371e8909c8e27f6","path":"src/dec/alphai_dec.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9829fe7631b319a5b2da8d3ed3a0c7de13","path":"src/enc/analysis_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e988cfe2e1c284e5af13d8553e85f94bb33","path":"src/enc/backward_references_cost_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98b3092406ded0fbb37943a636ea2d6bb1","path":"src/enc/backward_references_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983ee03f9491d95ea7d465c9df01981328","path":"src/enc/backward_references_enc.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9814dff83ccd3cec1ab95d9996c8c0ab05","path":"src/utils/bit_reader_inl_utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e989d5a5f9f73b9423c9b67247fac735922","path":"src/utils/bit_reader_utils.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98464984769b95cb53ad84052d350fe451","path":"src/utils/bit_reader_utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9800b63e865b3ce340a4aa69698f2d7d6e","path":"src/utils/bit_writer_utils.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9893e8163baedd9653f6af1f6cf4b4e3a6","path":"src/utils/bit_writer_utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98e8c9aec98bda26d4a6d7f751efa43978","path":"src/dec/buffer_dec.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98f1c3ff465ace134bb3a19867f7e9e15c","path":"src/utils/color_cache_utils.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98da3470e40cffd83a84bfec6a9835c361","path":"src/utils/color_cache_utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f83f8208c523c2b9386e8ddaf465b768","path":"src/dec/common_dec.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984041fca33ee0bdbca1562cac75bb2b95","path":"src/dsp/common_sse2.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ce8bffe7296b050b0b3419bbc327d5b7","path":"src/dsp/common_sse41.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e984e06f8eb4b536aaaa7cd5e8c348cfb81","path":"src/enc/config_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98b8cc1feb56f5aac4acbb29a06228e034","path":"src/dsp/cost.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98280a003d8435b23a411e3c98930aa172","path":"src/enc/cost_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986b79d77f12db3435cc59f24bb59f4734","path":"src/enc/cost_enc.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98196fefbd55b3312b91f3a900f8264a62","path":"src/dsp/cost_mips32.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98e220a17c40ba4659f1aca4c252bb45d1","path":"src/dsp/cost_mips_dsp_r2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9867aee6f760467df779d26e6b53b6faa4","path":"src/dsp/cost_neon.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9841678957c5019cda71943443a7cf512d","path":"src/dsp/cost_sse2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9824e9b679760c1dd26551a440662e70de","path":"src/dsp/cpu.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983b0bee1af5a6f001e274b375c752c95e","path":"src/dsp/cpu.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9820393a9341504603f7b6dec2e9231c8e","path":"src/dsp/dec.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9849e60b728e374487162c91b8fd28b321","path":"src/dsp/dec_clip_tables.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e989640eff4de6c67d9cbfecaaaa8f624a5","path":"src/dsp/dec_mips32.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e983da3740a452ea7a4a9165eba86b57160","path":"src/dsp/dec_mips_dsp_r2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e980d0eb4aa61d5862591508358da9386bf","path":"src/dsp/dec_msa.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98cb5ae929444e621145770a62b22faadb","path":"src/dsp/dec_neon.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9884d7eae652c16342d53f29d6b5740db5","path":"src/dsp/dec_sse2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98f892d00760596edf7fa24dbc40a71065","path":"src/dsp/dec_sse41.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984582ef2068264f65cbbfa0f857b9669c","path":"src/webp/decode.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a2386f92d3708576ae2b7056884f3c9f","path":"src/dsp/dsp.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98e6ce249b0cf3775be2115f382c8a639f","path":"src/dsp/enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9870a83d94470155c8af474b9d130244e3","path":"src/dsp/enc_mips32.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9823e9e94d3aa2d35b397e2f8e1a94f8fa","path":"src/dsp/enc_mips_dsp_r2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98f58b993750ce0c8cb270aa051ece403d","path":"src/dsp/enc_msa.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9893a9a84fa64860e5523091f3f9f91245","path":"src/dsp/enc_neon.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98ae8c0f393470f832d3d38dd90eb6452b","path":"src/dsp/enc_sse2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9880ecb97b0eead23f426bbdc2a23efa64","path":"src/dsp/enc_sse41.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9899a33689970f57834029d65fe8ada172","path":"src/webp/encode.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cb41875c3655fb5c0fd6caec38e9ab0b","path":"src/utils/endian_inl_utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98ff473aa98ef3ab27d8093c299c229dab","path":"src/enc/filter_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e986b9a44bcc852ab072c07dd60e238a097","path":"src/dsp/filters.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9882dada3ea85db48c821b4e2d249a6d74","path":"src/dsp/filters_mips_dsp_r2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9885f802dddc8787643e7ae2c11265ab28","path":"src/dsp/filters_msa.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98371545fbca2270760e5e89c43ffaee64","path":"src/dsp/filters_neon.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98723656ef4ec4fe52127bba66a0279975","path":"src/dsp/filters_sse2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98e5273bcf1deda800df2c73ade45d5fd4","path":"src/utils/filters_utils.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9842105ec29b44a57403b5a4235fbdf51d","path":"src/utils/filters_utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9881d819c3dbc85d5a7d441aee534da5bf","path":"src/webp/format_constants.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9808f402940c28a8ff3dffa9186371ee8c","path":"src/dec/frame_dec.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9883c242075f79fdf59b0a309c7fb7a5d2","path":"src/enc/frame_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9839d0fe456ccb86aec2b1a6b4567d58ab","path":"src/enc/histogram_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982bcb00e8fbb7144fbc86734ced979e9f","path":"src/enc/histogram_enc.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e982689175c60b87ab85ea84f7657101f7b","path":"src/utils/huffman_encode_utils.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987253cc59db21606a60b57c04217e9ad9","path":"src/utils/huffman_encode_utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98ba2faa9d32339fd4f0b4862c0fc98236","path":"src/utils/huffman_utils.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983efe6054abdb604dab5200068c2a8511","path":"src/utils/huffman_utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98477a2dfcba81e7672c2e779268c8189f","path":"src/dec/idec_dec.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98e2a1623f4c61cb21c404403ccd5a7db5","path":"src/dec/io_dec.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e983d05a53cf1d4f38dda83b95bdcc8b1f3","path":"src/enc/iterator_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98e0d0c266974d94d76d7197609070d0e6","path":"src/dsp/lossless.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9887f3947d1d19a1ef48f5e28a9874136d","path":"src/dsp/lossless.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dd0768960d3d82b6ffb316dba9347ec2","path":"src/dsp/lossless_common.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98616c8bd18b7648773f73f5043283cc7e","path":"src/dsp/lossless_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e985e35be0829bbbbf9815f6c33a1b8b966","path":"src/dsp/lossless_enc_mips32.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98132f42fb828759f628206b1743025498","path":"src/dsp/lossless_enc_mips_dsp_r2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9894ad8e60d67d825476d5d3e4d7154dbd","path":"src/dsp/lossless_enc_msa.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98a977e1965bf1f7a9a0b0beaa53ff4476","path":"src/dsp/lossless_enc_neon.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e980558a60266a2675168719556228ac10a","path":"src/dsp/lossless_enc_sse2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e982b70b5d011e87fc7b1a5c438fd523e51","path":"src/dsp/lossless_enc_sse41.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e988c82349c5b95cda20428270ea174977c","path":"src/dsp/lossless_mips_dsp_r2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e989a87fcd72ec9577ed540a32f1e0e71e8","path":"src/dsp/lossless_msa.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e984ad03edcd4372120bb143cf052f3bd4d","path":"src/dsp/lossless_neon.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98d758bd20458a4ef75bacce0aafe57baf","path":"src/dsp/lossless_sse2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9889697684825f1bed1fdd4d724ffd4025","path":"src/dsp/lossless_sse41.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989dd7d0f28611bb8310da50d54e473b31","path":"src/dsp/mips_macro.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982be7e1e17f41129c72732238f7c11404","path":"src/dsp/msa_macro.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9813afb72816e9e09cb6e2ee00c59af5a5","path":"src/webp/mux_types.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e989405f9da589faf30f827e60bafcf1f04","path":"src/enc/near_lossless_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982577283c288e1a99b9ad765b90f0f6cc","path":"src/dsp/neon.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9894ee1bd6f440db8dd4b0cee71bc0b85e","path":"src/utils/palette.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9847a632474356516fb8f82472fac2e263","path":"src/utils/palette.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9804f001b47212bd647446ba0edfd68829","path":"src/enc/picture_csp_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e983edb0491656300b4be1e85afd9cf47bf","path":"src/enc/picture_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e985807d4771a26e16705261aadc3253533","path":"src/enc/picture_psnr_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98cc8faf766c73b8e7b03ca5cb3faf3b67","path":"src/enc/picture_rescale_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9850edff4515695764f9821430c4088c7e","path":"src/enc/picture_tools_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98265a7e934e9d7d708d961e3911597539","path":"src/enc/predictor_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e27376b5fbb508e26df8eab69e74d94d","path":"src/dsp/quant.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e982f0fc4522ba8257219774d316111b44f","path":"src/dec/quant_dec.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9891094db7b17ff7a3044b3e76a70c1c3e","path":"src/enc/quant_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9849f49f77786b82890a380a725c69ed9b","path":"src/utils/quant_levels_dec_utils.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c97c402030c0985b1b1e07c27ea37508","path":"src/utils/quant_levels_dec_utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98a04d2a404ca3e29876f06ab8ec55d48b","path":"src/utils/quant_levels_utils.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980f5edc16276997dc1775fb4903366803","path":"src/utils/quant_levels_utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98b22d74d3791adf6d06afd81c495a382f","path":"src/utils/random_utils.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989254436d224c1733c7a240fc187fd896","path":"src/utils/random_utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98db58360a5aee0b946871165a4ace7986","path":"src/dsp/rescaler.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98f9860d15e265ed19c19ef50aa97b60a7","path":"src/dsp/rescaler_mips32.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e981616bc4e86a9814671a70dba8f28f26b","path":"src/dsp/rescaler_mips_dsp_r2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98bb8775f76f938da551e0a745fff0589b","path":"src/dsp/rescaler_msa.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98b6bd7b4206ecf35a1797a866ebe37672","path":"src/dsp/rescaler_neon.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98bef344c72340d81a051e285d2432ff5e","path":"src/dsp/rescaler_sse2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e981f6e0410a3fdd5ed7919a194493f9c6e","path":"src/utils/rescaler_utils.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ed6e47506552efda72e269758b459c92","path":"src/utils/rescaler_utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e983918b704eb02670448d19720db3d1d25","path":"src/dsp/ssim.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98fdccd1d61d19fe3e23e60f1a93150425","path":"src/dsp/ssim_sse2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98b8c0d1ed01d8d0b6d91030bd51838c99","path":"src/enc/syntax_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9862ad715a3834a530164234850df4cfd6","path":"src/utils/thread_utils.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988116125a0b12ac8f1bd0154031c80b54","path":"src/utils/thread_utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98c3f66f0164bf3eaa40d7070019f1f571","path":"src/enc/token_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98f0cc25025362402a3ac43bae6720c753","path":"src/dec/tree_dec.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e980f69c6e19e39ba2bf741d9c7864e2fce","path":"src/enc/tree_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b888ead5548629d7570b77155c685ae3","path":"src/webp/types.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9873c68330c1d4f6aab7dd6a952a2f0b3c","path":"src/dsp/upsampling.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9830578d78230694628da0003e9a807a09","path":"src/dsp/upsampling_mips_dsp_r2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98bbef9a9cb1cdb4f68f35898953b5bf28","path":"src/dsp/upsampling_msa.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e987a098a3acaa5c29d24275f6f505c80b2","path":"src/dsp/upsampling_neon.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9877000dfd8c71be128a1b37c4772ea6aa","path":"src/dsp/upsampling_sse2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98b9b3c58283699c1ebd5c84d29c60969f","path":"src/dsp/upsampling_sse41.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9823b30d7bbb1f85f1bf945c58b19eaacf","path":"src/utils/utils.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9871e77b282b62934731e8efd0d11972fc","path":"src/utils/utils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9853cf939bb7c7356f4aa5c7cc2bc8dee6","path":"src/dec/vp8_dec.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988584302ca4c8de16f694280e00573c8b","path":"src/dec/vp8_dec.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9809560a722b32f8435cfd59afd6f9cf0b","path":"src/dec/vp8i_dec.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fb95ffe2b8e04ae2863fcaf2b14c2ee1","path":"src/enc/vp8i_enc.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e980c75a45acd48f24075308a7fbc46eea8","path":"src/dec/vp8l_dec.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e984bd8fd6414e61cf9dc36de8f06190d4a","path":"src/enc/vp8l_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98621873aacfb101a5d7c35a93c3d5034f","path":"src/dec/vp8li_dec.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c401777d7416c287f139b135ff86717b","path":"src/enc/vp8li_enc.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9890c23371d03225b91ee3eab8595786ed","path":"src/dec/webp_dec.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9852d8b9b2ae7d828a331f4e6a5509eb41","path":"src/enc/webp_enc.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9821e1aceaf5e0cc90cdb235c4b08804c9","path":"src/dec/webpi_dec.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98b36a24c5a0e2f7bf73a146570d409882","path":"src/dsp/yuv.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e9facebb7ad539fc4a3b856c18d86d14","path":"src/dsp/yuv.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9892d7b2a1b3e2617037511d9f56a8d15c","path":"src/dsp/yuv_mips32.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e984d6e3616d916a345a7e218fe96d17b50","path":"src/dsp/yuv_mips_dsp_r2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9807b79cd7bb84a0dee49e75017986e138","path":"src/dsp/yuv_neon.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e989666dd37fe65ad9eb7702f7336257670","path":"src/dsp/yuv_sse2.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e988d8035949ecb69915e82a5daf2daef8e","path":"src/dsp/yuv_sse41.c","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9896a9e5b0f932a4748906056798f07326","name":"webp","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d2412390e386da1b47fe3651da77b581","name":"libwebp","path":"libwebp","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98eaca15f80e33f27b2ac6d6be886790e2","path":"Source/PINDiskCache.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e983616abbc6e5e6c54b84cfd62225f91dd","name":"Arc-exception-safe","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98205bfcadf79815db4a2440047a8772e1","path":"Source/PINCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984e41672948b010f54b59124958c71d64","path":"Source/PINCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981a70eed33baab9df44b4e6f316f7726c","path":"Source/PINCacheMacros.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9876b1773b84d4fbd9aa7da5bf82eacc45","path":"Source/PINCacheObjectSubscripting.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fd043e297fc1041580768c2fed4f397b","path":"Source/PINCaching.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b1df230eff67bb6277d4529e0bb17f8f","path":"Source/PINDiskCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98265a6a12be27c2f144820a3b175aecfc","path":"Source/PINMemoryCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9810ce1366ec48f397c58cd3085d8bdc20","path":"Source/PINMemoryCache.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98893ff4f1b40e581dd3bd99e715a713ef","name":"Core","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98777ef8dcdf2cbae87302dd3356219762","path":"Source/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98c6167b5c7d5142a07e5b4c0347ac4098","name":"Resources","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98708a761b32e87eed08a02fb5f94882dc","path":"PINCache.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988a159ea2a3f809a4b0d42fe5251b5cee","path":"PINCache-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e989bbe77cc1cd2127bbf6f0416326cd7e8","path":"PINCache-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98297e54079b27f131bf35588657f41922","path":"PINCache-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b03a4b741b8e8b85b8fff7319adbbd9e","path":"PINCache-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e987ac03f99384c64c0e85fcd4ee8c85ddf","path":"PINCache.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9899422390852183ad01586a712fb65be1","path":"PINCache.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98887a82e29ef1b37fdaa23ab365fb297a","path":"ResourceBundle-PINCache-PINCache-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9856b920132b6d585af7cb323e0ee20ebd","name":"Support Files","path":"../Target Support Files/PINCache","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989439c5ee9713bb668b25dc30e088d1eb","name":"PINCache","path":"PINCache","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a9cf56f8a09c7db8f0cc2ad67590f922","path":"Source/PINOperation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b4611dcee446c73bc8bb51f1e414d71f","path":"Source/PINOperationGroup.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e986556e302ca1228c95c1f2cbb5bafb5ba","path":"Source/PINOperationGroup.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986e29a4ad63491f5f014d2c1bce0b6b04","path":"Source/PINOperationMacros.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a483f96c826466bda0220e00c9e49f8b","path":"Source/PINOperationQueue.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9804020ca9e5b49b387c98c210d409afc3","path":"Source/PINOperationQueue.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98611f1229ec62f09304342746c4756ce2","path":"Source/PINOperationTypes.h","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e988dfde507a473af4e25078324b7214a1b","path":"Source/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9898b769728e9dcfbe66865bc689ff3092","name":"Resources","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e982eef600d8550bcb438030ebcbd8cb16a","path":"PINOperation.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989256ac257b3defb931338931bc891397","path":"PINOperation-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98f1b277bc48abe25cfac1b689220f4e6d","path":"PINOperation-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98588ceeb0301703f0cefa84f930750950","path":"PINOperation-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988fbf13ccfcb7d56df15ef0357cfed7e6","path":"PINOperation-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98e00148ad347041302e1661066e859792","path":"PINOperation.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98ed6be5034c8c67cf428ef9e49687da42","path":"PINOperation.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9859ad7cf531795bd65bc1fc8571908104","path":"ResourceBundle-PINOperation-PINOperation-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98d5ff5b47b0cdd3c88643cced8ea65c12","name":"Support Files","path":"../Target Support Files/PINOperation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987772ee57bf1911a3b2fb4e80a7bb348c","name":"PINOperation","path":"PINOperation","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981a7923c05664e2cc79280a1ffe88467d","path":"Sources/FBLPromises/include/FBLPromise.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9897acdc4aa632ae329e71652119e8399b","path":"Sources/FBLPromises/FBLPromise.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cac331d9224270c59a2dfb49a034da8e","path":"Sources/FBLPromises/include/FBLPromise+All.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9878e8411fbce9842e52d2cb305f21a216","path":"Sources/FBLPromises/FBLPromise+All.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988f90b5d875a839cf4fdb6bd16eb4ad73","path":"Sources/FBLPromises/include/FBLPromise+Always.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983939679625fa9f48c705d9764d93eb3e","path":"Sources/FBLPromises/FBLPromise+Always.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983e4bd387bc0fca62477affa22d255dbb","path":"Sources/FBLPromises/include/FBLPromise+Any.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9864dd632ace7a9d7f8f237fd71ee78bfb","path":"Sources/FBLPromises/FBLPromise+Any.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cc3673146c1e1f1e5d3c578fde6132cd","path":"Sources/FBLPromises/include/FBLPromise+Async.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980741fd7d72abb805fd8f8857b4535f09","path":"Sources/FBLPromises/FBLPromise+Async.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9852bbc4e94702adbd05de9c9c6ac2e217","path":"Sources/FBLPromises/include/FBLPromise+Await.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d8c720c3f4de110f5f7365e9a9737bd7","path":"Sources/FBLPromises/FBLPromise+Await.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d524e96958e9e5cc70373e264b4708e2","path":"Sources/FBLPromises/include/FBLPromise+Catch.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98830024ff518f1a6ecfec2a44ecb9ad4b","path":"Sources/FBLPromises/FBLPromise+Catch.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b77d00eca16e940d62042fb60d61f6db","path":"Sources/FBLPromises/include/FBLPromise+Delay.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a7bf665286b622100f38fb7fa7e7f9f5","path":"Sources/FBLPromises/FBLPromise+Delay.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9893be35a7b592168010af7f668a15f15b","path":"Sources/FBLPromises/include/FBLPromise+Do.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f25ac2a567c5df82de375709e5139ab4","path":"Sources/FBLPromises/FBLPromise+Do.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982119b976ff78ad17a98adf9f33fc8279","path":"Sources/FBLPromises/include/FBLPromise+Race.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9893f6489a19f9cc84025a3f49d1d5d729","path":"Sources/FBLPromises/FBLPromise+Race.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98de1d52ea5152b823ce81ef0f094a9ffa","path":"Sources/FBLPromises/include/FBLPromise+Recover.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9847e19273152301950723247a2a4382ed","path":"Sources/FBLPromises/FBLPromise+Recover.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c64f64f38746b5e0e8ce6983f03f2a6d","path":"Sources/FBLPromises/include/FBLPromise+Reduce.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987c2dc010d3d2c23c3c264b3bb932a65a","path":"Sources/FBLPromises/FBLPromise+Reduce.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98af972f771fe2f1d79b0059bfad4c5d3c","path":"Sources/FBLPromises/include/FBLPromise+Retry.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e712fc79b62dbb819363a6f3e87c43f2","path":"Sources/FBLPromises/FBLPromise+Retry.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f495e5f1a8526261f3f28a36198c3588","path":"Sources/FBLPromises/include/FBLPromise+Testing.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98de7fd23b79174ed2addee1baac22370e","path":"Sources/FBLPromises/FBLPromise+Testing.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9871e91d4e0f77a6731b8c6bcdb556b268","path":"Sources/FBLPromises/include/FBLPromise+Then.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981d5cc9819a47f96a804dbb7062e28838","path":"Sources/FBLPromises/FBLPromise+Then.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bfc5a8a9e9d53833dc70b44be018254b","path":"Sources/FBLPromises/include/FBLPromise+Timeout.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98702ea5b4b3c919296db5d095839f4444","path":"Sources/FBLPromises/FBLPromise+Timeout.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98765c447070ee4bdd08630c5c16da1d3e","path":"Sources/FBLPromises/include/FBLPromise+Validate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a4d8ab66a8de7806f4ca4ea21c7b3e85","path":"Sources/FBLPromises/FBLPromise+Validate.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98036b1a249a2fa87a196baedac94ffe31","path":"Sources/FBLPromises/include/FBLPromise+Wrap.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b8a670acd53836618c965eee179330b2","path":"Sources/FBLPromises/FBLPromise+Wrap.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982809f1961e2911f6f4bbcaa5b824782a","path":"Sources/FBLPromises/include/FBLPromiseError.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9858605bc0bf28ac2912d2cf82c985aa45","path":"Sources/FBLPromises/FBLPromiseError.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c4103ca1e881d2df4c5575c7f958c79d","path":"Sources/FBLPromises/include/FBLPromisePrivate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98363ded10d8cb421ea233a03ed3c2f79b","path":"Sources/FBLPromises/include/FBLPromises.h","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e983467e24a2ddecd97ae32967fc5df4ccd","path":"Sources/FBLPromises/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98cdffbe38c3d3440841f857dfdf6bce1e","name":"Resources","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98d1815bdfcd8dd0248505de61ec3895cd","path":"PromisesObjC.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9845504253b0f0b1f298f5fa6b12b77ebc","path":"PromisesObjC-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9804eafe1d3b8d2efe7c1bce98c21f12fe","path":"PromisesObjC-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b575961df9f6f586d35cfbe9459ca875","path":"PromisesObjC-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f0a95ac974bb6b0ba5b06a77b7025160","path":"PromisesObjC.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e989c4d4a7aeac80a75f2577cb4dc3454e1","path":"PromisesObjC.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e983aa9e3f112ba7543784ae8caf3f4369d","path":"ResourceBundle-FBLPromises_Privacy-PromisesObjC-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9822d649efa4edb4c311ffd8ee151e583b","name":"Support Files","path":"../Target Support Files/PromisesObjC","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9871586425df357e072683e919e310a4d8","name":"PromisesObjC","path":"PromisesObjC","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9811604a637c7757d9dc8d97edcbe0ebb0","path":"SDWebImage/Private/NSBezierPath+SDRoundedCorners.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982ab62f53307d2a6f01be71a76e2a2906","path":"SDWebImage/Private/NSBezierPath+SDRoundedCorners.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983acd11066f077a08fa2b8f4d57b72c09","path":"SDWebImage/Core/NSButton+WebCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f3f317f427ec9a9fceb555f130991469","path":"SDWebImage/Core/NSButton+WebCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dfd6ccd2b4f139adaf33ef2cfe0a8b45","path":"SDWebImage/Core/NSData+ImageContentType.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987fb43b47091700dfb91993d968bd5ea8","path":"SDWebImage/Core/NSData+ImageContentType.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cf76a51f8b65ffef6317f2778fabfda6","path":"SDWebImage/Core/NSImage+Compatibility.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987116c782753d2f98e9b01649a82d84c0","path":"SDWebImage/Core/NSImage+Compatibility.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984c5082a2a3156fe2055f307d145349e3","path":"SDWebImage/Core/SDAnimatedImage.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9827044688ec1962293fe29e9eb38cefe3","path":"SDWebImage/Core/SDAnimatedImage.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bd09bde6e74e17eab061a3b70b7cb4b9","path":"SDWebImage/Core/SDAnimatedImagePlayer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98494e5da7268d3ce6bdaa62bed1d4776d","path":"SDWebImage/Core/SDAnimatedImagePlayer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fbaa8ebf1e61e77f7342d2db56877461","path":"SDWebImage/Core/SDAnimatedImageRep.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984224fd3de23f295d0d7d8122144b9c9f","path":"SDWebImage/Core/SDAnimatedImageRep.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981c3c09eb02bd765349ee97209d7a57a8","path":"SDWebImage/Core/SDAnimatedImageView.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98fdbb88da98cf8f56fd8756f1dc02d633","path":"SDWebImage/Core/SDAnimatedImageView.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988b8902b723419288c319bb25420088ca","path":"SDWebImage/Core/SDAnimatedImageView+WebCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983711e9600f6128b6e743369e6f885866","path":"SDWebImage/Core/SDAnimatedImageView+WebCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9841f85029a4f5126e4226b657ff9fa06d","path":"SDWebImage/Private/SDAssociatedObject.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c5bd55abdd45698b858421955f5247d0","path":"SDWebImage/Private/SDAssociatedObject.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9814a4221bf7180e1a62bb83e93b400283","path":"SDWebImage/Private/SDAsyncBlockOperation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e986d2d278b3bbc263dfb340fbca6af2013","path":"SDWebImage/Private/SDAsyncBlockOperation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98116f759ca13f8d56ddcc556040d51865","path":"SDWebImage/Core/SDCallbackQueue.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982b9f0dedf3d702ed3c8862d2eabfbdf0","path":"SDWebImage/Core/SDCallbackQueue.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ecf70e72d8250d380fe9a715caa1a868","path":"SDWebImage/Private/SDDeviceHelper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c8772a1611def2acb5dc3d98b3f91954","path":"SDWebImage/Private/SDDeviceHelper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f121590d1ad2a8d3dad57dec7db8f147","path":"SDWebImage/Core/SDDiskCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98805a216966047b34decdbe03c610baf8","path":"SDWebImage/Core/SDDiskCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98584543f6915b709face9da1d43d1f084","path":"SDWebImage/Private/SDDisplayLink.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9813be7f138ed344e3344ba0fd667f8eb4","path":"SDWebImage/Private/SDDisplayLink.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b8817347d8502e52fdd6260f6440f72d","path":"SDWebImage/Private/SDFileAttributeHelper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9838ee790535d6599de6c39cceb101c3c9","path":"SDWebImage/Private/SDFileAttributeHelper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9865b7b65353d79291cf4457a8e2369d20","path":"SDWebImage/Core/SDGraphicsImageRenderer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f73de45b915958a63a60bd0034aeaaa0","path":"SDWebImage/Core/SDGraphicsImageRenderer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9883aa01796e8e71bfaa9caf8b456629c0","path":"SDWebImage/Core/SDImageAPNGCoder.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984a7f642b2d3a8b789f2ba65bfa1ab117","path":"SDWebImage/Core/SDImageAPNGCoder.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9837cecd31de4c6b234cf7ef5a56ff9433","path":"SDWebImage/Private/SDImageAssetManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985d64be32d386ce52e895e88d6cf766e4","path":"SDWebImage/Private/SDImageAssetManager.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983aeba4cf229a22851b15f9a7a7fc4e3e","path":"SDWebImage/Core/SDImageAWebPCoder.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982ac41bd5e472896da9a63bf7c2cfbcb9","path":"SDWebImage/Core/SDImageAWebPCoder.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9879388235127956987168eca12d1365a1","path":"SDWebImage/Core/SDImageCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9885f9ef6fd18ab17709dffd8b2975915c","path":"SDWebImage/Core/SDImageCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988dc529cfbded9b237dbe9716e9a199ee","path":"SDWebImage/Core/SDImageCacheConfig.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f77233b4b436adea1df5b51054efa28a","path":"SDWebImage/Core/SDImageCacheConfig.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9859bddd152153399d72ab98cfdfc62a95","path":"SDWebImage/Core/SDImageCacheDefine.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e34f1080dec72bc32b877bf46d22e1fe","path":"SDWebImage/Core/SDImageCacheDefine.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980049240159bf127aaaa5af360191e919","path":"SDWebImage/Core/SDImageCachesManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c6655242f53bc77ec7f2bc6fb7b793a3","path":"SDWebImage/Core/SDImageCachesManager.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c895745b11c0019861fd56e3510dd77d","path":"SDWebImage/Private/SDImageCachesManagerOperation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982f9e04bec2f431fc522bda6508a74cef","path":"SDWebImage/Private/SDImageCachesManagerOperation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9805d7142b0f69fb2d5d686c25143193bc","path":"SDWebImage/Core/SDImageCoder.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98dfe67edc764194c6884a4f94dc93b559","path":"SDWebImage/Core/SDImageCoder.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9852441ce743b9bb02bf957cc80094e073","path":"SDWebImage/Core/SDImageCoderHelper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ef7284ade228dc466adae11d0f1a6f96","path":"SDWebImage/Core/SDImageCoderHelper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9861d75c73c4c692655aa68005e37de8b9","path":"SDWebImage/Core/SDImageCodersManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98995ea0f4b92d7d0e60c263b0b3d99071","path":"SDWebImage/Core/SDImageCodersManager.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d3826e9a2f8e10a24d795e940d2cb3ce","path":"SDWebImage/Core/SDImageFrame.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983f46f8ab0eef2e11750a4ba85f660a78","path":"SDWebImage/Core/SDImageFrame.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98be07f77c3e0125f819f8a54ab6a206dc","path":"SDWebImage/Private/SDImageFramePool.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984c98fe66d3343cae13cfbf48be36c641","path":"SDWebImage/Private/SDImageFramePool.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98345a6c4515d1cab08b8c2bf1d208b50a","path":"SDWebImage/Core/SDImageGIFCoder.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981bbe058a3dd1393cbc5419069456afa1","path":"SDWebImage/Core/SDImageGIFCoder.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c58f2e8b6bc7ab0a03389928d3f99ff6","path":"SDWebImage/Core/SDImageGraphics.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c320ad718bf4e74dfe4b4097d5e84521","path":"SDWebImage/Core/SDImageGraphics.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986a31781b51f62a438b4e16d2b9e2abd1","path":"SDWebImage/Core/SDImageHEICCoder.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9846a9d1bc070b149482cc09aa4c31f8a1","path":"SDWebImage/Core/SDImageHEICCoder.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982ef61d9e2b5aaf4bae43b51ad1364485","path":"SDWebImage/Core/SDImageIOAnimatedCoder.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b4e2919532cbda50ff33107e2081ef68","path":"SDWebImage/Core/SDImageIOAnimatedCoder.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98056eaabef1a652f30fb486c8479ecd68","path":"SDWebImage/Private/SDImageIOAnimatedCoderInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9847f475ddef0c0c4959fd6d39c95e624b","path":"SDWebImage/Core/SDImageIOCoder.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98eeed194faa4f9e225bd1fb561928c7dd","path":"SDWebImage/Core/SDImageIOCoder.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e995373ddf86663400fe4628ffd5497b","path":"SDWebImage/Core/SDImageLoader.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ea5cab7fccd9cc790d04d018fc430d98","path":"SDWebImage/Core/SDImageLoader.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9810149053d18e95db9068ed439eb49125","path":"SDWebImage/Core/SDImageLoadersManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9835cc099bf382811cb3b4ae5eb9386ffa","path":"SDWebImage/Core/SDImageLoadersManager.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988fd5c90d2bc5f4dc85079672dde79f7f","path":"SDWebImage/Core/SDImageTransformer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9814dffa24d3558ffe1e64522e4c4d0ba1","path":"SDWebImage/Core/SDImageTransformer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b929e405fd1d3701edb7cf6a88ff1fa0","path":"SDWebImage/Private/SDInternalMacros.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b50de470fdd07f19429ea3e9af77ad7b","path":"SDWebImage/Private/SDInternalMacros.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981d143986efd7cbdfaaa440527f4afa2e","path":"SDWebImage/Core/SDMemoryCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98bd3744c484635f238066542823c3f7ab","path":"SDWebImage/Core/SDMemoryCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9827d4076e0dcebc07d4a78d70c5f5e055","path":"SDWebImage/Private/SDmetamacros.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e888306c6d9fcd6fa1b46a25a544ccb3","path":"SDWebImage/Private/SDWeakProxy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98492dba40c32121e5d29ea569d3855d30","path":"SDWebImage/Private/SDWeakProxy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983946066b9aa028e73158d8ae6a46bd72","path":"WebImage/SDWebImage.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983459bdd71ccf96cc6b7372a2b14a63b5","path":"SDWebImage/Core/SDWebImageCacheKeyFilter.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98cff60f10efc6b52e4f76441ddb7b2136","path":"SDWebImage/Core/SDWebImageCacheKeyFilter.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c9f1f521176a95fc539c538f6c3ee916","path":"SDWebImage/Core/SDWebImageCacheSerializer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9858847bfdccd0e353db6abdb7a6fa6fba","path":"SDWebImage/Core/SDWebImageCacheSerializer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9800867f25c152f96e64f41a21b88f9477","path":"SDWebImage/Core/SDWebImageCompat.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9801da23951e5e9700736b1dc4b27d8d5d","path":"SDWebImage/Core/SDWebImageCompat.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986a9163550b735be77ef3dd2399f4af60","path":"SDWebImage/Core/SDWebImageDefine.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989388854bbbc797343d04ef50c444ffa3","path":"SDWebImage/Core/SDWebImageDefine.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cfe303b8fca979532275beaa831d02c0","path":"SDWebImage/Core/SDWebImageDownloader.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98854e14a164777eb2a45116ef3d4f9f33","path":"SDWebImage/Core/SDWebImageDownloader.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d9159f84212cf575ddefd6eac30bcc6a","path":"SDWebImage/Core/SDWebImageDownloaderConfig.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982a2fb9b6e5077dd8e829ad111288f9f7","path":"SDWebImage/Core/SDWebImageDownloaderConfig.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ba445fd517115ff21fbc627a0f7cac18","path":"SDWebImage/Core/SDWebImageDownloaderDecryptor.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9842724100c48622d3b188051c390da11d","path":"SDWebImage/Core/SDWebImageDownloaderDecryptor.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985920cd290e0f89503e5a538b8e4e41ff","path":"SDWebImage/Core/SDWebImageDownloaderOperation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9874526a8deed62cf90e7313a0bb264b41","path":"SDWebImage/Core/SDWebImageDownloaderOperation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98081a1fc6b7c7a021039383c2324fe338","path":"SDWebImage/Core/SDWebImageDownloaderRequestModifier.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ddcb6426668e808b02211a7d475cfaf5","path":"SDWebImage/Core/SDWebImageDownloaderRequestModifier.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98841d328806c9ac0f01857dcce2cd6fcb","path":"SDWebImage/Core/SDWebImageDownloaderResponseModifier.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98554b7667850d8a2a47322f941c615607","path":"SDWebImage/Core/SDWebImageDownloaderResponseModifier.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988635ddf64a3a2a55984591d61239f255","path":"SDWebImage/Core/SDWebImageError.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c7fa548f6a269da63d6737de3473d9e4","path":"SDWebImage/Core/SDWebImageError.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980685cd3c0e887257819e9cadde1c4ef1","path":"SDWebImage/Core/SDWebImageIndicator.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98911d59665f175d2f1d12fc4d9de2add6","path":"SDWebImage/Core/SDWebImageIndicator.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e9622f5dba6eb75f2caa89828e52c6ff","path":"SDWebImage/Core/SDWebImageManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988e7091f92fc248082719cfb25e4d63d4","path":"SDWebImage/Core/SDWebImageManager.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98328c372767442e5a1063940770af68de","path":"SDWebImage/Core/SDWebImageOperation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98fb4474587bf7efb0ae13743ec69651f1","path":"SDWebImage/Core/SDWebImageOperation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f6932818b2c7e48a02842ec7e2e99929","path":"SDWebImage/Core/SDWebImageOptionsProcessor.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98611d7ae74339d6a36f3b26a983c29dad","path":"SDWebImage/Core/SDWebImageOptionsProcessor.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e1cefe2d9907e2e8fb46be6239bcf623","path":"SDWebImage/Core/SDWebImagePrefetcher.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98cd875d8227a4095014792f47231a1d1b","path":"SDWebImage/Core/SDWebImagePrefetcher.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9862e521e046b4bedf6f636fa8c074a640","path":"SDWebImage/Core/SDWebImageTransition.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9819a6574bbb3ce04462b672ec7fb1fe97","path":"SDWebImage/Core/SDWebImageTransition.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c8fe1a8e74f2862d1fbf5d0bbf844aba","path":"SDWebImage/Private/SDWebImageTransitionInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980355ef4c26779469c7da4a9a091f72f9","path":"SDWebImage/Core/UIButton+WebCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989ee76ba2f9fe8aae5c2ee38ddcd53331","path":"SDWebImage/Core/UIButton+WebCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9801a24f822cdce8005ed29811b9b4a239","path":"SDWebImage/Private/UIColor+SDHexString.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9800b2f30e5281ff15c0a8982812f07c9a","path":"SDWebImage/Private/UIColor+SDHexString.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e96d1d1c38f15c5f53acc1f22afd6e14","path":"SDWebImage/Core/UIImage+ExtendedCacheData.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98811a290593ba6afd1e42afa5affe46d0","path":"SDWebImage/Core/UIImage+ExtendedCacheData.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9825cadbd8c8fe39d376281b24b1da2ffe","path":"SDWebImage/Core/UIImage+ForceDecode.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c5d18172cf798dd919c4cb10f2a1e120","path":"SDWebImage/Core/UIImage+ForceDecode.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9830cf7b72867bd3dd0ed784a5da462bc8","path":"SDWebImage/Core/UIImage+GIF.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a644589820be3b60ac8f9433d501f2de","path":"SDWebImage/Core/UIImage+GIF.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dca21799232d57b7bd989f8ec5f9d48e","path":"SDWebImage/Core/UIImage+MemoryCacheCost.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981cbf5b9a03740d94c97fddcfdb33fb81","path":"SDWebImage/Core/UIImage+MemoryCacheCost.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981bc8cb1b230f2bbfb573fca688128a68","path":"SDWebImage/Core/UIImage+Metadata.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a98654e74faf2a43bc0c2a602f5c0509","path":"SDWebImage/Core/UIImage+Metadata.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984911369c81eb396516fd29c6f211f9f7","path":"SDWebImage/Core/UIImage+MultiFormat.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989f2a731c3bc644b81c635f5c300cfec6","path":"SDWebImage/Core/UIImage+MultiFormat.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983b5875c3c35f22a150475853defa8e73","path":"SDWebImage/Core/UIImage+Transform.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98aa3c24a690028f0c8c9452bbf5d84126","path":"SDWebImage/Core/UIImage+Transform.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f46be62656167f70bb20fb68fe250eee","path":"SDWebImage/Core/UIImageView+HighlightedWebCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980daaa68484d50033bf6a9019d5807ad1","path":"SDWebImage/Core/UIImageView+HighlightedWebCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9820669e7dd833a0c7deec6c336ed2570d","path":"SDWebImage/Core/UIImageView+WebCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e986bc03b1eb628d0ac7389d898a058ff99","path":"SDWebImage/Core/UIImageView+WebCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9876157febe8673b8c414ba065eed333f4","path":"SDWebImage/Core/UIView+WebCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ceb4b3f8dcb2139b7391109da496a36a","path":"SDWebImage/Core/UIView+WebCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9851a369d85d07b4fc0a0eb0289aad6884","path":"SDWebImage/Core/UIView+WebCacheOperation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987feb7140fcec3767869a519484e94853","path":"SDWebImage/Core/UIView+WebCacheOperation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98599c8016a2fb82b4846bbf280dea0d3b","path":"SDWebImage/Core/UIView+WebCacheState.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a42640f1b23fdb6c4d80dafb682d041e","path":"SDWebImage/Core/UIView+WebCacheState.m","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98a94f8bd547042e933d9b2477d5fb3d9d","path":"WebImage/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e23db13e5b3429a896c766f767c05051","name":"Resources","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d5101041f5a0fe891dd94a310fd5d7f2","name":"Core","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9838c245553b1453c923768c120286f0d7","path":"ResourceBundle-SDWebImage-SDWebImage-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e9821f1ed88fb199dc737e9eedece2e2446","path":"SDWebImage.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f98a828f5998af0c41552f53690a7922","path":"SDWebImage-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9824ad3cb15fb5b06036282dd7cbf618b9","path":"SDWebImage-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9824def20e68d0700f78d70112de0602cf","path":"SDWebImage-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9893988b7c355dd6a7a5b268f4bf69d72a","path":"SDWebImage-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9823abccf175e3748989858fca523d051a","path":"SDWebImage.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98a2fbdfb06a54efc6c31a323919799308","path":"SDWebImage.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98cfa4abc9a6c3a26136e5a4a3a33b9cbd","name":"Support Files","path":"../Target Support Files/SDWebImage","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98747d4a8f3257a14a605d79e5eb741acb","name":"SDWebImage","path":"SDWebImage","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98c71a31d51579058f76d7ce87557a87ac","path":"Sources/Swift/Protocol/Codable/DecodeArbitraryData.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e981744f939b482e671c5891b4e5f6d6e8d","path":"Sources/Swift/Tools/HTTPHeaderSanitizer.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e001f78339f91c73e172835a86618eec","path":"Sources/Sentry/include/NSArray+SentrySanitize.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ad24d9cbd50724b065636d75c81fe412","path":"Sources/Sentry/NSArray+SentrySanitize.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98248f139b8a277a8d2220b7ba8320a8f9","path":"Sources/Sentry/include/NSLocale+Sentry.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9898b0117632c487b9d1580f5edb1202a1","path":"Sources/Sentry/NSLocale+Sentry.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98481870c26c2acc9731a73bb8bd1fe887","path":"Sources/Swift/Extensions/NSLock.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98638e838d81f2696c97244d55db8da9d2","path":"Sources/Sentry/include/NSMutableDictionary+Sentry.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9824061a9a788e3426916e9bedb3045245","path":"Sources/Sentry/NSMutableDictionary+Sentry.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98bbd8ebbedac40941e0e327d1f27c6c6d","path":"Sources/Swift/Protocol/Codable/NSNumberDecodableWrapper.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9886a155478a162b29a0ba0c860ec6f250","path":"Sources/Swift/Extensions/NumberExtensions.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f903d6780a6318e601a8f8574e6f855a","path":"Sources/Sentry/include/HybridPublic/PrivateSentrySDKOnly.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e986f8ffb96990bb399626c5381e170607f","path":"Sources/Sentry/PrivateSentrySDKOnly.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9810a51b308666aff0ebc2c3a080471c11","path":"Sources/Sentry/include/HybridPublic/PrivatesHeader.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98690195525a633cec04f93f7105c1ae77","path":"Sources/Sentry/Public/Sentry.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e986deec642724654c1e4c204b156a4deea","path":"Sources/Swift/Integrations/ANR/SentryANRTracker.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9866282bce37b80904f4dd54f2806f9db9","path":"Sources/Sentry/include/SentryANRTrackerV1.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9897a7ae86bc607fa9de8ff4e53586aa54","path":"Sources/Sentry/SentryANRTrackerV1.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9813cb1d7487e2bf939426b6ff778faac2","path":"Sources/Sentry/include/SentryANRTrackerV2.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9801d71f4dda6ca1b6560e07b28c111e06","path":"Sources/Sentry/SentryANRTrackerV2.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e981bc55cac5bf59e9609e7097b78d1ac99","path":"Sources/Swift/Integrations/ANR/SentryANRTrackerV2Delegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98489a60a9b15049e548b74fb4daf33a85","path":"Sources/Sentry/include/SentryANRTrackingIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98aa4b92b28efbfa079b46c59e6843799e","path":"Sources/Sentry/SentryANRTrackingIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98b4b268c8cb47f6b3b41fe26f9626d3dc","path":"Sources/Swift/Integrations/ANR/SentryANRType.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985a66b5361d8c00e51eca8c4c9368e68f","path":"Sources/Sentry/include/HybridPublic/SentryAppStartMeasurement.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982b23faafcc4de30d179f2abbde1c48c6","path":"Sources/Sentry/SentryAppStartMeasurement.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981f8e3b29811e270fb62c43945186810c","path":"Sources/Sentry/include/SentryAppStartTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b1e223f65409db107f8b0fa9cfe331a5","path":"Sources/Sentry/SentryAppStartTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989c85215a18e485c826dcf1bd904e3ad2","path":"Sources/Sentry/include/SentryAppStartTrackingIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98861d26a364f792ad0dfc370bc6e19777","path":"Sources/Sentry/SentryAppStartTrackingIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a0b4c25c514d3e39a080663bedcc2f78","path":"Sources/Sentry/include/SentryAppState.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ba7a2d11da67fe894102c54e263367a0","path":"Sources/Sentry/SentryAppState.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98521eb5163652ccf7b34f0472d8be2471","path":"Sources/Sentry/include/SentryAppStateManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983f624e65a74b8b8c6f23d8a47b65ec35","path":"Sources/Sentry/SentryAppStateManager.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a11e6b38d412895998fc828834cb6495","path":"Sources/Sentry/include/SentryAsynchronousOperation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f54136d02a57f35b93c2ec31619a1fe6","path":"Sources/Sentry/SentryAsynchronousOperation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e986d0506fcb789d22f2f68087034cb1d2e","path":"Sources/Sentry/SentryAsyncSafeLog.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98426b76b4683344516aa8821478aa482c","path":"Sources/Sentry/SentryAsyncSafeLog.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9853fc02ecc0b210c19140f4d90d8a65aa","path":"Sources/Sentry/Public/SentryAttachment.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984bc83241c167059bd285dcce369d6711","path":"Sources/Sentry/SentryAttachment.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9856f97fd51ba8c4a927a98619ac123a6a","path":"Sources/Sentry/include/SentryAttachment+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983f217f73d3dade8e9d05d8ad42b12b0c","path":"Sources/Sentry/include/SentryAutoBreadcrumbTrackingIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9848e153c20ccf5da0214a31ee831120f5","path":"Sources/Sentry/SentryAutoBreadcrumbTrackingIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983accbc9cdb630e58b0a6f3e6055b2f33","path":"Sources/Sentry/include/SentryAutoSessionTrackingIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98823a849c76b2446e4691f6a2a48668f8","path":"Sources/Sentry/SentryAutoSessionTrackingIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.cpp","guid":"bfdfe7dc352907fc980b868725387e98b29d458c3cedc976d44f1533c6cf6c7a","path":"Sources/Sentry/SentryBacktrace.cpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.h","guid":"bfdfe7dc352907fc980b868725387e983692f40b74b4328987413f249b16591e","path":"Sources/Sentry/include/SentryBacktrace.hpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98732d148da486374fc6de85e358280436","path":"Sources/Sentry/Public/SentryBaggage.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c27633286232d74f3bff6226dedb2786","path":"Sources/Sentry/SentryBaggage.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98bb569377c23889d7a33573f608b47fd0","path":"Sources/Swift/Helper/SentryBaggageSerialization.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98573fac1672e5d26f6f851f26cae747ef","path":"Sources/Sentry/include/HybridPublic/SentryBaseIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d76d715b38c6588b6fda04bd1e9f91f4","path":"Sources/Sentry/SentryBaseIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e2380884a454436aa90c524fec7a61a4","path":"Sources/Sentry/include/HybridPublic/SentryBinaryImageCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e986eeec97e30fd4a82250605684225fd80","path":"Sources/Sentry/SentryBinaryImageCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a9bf84cb52e43d1836a8d7195edd1fcd","path":"Sources/Sentry/Public/SentryBreadcrumb.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98bf9eee4f12af157cfdb8fdc723b0e4c8","path":"Sources/Sentry/SentryBreadcrumb.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cf190ebad7e14195fb8f1087d54dd3f8","path":"Sources/Sentry/include/HybridPublic/SentryBreadcrumb+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e980e862c930f34fed975f52ea610b90f43","path":"Sources/Swift/Protocol/Codable/SentryBreadcrumbCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981e905b2c167e4a6f30eb08674862d81c","path":"Sources/Sentry/include/SentryBreadcrumbDelegate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f69a8e55ffd47cda9d8b8ee26e67f25d","path":"Sources/Sentry/include/SentryBreadcrumbTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988d39ef2026d00b24538b7df2226d3c67","path":"Sources/Sentry/SentryBreadcrumbTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98366c6b1682985644f03633b3dda1e3a1","path":"Sources/Sentry/include/SentryBuildAppStartSpans.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983861ddb546092c52dbf5c23b6e443917","path":"Sources/Sentry/SentryBuildAppStartSpans.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989e5f25f0f7f168465eaf5e4c7b1f1793","path":"Sources/Sentry/include/SentryByteCountFormatter.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f3d9b3434dc0f82b070ad56da52b6a3f","path":"Sources/Sentry/SentryByteCountFormatter.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98698b7319ce4e47470e04e1d42d532e3a","path":"Sources/Sentry/include/SentryCaptureTransactionWithProfile.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e985368f0c200c7c972f093f33034858d85","path":"Sources/Sentry/Profiling/SentryCaptureTransactionWithProfile.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9849fd3b3d6ecfd12c0dd0fcf5698b154c","path":"Sources/Sentry/Public/SentryClient.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988e320f9b259e29846e25ad09f43f82ed","path":"Sources/Sentry/SentryClient.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9807ae478b6457dad78fb6cbe02ba7ae2c","path":"Sources/Sentry/include/SentryClient+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98290c7c29e6ede469283b735946d503e1","path":"Sources/Sentry/include/SentryClientReport.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988f1e78da7390ab8a7bb8a6367f4d368b","path":"Sources/Sentry/SentryClientReport.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e983ea69dc5c8e1c6c13f81c6ad32bd8360","path":"Sources/Swift/Protocol/Codable/SentryCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988149f77e1e9292e62d597ad4a5685d4d","path":"Sources/Sentry/include/SentryCompiler.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9850a5af28bea4ba2a867c6d2bb2fc8c8b","path":"Sources/Sentry/include/SentryConcurrentRateLimitsDictionary.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9876d344295bf84d2846e2059d9374dd30","path":"Sources/Sentry/SentryConcurrentRateLimitsDictionary.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c39948664910832f9e226aa2628be66c","path":"Sources/Sentry/include/SentryContinuousProfiler.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e984001fb43a8b323e3765132dfce26883a","path":"Sources/Sentry/Profiling/SentryContinuousProfiler.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98db29d9b9825194904de7ce2fcc8227d4","path":"Sources/Sentry/include/SentryCoreDataSwizzling.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987782a1cd602f37a1de65fe0b0e4acd7c","path":"Sources/Sentry/SentryCoreDataSwizzling.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9881b3bff6b9341fe4c728e3b3e39b5350","path":"Sources/Sentry/include/SentryCoreDataTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981dc06662ccad2b6f941f33a6e90f42e6","path":"Sources/Sentry/SentryCoreDataTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c28ae93973eda6139ad4c2651a25b80c","path":"Sources/Sentry/include/SentryCoreDataTrackingIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9843e4f6448716cb304101ca550fdc2ed5","path":"Sources/Sentry/SentryCoreDataTrackingIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9885da54aaf46ac669f3817c2bfd4f5b19","path":"Sources/Sentry/include/SentryCPU.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982367e71b2dd1ae6b852d0696e8390159","path":"Sources/SentryCrash/Recording/SentryCrash.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985128d54810aec544f57d2c49c9a4cef1","path":"Sources/SentryCrash/Recording/SentryCrash.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98cefd619525510ceec143bd221bd769e1","path":"Sources/SentryCrash/Recording/SentryCrashBinaryImageCache.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98063360dbabcffb30b49cc824e3bf094d","path":"Sources/SentryCrash/Recording/SentryCrashBinaryImageCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ec59152106ed52562e348fd7be2d234f","path":"Sources/Sentry/include/SentryCrashBinaryImageProvider.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9888dfed41d026273a3aeb7c3976f3c1c3","path":"Sources/SentryCrash/Recording/SentryCrashC.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9845987afe969316feea1f8a8134612d02","path":"Sources/SentryCrash/Recording/SentryCrashC.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98270a873843d0fc476ed942c354c3acec","path":"Sources/SentryCrash/Recording/SentryCrashCachedData.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98af863bd36ea71ee90a9bfc784f1ae0ca","path":"Sources/SentryCrash/Recording/SentryCrashCachedData.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98f3b903d3cb6466f04122a8dcc569c45f","path":"Sources/SentryCrash/Recording/Tools/SentryCrashCPU.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980b2bce92acd4c4768205322edb05f5bd","path":"Sources/SentryCrash/Recording/Tools/SentryCrashCPU.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9829b34965fb184566532d1b5050dbc765","path":"Sources/SentryCrash/Recording/Tools/SentryCrashCPU_Apple.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e982d3ff31df3148c3451f810fd7f5fa808","path":"Sources/SentryCrash/Recording/Tools/SentryCrashCPU_arm.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98e851e31c6f2b1767ab90e9da8d8f7c62","path":"Sources/SentryCrash/Recording/Tools/SentryCrashCPU_arm64.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98760d2507f98c2f08b3c8c705b2363912","path":"Sources/SentryCrash/Recording/Tools/SentryCrashCPU_x86_32.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98dac941846254c41f295688861ed652f0","path":"Sources/SentryCrash/Recording/Tools/SentryCrashCPU_x86_64.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98c7d2a6b25dcc403f0de2a5b9bc4294e5","path":"Sources/SentryCrash/Recording/Tools/SentryCrashDate.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9855e0b71e86dae7124889e31a6edf05fb","path":"Sources/SentryCrash/Recording/Tools/SentryCrashDate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9886715de8548728764d2cad39f018bdcf","path":"Sources/SentryCrash/Recording/Tools/SentryCrashDebug.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f9e6492850c1cd3338ab67f572a283bb","path":"Sources/SentryCrash/Recording/Tools/SentryCrashDebug.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98294f6f456b84d077cdedba711c95f2ad","path":"Sources/Sentry/include/SentryCrashDefaultBinaryImageProvider.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9852ebd50069628d7a79828ebb57d86f76","path":"Sources/Sentry/SentryCrashDefaultBinaryImageProvider.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9866ef8792975db697cf516651ae4f67b3","path":"Sources/Sentry/include/SentryCrashDefaultMachineContextWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988583668b0ad9a264c837fd842d3b5f29","path":"Sources/Sentry/SentryCrashDefaultMachineContextWrapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9808cbeb6002049acabe3c880fbc598f33","path":"Sources/SentryCrash/Recording/SentryCrashDoctor.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988f97bb1298c08e95ce72da513963aeca","path":"Sources/SentryCrash/Recording/SentryCrashDoctor.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e989f44bf1442031f464883e4098c35aed8","path":"Sources/SentryCrash/Recording/Tools/SentryCrashDynamicLinker.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9885bec41077e0166ac955ec472a2b5481","path":"Sources/SentryCrash/Recording/Tools/SentryCrashDynamicLinker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981f549f17411688ab058274328f938c6e","path":"Sources/Sentry/Public/SentryCrashExceptionApplication.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9895e9f9bdb3c9603b28018cce2c956977","path":"Sources/Sentry/SentryCrashExceptionApplication.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98c6e86c5b1525c16b742b2f8cc6ece39a","path":"Sources/SentryCrash/Recording/Tools/SentryCrashFileUtils.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ffd824fdc40d93889be75b421faa54b0","path":"Sources/SentryCrash/Recording/Tools/SentryCrashFileUtils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e985112e2257eeaaf38023cdb7637969005","path":"Sources/SentryCrash/Recording/Tools/SentryCrashID.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f596af1325dac301874e560f1f594adb","path":"Sources/SentryCrash/Recording/Tools/SentryCrashID.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9865ebad0e1d66f6076bedc3ee40dcbcdc","path":"Sources/SentryCrash/Installations/SentryCrashInstallation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9884d1a35368dc73eb32b589997bf45020","path":"Sources/SentryCrash/Installations/SentryCrashInstallation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98498cc7cc608f1ee4933a868828cf6d7b","path":"Sources/SentryCrash/Installations/SentryCrashInstallation+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987b740ac0de41bb88be594dfe174cb3f3","path":"Sources/Sentry/include/SentryCrashInstallationReporter.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9802d286724c2ada24e211d453680c745e","path":"Sources/Sentry/SentryCrashInstallationReporter.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985067d9ba8deede5a9ca4fe5f40ae1661","path":"Sources/Sentry/include/SentryCrashIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989533a782d188749d31038b70a39528e5","path":"Sources/Sentry/SentryCrashIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98476d3710a90bd943aa8c26bc5d3cb245","path":"Sources/Sentry/include/SentryCrashIntegrationSessionHandler.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988720562a3394a7dca95102f3b98a023a","path":"Sources/Sentry/SentryCrashIntegrationSessionHandler.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98efb2a246ea08e434f05ce24d8047ee4d","path":"Sources/Sentry/include/SentryCrashIsAppImage.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e981ff3d870f266d470195ca43b04d8d67f","path":"Sources/SentryCrash/Recording/Tools/SentryCrashJSONCodec.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980187ebc9abd8fde7574924054076e0f0","path":"Sources/SentryCrash/Recording/Tools/SentryCrashJSONCodec.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d0ce240e93e24fcb2a421245757d8ab7","path":"Sources/SentryCrash/Recording/Tools/SentryCrashJSONCodecObjC.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ee70e65e1eda2ff3ff8d0348ab918c5c","path":"Sources/SentryCrash/Recording/Tools/SentryCrashJSONCodecObjC.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e980ee870141fe60d8620c801adaf4ee206","path":"Sources/SentryCrash/Recording/Tools/SentryCrashMach.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f9dd030edce01c503603e98710a5e492","path":"Sources/SentryCrash/Recording/Tools/SentryCrashMach.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98921c7a9bbdbe7178ff98341f9df0b034","path":"Sources/SentryCrash/Recording/Tools/SentryCrashMachineContext.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b423dbd9b466c7caf159ad5cd8614e17","path":"Sources/SentryCrash/Recording/Tools/SentryCrashMachineContext.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e05a8f4c3ab1cdd98219c25d5f4873ee","path":"Sources/SentryCrash/Recording/Tools/SentryCrashMachineContext_Apple.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bef3fcf081bb4aaaca42b4ce763de2ae","path":"Sources/Sentry/include/SentryCrashMachineContextWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e987740a02d13ac09398d0b85d3153b2f20","path":"Sources/SentryCrash/Recording/Tools/SentryCrashMemory.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9884465bf93503b248da3fd7d58a68948e","path":"Sources/SentryCrash/Recording/Tools/SentryCrashMemory.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98c66dbb3e327d9ec00f8cc6e8d1e1b948","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d71d657c4d31e5f1cec4cd3dde1e2926","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e980b8123f811d0cde25c64b9cad54527e4","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_AppState.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d01faf6cccb842cd5e40c9d5dbe95e0b","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_AppState.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.cpp","guid":"bfdfe7dc352907fc980b868725387e983924913cd9631b0a8e1474016c37fd65","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_CPPException.cpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dda7c9baeff83b692c721aadced86ac3","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_CPPException.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e984c85dd47b368929d18729b3b9dfe7ed7","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_MachException.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fef95b4684f1fa67415da1736db761f1","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_MachException.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e2afa69cc0a6bd3f083c8f75a38eef97","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_NSException.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98aa00e81c94da1e91420ecbc7503b9847","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_NSException.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9822f60abdb91323bd78e764660f20de8e","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_Signal.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984690dae85acf36b5ed4d8e7dd9a7c7f3","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_Signal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d157abb309ec19acca25aaf0545cdc31","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_System.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a80266b8900bbb72931518de847c24c8","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_System.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ee867a362eb3fd01aeb93d1eb1ded04f","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitorContext.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98f8b8a9c1c8ae5199beebf308ed1d6c07","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitorType.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9896a88b1714c961887c04679b4a03ab0d","path":"Sources/SentryCrash/Recording/Monitors/SentryCrashMonitorType.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fbdac33087fee2ee228a6e702cedaee4","path":"Sources/SentryCrash/Recording/Tools/SentryCrashNSErrorUtil.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983019fabfe4dba65799d509aefa5fb69a","path":"Sources/SentryCrash/Recording/Tools/SentryCrashNSErrorUtil.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98b099432017fe38fbf964a124e20b406d","path":"Sources/SentryCrash/Recording/Tools/SentryCrashObjC.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987fa9a0519442d130a01e18d222037416","path":"Sources/SentryCrash/Recording/Tools/SentryCrashObjC.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9801e5d3df33e38fa92f8c343db8eebe75","path":"Sources/SentryCrash/Recording/Tools/SentryCrashObjCApple.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987e5da6ed9183fb30a24b3e179f0faa1e","path":"Sources/SentryCrash/Recording/Tools/SentryCrashPlatformSpecificDefines.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9860266e56f360e7bb53a8caf03f3a1e6a","path":"Sources/SentryCrash/Recording/SentryCrashReport.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983f56fe3b8dbecceddee43dad75d1aef6","path":"Sources/SentryCrash/Recording/SentryCrashReport.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dbba97682a3bb0435661f8a2cf4a79c6","path":"Sources/Sentry/include/SentryCrashReportConverter.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e42577cddfe3fc54bdb003965edeff12","path":"Sources/Sentry/SentryCrashReportConverter.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ea8354ad642dc286102e76aaadd7d69c","path":"Sources/SentryCrash/Recording/SentryCrashReportFields.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98929e58db5eb586e37c00dbe646cb99c2","path":"Sources/SentryCrash/Reporting/Filters/SentryCrashReportFilter.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9813ff833a03cbd0b820b900716da0e25f","path":"Sources/SentryCrash/Reporting/Filters/SentryCrashReportFilterBasic.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a6ec633854d2fbf231deb92ae7f277b9","path":"Sources/SentryCrash/Reporting/Filters/SentryCrashReportFilterBasic.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9885e23e25274e201e4984110794ea5f79","path":"Sources/SentryCrash/Recording/SentryCrashReportFixer.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985614fa24f22170130d1cdb1f3f01d878","path":"Sources/SentryCrash/Recording/SentryCrashReportFixer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988ba31a11924835e8f07eea76182a602e","path":"Sources/Sentry/include/SentryCrashReportSink.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e986d7cb1f9716b66a62e2c02d1853fcaff","path":"Sources/Sentry/SentryCrashReportSink.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98c6c96cf34f1b2f26dad3bfae6acd06aa","path":"Sources/SentryCrash/Recording/SentryCrashReportStore.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c9e45e4c03c0971640baaad83a710812","path":"Sources/SentryCrash/Recording/SentryCrashReportStore.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a50d1f563b2b00713839104fc4226834","path":"Sources/SentryCrash/Recording/SentryCrashReportVersion.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cb7e29d7695a875e2a38b5c05ced6b99","path":"Sources/SentryCrash/Recording/SentryCrashReportWriter.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9867e1c0245cf1f3c0ba019d0d10f851b0","path":"Sources/Sentry/include/SentryCrashScopeObserver.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988c6f12374536993e64553a8dd071f3b9","path":"Sources/Sentry/SentryCrashScopeObserver.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98ee1ccd38d9ec42a9f6bd5bb7227c506b","path":"Sources/SentryCrash/Recording/Tools/SentryCrashSignalInfo.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986211c468a0ab49137d18f544fb1a8166","path":"Sources/SentryCrash/Recording/Tools/SentryCrashSignalInfo.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e989c32f12d642abf39866bcc6c59c89ab2","path":"Sources/SentryCrash/Recording/Tools/SentryCrashStackCursor.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988f4e2a05a0701c266f5ac450dcb670f3","path":"Sources/SentryCrash/Recording/Tools/SentryCrashStackCursor.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9823c8189611d58ec5687601e3b4878af5","path":"Sources/SentryCrash/Recording/Tools/SentryCrashStackCursor_Backtrace.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bcef6678170b9b382b95c8a3a88b091d","path":"Sources/SentryCrash/Recording/Tools/SentryCrashStackCursor_Backtrace.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e985af0e724d0e218aa49783f0fcf6e1aef","path":"Sources/SentryCrash/Recording/Tools/SentryCrashStackCursor_MachineContext.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980b8812f111301455970a918b300d2ff9","path":"Sources/SentryCrash/Recording/Tools/SentryCrashStackCursor_MachineContext.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98079885c1f1fb834a175e5ae24a9bd454","path":"Sources/SentryCrash/Recording/Tools/SentryCrashStackCursor_SelfThread.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b8a568ab084dd46acea1dfc18fe2e914","path":"Sources/SentryCrash/Recording/Tools/SentryCrashStackCursor_SelfThread.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986f727ca98c64e5dc5365ce0d7927232c","path":"Sources/Sentry/include/SentryCrashStackEntryMapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9861e136b23e1235ef52173044409b8e88","path":"Sources/Sentry/SentryCrashStackEntryMapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e980552f6ce50890ac855205a5c679ff686","path":"Sources/SentryCrash/Recording/Tools/SentryCrashString.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989b11644cafb5c3f557da962bc5c06907","path":"Sources/SentryCrash/Recording/Tools/SentryCrashString.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98b97105291f32812a810c41c9b69510d6","path":"Sources/SentryCrash/Recording/Tools/SentryCrashSymbolicator.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98055b98cd1b8b60a5be2ac74ba8c04999","path":"Sources/SentryCrash/Recording/Tools/SentryCrashSymbolicator.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98863aefe6157e2aacaf9ddd6fb577f7d6","path":"Sources/SentryCrash/Recording/Tools/SentryCrashSysCtl.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b70cbc0354add953b164ed28d2246a63","path":"Sources/SentryCrash/Recording/Tools/SentryCrashSysCtl.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98b09ad5212c16513d73efeb756411bb35","path":"Sources/SentryCrash/Recording/Tools/SentryCrashThread.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ffc10ae13d072d89c802b2ee5cc0f319","path":"Sources/SentryCrash/Recording/Tools/SentryCrashThread.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e980d814c7bb26425872f0b5c219241080c","path":"Sources/SentryCrash/Recording/Tools/SentryCrashUUIDConversion.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fe01da6023f46e207576c69486b517ed","path":"Sources/SentryCrash/Recording/Tools/SentryCrashUUIDConversion.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984b9841b97c7347a3677259cca1e6bdfc","path":"Sources/SentryCrash/Reporting/Filters/Tools/SentryCrashVarArgs.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e6996a04f3f24938f009e02359d836be","path":"Sources/Sentry/include/SentryCrashWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9842212c0df5fd9728a12038ce17aedf4d","path":"Sources/Sentry/SentryCrashWrapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e982b93ce05760d69942cd08eeb9a190762","path":"Sources/Swift/Helper/SentryCurrentDateProvider.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980978bc5d55115f14267dff903e60af84","path":"Sources/Sentry/include/SentryDataCategory.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98498178a2df4ead1bf2b60fb084b714dc","path":"Sources/Sentry/include/SentryDataCategoryMapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987e1bd553c0cf6a88374e415fef55aad7","path":"Sources/Sentry/SentryDataCategoryMapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e9d394c94e9e60b3410b31530add5c64","path":"Sources/Sentry/include/SentryDateUtil.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b608fab1816b67e12745f5fcdabcbc3b","path":"Sources/Sentry/SentryDateUtil.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98df7bcbe6916b6f5cbeff242a4a5e41d3","path":"Sources/Sentry/include/SentryDateUtils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98da018402b414f94b3227ea32b75fb119","path":"Sources/Sentry/SentryDateUtils.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c7cea9ef95fa15ae2dfe1d908260b779","path":"Sources/Sentry/Public/SentryDebugImageProvider.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9816cc6e5a9ac81c8298372be540ff4d06","path":"Sources/Sentry/SentryDebugImageProvider.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985b5cef02179a2e5ec21399b757008dba","path":"Sources/Sentry/include/HybridPublic/SentryDebugImageProvider+HybridSDKs.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981b50485d47531a300a879f5bfa86087b","path":"Sources/Sentry/Public/SentryDebugMeta.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e15fdda76d5e34f7cd46f5a3e1155662","path":"Sources/Sentry/SentryDebugMeta.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98ca46681d7d64607307ef6ba7951e5d66","path":"Sources/Swift/Protocol/Codable/SentryDebugMetaCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e29b5b93b6a08249efc2bc247892da37","path":"Sources/Sentry/include/SentryDefaultObjCRuntimeWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980d297a1117ab8dd1cb65fdf25181a47b","path":"Sources/Sentry/SentryDefaultObjCRuntimeWrapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f75cc42af1356796a070894efa19e469","path":"Sources/Sentry/include/SentryDefaultRateLimits.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b3bd422db2082b30b47a5ead025bce56","path":"Sources/Sentry/SentryDefaultRateLimits.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980c936765177999f43e273c4cb28b0351","path":"Sources/Sentry/Public/SentryDefines.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98834afb186b1c8e1711e861ed44d530de","path":"Sources/Sentry/include/SentryDelayedFrame.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981eb8075f0d967483c1bd67f3230910e6","path":"Sources/Sentry/SentryDelayedFrame.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9865c58c0408fa063954c1ac16cf962d4c","path":"Sources/Sentry/include/SentryDelayedFramesTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981cc4a28c2dcf993ee9cd32c6194f413d","path":"Sources/Sentry/SentryDelayedFramesTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9857b8d47ccc6dfb43ffc994a81d7db358","path":"Sources/Sentry/include/HybridPublic/SentryDependencyContainer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e2de1af97231645fdbde17a9430465d8","path":"Sources/Sentry/SentryDependencyContainer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ef041884f75f236149411f98e1a2fcf5","path":"Sources/Sentry/include/SentryDevice.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e987ce15f77dc954b5dc5c528e4ddd7450b","path":"Sources/Sentry/SentryDevice.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d35d930aa5581bf7ae5ac425748f0cdc","path":"Sources/SentryCrash/Reporting/Filters/Tools/SentryDictionaryDeepSearch.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9822dc1179958496cfe9657cf4165f5b96","path":"Sources/SentryCrash/Reporting/Filters/Tools/SentryDictionaryDeepSearch.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b317b31ac6a1ace7173e63cf0607ef73","path":"Sources/Sentry/include/SentryDiscardedEvent.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989190b9ff65b0adb5a6d99714d768878c","path":"Sources/Sentry/SentryDiscardedEvent.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9857bb05fdd450bacb91a19efc62592219","path":"Sources/Sentry/include/SentryDiscardReason.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984dd76e32df854e90fe973309f2dccb1d","path":"Sources/Sentry/include/SentryDiscardReasonMapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9879014d88396452103df748a911140649","path":"Sources/Sentry/SentryDiscardReasonMapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9838a316c2a52505b90e2ab955b2e32ee2","path":"Sources/Sentry/include/SentryDispatchFactory.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9806fef306e3573d4c9063aa896c52e9cf","path":"Sources/Sentry/SentryDispatchFactory.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d081f6d07a0efc2fe4eea107183c569c","path":"Sources/Sentry/include/SentryDispatchQueueWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9833a74cf76d2a20c8566233e6aef6bdd7","path":"Sources/Sentry/SentryDispatchQueueWrapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986222e01d4bf5b04d87ebb4dcea2e314a","path":"Sources/Sentry/include/SentryDispatchSourceWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d90240c32cb6d937c6bebb63d07af193","path":"Sources/Sentry/SentryDispatchSourceWrapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a47267f748e8255575fa13fd5b8d0479","path":"Sources/Sentry/include/SentryDisplayLinkWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9848e44537f357a35b44ec1eb6f8d26680","path":"Sources/Sentry/include/SentryDisplayLinkWrapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9803e781c48f2c7461e07d8d0e919946a8","path":"Sources/Sentry/Public/SentryDsn.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989b390446f1feafa973caf271aabefb70","path":"Sources/Sentry/SentryDsn.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a07c77d926ac0f69f5bd98d66c164246","path":"Sources/Swift/Helper/SentryEnabledFeaturesBuilder.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e5c9daf28d92783533cfd8ae2ac94f1f","path":"Sources/Sentry/include/HybridPublic/SentryEnvelope.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e293051b8704a4a3fc9a1878a319d018","path":"Sources/Sentry/SentryEnvelope.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d80cb6c50eb58766e38175f6edbec141","path":"Sources/Sentry/include/SentryEnvelope+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c739dee204526d9e9e154aa3f5516af1","path":"Sources/Sentry/include/SentryEnvelopeAttachmentHeader.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f3b7caf30d7d06002ce9702ebb4f8fe5","path":"Sources/Sentry/SentryEnvelopeAttachmentHeader.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f60c99c7bdd6a6ed1d7f5d20f86043bd","path":"Sources/Sentry/Public/SentryEnvelopeItemHeader.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980e3737b4e00a12ea03b1c096ad5cbc91","path":"Sources/Sentry/SentryEnvelopeItemHeader.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980e53fce71fe3eaf0ab47b29d26756e28","path":"Sources/Sentry/include/HybridPublic/SentryEnvelopeItemType.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9865fe4f53ba6de5e639314e18ccca3e72","path":"Sources/Sentry/include/SentryEnvelopeRateLimit.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9860afa2d6f7732744b608a5b22dc02efd","path":"Sources/Sentry/SentryEnvelopeRateLimit.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98506577b14c36564f8d3e39b38a42d61c","path":"Sources/Sentry/Public/SentryError.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e9829e2f85e1c743511eb369db2cd453d34","path":"Sources/Sentry/SentryError.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98069c9d0092825cca02327a0139525db2","path":"Sources/Sentry/Public/SentryEvent.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98315fc5c42731cbc9e52c441baa906597","path":"Sources/Sentry/SentryEvent.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982f122facb74c38437f6f5e10a9d6f7f4","path":"Sources/Sentry/include/SentryEvent+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e987561958e7b5abafefffc310f0153475c","path":"Sources/Swift/Protocol/Codable/SentryEventCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98828becd4fd89257b5bdda4c70b544e8b","path":"Sources/Swift/Protocol/Codable/SentryEventDecoder.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982f513f8c50fd63740d376cba01b03a10","path":"Sources/Sentry/Public/SentryException.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9869c2fac3c1a2a39ccefeb93a9fa9ef66","path":"Sources/Sentry/SentryException.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98578038198f467262c5d63800ccbf4c0f","path":"Sources/Swift/Protocol/Codable/SentryExceptionCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9847bc5fdce5f9eb8c80ef749a9f5c620a","path":"Sources/Swift/SentryExperimentalOptions.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9863a7bfc18485d8e1543480a6a94c66f6","path":"Sources/Sentry/SentryExtraContextProvider.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ecfcb048c3056fb084de04f431a42f89","path":"Sources/Sentry/SentryExtraContextProvider.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a692946265a018ffc98504b1feabf1f9","path":"Sources/Sentry/include/SentryExtraPackages.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f3c8a8578b7108e793745fe06a393c44","path":"Sources/Sentry/SentryExtraPackages.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f98955341f072318505600d7fc9d06d3","path":"Sources/Swift/Integrations/UserFeedback/SentryFeedback.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e988229426b3d2ae683f29aa34269fcb1e6","path":"Sources/Swift/Helper/SentryFileContents.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987b085cff51d4381c1c2453552e3d3afd","path":"Sources/Sentry/include/SentryFileIOTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98048fbf7e09b682349e3e1325f4259f26","path":"Sources/Sentry/SentryFileIOTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985d642455cbe051486bf01045313b494f","path":"Sources/Sentry/include/SentryFileIOTrackingIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98189376c04a5a3f1617345ebc9016b73b","path":"Sources/Sentry/SentryFileIOTrackingIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b19ccc40cc61e567dff3a010a7ceaf54","path":"Sources/Sentry/include/SentryFileManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f5640ba913c19e0d71f27b721be01b98","path":"Sources/Sentry/SentryFileManager.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98caa691478b1a2bcb70ddfefa95c1bf8d","path":"Sources/Sentry/include/HybridPublic/SentryFormatter.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987f4f88b40429c118e8b4e2e33cea1f98","path":"Sources/Sentry/Public/SentryFrame.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b9da56e1da950a8bc6800f81b9230679","path":"Sources/Sentry/SentryFrame.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a5bee5b252a30084fc6e029db6fd6830","path":"Sources/Swift/Protocol/Codable/SentryFrameCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b764de445b2c15214bd8acdcf4abe3b2","path":"Sources/Sentry/include/SentryFrameRemover.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98eaeab34e4e2c469f6298e1e196b7ab9d","path":"Sources/Sentry/SentryFrameRemover.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e988c5eb1d4ed92633506bd2a0393dbd8ed","path":"Sources/Swift/Integrations/FramesTracking/SentryFramesDelayResult.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988c9e757c170d0af9c94c18b8e22de510","path":"Sources/Sentry/include/HybridPublic/SentryFramesTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d84eb718f5826ab1db262ba7ff14c851","path":"Sources/Sentry/SentryFramesTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98971296ea46a5df991da9fbd684175fea","path":"Sources/Sentry/include/SentryFramesTrackingIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e986d38113dba9aa0a8bd90b0d663373171","path":"Sources/Sentry/SentryFramesTrackingIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984ba1390d085a0075e6b441c5b1508777","path":"Sources/Sentry/Public/SentryGeo.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e0e640080ecb2b63a332e87d7882a3db","path":"Sources/Sentry/SentryGeo.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98ee603e9ccba60eec64123a6005283944","path":"Sources/Swift/Protocol/Codable/SentryGeoCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d9cd56124568201248771afaad5d9f1f","path":"Sources/Sentry/include/SentryGlobalEventProcessor.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985a32b560381baf4c9a9eff8d8d044e1e","path":"Sources/Sentry/SentryGlobalEventProcessor.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98812ace5be8b18efb39c6bc9e08f15791","path":"Sources/Sentry/include/SentryHttpDateParser.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9897f06a243ab1505040adfa1527857a1b","path":"Sources/Sentry/SentryHttpDateParser.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d5bf77fa6bfe05ece285c3505cf16fa8","path":"Sources/Sentry/Public/SentryHttpStatusCodeRange.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984c7e3af27de6b51af6e508628815488e","path":"Sources/Sentry/SentryHttpStatusCodeRange.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ae8a62c0b6953ec0a581401b26edc338","path":"Sources/Sentry/include/SentryHttpStatusCodeRange+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9884fafdae13ea04ed7ef3a16fddc69566","path":"Sources/Sentry/include/SentryHttpTransport.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981037b7e2df9d49cf6f14474d8547db56","path":"Sources/Sentry/SentryHttpTransport.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98daa24ff78a41723a285529e36dee5200","path":"Sources/Sentry/Public/SentryHub.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98502832b6a7869eebf7eb12d9baa587ac","path":"Sources/Sentry/SentryHub.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9863f21861c3f13a20bbbee5fd17fa4843","path":"Sources/Sentry/include/SentryHub+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e987f284fb9e42f0d0d5d85a83399fa036d","path":"Sources/Swift/Helper/SentryIconography.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e989d7142abaef284478c5b1311eff57f45","path":"Sources/Swift/Protocol/SentryId.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98466f1556ad2b2c1b1e27c482c7970fca","path":"Sources/Sentry/include/SentryInAppLogic.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d443a165ef054bfcfbeeef9e57f0652a","path":"Sources/Sentry/SentryInAppLogic.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e71febfb709c5cc4bfdd8ebb3bf5c69c","path":"Sources/Sentry/include/SentryInstallation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98070e5262f3138c1116934fa75bdc4f89","path":"Sources/Sentry/SentryInstallation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e988bedad6795e7b9b7520fbe331d142fe9","path":"Sources/Swift/Protocol/SentryIntegrationProtocol.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c0baeea9bd4614c94562949f334f76d6","path":"Sources/Sentry/include/SentryInternalCDefines.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9858f188e1c28a98bcca4608b51388c9ec","path":"Sources/Sentry/include/SentryInternalDefines.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985291a134dc13aaec907ab0dafdcbd12b","path":"Sources/Sentry/include/SentryInternalNotificationNames.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9828e6721efda94d26dc4a3a49cbdf0cc1","path":"Sources/Sentry/include/SentryInternalSerializable.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bc78f9214650ab25a58a147ceefe10f4","path":"Sources/Sentry/include/SentryLaunchProfiling.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ab8a3eff350c067055f805c6ffa8abda","path":"Sources/Sentry/Profiling/SentryLaunchProfiling.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98dbe304f4e2ea02b382b9bb5f7d672163","path":"Sources/Swift/Helper/Log/SentryLevel.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9898fa93add48cfeb7285c0a8c03c50a78","path":"Sources/Sentry/include/SentryLevelHelper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98343d607af07f9c2762b794bbdbf43cf3","path":"Sources/Sentry/SentryLevelHelper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98091002a9a049f0cb1149d45123e3de26","path":"Sources/Sentry/include/SentryLevelMapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98bca8a4663fb9ce18f791911aef8a78ef","path":"Sources/Sentry/SentryLevelMapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9866746bfb1b0e59cb483ed26dd432bdea","path":"Sources/Sentry/include/SentryLog.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98b5c6088a7a59ef3870afd0ca6506c6f8","path":"Sources/Swift/Tools/SentryLog.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98138aafe2b2d0eb3d00b18c99c389f742","path":"Sources/Sentry/include/SentryLogC.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b56a87a8388850e0204746badf7e76aa","path":"Sources/Sentry/SentryLogC.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98d84a39654a84ef6c52610defccabf9f6","path":"Sources/Swift/Tools/SentryLogOutput.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.cpp","guid":"bfdfe7dc352907fc980b868725387e9817cc53fd803394a70c2a54b6d6e97284","path":"Sources/Sentry/SentryMachLogging.cpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.h","guid":"bfdfe7dc352907fc980b868725387e98fa2883119bf8c3e9ab2c374ce34623ca","path":"Sources/Sentry/include/SentryMachLogging.hpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e985b6b062ebd93a5323b23514cb5f3c7c9","path":"Sources/Swift/Integrations/SessionReplay/Preview/SentryMaskingPreviewView.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984e5feec70c29af392596ab5526c744f4","path":"Sources/Sentry/Public/SentryMeasurementUnit.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989bcdf3148ed118a4b41380ae9ed62ae1","path":"Sources/Sentry/SentryMeasurementUnit.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98539761fbe83518f42eea4c89b3bd0c3b","path":"Sources/Sentry/include/SentryMeasurementValue.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9839b7a3e5e54d010c4f55e5d5a541479a","path":"Sources/Sentry/SentryMeasurementValue.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dc96683fd6fa1284c0b7de46daab2073","path":"Sources/Sentry/Public/SentryMechanism.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981509759fd3251958a936bf43a121ea38","path":"Sources/Sentry/SentryMechanism.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9834557125b15e9f11ca4f72907b1c2101","path":"Sources/Swift/Protocol/Codable/SentryMechanismCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984c11ff8741b2abffd293f1f9e250d860","path":"Sources/Sentry/Public/SentryMechanismMeta.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9876f4963fefc5ae218db9a494f5318625","path":"Sources/Sentry/SentryMechanismMeta.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98e48e06b3b05bf930a279c02ded5a8ae4","path":"Sources/Swift/Protocol/Codable/SentryMechanismMetaCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d563adcc5a84f3530e2dd7c1259dcec4","path":"Sources/Sentry/Public/SentryMessage.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98922d795d5368e9c6bc8bb2d172bea2f3","path":"Sources/Sentry/SentryMessage.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9832c3db0ff412430ca91c7f8fdc282e23","path":"Sources/Swift/Protocol/Codable/SentryMessage.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9845b9f4faf6e50d942f3cae0ad32f57b5","path":"Sources/Sentry/include/SentryMeta.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98429c69e8b1c5a828afd76961b824921f","path":"Sources/Sentry/SentryMeta.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9802cf107443da5c9a87121b7cacf15ece","path":"Sources/Sentry/include/SentryMetricKitIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985366976e382462eb7ebd783085c01b08","path":"Sources/Sentry/SentryMetricKitIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986663a27e54653db952dea795ea17f8ae","path":"Sources/Sentry/include/SentryMetricProfiler.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e985cb761d7ef05ca451f79eaeefd80346c","path":"Sources/Sentry/SentryMetricProfiler.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e2d60e2124035c589d7bf7f708b43c46","path":"Sources/Sentry/include/SentryMigrateSessionInit.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982d4a6b1cfa0c3c2da4f29b8475ef503d","path":"Sources/Sentry/SentryMigrateSessionInit.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984590b15d1af5896ff70081a71c05ca5f","path":"Sources/Sentry/include/SentryMsgPackSerializer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b3ceeec96b7345f03c0ac0137d8e0a03","path":"Sources/Sentry/SentryMsgPackSerializer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e981cb0a7499401753795f143d523406b75","path":"Sources/Swift/MetricKit/SentryMXCallStackTree.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e988141eb81c70aada6b09e2bda8d8f74a9","path":"Sources/Swift/MetricKit/SentryMXManager.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ff7d30305cc39c1392c25c37536d4a22","path":"Sources/Sentry/include/SentryNetworkTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9800ef737b5f918afc867ad869126c97e3","path":"Sources/Sentry/SentryNetworkTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ad1e98c90f2f5197a2ae257449f18299","path":"Sources/Sentry/include/SentryNetworkTrackingIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f366cd285e829de77f5cba01e1268e8f","path":"Sources/Sentry/SentryNetworkTrackingIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98597a7c103db94d59c5931aca5763d128","path":"Sources/Sentry/include/SentryNoOpSpan.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9800ed94b438374217e401a17f41991237","path":"Sources/Sentry/SentryNoOpSpan.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984ff4a3442437cbfe9c5eb889db8fd4c5","path":"Sources/Sentry/include/SentryNSDataSwizzling.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f8cd356e10f054303757e7823150edae","path":"Sources/Sentry/SentryNSDataSwizzling.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983e2f3db4071053bff76e50cca051600a","path":"Sources/Sentry/include/SentryNSDataUtils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989ef7e9d9a1424413d9470f43615ef4b5","path":"Sources/Sentry/SentryNSDataUtils.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9842e4fd7e9e31d6020d7139c3792aacdd","path":"Sources/Sentry/include/SentryNSDictionarySanitize.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984494b0503304aec5861c45ea1229b9e2","path":"Sources/Sentry/SentryNSDictionarySanitize.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ac6fd977b49204b4c108523c3f3c70c7","path":"Sources/Sentry/Public/SentryNSError.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987edc2fb75adc6418df0353c47f32ce54","path":"Sources/Sentry/SentryNSError.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98c4b4e30741dc247a4c609674440de4b3","path":"Sources/Swift/Protocol/Codable/SentryNSErrorCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988b0e2f0b45736f8dc7bd0df694ade0db","path":"Sources/Sentry/include/SentryNSFileManagerSwizzling.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d5162e46ba40a03df7d33abdb74f5dd3","path":"Sources/Sentry/SentryNSFileManagerSwizzling.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983d1acad953bcf648389534c3903cf9ef","path":"Sources/Sentry/include/SentryNSNotificationCenterWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d58941a66ca190fd80531545f08a04e9","path":"Sources/Sentry/SentryNSNotificationCenterWrapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9881a0b274ac195e0e067c598e51612d0e","path":"Sources/Sentry/include/SentryNSProcessInfoWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e982d86fd45d5ff3518e552498239fcdc8d","path":"Sources/Sentry/SentryNSProcessInfoWrapper.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98017f9ac1330413942c21c8cac2f9ce62","path":"Sources/Sentry/include/SentryNSTimerFactory.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a94ea13f7fe28ce4a8a9d5cc069f3ddb","path":"Sources/Sentry/SentryNSTimerFactory.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b1879e47078f969f206271009cc73784","path":"Sources/Sentry/include/SentryNSURLRequest.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981de0bfed7ae1adffed9303178213653c","path":"Sources/Sentry/SentryNSURLRequest.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980c1894dfaacfa039d9f1ece64fffa728","path":"Sources/Sentry/include/SentryNSURLRequestBuilder.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982f255f3e938b0d0d7e185881af36dc16","path":"Sources/Sentry/SentryNSURLRequestBuilder.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e595f78a3052c265d4d6b376ad0c009b","path":"Sources/Sentry/include/SentryNSURLSessionTaskSearch.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c71138aa51c9585d91e951852ac78d4c","path":"Sources/Sentry/SentryNSURLSessionTaskSearch.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987e383203e79798a6ebe7e15dc590fc45","path":"Sources/Sentry/include/SentryObjCRuntimeWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e984a00d325d787d7fe05ff2cd2a1019a05","path":"Sources/Swift/Integrations/SessionReplay/SentryOnDemandReplay.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a2c923ddd593b798c3506538524c3936","path":"Sources/Sentry/Public/SentryOptions.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9806b94507c9dc21657efb363dd48722d8","path":"Sources/Sentry/SentryOptions.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988e606e06ed46012b1c0a7ca50f6a1ee2","path":"Sources/Sentry/include/HybridPublic/SentryOptions+HybridSDKs.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a70709622d04b30e5d08b5f40ddf1ec3","path":"Sources/Sentry/include/SentryOptions+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987116654ce66e1982023b20ca5c98551a","path":"Sources/Sentry/include/SentryPerformanceTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9808d9e029232831f97720189440f7f89d","path":"Sources/Sentry/SentryPerformanceTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98acdbfaf78cbd44846c589f8345fdf54b","path":"Sources/Sentry/include/SentryPerformanceTrackingIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c1c72729cf8bf8cd2b73057e505cd86b","path":"Sources/Sentry/SentryPerformanceTrackingIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e982220108432d5cef3198a72ec5c007ff9","path":"Sources/Swift/Integrations/SessionReplay/SentryPixelBuffer.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9892fa1092dd5b2d9171b1ff902fb8d8ab","path":"Sources/Sentry/include/SentryPredicateDescriptor.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98aaa4b81f4bc699c51967c3fab85b4f4b","path":"Sources/Sentry/SentryPredicateDescriptor.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ac5479fd5bce7d8e7580d3b5a361af85","path":"Sources/Sentry/include/SentryPrivate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986d1a75c67178655a75da0988a12a00ed","path":"Sources/Sentry/include/SentryProfiledTracerConcurrency.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e9819858cbe4e062b7ee3dc018d6432f790","path":"Sources/Sentry/Profiling/SentryProfiledTracerConcurrency.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e98919a8ae2e25fe8e2cd2e803b23d8e418","path":"Sources/Sentry/SentryProfiler.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981651764b0322736536e9a00043990477","path":"Sources/Sentry/include/SentryProfiler+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980eb79846ad696a55c4f81c216a8c3506","path":"Sources/Sentry/Profiling/SentryProfilerDefines.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986e3d902f917d0802e980fbc70d9d9003","path":"Sources/Sentry/include/SentryProfilerSerialization.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e98e998c6bb33e11c3feea17aa62dad70e8","path":"Sources/Sentry/Profiling/SentryProfilerSerialization.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9874c57e03b15d112af948ceec60da3149","path":"Sources/Sentry/Profiling/SentryProfilerSerialization+Test.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98036710a4968117e0f1ffd0a82de1c734","path":"Sources/Sentry/include/SentryProfilerState.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e98475e46dbf15bd97afaf10001d96cb18b","path":"Sources/Sentry/Profiling/SentryProfilerState.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98985f6ca335afd2ff66e4c578e83ffdc7","path":"Sources/Sentry/include/SentryProfilerState+ObjCpp.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984717140214e0fc6b7c0f44beb2f6e072","path":"Sources/Sentry/include/SentryProfilerTestHelpers.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981cbdf66da8d580cf9318b7dcc3a56739","path":"Sources/Sentry/Profiling/SentryProfilerTestHelpers.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9838b78bff7ae2609ed38b167db38cc35f","path":"Sources/Sentry/include/SentryProfileTimeseries.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e98984b571bd52e25b80204a15948000bd2","path":"Sources/Sentry/SentryProfileTimeseries.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9899950d309ca080ad6f60aec3273bcfff","path":"Sources/Sentry/Public/SentryProfilingConditionals.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a5538ebf4b5fb0decc3ac06095a24f73","path":"Sources/Sentry/SentryPropagationContext.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c5a38f2dfad640d8e4fa90dfa5dd223a","path":"Sources/Sentry/SentryPropagationContext.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9842589c6a43fc80d2bb905f8f8b302d1b","path":"Sources/Sentry/include/SentryQueueableRequestManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98207934bb3647abdb3632b379e95dd3cd","path":"Sources/Sentry/SentryQueueableRequestManager.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c8e233a7b519b78007ccd3b875621993","path":"Sources/Sentry/include/SentryRandom.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e031e22a34f80baf9e6c586934a414ad","path":"Sources/Sentry/SentryRandom.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985a2a9f05a793caf2b07babd7e4cc01fd","path":"Sources/Sentry/include/SentryRateLimitParser.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98863345211ba631a143988a4531b79085","path":"Sources/Sentry/SentryRateLimitParser.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9851b47854ea0cdafe7ed307142d71f09d","path":"Sources/Sentry/include/SentryRateLimits.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d9f41df844ef5c7a313cdc78e9f9e692","path":"Sources/Sentry/include/SentryReachability.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9878c1cc99a1e43e6ed7dd3eaa45adeee9","path":"Sources/Sentry/SentryReachability.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e981b020283c4f5d21114bcc1071b60368a","path":"Sources/Swift/Protocol/SentryRedactOptions.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983c69801b379d906a546ddf2407ea03bd","path":"Sources/Sentry/Public/SentryReplayApi.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ed357f711ae701486fe1809f3d7f9fac","path":"Sources/Sentry/SentryReplayApi.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98512aa3090bc74ab024c7558ade2bebf3","path":"Sources/Swift/Integrations/SessionReplay/SentryReplayEvent.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98da15b4142127602565d8c4670a7c3ea5","path":"Sources/Swift/Integrations/SessionReplay/SentryReplayOptions.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98e8b9d46b60704ff29d56ae4675094d2f","path":"Sources/Swift/Integrations/SessionReplay/SentryReplayRecording.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e981d1fe89c1a938ef5d3ed28478c2247fc","path":"Sources/Swift/Integrations/SessionReplay/SentryReplayType.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9884da1a22f25fad29f6884d60ee3df3e4","path":"Sources/Swift/Integrations/SessionReplay/SentryReplayVideoMaker.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e680e7df6c0003d7bb314d42a51904c9","path":"Sources/Sentry/Public/SentryRequest.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981766ad0aea33cb832626ecc9e718608a","path":"Sources/Sentry/SentryRequest.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a0593ffb46b92559fca6d1e5226a4da7","path":"Sources/Swift/Protocol/Codable/SentryRequestCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d7c2c4f012d74beeb04e5c3525d09676","path":"Sources/Sentry/include/SentryRequestManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f0af5d51b670c53b235ff6b13ea2b0fd","path":"Sources/Sentry/include/SentryRequestOperation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983eff10593b42aabc9ad58febfb4b6584","path":"Sources/Sentry/SentryRequestOperation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ea3a7dcbc2872c021c2f9976e79eacef","path":"Sources/Sentry/include/SentryRetryAfterHeaderParser.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e10b968b0d46ad4c5d632b2ad4cf7ef2","path":"Sources/Sentry/SentryRetryAfterHeaderParser.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a2005df5d4bc4a9a9974019bf67c2c66","path":"Sources/Swift/Integrations/SessionReplay/RRWeb/SentryRRWebBreadcrumbEvent.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9817363a068086e7b32dc572f75748eca5","path":"Sources/Swift/Integrations/SessionReplay/RRWeb/SentryRRWebCustomEvent.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e981e01605f9a9b38019d27a4da6862010d","path":"Sources/Swift/Integrations/SessionReplay/RRWeb/SentryRRWebEvent.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e988f43e6bfff8180671026d3f72707a172","path":"Sources/Swift/Integrations/SessionReplay/RRWeb/SentryRRWebMetaEvent.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98e6b8f56eab61c7047f975600922d334f","path":"Sources/Swift/Integrations/SessionReplay/RRWeb/SentryRRWebOptionsEvent.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9858e579b31ec0b49c94151ee91b5c56d4","path":"Sources/Swift/Integrations/SessionReplay/RRWeb/SentryRRWebSpanEvent.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e982865a0b9365ddcfa914e8537a785a7e2","path":"Sources/Swift/Integrations/SessionReplay/RRWeb/SentryRRWebTouchEvent.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e989ce578c7ffef95885c4e807b0ee10e45","path":"Sources/Swift/Integrations/SessionReplay/RRWeb/SentryRRWebVideoEvent.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982ecd037a4c8497285ea669105f9f3282","path":"Sources/Sentry/include/SentrySample.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ebffb1fe20fe78a067a1244ebc30985b","path":"Sources/Sentry/Profiling/SentrySample.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b43dea0da7d4ec507e53a7393b85545a","path":"Sources/Sentry/Public/SentrySampleDecision.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989984f0f4448d02690bb493b8d4df631a","path":"Sources/Sentry/SentrySampleDecision.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983ee75e71b8fde2c3180da3b2347ae1bf","path":"Sources/Sentry/include/SentrySampleDecision+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988f9b7af96715f64db7fae5e125938ccc","path":"Sources/Sentry/include/SentrySamplerDecision.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98874c02b23c06b56e6fb5723a60f4f53e","path":"Sources/Sentry/SentrySamplerDecision.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fdcf17f7bfb7fc88e45da7cdcb6d459d","path":"Sources/Sentry/include/SentrySampling.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f1a69304464be71ce85dcdb67a6e60ec","path":"Sources/Sentry/SentrySampling.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986da9c5d127c5a70054c0886f538462cf","path":"Sources/Sentry/Public/SentrySamplingContext.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98de16f80bab26f3404c38461424de59f7","path":"Sources/Sentry/SentrySamplingContext.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.cpp","guid":"bfdfe7dc352907fc980b868725387e98fac099bd8021bad6695885c0fc94baaa","path":"Sources/Sentry/SentrySamplingProfiler.cpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.h","guid":"bfdfe7dc352907fc980b868725387e98c4361fe1544b4865d0e94f860a93be79","path":"Sources/Sentry/include/SentrySamplingProfiler.hpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9806c11f5366472efd841db07495cc2f4f","path":"Sources/Sentry/Public/SentryScope.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9846d7cb2cdbdbfc2cc7ad9129d83f5461","path":"Sources/Sentry/SentryScope.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98884de1e2e0fdf26e430b546fd4dd509a","path":"Sources/Sentry/include/SentryScope+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ca8fd7ffdfbab77065039448eea9fe72","path":"Sources/Sentry/include/SentryScopeObserver.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e9826403765852bb10fd3f823587d69dea0","path":"Sources/Sentry/SentryScopeSyncC.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cf3b14176e958d526386484802388edc","path":"Sources/Sentry/include/SentryScopeSyncC.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b19ff3ec6b179b2f6ac00cbeeba5960c","path":"Sources/Sentry/include/HybridPublic/SentryScreenFrames.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9837cdcae99ab615e528ee539fc6872a34","path":"Sources/Sentry/SentryScreenFrames.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988871761b6529ef88558e2a14a158df5e","path":"Sources/Sentry/include/SentryScreenshot.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e06826e46a8ee03ecbc275d8a583a2d6","path":"Sources/Sentry/SentryScreenshot.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981fe62c74d7c7d3dbbd29cd1385b73c6b","path":"Sources/Sentry/include/SentryScreenshotIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98fde386236c3d3f89e97b5db76cead50b","path":"Sources/Sentry/SentryScreenshotIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985992e829ca1afa7024f5f494d6d8f713","path":"Sources/Sentry/Public/SentrySDK.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98501e3671cdf8f304075029b28cddd0c8","path":"Sources/Sentry/SentrySDK.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e40513cc03bb1527761ca47839a291b5","path":"Sources/Sentry/include/SentrySDK+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980107f0efe4c3df3a4bbf5aebb573f069","path":"Sources/Sentry/include/SentrySdkInfo.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d8f9151a3dd56012ce15a5a9cd630378","path":"Sources/Sentry/SentrySdkInfo.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98413dc8327e326088a227e60c802d91ad","path":"Sources/Sentry/include/SentrySdkPackage.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d62595dc37317fc74f3f3a03671db0c0","path":"Sources/Sentry/SentrySdkPackage.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98af98fbdf9e9130a7b5cd2cfd4f1a4039","path":"Sources/Sentry/Public/SentrySerializable.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98619340217942e748fea20ba974e40df2","path":"Sources/Sentry/include/SentrySerialization.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98062d0315b67fff2f6dad3227cece0aa9","path":"Sources/Sentry/SentrySerialization.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981e36474d33b7f7330da5879ec9e550cc","path":"Sources/Sentry/include/SentrySession.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e05dd95c0e8fda1d3a8facd0610a4b71","path":"Sources/Sentry/SentrySession.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9803324e436362ee0326b17370d1b57d5f","path":"Sources/Sentry/include/SentrySession+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98d9cc0e3074ade12c6a0ff1b268d69877","path":"Sources/Swift/Protocol/SentrySessionListener.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98afb23271f996080c0f493b9b3970c13c","path":"Sources/Swift/Integrations/SessionReplay/SentrySessionReplay.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981af4586b7cd8a61732796dc0004020bc","path":"Sources/Sentry/include/HybridPublic/SentrySessionReplayIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98591014009a78d805568e47da3155f96c","path":"Sources/Sentry/SentrySessionReplayIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a6ab4191ca170eb3fcc7d76be8edb69a","path":"Sources/Sentry/include/SentrySessionReplayIntegration+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d3a4be1c93971b161f45c446a268a925","path":"Sources/Sentry/include/HybridPublic/SentrySessionReplayIntegration-Hybrid.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e980c503066a8d12b33d1dac0d190ee7782","path":"Sources/Sentry/SentrySessionReplaySyncC.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c09c91592fdb1e94366f921af7a6b9e6","path":"Sources/Sentry/include/SentrySessionReplaySyncC.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98501d80ee39d5fb913b610b95ded6dd12","path":"Sources/Sentry/include/SentrySessionTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9881df42ca3d4604f7e2cfea47beb4ca17","path":"Sources/Sentry/SentrySessionTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c0dc0d31983c9f5699f97a7c86b819be","path":"Sources/Sentry/include/SentrySpan.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981945f0eb7dc530e6cb60edce661ef89a","path":"Sources/Sentry/SentrySpan.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989be8d7f7a4b7a88d0396418f21922242","path":"Sources/Sentry/include/SentrySpan+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985a843ae229dd393d05abc3924d912060","path":"Sources/Sentry/Public/SentrySpanContext.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983fd93fac530279089e5e5073c4a2c072","path":"Sources/Sentry/SentrySpanContext.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fb81caa2ec05caf4d64055db20cbfb3d","path":"Sources/Sentry/include/SentrySpanContext+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983dd3ffd91931063c6e0f40772ee04bf2","path":"Sources/Sentry/include/SentrySpanDataKey.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ea261f0880872b380bedc98dbd25631f","path":"Sources/Sentry/SentrySpanDataKey.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f2c3f3b65118fd296209db65016c46e6","path":"Sources/Sentry/Public/SentrySpanId.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b6181d284445cde5dd76bda5bb770879","path":"Sources/Sentry/SentrySpanId.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cfe67ce25f058a66fd161993626700d6","path":"Sources/Sentry/include/SentrySpanOperation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d78364fbe4518c9a29cffbd19b2c71ce","path":"Sources/Sentry/SentrySpanOperation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98138f6742f27f2df9abc08de74c101a84","path":"Sources/Sentry/Public/SentrySpanProtocol.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987c745be9c34e9fb3d6df387589f347a3","path":"Sources/Sentry/Public/SentrySpanStatus.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9824e33cca16721f2027fb7bad853ec643","path":"Sources/Sentry/SentrySpanStatus.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9816ae19f44f3378379d78a93555501e7b","path":"Sources/Sentry/include/SentrySpotlightTransport.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9829897cdfc92bc7268d92fc00826202e9","path":"Sources/Sentry/SentrySpotlightTransport.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f2659f1e28f3446c0951ed4e0cfda4c8","path":"Sources/Swift/Integrations/SessionReplay/SentrySRDefaultBreadcrumbConverter.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.h","guid":"bfdfe7dc352907fc980b868725387e98ca41f42897b0d15b1a5349841f4ea171","path":"Sources/Sentry/include/SentryStackBounds.hpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.h","guid":"bfdfe7dc352907fc980b868725387e98218a6bed289413cd1fa181e5e4a71993","path":"Sources/Sentry/include/SentryStackFrame.hpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982eaa1d8d4452501ad8604dc0593b120a","path":"Sources/Sentry/Public/SentryStacktrace.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98125ce290593f358bdc99749f35247fab","path":"Sources/Sentry/SentryStacktrace.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9816304fa37be1607fcb5c78294327a320","path":"Sources/Sentry/include/SentryStacktraceBuilder.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98205ec7b1c28ebb06ade35cd1fa341ba0","path":"Sources/Sentry/SentryStacktraceBuilder.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98809409cb027066389a5795872ac588cd","path":"Sources/Swift/Protocol/Codable/SentryStacktraceCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98423027e4a07dcdf3892d3b5e401fec6d","path":"Sources/Sentry/include/SentrySubClassFinder.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984559b4fd4202895b75dc66ede5b781f4","path":"Sources/Sentry/SentrySubClassFinder.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987fcb3ac8423709d33718ccb3b992116c","path":"Sources/Sentry/include/SentrySwift.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d118d4d6703b8936ff571cf5beb99f9e","path":"Sources/Sentry/include/SentrySwiftAsyncIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98625cc54b7e7def606b65413cc0124e28","path":"Sources/Sentry/SentrySwiftAsyncIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989a528c359d4254b58c122c569d00a654","path":"Sources/Sentry/include/HybridPublic/SentrySwizzle.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f675c1f88dd3984961db267b92f5fbe5","path":"Sources/Sentry/SentrySwizzle.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c81c2a2b455dd3e30a0325b70b87e5b1","path":"Sources/Sentry/include/SentrySwizzleWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983888394e65011ad59666f7a3af4f1bd6","path":"Sources/Sentry/SentrySwizzleWrapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f690bf146f9505c3a561f5eb2cc88077","path":"Sources/Sentry/include/SentrySysctl.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982e497713d18e0e48763b33527b1b0dc1","path":"Sources/Sentry/SentrySysctl.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e945abe7731d81c5687528f8fb1dae17","path":"Sources/Sentry/include/SentrySystemEventBreadcrumbs.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c81bbf9e2eb8dc321c67eba3ba3b80b3","path":"Sources/Sentry/SentrySystemEventBreadcrumbs.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98acdbef770b6f5194256e46b66af5a237","path":"Sources/Sentry/include/SentrySystemWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e981b78d8f1cd80b6a0749a88ac6576cf6d","path":"Sources/Sentry/SentrySystemWrapper.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982543bbef87d0c4cf2ffcaad132d58d03","path":"Sources/Sentry/Public/SentryThread.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f5c27fc32d722da67cf36fc9bb4a6b53","path":"Sources/Sentry/SentryThread.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98fdfe1a2b63e561ab4ea63b9472cec5d8","path":"Sources/Swift/Protocol/Codable/SentryThreadCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.cpp","guid":"bfdfe7dc352907fc980b868725387e988d07f6cdecb770a7f852e90574e74a08","path":"Sources/Sentry/SentryThreadHandle.cpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.h","guid":"bfdfe7dc352907fc980b868725387e980d0473e5c442da9fa4261289c9928064","path":"Sources/Sentry/include/SentryThreadHandle.hpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985846b2ab802d29550aec8ede32680275","path":"Sources/Sentry/include/SentryThreadInspector.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c7c45292b121868b939e4863f9812497","path":"Sources/Sentry/SentryThreadInspector.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.cpp","guid":"bfdfe7dc352907fc980b868725387e984c1307586fc8b490ffa8c6041d0cc17d","path":"Sources/Sentry/SentryThreadMetadataCache.cpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.h","guid":"bfdfe7dc352907fc980b868725387e98e1b49f63d0cd2853cb829e5a2918ffa5","path":"Sources/Sentry/include/SentryThreadMetadataCache.hpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.h","guid":"bfdfe7dc352907fc980b868725387e98b420b7a29b1f8f73c12c58c506c0c962","path":"Sources/Sentry/include/SentryThreadState.hpp","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98814348841a9f4195a6a06992d4786767","path":"Sources/Sentry/include/SentryThreadWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9849c6212d31b9c9f34e35595c06db4a58","path":"Sources/Sentry/SentryThreadWrapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989874bdc2cfc5514095aa93b6576cc69f","path":"Sources/Sentry/include/SentryTime.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e986c1595591faf77978e0b1d62129253a9","path":"Sources/Sentry/SentryTime.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9848e08d78a915c3c0f96a18053b3cf72a","path":"Sources/Sentry/include/SentryTimeToDisplayTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9823cd3dce0b1c8e3d32903f5d586a232f","path":"Sources/Sentry/SentryTimeToDisplayTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9822824ce6d92f986c1126319dc6da0983","path":"Sources/Swift/Integrations/SessionReplay/SentryTouchTracker.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985e5c988105a7519e5bc001c5349cfd42","path":"Sources/Sentry/Public/SentryTraceContext.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9831bc2e0203500425211e153960b08851","path":"Sources/Sentry/SentryTraceContext.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ae9c69fbbc7e9d0adc23720c86865e08","path":"Sources/Sentry/Public/SentryTraceHeader.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ace9ddf23fa508ee835d162ad30f03f8","path":"Sources/Sentry/SentryTraceHeader.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dd1cb0c2bf7a9ee2bb8b0a9915bef1cd","path":"Sources/Sentry/include/SentryTraceOrigin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985c0044027bab5a4704060e4e5f904e07","path":"Sources/Sentry/SentryTraceOrigin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98719d56d08b291e386d21a40f4eeaa427","path":"Sources/Sentry/include/SentryTraceProfiler.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e982b28d2af4ed55002b7a46662ca301ec2","path":"Sources/Sentry/Profiling/SentryTraceProfiler.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982db3bdee5c4500abb4ab8d2757f1a033","path":"Sources/Sentry/include/SentryTracer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98df1d24508b0a61d90da9ae1ce83f135d","path":"Sources/Sentry/SentryTracer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98baf55b500d4de58c3c849b1b81dac417","path":"Sources/Sentry/include/SentryTracer+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9895854da8932cfe485ec330ba4318fd19","path":"Sources/Sentry/include/SentryTracerConfiguration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98bb54e277ca1f8b4b69e603b3b63c82b4","path":"Sources/Sentry/SentryTracerConfiguration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986a8f21fc3d8c58b4fe23445d2afc06df","path":"Sources/Sentry/include/SentryTransaction.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9833a95fec9528d2a052c5b3cfdcf8d027","path":"Sources/Sentry/SentryTransaction.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989791e8b223fc1633cd0d999951cb65de","path":"Sources/Sentry/Public/SentryTransactionContext.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e983e787a852909552410851f61f7b406bb","path":"Sources/Sentry/SentryTransactionContext.mm","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98de9940418fc7c9c959e3d63ffe1bbb95","path":"Sources/Sentry/include/SentryTransactionContext+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f492ea79b388c9250a6bad9779ceb907","path":"Sources/Swift/Integrations/Performance/SentryTransactionNameSource.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9820530460f1fcf996fad6f7cf439565dd","path":"Sources/Sentry/include/SentryTransport.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985e302b6c3557143cb800b1eeaf8bbab1","path":"Sources/Sentry/include/SentryTransportAdapter.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98193a4a8d06e581888973779d8a4292ba","path":"Sources/Sentry/SentryTransportAdapter.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98873fa1f52fe5f49dfa143f94033327a6","path":"Sources/Sentry/include/SentryTransportFactory.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9824d0ef168891305517e4122463af7708","path":"Sources/Sentry/SentryTransportFactory.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98063109808ff5e9958a6c842cfc078daa","path":"Sources/Sentry/include/SentryUIApplication.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a89d7b5ab8c0c853cd3e782f46029618","path":"Sources/Sentry/SentryUIApplication.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980f5cee24283df59b62d869f0bedf11ae","path":"Sources/Sentry/include/SentryUIDeviceWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983bc3a616028938c6883fd9cb644df009","path":"Sources/Sentry/SentryUIDeviceWrapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9870eb4ca5d72ee7a93da5a0ac1d648601","path":"Sources/Sentry/include/SentryUIEventTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ac3fe81c8c0c7aa1e06d823a8e25bcbb","path":"Sources/Sentry/SentryUIEventTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983026ba2c9267ae9a0cb99064e7cfe3c8","path":"Sources/Sentry/include/SentryUIEventTrackerMode.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983e2c4a0d6c2271ca0a664f6524679065","path":"Sources/Sentry/include/SentryUIEventTrackerTransactionMode.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e7d26959b1ccb56da530e11181107067","path":"Sources/Sentry/SentryUIEventTrackerTransactionMode.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989021ec7d5feb08229f4274167a811495","path":"Sources/Sentry/include/SentryUIEventTrackingIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989d93693383d54a98e8156ce3a768dcf5","path":"Sources/Sentry/SentryUIEventTrackingIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981635393f4980a4dc1cc14f0ceeceeee1","path":"Sources/Sentry/include/SentryUIViewControllerPerformanceTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9879aa65ce6bd68dd060dcdc12ac4ec26b","path":"Sources/Sentry/SentryUIViewControllerPerformanceTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cd26a7ec82684cb2832199caae5344e8","path":"Sources/Sentry/include/SentryUIViewControllerSwizzling.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9871419ad767dfae1901a2b2b3a6728a10","path":"Sources/Sentry/SentryUIViewControllerSwizzling.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98aa70fe14ebba76913c505609c334ef03","path":"Sources/Sentry/include/SentryUncaughtNSExceptions.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98bb67c48ad7cd0ce696617dd0f2dd24ff","path":"Sources/Sentry/SentryUncaughtNSExceptions.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98386d6ddd440f2cca52ba0f07993f9588","path":"Sources/Sentry/Public/SentryUser.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98447a26ccb3ff492a89196dba6818c702","path":"Sources/Sentry/SentryUser.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98358012f8d265eeb8266af58bd6d281c6","path":"Sources/Sentry/include/HybridPublic/SentryUser+Private.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9825667ccdd773fcbe6789376b16175be7","path":"Sources/Sentry/SentryUserAccess.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9816afa3335d6fe78b94816ed210faca3b","path":"Sources/Sentry/SentryUserAccess.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e985edf2277033ca116961d5240bac652e4","path":"Sources/Swift/Protocol/Codable/SentryUserCodable.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b680d3534840a16fcbde2e980b6dee18","path":"Sources/Sentry/Public/SentryUserFeedback.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e3a754a55b63ae4cebfe8b67476e0d4f","path":"Sources/Sentry/SentryUserFeedback.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98e7731c7ae539590ab60a92f58b101bfc","path":"Sources/Swift/Integrations/UserFeedback/Configuration/SentryUserFeedbackConfiguration.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f24118d67fa5d576902b453ca32fb4d4","path":"Sources/Swift/Integrations/UserFeedback/Configuration/SentryUserFeedbackFormConfiguration.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e984f83a247093b7bfae30dbc56323b72cd","path":"Sources/Swift/Integrations/UserFeedback/SentryUserFeedbackFormController.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e984364ba2cb29c17db3b6fd556b9461501","path":"Sources/Swift/Integrations/UserFeedback/SentryUserFeedbackFormViewModel.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988c759d1a37794e5f5c6c1d4661164bb2","path":"Sources/Sentry/include/SentryUserFeedbackIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9891ed4109c5eb8623e4e20ccfd3a548c0","path":"Sources/Sentry/SentryUserFeedbackIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e984179e602b4169c925fc952b9a7fdca9b","path":"Sources/Swift/Integrations/UserFeedback/SentryUserFeedbackIntegrationDriver.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98524ba53a36de77eb59d6fdee45ea1b55","path":"Sources/Swift/Integrations/UserFeedback/Configuration/SentryUserFeedbackThemeConfiguration.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9856b77f5d4bdfb03262bb4e1e8e7143ca","path":"Sources/Swift/Integrations/UserFeedback/SentryUserFeedbackWidget.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98038d4bb405cbab04d9c45c44a91be1b7","path":"Sources/Swift/Integrations/UserFeedback/SentryUserFeedbackWidgetButtonMegaphoneIconView.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e980ed28895b243791a16c810c27926dc18","path":"Sources/Swift/Integrations/UserFeedback/SentryUserFeedbackWidgetButtonView.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9885adef922d4f212fadd18a6dd044f40b","path":"Sources/Swift/Integrations/UserFeedback/Configuration/SentryUserFeedbackWidgetConfiguration.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9837cb67609c514d53e4a10de36e7f78ec","path":"Sources/Swift/Integrations/SessionReplay/SentryVideoInfo.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98e5d43831254ef977325a522d2d940a49","path":"Sources/Swift/Protocol/SentryViewControllerBreadcrumbTracking.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e2a4251be2b7cd7a0f12415ae77dd21f","path":"Sources/Sentry/include/SentryViewHierarchy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98048450731da9483802b9461cc21ae323","path":"Sources/Sentry/SentryViewHierarchy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9876eaa22d5340d067af63898c39e19e0e","path":"Sources/Sentry/include/SentryViewHierarchyIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988c3dfdc8f32e8b0ee2f8b3b6cf1d064c","path":"Sources/Sentry/SentryViewHierarchyIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e988e17c76ee5555095f2fa95f43a4e72c6","path":"Sources/Swift/Tools/SentryViewPhotographer.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e982d8837e191f0fa175aa00b83baacb255","path":"Sources/Swift/Tools/SentryViewScreenshotProvider.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b32a3c9006493ed1307f8c0d12e55fd1","path":"Sources/Sentry/include/SentryWatchdogTerminationLogic.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9876c485feee1b0faa61a1a97d3f753383","path":"Sources/Sentry/SentryWatchdogTerminationLogic.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984b6c1e001c756b1db77fee28fb8970e1","path":"Sources/Sentry/include/SentryWatchdogTerminationScopeObserver.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f78374fdf5a6255861bc2352a4791663","path":"Sources/Sentry/SentryWatchdogTerminationScopeObserver.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9878ed6206138f76d0a62fd785687e17ca","path":"Sources/Sentry/include/SentryWatchdogTerminationTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98bbeb389b09796f2032daa7e87ab370cd","path":"Sources/Sentry/SentryWatchdogTerminationTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987d9d58d36854589028e39fc775b62b7b","path":"Sources/Sentry/include/SentryWatchdogTerminationTrackingIntegration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984c358cb4c701c123d1bb48f37397493b","path":"Sources/Sentry/SentryWatchdogTerminationTrackingIntegration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98491832c2eb5a7b06393f399f374a229c","path":"Sources/Sentry/Public/SentryWithoutUIKit.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e984088cba2c41b2738197177f9bc8d51ea","path":"Sources/Swift/Extensions/StringExtensions.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e980cec874f5b8b1dfdcf9545163078a43e","path":"Sources/Swift/SwiftDescriptor.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98ea72748d61d05410fb756c299577fda2","path":"Sources/Swift/Integrations/Performance/SwizzleClassNameExclude.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98603c3b0b96a55e5fee887d52736bfe0a","path":"Sources/Swift/Tools/UIImageHelper.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f2bb2031c53974cc40035b69831f3c8c","path":"Sources/Swift/Tools/UIRedactBuilder.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985f39d9985997760b85bdb42cd8b3d00b","path":"Sources/Sentry/include/UIViewController+Sentry.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9827af76263713220bb5d02faca65a9ace","path":"Sources/Sentry/UIViewController+Sentry.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9818a3fa6b1f96308c082ec878842da4f8","path":"Sources/Swift/Extensions/UIViewExtensions.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98771f1da054ff8fec8f5d2a87e3189d75","path":"Sources/Swift/Tools/UrlSanitized.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e985021d8040547b0705b825475572a9283","path":"Sources/Swift/Tools/URLSessionTaskHelper.swift","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98fdad2b3c7ce43610dcf549ff7c3ed62a","path":"Sources/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e982330c5fe93d47b451e8e6a173db85965","name":"Resources","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f25b5669d1e9d58e5373e7c51e3fea5e","name":"HybridSDK","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98afe84fd75b0ec411884298227d6a7b42","path":"ResourceBundle-Sentry-Sentry-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98bdc7ccf3cfc356774f1704b4267d19c0","path":"Sentry.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ce358334a1a5076952b5b191defb54e1","path":"Sentry-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e988c9aeb44f6ca229b133e9c9c744abee2","path":"Sentry-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9822f49b17e83c7b1ebc9c55ff9d15cf8f","path":"Sentry-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cbe5db23f339a3caa5e3f417f69cccbc","path":"Sentry-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98c98d5a35dd8795a42681114203553a63","path":"Sentry.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98d2aaf20dd2b7dc8c1960622189dfcf83","path":"Sentry.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9823e32b11d05cae0c43b1ef543f46d412","name":"Support Files","path":"../Target Support Files/Sentry","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980b0316197ae3de135ea7b03762b18bd9","name":"Sentry","path":"Sentry","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98cb788775aa5505e80e71c89674fd67b4","path":"SwiftyGif/NSImage+SwiftyGif.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e984be349add8cedb451112c9cf74a5198d","path":"SwiftyGif/NSImageView+SwiftyGif.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e985ad71dd723fafb26ba7c00f9d426674d","path":"SwiftyGif/ObjcAssociatedWeakObject.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c4c80efa424aef4e0bbce90c28309b88","path":"SwiftyGif/SwiftyGif.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98fc8ec8fee2763056081a4744f7d25654","path":"SwiftyGif/SwiftyGifManager.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98abc7da5d37335f2017c3244585253e7a","path":"SwiftyGif/UIImage+SwiftyGif.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98218c63a3b866f2bd58225d5d929dfc7d","path":"SwiftyGif/UIImageView+SwiftyGif.swift","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e989ffb87665984a777fccc697de96bbc02","path":"SwiftyGif/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98b70e6d38d3c0158cf32ecb6956f4eb2d","name":"Resources","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98be986829e4a57bca5bd36c5d435b40fc","path":"ResourceBundle-SwiftyGif-SwiftyGif-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e9800503d61cab51b10ff9bb04ce5b0a5f7","path":"SwiftyGif.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985b64e43a33de6eecd0aec5d8872e2363","path":"SwiftyGif-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e984ffe8b9e24d65d75d942be87f931cf07","path":"SwiftyGif-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98de313555ed27ce609c2ad11f00c11eb6","path":"SwiftyGif-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d1c1a18815c11cba1244a444d9b27d24","path":"SwiftyGif-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9855f667e8b10245566f5d18867d6262ee","path":"SwiftyGif.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e984ce874e1e631db158308566573cb1939","path":"SwiftyGif.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e7a01e79ce4e62a831457186ddb16ada","name":"Support Files","path":"../Target Support Files/SwiftyGif","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980d2dedc68338fbe0f1e1b238c32c0f5d","name":"SwiftyGif","path":"SwiftyGif","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f2e7b382336f139e0f6dd77fd545dd2c","name":"Pods","path":"","sourceTree":"","type":"group"},{"guid":"bfdfe7dc352907fc980b868725387e9803d1faff1cc1e5f45749a51512f2947e","name":"Products","path":"","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98a3f4680c874ecbcb5b5a6338bc13a426","path":"Pods-Runner.modulemap","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9814181933c973297b0001d0e9ee64381d","path":"Pods-Runner-acknowledgements.markdown","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9887440869a53d6020d968ddf6b9b30aa0","path":"Pods-Runner-acknowledgements.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98fed0970e703d355c9aff813f280aafdc","path":"Pods-Runner-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.script.sh","guid":"bfdfe7dc352907fc980b868725387e9826e505869a67d81656859ded68178c1d","path":"Pods-Runner-frameworks.sh","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98de02ac5005ab1eb052abf25c63731e95","path":"Pods-Runner-Info.plist","sourceTree":"","type":"file"},{"fileType":"text.script.sh","guid":"bfdfe7dc352907fc980b868725387e98f6f4dcb116856f2da0fa97d3015cb1af","path":"Pods-Runner-resources.sh","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980ec6fbca7264a6936f2adfc48dd7f5bc","path":"Pods-Runner-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9850cc7fc2d23136fb4fac488d6c47df20","path":"Pods-Runner.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98dc1a21852c7a085c7dd8f65cf0fa9907","path":"Pods-Runner.profile.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f17abf55d75f35efcaf45a1185b085b6","path":"Pods-Runner.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98cf3c1972df678a5e36df75a46391500d","name":"Pods-Runner","path":"Target Support Files/Pods-Runner","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e984c4f55ec853c945e234980557a98aed8","path":"Pods-RunnerTests.modulemap","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98fc0f7e7242f459f81e455145932dcafd","path":"Pods-RunnerTests-acknowledgements.markdown","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e985f8b68b152f46f18718da20c04e675cb","path":"Pods-RunnerTests-acknowledgements.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98022654f1ff78dd844d694dba2439dab2","path":"Pods-RunnerTests-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e989e5ad6b9a07953a12c7008a15bd9c99c","path":"Pods-RunnerTests-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e5e8bcdff29e5f8321be18f7989b4bc7","path":"Pods-RunnerTests-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98144cd18850e477837c238075d5256ffe","path":"Pods-RunnerTests.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e981b663a2c82f0220040296818ba53477e","path":"Pods-RunnerTests.profile.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98965b92d39d30a7872295adc2841cd1b1","path":"Pods-RunnerTests.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9859551a2ccb1df711861b574920cd49bf","name":"Pods-RunnerTests","path":"Target Support Files/Pods-RunnerTests","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dafc421ff02609f2772b356038eb9849","name":"Targets Support Files","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98677e601b37074db53aff90e47c8f96d1","name":"Pods","path":"","sourceTree":"","type":"group"},"guid":"bfdfe7dc352907fc980b868725387e98","path":"/Users/sentientgeeks/Documents/OnUFitnessMobile/ios/Pods/Pods.xcodeproj","projectDirectory":"/Users/sentientgeeks/Documents/OnUFitnessMobile/ios/Pods","targets":["TARGET@v11_hash=b0740c2e5ee3162ec4b5d5b7be0c6bc9","TARGET@v11_hash=5a9bfc457b91e45af48420ed50c9ff17","TARGET@v11_hash=0d334613af2040f7c2641d6455fda802","TARGET@v11_hash=fc0c21a91c4c68cceb5eb78c9cd38e57","TARGET@v11_hash=cce67dca6b2e721e0a122845f2fa84c8","TARGET@v11_hash=346f4ad479e15e336d7c94c1cd280cd5","TARGET@v11_hash=3e1004a4b3a1ca6ff8b9b4915491d3fb","TARGET@v11_hash=4d799fe14d3017356c5c739f44dac9a7","TARGET@v11_hash=b4f15867e9afcc747260c57a11b0bd82","TARGET@v11_hash=5d9d91766d9aaa3f4332a9a8964c11e0","TARGET@v11_hash=2c570a8748a2023dbe6275e098e61eed","TARGET@v11_hash=15850998b9333dc1e556964e2fec36ba","TARGET@v11_hash=138dad564938409ca7c71386a38b141f","TARGET@v11_hash=88ce58f5c4c9db3b4c8da44c4ce83a97","TARGET@v11_hash=63013c91e0dd907d9baec65634b652b0","TARGET@v11_hash=43df6f6046e33105cd0d82b42d169524","TARGET@v11_hash=40c0fe60c68f88846224a212a9d41968","TARGET@v11_hash=cb7840926af9980628c744a2a62de36d","TARGET@v11_hash=fd05e863e29e0a4e9a22bf251bfa2fec","TARGET@v11_hash=bb0ec5b1e14b84e15d873eac8a09bd39","TARGET@v11_hash=4889435ef4e40cdb62985296645ddfd4","TARGET@v11_hash=9cf32d5c1035240015248e91d8f9baa6","TARGET@v11_hash=4af12ab2fbdedc4b7decb6a1129245f1","TARGET@v11_hash=63a0e76413ee91370ed0a1b256e3f252","TARGET@v11_hash=dd66991d6fba9b230f8f71981c4a5b8a","TARGET@v11_hash=34f6a78d43f563bbd7684ebd953551bd","TARGET@v11_hash=d153a7b9bd4720b326f514093fa062c3","TARGET@v11_hash=6337105c64c2f28dec07e88ced461719","TARGET@v11_hash=259a93aeeb9daf9c6161745a945b3b43","TARGET@v11_hash=eace002b6dc322ecbca4ab861bcb9dc3","TARGET@v11_hash=4924a6c9510c14f45761ef1f9cb59e21","TARGET@v11_hash=bc684725a9f81bee7e41905945a7c796","TARGET@v11_hash=f150ab1e8e7dc6e16853a36e784efe90","TARGET@v11_hash=1563276f9fe4d4f80198074e16e255c8","TARGET@v11_hash=8c702b8179c37d765fb3ae2833521625","TARGET@v11_hash=78aef59943a4c4a4992550ea0d404fe4","TARGET@v11_hash=cbf2960cbd0930c686fa47044b9459eb","TARGET@v11_hash=4e7061e123b7810fac1e2c0de5d06eb4","TARGET@v11_hash=883e1b0a416407bbc06abc4842125626","TARGET@v11_hash=5922362437a8ce717900a19099f244c3","TARGET@v11_hash=23300169adb17489ec97e3471e9d0929","TARGET@v11_hash=4c45491143fbffdd10e24abf51645ff2","TARGET@v11_hash=e65ba4d0ed7caef44047171439e0a1a3","TARGET@v11_hash=6bde34a4b049540e81a44d0561d32e9f","TARGET@v11_hash=28e0b3a2fc306e151aad5675c9c71fd3","TARGET@v11_hash=11d59818cf6328380423abd9eca30f24","TARGET@v11_hash=06b812047dc0d1676b1086e2d25c69f7","TARGET@v11_hash=13f7e1878f0958c562c608fbe457d501","TARGET@v11_hash=5af6d123105c63ba034f855cc1a5010d","TARGET@v11_hash=7374a73541f12dc8d7bbb5aef2aa9afc","TARGET@v11_hash=a987e269c18ed5c5d5215a562fe8f786","TARGET@v11_hash=f72858c3a5c384460053294ab3bbefe7","TARGET@v11_hash=fc023069645e81d90d672c5ccaa9a74a","TARGET@v11_hash=890c5b35a2fc19fa56a15ceff3ee58d7","TARGET@v11_hash=34cb243197b06dc7b47eba30f4920667","TARGET@v11_hash=afb41d015b49cab5af7f1e0c0cf121bc","TARGET@v11_hash=0922bbce6d9b56ab0a6fa4b01aa06262","TARGET@v11_hash=13443e3ee12e761c31505a74d7ac1df3","TARGET@v11_hash=fcd7f0e2fff58c71da870051fa213820","TARGET@v11_hash=a3eeba2199c1fa4106132ff45176196b","TARGET@v11_hash=e3d941345c3ed6b4b64f1a040fb349f9","TARGET@v11_hash=f1325fbfe51d1bfe06adf6c62846c9f8"]} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=06b812047dc0d1676b1086e2d25c69f7-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=06b812047dc0d1676b1086e2d25c69f7-json new file mode 100644 index 0000000..d082d1a --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=06b812047dc0d1676b1086e2d25c69f7-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f0ec0b4ee38e6fab633e09b70d30ce29","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/share_plus/share_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/share_plus/share_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/share_plus/share_plus.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"share_plus","PRODUCT_NAME":"share_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98fa50e2fc76f3c7e46550ec7ffc7bb01c","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a5f61ec1f3173176575d7d9ea45f5750","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/share_plus/share_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/share_plus/share_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/share_plus/share_plus.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"share_plus","PRODUCT_NAME":"share_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98e553b9382cc24bd5b1414348a7055016","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a5f61ec1f3173176575d7d9ea45f5750","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/share_plus/share_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/share_plus/share_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/share_plus/share_plus.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"share_plus","PRODUCT_NAME":"share_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9806962fb3610a587387aa54c43210d4b3","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e982a2610763014401a0505737a3e91eeee","guid":"bfdfe7dc352907fc980b868725387e98a3153cf75729049dcdf530a66cca6131","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988c0f90ff017f34c9c7db14de501b828f","guid":"bfdfe7dc352907fc980b868725387e982ea795dc0be844d6be5410e75e86c1c3","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98865ac88938aac084ee38b49d0be68c79","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98a330af3d6fc51bea174180b4a5fab716","guid":"bfdfe7dc352907fc980b868725387e9807362e137a3d29e2d5a01f07a5570868"},{"fileReference":"bfdfe7dc352907fc980b868725387e984e1c134bd40761a32a32ae2fdfbb756d","guid":"bfdfe7dc352907fc980b868725387e981dd4d47921a1bb9bb51aeffb52b2667c"}],"guid":"bfdfe7dc352907fc980b868725387e984e1dbd6e430296b13520d2f888421896","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e985b8ff78a3ba34afe55fbbcea034c09f0"}],"guid":"bfdfe7dc352907fc980b868725387e98cb9a2b042b08bd6c2e561afd4c78e4d4","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98831b06cee1c8abfe0f9885d5d85abea1","targetReference":"bfdfe7dc352907fc980b868725387e98de00f90750e7753637464fe34137709d"}],"guid":"bfdfe7dc352907fc980b868725387e984f4190b0e881c91b258e089514665437","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98de00f90750e7753637464fe34137709d","name":"share_plus-share_plus_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98848ff9cf74c635f5324731538a1c853f","name":"share_plus","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98ae2d3cb0c689d7eba802899edfe718f3","name":"share_plus.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0922bbce6d9b56ab0a6fa4b01aa06262-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0922bbce6d9b56ab0a6fa4b01aa06262-json new file mode 100644 index 0000000..76c7724 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0922bbce6d9b56ab0a6fa4b01aa06262-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c54284e567057e4c19e270b997cf3e15","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/url_launcher_ios/url_launcher_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/url_launcher_ios/url_launcher_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/url_launcher_ios/url_launcher_ios.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"url_launcher_ios","PRODUCT_NAME":"url_launcher_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e983bf7c387e6b30e7532f6cb4e6e71951b","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c9082038c3a091fff2fa7f003c3a2fd4","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/url_launcher_ios/url_launcher_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/url_launcher_ios/url_launcher_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/url_launcher_ios/url_launcher_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"url_launcher_ios","PRODUCT_NAME":"url_launcher_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9852e5f92b339577bcf682a1eb4792c8f4","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c9082038c3a091fff2fa7f003c3a2fd4","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/url_launcher_ios/url_launcher_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/url_launcher_ios/url_launcher_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/url_launcher_ios/url_launcher_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"url_launcher_ios","PRODUCT_NAME":"url_launcher_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98606903bd7be7dc87a070537db999d889","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98f5dcf8d986007ce95aff850abd35a938","guid":"bfdfe7dc352907fc980b868725387e98488b1aae650ee0880687b46866424107","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9803da34d77efef8ef3ce2c8ebbae5bdbc","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98ae94c10d72f53da8f32251911c67a005","guid":"bfdfe7dc352907fc980b868725387e984b967ec46291490a66ef4445f33da3bb"},{"fileReference":"bfdfe7dc352907fc980b868725387e982e806a803437de1e7af6178e43ed5b33","guid":"bfdfe7dc352907fc980b868725387e9875a3c48a5bcdb09d2279506108b5a618"},{"fileReference":"bfdfe7dc352907fc980b868725387e981df616f65e0eb6e976df053a806ca498","guid":"bfdfe7dc352907fc980b868725387e9888b1e74e60918c1dda1636aa70ed211a"},{"fileReference":"bfdfe7dc352907fc980b868725387e982977b9e20c6f4a788bc1460d88fd1e38","guid":"bfdfe7dc352907fc980b868725387e9868a8feaf8297203dcd9bd0eeb1059735"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a3f1b868565c7fcd564cef7451cd53a0","guid":"bfdfe7dc352907fc980b868725387e9820e6e5b1e4b0c28ab7b0746fb05fae11"}],"guid":"bfdfe7dc352907fc980b868725387e98fa96dbb049cf26a8a5faf87ef8982665","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e982f8b7ae2e7caa8ede8091d9bb363b0d1"}],"guid":"bfdfe7dc352907fc980b868725387e988f4e5a15bd2f3cf26d08bb8eafccb083","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e9829873fc0097fc1cd118d2ea1c7a9e44f","targetReference":"bfdfe7dc352907fc980b868725387e9891b3b8cc56823cdea4b418e009a423b2"}],"guid":"bfdfe7dc352907fc980b868725387e98e31bb378ac96256438f4a2e26e722c1b","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e9891b3b8cc56823cdea4b418e009a423b2","name":"url_launcher_ios-url_launcher_ios_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98903e66fa03d6d27edaa18126a82c20fd","name":"url_launcher_ios","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98f7a21f0cd31eecef97e8eaf4a819dde1","name":"url_launcher_ios.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0d334613af2040f7c2641d6455fda802-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0d334613af2040f7c2641d6455fda802-json new file mode 100644 index 0000000..d068618 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0d334613af2040f7c2641d6455fda802-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98152c52d5cde47684e140cf9bbe2eb658","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/AppCheckCore/AppCheckCore-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/AppCheckCore/AppCheckCore.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"AppCheckCore","PRODUCT_NAME":"AppCheckCore","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.5","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98e7a99df6e6a4873f55b3ad33955c73d7","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9888becb7db8ca675a0e081b8e329aac2a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/AppCheckCore/AppCheckCore-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/AppCheckCore/AppCheckCore.modulemap","PRODUCT_MODULE_NAME":"AppCheckCore","PRODUCT_NAME":"AppCheckCore","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.5","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98961e7c9baafe5b4e26a5c59132394731","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9888becb7db8ca675a0e081b8e329aac2a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/AppCheckCore/AppCheckCore-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/AppCheckCore/AppCheckCore.modulemap","PRODUCT_MODULE_NAME":"AppCheckCore","PRODUCT_NAME":"AppCheckCore","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.5","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98a5e2f4ec47caf1c35a822cf8398efdf7","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9840ae57cda55777ee9dd2ecbe4e858efc","guid":"bfdfe7dc352907fc980b868725387e983a7f56a8bda7f4a32b582f3e3543ec6b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bb1683d3dcf65a93325e2d4b9fc9e3ea","guid":"bfdfe7dc352907fc980b868725387e98eefa1fbb52d5820fb2f74287e89fa5be","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ccb5e2e8a33384069169259ac6784e31","guid":"bfdfe7dc352907fc980b868725387e98731bf14971647468f98880f5ab2ecebd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c57e72aaf55fc99f8d8c3a30f79666a0","guid":"bfdfe7dc352907fc980b868725387e985188a1987f7cf2a34653743fc646f39e"},{"fileReference":"bfdfe7dc352907fc980b868725387e980f0de9e1b9ef908d1955d0f695d71081","guid":"bfdfe7dc352907fc980b868725387e988f117cd19bea713411f7d886e3ee57f4"},{"fileReference":"bfdfe7dc352907fc980b868725387e981caf4535ab2485d28f7c7c695bcd1105","guid":"bfdfe7dc352907fc980b868725387e98f7013b8d08955f03cd9ad217b6575ec4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98350af08976f088fd7e3fee2e60cd1e92","guid":"bfdfe7dc352907fc980b868725387e98c3717fce461d8c3c727f6ab1e1ef8dd8"},{"fileReference":"bfdfe7dc352907fc980b868725387e982abd22ea5e43e883694656d7a85a688c","guid":"bfdfe7dc352907fc980b868725387e98971d704d92f697bb1c3431227aeca581"},{"fileReference":"bfdfe7dc352907fc980b868725387e988d77bec9f911e331ae6ee14e5d7610a3","guid":"bfdfe7dc352907fc980b868725387e987fb0a97b5514da31c86f2442dd9c5c3f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981be67a72afc7082b9b5b2282071da1b4","guid":"bfdfe7dc352907fc980b868725387e98557eecafb08f3d4c91d7a27a04cbc98f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ab8133d14c570dc4cbb06bdc80b2980e","guid":"bfdfe7dc352907fc980b868725387e9831a692eeee4b67a14159ea381967273a"},{"fileReference":"bfdfe7dc352907fc980b868725387e981f89116807932be57c553d5d2afab924","guid":"bfdfe7dc352907fc980b868725387e986a533507042bc1b488b8d411b4e467dd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98139b5ccdc9a8f77002c7a412ea65b768","guid":"bfdfe7dc352907fc980b868725387e98ae7871cec43b2a430799debd34abfca4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98acdd97bd04922658dacd494b65f83717","guid":"bfdfe7dc352907fc980b868725387e9843848d640b95d66ae7b0609d40822a18","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b775098135f585743aa033017400c13a","guid":"bfdfe7dc352907fc980b868725387e985df37ff259fbebfcef0385a6ec8da199"},{"fileReference":"bfdfe7dc352907fc980b868725387e9827de06c4a65309725799925fbe220aff","guid":"bfdfe7dc352907fc980b868725387e98f8b9a4332a9d35d417da9e60a68e1e5f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a5c97bc8a85a6c9aacf3597c63c1fc28","guid":"bfdfe7dc352907fc980b868725387e987016ef18ef8e69d7bc59d3c64c1062eb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a367917b67ebcb1ff04d84e3c3d56167","guid":"bfdfe7dc352907fc980b868725387e98638fdbf659b7db656daaabefeb0fa1e0"},{"fileReference":"bfdfe7dc352907fc980b868725387e9865e64959b7a3900476f4b07ac525b8f7","guid":"bfdfe7dc352907fc980b868725387e982366610e765f0b5c67b62d5d700c6ccd","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e980c8b67627bd3206d668e22dd01ac28e3","guid":"bfdfe7dc352907fc980b868725387e98201a1ca6306b21611dc8f609d62d8e10"},{"fileReference":"bfdfe7dc352907fc980b868725387e987e7cff551885b515b1be7e7686cafa0e","guid":"bfdfe7dc352907fc980b868725387e9805d1768fe792537334f391c041c31f35","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9843ea5efe1425cf35b91010e84131a260","guid":"bfdfe7dc352907fc980b868725387e981ca2893936b4e0ab83db00de99e3fe4b"},{"fileReference":"bfdfe7dc352907fc980b868725387e989116160b3bd824317f3eba7b571fc062","guid":"bfdfe7dc352907fc980b868725387e98df05095938a6e6a95d183f2debb7eeca"},{"fileReference":"bfdfe7dc352907fc980b868725387e9822a7b520345f327467784885b8e36b54","guid":"bfdfe7dc352907fc980b868725387e988f3992c3226d3fffed029e44a32d785f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9830af6f8b03739584f0ca7a3de1b66268","guid":"bfdfe7dc352907fc980b868725387e98325b799f84feca7cce3ae0c158b3d6d7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d643cbe281a0fa02ac6401b3f31fa713","guid":"bfdfe7dc352907fc980b868725387e98d73be45a5c15dbc80c5e29415079a21a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9877bf51196b7a533515253a400ab3521d","guid":"bfdfe7dc352907fc980b868725387e9895e853d89407c6a61308b8ed634f6c83","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988741c7c41d69c2eca6c837aacac67264","guid":"bfdfe7dc352907fc980b868725387e983f07250a53c4dcc69dfbcf67ebdc325b"},{"fileReference":"bfdfe7dc352907fc980b868725387e985e284c16aebfdca4362e1b7b6422de47","guid":"bfdfe7dc352907fc980b868725387e987481fc11365e35e19c58f07f6f4b732c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ae136a3877f6f26916b6676b41633e3b","guid":"bfdfe7dc352907fc980b868725387e985b6c7b86e2e3ddab6f8772c5362a6fba"},{"fileReference":"bfdfe7dc352907fc980b868725387e9893fab755d31dfcc59efb2ba0a0bf5a34","guid":"bfdfe7dc352907fc980b868725387e988919c6af1499779a90e7598a5e84fabe"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d2ee92096efc6a05617f99cab54873be","guid":"bfdfe7dc352907fc980b868725387e98d6d0fe9c6b6c404e0d62b0cbcd05dfdf","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983b9e839d25209c673c8352e5cc709181","guid":"bfdfe7dc352907fc980b868725387e9810d41d30cf3c158f9509077744b70505"},{"fileReference":"bfdfe7dc352907fc980b868725387e98946e7ff9b1e445f6ba04fa3cd5c5903a","guid":"bfdfe7dc352907fc980b868725387e9865d6cb4f29a80f2f2ce4e60e0090a0bb","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a9578cf0b3b2096f4c09dbb7499b73c3","guid":"bfdfe7dc352907fc980b868725387e98ea323f1a49908e40b0b598e61db59b71"},{"fileReference":"bfdfe7dc352907fc980b868725387e9836f57bbc65ed6ec838ab5abdaa8cfe76","guid":"bfdfe7dc352907fc980b868725387e9866a81d67491e84a3ef0e7b3befdbdaba"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c5266e94e095bac4071409d3908fa471","guid":"bfdfe7dc352907fc980b868725387e98f9a04fb7607f394362f9bff3a632b600","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e985c8909f86495dcfa3dd2a63fdb74cf5e","guid":"bfdfe7dc352907fc980b868725387e98c1b9cbe39894801763b170085b67c5ad"},{"fileReference":"bfdfe7dc352907fc980b868725387e98756bcf1020e86e02171db66840f18eb4","guid":"bfdfe7dc352907fc980b868725387e984e87e4b3e6b500cceaa46ede0ec13dfb","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e982e381c2f5045da0b053b3c6e93f6feee","guid":"bfdfe7dc352907fc980b868725387e9804e24ee381ecd94ecdaeb870ed0114ce"},{"fileReference":"bfdfe7dc352907fc980b868725387e983e72b8712f9ebc03c258a9e8af21967c","guid":"bfdfe7dc352907fc980b868725387e987e8729dc670ba4e8dc2e7ab782a73fb8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bdd7bcd7e6c17660ea4e4ffa324e3e2c","guid":"bfdfe7dc352907fc980b868725387e980673b86a47f0fe84859c2176137bfbd7"}],"guid":"bfdfe7dc352907fc980b868725387e98dc3f6c017f50c3291e26862a62071ad6","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e985810c144972513ea7d5d52d4bd7fd31f","guid":"bfdfe7dc352907fc980b868725387e981251f36c01e0bb324ca1cf7a8d9bddb0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98456778bf4f3738cb0928ebc01a5fa070","guid":"bfdfe7dc352907fc980b868725387e98d8db050f1c7a5fd0ec0a4596c587f92c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98742a586220e386997703ba60babbc46d","guid":"bfdfe7dc352907fc980b868725387e98251d465f7239177f9eb05186be427f1b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e5e6491044618056151148ad6b528203","guid":"bfdfe7dc352907fc980b868725387e98b9bf91278debb41b3833f220f1b435bc"},{"fileReference":"bfdfe7dc352907fc980b868725387e9819c6bfb474d595f44d3f24165aec56ce","guid":"bfdfe7dc352907fc980b868725387e98af769f021239e440439d2f37c2a8b47a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cf008a4bc4eec179d9beac3e8c743ed1","guid":"bfdfe7dc352907fc980b868725387e98f4410e2eefcc5e3073d1057d8a440acc"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d06fda4cebe4cf847e59fabdd6790d2f","guid":"bfdfe7dc352907fc980b868725387e981c659a32af5c88dd60c9e7e92e503c73"},{"fileReference":"bfdfe7dc352907fc980b868725387e9867244f63ef9af215d11afe2b544b9b9b","guid":"bfdfe7dc352907fc980b868725387e98385e9f712da19f3fdeab81bd33335d87"},{"fileReference":"bfdfe7dc352907fc980b868725387e983d3284e394b57891ca0b72897e3ed911","guid":"bfdfe7dc352907fc980b868725387e98a44cf29d16204615eb6acc6a177ed90d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98943d6abfbbc1063382f9f6c47948de29","guid":"bfdfe7dc352907fc980b868725387e981759ea69ef13d9431585b07246de10e5"},{"fileReference":"bfdfe7dc352907fc980b868725387e988e3a313c27e137f655d5bdadc2f3732a","guid":"bfdfe7dc352907fc980b868725387e98c7a014a0f2696eb65fdde5d95ff8a377"},{"fileReference":"bfdfe7dc352907fc980b868725387e98710ca7b4d0df4b41b299b0b491dad5c4","guid":"bfdfe7dc352907fc980b868725387e987d3c88b047f31c79453e480da1cee745"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ef2e276b1cf0bf038e4058ddf60076a4","guid":"bfdfe7dc352907fc980b868725387e98754dd466afb74dc55b83de8dbd18dd4e"},{"fileReference":"bfdfe7dc352907fc980b868725387e9897e674ba8c761d2cacc4b8062c83173a","guid":"bfdfe7dc352907fc980b868725387e98d346057307b65a0c4cb63b7ce2cfbc65"},{"fileReference":"bfdfe7dc352907fc980b868725387e987596fe6414db928fa31385678a860140","guid":"bfdfe7dc352907fc980b868725387e9831a5a7cf4456b84e8b2fb59d15681b76"},{"fileReference":"bfdfe7dc352907fc980b868725387e9879df5a55ccb6d9f182d0dfbafa4577e7","guid":"bfdfe7dc352907fc980b868725387e98630b01bae14ac405faf80a562b3c32b2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98077f8bb01c705445edabe867b09d2028","guid":"bfdfe7dc352907fc980b868725387e98c9f34912719e77ba96475461238e0e02"},{"fileReference":"bfdfe7dc352907fc980b868725387e987f71e152b7eed8509f126383382e56ad","guid":"bfdfe7dc352907fc980b868725387e984867af3440057818079d08ea0c4d6195"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cbef55b7c67e16b0daaed4a11327dd83","guid":"bfdfe7dc352907fc980b868725387e9804dbc6bc4a995fc03805e33bbdc61583"},{"fileReference":"bfdfe7dc352907fc980b868725387e982b37a13ad8d60ec21e1567d559582b13","guid":"bfdfe7dc352907fc980b868725387e98d92cafd93ccc407f0b67993abcefdce5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98770c3dcac3422ed828e69f07c526e41f","guid":"bfdfe7dc352907fc980b868725387e9820143a2be1e220fac8de61a11087c01f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c1b924e662d718b863a37cfd7672bbad","guid":"bfdfe7dc352907fc980b868725387e98f5c29ea9255f8220e21e5404dc5a3f8e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aa2b64b648011be2e8c0606259bd5022","guid":"bfdfe7dc352907fc980b868725387e982693cc42ebb05a72e63217341d71bd9e"},{"fileReference":"bfdfe7dc352907fc980b868725387e9869fd71edbc73ae36e2bf694b32d70154","guid":"bfdfe7dc352907fc980b868725387e985d0530ef6188ebe958e1f0d3f3298d82"},{"fileReference":"bfdfe7dc352907fc980b868725387e9889469fd9d006667956520e6d04b7b9a4","guid":"bfdfe7dc352907fc980b868725387e9829041b1e039eb006c470ff92591bf911"},{"fileReference":"bfdfe7dc352907fc980b868725387e98123a7672ebf087b8278f35c5b67a923f","guid":"bfdfe7dc352907fc980b868725387e98b92b9cf860855796967f283ce7415d09"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bea217c0447db27da1698c9a2d785904","guid":"bfdfe7dc352907fc980b868725387e98debe9957367259f62596ede328df84af"},{"fileReference":"bfdfe7dc352907fc980b868725387e989762d8e6736e8a77503308e938275398","guid":"bfdfe7dc352907fc980b868725387e98ec8f6bff25068400792a0da62301d62a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a4bd9ec0d6875177ac995511ff02243e","guid":"bfdfe7dc352907fc980b868725387e981808cef69632857ddb48af8a1b5faf76"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bb658f52bd3633d238bed37b584d0507","guid":"bfdfe7dc352907fc980b868725387e980f230ea024b72dbc683a1fabead8d6bf"},{"fileReference":"bfdfe7dc352907fc980b868725387e988bc8857707ac1d36cb8505932d1cc6ba","guid":"bfdfe7dc352907fc980b868725387e98deca3a41ff15842151e1be841cc3fff0"},{"fileReference":"bfdfe7dc352907fc980b868725387e9890d3db03e96c778e25179d33f3703f24","guid":"bfdfe7dc352907fc980b868725387e98f21ff164321f2d57d89d63e9fa8d5d8e"},{"fileReference":"bfdfe7dc352907fc980b868725387e9829bb43f18eb0f783bb08c3609e55547c","guid":"bfdfe7dc352907fc980b868725387e981618ab1789cddc3783305bb624a1280e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98960695c6c25df781c0949edf1e2ffea2","guid":"bfdfe7dc352907fc980b868725387e98c367e72e8bce33e83d8a76f05c126e9d"},{"fileReference":"bfdfe7dc352907fc980b868725387e989cf770892d1ebe2cb06717ee7ac0b7df","guid":"bfdfe7dc352907fc980b868725387e98c36efdc476e07ebbd7263ace396ae758"}],"guid":"bfdfe7dc352907fc980b868725387e98053600d677a0ee3a6e8294a5f6c29926","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98a7f5c11a3ddc6c6109c703c9daffc90f"}],"guid":"bfdfe7dc352907fc980b868725387e986ef21295949b1adf438aaa172cba7c15","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e987799c6ff721a2f90b939c7d64edb78cc","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98718890dfdac589615663a02d43d9af3e","name":"GoogleUtilities"},{"guid":"bfdfe7dc352907fc980b868725387e98f10882e1684b8a3dfdec597bc0a47af3","name":"PromisesObjC"}],"guid":"bfdfe7dc352907fc980b868725387e98cd8162b601eb6c17e4d86eec112a388c","name":"AppCheckCore","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e985c8c1a45791dbc15ae7565c9ac08e62e","name":"AppCheckCore.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=11d59818cf6328380423abd9eca30f24-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=11d59818cf6328380423abd9eca30f24-json new file mode 100644 index 0000000..5bbfe7b --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=11d59818cf6328380423abd9eca30f24-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9833cdcecf5317117bf8d53f371b342b7b","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sentry_flutter/sentry_flutter-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sentry_flutter/sentry_flutter-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sentry_flutter/sentry_flutter.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sentry_flutter","PRODUCT_NAME":"sentry_flutter","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e988fbea49aa5b8cba9cbe7df6d809f3e48","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f7f5ba2bd7429a7d195d46b06488047a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sentry_flutter/sentry_flutter-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sentry_flutter/sentry_flutter-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sentry_flutter/sentry_flutter.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sentry_flutter","PRODUCT_NAME":"sentry_flutter","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e980a56a559cb3a6e259e582a4024a02743","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f7f5ba2bd7429a7d195d46b06488047a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sentry_flutter/sentry_flutter-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sentry_flutter/sentry_flutter-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sentry_flutter/sentry_flutter.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sentry_flutter","PRODUCT_NAME":"sentry_flutter","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98c3c30bb1c8203413fe4a8639a20bfdf0","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9819bc8a85a33aecc678f5327370bc40f2","guid":"bfdfe7dc352907fc980b868725387e9820e53e0d820f9c519964ad11d1147747","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9860c2e9be82de1a7342b85f7da37b2b15","guid":"bfdfe7dc352907fc980b868725387e9881f4cf48a16d547a46a1e90632845d33","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b39960d24b4c6df44e6546570652134b","guid":"bfdfe7dc352907fc980b868725387e983080bfbace1eeea87be39eb9502986a4","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98fb4eac6fe8b1a71d850604d5665dadfd","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9808ec8f8e620e425581507f7649068972","guid":"bfdfe7dc352907fc980b868725387e98b78a3ed51c7fbc94e89aecd71a908bfd"},{"fileReference":"bfdfe7dc352907fc980b868725387e988a40b023d6143b9c348cf1a20854a7da","guid":"bfdfe7dc352907fc980b868725387e98434ce3b1c749cafe5836f7a7eb011167"},{"fileReference":"bfdfe7dc352907fc980b868725387e98942801b26980e8551334586eaa285e23","guid":"bfdfe7dc352907fc980b868725387e987bd32b7662dc4b5a5e8e82177ed9922f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98517806c219f93bedd4032af32841860a","guid":"bfdfe7dc352907fc980b868725387e9825450a277ca1207e23a79e0fd065157c"},{"fileReference":"bfdfe7dc352907fc980b868725387e987d2c6edfefad823aa834393dd7e7ab6f","guid":"bfdfe7dc352907fc980b868725387e98234bf795057924753bd4d1a9121d6e83"}],"guid":"bfdfe7dc352907fc980b868725387e986da2828efe0ad2f0576cd156c71bfe64","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e988fda937b3f44804259195f102aa41cbb"}],"guid":"bfdfe7dc352907fc980b868725387e9875df4136db661f342a9d22e87cab4aae","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98002f8c4202df0c1ea5ead60e15ba6bf7","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98b7cbd6928e589e6ea7e2866f501cf79b","name":"Sentry"}],"guid":"bfdfe7dc352907fc980b868725387e98448bda732aa144f27a7103a0fec8d738","name":"sentry_flutter","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98c4c96de123ee26d733f0b19491c3749a","name":"sentry_flutter.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=13443e3ee12e761c31505a74d7ac1df3-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=13443e3ee12e761c31505a74d7ac1df3-json new file mode 100644 index 0000000..9843318 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=13443e3ee12e761c31505a74d7ac1df3-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c54284e567057e4c19e270b997cf3e15","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/url_launcher_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"url_launcher_ios","INFOPLIST_FILE":"Target Support Files/url_launcher_ios/ResourceBundle-url_launcher_ios_privacy-url_launcher_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"url_launcher_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98ba5f768c4ab47c268f340a161fbf45e6","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c9082038c3a091fff2fa7f003c3a2fd4","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/url_launcher_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"url_launcher_ios","INFOPLIST_FILE":"Target Support Files/url_launcher_ios/ResourceBundle-url_launcher_ios_privacy-url_launcher_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"url_launcher_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98ae68758dbde12d0a83214dff0188795f","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c9082038c3a091fff2fa7f003c3a2fd4","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/url_launcher_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"url_launcher_ios","INFOPLIST_FILE":"Target Support Files/url_launcher_ios/ResourceBundle-url_launcher_ios_privacy-url_launcher_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"url_launcher_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98c9ffa9854d13dc64f58e8ec8c36fe5ca","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98a5d66d669e4b8bb86dffcb107f2c194c","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98cf2aae2281590db7aefd3fcdebd36a8c","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98483bb6568cbb7d3a9cc227f379164fe4","guid":"bfdfe7dc352907fc980b868725387e98145b648e6ff2f5fa6a04269daec2b571"}],"guid":"bfdfe7dc352907fc980b868725387e98bbdf125854e0b88fc6cb86d7016d8efa","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9891b3b8cc56823cdea4b418e009a423b2","name":"url_launcher_ios-url_launcher_ios_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9827df8da513ac7d6928fc311b53a7155d","name":"url_launcher_ios_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=138dad564938409ca7c71386a38b141f-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=138dad564938409ca7c71386a38b141f-json new file mode 100644 index 0000000..c92c3f1 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=138dad564938409ca7c71386a38b141f-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e981fecd01a1b9a3fddc0e141abe3529640","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/GCDWebServer/GCDWebServer-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GCDWebServer/GCDWebServer-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GCDWebServer/GCDWebServer.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"GCDWebServer","PRODUCT_NAME":"GCDWebServer","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9820a2cb7398185ca719ae889d48923b7e","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e988b6161d4f134859408f35073fdc074c8","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/GCDWebServer/GCDWebServer-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GCDWebServer/GCDWebServer-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GCDWebServer/GCDWebServer.modulemap","PRODUCT_MODULE_NAME":"GCDWebServer","PRODUCT_NAME":"GCDWebServer","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9845584cf9911842a36472dca74a350c68","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e988b6161d4f134859408f35073fdc074c8","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/GCDWebServer/GCDWebServer-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GCDWebServer/GCDWebServer-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GCDWebServer/GCDWebServer.modulemap","PRODUCT_MODULE_NAME":"GCDWebServer","PRODUCT_NAME":"GCDWebServer","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98fce723c8686d8574addfefe416592132","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98695896a4aa7b94965e6b341047b50cac","guid":"bfdfe7dc352907fc980b868725387e98f9cef44151710a8578a0e8b5a6757972","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9821913dda31a509348b0c1665bdd46304","guid":"bfdfe7dc352907fc980b868725387e984af319b1d61196c8e1f55b3813851828","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b6907b262f696b694bd67c0103193fdf","guid":"bfdfe7dc352907fc980b868725387e98593981748603e5f7470eb5421d703334","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9834f88a322cc956b411e63a5d017eef96","guid":"bfdfe7dc352907fc980b868725387e98fc9d1809fa01319c86f15be5510a78a3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9844f3843bf41710fcf7801bbdcdf42f39","guid":"bfdfe7dc352907fc980b868725387e98d01c8a52e4bc2beb60a23c170956c0d8","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e989391e192dce418088e0f805575dfba61","guid":"bfdfe7dc352907fc980b868725387e981bff5b75cd1c4b75fba8a13cc1ffeac6","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981ff2a86277e98bb60441b41652df1b81","guid":"bfdfe7dc352907fc980b868725387e9869bb8a9912b12534c2f08ae56dbe1b68","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9853af3474f59f9016bad2804ff1a245d2","guid":"bfdfe7dc352907fc980b868725387e98651ec35877cef5c7842a8740956b505f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98af3b4f5d56cf3a12757ecef5224f6665","guid":"bfdfe7dc352907fc980b868725387e9815b146573554ecbd23ce9ef7d8206543","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c91af4b597110ec28b745e8641d86059","guid":"bfdfe7dc352907fc980b868725387e98f004959d7f9b4ed02659fde7b189cbc1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988b035628f5a4d05f064d2a9b00d0b014","guid":"bfdfe7dc352907fc980b868725387e98885b5af608e3716c0eeb84a193aed92d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b5847d3a869ef3267909c06950afb3e9","guid":"bfdfe7dc352907fc980b868725387e985150a75806bcbc2e76583b29545a3684","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e9880d24f261f391f2e230382a23465415a","guid":"bfdfe7dc352907fc980b868725387e981f80272216a7f342e1b5582202cfebf0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981aa1682c57ad22157f227987df7e900b","guid":"bfdfe7dc352907fc980b868725387e98a81cf48cae4e9aa095af5e5186237e62","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98af1342c47688a9911f6b89b2a2c15636","guid":"bfdfe7dc352907fc980b868725387e98ca82a2a37a19117ba9f8b8c44762c0c3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e987241621cddee3f8ed37396d7f88594b7","guid":"bfdfe7dc352907fc980b868725387e986b0e9522120a8249f07177f38676f343","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e981220135ca6690450fa04c75a6cf25f15","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98f510e7ce389740b5cf6c0c91c273f248","guid":"bfdfe7dc352907fc980b868725387e98a7d71889ae54b4e59207075d95e4a490"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c7cdfd85fae2afad80d9f1a8665e9ffa","guid":"bfdfe7dc352907fc980b868725387e989a2034edb45398b123f72f7a05c4a288"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b08c571ed83d416a7a38997000719155","guid":"bfdfe7dc352907fc980b868725387e98dfc8dace853a5ce5ecccb8788c8c79d7"},{"fileReference":"bfdfe7dc352907fc980b868725387e9887348a02a2f403f1374b824e0deed70c","guid":"bfdfe7dc352907fc980b868725387e984ed5e8852a8d64a53876235537415c54"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f0da228d65da84df9de0bf0a699a0c43","guid":"bfdfe7dc352907fc980b868725387e98dce16ed5a025a752a5b3d53e0f605bef"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dd63fc8ec8993a2b99eebc6fc79bbf1a","guid":"bfdfe7dc352907fc980b868725387e986e3b34a7c72c36c644ceb82e2cd7eeb0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98021195d22c8a8f3334c369b0e13487f7","guid":"bfdfe7dc352907fc980b868725387e98996d41fb8619bee1a5a1c64c1d63b98e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98944f11758be2b45fc435dac2c10d4f40","guid":"bfdfe7dc352907fc980b868725387e9886dad12b9b588c9f9735be6489779885"},{"fileReference":"bfdfe7dc352907fc980b868725387e98869b9d6f6e9443db2f940316dd772285","guid":"bfdfe7dc352907fc980b868725387e984b317917d0edeb5d4ad967e4d3ab3bdd"},{"fileReference":"bfdfe7dc352907fc980b868725387e9887bdb91e61b7a8cbcfe841fc7e7d2bfe","guid":"bfdfe7dc352907fc980b868725387e988831a512a63f59528340d53b4d0f94d2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98178f09040d40257ace85d2c6ae77f396","guid":"bfdfe7dc352907fc980b868725387e981b4ac6ff2fb493e93a7094e86bc28a76"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dc49cc644706024aa9dc6b1a656903a6","guid":"bfdfe7dc352907fc980b868725387e988bb0c7ff74e92cd2b77cdc9c2125aca8"},{"fileReference":"bfdfe7dc352907fc980b868725387e981edb79406b75bb638043b9c98e0ae4a8","guid":"bfdfe7dc352907fc980b868725387e98a89679ba4a0c8c4ac5da389b1037d52c"},{"fileReference":"bfdfe7dc352907fc980b868725387e981b46d0139998470783436ddf04e8b3bd","guid":"bfdfe7dc352907fc980b868725387e98912a317c31e1aec549ca80a68788c255"}],"guid":"bfdfe7dc352907fc980b868725387e98cc2d13f408a8064d8a6b28875feb99e2","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98505b692fb495fe72661f167c4313cc6e","guid":"bfdfe7dc352907fc980b868725387e98b5ae0e6e0fdd2521ec19a7f8a89252e2"},{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e988ddb8d5b5e6c0d5e9a3b3e52fc5fabdf"},{"fileReference":"bfdfe7dc352907fc980b868725387e9836b3bf7b0389bcedef90c61b86078695","guid":"bfdfe7dc352907fc980b868725387e98dbb8fd4ab7c00e66f1681d29cad47a45"}],"guid":"bfdfe7dc352907fc980b868725387e98bc805078eb0d455d7e9a0b7639826924","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e989fc01a956173dc7f0ec6e92897942b9a","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98ae4cba9dafde33c1f8a32ad5773d6cd3","name":"GCDWebServer","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98ea940bf2ad9c0f24726e4c14aa315ff6","name":"GCDWebServer.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=13f7e1878f0958c562c608fbe457d501-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=13f7e1878f0958c562c608fbe457d501-json new file mode 100644 index 0000000..0e1ec57 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=13f7e1878f0958c562c608fbe457d501-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f0ec0b4ee38e6fab633e09b70d30ce29","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/share_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"share_plus","INFOPLIST_FILE":"Target Support Files/share_plus/ResourceBundle-share_plus_privacy-share_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"share_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9869bf2163669048e5edff4f1f660edf33","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a5f61ec1f3173176575d7d9ea45f5750","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/share_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"share_plus","INFOPLIST_FILE":"Target Support Files/share_plus/ResourceBundle-share_plus_privacy-share_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"share_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e984941b3bd8ddbbb9a982bf767e0050351","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a5f61ec1f3173176575d7d9ea45f5750","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/share_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"share_plus","INFOPLIST_FILE":"Target Support Files/share_plus/ResourceBundle-share_plus_privacy-share_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"share_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98110578e13679ee9193f7af94a81370de","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e984adc265478a23757b988e5384ce7d0f3","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98d1fdc3604f6eab7813e187a37168202c","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9817cde765059df85fb7823538ffec26d9","guid":"bfdfe7dc352907fc980b868725387e98103674a366939ef4970c1b708820c2d2"}],"guid":"bfdfe7dc352907fc980b868725387e98cc3f2a847f076f5e1ebef8768fb01369","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98de00f90750e7753637464fe34137709d","name":"share_plus-share_plus_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e987f86a96a3ca03f6247aa68a7b2c0bfd0","name":"share_plus_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=1563276f9fe4d4f80198074e16e255c8-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=1563276f9fe4d4f80198074e16e255c8-json new file mode 100644 index 0000000..ce032c4 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=1563276f9fe4d4f80198074e16e255c8-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e987ac03f99384c64c0e85fcd4ee8c85ddf","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/PINCache/PINCache-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/PINCache/PINCache-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/PINCache/PINCache.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"PINCache","PRODUCT_NAME":"PINCache","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98e5c20026a3283329aad677091f740b35","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9899422390852183ad01586a712fb65be1","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/PINCache/PINCache-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/PINCache/PINCache-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/PINCache/PINCache.modulemap","PRODUCT_MODULE_NAME":"PINCache","PRODUCT_NAME":"PINCache","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e989d331285563327a07e22a3b1d6a0e48d","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9899422390852183ad01586a712fb65be1","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/PINCache/PINCache-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/PINCache/PINCache-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/PINCache/PINCache.modulemap","PRODUCT_MODULE_NAME":"PINCache","PRODUCT_NAME":"PINCache","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e987b113de5ee9889b9380e311bc382c9b1","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98205bfcadf79815db4a2440047a8772e1","guid":"bfdfe7dc352907fc980b868725387e9824eb89a55be0495261fda21f7940f2f4","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b03a4b741b8e8b85b8fff7319adbbd9e","guid":"bfdfe7dc352907fc980b868725387e98ab584d73acf3a5b9401c8413385b5318","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981a70eed33baab9df44b4e6f316f7726c","guid":"bfdfe7dc352907fc980b868725387e98d087be78cc1215daa0b638606e553fd1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9876b1773b84d4fbd9aa7da5bf82eacc45","guid":"bfdfe7dc352907fc980b868725387e9823d32eecafe25cd5a45aa75fe4a1d106","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fd043e297fc1041580768c2fed4f397b","guid":"bfdfe7dc352907fc980b868725387e983bdf1a6d4a8f53f0a763831a5b499651","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b1df230eff67bb6277d4529e0bb17f8f","guid":"bfdfe7dc352907fc980b868725387e981eff360f0f626709156ea24feaaa4252","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98265a6a12be27c2f144820a3b175aecfc","guid":"bfdfe7dc352907fc980b868725387e9802c3938d519e89fe203f33a6e4cbf6ae","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98bdc66af17042614dfdf8d54607be6f44","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e984e41672948b010f54b59124958c71d64","guid":"bfdfe7dc352907fc980b868725387e98ed02d35428caadccadc7a798c7aefb63"},{"fileReference":"bfdfe7dc352907fc980b868725387e988a159ea2a3f809a4b0d42fe5251b5cee","guid":"bfdfe7dc352907fc980b868725387e98c966c123cd046288cb2385bdc89a8aa2"},{"additionalCompilerOptions":"-fobjc-arc-exceptions","fileReference":"bfdfe7dc352907fc980b868725387e98eaca15f80e33f27b2ac6d6be886790e2","guid":"bfdfe7dc352907fc980b868725387e980d34bf1c6b4146d79b1ca95a812e9b32"},{"fileReference":"bfdfe7dc352907fc980b868725387e9810ce1366ec48f397c58cd3085d8bdc20","guid":"bfdfe7dc352907fc980b868725387e9809bb169e4433ba1524fd010e7558e113"}],"guid":"bfdfe7dc352907fc980b868725387e9868a6d70a1d7be060514b98ccd6f23996","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98bf8a9be56e2a5fc4b397d40444696152"}],"guid":"bfdfe7dc352907fc980b868725387e9877a7c6dff925885154c0e74968795cf7","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98df16553f193cf0610ddf0416f9619069","targetReference":"bfdfe7dc352907fc980b868725387e98956b709ce41abfabe34269a056c97973"}],"guid":"bfdfe7dc352907fc980b868725387e9881a4eae8ae5a80cda98697e77412ed38","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98956b709ce41abfabe34269a056c97973","name":"PINCache-PINCache"},{"guid":"bfdfe7dc352907fc980b868725387e98d09cfc976f4622a7180a4de1a3b0a290","name":"PINOperation"}],"guid":"bfdfe7dc352907fc980b868725387e980a765b211b0c8c508dddcb830a52bbab","name":"PINCache","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98329516f5a905f2fb033999940b6a62f1","name":"PINCache.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=15850998b9333dc1e556964e2fec36ba-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=15850998b9333dc1e556964e2fec36ba-json new file mode 100644 index 0000000..b9c4564 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=15850998b9333dc1e556964e2fec36ba-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982d88fc83a5b8fe50739851256ce3687c","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","ONLY_ACTIVE_ARCH":"NO","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2"},"guid":"bfdfe7dc352907fc980b868725387e982cf0da236cf10d087750aa1434da9227","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e988fe5b71b828dd1ca85523b7e794b6a88","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES"},"guid":"bfdfe7dc352907fc980b868725387e98cc28f154213fd8181aa70d4c188a8335","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e988fe5b71b828dd1ca85523b7e794b6a88","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES"},"guid":"bfdfe7dc352907fc980b868725387e981f19fefc6e52ad9e4e005a2248234387","name":"Release"}],"buildPhases":[],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"","configurationName":"Release","provisioningStyle":0}],"type":"aggregate"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=23300169adb17489ec97e3471e9d0929-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=23300169adb17489ec97e3471e9d0929-json new file mode 100644 index 0000000..aad654d --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=23300169adb17489ec97e3471e9d0929-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f0a95ac974bb6b0ba5b06a77b7025160","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PromisesObjC","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FBLPromises","INFOPLIST_FILE":"Target Support Files/PromisesObjC/ResourceBundle-FBLPromises_Privacy-PromisesObjC-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"FBLPromises_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e989b1e78aa664f68fc367d534aea5fdc05","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e989c4d4a7aeac80a75f2577cb4dc3454e1","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PromisesObjC","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FBLPromises","INFOPLIST_FILE":"Target Support Files/PromisesObjC/ResourceBundle-FBLPromises_Privacy-PromisesObjC-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"FBLPromises_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e988657358a852de400fcac8b7c170d338f","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e989c4d4a7aeac80a75f2577cb4dc3454e1","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PromisesObjC","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FBLPromises","INFOPLIST_FILE":"Target Support Files/PromisesObjC/ResourceBundle-FBLPromises_Privacy-PromisesObjC-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"FBLPromises_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9840de090782cf72adc5e9fe702820db50","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98b32e3e82d460fca1bbb089e4c654aa99","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9838f0e94d1ed3d183e97005731a5a4421","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e983467e24a2ddecd97ae32967fc5df4ccd","guid":"bfdfe7dc352907fc980b868725387e981e04043614f1d8a24a339269e10c14ce"}],"guid":"bfdfe7dc352907fc980b868725387e98bd7e1b1fc3892c779f5e8aeaed040700","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98ad53226b339581a6725de188f2c8f823","name":"PromisesObjC-FBLPromises_Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9867729fb6a85d4c069a179d51db31501d","name":"FBLPromises_Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=259a93aeeb9daf9c6161745a945b3b43-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=259a93aeeb9daf9c6161745a945b3b43-json new file mode 100644 index 0000000..9a3110e --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=259a93aeeb9daf9c6161745a945b3b43-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e986b6dfa003852f03cd58cfbdc0205be08","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/libwebp/libwebp-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/libwebp/libwebp-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/libwebp/libwebp.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"libwebp","PRODUCT_NAME":"libwebp","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98b1f02cb7a46e87741bd64bb9b832faa2","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98db9922fae833d0a300b2c6f79c47acf9","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/libwebp/libwebp-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/libwebp/libwebp-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/libwebp/libwebp.modulemap","PRODUCT_MODULE_NAME":"libwebp","PRODUCT_NAME":"libwebp","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98685a93afb97762913c801edb471b70e6","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98db9922fae833d0a300b2c6f79c47acf9","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/libwebp/libwebp-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/libwebp/libwebp-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/libwebp/libwebp.modulemap","PRODUCT_MODULE_NAME":"libwebp","PRODUCT_NAME":"libwebp","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9847c8b97d2c20cc67f23b0cb45e18a02d","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9865cf11fbdeaecd798371e8909c8e27f6","guid":"bfdfe7dc352907fc980b868725387e98fb9d591b407d27450bcef9aa663106e4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e03e6b35a5c7e4d109478218d9a97c88","guid":"bfdfe7dc352907fc980b868725387e98afed0c63c3881c69f15e717f7f048bb7"},{"fileReference":"bfdfe7dc352907fc980b868725387e983ee03f9491d95ea7d465c9df01981328","guid":"bfdfe7dc352907fc980b868725387e980fb5cde610b18e67faa7e89b4c1689d3"},{"fileReference":"bfdfe7dc352907fc980b868725387e9814dff83ccd3cec1ab95d9996c8c0ab05","guid":"bfdfe7dc352907fc980b868725387e98df64c1902285b2453f39a496406da637"},{"fileReference":"bfdfe7dc352907fc980b868725387e98464984769b95cb53ad84052d350fe451","guid":"bfdfe7dc352907fc980b868725387e980d9f470bca7b36128b86659885787a0b"},{"fileReference":"bfdfe7dc352907fc980b868725387e9893e8163baedd9653f6af1f6cf4b4e3a6","guid":"bfdfe7dc352907fc980b868725387e989cc366390d7a204f3654e0090aab4bb2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98da3470e40cffd83a84bfec6a9835c361","guid":"bfdfe7dc352907fc980b868725387e9880355d6ba02824901e4b26799239c26e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f83f8208c523c2b9386e8ddaf465b768","guid":"bfdfe7dc352907fc980b868725387e9882a56637e9937ba874b1898d6fdcf203"},{"fileReference":"bfdfe7dc352907fc980b868725387e984041fca33ee0bdbca1562cac75bb2b95","guid":"bfdfe7dc352907fc980b868725387e98841e84e8845dd597231fa008de04dc43"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ce8bffe7296b050b0b3419bbc327d5b7","guid":"bfdfe7dc352907fc980b868725387e9827f5996b6c9516666c6d33964f24abba"},{"fileReference":"bfdfe7dc352907fc980b868725387e986b79d77f12db3435cc59f24bb59f4734","guid":"bfdfe7dc352907fc980b868725387e98cbf2f9173c6f70ee1b8774010abd1fc1"},{"fileReference":"bfdfe7dc352907fc980b868725387e983b0bee1af5a6f001e274b375c752c95e","guid":"bfdfe7dc352907fc980b868725387e98053cf04d6cf8461f146d754b0a0b7dfc"},{"fileReference":"bfdfe7dc352907fc980b868725387e984582ef2068264f65cbbfa0f857b9669c","guid":"bfdfe7dc352907fc980b868725387e98a494fadc92e111609aa943450727c81f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98074860e9c34c8d4b020dd8be16534ac7","guid":"bfdfe7dc352907fc980b868725387e9881a6c924b29c64ef2b70e8649859c9ac","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a2386f92d3708576ae2b7056884f3c9f","guid":"bfdfe7dc352907fc980b868725387e98a7c741c91c4b7c6ae3e9377568879a2a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9899a33689970f57834029d65fe8ada172","guid":"bfdfe7dc352907fc980b868725387e9876011469fda12234c77b633924ad7a88","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cb41875c3655fb5c0fd6caec38e9ab0b","guid":"bfdfe7dc352907fc980b868725387e987efb0f2cc11637ff39ad3ac7826fcdde"},{"fileReference":"bfdfe7dc352907fc980b868725387e9842105ec29b44a57403b5a4235fbdf51d","guid":"bfdfe7dc352907fc980b868725387e98e89fabce5dea3331a44bd25249847179"},{"fileReference":"bfdfe7dc352907fc980b868725387e9881d819c3dbc85d5a7d441aee534da5bf","guid":"bfdfe7dc352907fc980b868725387e98bfc7f134fb940499986bc26e79e4e387","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e982bcb00e8fbb7144fbc86734ced979e9f","guid":"bfdfe7dc352907fc980b868725387e983bc58590efaa3b96d470b4ae76e7a7c6"},{"fileReference":"bfdfe7dc352907fc980b868725387e987253cc59db21606a60b57c04217e9ad9","guid":"bfdfe7dc352907fc980b868725387e9877f2c7e4d43a71321178ad4e609f727f"},{"fileReference":"bfdfe7dc352907fc980b868725387e983efe6054abdb604dab5200068c2a8511","guid":"bfdfe7dc352907fc980b868725387e98a4862164715b5c7c8a5120b7e550e42a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98253ac3c5afa874c40c5e930ff0c88cac","guid":"bfdfe7dc352907fc980b868725387e98debb2f3f89ba7639dff0236ab195128c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9887f3947d1d19a1ef48f5e28a9874136d","guid":"bfdfe7dc352907fc980b868725387e98c59a7701ece9f8705bcb0efde27b2adf"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dd0768960d3d82b6ffb316dba9347ec2","guid":"bfdfe7dc352907fc980b868725387e98fa9401aab5ea08ad27a305e3445f0ea4"},{"fileReference":"bfdfe7dc352907fc980b868725387e989dd7d0f28611bb8310da50d54e473b31","guid":"bfdfe7dc352907fc980b868725387e98a42bb56afb6e9a9db27b2885271b9f71"},{"fileReference":"bfdfe7dc352907fc980b868725387e982be7e1e17f41129c72732238f7c11404","guid":"bfdfe7dc352907fc980b868725387e988d6ba5844ddcf0fe6ef7c3e82ca4f3f8"},{"fileReference":"bfdfe7dc352907fc980b868725387e9846d955952c62567948e7b6f4b579d33b","guid":"bfdfe7dc352907fc980b868725387e989cea577e89b0836a812645d5039fcf47","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9813afb72816e9e09cb6e2ee00c59af5a5","guid":"bfdfe7dc352907fc980b868725387e9828f043cad45b1f6cada44017c85aa0f9","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e984d5c40e421b8cf6053e5798f336608ce","guid":"bfdfe7dc352907fc980b868725387e98eeeb59461cc6dd492f7b4e8a02282c15"},{"fileReference":"bfdfe7dc352907fc980b868725387e982577283c288e1a99b9ad765b90f0f6cc","guid":"bfdfe7dc352907fc980b868725387e983d81d64392e27646f178fd0ea33655a1"},{"fileReference":"bfdfe7dc352907fc980b868725387e9847a632474356516fb8f82472fac2e263","guid":"bfdfe7dc352907fc980b868725387e98d6b9f3eb9930552d806f92c73c0ad797"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e27376b5fbb508e26df8eab69e74d94d","guid":"bfdfe7dc352907fc980b868725387e98239bfc7cf904c77bcbf5879c72cdf62a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c97c402030c0985b1b1e07c27ea37508","guid":"bfdfe7dc352907fc980b868725387e989f09e5cde703e4a4569be16a05ae69d3"},{"fileReference":"bfdfe7dc352907fc980b868725387e980f5edc16276997dc1775fb4903366803","guid":"bfdfe7dc352907fc980b868725387e98e93acc0dda8befb874f7af903d526d11"},{"fileReference":"bfdfe7dc352907fc980b868725387e989254436d224c1733c7a240fc187fd896","guid":"bfdfe7dc352907fc980b868725387e9824b3eededc529e2e9c5e5287c4fe9d8f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ed6e47506552efda72e269758b459c92","guid":"bfdfe7dc352907fc980b868725387e98db49d221d6607129bb8505b9c5ba4829"},{"fileReference":"bfdfe7dc352907fc980b868725387e9881fb6745ee34ba06492963eb30c31709","guid":"bfdfe7dc352907fc980b868725387e982eaaa235fc2a04e6f6b17270c75e139a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e984d581004ca70e6e3361405d2fe8e7c58","guid":"bfdfe7dc352907fc980b868725387e9866a789b88fe33fd811d2587139af2f90"},{"fileReference":"bfdfe7dc352907fc980b868725387e98991d56f079d3e63882cc91b6ce748ae1","guid":"bfdfe7dc352907fc980b868725387e9899090afbdd21eb3addd759d0e03548c6"},{"fileReference":"bfdfe7dc352907fc980b868725387e981a83c5d040b137b6879ff8c91bb17de6","guid":"bfdfe7dc352907fc980b868725387e9802cba3c6e6af6d045fcf1b18ff46448c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c2af9652376141937f0894fd268c4478","guid":"bfdfe7dc352907fc980b868725387e98e662505bd95ec6e7e09957abf6f4b801"},{"fileReference":"bfdfe7dc352907fc980b868725387e988116125a0b12ac8f1bd0154031c80b54","guid":"bfdfe7dc352907fc980b868725387e980db0835f6968d52dc4d7eb1c30733e1c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b888ead5548629d7570b77155c685ae3","guid":"bfdfe7dc352907fc980b868725387e98b273985948a78f652cee8d8a7277a266","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9871e77b282b62934731e8efd0d11972fc","guid":"bfdfe7dc352907fc980b868725387e984b0b3e425985c39f50ceba0bc8de5c80"},{"fileReference":"bfdfe7dc352907fc980b868725387e988584302ca4c8de16f694280e00573c8b","guid":"bfdfe7dc352907fc980b868725387e9882311f643e76d0fea89d5f37034d2fab"},{"fileReference":"bfdfe7dc352907fc980b868725387e9809560a722b32f8435cfd59afd6f9cf0b","guid":"bfdfe7dc352907fc980b868725387e983c814b07d2b28c92b0474bf1d65d2401"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fb95ffe2b8e04ae2863fcaf2b14c2ee1","guid":"bfdfe7dc352907fc980b868725387e98413184e6901a87b7d8fa1a4603452a77"},{"fileReference":"bfdfe7dc352907fc980b868725387e98621873aacfb101a5d7c35a93c3d5034f","guid":"bfdfe7dc352907fc980b868725387e988cc4592ef5ae34dc4ac2a9823ac62bdd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c401777d7416c287f139b135ff86717b","guid":"bfdfe7dc352907fc980b868725387e987d06c146c7f9a885926c824f252de218"},{"fileReference":"bfdfe7dc352907fc980b868725387e9821e1aceaf5e0cc90cdb235c4b08804c9","guid":"bfdfe7dc352907fc980b868725387e9874bb560f25ffc05c0d8faf0dee694d0a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e9facebb7ad539fc4a3b856c18d86d14","guid":"bfdfe7dc352907fc980b868725387e982654cf85f8ba42417e0d511496038ed2"}],"guid":"bfdfe7dc352907fc980b868725387e98b9fcea6328f9ac80855ae3d4885f3667","type":"com.apple.buildphase.headers"},{"buildFiles":[{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98413af65f886d968e98e0a0d1ceba7cfc","guid":"bfdfe7dc352907fc980b868725387e9869f39a4dd4641b6d66b4381729bbbd8c"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9881bc7dc779662d03da2191876992b173","guid":"bfdfe7dc352907fc980b868725387e984e7711d0d38ffa5c97b47ce8e450421c"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98f56872a02b2b7f63cbf6424e60942040","guid":"bfdfe7dc352907fc980b868725387e9862121ce0760c510714612e6445c01039"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98bc91bd32c93401161a6dc6a7e1355a28","guid":"bfdfe7dc352907fc980b868725387e9849a7dfac5881989d1fa20be963d25d73"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98d2b2cfbc898db0c44e5179c0f3e466ed","guid":"bfdfe7dc352907fc980b868725387e986c355a59a44c7b1a92c06bc680dfca2f"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e988bf1cfaccc98b1e8597dfab8ea81ac08","guid":"bfdfe7dc352907fc980b868725387e9869ecf8481f14cb0b4f5a12528175e458"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98f97f70cf9620bc49c63b149d4025a96c","guid":"bfdfe7dc352907fc980b868725387e981f7533cf6bd8880d9a8748b9965e545d"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9829fe7631b319a5b2da8d3ed3a0c7de13","guid":"bfdfe7dc352907fc980b868725387e981f9a3a18a7f47435c220774721a3dcf3"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98f9d095ed2518e9fd650015fd99ce3bc6","guid":"bfdfe7dc352907fc980b868725387e98c9f1d3d28706733eb618753c81e40d21"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98fb4826540ec3c76343de5a2357ebf6b2","guid":"bfdfe7dc352907fc980b868725387e9890f0b9eea71501ce8284744b705c6d5b"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e988cfe2e1c284e5af13d8553e85f94bb33","guid":"bfdfe7dc352907fc980b868725387e98ea218dd647fe1e4adc199df49b5ee8c5"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98b3092406ded0fbb37943a636ea2d6bb1","guid":"bfdfe7dc352907fc980b868725387e98ffdf2237afece3aaeb31bd73357034c4"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e989d5a5f9f73b9423c9b67247fac735922","guid":"bfdfe7dc352907fc980b868725387e9892179a4443cfe94244c404d8654dfd2c"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9800b63e865b3ce340a4aa69698f2d7d6e","guid":"bfdfe7dc352907fc980b868725387e987e21dabdefe4b9dba713c1af7667a34d"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98e8c9aec98bda26d4a6d7f751efa43978","guid":"bfdfe7dc352907fc980b868725387e98ce76190c49408389c924e7c41a7b8306"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98f1c3ff465ace134bb3a19867f7e9e15c","guid":"bfdfe7dc352907fc980b868725387e987c3aea0976359a7ae2d4c50390685184"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e984e06f8eb4b536aaaa7cd5e8c348cfb81","guid":"bfdfe7dc352907fc980b868725387e98ae65ec2100513eabe8342c616ea30aaf"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98b8cc1feb56f5aac4acbb29a06228e034","guid":"bfdfe7dc352907fc980b868725387e98bf665115afb909cc8ea94e2c06a07600"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98280a003d8435b23a411e3c98930aa172","guid":"bfdfe7dc352907fc980b868725387e987fd6957cf2d96d42e07053600c91177e"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98196fefbd55b3312b91f3a900f8264a62","guid":"bfdfe7dc352907fc980b868725387e98cba5f24839f3d0b0504fe21e6e1c7507"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98e220a17c40ba4659f1aca4c252bb45d1","guid":"bfdfe7dc352907fc980b868725387e987b79a3efbf0f6f9aada6c1756604bab9"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9867aee6f760467df779d26e6b53b6faa4","guid":"bfdfe7dc352907fc980b868725387e98e179dba39d355cf4f00942d8ae8d645d"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9841678957c5019cda71943443a7cf512d","guid":"bfdfe7dc352907fc980b868725387e9838e99435f3c4f7fcd0be7bef04a96ca1"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9824e9b679760c1dd26551a440662e70de","guid":"bfdfe7dc352907fc980b868725387e98cce01b0f26ae5c0474053d529ebb352a"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9820393a9341504603f7b6dec2e9231c8e","guid":"bfdfe7dc352907fc980b868725387e98ff4166aa14fa72aa81b34c6e29c8d3fe"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9849e60b728e374487162c91b8fd28b321","guid":"bfdfe7dc352907fc980b868725387e9874461369b482810f3e65445fc6dca5c7"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e989640eff4de6c67d9cbfecaaaa8f624a5","guid":"bfdfe7dc352907fc980b868725387e9897bf7348c8fc23146f20d6a96ede93ad"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e983da3740a452ea7a4a9165eba86b57160","guid":"bfdfe7dc352907fc980b868725387e9869441d76235f5f1e2c0b0a1cf0f3ef2a"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e980d0eb4aa61d5862591508358da9386bf","guid":"bfdfe7dc352907fc980b868725387e9807fca29dcac2c38ad934cdadf42a813b"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98cb5ae929444e621145770a62b22faadb","guid":"bfdfe7dc352907fc980b868725387e983718574858766a884c6ab90a13c8ac4f"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9884d7eae652c16342d53f29d6b5740db5","guid":"bfdfe7dc352907fc980b868725387e9844856a3a154d2aa24655d2dd391ccc37"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98f892d00760596edf7fa24dbc40a71065","guid":"bfdfe7dc352907fc980b868725387e98b13badc02525db5ad829b12ad82b5bae"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e980ff7eb6c97680074e3a0f289137eb577","guid":"bfdfe7dc352907fc980b868725387e98bcfaadd554f8a36d7a7248845c24971b"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98e6ce249b0cf3775be2115f382c8a639f","guid":"bfdfe7dc352907fc980b868725387e98da71ecbbb461d14036aedfc39212f4dd"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9870a83d94470155c8af474b9d130244e3","guid":"bfdfe7dc352907fc980b868725387e98fe9dea1d1a53ba9e362b5453b4f6cf42"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9823e9e94d3aa2d35b397e2f8e1a94f8fa","guid":"bfdfe7dc352907fc980b868725387e98425c1ca07813f622bcbd5854a333234a"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98f58b993750ce0c8cb270aa051ece403d","guid":"bfdfe7dc352907fc980b868725387e988816e292ed2e90081d0485021f1974fe"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9893a9a84fa64860e5523091f3f9f91245","guid":"bfdfe7dc352907fc980b868725387e98ff7671c293654c30276d79705d486c99"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98ae8c0f393470f832d3d38dd90eb6452b","guid":"bfdfe7dc352907fc980b868725387e983e11e9d983644473b719f193b93026ca"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9880ecb97b0eead23f426bbdc2a23efa64","guid":"bfdfe7dc352907fc980b868725387e9859d3bac28b065228fa7d1d5acbe58dfd"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98ff473aa98ef3ab27d8093c299c229dab","guid":"bfdfe7dc352907fc980b868725387e98703c91a15a7158a1aa0a1ea0025dda72"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e986b9a44bcc852ab072c07dd60e238a097","guid":"bfdfe7dc352907fc980b868725387e985060d983af39484d75a0352e89cbef03"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9882dada3ea85db48c821b4e2d249a6d74","guid":"bfdfe7dc352907fc980b868725387e9800860bbd3f964aa38499f56bb919740d"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9885f802dddc8787643e7ae2c11265ab28","guid":"bfdfe7dc352907fc980b868725387e98cc88ea085584f351a177a5cf494556b3"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98371545fbca2270760e5e89c43ffaee64","guid":"bfdfe7dc352907fc980b868725387e980c2e74a87040641f46ad4d6c3166565c"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98723656ef4ec4fe52127bba66a0279975","guid":"bfdfe7dc352907fc980b868725387e98a7370c54c4fc4e0c62e71118670c3839"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98e5273bcf1deda800df2c73ade45d5fd4","guid":"bfdfe7dc352907fc980b868725387e98997d311af65b53863a8c5ab84a82b905"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9808f402940c28a8ff3dffa9186371ee8c","guid":"bfdfe7dc352907fc980b868725387e981594b70229ffe6da4cf2d518892b9173"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9883c242075f79fdf59b0a309c7fb7a5d2","guid":"bfdfe7dc352907fc980b868725387e981141f32ff475a43536dbcf30e78dd34e"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9839d0fe456ccb86aec2b1a6b4567d58ab","guid":"bfdfe7dc352907fc980b868725387e980f5dcdde4d57db3aeba0f2558194fa49"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e982689175c60b87ab85ea84f7657101f7b","guid":"bfdfe7dc352907fc980b868725387e98ba51e064ecef937d57c16ebfe2c852b6"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98ba2faa9d32339fd4f0b4862c0fc98236","guid":"bfdfe7dc352907fc980b868725387e98ad8ee5f7b5eefb1a28307ec27868f15e"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98477a2dfcba81e7672c2e779268c8189f","guid":"bfdfe7dc352907fc980b868725387e98752420a3eca6f78f3bcf5d6bb7c51fca"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98e2a1623f4c61cb21c404403ccd5a7db5","guid":"bfdfe7dc352907fc980b868725387e980820bb6b5e21ac5922d035fa6d8002da"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e983d05a53cf1d4f38dda83b95bdcc8b1f3","guid":"bfdfe7dc352907fc980b868725387e98378f0e9859b787dd3461e4fb7dfce53a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e8bd6c3d937bb816b0decab4e83ef667","guid":"bfdfe7dc352907fc980b868725387e9858d86d1abf1fd9ee5a26b338db5b8be1"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98e0d0c266974d94d76d7197609070d0e6","guid":"bfdfe7dc352907fc980b868725387e980076f6fba09adbd332d494ec12ea1b15"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98616c8bd18b7648773f73f5043283cc7e","guid":"bfdfe7dc352907fc980b868725387e98e8677536066fca0a17d97069f8696f26"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e985e35be0829bbbbf9815f6c33a1b8b966","guid":"bfdfe7dc352907fc980b868725387e98d32e744f5a1c33e7e9a013a0b7da4ad6"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98132f42fb828759f628206b1743025498","guid":"bfdfe7dc352907fc980b868725387e986a14b78754f5298fb2856c4b286f2f09"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9894ad8e60d67d825476d5d3e4d7154dbd","guid":"bfdfe7dc352907fc980b868725387e98430ad092909755784b382e752a3b21d8"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98a977e1965bf1f7a9a0b0beaa53ff4476","guid":"bfdfe7dc352907fc980b868725387e98afda89feb96877e8798808523e822638"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e980558a60266a2675168719556228ac10a","guid":"bfdfe7dc352907fc980b868725387e98df561f413ca03b369e5d403392067a95"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e982b70b5d011e87fc7b1a5c438fd523e51","guid":"bfdfe7dc352907fc980b868725387e9858767ed19d0b7b32163d6b94d0bb235c"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e988c82349c5b95cda20428270ea174977c","guid":"bfdfe7dc352907fc980b868725387e9881a2f7bde738fff931883e5b8c76e827"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e989a87fcd72ec9577ed540a32f1e0e71e8","guid":"bfdfe7dc352907fc980b868725387e98984f28d75b53790df48839086d67c4a3"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e984ad03edcd4372120bb143cf052f3bd4d","guid":"bfdfe7dc352907fc980b868725387e98744945df1637bedb995413dcbe97a223"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98d758bd20458a4ef75bacce0aafe57baf","guid":"bfdfe7dc352907fc980b868725387e980d2ec0e832c43771dffa4cac1de684f1"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9889697684825f1bed1fdd4d724ffd4025","guid":"bfdfe7dc352907fc980b868725387e98b5592c926ea18209a03f67d74c442e18"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98e0965a681efa8bdfa06622d349882597","guid":"bfdfe7dc352907fc980b868725387e987863cb4593b898071ebbbac5f0b62d95"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98cb394f8a60db1fea92b1973dbc85795e","guid":"bfdfe7dc352907fc980b868725387e983d09ce0f6213adba7ea1e2e7ced65952"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e981df2d160c1025242618fcf08518c0f0e","guid":"bfdfe7dc352907fc980b868725387e9886cc193460dfbfbe6d1dbd4285332c5e"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e989405f9da589faf30f827e60bafcf1f04","guid":"bfdfe7dc352907fc980b868725387e98cf86d418e193a1cfd0171965066916d2"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9894ee1bd6f440db8dd4b0cee71bc0b85e","guid":"bfdfe7dc352907fc980b868725387e98446ceec0872ea549295b5bad29ff4fd7"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9804f001b47212bd647446ba0edfd68829","guid":"bfdfe7dc352907fc980b868725387e986a436bf198a318afab5ba3bd56c52d7d"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e983edb0491656300b4be1e85afd9cf47bf","guid":"bfdfe7dc352907fc980b868725387e98ddc9d5f0601a8ae825330587d9df4b98"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e985807d4771a26e16705261aadc3253533","guid":"bfdfe7dc352907fc980b868725387e9849f6ed78ede248a35657e114aa4a5217"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98cc8faf766c73b8e7b03ca5cb3faf3b67","guid":"bfdfe7dc352907fc980b868725387e980772c8726db2b66168ec40151d54b49b"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9850edff4515695764f9821430c4088c7e","guid":"bfdfe7dc352907fc980b868725387e98d744f1df4f462dd92baab7c8dd253c02"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98265a7e934e9d7d708d961e3911597539","guid":"bfdfe7dc352907fc980b868725387e98db3761458d9007d8f09817ae791d30e4"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e982f0fc4522ba8257219774d316111b44f","guid":"bfdfe7dc352907fc980b868725387e984cadf15afb2b8dd876b811fabfb8e63b"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9891094db7b17ff7a3044b3e76a70c1c3e","guid":"bfdfe7dc352907fc980b868725387e98a7aea61a48807d253e1fd65da4f458a2"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9849f49f77786b82890a380a725c69ed9b","guid":"bfdfe7dc352907fc980b868725387e98445327c42678c50acba7372eae0bf561"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98a04d2a404ca3e29876f06ab8ec55d48b","guid":"bfdfe7dc352907fc980b868725387e9809d2aeed185d7082d37f351660ef3541"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98b22d74d3791adf6d06afd81c495a382f","guid":"bfdfe7dc352907fc980b868725387e98f2b2642db16e863800463b0472d49914"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98db58360a5aee0b946871165a4ace7986","guid":"bfdfe7dc352907fc980b868725387e9897af72e63e2549f86888333f896d3d6a"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98f9860d15e265ed19c19ef50aa97b60a7","guid":"bfdfe7dc352907fc980b868725387e98c6fefd06abaf9e47a53bd8aa50312045"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e981616bc4e86a9814671a70dba8f28f26b","guid":"bfdfe7dc352907fc980b868725387e987aad1d46dc3c3e159e00b791f5df5e82"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98bb8775f76f938da551e0a745fff0589b","guid":"bfdfe7dc352907fc980b868725387e98f3035ae3060dd7325cef734997d9df68"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98b6bd7b4206ecf35a1797a866ebe37672","guid":"bfdfe7dc352907fc980b868725387e98d56ca0e364a1db37788aea5bbf7eb379"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98bef344c72340d81a051e285d2432ff5e","guid":"bfdfe7dc352907fc980b868725387e984aacdf6c077002786d9a4eda561355fc"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e981f6e0410a3fdd5ed7919a194493f9c6e","guid":"bfdfe7dc352907fc980b868725387e98e25fe41c7d3c5262986baae46548b9ce"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e981bbccebcf5fb5e01b6374c93f7273d6d","guid":"bfdfe7dc352907fc980b868725387e98d95825dbc0e1212c36d39fa1b7889074"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98491e9a19db754102453614dec1a7a55d","guid":"bfdfe7dc352907fc980b868725387e980217bd93f1915b40fe6832ae68853694"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e982b8daf98119f248a7333a71d931e21cf","guid":"bfdfe7dc352907fc980b868725387e9851a7dfe5bcd055d634150b7997887178"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98068c4f918460b8ea1f45c8db5652eb43","guid":"bfdfe7dc352907fc980b868725387e984ecb8ce670d0c5f9e70d8f45602b9ffc"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98be34e9ad0011bb556cea9adb59259b06","guid":"bfdfe7dc352907fc980b868725387e9849504eb13f67730cd5a9b82e7ec16335"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9841fd1d7f702f218a8b2c0747fcf9fb90","guid":"bfdfe7dc352907fc980b868725387e98833e4e1451959e60d016ef2d12831fb1"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98e32e9c04c4f4c8ffc8830d4877332837","guid":"bfdfe7dc352907fc980b868725387e9831077a2b4ceef9066e330518082e6b07"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e983918b704eb02670448d19720db3d1d25","guid":"bfdfe7dc352907fc980b868725387e985e89458e01068e36500da334b5d6b093"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98fdccd1d61d19fe3e23e60f1a93150425","guid":"bfdfe7dc352907fc980b868725387e98f95d23ee0e5c050c354ba8e093fc77c8"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98b8c0d1ed01d8d0b6d91030bd51838c99","guid":"bfdfe7dc352907fc980b868725387e98b11668c01417d4cf22238c410390bbf5"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9862ad715a3834a530164234850df4cfd6","guid":"bfdfe7dc352907fc980b868725387e98e719f23e542436c5dc60b1f0bea8df63"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98c3f66f0164bf3eaa40d7070019f1f571","guid":"bfdfe7dc352907fc980b868725387e988cfdef511cc325398550a32b4a33dafe"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98f0cc25025362402a3ac43bae6720c753","guid":"bfdfe7dc352907fc980b868725387e984a7330f8c7e31de9d803c29d9a5cd86e"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e980f69c6e19e39ba2bf741d9c7864e2fce","guid":"bfdfe7dc352907fc980b868725387e98d4b744693e376b98670baa028c1895e9"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9873c68330c1d4f6aab7dd6a952a2f0b3c","guid":"bfdfe7dc352907fc980b868725387e985132e97a3c0ea77bbb8fde8fc6030f88"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9830578d78230694628da0003e9a807a09","guid":"bfdfe7dc352907fc980b868725387e98a7c1a02dcf503a8105b15f85424501f7"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98bbef9a9cb1cdb4f68f35898953b5bf28","guid":"bfdfe7dc352907fc980b868725387e987d9cf8aef19b0550f79563cd2cb94a00"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e987a098a3acaa5c29d24275f6f505c80b2","guid":"bfdfe7dc352907fc980b868725387e98ea9cc710df87a832ab99f5f1d233d27a"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9877000dfd8c71be128a1b37c4772ea6aa","guid":"bfdfe7dc352907fc980b868725387e98e690ddfca269fbc1d6d0cc6eea372da3"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98b9b3c58283699c1ebd5c84d29c60969f","guid":"bfdfe7dc352907fc980b868725387e9850a021f256acc9f016c297393c8a8fc1"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9823b30d7bbb1f85f1bf945c58b19eaacf","guid":"bfdfe7dc352907fc980b868725387e98f18ca3bde702ee3db2107acc6c944ed7"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9853cf939bb7c7356f4aa5c7cc2bc8dee6","guid":"bfdfe7dc352907fc980b868725387e989af206733a1f6897f4b45274226a32f8"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e980c75a45acd48f24075308a7fbc46eea8","guid":"bfdfe7dc352907fc980b868725387e982d300243ddf03e51a3ed88753fe194f1"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e984bd8fd6414e61cf9dc36de8f06190d4a","guid":"bfdfe7dc352907fc980b868725387e98052e37a5c2946e035e915906e2ee68a0"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9890c23371d03225b91ee3eab8595786ed","guid":"bfdfe7dc352907fc980b868725387e98d2ae92c05d090f88fff12734fc0eba2c"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9852d8b9b2ae7d828a331f4e6a5509eb41","guid":"bfdfe7dc352907fc980b868725387e98bdaaa47e98db3935725c42287e804dd3"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98b36a24c5a0e2f7bf73a146570d409882","guid":"bfdfe7dc352907fc980b868725387e98b6bc46b74cae937794718206c0b191d1"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9892d7b2a1b3e2617037511d9f56a8d15c","guid":"bfdfe7dc352907fc980b868725387e9885c2ad9010886273e7a6c8f98c120b68"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e984d6e3616d916a345a7e218fe96d17b50","guid":"bfdfe7dc352907fc980b868725387e989ef7da82e27578baef2db63905bdf0d0"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e9807b79cd7bb84a0dee49e75017986e138","guid":"bfdfe7dc352907fc980b868725387e9825329083fbcf1b85222495cab3655564"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e989666dd37fe65ad9eb7702f7336257670","guid":"bfdfe7dc352907fc980b868725387e9823aaaa979d87378f759c97474945b3ee"},{"additionalCompilerOptions":"-D_THREAD_SAFE -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e988d8035949ecb69915e82a5daf2daef8e","guid":"bfdfe7dc352907fc980b868725387e98f4a184bf643668afac5b3eaeb9a39869"}],"guid":"bfdfe7dc352907fc980b868725387e98ec85db2c526c09e04ee73a5a907bae09","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98f061cae00308754efe39b0179bbbcd1b"}],"guid":"bfdfe7dc352907fc980b868725387e98d524b712333169554533139d1a1a5f68","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9800403e12f4902cfdeba6d2b5917e880e","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98459ecbbef4dbbe8a07a0c87bad0e0d1b","name":"libwebp","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e982988ca927fde17a51bcb980424f8e9e7","name":"libwebp.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=28e0b3a2fc306e151aad5675c9c71fd3-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=28e0b3a2fc306e151aad5675c9c71fd3-json new file mode 100644 index 0000000..2fd4d3d --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=28e0b3a2fc306e151aad5675c9c71fd3-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c98d5a35dd8795a42681114203553a63","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Sentry","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"Sentry","INFOPLIST_FILE":"Target Support Files/Sentry/ResourceBundle-Sentry-Sentry-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"11.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"Sentry","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9883cd3dbcb2d6949fa2b23b331c3bd72a","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98d2aaf20dd2b7dc8c1960622189dfcf83","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Sentry","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"Sentry","INFOPLIST_FILE":"Target Support Files/Sentry/ResourceBundle-Sentry-Sentry-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"11.0","PRODUCT_NAME":"Sentry","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98f109fa72fbb851311256eb5582ffbc91","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98d2aaf20dd2b7dc8c1960622189dfcf83","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Sentry","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"Sentry","INFOPLIST_FILE":"Target Support Files/Sentry/ResourceBundle-Sentry-Sentry-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"11.0","PRODUCT_NAME":"Sentry","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98f3c39683f5dd9681fe1be98fc14eea9f","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e984666934901219ac3497ccd9142180ad6","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98a59b50e9a7de0d5b95c995c241dc2811","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98fdad2b3c7ce43610dcf549ff7c3ed62a","guid":"bfdfe7dc352907fc980b868725387e980a177cc2d763d01f894adf7eb5e533cc"}],"guid":"bfdfe7dc352907fc980b868725387e98172478468665847d3b81cc249e731daf","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98f99e4f8be15916176d0b5f8867f3a63b","name":"Sentry-Sentry","productReference":{"guid":"bfdfe7dc352907fc980b868725387e980159ce637a2a4a76e0de0a23ae17879c","name":"Sentry.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2c570a8748a2023dbe6275e098e61eed-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2c570a8748a2023dbe6275e098e61eed-json new file mode 100644 index 0000000..40ebb2e --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2c570a8748a2023dbe6275e098e61eed-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98d004a44bc0f83b36de4c06c0e2d7acf9","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/file_picker","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"file_picker","INFOPLIST_FILE":"Target Support Files/file_picker/ResourceBundle-file_picker_ios_privacy-file_picker-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"file_picker_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98c725ffa3c3c83d1c2df617d734ed3ab6","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98e1a34420b75d91042885836aff28acec","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/file_picker","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"file_picker","INFOPLIST_FILE":"Target Support Files/file_picker/ResourceBundle-file_picker_ios_privacy-file_picker-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"file_picker_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e985666400dc5e45daa6d492e5014b81eb5","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98e1a34420b75d91042885836aff28acec","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/file_picker","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"file_picker","INFOPLIST_FILE":"Target Support Files/file_picker/ResourceBundle-file_picker_ios_privacy-file_picker-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"file_picker_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e989aad5c9d2c677750793953a2e05ccab5","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98c270fcceacebb5e08e6f9055581009d6","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98c7f95d32e55909d3e549775d549c5906","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9862198211ba6034642bbc5f4a29e29268","guid":"bfdfe7dc352907fc980b868725387e98ba0b4ef817960106fbdb4003ec582f76"}],"guid":"bfdfe7dc352907fc980b868725387e986f88bd3ee846c0fb83a755908f225055","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e985452a642045cac0ef7c37f93da2d994e","name":"file_picker-file_picker_ios_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e985ae769d0b989789f9e90cfb215ac5a2e","name":"file_picker_ios_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=346f4ad479e15e336d7c94c1cd280cd5-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=346f4ad479e15e336d7c94c1cd280cd5-json new file mode 100644 index 0000000..991f28b --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=346f4ad479e15e336d7c94c1cd280cd5-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982ae55349f9521db650f2a18a78d76937","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/DKImagePickerController/DKImagePickerController-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/DKImagePickerController/DKImagePickerController-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/DKImagePickerController/DKImagePickerController.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"DKImagePickerController","PRODUCT_NAME":"DKImagePickerController","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e987c1a49d2eb4928f38153fbb752b43f0d","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c601278e0434b87db13223dbd986fe53","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/DKImagePickerController/DKImagePickerController-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/DKImagePickerController/DKImagePickerController-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/DKImagePickerController/DKImagePickerController.modulemap","PRODUCT_MODULE_NAME":"DKImagePickerController","PRODUCT_NAME":"DKImagePickerController","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e981a061109697a6fecb5c4052027830873","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c601278e0434b87db13223dbd986fe53","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/DKImagePickerController/DKImagePickerController-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/DKImagePickerController/DKImagePickerController-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/DKImagePickerController/DKImagePickerController.modulemap","PRODUCT_MODULE_NAME":"DKImagePickerController","PRODUCT_NAME":"DKImagePickerController","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e984a2bfc0afebe00a97dd280fbd3b086c7","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e989cdb1244cc2ca97ed61f38ff8a723c3c","guid":"bfdfe7dc352907fc980b868725387e98305321bb0f6c61d76ab6f8f834f9e1bc","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e989c7318c71e29c5c2fa728fab937f84e4","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9815e1d305143c3566e09fccf36bac17e9","guid":"bfdfe7dc352907fc980b868725387e986b9c07eb90d1c19fb7ac9f978eac2cfd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dbe35b800abf413ed3a0088762de3402","guid":"bfdfe7dc352907fc980b868725387e9899bf2eef86ec86d3071d0464ba311bc3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a97b0cd55a593cb3e9375aefd82e78a6","guid":"bfdfe7dc352907fc980b868725387e989923225760583f9044f3477d68370fb4"},{"fileReference":"bfdfe7dc352907fc980b868725387e9863d6b236b467112fdda8a9fcb288a59e","guid":"bfdfe7dc352907fc980b868725387e980b8fe6bd9ce7b7f7f9b672f675ac40ea"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c7372d22fb1e82c47656f91001ef126c","guid":"bfdfe7dc352907fc980b868725387e98c7914d6db7a604491a406b7ffd04ffdc"},{"fileReference":"bfdfe7dc352907fc980b868725387e988619d33595179ee2f81b798fc133990a","guid":"bfdfe7dc352907fc980b868725387e98eb2913c855fd2bba90610341d1005093"},{"fileReference":"bfdfe7dc352907fc980b868725387e98be4cb5f13dd8974e52e959d08a984bdb","guid":"bfdfe7dc352907fc980b868725387e9818bf3e3f4e2e4ff6409fd3de93a3e67b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a2fb55c6523338198b21b271bab775c2","guid":"bfdfe7dc352907fc980b868725387e9862f3f56aa2a92efeb6d501703a17fb78"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c5c763316ea9c2c00f2d0f75384b6d3d","guid":"bfdfe7dc352907fc980b868725387e986f0a5a4d4d049699b38b834e5127e27c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98462fffaa53921d017ed272122461610d","guid":"bfdfe7dc352907fc980b868725387e98b11d52cb23817759d43df3901c9dfdcf"},{"fileReference":"bfdfe7dc352907fc980b868725387e985b48bbb139bba24627b709e08d903ff6","guid":"bfdfe7dc352907fc980b868725387e982e2cfaddbe60c31e36e71f4cf7b78cf2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c74ae5b319226a190ddd0f9275a6a6f6","guid":"bfdfe7dc352907fc980b868725387e9880b17e68f279e7d7783a51e9bb5287b7"},{"fileReference":"bfdfe7dc352907fc980b868725387e9863f19671557899072a23eb4d4896a73f","guid":"bfdfe7dc352907fc980b868725387e98edb05713e1e170990070d795fbfd9ad1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98619fe2ab87de953ac892bbd26722d119","guid":"bfdfe7dc352907fc980b868725387e98571373774a6c562d2a57eeef6625aad4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b6d293741a3b3fd0339e12c112461bfb","guid":"bfdfe7dc352907fc980b868725387e982b8ddf46d054df8e6dd54a4248a7bf7d"},{"fileReference":"bfdfe7dc352907fc980b868725387e986f68c343117d72d8d81bc24768068cb7","guid":"bfdfe7dc352907fc980b868725387e98a0be07ca2e426e3bc60d30898d361288"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a9b1fac151336b02d21559f689d4ed14","guid":"bfdfe7dc352907fc980b868725387e98b3f4cf0af8ed4ae02ddeeb10e435cd75"},{"fileReference":"bfdfe7dc352907fc980b868725387e9894fc4456916def2244bd64a62648e92c","guid":"bfdfe7dc352907fc980b868725387e9812c712ccbecb48d4ce26f86166ff880e"},{"fileReference":"bfdfe7dc352907fc980b868725387e9869fb27659423104cc5a6e3053cbc4ebc","guid":"bfdfe7dc352907fc980b868725387e982a440638f7cb9965d090ab0c181da156"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a59e90a6793b47683b529863d87e9912","guid":"bfdfe7dc352907fc980b868725387e9803b6b2b356410bc7bcfcc1b875c69472"},{"fileReference":"bfdfe7dc352907fc980b868725387e98993094d0e13f5df0f41d41a2bc39b850","guid":"bfdfe7dc352907fc980b868725387e98ec9c4546923a074af807de40344c27c3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98af86d75723a2c86e4645cec72ea13640","guid":"bfdfe7dc352907fc980b868725387e985cfeda817f2be498febfcb296540639a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98290bea910c733c8370f189d9d9298f46","guid":"bfdfe7dc352907fc980b868725387e982082b1aebfa678d630e6c739c18a5003"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d760f069f9083df3b15aeaa4859fc8c6","guid":"bfdfe7dc352907fc980b868725387e987c4d107baf407af054f8312cf0ad4178"}],"guid":"bfdfe7dc352907fc980b868725387e98239213265a3abaa90df058a8c1bb91cf","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e9840e570f7d28f64055b1dab9dc749246d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fca39a1b3a759435878c72e88d354056","guid":"bfdfe7dc352907fc980b868725387e98192e2db6ac44b70d83d52bc9a34503d6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98843620cb9303c260af54f17d584e9561","guid":"bfdfe7dc352907fc980b868725387e98f0a88717dff9f0a44bc37f82f0d7d1f4"}],"guid":"bfdfe7dc352907fc980b868725387e98819fd04ebca59115ef049e04b7b72408","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e988c2f740ef6174a43ddde75c8d424f6f2","targetReference":"bfdfe7dc352907fc980b868725387e9898fccba7a2febdedb43dddbf2e949fc3"}],"guid":"bfdfe7dc352907fc980b868725387e984c4b1b52a05e595bcc1230a93d57ff06","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e9898fccba7a2febdedb43dddbf2e949fc3","name":"DKImagePickerController-DKImagePickerController"},{"guid":"bfdfe7dc352907fc980b868725387e989d0a1858a86fd6e6731ed20f88a1e515","name":"DKPhotoGallery"}],"guid":"bfdfe7dc352907fc980b868725387e985fd5cdb9993b1816141f0c012ffa62bd","name":"DKImagePickerController","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98f752ba05adf197c3696519e901961310","name":"DKImagePickerController.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=34cb243197b06dc7b47eba30f4920667-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=34cb243197b06dc7b47eba30f4920667-json new file mode 100644 index 0000000..66762fe --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=34cb243197b06dc7b47eba30f4920667-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9855f667e8b10245566f5d18867d6262ee","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/SwiftyGif/SwiftyGif-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/SwiftyGif/SwiftyGif-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/SwiftyGif/SwiftyGif.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"SwiftyGif","PRODUCT_NAME":"SwiftyGif","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9874d7fa6a997deb1dbeb53082338be9f3","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984ce874e1e631db158308566573cb1939","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/SwiftyGif/SwiftyGif-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/SwiftyGif/SwiftyGif-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/SwiftyGif/SwiftyGif.modulemap","PRODUCT_MODULE_NAME":"SwiftyGif","PRODUCT_NAME":"SwiftyGif","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9840525628272bd4856687cfbd95ec6c6e","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984ce874e1e631db158308566573cb1939","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/SwiftyGif/SwiftyGif-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/SwiftyGif/SwiftyGif-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/SwiftyGif/SwiftyGif.modulemap","PRODUCT_MODULE_NAME":"SwiftyGif","PRODUCT_NAME":"SwiftyGif","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9840e701eaf9eb5fa9481d5bb624365a98","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98c4c80efa424aef4e0bbce90c28309b88","guid":"bfdfe7dc352907fc980b868725387e98bbd11ddf415f052f0034eef745ba05f6","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d1c1a18815c11cba1244a444d9b27d24","guid":"bfdfe7dc352907fc980b868725387e98f4340dae71cbb59d1d6018423b9f8311","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98ef358d02f5c1694f0163edb3858c1313","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98cb788775aa5505e80e71c89674fd67b4","guid":"bfdfe7dc352907fc980b868725387e986647b70dfd74b9a6b7760ac4e2cb2fe0"},{"fileReference":"bfdfe7dc352907fc980b868725387e984be349add8cedb451112c9cf74a5198d","guid":"bfdfe7dc352907fc980b868725387e98f7293727973628129d1ba2217eb6fbcf"},{"fileReference":"bfdfe7dc352907fc980b868725387e985ad71dd723fafb26ba7c00f9d426674d","guid":"bfdfe7dc352907fc980b868725387e9859d6076a12059d43d3632b0ea2b8cb44"},{"fileReference":"bfdfe7dc352907fc980b868725387e985b64e43a33de6eecd0aec5d8872e2363","guid":"bfdfe7dc352907fc980b868725387e98465b7257cbd99ea34f21820ac0b20fdc"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fc8ec8fee2763056081a4744f7d25654","guid":"bfdfe7dc352907fc980b868725387e98aa062ac0ec53c8496e1ced23b4ce936a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98abc7da5d37335f2017c3244585253e7a","guid":"bfdfe7dc352907fc980b868725387e984581af99700909ba871508d7bcaed47b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98218c63a3b866f2bd58225d5d929dfc7d","guid":"bfdfe7dc352907fc980b868725387e9860c8c70c7e0316805417f9fc7bb45160"}],"guid":"bfdfe7dc352907fc980b868725387e988f9d31d3957a0aa57beab9905a251cc1","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e9855c8c7ad60a95fee71f29e141b02d8d1"}],"guid":"bfdfe7dc352907fc980b868725387e98962c03e0e311aac5d4f4c1b5f320d0db","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e980b56099ac219e4561897c2679bf2b1ae","targetReference":"bfdfe7dc352907fc980b868725387e98f5cd644fc2aeb8654450a2168f52697c"}],"guid":"bfdfe7dc352907fc980b868725387e98af95467574e084f8576bb121fb91ff05","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98f5cd644fc2aeb8654450a2168f52697c","name":"SwiftyGif-SwiftyGif"}],"guid":"bfdfe7dc352907fc980b868725387e9872eabefc63c14dfe52fb0c95ad90294e","name":"SwiftyGif","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98290968646de0d07c6f6e2ed9e146ea78","name":"SwiftyGif.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=34f6a78d43f563bbd7684ebd953551bd-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=34f6a78d43f563bbd7684ebd953551bd-json new file mode 100644 index 0000000..8d27924 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=34f6a78d43f563bbd7684ebd953551bd-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980ac13cddb51943ff14ca886a6d1a6d97","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/HLSCachingReverseProxyServer/HLSCachingReverseProxyServer-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/HLSCachingReverseProxyServer/HLSCachingReverseProxyServer-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/HLSCachingReverseProxyServer/HLSCachingReverseProxyServer.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"HLSCachingReverseProxyServer","PRODUCT_NAME":"HLSCachingReverseProxyServer","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.1","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9845e5207fe8b11e232a57729dfca034f7","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ac8ac333e47f2623204786b3e6e8d88d","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/HLSCachingReverseProxyServer/HLSCachingReverseProxyServer-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/HLSCachingReverseProxyServer/HLSCachingReverseProxyServer-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/HLSCachingReverseProxyServer/HLSCachingReverseProxyServer.modulemap","PRODUCT_MODULE_NAME":"HLSCachingReverseProxyServer","PRODUCT_NAME":"HLSCachingReverseProxyServer","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.1","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98239136e8a9c1a0c05403b3e210fdfc52","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ac8ac333e47f2623204786b3e6e8d88d","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/HLSCachingReverseProxyServer/HLSCachingReverseProxyServer-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/HLSCachingReverseProxyServer/HLSCachingReverseProxyServer-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/HLSCachingReverseProxyServer/HLSCachingReverseProxyServer.modulemap","PRODUCT_MODULE_NAME":"HLSCachingReverseProxyServer","PRODUCT_NAME":"HLSCachingReverseProxyServer","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.1","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98fed6cc6228a36564efaf5648f0bd8d45","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98931b725bfcf17b6d76f25262d0153c37","guid":"bfdfe7dc352907fc980b868725387e98633e6917a103e01945929fd53f0463c1","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98dbb2c6f05751ae735c45920ea2401d27","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e982a43fd98fe05e1be257bc77601c267c6","guid":"bfdfe7dc352907fc980b868725387e983aa3a6e346658982771dbb2b8de57e4a"},{"fileReference":"bfdfe7dc352907fc980b868725387e989c376fc751db38f83b4045be0fe6aae3","guid":"bfdfe7dc352907fc980b868725387e98494fc9da0197087a3ac8d83d75af8fbf"}],"guid":"bfdfe7dc352907fc980b868725387e98fea4397d32bc4c87ee700a6b61301966","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98b56fc4c0a6699d49a59ad3d18ee62420"}],"guid":"bfdfe7dc352907fc980b868725387e9829ad29cf5831d1600bbbd34202f956dc","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e985aecbb186232fe862443931e67420a4a","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98ae4cba9dafde33c1f8a32ad5773d6cd3","name":"GCDWebServer"},{"guid":"bfdfe7dc352907fc980b868725387e980a765b211b0c8c508dddcb830a52bbab","name":"PINCache"}],"guid":"bfdfe7dc352907fc980b868725387e989f6c9e975471ecf29d91b182619839be","name":"HLSCachingReverseProxyServer","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e988902a1f8b282cfd5c502a1cacd34d526","name":"HLSCachingReverseProxyServer.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=3e1004a4b3a1ca6ff8b9b4915491d3fb-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=3e1004a4b3a1ca6ff8b9b4915491d3fb-json new file mode 100644 index 0000000..b216eba --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=3e1004a4b3a1ca6ff8b9b4915491d3fb-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982ae55349f9521db650f2a18a78d76937","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DKImagePickerController","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"DKImagePickerController","INFOPLIST_FILE":"Target Support Files/DKImagePickerController/ResourceBundle-DKImagePickerController-DKImagePickerController-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"DKImagePickerController","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98174482c60fc48cfda33c616780cfd4f3","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c601278e0434b87db13223dbd986fe53","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DKImagePickerController","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"DKImagePickerController","INFOPLIST_FILE":"Target Support Files/DKImagePickerController/ResourceBundle-DKImagePickerController-DKImagePickerController-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"DKImagePickerController","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98634301be431878d91a637b5ac1500bce","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c601278e0434b87db13223dbd986fe53","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DKImagePickerController","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"DKImagePickerController","INFOPLIST_FILE":"Target Support Files/DKImagePickerController/ResourceBundle-DKImagePickerController-DKImagePickerController-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"DKImagePickerController","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98e9539667ac13ea847180bf3a41034912","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9816c0a3e8bfb34cb3ad64cfbde7ebff49","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98b4d8c350c39d8dc6358c215e6b7ff9c1","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e984af4c36361cfca652bfc55babe898641","guid":"bfdfe7dc352907fc980b868725387e98f7b196d2a893a0153da4f4f2a4d7642e"},{"fileReference":"bfdfe7dc352907fc980b868725387e986b6f57dfa71d2afa0a1a7ce26d99b5a2","guid":"bfdfe7dc352907fc980b868725387e985df1b1bfd5e91fbe6d05081fd753dd4f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98df7c69e3ed1091809359bce305f9555e","guid":"bfdfe7dc352907fc980b868725387e987019b06da5d4c003dd1673bcc4294618"},{"fileReference":"bfdfe7dc352907fc980b868725387e9898abc9b32795ce4ad7781ac1e2e4b3d1","guid":"bfdfe7dc352907fc980b868725387e980a83fdec46733d9342bcbf57b864d622"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fc38ef0398a4796a2de06421ff183a9a","guid":"bfdfe7dc352907fc980b868725387e98ce14e8c65e5dec9b0c58efc74dd79128"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e6b2fcb4cb6340f0299d0d29bb9654ba","guid":"bfdfe7dc352907fc980b868725387e9824f21ee6645aa5006c85487f41326051"},{"fileReference":"bfdfe7dc352907fc980b868725387e9817a97c5058844beb69d20797b73c7526","guid":"bfdfe7dc352907fc980b868725387e98c85ffcc91d74bfd20103ba83ddcc8715"},{"fileReference":"bfdfe7dc352907fc980b868725387e988727ab15488508d431d5b6122041c61c","guid":"bfdfe7dc352907fc980b868725387e9835b8ad4b76436beeab1f115d82a52bbf"},{"fileReference":"bfdfe7dc352907fc980b868725387e98afd6b10bb81327d92cccce38e1d8342c","guid":"bfdfe7dc352907fc980b868725387e98d83402ffd7190bccef420d027221da20"},{"fileReference":"bfdfe7dc352907fc980b868725387e98db545466dc5bb1b86cbec9bf55448c17","guid":"bfdfe7dc352907fc980b868725387e98e8d8b6f60d0cb61f8c9904a8241b6618"},{"fileReference":"bfdfe7dc352907fc980b868725387e980984f181573c0854d8c1c189a380652e","guid":"bfdfe7dc352907fc980b868725387e98aa05869a1f72434ea9057ee2201914e2"},{"fileReference":"bfdfe7dc352907fc980b868725387e983c1b94c54d06c068cb4aa90b23ebf4d9","guid":"bfdfe7dc352907fc980b868725387e98d5cdaf856cc78ccddae864004ee6d071"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a3c66444d1d46fed13fa66d7e2506a4e","guid":"bfdfe7dc352907fc980b868725387e9882ee119d29ddd15e1c2b60d1ce3bfcb6"},{"fileReference":"bfdfe7dc352907fc980b868725387e984f0f57e75418bfc934becd3e9ececbdf","guid":"bfdfe7dc352907fc980b868725387e98461133972ecdbfe574b34f7cb0805bad"},{"fileReference":"bfdfe7dc352907fc980b868725387e989fa2c482b2545b0fcf9d89fae63b780d","guid":"bfdfe7dc352907fc980b868725387e98abd6f76684f0096c06210eabf8700a57"},{"fileReference":"bfdfe7dc352907fc980b868725387e98af8ee0601e897c93fa19d8c64831242b","guid":"bfdfe7dc352907fc980b868725387e98bd8dbce1018fff88c5c049a29507b64d"},{"fileReference":"bfdfe7dc352907fc980b868725387e9867d92cf590690a7e7ab82b6720d701b3","guid":"bfdfe7dc352907fc980b868725387e98941d8517f811a42558d6228adb01e356"},{"fileReference":"bfdfe7dc352907fc980b868725387e983a1c934e5c0aab08a070780f1bad1dda","guid":"bfdfe7dc352907fc980b868725387e98a2afc829c4dfc0ad15effb49d363aa5c"},{"fileReference":"bfdfe7dc352907fc980b868725387e988d98784fbd9485aba98b7ae568ba9a90","guid":"bfdfe7dc352907fc980b868725387e98d1a4db2f2a723bf5eef281cd8ff93c5d"},{"fileReference":"bfdfe7dc352907fc980b868725387e983ab7b4b586f09d4c1e506e4d9c82b585","guid":"bfdfe7dc352907fc980b868725387e988089fc02987d98ad3c8dfc5886fa5d6f"},{"fileReference":"bfdfe7dc352907fc980b868725387e980ab8ea50256089d4f1dd50bca3a00e89","guid":"bfdfe7dc352907fc980b868725387e9893de705da856b7bc6baa3f75bb7bb422"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d2c3285b28ae5ac999a78b9b5074e62e","guid":"bfdfe7dc352907fc980b868725387e980332d77e3102f1ccf3f2fc3db18abe20"}],"guid":"bfdfe7dc352907fc980b868725387e98f285095b388fe2ec0aea3c993f4f8bd9","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9898fccba7a2febdedb43dddbf2e949fc3","name":"DKImagePickerController-DKImagePickerController","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98ab5e1f747dfe477b655528b07584898d","name":"DKImagePickerController.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=40c0fe60c68f88846224a212a9d41968-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=40c0fe60c68f88846224a212a9d41968-json new file mode 100644 index 0000000..8956126 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=40c0fe60c68f88846224a212a9d41968-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980506e30044f99965ee32dcad10ea17c6","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GoogleSignIn/GoogleSignIn-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GoogleSignIn/GoogleSignIn.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"GoogleSignIn","PRODUCT_NAME":"GoogleSignIn","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"4.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9859ed185bddda9fac98fb955dbede7af8","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e989daf2e88caa8494e1832d8bce0659e6c","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GoogleSignIn/GoogleSignIn-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GoogleSignIn/GoogleSignIn.modulemap","PRODUCT_MODULE_NAME":"GoogleSignIn","PRODUCT_NAME":"GoogleSignIn","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"4.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98ad3933a0aa7d10d295b0b450348462c6","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e989daf2e88caa8494e1832d8bce0659e6c","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GoogleSignIn/GoogleSignIn-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GoogleSignIn/GoogleSignIn.modulemap","PRODUCT_MODULE_NAME":"GoogleSignIn","PRODUCT_NAME":"GoogleSignIn","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"4.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9800a96723981eef88cf31d8c7236d90f0","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98b8f1af5358ed0a98c580aa12cc83d2ba","guid":"bfdfe7dc352907fc980b868725387e98c4f5c98f0da774a21e280eab7fe057a7"},{"fileReference":"bfdfe7dc352907fc980b868725387e9862d69e70308c80315b382847621c4de5","guid":"bfdfe7dc352907fc980b868725387e9839fc6c7c664204e244b373b460a9432f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bf9831b79146f52c5ebb377ef06b770d","guid":"bfdfe7dc352907fc980b868725387e98427a666d7183895e3731d9813f412e20","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d9818fab698a2b47d78ba2ca2948b556","guid":"bfdfe7dc352907fc980b868725387e98e6727dcc8f1485e917b74fd4bef0a6ee"},{"fileReference":"bfdfe7dc352907fc980b868725387e988408138e3cb6b974bdd8a180458447f8","guid":"bfdfe7dc352907fc980b868725387e98df277450d913184a2fa4d6f95009ce33"},{"fileReference":"bfdfe7dc352907fc980b868725387e981406728884a3a3b137584192814a1dbc","guid":"bfdfe7dc352907fc980b868725387e98eb2550ce05cbbca7cd449a6c4ff75f87"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e30c145b180504c41a52c92db07028d7","guid":"bfdfe7dc352907fc980b868725387e98638198299c71ff4f47d5a92a029a6b66"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b32a5cfe1156d81f6318fde36fbfb32d","guid":"bfdfe7dc352907fc980b868725387e983f2105b19a45887ec0cd99b8f4098a91","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e989532be47c00a7c4944525fbc9c255251","guid":"bfdfe7dc352907fc980b868725387e98705be49b2174f3047c35324fab7fba8b"},{"fileReference":"bfdfe7dc352907fc980b868725387e986eedd803405eea85cd05d35655e2b7a9","guid":"bfdfe7dc352907fc980b868725387e98552ebb95fb1f5d91334db314a2781a83"},{"fileReference":"bfdfe7dc352907fc980b868725387e985de0e6f70dad7f0786d7d7028aae288c","guid":"bfdfe7dc352907fc980b868725387e9890339403453f254130360d2034e1ca48","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98806b51ceff564cf5ecfb25e8ae7cef9f","guid":"bfdfe7dc352907fc980b868725387e983a5f24f9d5e80f37cf291255e141080c"},{"fileReference":"bfdfe7dc352907fc980b868725387e986317fff0909998b7b9c65eb4c80e53f5","guid":"bfdfe7dc352907fc980b868725387e98100c4dd103ffa81658874e2b2d85d5e7"},{"fileReference":"bfdfe7dc352907fc980b868725387e988292e7e507d013cbe787a0195f4c78f0","guid":"bfdfe7dc352907fc980b868725387e98617f042988b16886e7cc20ec65a58165"},{"fileReference":"bfdfe7dc352907fc980b868725387e9813bf8af9a41d47d3830c3ef53c5085f7","guid":"bfdfe7dc352907fc980b868725387e9865b0896451f9d6cf2283a039fbf63cec"},{"fileReference":"bfdfe7dc352907fc980b868725387e984906e3f99fd527ce1434762a1d4c764f","guid":"bfdfe7dc352907fc980b868725387e9817b2cd278806279c92d05559de20d64a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cc5e1faa2db34345c09f3fab9eea8fda","guid":"bfdfe7dc352907fc980b868725387e989387f43106c5ec26f7c28c4ccdaf7a83"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ab75154500e1dbfe3d570395c7a7e7cf","guid":"bfdfe7dc352907fc980b868725387e98a579ec35ea48344f451f640f5133a97c"},{"fileReference":"bfdfe7dc352907fc980b868725387e981630c9b1a911165ede151df7818152e3","guid":"bfdfe7dc352907fc980b868725387e98247ce5c43b725c1b4d8c5b17a0915e14","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e989680aa2242821f1caffdfc034676340c","guid":"bfdfe7dc352907fc980b868725387e988f1107f583b9dbd85850564d62dbe5ec"},{"fileReference":"bfdfe7dc352907fc980b868725387e98486cb268ebd6fd576fb77c6b3c97118a","guid":"bfdfe7dc352907fc980b868725387e987199af7a0850f7694381ed347c4a2089","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dfe68fcd58c2ba8f92f33fa705f3301d","guid":"bfdfe7dc352907fc980b868725387e984c3ddb72446e455ac3be9c0c8232f685"},{"fileReference":"bfdfe7dc352907fc980b868725387e987778a5832888d7784523fb6b02bddad6","guid":"bfdfe7dc352907fc980b868725387e988e030a7305ce8e1c8acf4e05f72438fe"},{"fileReference":"bfdfe7dc352907fc980b868725387e981f25f8a292fc8c8b9749eff9fd750548","guid":"bfdfe7dc352907fc980b868725387e98a6603a3db649375f87186c6acf3277e0"},{"fileReference":"bfdfe7dc352907fc980b868725387e987d70b93c11eb6cafadd4a3ddd1c9f54f","guid":"bfdfe7dc352907fc980b868725387e984378d226f2fd781453f3a6279bdd9a5f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98341343eeb535f0165be9bc4f25baa341","guid":"bfdfe7dc352907fc980b868725387e983aa61192ae40fcb1e7747889e964445d"},{"fileReference":"bfdfe7dc352907fc980b868725387e980038f8404d4cd520eddb99c473f69d37","guid":"bfdfe7dc352907fc980b868725387e98091769d6d3ea2dad8c8511b5d34270ac"},{"fileReference":"bfdfe7dc352907fc980b868725387e9884753dc15050f97a1f7d35e96b895b83","guid":"bfdfe7dc352907fc980b868725387e989879c076e1ae8cea441a6b6f2a225e71"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aa09c2cf7a87d49097736ac51f9dbcb0","guid":"bfdfe7dc352907fc980b868725387e98950714569cbb291ac99cde4b378f4651","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98907136b15e0cc2315f2f26d86a3668fe","guid":"bfdfe7dc352907fc980b868725387e984a1d9ef740af0331a31f3d263123ae9f"},{"fileReference":"bfdfe7dc352907fc980b868725387e983aca420a4e7d21fd3a6b7d973f7d5886","guid":"bfdfe7dc352907fc980b868725387e985e82d340fc8c2378a4a2148d02ddaf80","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dff055f2dde26483920acff1e346a268","guid":"bfdfe7dc352907fc980b868725387e980a2586542aee47f50069b4e609e95eb6","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98314f1632b73eebcde0afe19f5ce2815e","guid":"bfdfe7dc352907fc980b868725387e98ff329000b4f20b17a27ea21ce0626977"}],"guid":"bfdfe7dc352907fc980b868725387e981aded8a02e4b1e337a315b029e4bfb91","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9856ca0758c266c3b63284fa42dcf4152b","guid":"bfdfe7dc352907fc980b868725387e983e6dcd61148781ca855fe92f7db09b2c"},{"fileReference":"bfdfe7dc352907fc980b868725387e989aa3ee265354593677be2375aefb2ca3","guid":"bfdfe7dc352907fc980b868725387e9866e5064fd7a9125a6b713372d680c524"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e4fcfefc0be54ac949962232e4f5e10e","guid":"bfdfe7dc352907fc980b868725387e9872d600e0be7a46c569226c942040fa57"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f6a29d8d7987890ee438bec5c003c629","guid":"bfdfe7dc352907fc980b868725387e98ee427f7940a070d745623c66d8c1b97b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d9230e9f32c0e50cd87db339556aa433","guid":"bfdfe7dc352907fc980b868725387e98808c3f107c3150d987a622f7d1bbda56"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c32c125cd7d66d183a4f85a77adf18cb","guid":"bfdfe7dc352907fc980b868725387e9861eaa32b5adcdd7d6ee6553abcbf3d8e"},{"fileReference":"bfdfe7dc352907fc980b868725387e981fcce4c8ebeb86d8fae07c2a0bb0eacf","guid":"bfdfe7dc352907fc980b868725387e9811c8c0afe8469cb9c707bf9746a7ac2c"},{"fileReference":"bfdfe7dc352907fc980b868725387e9882d0f9bfd9bbb5c0b62978525292a85e","guid":"bfdfe7dc352907fc980b868725387e9897e87d5e4218ee912acae6064cce6234"},{"fileReference":"bfdfe7dc352907fc980b868725387e987e9375bc8a3fef86d81e22fab2e64c05","guid":"bfdfe7dc352907fc980b868725387e98d83895c00a5d47fee98859d5c618a8d9"},{"fileReference":"bfdfe7dc352907fc980b868725387e989973409d79e570d6cd3802abe493e5f8","guid":"bfdfe7dc352907fc980b868725387e987e404fabd4e635a6a708573622e6eed2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c3dfda0bddd1812634706c01fd9beeaa","guid":"bfdfe7dc352907fc980b868725387e98c4f914657109c26cd7a882f091e4852b"},{"fileReference":"bfdfe7dc352907fc980b868725387e981c474d0265b77ef2075eca6d43a328eb","guid":"bfdfe7dc352907fc980b868725387e9855dbb60637d32e33e42287f4d9fc792c"},{"fileReference":"bfdfe7dc352907fc980b868725387e985455d50aa178016d9866d11bae29300d","guid":"bfdfe7dc352907fc980b868725387e98158466ccbc0debc03eb00b4ca0c3afc3"},{"fileReference":"bfdfe7dc352907fc980b868725387e982b3ff697cc33e29345e1ded9a050cb92","guid":"bfdfe7dc352907fc980b868725387e98801320b4a527d37dd02e224865a958b4"},{"fileReference":"bfdfe7dc352907fc980b868725387e9826cc234936f552182f48aca7201362eb","guid":"bfdfe7dc352907fc980b868725387e98d7099315dcf4f878890c3932418d5154"},{"fileReference":"bfdfe7dc352907fc980b868725387e98edce6babe22590a4fe9f75a14d870034","guid":"bfdfe7dc352907fc980b868725387e985966cde74b01bd2ba48d65abbebc9c21"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cdbcd728e916118122347cccda4ef499","guid":"bfdfe7dc352907fc980b868725387e9828395b9104b94e746bda0055712ef66f"},{"fileReference":"bfdfe7dc352907fc980b868725387e9897ae9a101e7105d04b0b3af948d7c25e","guid":"bfdfe7dc352907fc980b868725387e981f81db25bccfef163e8f58db59961417"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c3b896da0f63c8d6959b513b228dbd5f","guid":"bfdfe7dc352907fc980b868725387e9839786429cdc16b47ba317f6fc105d1bc"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ec7a6dfef74a857a3a8017a987cba807","guid":"bfdfe7dc352907fc980b868725387e9874acb33857fc8088fa06c76d5b5baaf6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98135d60bfa4759b5cc49c122823479af7","guid":"bfdfe7dc352907fc980b868725387e98b97d363b0575d23b26a4f5b8b703ec17"},{"fileReference":"bfdfe7dc352907fc980b868725387e989312d605a717bb92c24814c2001853e9","guid":"bfdfe7dc352907fc980b868725387e985519cd16c390bfceaab7853a823fb459"},{"fileReference":"bfdfe7dc352907fc980b868725387e9839f142d07b8c730b79b66eb0d81d9916","guid":"bfdfe7dc352907fc980b868725387e98b36f75eed1c780aaf0f08cec0eb278b9"},{"fileReference":"bfdfe7dc352907fc980b868725387e9811eb2879931185646a719637bc3279c3","guid":"bfdfe7dc352907fc980b868725387e98e41590211de7b295360237849f5f3e4b"},{"fileReference":"bfdfe7dc352907fc980b868725387e980560f41a7f707a10482b3537ac93bc69","guid":"bfdfe7dc352907fc980b868725387e98943ae06af83ca3f01d2ab544826ef749"}],"guid":"bfdfe7dc352907fc980b868725387e98a321da4fc5869c3c238cb23e0891a680","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98fbe738dd964da96dc5378f10f34c55d4","guid":"bfdfe7dc352907fc980b868725387e983171ca607709ba70b7546ebed4586225"},{"fileReference":"bfdfe7dc352907fc980b868725387e9820f3d3dfa4ce6beffa61409b4c33d9e6","guid":"bfdfe7dc352907fc980b868725387e98c2d16e607333c752087b1e4969575d2a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e985bf343262a16656a91a507b09bce39f1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bb3682592bc2dbd4718b670b97fbc5a4","guid":"bfdfe7dc352907fc980b868725387e98130ec0c2334a400e82d3ad32be151f71"},{"fileReference":"bfdfe7dc352907fc980b868725387e98837e741867d5fe8bc907927670287ace","guid":"bfdfe7dc352907fc980b868725387e98d54612bc5779951b16ff59fe9db93e54"},{"fileReference":"bfdfe7dc352907fc980b868725387e98843620cb9303c260af54f17d584e9561","guid":"bfdfe7dc352907fc980b868725387e9825424d0feb24a4df1e3c56fdb9919796"}],"guid":"bfdfe7dc352907fc980b868725387e9897accaa9157e6d4daa68cd6abfaa8465","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e9892138fcdebd2c18a4559605a27420448","targetReference":"bfdfe7dc352907fc980b868725387e9832c61b747d3949a8e639c0653b6048d5"}],"guid":"bfdfe7dc352907fc980b868725387e98e408fa91ecb9a202b7a733d7c8b68761","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98758cc842172da540ffb591e63e38dc1e","name":"AppAuth"},{"guid":"bfdfe7dc352907fc980b868725387e98cd8162b601eb6c17e4d86eec112a388c","name":"AppCheckCore"},{"guid":"bfdfe7dc352907fc980b868725387e980be6c76e7b3dde057d7e3e6ad61f30d4","name":"GTMAppAuth"},{"guid":"bfdfe7dc352907fc980b868725387e98dd3a6a519ed4181bf31ea6bc1f18ebc5","name":"GTMSessionFetcher"},{"guid":"bfdfe7dc352907fc980b868725387e9832c61b747d3949a8e639c0653b6048d5","name":"GoogleSignIn-GoogleSignIn"}],"guid":"bfdfe7dc352907fc980b868725387e989b0ee9a6d93c0cfa024bbc34a88b2122","name":"GoogleSignIn","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9815509a5aa54606eda7171e744ada7414","name":"GoogleSignIn.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=43df6f6046e33105cd0d82b42d169524-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=43df6f6046e33105cd0d82b42d169524-json new file mode 100644 index 0000000..998c8e7 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=43df6f6046e33105cd0d82b42d169524-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f18f0c43af5ca85b293f18013cee90a4","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/google_sign_in_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"google_sign_in_ios","INFOPLIST_FILE":"Target Support Files/google_sign_in_ios/ResourceBundle-google_sign_in_ios_privacy-google_sign_in_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"google_sign_in_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98560d9083099c322cd233e030f4f61774","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f66df6b80a453710ee890ea3341aa9f8","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/google_sign_in_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"google_sign_in_ios","INFOPLIST_FILE":"Target Support Files/google_sign_in_ios/ResourceBundle-google_sign_in_ios_privacy-google_sign_in_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"google_sign_in_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9877b909ecec92a39ba4299d5d7bd67bf3","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f66df6b80a453710ee890ea3341aa9f8","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/google_sign_in_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"google_sign_in_ios","INFOPLIST_FILE":"Target Support Files/google_sign_in_ios/ResourceBundle-google_sign_in_ios_privacy-google_sign_in_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"google_sign_in_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98b52ddce367e7d971a8aa58748f283b84","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9855c462b3d5dd80553e017ba9825114bf","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98e2feb14e34d25867a7d66b0804fe27ef","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98f04b467bc1129aa9bc6b8ee2d94ed4dd","guid":"bfdfe7dc352907fc980b868725387e986b714dc3e00831b0825c10428318a741"}],"guid":"bfdfe7dc352907fc980b868725387e9825ee9e0dfe322a10e7d7e1a008d0728d","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e983c7fa4bfabecc448c813cef02922c100","name":"google_sign_in_ios-google_sign_in_ios_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e983b0eb6bf04eb9be2ba23f1911e7be724","name":"google_sign_in_ios_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4889435ef4e40cdb62985296645ddfd4-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4889435ef4e40cdb62985296645ddfd4-json new file mode 100644 index 0000000..7f78697 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4889435ef4e40cdb62985296645ddfd4-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98cba956d57cfe44411172ba385027fea9","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GTMAppAuth/GTMAppAuth-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"10.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GTMAppAuth/GTMAppAuth.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"GTMAppAuth","PRODUCT_NAME":"GTMAppAuth","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"4.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98056edc2bf9640f18388060799b071ec1","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e986282cf88e62b023588e08b945665fb72","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GTMAppAuth/GTMAppAuth-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"10.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GTMAppAuth/GTMAppAuth.modulemap","PRODUCT_MODULE_NAME":"GTMAppAuth","PRODUCT_NAME":"GTMAppAuth","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"4.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98c3fb1a60de647ecb978608287133cb7e","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e986282cf88e62b023588e08b945665fb72","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GTMAppAuth/GTMAppAuth-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"10.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GTMAppAuth/GTMAppAuth.modulemap","PRODUCT_MODULE_NAME":"GTMAppAuth","PRODUCT_NAME":"GTMAppAuth","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"4.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e989912dad496fa48d07c5cdb368c75c65e","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9821ab825f740da32d1e70191914f94ebd","guid":"bfdfe7dc352907fc980b868725387e98a11767dd59275bfcfd80d968e0bfcbfa","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98d46f274682f694a92e98b05a8c25d84d","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98f9d74e515bf64a26c8251d47a81c0db3","guid":"bfdfe7dc352907fc980b868725387e9841044b21a9943ff658a768e61994ead8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98784334d56e740a31eddf09b02cbc45d7","guid":"bfdfe7dc352907fc980b868725387e98feefbb459792a5e08cb00fab739ff244"},{"fileReference":"bfdfe7dc352907fc980b868725387e984a3b36bc94e5a12df638c10fedc50e7f","guid":"bfdfe7dc352907fc980b868725387e988ed1e9957304d27122bd0bb801cd52ee"},{"fileReference":"bfdfe7dc352907fc980b868725387e985b5a2d3ff2cc54c52427364d7f0c2e91","guid":"bfdfe7dc352907fc980b868725387e981c402ed7d5c0013ef5462bc58382f79f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d7311da92c29294aab1273686aa5f9fc","guid":"bfdfe7dc352907fc980b868725387e986656357c0e85c1e3570d1303aafe0d27"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e2cc28e9cb80409b0cba8a566f1a1733","guid":"bfdfe7dc352907fc980b868725387e9837c9945c1107ddcff8d9f02e5289be96"},{"fileReference":"bfdfe7dc352907fc980b868725387e982b1d9ce064ec4ec77038d35498f5616c","guid":"bfdfe7dc352907fc980b868725387e98c02299d5daecec932cc4db266152fbd8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dddeee2808554b9861a4aa0231022eba","guid":"bfdfe7dc352907fc980b868725387e98076e03f54b30e8dc154fdb142abcf3c7"}],"guid":"bfdfe7dc352907fc980b868725387e98c2791cfbea7d0e3cb65df4223c49018f","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e9888a74cb35ee7b63bf94b23d2a50157cb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98837e741867d5fe8bc907927670287ace","guid":"bfdfe7dc352907fc980b868725387e983015053e7957bb703ecbb0c18896217c"}],"guid":"bfdfe7dc352907fc980b868725387e984c4050d88bf87b87d59794c192cedd4c","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98f7dbd57ea570a9e39913041a1a6e4ca3","targetReference":"bfdfe7dc352907fc980b868725387e9865af479ae97320e284a27cf831d212b3"}],"guid":"bfdfe7dc352907fc980b868725387e9845065227e7c233225e97bdf82e2b25cf","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98758cc842172da540ffb591e63e38dc1e","name":"AppAuth"},{"guid":"bfdfe7dc352907fc980b868725387e9865af479ae97320e284a27cf831d212b3","name":"GTMAppAuth-GTMAppAuth_Privacy"},{"guid":"bfdfe7dc352907fc980b868725387e98dd3a6a519ed4181bf31ea6bc1f18ebc5","name":"GTMSessionFetcher"}],"guid":"bfdfe7dc352907fc980b868725387e980be6c76e7b3dde057d7e3e6ad61f30d4","name":"GTMAppAuth","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98855fb84830a2ff40ce73a17fc283f650","name":"GTMAppAuth.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4924a6c9510c14f45761ef1f9cb59e21-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4924a6c9510c14f45761ef1f9cb59e21-json new file mode 100644 index 0000000..7564b59 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4924a6c9510c14f45761ef1f9cb59e21-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a1a6bf6218802cfcc0131de0a56b79e5","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/package_info_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"package_info_plus","INFOPLIST_FILE":"Target Support Files/package_info_plus/ResourceBundle-package_info_plus_privacy-package_info_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"package_info_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e982296860157b67bd28200cea286a21039","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9874865a6a69751a866558c3d5b1bc5edd","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/package_info_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"package_info_plus","INFOPLIST_FILE":"Target Support Files/package_info_plus/ResourceBundle-package_info_plus_privacy-package_info_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"package_info_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98a07417f68e12d56da1a0228470c26157","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9874865a6a69751a866558c3d5b1bc5edd","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/package_info_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"package_info_plus","INFOPLIST_FILE":"Target Support Files/package_info_plus/ResourceBundle-package_info_plus_privacy-package_info_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"package_info_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98a017b48d3a691ba9d6d5287e9cdc1268","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9848e1b9d7349aecbfd32238a875d90848","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98ac0f229549778afe930bc6b233868ad8","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98e12148e562af39591b51480293bb758a","guid":"bfdfe7dc352907fc980b868725387e9892c973b87e5f9be49e5fc900c192a823"}],"guid":"bfdfe7dc352907fc980b868725387e98840af0abee33f151d4b2460dce4ce854","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e987b6c2f882d164ef4f3c76673562685a1","name":"package_info_plus-package_info_plus_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e982a9852aa81a16cf5578d0e8c78b5679a","name":"package_info_plus_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4af12ab2fbdedc4b7decb6a1129245f1-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4af12ab2fbdedc4b7decb6a1129245f1-json new file mode 100644 index 0000000..b3ae25a --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4af12ab2fbdedc4b7decb6a1129245f1-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98490fde87ae055958de1d1f8e2cd97696","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GTMSessionFetcher/GTMSessionFetcher-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"10.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GTMSessionFetcher/GTMSessionFetcher.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"GTMSessionFetcher","PRODUCT_NAME":"GTMSessionFetcher","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9890147814c462f08b49697a8a78b5e927","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984ae7daf5f58d55b28e60985ea305a6ba","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GTMSessionFetcher/GTMSessionFetcher-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"10.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GTMSessionFetcher/GTMSessionFetcher.modulemap","PRODUCT_MODULE_NAME":"GTMSessionFetcher","PRODUCT_NAME":"GTMSessionFetcher","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98b776dcccad7348facf283455e7a141b1","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984ae7daf5f58d55b28e60985ea305a6ba","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GTMSessionFetcher/GTMSessionFetcher-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"10.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GTMSessionFetcher/GTMSessionFetcher.modulemap","PRODUCT_MODULE_NAME":"GTMSessionFetcher","PRODUCT_NAME":"GTMSessionFetcher","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98a459c79a8100708f083607f9b262ac24","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e988f433310b528a5a78bbcc3b8b1e9cd6c","guid":"bfdfe7dc352907fc980b868725387e988ef3caaab5075d41cb2f7ce5bb571c59","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e987d12e52eb21351bac7c93385e66c2a60","guid":"bfdfe7dc352907fc980b868725387e9892002a7e7d0c81f9e48ce8c909f76cea","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98888e59e6008e75ff869b4edb895aaf4d","guid":"bfdfe7dc352907fc980b868725387e987e37b85fada9efef72049baa9785c2e4","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98056a748c83a937584becc90d0bbeec3b","guid":"bfdfe7dc352907fc980b868725387e9831256dc2a326c64bd6f41ed8940b0e70","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9819b153d1a20a1ce9cb835f6ff9e0c107","guid":"bfdfe7dc352907fc980b868725387e985f3beb7b409d00306fed50364a5496ce","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e986b393831da762f1acb5e50213cb2a21d","guid":"bfdfe7dc352907fc980b868725387e98eed3c676e87f87a172dce6b3be9f7caa","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98880bce3dc9c1eb164f8e6401484efd9e","guid":"bfdfe7dc352907fc980b868725387e98a5a64f98b004623fcf7c25159ad44e69","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988df9169ddd9ef777e4df671caec18896","guid":"bfdfe7dc352907fc980b868725387e98d7dec666866978b704d9ae3c87f7d7bc"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e80dbdb6100ad7a0a11f880494f0022a","guid":"bfdfe7dc352907fc980b868725387e987f005efb6330dd597cc4f66952cdac5c","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98606843bdfb4d2d01352ef29f09a34911","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9868063b3af35269348f18b3336f9045fd","guid":"bfdfe7dc352907fc980b868725387e98f5dc6460b911e1e365a32b839f029518"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aa76cc50cc6fdb72f3b83ae5fb95d1b0","guid":"bfdfe7dc352907fc980b868725387e9854dd8c2a24137d23cc97924fd0746891"},{"fileReference":"bfdfe7dc352907fc980b868725387e9811e6ceea98471321fe43ef777259d120","guid":"bfdfe7dc352907fc980b868725387e982a5a866c3db7311f5b4914428b72446b"},{"fileReference":"bfdfe7dc352907fc980b868725387e9897de95ef442bbfcd93e267a165034482","guid":"bfdfe7dc352907fc980b868725387e98c517e3ad0c07505322ff62ffa41cbd06"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d813e8630da53ea0c6444dc302a879c5","guid":"bfdfe7dc352907fc980b868725387e9814293d7f0c20d42a4a5240b3b401747b"},{"fileReference":"bfdfe7dc352907fc980b868725387e982c4acd7793856c013ec759357abd2c2e","guid":"bfdfe7dc352907fc980b868725387e982411c5de335813522d06313a84c1ba38"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b52164c2053775789f6f94964885cb97","guid":"bfdfe7dc352907fc980b868725387e98a95fa0f4330503a7e2d0f24bfc0bfb52"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a3d360c9e9d2466edd678446246c0498","guid":"bfdfe7dc352907fc980b868725387e983e71ab0e1efd9d20f960b38098e5fb54"}],"guid":"bfdfe7dc352907fc980b868725387e98172a622be51e6665421a64bc320159f1","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e9831cf829599c8c299430ba563b528c4dd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98837e741867d5fe8bc907927670287ace","guid":"bfdfe7dc352907fc980b868725387e985d6e56a9c261cbd629f6e7e50e7436f6"}],"guid":"bfdfe7dc352907fc980b868725387e98f2028082e0d7245f2e3247d10cab5572","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98969d6edb3f7ce66ae2c1a95aca8f71f7","targetReference":"bfdfe7dc352907fc980b868725387e9801af34ddea6be97d757786022edb34b1"},{"guid":"bfdfe7dc352907fc980b868725387e98bd8d33795ece07b1de56957e2f8f9ea4","targetReference":"bfdfe7dc352907fc980b868725387e98d9a0c31ef553ffd1644ea2f5fc087d46"}],"guid":"bfdfe7dc352907fc980b868725387e983fd61cc8bd70aec5aa1b6c02a8a064ca","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e9801af34ddea6be97d757786022edb34b1","name":"GTMSessionFetcher-GTMSessionFetcher_Core_Privacy"},{"guid":"bfdfe7dc352907fc980b868725387e98d9a0c31ef553ffd1644ea2f5fc087d46","name":"GTMSessionFetcher-GTMSessionFetcher_Full_Privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98dd3a6a519ed4181bf31ea6bc1f18ebc5","name":"GTMSessionFetcher","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98f65e88472d384b1ba0888326befb3a8e","name":"GTMSessionFetcher.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4c45491143fbffdd10e24abf51645ff2-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4c45491143fbffdd10e24abf51645ff2-json new file mode 100644 index 0000000..4b722f0 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4c45491143fbffdd10e24abf51645ff2-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9823abccf175e3748989858fca523d051a","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/SDWebImage/SDWebImage-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/SDWebImage/SDWebImage-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/SDWebImage/SDWebImage.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"SDWebImage","PRODUCT_NAME":"SDWebImage","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98bb8d138e79cfa3b0fd433ce1c2cb1d69","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a2fbdfb06a54efc6c31a323919799308","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/SDWebImage/SDWebImage-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/SDWebImage/SDWebImage-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/SDWebImage/SDWebImage.modulemap","PRODUCT_MODULE_NAME":"SDWebImage","PRODUCT_NAME":"SDWebImage","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9805e4a7cd69e5275e6e135c411e3f1d55","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a2fbdfb06a54efc6c31a323919799308","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/SDWebImage/SDWebImage-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/SDWebImage/SDWebImage-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/SDWebImage/SDWebImage.modulemap","PRODUCT_MODULE_NAME":"SDWebImage","PRODUCT_NAME":"SDWebImage","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e988c07bd2376fdd80115743b88aa7ca108","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9811604a637c7757d9dc8d97edcbe0ebb0","guid":"bfdfe7dc352907fc980b868725387e98d4be0f6a3faa23013156cc826798c3e8","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e983acd11066f077a08fa2b8f4d57b72c09","guid":"bfdfe7dc352907fc980b868725387e9841de2ddab332e4ce5aed694492ef64ef","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dfd6ccd2b4f139adaf33ef2cfe0a8b45","guid":"bfdfe7dc352907fc980b868725387e9884bb606940eb5a1ff1e68ee697c2bead","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cf76a51f8b65ffef6317f2778fabfda6","guid":"bfdfe7dc352907fc980b868725387e98c8f932b6abf8cd9d7ded70212e738bd3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e984c5082a2a3156fe2055f307d145349e3","guid":"bfdfe7dc352907fc980b868725387e98b75dd3da8c5a0d0238478e2477869b34","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bd09bde6e74e17eab061a3b70b7cb4b9","guid":"bfdfe7dc352907fc980b868725387e982631170f738ccfc1a9a247d5115e222a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fbaa8ebf1e61e77f7342d2db56877461","guid":"bfdfe7dc352907fc980b868725387e980e7c3616343fba6d22939b6470b60a8c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981c3c09eb02bd765349ee97209d7a57a8","guid":"bfdfe7dc352907fc980b868725387e98573614f64dcc0f203b20da1dc910e1b7","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988b8902b723419288c319bb25420088ca","guid":"bfdfe7dc352907fc980b868725387e98bbc22db8b4a0f0278dd5363f0b669423","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9841f85029a4f5126e4226b657ff9fa06d","guid":"bfdfe7dc352907fc980b868725387e98d22d209932f38d5ae4de025cd92ecf47","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e9814a4221bf7180e1a62bb83e93b400283","guid":"bfdfe7dc352907fc980b868725387e988e2eb101dd903fb4e65a82b15d5f685d","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e98116f759ca13f8d56ddcc556040d51865","guid":"bfdfe7dc352907fc980b868725387e98c9495415ab5b03a87f52c4bbf747eda6","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ecf70e72d8250d380fe9a715caa1a868","guid":"bfdfe7dc352907fc980b868725387e98931cf2f8b7265aa59644b5d4ff22f5cf","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f121590d1ad2a8d3dad57dec7db8f147","guid":"bfdfe7dc352907fc980b868725387e9837a56e25634708fd5841b13940343cc0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98584543f6915b709face9da1d43d1f084","guid":"bfdfe7dc352907fc980b868725387e982aed14f795675122a05b866191ac8437","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b8817347d8502e52fdd6260f6440f72d","guid":"bfdfe7dc352907fc980b868725387e98b1adf41d2d1804b3477a195bf023a13a","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e9865b7b65353d79291cf4457a8e2369d20","guid":"bfdfe7dc352907fc980b868725387e98716b3fee0cfccfa910b7637420da8016","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9883aa01796e8e71bfaa9caf8b456629c0","guid":"bfdfe7dc352907fc980b868725387e98b36d0d94176cd90bd93d96c855098da1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9837cecd31de4c6b234cf7ef5a56ff9433","guid":"bfdfe7dc352907fc980b868725387e988d795397d5495d27e70110d7ff910b62","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e983aeba4cf229a22851b15f9a7a7fc4e3e","guid":"bfdfe7dc352907fc980b868725387e98aac87999d71147e8247da9f0d09a58a8","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9879388235127956987168eca12d1365a1","guid":"bfdfe7dc352907fc980b868725387e986c4c1876d5433d9caa334fd011f9d454","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988dc529cfbded9b237dbe9716e9a199ee","guid":"bfdfe7dc352907fc980b868725387e987da1c1c649def0add3ed3c7a36168952","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9859bddd152153399d72ab98cfdfc62a95","guid":"bfdfe7dc352907fc980b868725387e98be3ba18bd783bbcf8555d0c167c53d8b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e980049240159bf127aaaa5af360191e919","guid":"bfdfe7dc352907fc980b868725387e982f7f3f2f001f36345b4738d4953cbd4f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c895745b11c0019861fd56e3510dd77d","guid":"bfdfe7dc352907fc980b868725387e98b9c2f15040302b628cc7a2b3998fb527","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e9805d7142b0f69fb2d5d686c25143193bc","guid":"bfdfe7dc352907fc980b868725387e98750918c116dbca778da157ac1bab5784","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9852441ce743b9bb02bf957cc80094e073","guid":"bfdfe7dc352907fc980b868725387e98156e302b624f9e5ffb46a96e7c40d3ac","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9861d75c73c4c692655aa68005e37de8b9","guid":"bfdfe7dc352907fc980b868725387e98e80e19435d33cb0500911c3803c4ceca","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d3826e9a2f8e10a24d795e940d2cb3ce","guid":"bfdfe7dc352907fc980b868725387e98e2509bc3aa18b5e7686dec6d39186db2","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98be07f77c3e0125f819f8a54ab6a206dc","guid":"bfdfe7dc352907fc980b868725387e98b16eb1deb4cf5f9d11dc514ff29295e2","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e98345a6c4515d1cab08b8c2bf1d208b50a","guid":"bfdfe7dc352907fc980b868725387e984a52927b4f1333dc5b0122e913c85aff","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c58f2e8b6bc7ab0a03389928d3f99ff6","guid":"bfdfe7dc352907fc980b868725387e98f0485057b34fea7b9aea4816187a9947","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e986a31781b51f62a438b4e16d2b9e2abd1","guid":"bfdfe7dc352907fc980b868725387e98b7934ec647220a440a8c6f2dcf3f49a2","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e982ef61d9e2b5aaf4bae43b51ad1364485","guid":"bfdfe7dc352907fc980b868725387e982cf4ec385e04efee908e1570c7ebb15f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98056eaabef1a652f30fb486c8479ecd68","guid":"bfdfe7dc352907fc980b868725387e985c75d441fa850b8851a0a402aa2f2b8f","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e9847f475ddef0c0c4959fd6d39c95e624b","guid":"bfdfe7dc352907fc980b868725387e98c044b2d16c757666f7ec6c5d28cb76bc","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e995373ddf86663400fe4628ffd5497b","guid":"bfdfe7dc352907fc980b868725387e9844dc69b9737c726b266969f5ee8bd045","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9810149053d18e95db9068ed439eb49125","guid":"bfdfe7dc352907fc980b868725387e983430c914e2600482ca15689910d02926","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988fd5c90d2bc5f4dc85079672dde79f7f","guid":"bfdfe7dc352907fc980b868725387e98c0b222ba0581bca2194de84f7c9a1cde","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b929e405fd1d3701edb7cf6a88ff1fa0","guid":"bfdfe7dc352907fc980b868725387e98cac627e235a2af4c80641b67bf94928d","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e981d143986efd7cbdfaaa440527f4afa2e","guid":"bfdfe7dc352907fc980b868725387e98f4190ab7e76fbdf8bcf48fb969f106e8","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9827d4076e0dcebc07d4a78d70c5f5e055","guid":"bfdfe7dc352907fc980b868725387e983da13927f6e66548cf8aee2077485037","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e888306c6d9fcd6fa1b46a25a544ccb3","guid":"bfdfe7dc352907fc980b868725387e9883ecf42c3e6ee0da57479f13e8524222","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e983946066b9aa028e73158d8ae6a46bd72","guid":"bfdfe7dc352907fc980b868725387e98eaf9a251f428bff1aafbed3c12fb9dd8","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9893988b7c355dd6a7a5b268f4bf69d72a","guid":"bfdfe7dc352907fc980b868725387e98ab810262759a41499c5e85c804f4e7fd","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983459bdd71ccf96cc6b7372a2b14a63b5","guid":"bfdfe7dc352907fc980b868725387e982360d00bcafd78fce13182192448606e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c9f1f521176a95fc539c538f6c3ee916","guid":"bfdfe7dc352907fc980b868725387e98fb06e5584891469615bd245833df1b53","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9800867f25c152f96e64f41a21b88f9477","guid":"bfdfe7dc352907fc980b868725387e989cb35ef3aa930757705532834807ae20","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e986a9163550b735be77ef3dd2399f4af60","guid":"bfdfe7dc352907fc980b868725387e9861e7ba7be6e8454efa3ce35dddb4c719","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cfe303b8fca979532275beaa831d02c0","guid":"bfdfe7dc352907fc980b868725387e9809036275f821dcd22acdf486257d8a86","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d9159f84212cf575ddefd6eac30bcc6a","guid":"bfdfe7dc352907fc980b868725387e9859508aff34065d85223267de00bd68de","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ba445fd517115ff21fbc627a0f7cac18","guid":"bfdfe7dc352907fc980b868725387e9893967da2c896ae2a5e60026c87c08af7","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e985920cd290e0f89503e5a538b8e4e41ff","guid":"bfdfe7dc352907fc980b868725387e98bb126b44b4186f96fdedba55725ab674","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98081a1fc6b7c7a021039383c2324fe338","guid":"bfdfe7dc352907fc980b868725387e98b3d7d4e1b29cd0fe7736d95bd1e0efa2","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98841d328806c9ac0f01857dcce2cd6fcb","guid":"bfdfe7dc352907fc980b868725387e98aad560f77f1257f1c6e473d2fd15e6d4","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988635ddf64a3a2a55984591d61239f255","guid":"bfdfe7dc352907fc980b868725387e9817dbb86ea0f3fffac03a3cd353593ccb","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e980685cd3c0e887257819e9cadde1c4ef1","guid":"bfdfe7dc352907fc980b868725387e98e7e3c1cb47d22781fe1e6c06174c9a62","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e9622f5dba6eb75f2caa89828e52c6ff","guid":"bfdfe7dc352907fc980b868725387e98d0cf3112b1b9e497a8c0bd6484d3caca","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98328c372767442e5a1063940770af68de","guid":"bfdfe7dc352907fc980b868725387e9815ae79dc28533e1be6d9b675d785aaa8","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f6932818b2c7e48a02842ec7e2e99929","guid":"bfdfe7dc352907fc980b868725387e98f611c2c1dbe18eb8768cc0812869b2f4","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e1cefe2d9907e2e8fb46be6239bcf623","guid":"bfdfe7dc352907fc980b868725387e989ae000be93077ea862495d8f08a94dfd","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9862e521e046b4bedf6f636fa8c074a640","guid":"bfdfe7dc352907fc980b868725387e98858af9287b20a32e0299d810d10edfe0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c8fe1a8e74f2862d1fbf5d0bbf844aba","guid":"bfdfe7dc352907fc980b868725387e9857a998e143a4755f881f58036ea7a705","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e980355ef4c26779469c7da4a9a091f72f9","guid":"bfdfe7dc352907fc980b868725387e988ba0cf690bdb5c49179dfd891a05216b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9801a24f822cdce8005ed29811b9b4a239","guid":"bfdfe7dc352907fc980b868725387e98ab7022a01f35150ef297ba6e33d8845b","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e96d1d1c38f15c5f53acc1f22afd6e14","guid":"bfdfe7dc352907fc980b868725387e98b11af778a922938191684603ee14d352","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9825cadbd8c8fe39d376281b24b1da2ffe","guid":"bfdfe7dc352907fc980b868725387e988dd4dc8d9929fc65fc5e1f0fe08229d4","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9830cf7b72867bd3dd0ed784a5da462bc8","guid":"bfdfe7dc352907fc980b868725387e98453654892ac5a5c911059d0c980cacd5","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dca21799232d57b7bd989f8ec5f9d48e","guid":"bfdfe7dc352907fc980b868725387e9811d04585ecd945e033706aa8bc6085b3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981bc8cb1b230f2bbfb573fca688128a68","guid":"bfdfe7dc352907fc980b868725387e989fb0352b6cad340c7da0691580a8e1da","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e984911369c81eb396516fd29c6f211f9f7","guid":"bfdfe7dc352907fc980b868725387e980dcb77c92a4a08775890dc5a00e2b287","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983b5875c3c35f22a150475853defa8e73","guid":"bfdfe7dc352907fc980b868725387e98bdf3fe606f6c3312bd25c0f64abfc634","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f46be62656167f70bb20fb68fe250eee","guid":"bfdfe7dc352907fc980b868725387e98d3066887abae14a787807a1a2d6b9264","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9820669e7dd833a0c7deec6c336ed2570d","guid":"bfdfe7dc352907fc980b868725387e9860aa2784933879d1d3425b063752d549","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9876157febe8673b8c414ba065eed333f4","guid":"bfdfe7dc352907fc980b868725387e98d2f1c95077667affe9c56db532937fed","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9851a369d85d07b4fc0a0eb0289aad6884","guid":"bfdfe7dc352907fc980b868725387e98f3273af85c439064f3db8c8b0cbe742a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98599c8016a2fb82b4846bbf280dea0d3b","guid":"bfdfe7dc352907fc980b868725387e98237ea2a403ac4c7f9f7a08bbd197f997","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e985fa2c24dedfc80b861a90c6f02276618","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e982ab62f53307d2a6f01be71a76e2a2906","guid":"bfdfe7dc352907fc980b868725387e98b9decf19e5c14e7c6894ed7d2c5da11c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f3f317f427ec9a9fceb555f130991469","guid":"bfdfe7dc352907fc980b868725387e982fd8c193ff18b303c4396ccf7ff4bbfe"},{"fileReference":"bfdfe7dc352907fc980b868725387e987fb43b47091700dfb91993d968bd5ea8","guid":"bfdfe7dc352907fc980b868725387e981ce104273b39d75b371edd6386355a75"},{"fileReference":"bfdfe7dc352907fc980b868725387e987116c782753d2f98e9b01649a82d84c0","guid":"bfdfe7dc352907fc980b868725387e98a5348d50639ba9312114b19aa2482a67"},{"fileReference":"bfdfe7dc352907fc980b868725387e9827044688ec1962293fe29e9eb38cefe3","guid":"bfdfe7dc352907fc980b868725387e98dda5f604c6b7c9c3d081bfe15f306cc8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98494e5da7268d3ce6bdaa62bed1d4776d","guid":"bfdfe7dc352907fc980b868725387e98b192ac345c36ac211225d65500c8990b"},{"fileReference":"bfdfe7dc352907fc980b868725387e984224fd3de23f295d0d7d8122144b9c9f","guid":"bfdfe7dc352907fc980b868725387e98bf670e92f19fd315f5580eef449fd3bb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fdbb88da98cf8f56fd8756f1dc02d633","guid":"bfdfe7dc352907fc980b868725387e98000fc6209a65f0308911ed01e22c8390"},{"fileReference":"bfdfe7dc352907fc980b868725387e983711e9600f6128b6e743369e6f885866","guid":"bfdfe7dc352907fc980b868725387e987fb24d68a31e8ab826d6717dc8689f56"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c5bd55abdd45698b858421955f5247d0","guid":"bfdfe7dc352907fc980b868725387e98c3dc84f2235fb2414bccec1cf5fea6db"},{"fileReference":"bfdfe7dc352907fc980b868725387e986d2d278b3bbc263dfb340fbca6af2013","guid":"bfdfe7dc352907fc980b868725387e9855c9222a0d0803b41fbfd638272c843f"},{"fileReference":"bfdfe7dc352907fc980b868725387e982b9f0dedf3d702ed3c8862d2eabfbdf0","guid":"bfdfe7dc352907fc980b868725387e98258c2275db8e2ce225f4b7a15b3cb7ec"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c8772a1611def2acb5dc3d98b3f91954","guid":"bfdfe7dc352907fc980b868725387e987c19a525a7d73c82549247db683b8e1e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98805a216966047b34decdbe03c610baf8","guid":"bfdfe7dc352907fc980b868725387e988779996f67925fa427d62d4e3739012b"},{"fileReference":"bfdfe7dc352907fc980b868725387e9813be7f138ed344e3344ba0fd667f8eb4","guid":"bfdfe7dc352907fc980b868725387e9840fce15f7e56337d9388c1131da44ad1"},{"fileReference":"bfdfe7dc352907fc980b868725387e9838ee790535d6599de6c39cceb101c3c9","guid":"bfdfe7dc352907fc980b868725387e982eb72133310499aff257d855ba69826c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f73de45b915958a63a60bd0034aeaaa0","guid":"bfdfe7dc352907fc980b868725387e98300ac749951148c1d97c6048b1ca5806"},{"fileReference":"bfdfe7dc352907fc980b868725387e984a7f642b2d3a8b789f2ba65bfa1ab117","guid":"bfdfe7dc352907fc980b868725387e9870c289fc9676aff798943068845de103"},{"fileReference":"bfdfe7dc352907fc980b868725387e985d64be32d386ce52e895e88d6cf766e4","guid":"bfdfe7dc352907fc980b868725387e987780d0764d1cf48431017d45693ad0eb"},{"fileReference":"bfdfe7dc352907fc980b868725387e982ac41bd5e472896da9a63bf7c2cfbcb9","guid":"bfdfe7dc352907fc980b868725387e98b242ef0a2b9e064090842b210f9b9b90"},{"fileReference":"bfdfe7dc352907fc980b868725387e9885f9ef6fd18ab17709dffd8b2975915c","guid":"bfdfe7dc352907fc980b868725387e98e17b17946ff9dfa5470dfc589ccf68aa"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f77233b4b436adea1df5b51054efa28a","guid":"bfdfe7dc352907fc980b868725387e988070fb5bb21d96804cdecd857fd5dce8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e34f1080dec72bc32b877bf46d22e1fe","guid":"bfdfe7dc352907fc980b868725387e98fbe5cefa0d13f127a725bb03d4c7b23a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c6655242f53bc77ec7f2bc6fb7b793a3","guid":"bfdfe7dc352907fc980b868725387e9811f4fedba8514198695fc8eb8963429b"},{"fileReference":"bfdfe7dc352907fc980b868725387e982f9e04bec2f431fc522bda6508a74cef","guid":"bfdfe7dc352907fc980b868725387e98feaba402c1f1eedcc4583840ac640000"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dfe67edc764194c6884a4f94dc93b559","guid":"bfdfe7dc352907fc980b868725387e98d006c2978639eb2bf8eab0c7a34843f6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ef7284ade228dc466adae11d0f1a6f96","guid":"bfdfe7dc352907fc980b868725387e98ddcc041d2ac35d12feca05f7a71171f6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98995ea0f4b92d7d0e60c263b0b3d99071","guid":"bfdfe7dc352907fc980b868725387e98e4e14c136947840e4dd6ee7545e37938"},{"fileReference":"bfdfe7dc352907fc980b868725387e983f46f8ab0eef2e11750a4ba85f660a78","guid":"bfdfe7dc352907fc980b868725387e98b67f8f95df50096a8f66a1cd84c76c3b"},{"fileReference":"bfdfe7dc352907fc980b868725387e984c98fe66d3343cae13cfbf48be36c641","guid":"bfdfe7dc352907fc980b868725387e98340f8141d628a1ddb367922df4ee8a1b"},{"fileReference":"bfdfe7dc352907fc980b868725387e981bbe058a3dd1393cbc5419069456afa1","guid":"bfdfe7dc352907fc980b868725387e98807365888a49c94768fbaa2408180421"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c320ad718bf4e74dfe4b4097d5e84521","guid":"bfdfe7dc352907fc980b868725387e982dcbc324fda0d2bc183828079f8b22cd"},{"fileReference":"bfdfe7dc352907fc980b868725387e9846a9d1bc070b149482cc09aa4c31f8a1","guid":"bfdfe7dc352907fc980b868725387e982284e20ca268401ac1ca5b8bcfb8165a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b4e2919532cbda50ff33107e2081ef68","guid":"bfdfe7dc352907fc980b868725387e98e29baf1d156bd73c40a8a6c56e1650fd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98eeed194faa4f9e225bd1fb561928c7dd","guid":"bfdfe7dc352907fc980b868725387e98ebaa58025e1e9873cb8acd15617ae1b5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ea5cab7fccd9cc790d04d018fc430d98","guid":"bfdfe7dc352907fc980b868725387e989784bfda6a227fa898dc95f63c244930"},{"fileReference":"bfdfe7dc352907fc980b868725387e9835cc099bf382811cb3b4ae5eb9386ffa","guid":"bfdfe7dc352907fc980b868725387e9802c3c6175e2ecf7fc75d2b23f4042a12"},{"fileReference":"bfdfe7dc352907fc980b868725387e9814dffa24d3558ffe1e64522e4c4d0ba1","guid":"bfdfe7dc352907fc980b868725387e98dce70713708bd7987de690ecdcbead5f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b50de470fdd07f19429ea3e9af77ad7b","guid":"bfdfe7dc352907fc980b868725387e9897cea8f96db5286ff1182abe0f57b639"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bd3744c484635f238066542823c3f7ab","guid":"bfdfe7dc352907fc980b868725387e985e6fe68b6178d89aa24a0c3d42c03047"},{"fileReference":"bfdfe7dc352907fc980b868725387e98492dba40c32121e5d29ea569d3855d30","guid":"bfdfe7dc352907fc980b868725387e98550e6de5efd2bbb9022f7095ebf40ab9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f98a828f5998af0c41552f53690a7922","guid":"bfdfe7dc352907fc980b868725387e98d801f2627a053850c6b32968b0870dc2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cff60f10efc6b52e4f76441ddb7b2136","guid":"bfdfe7dc352907fc980b868725387e98139422f5095a12003c99e798537c23de"},{"fileReference":"bfdfe7dc352907fc980b868725387e9858847bfdccd0e353db6abdb7a6fa6fba","guid":"bfdfe7dc352907fc980b868725387e98f1ee183e89520605183eb5a300cc0603"},{"fileReference":"bfdfe7dc352907fc980b868725387e9801da23951e5e9700736b1dc4b27d8d5d","guid":"bfdfe7dc352907fc980b868725387e98f1c35d8fdab518f5434c4eed51ab00cb"},{"fileReference":"bfdfe7dc352907fc980b868725387e989388854bbbc797343d04ef50c444ffa3","guid":"bfdfe7dc352907fc980b868725387e98571b535901048bb94951a34c31ea735a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98854e14a164777eb2a45116ef3d4f9f33","guid":"bfdfe7dc352907fc980b868725387e9877aee11414ab7964183325a07829b1e6"},{"fileReference":"bfdfe7dc352907fc980b868725387e982a2fb9b6e5077dd8e829ad111288f9f7","guid":"bfdfe7dc352907fc980b868725387e98dbc74a062b7e0a1ab772a6f073676bce"},{"fileReference":"bfdfe7dc352907fc980b868725387e9842724100c48622d3b188051c390da11d","guid":"bfdfe7dc352907fc980b868725387e9823516e43b700a63f243091c2425c42bb"},{"fileReference":"bfdfe7dc352907fc980b868725387e9874526a8deed62cf90e7313a0bb264b41","guid":"bfdfe7dc352907fc980b868725387e98653c5f0ddfa2b4b370e83d1479ef0fea"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ddcb6426668e808b02211a7d475cfaf5","guid":"bfdfe7dc352907fc980b868725387e98a53121d9170058e7aded3203bef8b3c7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98554b7667850d8a2a47322f941c615607","guid":"bfdfe7dc352907fc980b868725387e9837e82b1a43c0e6ec85f40e36c779ce1a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c7fa548f6a269da63d6737de3473d9e4","guid":"bfdfe7dc352907fc980b868725387e98226efce2fe81349256d608b754c21e09"},{"fileReference":"bfdfe7dc352907fc980b868725387e98911d59665f175d2f1d12fc4d9de2add6","guid":"bfdfe7dc352907fc980b868725387e984621522ad691fa2abd79956bf63cd407"},{"fileReference":"bfdfe7dc352907fc980b868725387e988e7091f92fc248082719cfb25e4d63d4","guid":"bfdfe7dc352907fc980b868725387e9883e5ab310b81c3a34fc0cbf8faf86f3c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fb4474587bf7efb0ae13743ec69651f1","guid":"bfdfe7dc352907fc980b868725387e98b4ddd5aa209a8bc1ded8f01c3f96aa5e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98611d7ae74339d6a36f3b26a983c29dad","guid":"bfdfe7dc352907fc980b868725387e9815f6502757fa8d8e3c63a67ae4dab9bf"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cd875d8227a4095014792f47231a1d1b","guid":"bfdfe7dc352907fc980b868725387e98d13e0625a21cb8e401ffcef4fe293ddc"},{"fileReference":"bfdfe7dc352907fc980b868725387e9819a6574bbb3ce04462b672ec7fb1fe97","guid":"bfdfe7dc352907fc980b868725387e987fe0d6ae636a1ca1f2442c843d8272e4"},{"fileReference":"bfdfe7dc352907fc980b868725387e989ee76ba2f9fe8aae5c2ee38ddcd53331","guid":"bfdfe7dc352907fc980b868725387e98c7ee1f7d424feb5b261ecc4644c6e9e6"},{"fileReference":"bfdfe7dc352907fc980b868725387e9800b2f30e5281ff15c0a8982812f07c9a","guid":"bfdfe7dc352907fc980b868725387e982a9fe82e38f3739bb01d930a6d5ed6c2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98811a290593ba6afd1e42afa5affe46d0","guid":"bfdfe7dc352907fc980b868725387e9848cb14a7730d24b8fc3d4565f7e54d43"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c5d18172cf798dd919c4cb10f2a1e120","guid":"bfdfe7dc352907fc980b868725387e98550c5801139ff417c661bf2ee0accb6f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a644589820be3b60ac8f9433d501f2de","guid":"bfdfe7dc352907fc980b868725387e98661e4df7c1f2698d5bc930834e8ad90d"},{"fileReference":"bfdfe7dc352907fc980b868725387e981cbf5b9a03740d94c97fddcfdb33fb81","guid":"bfdfe7dc352907fc980b868725387e98d38b9e896091a72dfbb79bf7f1ad6531"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a98654e74faf2a43bc0c2a602f5c0509","guid":"bfdfe7dc352907fc980b868725387e98fcda7325507a26ce41a2070f5f8ef42a"},{"fileReference":"bfdfe7dc352907fc980b868725387e989f2a731c3bc644b81c635f5c300cfec6","guid":"bfdfe7dc352907fc980b868725387e984c13c6f266caea7e086b873276538434"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aa3c24a690028f0c8c9452bbf5d84126","guid":"bfdfe7dc352907fc980b868725387e986f0c48bbadb990c5a0ebf111e9261e39"},{"fileReference":"bfdfe7dc352907fc980b868725387e980daaa68484d50033bf6a9019d5807ad1","guid":"bfdfe7dc352907fc980b868725387e98a36f60a6153903b2703bb0da290062a7"},{"fileReference":"bfdfe7dc352907fc980b868725387e986bc03b1eb628d0ac7389d898a058ff99","guid":"bfdfe7dc352907fc980b868725387e985c2919c7f5feca3671b2403ee2c0f83d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ceb4b3f8dcb2139b7391109da496a36a","guid":"bfdfe7dc352907fc980b868725387e9825561db907bddd023bd1951930e2f87e"},{"fileReference":"bfdfe7dc352907fc980b868725387e987feb7140fcec3767869a519484e94853","guid":"bfdfe7dc352907fc980b868725387e98dbdf59deb4d2e074db2e3cddecfcb071"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a42640f1b23fdb6c4d80dafb682d041e","guid":"bfdfe7dc352907fc980b868725387e98b62ed07adcc84169ea34f110669d405c"}],"guid":"bfdfe7dc352907fc980b868725387e98f02074c298e567232e21957575af1dc7","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98a27fd6724c7c340af2c8c6ac9917d059"},{"fileReference":"bfdfe7dc352907fc980b868725387e981606cc412f715cfa3074e33b586cc81e","guid":"bfdfe7dc352907fc980b868725387e981b12114493674064a569b3a7022afd4b"}],"guid":"bfdfe7dc352907fc980b868725387e9847df8c7b51d06214f1ced7cc97f8dfbd","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e986ba533d5b304fa78587b85dea9c59023","targetReference":"bfdfe7dc352907fc980b868725387e9826e2628dc041aabe2d77e75ccb1dc95b"}],"guid":"bfdfe7dc352907fc980b868725387e9844a19957b958dbabb19041e8ae51b517","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e9826e2628dc041aabe2d77e75ccb1dc95b","name":"SDWebImage-SDWebImage"}],"guid":"bfdfe7dc352907fc980b868725387e98c46180aea4e87057640961e6db37df0d","name":"SDWebImage","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98880bd43228ac3a23ccb630571006ecd9","name":"SDWebImage.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4d799fe14d3017356c5c739f44dac9a7-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4d799fe14d3017356c5c739f44dac9a7-json new file mode 100644 index 0000000..1bb4d20 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4d799fe14d3017356c5c739f44dac9a7-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f40a524c9a9b720eab38f32f93b699ae","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/DKPhotoGallery/DKPhotoGallery-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/DKPhotoGallery/DKPhotoGallery-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/DKPhotoGallery/DKPhotoGallery.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"DKPhotoGallery","PRODUCT_NAME":"DKPhotoGallery","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9897ec2bdcb5e8ab5e5d655ad1d1bb9de4","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a61afc599309c6316d5575e2d2c9da83","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/DKPhotoGallery/DKPhotoGallery-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/DKPhotoGallery/DKPhotoGallery-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/DKPhotoGallery/DKPhotoGallery.modulemap","PRODUCT_MODULE_NAME":"DKPhotoGallery","PRODUCT_NAME":"DKPhotoGallery","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98811e0f7014c17d06aab7d43ee87d38e6","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a61afc599309c6316d5575e2d2c9da83","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/DKPhotoGallery/DKPhotoGallery-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/DKPhotoGallery/DKPhotoGallery-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/DKPhotoGallery/DKPhotoGallery.modulemap","PRODUCT_MODULE_NAME":"DKPhotoGallery","PRODUCT_NAME":"DKPhotoGallery","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e989e702b1f8d7409cd10e636bc3e84b3ce","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98aa0f75287ef97dfd92076c1831529ccf","guid":"bfdfe7dc352907fc980b868725387e98f1ba8cb1c1ecd3b884d8013eab8bcec4","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9809031354dda7326c2e08c4230eb82585","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98a1a443e93e6ea6ee1aaa85177cd1624e","guid":"bfdfe7dc352907fc980b868725387e98f745b5156213dacac2493fbee81eaf42"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dcc8020623eeb96287ffc7c187345d2a","guid":"bfdfe7dc352907fc980b868725387e985c67a82f9b9279f98474d33eabb3621a"},{"fileReference":"bfdfe7dc352907fc980b868725387e982bccec3a122a1abeabd5be9abf14764a","guid":"bfdfe7dc352907fc980b868725387e98580f374a64e189be526e84d461ddcde1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b84ea5995ec3dd04441af46e3f415da5","guid":"bfdfe7dc352907fc980b868725387e98f85624dbaa119d526adca2800901db56"},{"fileReference":"bfdfe7dc352907fc980b868725387e9823499508c529a49966ccb53a9be6c40b","guid":"bfdfe7dc352907fc980b868725387e98699b5ab15a678f61bedcab7453c6fa85"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a39260b394e776f127a1874b72c7afc9","guid":"bfdfe7dc352907fc980b868725387e988bc4333fdcc8438f0a8ee688df809bb4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ce641793fdc091f70af56d0b6d7a785d","guid":"bfdfe7dc352907fc980b868725387e9833e1ef79152dde62f340f6e19f5641d6"},{"fileReference":"bfdfe7dc352907fc980b868725387e9837e7a9c401ef4bc772dab2ae795d38aa","guid":"bfdfe7dc352907fc980b868725387e985eaa8279c2ae40058066bb43edc5123a"},{"fileReference":"bfdfe7dc352907fc980b868725387e984441bc5bf1872af7d5ad523c66522b7c","guid":"bfdfe7dc352907fc980b868725387e982cf36cfc3e7855f73851d524b4f0b02e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98169a1d8a03c9592b024d3390e1d46f1e","guid":"bfdfe7dc352907fc980b868725387e98926b6da7e2513e912e790ba55c4681f8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98be715d69c2ebce099735dfd4b659e2db","guid":"bfdfe7dc352907fc980b868725387e98f6203f67c6d586766d085f323a940767"},{"fileReference":"bfdfe7dc352907fc980b868725387e988df463e07baffcfc4d7af3eac5dfe8d4","guid":"bfdfe7dc352907fc980b868725387e9874a89b7cec09f97a9bf692abe7ff9df5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dddda571ff5d7a858e04d448d7487335","guid":"bfdfe7dc352907fc980b868725387e98be5563bc551eba59845dffa666931792"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c5d87c5ae4a2216a54e144246bd21e1f","guid":"bfdfe7dc352907fc980b868725387e98c968218047861526c56fa39061b4ac85"},{"fileReference":"bfdfe7dc352907fc980b868725387e981064995dd6a27c13aadc1d9c042b9173","guid":"bfdfe7dc352907fc980b868725387e98e47a679d6a73f9b3c1545ec6c6c23164"},{"fileReference":"bfdfe7dc352907fc980b868725387e983301ed0959371ee5961d8b476a7298bc","guid":"bfdfe7dc352907fc980b868725387e981830847497308c8f108b16fbc9a2167e"},{"fileReference":"bfdfe7dc352907fc980b868725387e9862a87514fe50b8f6240000f8027f44c4","guid":"bfdfe7dc352907fc980b868725387e98f43e3d2ca6c52bcbf6f14b3b3cd6cbcd"},{"fileReference":"bfdfe7dc352907fc980b868725387e983895df943363e74a233f99d64d15591e","guid":"bfdfe7dc352907fc980b868725387e98d98cf2dee24473996e4982013cb65178"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c302d9580a490b4aa288cc345541c475","guid":"bfdfe7dc352907fc980b868725387e98691d204167d06edd4669986e0c1cbce7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98647d4c08856bb03a3e50d3806da40f80","guid":"bfdfe7dc352907fc980b868725387e9819c12cb6d9e06ca4d5c37ef594962aed"},{"fileReference":"bfdfe7dc352907fc980b868725387e98039b6d95b92d90978a3646890454cf22","guid":"bfdfe7dc352907fc980b868725387e983e4fe6a73703ff0f85de4a982d62a163"},{"fileReference":"bfdfe7dc352907fc980b868725387e9826c33d12b60d0940407a322618698c39","guid":"bfdfe7dc352907fc980b868725387e988333e61cfadde9c454c30335d2fef027"},{"fileReference":"bfdfe7dc352907fc980b868725387e9822bace87f86357eb196413bd32a538ba","guid":"bfdfe7dc352907fc980b868725387e98bc2b7ec351194f634ab270b9581d8c84"},{"fileReference":"bfdfe7dc352907fc980b868725387e98120f04ad44fd7f0cee4f9e8475445636","guid":"bfdfe7dc352907fc980b868725387e98a668f7e26fb8e4e72d88047468064ce4"},{"fileReference":"bfdfe7dc352907fc980b868725387e989185f1664ed06367f563b5e77401b5e3","guid":"bfdfe7dc352907fc980b868725387e98794a007c89393a606631a6e11c85413a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9881748808cdc080c52c6ae5e1159d522d","guid":"bfdfe7dc352907fc980b868725387e98eae7c10d5b1b7d432becc0e8937bee74"},{"fileReference":"bfdfe7dc352907fc980b868725387e9828803fbca43f8791c35c0162379f2d47","guid":"bfdfe7dc352907fc980b868725387e980ccc6a46216340d4e69affd9b5b9e071"}],"guid":"bfdfe7dc352907fc980b868725387e98c3f8f671e92f5b0b56a08fda31ab0684","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98908295e54fe99f6fdbbdafaaab65b411","guid":"bfdfe7dc352907fc980b868725387e98f1b9efff3e8f75d1036ca7845e74f398"},{"fileReference":"bfdfe7dc352907fc980b868725387e9846c402515c051dde79e0603b8988800a","guid":"bfdfe7dc352907fc980b868725387e98742bf1035ad9eac828f2331eae1d23de"},{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98431f725f5bd4212c623403d6226b6677"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fca39a1b3a759435878c72e88d354056","guid":"bfdfe7dc352907fc980b868725387e98df955a39a62560c3870f586af2cb1ac0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98843620cb9303c260af54f17d584e9561","guid":"bfdfe7dc352907fc980b868725387e98ed4d675b431b011855111cbcf5b2e3eb"}],"guid":"bfdfe7dc352907fc980b868725387e9853f882b9f929947aef0c4cec4dec0d73","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e9844124561cc5e986398f8927749bd119e","targetReference":"bfdfe7dc352907fc980b868725387e98d3f65728b12dd217475d1283ee417937"}],"guid":"bfdfe7dc352907fc980b868725387e987ef88c105c19f667365ef557b4fa5936","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98d3f65728b12dd217475d1283ee417937","name":"DKPhotoGallery-DKPhotoGallery"},{"guid":"bfdfe7dc352907fc980b868725387e98c46180aea4e87057640961e6db37df0d","name":"SDWebImage"},{"guid":"bfdfe7dc352907fc980b868725387e9872eabefc63c14dfe52fb0c95ad90294e","name":"SwiftyGif"}],"guid":"bfdfe7dc352907fc980b868725387e989d0a1858a86fd6e6731ed20f88a1e515","name":"DKPhotoGallery","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e986e90c628ccd44af657bee5ff4af2f692","name":"DKPhotoGallery.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4e7061e123b7810fac1e2c0de5d06eb4-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4e7061e123b7810fac1e2c0de5d06eb4-json new file mode 100644 index 0000000..9115335 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4e7061e123b7810fac1e2c0de5d06eb4-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9850cc7fc2d23136fb4fac488d6c47df20","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-Runner/Pods-Runner-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-Runner/Pods-Runner.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9873fa9906c7281abeb697c5281dba0db9","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98dc1a21852c7a085c7dd8f65cf0fa9907","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-Runner/Pods-Runner-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-Runner/Pods-Runner.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e985c6c2c8607b09990b965844d5a0c1103","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f17abf55d75f35efcaf45a1185b085b6","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-Runner/Pods-Runner-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-Runner/Pods-Runner.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98c795feea44e1ab96db4efbc5ce34cdc4","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e980ec6fbca7264a6936f2adfc48dd7f5bc","guid":"bfdfe7dc352907fc980b868725387e98c58813fa559db24cdae4ebddbeb7e303","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98fa0ae288ba9e040b44a735fe91e2ea92","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98fed0970e703d355c9aff813f280aafdc","guid":"bfdfe7dc352907fc980b868725387e986ecb40f5dc5dc711c692ae4d9d8de2d1"}],"guid":"bfdfe7dc352907fc980b868725387e9833924d1f44f4eaf6ddbeeb21b19e5bee","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e9872880746a4142e8d931a7acb1f142990"}],"guid":"bfdfe7dc352907fc980b868725387e9845a645878acd539decd2f9fc6c1e5bce","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9812788dcb45056b0f6f93d576f05bbd49","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98758cc842172da540ffb591e63e38dc1e","name":"AppAuth"},{"guid":"bfdfe7dc352907fc980b868725387e98cd8162b601eb6c17e4d86eec112a388c","name":"AppCheckCore"},{"guid":"bfdfe7dc352907fc980b868725387e98687f14f834c716a0a6b72b2f678d5d39","name":"Cache"},{"guid":"bfdfe7dc352907fc980b868725387e985fd5cdb9993b1816141f0c012ffa62bd","name":"DKImagePickerController"},{"guid":"bfdfe7dc352907fc980b868725387e989d0a1858a86fd6e6731ed20f88a1e515","name":"DKPhotoGallery"},{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98ae4cba9dafde33c1f8a32ad5773d6cd3","name":"GCDWebServer"},{"guid":"bfdfe7dc352907fc980b868725387e980be6c76e7b3dde057d7e3e6ad61f30d4","name":"GTMAppAuth"},{"guid":"bfdfe7dc352907fc980b868725387e98dd3a6a519ed4181bf31ea6bc1f18ebc5","name":"GTMSessionFetcher"},{"guid":"bfdfe7dc352907fc980b868725387e989b0ee9a6d93c0cfa024bbc34a88b2122","name":"GoogleSignIn"},{"guid":"bfdfe7dc352907fc980b868725387e98718890dfdac589615663a02d43d9af3e","name":"GoogleUtilities"},{"guid":"bfdfe7dc352907fc980b868725387e989f6c9e975471ecf29d91b182619839be","name":"HLSCachingReverseProxyServer"},{"guid":"bfdfe7dc352907fc980b868725387e980a765b211b0c8c508dddcb830a52bbab","name":"PINCache"},{"guid":"bfdfe7dc352907fc980b868725387e98d09cfc976f4622a7180a4de1a3b0a290","name":"PINOperation"},{"guid":"bfdfe7dc352907fc980b868725387e98f10882e1684b8a3dfdec597bc0a47af3","name":"PromisesObjC"},{"guid":"bfdfe7dc352907fc980b868725387e98c46180aea4e87057640961e6db37df0d","name":"SDWebImage"},{"guid":"bfdfe7dc352907fc980b868725387e98b7cbd6928e589e6ea7e2866f501cf79b","name":"Sentry"},{"guid":"bfdfe7dc352907fc980b868725387e9872eabefc63c14dfe52fb0c95ad90294e","name":"SwiftyGif"},{"guid":"bfdfe7dc352907fc980b868725387e986cd267420621a3ff1d813b97fdcfc70c","name":"better_player_plus"},{"guid":"bfdfe7dc352907fc980b868725387e98bf75f71a2aa7fdc38a7d7d70e6c200c1","name":"file_picker"},{"guid":"bfdfe7dc352907fc980b868725387e98626d6ae7a16904bbde60028e930a9b9d","name":"get_thumbnail_video"},{"guid":"bfdfe7dc352907fc980b868725387e98c283846ee6bbf6294e59b4712edf254e","name":"google_sign_in_ios"},{"guid":"bfdfe7dc352907fc980b868725387e981f000f066404b97b12e9c4ca84d38d0f","name":"image_picker_ios"},{"guid":"bfdfe7dc352907fc980b868725387e98459ecbbef4dbbe8a07a0c87bad0e0d1b","name":"libwebp"},{"guid":"bfdfe7dc352907fc980b868725387e98a5ae7244e41cc249cf7186dbb9962ecb","name":"package_info_plus"},{"guid":"bfdfe7dc352907fc980b868725387e9830037b09fee48cfce1f8562d753688c8","name":"path_provider_foundation"},{"guid":"bfdfe7dc352907fc980b868725387e98448bda732aa144f27a7103a0fec8d738","name":"sentry_flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98848ff9cf74c635f5324731538a1c853f","name":"share_plus"},{"guid":"bfdfe7dc352907fc980b868725387e9828cab1f188854e0a973e6ff6905c5ffe","name":"shared_preferences_foundation"},{"guid":"bfdfe7dc352907fc980b868725387e9854872b53324b870c3c439eeaf7fabcb1","name":"sign_in_with_apple"},{"guid":"bfdfe7dc352907fc980b868725387e98e12182d29f945a15cf9d2a115b919169","name":"sms_autofill"},{"guid":"bfdfe7dc352907fc980b868725387e981304d3d2169071b3ca365b19f5340b7c","name":"sqflite_darwin"},{"guid":"bfdfe7dc352907fc980b868725387e98903e66fa03d6d27edaa18126a82c20fd","name":"url_launcher_ios"},{"guid":"bfdfe7dc352907fc980b868725387e988a0a5b40b007f81bee1472e4d0fb23da","name":"video_player_avfoundation"},{"guid":"bfdfe7dc352907fc980b868725387e985ee86805101bc8fd279e03690a1048af","name":"wakelock_plus"}],"guid":"bfdfe7dc352907fc980b868725387e98312b4bc59bbbe2c06c205bf4da6737f5","name":"Pods-Runner","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98699846e06e93b50cafdb00290784c775","name":"Pods_Runner.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5922362437a8ce717900a19099f244c3-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5922362437a8ce717900a19099f244c3-json new file mode 100644 index 0000000..4f0e8c5 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5922362437a8ce717900a19099f244c3-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f0a95ac974bb6b0ba5b06a77b7025160","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/PromisesObjC/PromisesObjC-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/PromisesObjC/PromisesObjC.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"FBLPromises","PRODUCT_NAME":"FBLPromises","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9859c54a9dd10a5b61ca35b47451c09f6c","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e989c4d4a7aeac80a75f2577cb4dc3454e1","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/PromisesObjC/PromisesObjC-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/PromisesObjC/PromisesObjC.modulemap","PRODUCT_MODULE_NAME":"FBLPromises","PRODUCT_NAME":"FBLPromises","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98238bdaef7e63085398705a411a3e6ca7","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e989c4d4a7aeac80a75f2577cb4dc3454e1","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/PromisesObjC/PromisesObjC-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/PromisesObjC/PromisesObjC.modulemap","PRODUCT_MODULE_NAME":"FBLPromises","PRODUCT_NAME":"FBLPromises","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98eed07afbc52c3b71c5ef778f97d25147","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e981a7923c05664e2cc79280a1ffe88467d","guid":"bfdfe7dc352907fc980b868725387e98b0bf0b36b6c7259c82baf63be82cc744","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cac331d9224270c59a2dfb49a034da8e","guid":"bfdfe7dc352907fc980b868725387e9828f98a1f09a158c0baea9592045ea065","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988f90b5d875a839cf4fdb6bd16eb4ad73","guid":"bfdfe7dc352907fc980b868725387e987d1b99ad0204555cae2bf96029331828","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983e4bd387bc0fca62477affa22d255dbb","guid":"bfdfe7dc352907fc980b868725387e9814475b5d0f1373464805a15d0674c6ec","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cc3673146c1e1f1e5d3c578fde6132cd","guid":"bfdfe7dc352907fc980b868725387e9839957f9ece925894906262ad7a340733","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9852bbc4e94702adbd05de9c9c6ac2e217","guid":"bfdfe7dc352907fc980b868725387e98aea94ea055a45ed6284de1285ff7ef78","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d524e96958e9e5cc70373e264b4708e2","guid":"bfdfe7dc352907fc980b868725387e98ab7bf0e6ce7ba8f9af0ab5e7cab2d444","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b77d00eca16e940d62042fb60d61f6db","guid":"bfdfe7dc352907fc980b868725387e980320bfd30bac69441d63ac9dc15bbc4d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9893be35a7b592168010af7f668a15f15b","guid":"bfdfe7dc352907fc980b868725387e98015bc10fd8c57412b13892b4a1ef7faa","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e982119b976ff78ad17a98adf9f33fc8279","guid":"bfdfe7dc352907fc980b868725387e9876010cbca03ceeb4a2b08654e00dc5ee","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98de1d52ea5152b823ce81ef0f094a9ffa","guid":"bfdfe7dc352907fc980b868725387e98290357a0fdc55c31bffb90569cf70105","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c64f64f38746b5e0e8ce6983f03f2a6d","guid":"bfdfe7dc352907fc980b868725387e98000bdd04939430f4a48fd3d4e8b7452e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98af972f771fe2f1d79b0059bfad4c5d3c","guid":"bfdfe7dc352907fc980b868725387e98c06cb2c63abc6df4a18f4ab325215464","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f495e5f1a8526261f3f28a36198c3588","guid":"bfdfe7dc352907fc980b868725387e981db178667c1b32f43f959a6bff425eeb","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9871e91d4e0f77a6731b8c6bcdb556b268","guid":"bfdfe7dc352907fc980b868725387e9864f60e5985681382264c8830c59638a3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bfc5a8a9e9d53833dc70b44be018254b","guid":"bfdfe7dc352907fc980b868725387e98737d5509f7b5bf2bb9198fe77bd73b75","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98765c447070ee4bdd08630c5c16da1d3e","guid":"bfdfe7dc352907fc980b868725387e98ea73466239358d05d0b143b7977c6082","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98036b1a249a2fa87a196baedac94ffe31","guid":"bfdfe7dc352907fc980b868725387e9867beadacd5b7d9cfc539174d0802dc66","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e982809f1961e2911f6f4bbcaa5b824782a","guid":"bfdfe7dc352907fc980b868725387e9834d6fd08add0fbf296d4a989571e2729","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c4103ca1e881d2df4c5575c7f958c79d","guid":"bfdfe7dc352907fc980b868725387e98cb9b0912f940a8a39c77a3b6dac694ea","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e98363ded10d8cb421ea233a03ed3c2f79b","guid":"bfdfe7dc352907fc980b868725387e98291e59a8be8c5989330bf6cb3b2c834f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b575961df9f6f586d35cfbe9459ca875","guid":"bfdfe7dc352907fc980b868725387e98fafbee803400348f7c0664b44dded8c9","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98be44d9f839d09fd3e026f34ebab49561","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9897acdc4aa632ae329e71652119e8399b","guid":"bfdfe7dc352907fc980b868725387e981a91f75cd1aa04f71928869f968af5cf"},{"fileReference":"bfdfe7dc352907fc980b868725387e9878e8411fbce9842e52d2cb305f21a216","guid":"bfdfe7dc352907fc980b868725387e986e1e99510d274a713b70a196fd005b4f"},{"fileReference":"bfdfe7dc352907fc980b868725387e983939679625fa9f48c705d9764d93eb3e","guid":"bfdfe7dc352907fc980b868725387e985beaa44d7572a9ed0d439c3c1454faba"},{"fileReference":"bfdfe7dc352907fc980b868725387e9864dd632ace7a9d7f8f237fd71ee78bfb","guid":"bfdfe7dc352907fc980b868725387e9850f4b0cd3e76efd89070f2b8ee13edc4"},{"fileReference":"bfdfe7dc352907fc980b868725387e980741fd7d72abb805fd8f8857b4535f09","guid":"bfdfe7dc352907fc980b868725387e98f23a5900ca8b5f2a4c069798de2657f7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d8c720c3f4de110f5f7365e9a9737bd7","guid":"bfdfe7dc352907fc980b868725387e98f13b15da65da3a63bf84c50b96aa2c16"},{"fileReference":"bfdfe7dc352907fc980b868725387e98830024ff518f1a6ecfec2a44ecb9ad4b","guid":"bfdfe7dc352907fc980b868725387e9844786099be7db5c754abdb72d7b2eb6b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a7bf665286b622100f38fb7fa7e7f9f5","guid":"bfdfe7dc352907fc980b868725387e981ba4ef943f3c52be863b89de634af435"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f25ac2a567c5df82de375709e5139ab4","guid":"bfdfe7dc352907fc980b868725387e98096bb6fd0c30d9f8ee75e359999aed59"},{"fileReference":"bfdfe7dc352907fc980b868725387e9893f6489a19f9cc84025a3f49d1d5d729","guid":"bfdfe7dc352907fc980b868725387e98c6badc64567c6b994536f50e25637eac"},{"fileReference":"bfdfe7dc352907fc980b868725387e9847e19273152301950723247a2a4382ed","guid":"bfdfe7dc352907fc980b868725387e98ef630edbb90c99af76a93291deee7f04"},{"fileReference":"bfdfe7dc352907fc980b868725387e987c2dc010d3d2c23c3c264b3bb932a65a","guid":"bfdfe7dc352907fc980b868725387e98049df47bcdfdaec365fc2b365655e18a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e712fc79b62dbb819363a6f3e87c43f2","guid":"bfdfe7dc352907fc980b868725387e983d96fe5427433bad41e2c7dbd06eab59"},{"fileReference":"bfdfe7dc352907fc980b868725387e98de7fd23b79174ed2addee1baac22370e","guid":"bfdfe7dc352907fc980b868725387e9868738ce7129ed6029038afb2ab58bfe7"},{"fileReference":"bfdfe7dc352907fc980b868725387e981d5cc9819a47f96a804dbb7062e28838","guid":"bfdfe7dc352907fc980b868725387e98a56d95fde1a02a43e24a00fbe4a91117"},{"fileReference":"bfdfe7dc352907fc980b868725387e98702ea5b4b3c919296db5d095839f4444","guid":"bfdfe7dc352907fc980b868725387e986879b04d9baed550c38ef0917631a9d4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a4d8ab66a8de7806f4ca4ea21c7b3e85","guid":"bfdfe7dc352907fc980b868725387e986dbf420894854317c0fab6ca765941db"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b8a670acd53836618c965eee179330b2","guid":"bfdfe7dc352907fc980b868725387e980114e3f3dfad18e4f02ca3c172b7d234"},{"fileReference":"bfdfe7dc352907fc980b868725387e9858605bc0bf28ac2912d2cf82c985aa45","guid":"bfdfe7dc352907fc980b868725387e98e70fcfabc08a1a91f201ca33a5a8fe43"},{"fileReference":"bfdfe7dc352907fc980b868725387e9845504253b0f0b1f298f5fa6b12b77ebc","guid":"bfdfe7dc352907fc980b868725387e98b5ba56401434e36c0ea60172de904b70"}],"guid":"bfdfe7dc352907fc980b868725387e989ce4419f45c89a9ab5ca2a6032e55075","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e9804747e43acea916c5b7b6db17df72f0c"}],"guid":"bfdfe7dc352907fc980b868725387e98a056f3e138d8639f3245b9c466d68627","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98f62868dea7a0cb316a5fd5b3b4950084","targetReference":"bfdfe7dc352907fc980b868725387e98ad53226b339581a6725de188f2c8f823"}],"guid":"bfdfe7dc352907fc980b868725387e98d8ce124ab72ed7fda513eeeb3f903000","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98ad53226b339581a6725de188f2c8f823","name":"PromisesObjC-FBLPromises_Privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98f10882e1684b8a3dfdec597bc0a47af3","name":"PromisesObjC","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e981c795e45f8d875aac88217c6a2a95faa","name":"FBLPromises.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5a9bfc457b91e45af48420ed50c9ff17-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5a9bfc457b91e45af48420ed50c9ff17-json new file mode 100644 index 0000000..4ffc311 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5a9bfc457b91e45af48420ed50c9ff17-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98dfeaebcd8aea2e753049392f4566e8ab","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/AppAuth","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"AppAuth","INFOPLIST_FILE":"Target Support Files/AppAuth/ResourceBundle-AppAuthCore_Privacy-AppAuth-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"AppAuthCore_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e982768ed83ca35ee0617e0c16ab0276c75","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984e9846f9bd02001bffc698b449150ddb","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/AppAuth","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"AppAuth","INFOPLIST_FILE":"Target Support Files/AppAuth/ResourceBundle-AppAuthCore_Privacy-AppAuth-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"AppAuthCore_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e981b088e00e23abe00a6fdd7a6480081e9","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984e9846f9bd02001bffc698b449150ddb","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/AppAuth","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"AppAuth","INFOPLIST_FILE":"Target Support Files/AppAuth/ResourceBundle-AppAuthCore_Privacy-AppAuth-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"AppAuthCore_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98f94b8fb426ca4eb6a26cd9342f8d5bc9","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9896e3571fbe90256c0bdbf8d7896180b3","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e989c2ec66ed7ae3864d6c8d9e14110ad08","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e982c71d0b4392784f047a4915539da8c40","guid":"bfdfe7dc352907fc980b868725387e980edaea5bb2131ee90f44fd57f41374a5"}],"guid":"bfdfe7dc352907fc980b868725387e980a4efe1eeec0b45a6c295dd19804b71f","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98410c96b4e26fc36411e63b84c3491605","name":"AppAuth-AppAuthCore_Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e986d566b0f46776138a3ba88837e01b2bf","name":"AppAuthCore_Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5af6d123105c63ba034f855cc1a5010d-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5af6d123105c63ba034f855cc1a5010d-json new file mode 100644 index 0000000..3d50852 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5af6d123105c63ba034f855cc1a5010d-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e983cec0bc18b2db7434234b0bb9f60b333","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"shared_preferences_foundation","PRODUCT_NAME":"shared_preferences_foundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e986f83bf1d86816a7afe713389f3b0794c","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e981e9b29ba00bbe596786c71d5afe0807e","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"shared_preferences_foundation","PRODUCT_NAME":"shared_preferences_foundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98c6ce66678a98cae8c935e06602a448e0","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e981e9b29ba00bbe596786c71d5afe0807e","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"shared_preferences_foundation","PRODUCT_NAME":"shared_preferences_foundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e980f59bc0c0df185b08d92e2afa6f35dda","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e988ffd44c2515506db53278fe1d021c588","guid":"bfdfe7dc352907fc980b868725387e98e82259888cd400660e6ae15b115eb233","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9845bc282ec8aa7540f3a569c2631d21d5","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9894f3b7e256000776a0004878b2bbf719","guid":"bfdfe7dc352907fc980b868725387e98fd02d1eda3186e16170f4f73c3d283d7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ff77b50a35b3307e9f40b58099dbd12f","guid":"bfdfe7dc352907fc980b868725387e98489a95f2019f3ec6e0acd5ba6de8991a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98772993a089c4b4bc42511f7fc6784751","guid":"bfdfe7dc352907fc980b868725387e9826de4802583ffb6c21e545de2d561bd8"}],"guid":"bfdfe7dc352907fc980b868725387e98f14b5d6b6d6b0c465e2f1e0eaa6bc1cd","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98475ba5d87573359032e9b06fd466a003"}],"guid":"bfdfe7dc352907fc980b868725387e9859badffc37928e123e98be61f8d11d71","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e9872e4e537a8c9a8da179493daa4c54b77","targetReference":"bfdfe7dc352907fc980b868725387e98e0be3b0d5ad56f1985578b1f97431765"}],"guid":"bfdfe7dc352907fc980b868725387e9876fd72010a5b056ae41fa1936cd39334","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98e0be3b0d5ad56f1985578b1f97431765","name":"shared_preferences_foundation-shared_preferences_foundation_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e9828cab1f188854e0a973e6ff6905c5ffe","name":"shared_preferences_foundation","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9815af7ba71ce93f789a463577fc360420","name":"shared_preferences_foundation.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5d9d91766d9aaa3f4332a9a8964c11e0-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5d9d91766d9aaa3f4332a9a8964c11e0-json new file mode 100644 index 0000000..79b30f3 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5d9d91766d9aaa3f4332a9a8964c11e0-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98d004a44bc0f83b36de4c06c0e2d7acf9","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/file_picker/file_picker-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/file_picker/file_picker-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/file_picker/file_picker.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"file_picker","PRODUCT_NAME":"file_picker","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98b3839b441583705f02a5120c8d8aa8af","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98e1a34420b75d91042885836aff28acec","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/file_picker/file_picker-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/file_picker/file_picker-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/file_picker/file_picker.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"file_picker","PRODUCT_NAME":"file_picker","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98bf7c85eda27e5e9e0261324bd88a67cb","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98e1a34420b75d91042885836aff28acec","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/file_picker/file_picker-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/file_picker/file_picker-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/file_picker/file_picker.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"file_picker","PRODUCT_NAME":"file_picker","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9892027ea2a6fa425b67809870c0e18fdf","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e984d7e44faf95d2e6669296b9041abcee7","guid":"bfdfe7dc352907fc980b868725387e9897b667da404c44c10d04556115f22ab1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e982c4cd0aa851a88c15deea5d21af58c97","guid":"bfdfe7dc352907fc980b868725387e985a4cb5a3fe628e67656c6387cb61b0ad","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fc0bc3a668c7cd453a18e5273e326c6c","guid":"bfdfe7dc352907fc980b868725387e98f73dab99bf410dc5a3b0bb97c04045d8","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9897ecee62713cf3daa147b8d101a60f6d","guid":"bfdfe7dc352907fc980b868725387e9801576c70ebd014e4b7931916e4680a14","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d6b44ed2856cf13b797725519011b5af","guid":"bfdfe7dc352907fc980b868725387e98f4095f479a2fd55e16c55652e8cf8fdc","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9874a8e10d0d4d6a8e4d51cadd3de25a1f","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98aa46b32498462091196d698107b2b8ce","guid":"bfdfe7dc352907fc980b868725387e98a1de3a054407d1c738e24f5374fa74a5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f62dd99f1a275b3ad308abb443d07ee8","guid":"bfdfe7dc352907fc980b868725387e98514a3a2f7ffa02e2d76e44ff96d9dd72"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dd1d97c2fa84fdd23d18cbb5bf981ca3","guid":"bfdfe7dc352907fc980b868725387e9879a089a0a80796adbce1697868e85130"},{"fileReference":"bfdfe7dc352907fc980b868725387e982d8ee0dbe467e1ab5e558655dfc394d3","guid":"bfdfe7dc352907fc980b868725387e985921fb9c835fddab9394da57455e6672"},{"fileReference":"bfdfe7dc352907fc980b868725387e9850f3cdab1f52269cbaa172c4efc2afa1","guid":"bfdfe7dc352907fc980b868725387e9883650eb700ef50930aca3396a2938011"}],"guid":"bfdfe7dc352907fc980b868725387e9833a0422bc02947bdd25cd49f9b0b26c7","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e986cf52231b3e99539039502256cc80d97"}],"guid":"bfdfe7dc352907fc980b868725387e98a0e062b1c169ee922cd5cc09aef279dd","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98a9270cf577ade730d8197570f3744af9","targetReference":"bfdfe7dc352907fc980b868725387e985452a642045cac0ef7c37f93da2d994e"}],"guid":"bfdfe7dc352907fc980b868725387e98300e823ab028234f8b351b783dfd9d7a","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e985fd5cdb9993b1816141f0c012ffa62bd","name":"DKImagePickerController"},{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e985452a642045cac0ef7c37f93da2d994e","name":"file_picker-file_picker_ios_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98bf75f71a2aa7fdc38a7d7d70e6c200c1","name":"file_picker","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e981da9957ede39da2a81727560e62463b0","name":"file_picker.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=63013c91e0dd907d9baec65634b652b0-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=63013c91e0dd907d9baec65634b652b0-json new file mode 100644 index 0000000..97dc3de --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=63013c91e0dd907d9baec65634b652b0-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f18f0c43af5ca85b293f18013cee90a4","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/google_sign_in_ios/google_sign_in_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/google_sign_in_ios/google_sign_in_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/google_sign_in_ios/google_sign_in_ios.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"google_sign_in_ios","PRODUCT_NAME":"google_sign_in_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98ab675e594713ccb27e44174feb17a7e2","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f66df6b80a453710ee890ea3341aa9f8","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/google_sign_in_ios/google_sign_in_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/google_sign_in_ios/google_sign_in_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/google_sign_in_ios/google_sign_in_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"google_sign_in_ios","PRODUCT_NAME":"google_sign_in_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e988e84575d3845df96338a8dc1d75e028d","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f66df6b80a453710ee890ea3341aa9f8","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/google_sign_in_ios/google_sign_in_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/google_sign_in_ios/google_sign_in_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/google_sign_in_ios/google_sign_in_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"google_sign_in_ios","PRODUCT_NAME":"google_sign_in_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9892b5a84b57ebe070570fe4454fe8759b","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9876729823b3dbba267eaa104ef604fb72","guid":"bfdfe7dc352907fc980b868725387e98b0323fa00f9a49345690b2b625a42570","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983c2b9a94c5714ad20f4c384e2a01ee5f","guid":"bfdfe7dc352907fc980b868725387e98d99efc1f3dcbbfcd219fa441596aa33a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9892ee26e2d1ae306258f55404a53c4583","guid":"bfdfe7dc352907fc980b868725387e982faf2f367e33ffd792836f769d93bc8d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fe0fadf4dd3aaa771341b7cc10a14bbf","guid":"bfdfe7dc352907fc980b868725387e98cb97de8096a4ce9790c6960ecec7a9ce","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98c8498f1d42729f3d778ae045cef7f239","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e984623f2dff5d599f280c1008d3b839d70","guid":"bfdfe7dc352907fc980b868725387e98c9b8f92f868a2ec583b6fa8d77ba548d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98197a2beb0a3647110cb2c64d4d479781","guid":"bfdfe7dc352907fc980b868725387e9832c5964389ddd7fd020c5067f96eae9d"},{"fileReference":"bfdfe7dc352907fc980b868725387e988fc596a57be07c0620a869973ad6a721","guid":"bfdfe7dc352907fc980b868725387e98f2c73a98680bf1ca57bd941e77f0c70a"}],"guid":"bfdfe7dc352907fc980b868725387e98f085e2ddc56f6573f51e73fcf076913e","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98a6a53cd8bc2a746ccddb9e019d7110b8"}],"guid":"bfdfe7dc352907fc980b868725387e983ebd5451e58f57353118d81f483c2df4","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98a14068407e2b195869d2f84b532287ef","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98758cc842172da540ffb591e63e38dc1e","name":"AppAuth"},{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98dd3a6a519ed4181bf31ea6bc1f18ebc5","name":"GTMSessionFetcher"},{"guid":"bfdfe7dc352907fc980b868725387e989b0ee9a6d93c0cfa024bbc34a88b2122","name":"GoogleSignIn"},{"guid":"bfdfe7dc352907fc980b868725387e983c7fa4bfabecc448c813cef02922c100","name":"google_sign_in_ios-google_sign_in_ios_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98c283846ee6bbf6294e59b4712edf254e","name":"google_sign_in_ios","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98c5e71ae4d21e645718c682d816e198a3","name":"google_sign_in_ios.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6337105c64c2f28dec07e88ced461719-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6337105c64c2f28dec07e88ced461719-json new file mode 100644 index 0000000..e24bde3 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6337105c64c2f28dec07e88ced461719-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98e2cb861f0c3d7355adc0b87017f02c72","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/image_picker_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"image_picker_ios","INFOPLIST_FILE":"Target Support Files/image_picker_ios/ResourceBundle-image_picker_ios_privacy-image_picker_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"image_picker_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e980efb384a643100fe383436f988a08d01","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9811f2ba2770a9de88641eb8273e3aa006","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/image_picker_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"image_picker_ios","INFOPLIST_FILE":"Target Support Files/image_picker_ios/ResourceBundle-image_picker_ios_privacy-image_picker_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"image_picker_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98cf87424150687506643a7e2feef1930f","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9811f2ba2770a9de88641eb8273e3aa006","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/image_picker_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"image_picker_ios","INFOPLIST_FILE":"Target Support Files/image_picker_ios/ResourceBundle-image_picker_ios_privacy-image_picker_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"image_picker_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e984b14bbc797430f932932e26d45c74034","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e989f1616e2c27509afc5600915d1889ebe","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9892a5928d66c8a60db66fbf4773dcdf58","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98e87b98156028c3163077fa73a16ac220","guid":"bfdfe7dc352907fc980b868725387e98aa5419ca10e6a5123dc04984c45446d8"}],"guid":"bfdfe7dc352907fc980b868725387e98afef3fb8939f98738beefe51fbfea000","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98082dc85da1fc941e5234c7cc1f11b27d","name":"image_picker_ios-image_picker_ios_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98cba567c8a049008de84f093e54e3191c","name":"image_picker_ios_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=63a0e76413ee91370ed0a1b256e3f252-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=63a0e76413ee91370ed0a1b256e3f252-json new file mode 100644 index 0000000..8990b7d --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=63a0e76413ee91370ed0a1b256e3f252-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98490fde87ae055958de1d1f8e2cd97696","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GTMSessionFetcher","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GTMSessionFetcher","INFOPLIST_FILE":"Target Support Files/GTMSessionFetcher/ResourceBundle-GTMSessionFetcher_Core_Privacy-GTMSessionFetcher-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"10.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"GTMSessionFetcher_Core_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98e39077f2129b11e3e0989e89c4dddabf","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984ae7daf5f58d55b28e60985ea305a6ba","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GTMSessionFetcher","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GTMSessionFetcher","INFOPLIST_FILE":"Target Support Files/GTMSessionFetcher/ResourceBundle-GTMSessionFetcher_Core_Privacy-GTMSessionFetcher-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"10.0","PRODUCT_NAME":"GTMSessionFetcher_Core_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98f1419b927e584728e18eb118c8486aaf","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984ae7daf5f58d55b28e60985ea305a6ba","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GTMSessionFetcher","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GTMSessionFetcher","INFOPLIST_FILE":"Target Support Files/GTMSessionFetcher/ResourceBundle-GTMSessionFetcher_Core_Privacy-GTMSessionFetcher-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"10.0","PRODUCT_NAME":"GTMSessionFetcher_Core_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98892f1d7e61fa4ee58cea9916a66ed9eb","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98314832b18495718204b96ec9f9914a25","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9821c68288b63e8ca6de1c0cc91724b82f","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98f7a6c55744de3f1a8389dfcb0a7917d2","guid":"bfdfe7dc352907fc980b868725387e987eb8b505ba294579ae5a6a522caa0aaf"}],"guid":"bfdfe7dc352907fc980b868725387e9884b3a537c021454ec6c6a189af8876aa","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9801af34ddea6be97d757786022edb34b1","name":"GTMSessionFetcher-GTMSessionFetcher_Core_Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e984eb2bec9e96ca1b7af92c0697fc4108d","name":"GTMSessionFetcher_Core_Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6bde34a4b049540e81a44d0561d32e9f-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6bde34a4b049540e81a44d0561d32e9f-json new file mode 100644 index 0000000..ba1eb70 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6bde34a4b049540e81a44d0561d32e9f-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c98d5a35dd8795a42681114203553a63","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/Sentry/Sentry-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/Sentry/Sentry-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"11.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/Sentry/Sentry.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"Sentry","PRODUCT_NAME":"Sentry","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.5","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e980953baeb5d2e73c18fb2b6fed2258289","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98d2aaf20dd2b7dc8c1960622189dfcf83","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/Sentry/Sentry-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/Sentry/Sentry-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"11.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/Sentry/Sentry.modulemap","PRODUCT_MODULE_NAME":"Sentry","PRODUCT_NAME":"Sentry","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.5","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98bc757dd6b20decd495882158a603d89a","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98d2aaf20dd2b7dc8c1960622189dfcf83","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/Sentry/Sentry-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/Sentry/Sentry-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"11.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/Sentry/Sentry.modulemap","PRODUCT_MODULE_NAME":"Sentry","PRODUCT_NAME":"Sentry","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.5","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98745904798271093043c1d80410ecc8ad","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98e001f78339f91c73e172835a86618eec","guid":"bfdfe7dc352907fc980b868725387e98c8e27ec06ee65e39c8a62bbffe759189"},{"fileReference":"bfdfe7dc352907fc980b868725387e98248f139b8a277a8d2220b7ba8320a8f9","guid":"bfdfe7dc352907fc980b868725387e9829402560d7d6f7908acf023f6cc2cafb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98638e838d81f2696c97244d55db8da9d2","guid":"bfdfe7dc352907fc980b868725387e9818580abf2abd039b2745e1114ae661ce"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f903d6780a6318e601a8f8574e6f855a","guid":"bfdfe7dc352907fc980b868725387e98f9ed90d6be54ec971168557a96001493","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9810a51b308666aff0ebc2c3a080471c11","guid":"bfdfe7dc352907fc980b868725387e98106a10a2572ef65351e803d0303a9cf2","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98690195525a633cec04f93f7105c1ae77","guid":"bfdfe7dc352907fc980b868725387e985938f78532d158d691d5bcffbf1b0906","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cbe5db23f339a3caa5e3f417f69cccbc","guid":"bfdfe7dc352907fc980b868725387e98ce6cbce919337360f66cb642e4a4356f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9866282bce37b80904f4dd54f2806f9db9","guid":"bfdfe7dc352907fc980b868725387e9849ea73d39a4ae874b3e2724ce8fd99cd"},{"fileReference":"bfdfe7dc352907fc980b868725387e9813cb1d7487e2bf939426b6ff778faac2","guid":"bfdfe7dc352907fc980b868725387e988e3599eea8fc480d7b807c3fa328a39c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98489a60a9b15049e548b74fb4daf33a85","guid":"bfdfe7dc352907fc980b868725387e984d0d1a8ff6accdfbe59f21391e3c4f08"},{"fileReference":"bfdfe7dc352907fc980b868725387e985a66b5361d8c00e51eca8c4c9368e68f","guid":"bfdfe7dc352907fc980b868725387e98a0573bf215329ce3b7e60e73ce38f008","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981f8e3b29811e270fb62c43945186810c","guid":"bfdfe7dc352907fc980b868725387e983d98b0fdec5b27caa3f074d5fc235933"},{"fileReference":"bfdfe7dc352907fc980b868725387e989c85215a18e485c826dcf1bd904e3ad2","guid":"bfdfe7dc352907fc980b868725387e98ea1957be47980f29f97c201940795dc5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a0b4c25c514d3e39a080663bedcc2f78","guid":"bfdfe7dc352907fc980b868725387e98635cb162c759c5ddedda88fb87ca9694"},{"fileReference":"bfdfe7dc352907fc980b868725387e98521eb5163652ccf7b34f0472d8be2471","guid":"bfdfe7dc352907fc980b868725387e98c458b258cd86f316a4ffc537f144cd1d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a11e6b38d412895998fc828834cb6495","guid":"bfdfe7dc352907fc980b868725387e9838240d0e753178fa379c75326343028d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98426b76b4683344516aa8821478aa482c","guid":"bfdfe7dc352907fc980b868725387e9801a7d81ecbc02a0cfcd028b12d77fc63"},{"fileReference":"bfdfe7dc352907fc980b868725387e9853fc02ecc0b210c19140f4d90d8a65aa","guid":"bfdfe7dc352907fc980b868725387e98c535bddadd90fe3da0541d8031e5cd1d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9856f97fd51ba8c4a927a98619ac123a6a","guid":"bfdfe7dc352907fc980b868725387e9851f466e89710eb7fe6c6a663f005ca54"},{"fileReference":"bfdfe7dc352907fc980b868725387e983f217f73d3dade8e9d05d8ad42b12b0c","guid":"bfdfe7dc352907fc980b868725387e98bcb5f3fcf5136dd5fe868df62286fd85"},{"fileReference":"bfdfe7dc352907fc980b868725387e983accbc9cdb630e58b0a6f3e6055b2f33","guid":"bfdfe7dc352907fc980b868725387e984b9a70a09c3f0ad1e6dcb6c6c38d318b"},{"fileReference":"bfdfe7dc352907fc980b868725387e983692f40b74b4328987413f249b16591e","guid":"bfdfe7dc352907fc980b868725387e98d1228c8f3c1370a2cebabd6b7d0a7400"},{"fileReference":"bfdfe7dc352907fc980b868725387e98732d148da486374fc6de85e358280436","guid":"bfdfe7dc352907fc980b868725387e98fe5fae3c405085f270a30eb037215900","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98573fac1672e5d26f6f851f26cae747ef","guid":"bfdfe7dc352907fc980b868725387e98b8f2317d3207aaf03d219b721d631df5","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e2380884a454436aa90c524fec7a61a4","guid":"bfdfe7dc352907fc980b868725387e98760b0cdd9f7e8fba7b3075070ede3b05","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a9bf84cb52e43d1836a8d7195edd1fcd","guid":"bfdfe7dc352907fc980b868725387e98e6eab7396049e9c5961eea5d4c0bb015","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cf190ebad7e14195fb8f1087d54dd3f8","guid":"bfdfe7dc352907fc980b868725387e98e1477f1117f7382f57a1c1913a67e6e9","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981e905b2c167e4a6f30eb08674862d81c","guid":"bfdfe7dc352907fc980b868725387e98cfa30184b7e2d3d142351ca10a3089e0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f69a8e55ffd47cda9d8b8ee26e67f25d","guid":"bfdfe7dc352907fc980b868725387e9829b31a185aeb81e0782601e4ebd8f58b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98366c6b1682985644f03633b3dda1e3a1","guid":"bfdfe7dc352907fc980b868725387e98c5c954734dbdb580f2a7600ca681325a"},{"fileReference":"bfdfe7dc352907fc980b868725387e989e5f25f0f7f168465eaf5e4c7b1f1793","guid":"bfdfe7dc352907fc980b868725387e98ef377b304579791c3672eeddf9e50a78"},{"fileReference":"bfdfe7dc352907fc980b868725387e98698b7319ce4e47470e04e1d42d532e3a","guid":"bfdfe7dc352907fc980b868725387e98166588f1440d5ef276fb3f0df8c1f210"},{"fileReference":"bfdfe7dc352907fc980b868725387e9849fd3b3d6ecfd12c0dd0fcf5698b154c","guid":"bfdfe7dc352907fc980b868725387e989793b9fdc6fa329f7c66a2359df5b2ce","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9807ae478b6457dad78fb6cbe02ba7ae2c","guid":"bfdfe7dc352907fc980b868725387e98f1179c1df2e466d9d2d6e4e74e5d507e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98290c7c29e6ede469283b735946d503e1","guid":"bfdfe7dc352907fc980b868725387e981757fbb0b083e67cfd35797723a4ca20"},{"fileReference":"bfdfe7dc352907fc980b868725387e988149f77e1e9292e62d597ad4a5685d4d","guid":"bfdfe7dc352907fc980b868725387e982a824d44f22fe9b7012dcafc9d5dd3a9"},{"fileReference":"bfdfe7dc352907fc980b868725387e9850a5af28bea4ba2a867c6d2bb2fc8c8b","guid":"bfdfe7dc352907fc980b868725387e984aa3668633cadbc259e4e4b603b59feb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c39948664910832f9e226aa2628be66c","guid":"bfdfe7dc352907fc980b868725387e98e933a5daeee7fcc44ecd92a35725ebd7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98db29d9b9825194904de7ce2fcc8227d4","guid":"bfdfe7dc352907fc980b868725387e98d63966869716802f51d67da2b465963e"},{"fileReference":"bfdfe7dc352907fc980b868725387e9881b3bff6b9341fe4c728e3b3e39b5350","guid":"bfdfe7dc352907fc980b868725387e9848e158938fd11737a443ed52c232b070"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c28ae93973eda6139ad4c2651a25b80c","guid":"bfdfe7dc352907fc980b868725387e982522f5b464121584dd1620f7ba633308"},{"fileReference":"bfdfe7dc352907fc980b868725387e9885da54aaf46ac669f3817c2bfd4f5b19","guid":"bfdfe7dc352907fc980b868725387e98a0a3f4be62ba70c715bbc08ea0e1477f"},{"fileReference":"bfdfe7dc352907fc980b868725387e982367e71b2dd1ae6b852d0696e8390159","guid":"bfdfe7dc352907fc980b868725387e9863c9542addfd31cbe13b1e8f8d01ebf9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98063360dbabcffb30b49cc824e3bf094d","guid":"bfdfe7dc352907fc980b868725387e98a81ae69fbf879c2b2b244be3a75736c9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ec59152106ed52562e348fd7be2d234f","guid":"bfdfe7dc352907fc980b868725387e9855a6d87850d76e1efaddc4934832a0a8"},{"fileReference":"bfdfe7dc352907fc980b868725387e9845987afe969316feea1f8a8134612d02","guid":"bfdfe7dc352907fc980b868725387e988e48adb70d5b6e826c7560725268e5e4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98af863bd36ea71ee90a9bfc784f1ae0ca","guid":"bfdfe7dc352907fc980b868725387e98c0985c5ce54fd6ea23c8fb051010caaa"},{"fileReference":"bfdfe7dc352907fc980b868725387e980b2bce92acd4c4768205322edb05f5bd","guid":"bfdfe7dc352907fc980b868725387e989d2d106a35cab857d34955eb2c15d0e1"},{"fileReference":"bfdfe7dc352907fc980b868725387e9829b34965fb184566532d1b5050dbc765","guid":"bfdfe7dc352907fc980b868725387e9839052a3507eb7a812cc5197f01160b89"},{"fileReference":"bfdfe7dc352907fc980b868725387e9855e0b71e86dae7124889e31a6edf05fb","guid":"bfdfe7dc352907fc980b868725387e98aaf7e400243e2abb86f6f87dd9da4537"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f9e6492850c1cd3338ab67f572a283bb","guid":"bfdfe7dc352907fc980b868725387e98fdcfcdfad6fa6d0d09f774d6dd1aa96e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98294f6f456b84d077cdedba711c95f2ad","guid":"bfdfe7dc352907fc980b868725387e98ce9f37768c7722a3739ee6dee74b2ef9"},{"fileReference":"bfdfe7dc352907fc980b868725387e9866ef8792975db697cf516651ae4f67b3","guid":"bfdfe7dc352907fc980b868725387e984769177dcb2a4d31e042ae5ed483eec8"},{"fileReference":"bfdfe7dc352907fc980b868725387e9808cbeb6002049acabe3c880fbc598f33","guid":"bfdfe7dc352907fc980b868725387e98a63c4efca59fe906d951980b725e2e2b"},{"fileReference":"bfdfe7dc352907fc980b868725387e9885bec41077e0166ac955ec472a2b5481","guid":"bfdfe7dc352907fc980b868725387e98089afd8dc147f77757144a3b2b162a6b"},{"fileReference":"bfdfe7dc352907fc980b868725387e981f549f17411688ab058274328f938c6e","guid":"bfdfe7dc352907fc980b868725387e98068d57971e2974431d9deb4ca66b98e1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ffd824fdc40d93889be75b421faa54b0","guid":"bfdfe7dc352907fc980b868725387e98d4182ec3de41d1c83e6db2b17dc23f64"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f596af1325dac301874e560f1f594adb","guid":"bfdfe7dc352907fc980b868725387e98b69567136839968fa44caf9d26d2915c"},{"fileReference":"bfdfe7dc352907fc980b868725387e9865ebad0e1d66f6076bedc3ee40dcbcdc","guid":"bfdfe7dc352907fc980b868725387e98fa98db6439655311a1304d3629173870"},{"fileReference":"bfdfe7dc352907fc980b868725387e98498cc7cc608f1ee4933a868828cf6d7b","guid":"bfdfe7dc352907fc980b868725387e9838ae4cde9af729777fa47006b39fdb8b"},{"fileReference":"bfdfe7dc352907fc980b868725387e987b740ac0de41bb88be594dfe174cb3f3","guid":"bfdfe7dc352907fc980b868725387e984059e6eb7a07fd1da141408301d39f85"},{"fileReference":"bfdfe7dc352907fc980b868725387e985067d9ba8deede5a9ca4fe5f40ae1661","guid":"bfdfe7dc352907fc980b868725387e9863749f9e20be4f9582eb21d12f96fdcc"},{"fileReference":"bfdfe7dc352907fc980b868725387e98476d3710a90bd943aa8c26bc5d3cb245","guid":"bfdfe7dc352907fc980b868725387e9803328a3886ea64fb330b3e663d0a810c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98efb2a246ea08e434f05ce24d8047ee4d","guid":"bfdfe7dc352907fc980b868725387e98f1932457a8b8ac38ed93c5a5f4e61fa9"},{"fileReference":"bfdfe7dc352907fc980b868725387e980187ebc9abd8fde7574924054076e0f0","guid":"bfdfe7dc352907fc980b868725387e986fc23c28ae2c84fb10c1e95f0dfe572a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d0ce240e93e24fcb2a421245757d8ab7","guid":"bfdfe7dc352907fc980b868725387e9832d723263ecfc638d2a1f0d8a25d5cb8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f9dd030edce01c503603e98710a5e492","guid":"bfdfe7dc352907fc980b868725387e98945c624deccf47842350d21591275bbe"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b423dbd9b466c7caf159ad5cd8614e17","guid":"bfdfe7dc352907fc980b868725387e9864aefa62ceb41547a4698de1c155cd2d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e05a8f4c3ab1cdd98219c25d5f4873ee","guid":"bfdfe7dc352907fc980b868725387e9856d7d791ed4c3f33bf93b99f633415e0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bef3fcf081bb4aaaca42b4ce763de2ae","guid":"bfdfe7dc352907fc980b868725387e984be87f2ef2291528176099729fd83486"},{"fileReference":"bfdfe7dc352907fc980b868725387e9884465bf93503b248da3fd7d58a68948e","guid":"bfdfe7dc352907fc980b868725387e98d3bd4d96bdb54d290e9ccde58c6cf362"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d71d657c4d31e5f1cec4cd3dde1e2926","guid":"bfdfe7dc352907fc980b868725387e98582f314bf2b94ac293c676e25ac24772"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d01faf6cccb842cd5e40c9d5dbe95e0b","guid":"bfdfe7dc352907fc980b868725387e9844907fad2e04e3443e21fc6c9d9bea36"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dda7c9baeff83b692c721aadced86ac3","guid":"bfdfe7dc352907fc980b868725387e98796255121bfe2f88488694859656d429"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fef95b4684f1fa67415da1736db761f1","guid":"bfdfe7dc352907fc980b868725387e9859312a386af7ec6d14efa809281a7f0f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e2afa69cc0a6bd3f083c8f75a38eef97","guid":"bfdfe7dc352907fc980b868725387e98b99245b8674ff10f143e0b6a1b176b29"},{"fileReference":"bfdfe7dc352907fc980b868725387e984690dae85acf36b5ed4d8e7dd9a7c7f3","guid":"bfdfe7dc352907fc980b868725387e98dfd94ee467709912b8ae750479b3bff9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d157abb309ec19acca25aaf0545cdc31","guid":"bfdfe7dc352907fc980b868725387e987a815714d24bc3acdd946bbf8c6a3299"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ee867a362eb3fd01aeb93d1eb1ded04f","guid":"bfdfe7dc352907fc980b868725387e980af5af1e145283aff6f5c4dc947f53ea"},{"fileReference":"bfdfe7dc352907fc980b868725387e9896a88b1714c961887c04679b4a03ab0d","guid":"bfdfe7dc352907fc980b868725387e98251123c93ded6872847bf457e73b684b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fbdac33087fee2ee228a6e702cedaee4","guid":"bfdfe7dc352907fc980b868725387e98d0aab92528e0cde879af81762d5f0508"},{"fileReference":"bfdfe7dc352907fc980b868725387e987fa9a0519442d130a01e18d222037416","guid":"bfdfe7dc352907fc980b868725387e9808eaef87a66b069cbf39e8a0f9ae5c29"},{"fileReference":"bfdfe7dc352907fc980b868725387e9801e5d3df33e38fa92f8c343db8eebe75","guid":"bfdfe7dc352907fc980b868725387e983e251fbeaf357c81cf7950f71c5bd62c"},{"fileReference":"bfdfe7dc352907fc980b868725387e987e5da6ed9183fb30a24b3e179f0faa1e","guid":"bfdfe7dc352907fc980b868725387e989a77e0540f83c3fb7b540047fef623fd"},{"fileReference":"bfdfe7dc352907fc980b868725387e983f56fe3b8dbecceddee43dad75d1aef6","guid":"bfdfe7dc352907fc980b868725387e98726f56cf9b837324714ae24ffb0648fb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dbba97682a3bb0435661f8a2cf4a79c6","guid":"bfdfe7dc352907fc980b868725387e98947ab37e776ac22eae03ea60e883b47d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ea8354ad642dc286102e76aaadd7d69c","guid":"bfdfe7dc352907fc980b868725387e9855213cf078fafe0c0daccfad7cd69a85"},{"fileReference":"bfdfe7dc352907fc980b868725387e98929e58db5eb586e37c00dbe646cb99c2","guid":"bfdfe7dc352907fc980b868725387e98d8511f4715213121d05b37f779b419e8"},{"fileReference":"bfdfe7dc352907fc980b868725387e9813ff833a03cbd0b820b900716da0e25f","guid":"bfdfe7dc352907fc980b868725387e98d34321ef123b15aec00b453c58ef07e4"},{"fileReference":"bfdfe7dc352907fc980b868725387e985614fa24f22170130d1cdb1f3f01d878","guid":"bfdfe7dc352907fc980b868725387e9881b3ee5108396cc393cbe5bb5c8378df"},{"fileReference":"bfdfe7dc352907fc980b868725387e988ba31a11924835e8f07eea76182a602e","guid":"bfdfe7dc352907fc980b868725387e989218605a3fbe0e44b7b4eead018b1a16"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c9e45e4c03c0971640baaad83a710812","guid":"bfdfe7dc352907fc980b868725387e98c29c960d3541219b72d2e0c5e7c338ce"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a50d1f563b2b00713839104fc4226834","guid":"bfdfe7dc352907fc980b868725387e98285e57816b1cd8549b2a32f68a6f0e83"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cb7e29d7695a875e2a38b5c05ced6b99","guid":"bfdfe7dc352907fc980b868725387e98f0e3090990c69f5e08e18e0775228a16"},{"fileReference":"bfdfe7dc352907fc980b868725387e9867e1c0245cf1f3c0ba019d0d10f851b0","guid":"bfdfe7dc352907fc980b868725387e983e8109f99c3bdd915e313e8166a91171"},{"fileReference":"bfdfe7dc352907fc980b868725387e986211c468a0ab49137d18f544fb1a8166","guid":"bfdfe7dc352907fc980b868725387e98ce5df3915b0eb370fe8ee62fa679bc1c"},{"fileReference":"bfdfe7dc352907fc980b868725387e988f4e2a05a0701c266f5ac450dcb670f3","guid":"bfdfe7dc352907fc980b868725387e98c30ad678d6c314449ea417bfa910d32a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bcef6678170b9b382b95c8a3a88b091d","guid":"bfdfe7dc352907fc980b868725387e98825662c09828fd616f3b76d13be6bbac"},{"fileReference":"bfdfe7dc352907fc980b868725387e980b8812f111301455970a918b300d2ff9","guid":"bfdfe7dc352907fc980b868725387e982c3369107371637edbe5b7e2653d7872"},{"fileReference":"bfdfe7dc352907fc980b868725387e98079885c1f1fb834a175e5ae24a9bd454","guid":"bfdfe7dc352907fc980b868725387e98fe8632f689d7216dc5a7fc3633c669ae"},{"fileReference":"bfdfe7dc352907fc980b868725387e986f727ca98c64e5dc5365ce0d7927232c","guid":"bfdfe7dc352907fc980b868725387e9811a7a1f8724c5cee4c19f2c68274eea9"},{"fileReference":"bfdfe7dc352907fc980b868725387e989b11644cafb5c3f557da962bc5c06907","guid":"bfdfe7dc352907fc980b868725387e988b343ee7892e9735eff844dc5e17622a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98055b98cd1b8b60a5be2ac74ba8c04999","guid":"bfdfe7dc352907fc980b868725387e98f265ba16f7fa5511a1cc90d9224527b5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b70cbc0354add953b164ed28d2246a63","guid":"bfdfe7dc352907fc980b868725387e98c3ba5ef657eed2c7bba45f7789368af9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ffc10ae13d072d89c802b2ee5cc0f319","guid":"bfdfe7dc352907fc980b868725387e981cbddaeb3b8f9b0246d60b3faff95183"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fe01da6023f46e207576c69486b517ed","guid":"bfdfe7dc352907fc980b868725387e9883485a953fe416cc2268ae945d4e5818"},{"fileReference":"bfdfe7dc352907fc980b868725387e984b9841b97c7347a3677259cca1e6bdfc","guid":"bfdfe7dc352907fc980b868725387e988ae6931db976087db18690303332a571"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e6996a04f3f24938f009e02359d836be","guid":"bfdfe7dc352907fc980b868725387e985ba177cd0c565d3738a0835bfcc08e05"},{"fileReference":"bfdfe7dc352907fc980b868725387e980978bc5d55115f14267dff903e60af84","guid":"bfdfe7dc352907fc980b868725387e986538dc7add8616ed310ec9eae2d95405"},{"fileReference":"bfdfe7dc352907fc980b868725387e98498178a2df4ead1bf2b60fb084b714dc","guid":"bfdfe7dc352907fc980b868725387e98e02b1e044003a406b26ee9f7b461f532"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e9d394c94e9e60b3410b31530add5c64","guid":"bfdfe7dc352907fc980b868725387e988b3b94c097ceb19e1e5d1fcc9fb5c0d2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98df7bcbe6916b6f5cbeff242a4a5e41d3","guid":"bfdfe7dc352907fc980b868725387e9862eb294fb12f950fba2b3750c5fd4d7d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c7cea9ef95fa15ae2dfe1d908260b779","guid":"bfdfe7dc352907fc980b868725387e984fab2a2111362a44271c3625234e5606","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e985b5cef02179a2e5ec21399b757008dba","guid":"bfdfe7dc352907fc980b868725387e9802882318f02043f292db855d0fbe4040","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981b50485d47531a300a879f5bfa86087b","guid":"bfdfe7dc352907fc980b868725387e98b468c1bb6a607d488bc77650e054670b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e29b5b93b6a08249efc2bc247892da37","guid":"bfdfe7dc352907fc980b868725387e98ac2a29473d613c98b00d81ec53a0443a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f75cc42af1356796a070894efa19e469","guid":"bfdfe7dc352907fc980b868725387e98a9a260006b0bab9871e8a82a9cbe52c1"},{"fileReference":"bfdfe7dc352907fc980b868725387e980c936765177999f43e273c4cb28b0351","guid":"bfdfe7dc352907fc980b868725387e9836be3d6e82cb51d2447d888075310e06","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98834afb186b1c8e1711e861ed44d530de","guid":"bfdfe7dc352907fc980b868725387e98646e207084022e7c6940a450c907b6d4"},{"fileReference":"bfdfe7dc352907fc980b868725387e9865c58c0408fa063954c1ac16cf962d4c","guid":"bfdfe7dc352907fc980b868725387e980ce7c6ed8c3c6a21546b995cb5900981"},{"fileReference":"bfdfe7dc352907fc980b868725387e9857b8d47ccc6dfb43ffc994a81d7db358","guid":"bfdfe7dc352907fc980b868725387e98f4c15edf85a96a00e42623042af8fa1e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ef041884f75f236149411f98e1a2fcf5","guid":"bfdfe7dc352907fc980b868725387e987affd183498596e17b3f396529965896"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d35d930aa5581bf7ae5ac425748f0cdc","guid":"bfdfe7dc352907fc980b868725387e98ed3edd74927428e2769766865f93193e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b317b31ac6a1ace7173e63cf0607ef73","guid":"bfdfe7dc352907fc980b868725387e98d7400cd9fe6a209393c19a107aad3ca6"},{"fileReference":"bfdfe7dc352907fc980b868725387e9857bb05fdd450bacb91a19efc62592219","guid":"bfdfe7dc352907fc980b868725387e983edc3e1e3057b6397f0206fde1003011"},{"fileReference":"bfdfe7dc352907fc980b868725387e984dd76e32df854e90fe973309f2dccb1d","guid":"bfdfe7dc352907fc980b868725387e98fa6385001bd900fef3a5e3d274319722"},{"fileReference":"bfdfe7dc352907fc980b868725387e9838a316c2a52505b90e2ab955b2e32ee2","guid":"bfdfe7dc352907fc980b868725387e98d2d6ac21957550084af93f32d2e878a6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d081f6d07a0efc2fe4eea107183c569c","guid":"bfdfe7dc352907fc980b868725387e9870396e4de118a9c52737a31104417382"},{"fileReference":"bfdfe7dc352907fc980b868725387e986222e01d4bf5b04d87ebb4dcea2e314a","guid":"bfdfe7dc352907fc980b868725387e98e758757a97532018faec1cff462bc699"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a47267f748e8255575fa13fd5b8d0479","guid":"bfdfe7dc352907fc980b868725387e98d37b4df8444aecd3c5fd761780c266b6"},{"fileReference":"bfdfe7dc352907fc980b868725387e9803e781c48f2c7461e07d8d0e919946a8","guid":"bfdfe7dc352907fc980b868725387e98f6c9eae62b002fef040601a16633181a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e5c9daf28d92783533cfd8ae2ac94f1f","guid":"bfdfe7dc352907fc980b868725387e983cf5ee4ba38f8534167aa4d8ae35cd93","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d80cb6c50eb58766e38175f6edbec141","guid":"bfdfe7dc352907fc980b868725387e98dd8df41a82c490ffdff6606eb9caae6a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c739dee204526d9e9e154aa3f5516af1","guid":"bfdfe7dc352907fc980b868725387e98c11fdb8b624a1bf9331c1d643621d5a3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f60c99c7bdd6a6ed1d7f5d20f86043bd","guid":"bfdfe7dc352907fc980b868725387e981be65bb02173b6c2eb1ec72128b4f80c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e980e53fce71fe3eaf0ab47b29d26756e28","guid":"bfdfe7dc352907fc980b868725387e98adfd6263506c192798c864bb46a5fe4d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9865fe4f53ba6de5e639314e18ccca3e72","guid":"bfdfe7dc352907fc980b868725387e980c71fcbf364295e1d25d97a0b5bb026d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98506577b14c36564f8d3e39b38a42d61c","guid":"bfdfe7dc352907fc980b868725387e98322f225c28797c40aa3f930ecf288718","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98069c9d0092825cca02327a0139525db2","guid":"bfdfe7dc352907fc980b868725387e98b1136a8c41a11ecec325723a845fa2e8","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e982f122facb74c38437f6f5e10a9d6f7f4","guid":"bfdfe7dc352907fc980b868725387e98c125ebd5c16393f34b17562c1d3c8524"},{"fileReference":"bfdfe7dc352907fc980b868725387e982f513f8c50fd63740d376cba01b03a10","guid":"bfdfe7dc352907fc980b868725387e98cf459668c3593814facb01b1acc54f9b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9863a7bfc18485d8e1543480a6a94c66f6","guid":"bfdfe7dc352907fc980b868725387e9880c68fa2236d8e1fe66946ecdea83143"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a692946265a018ffc98504b1feabf1f9","guid":"bfdfe7dc352907fc980b868725387e9886495135cb63f7c147a54084d387d05d"},{"fileReference":"bfdfe7dc352907fc980b868725387e987b085cff51d4381c1c2453552e3d3afd","guid":"bfdfe7dc352907fc980b868725387e98f990fab93c0617b275297365c3dc0103"},{"fileReference":"bfdfe7dc352907fc980b868725387e985d642455cbe051486bf01045313b494f","guid":"bfdfe7dc352907fc980b868725387e987f3db0b89b4f721e3dd203116c5ced8e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b19ccc40cc61e567dff3a010a7ceaf54","guid":"bfdfe7dc352907fc980b868725387e98483cfa3bce33ebffdabc32d89f1709d4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98caa691478b1a2bcb70ddfefa95c1bf8d","guid":"bfdfe7dc352907fc980b868725387e98654aafd918829b636c538110f6d3a935","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e987f4f88b40429c118e8b4e2e33cea1f98","guid":"bfdfe7dc352907fc980b868725387e980d8fbd8f63664fa8d7d6fdf952748e13","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b764de445b2c15214bd8acdcf4abe3b2","guid":"bfdfe7dc352907fc980b868725387e98cc5499c70b9954fb46b0528914e13708"},{"fileReference":"bfdfe7dc352907fc980b868725387e988c9e757c170d0af9c94c18b8e22de510","guid":"bfdfe7dc352907fc980b868725387e98a12ce07948a4db4c405578ae76d48469","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98971296ea46a5df991da9fbd684175fea","guid":"bfdfe7dc352907fc980b868725387e98abbf1bc1e9ab0351b3c611f012c07384"},{"fileReference":"bfdfe7dc352907fc980b868725387e984ba1390d085a0075e6b441c5b1508777","guid":"bfdfe7dc352907fc980b868725387e98a73bfc2df0e0f44d7c03862ec1252e53","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d9cd56124568201248771afaad5d9f1f","guid":"bfdfe7dc352907fc980b868725387e98af5610365c778e2bfb5f6a88b910f169"},{"fileReference":"bfdfe7dc352907fc980b868725387e98812ace5be8b18efb39c6bc9e08f15791","guid":"bfdfe7dc352907fc980b868725387e981cfc896af520e9bafc6789ca7c89e714"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d5bf77fa6bfe05ece285c3505cf16fa8","guid":"bfdfe7dc352907fc980b868725387e984949c111b41ef771ad3f6abe4442d33e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ae8a62c0b6953ec0a581401b26edc338","guid":"bfdfe7dc352907fc980b868725387e984690779c19756a242cb3dc96e2a10db9"},{"fileReference":"bfdfe7dc352907fc980b868725387e9884fafdae13ea04ed7ef3a16fddc69566","guid":"bfdfe7dc352907fc980b868725387e98d1d00633332d70e018ef1364175c7904"},{"fileReference":"bfdfe7dc352907fc980b868725387e98daa24ff78a41723a285529e36dee5200","guid":"bfdfe7dc352907fc980b868725387e98411ab8c852029ca36e22074e24461bc8","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9863f21861c3f13a20bbbee5fd17fa4843","guid":"bfdfe7dc352907fc980b868725387e98f2310fd48b353417e6ed04f60bc71f49"},{"fileReference":"bfdfe7dc352907fc980b868725387e98466f1556ad2b2c1b1e27c482c7970fca","guid":"bfdfe7dc352907fc980b868725387e98ed2bf52cefa6266a0934ada724c4a007"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e71febfb709c5cc4bfdd8ebb3bf5c69c","guid":"bfdfe7dc352907fc980b868725387e983ee6813a3b92fa969eee99a401d715e6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c0baeea9bd4614c94562949f334f76d6","guid":"bfdfe7dc352907fc980b868725387e98a59b0383bc26cea1c19cff0250e08572"},{"fileReference":"bfdfe7dc352907fc980b868725387e9858f188e1c28a98bcca4608b51388c9ec","guid":"bfdfe7dc352907fc980b868725387e98641f859d3bd65f4853bf70912bd880a8"},{"fileReference":"bfdfe7dc352907fc980b868725387e985291a134dc13aaec907ab0dafdcbd12b","guid":"bfdfe7dc352907fc980b868725387e9871d06c2060b794214ff186e152b42d87"},{"fileReference":"bfdfe7dc352907fc980b868725387e9828e6721efda94d26dc4a3a49cbdf0cc1","guid":"bfdfe7dc352907fc980b868725387e98d454b73940447277ad5d6d2361867538"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bc78f9214650ab25a58a147ceefe10f4","guid":"bfdfe7dc352907fc980b868725387e983c99687a91862ff6e71586a9829b3bb2"},{"fileReference":"bfdfe7dc352907fc980b868725387e9898fa93add48cfeb7285c0a8c03c50a78","guid":"bfdfe7dc352907fc980b868725387e981b24cb7d481a9f38b6c00c53f9aafaf1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98091002a9a049f0cb1149d45123e3de26","guid":"bfdfe7dc352907fc980b868725387e98615e6f4e7d130d2b99877fc8f45c15a2"},{"fileReference":"bfdfe7dc352907fc980b868725387e9866746bfb1b0e59cb483ed26dd432bdea","guid":"bfdfe7dc352907fc980b868725387e98a4073b8d98d9679ead47369cc725384d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98138aafe2b2d0eb3d00b18c99c389f742","guid":"bfdfe7dc352907fc980b868725387e98f479e067799fab6c4843d90b3e08fb34"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fa2883119bf8c3e9ab2c374ce34623ca","guid":"bfdfe7dc352907fc980b868725387e98b63b16b59ec59e12cdf367e5d58b71ef"},{"fileReference":"bfdfe7dc352907fc980b868725387e984e5feec70c29af392596ab5526c744f4","guid":"bfdfe7dc352907fc980b868725387e98941d942257b4eb8552312c2b12624417","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98539761fbe83518f42eea4c89b3bd0c3b","guid":"bfdfe7dc352907fc980b868725387e98513625d4a588687c72422ad578b5a6b2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dc96683fd6fa1284c0b7de46daab2073","guid":"bfdfe7dc352907fc980b868725387e98d48557f31201db903a05453544f299ab","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e984c11ff8741b2abffd293f1f9e250d860","guid":"bfdfe7dc352907fc980b868725387e98c5b3d175f615f0a4b781704b73be242c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d563adcc5a84f3530e2dd7c1259dcec4","guid":"bfdfe7dc352907fc980b868725387e986ddb2f8e40131d4712ef5c4daefed5ac","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9845b9f4faf6e50d942f3cae0ad32f57b5","guid":"bfdfe7dc352907fc980b868725387e9892a324e773f7b4cd5863f4787116e31c"},{"fileReference":"bfdfe7dc352907fc980b868725387e9802cf107443da5c9a87121b7cacf15ece","guid":"bfdfe7dc352907fc980b868725387e98a3e8ac53cd3fd708756909bb4e15f5c1"},{"fileReference":"bfdfe7dc352907fc980b868725387e986663a27e54653db952dea795ea17f8ae","guid":"bfdfe7dc352907fc980b868725387e98cb0eb40f9ed99714aa8da2bc4c23929f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e2d60e2124035c589d7bf7f708b43c46","guid":"bfdfe7dc352907fc980b868725387e98beabd1f65e5b1ef4a58eb7edf2446710"},{"fileReference":"bfdfe7dc352907fc980b868725387e984590b15d1af5896ff70081a71c05ca5f","guid":"bfdfe7dc352907fc980b868725387e98234fcf7606ff2ec9cec6dcf7e9f7e663"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ff7d30305cc39c1392c25c37536d4a22","guid":"bfdfe7dc352907fc980b868725387e982b5c991aede480c71f7f1f2a7a5bf265"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ad1e98c90f2f5197a2ae257449f18299","guid":"bfdfe7dc352907fc980b868725387e988044e872cd42b1c000b617ab5515282a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98597a7c103db94d59c5931aca5763d128","guid":"bfdfe7dc352907fc980b868725387e98580ad76ff0502b23bfea931b2b3facf9"},{"fileReference":"bfdfe7dc352907fc980b868725387e984ff4a3442437cbfe9c5eb889db8fd4c5","guid":"bfdfe7dc352907fc980b868725387e9883e6098a35fdfab75effd7d7cd58a39f"},{"fileReference":"bfdfe7dc352907fc980b868725387e983e2f3db4071053bff76e50cca051600a","guid":"bfdfe7dc352907fc980b868725387e98a8184037b300c9abfd20f4d8e463718f"},{"fileReference":"bfdfe7dc352907fc980b868725387e9842e4fd7e9e31d6020d7139c3792aacdd","guid":"bfdfe7dc352907fc980b868725387e983c505710c22ea492b2235eec06319bc9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ac6fd977b49204b4c108523c3f3c70c7","guid":"bfdfe7dc352907fc980b868725387e98f76da812200cdcc27853723339275d4c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988b0e2f0b45736f8dc7bd0df694ade0db","guid":"bfdfe7dc352907fc980b868725387e9857a53d361ae58f173f6836f0d2565640"},{"fileReference":"bfdfe7dc352907fc980b868725387e983d1acad953bcf648389534c3903cf9ef","guid":"bfdfe7dc352907fc980b868725387e9833168c128f44614332e8900b3e352a76"},{"fileReference":"bfdfe7dc352907fc980b868725387e9881a0b274ac195e0e067c598e51612d0e","guid":"bfdfe7dc352907fc980b868725387e98981260fbd5ccfddcce9b61ea40bcf2e7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98017f9ac1330413942c21c8cac2f9ce62","guid":"bfdfe7dc352907fc980b868725387e98113fb7c98e58c2a53bd5f1fd411d7e7c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b1879e47078f969f206271009cc73784","guid":"bfdfe7dc352907fc980b868725387e98ff06e55d0b49178fdccf0e48badd85e0"},{"fileReference":"bfdfe7dc352907fc980b868725387e980c1894dfaacfa039d9f1ece64fffa728","guid":"bfdfe7dc352907fc980b868725387e98ebf2a04bf5b3fa9b8494ffd779c7862a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e595f78a3052c265d4d6b376ad0c009b","guid":"bfdfe7dc352907fc980b868725387e98ab550364a5451e7938d2aa38c6694cce"},{"fileReference":"bfdfe7dc352907fc980b868725387e987e383203e79798a6ebe7e15dc590fc45","guid":"bfdfe7dc352907fc980b868725387e981d9ff1ed9ce95db88fe05ce7dfc9b78d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a2c923ddd593b798c3506538524c3936","guid":"bfdfe7dc352907fc980b868725387e98e56fc3bce788c3a8f5ed7259be3550a4","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988e606e06ed46012b1c0a7ca50f6a1ee2","guid":"bfdfe7dc352907fc980b868725387e987148ed96368ba46273c315792bdf591f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a70709622d04b30e5d08b5f40ddf1ec3","guid":"bfdfe7dc352907fc980b868725387e9818e3ae4766b3863c502c7f6d343ce7d3"},{"fileReference":"bfdfe7dc352907fc980b868725387e987116654ce66e1982023b20ca5c98551a","guid":"bfdfe7dc352907fc980b868725387e98c1b2ba0afc7ac6439197978a448928d3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98acdbfaf78cbd44846c589f8345fdf54b","guid":"bfdfe7dc352907fc980b868725387e9832be80ec0b185909e741a3450dfd641a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9892fa1092dd5b2d9171b1ff902fb8d8ab","guid":"bfdfe7dc352907fc980b868725387e9854302d00817b373958b10c1cb23fc7d4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ac5479fd5bce7d8e7580d3b5a361af85","guid":"bfdfe7dc352907fc980b868725387e98956b9a71f4b3980f5270c0dc99bb1192"},{"fileReference":"bfdfe7dc352907fc980b868725387e986d1a75c67178655a75da0988a12a00ed","guid":"bfdfe7dc352907fc980b868725387e98954a8a026b71632689a8cc0a206c0d15"},{"fileReference":"bfdfe7dc352907fc980b868725387e981651764b0322736536e9a00043990477","guid":"bfdfe7dc352907fc980b868725387e9858b34c8ecefb9e92a9382b78732f325c"},{"fileReference":"bfdfe7dc352907fc980b868725387e980eb79846ad696a55c4f81c216a8c3506","guid":"bfdfe7dc352907fc980b868725387e98aa947210299088eaafc7a34a7fc7fba6"},{"fileReference":"bfdfe7dc352907fc980b868725387e986e3d902f917d0802e980fbc70d9d9003","guid":"bfdfe7dc352907fc980b868725387e98999bf1f0d9aefa40de6cd80fe222fd87"},{"fileReference":"bfdfe7dc352907fc980b868725387e9874c57e03b15d112af948ceec60da3149","guid":"bfdfe7dc352907fc980b868725387e987e83fa30ea1e49d0324c07922ac27fb0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98036710a4968117e0f1ffd0a82de1c734","guid":"bfdfe7dc352907fc980b868725387e98dcbd447de4e50d7802ca06a2e6f3132e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98985f6ca335afd2ff66e4c578e83ffdc7","guid":"bfdfe7dc352907fc980b868725387e98b021506ff09cef863a00f3b411e26f7e"},{"fileReference":"bfdfe7dc352907fc980b868725387e984717140214e0fc6b7c0f44beb2f6e072","guid":"bfdfe7dc352907fc980b868725387e981299ab628cc8bef2efc4cf7ce1c880e6"},{"fileReference":"bfdfe7dc352907fc980b868725387e9838b78bff7ae2609ed38b167db38cc35f","guid":"bfdfe7dc352907fc980b868725387e981b3d99cf6e240f631f4b8745040b25ab"},{"fileReference":"bfdfe7dc352907fc980b868725387e9899950d309ca080ad6f60aec3273bcfff","guid":"bfdfe7dc352907fc980b868725387e98b94c81377ba707c31f8fb93e029f2a9e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a5538ebf4b5fb0decc3ac06095a24f73","guid":"bfdfe7dc352907fc980b868725387e980b60e038540d4cd504e2ed73816c92f9"},{"fileReference":"bfdfe7dc352907fc980b868725387e9842589c6a43fc80d2bb905f8f8b302d1b","guid":"bfdfe7dc352907fc980b868725387e9869b171b1f2ad167431296790b5b2e742"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c8e233a7b519b78007ccd3b875621993","guid":"bfdfe7dc352907fc980b868725387e9829efe8c9434842843802423c02d87140"},{"fileReference":"bfdfe7dc352907fc980b868725387e985a2a9f05a793caf2b07babd7e4cc01fd","guid":"bfdfe7dc352907fc980b868725387e988f83315c800396b31bab0f3c19c135d1"},{"fileReference":"bfdfe7dc352907fc980b868725387e9851b47854ea0cdafe7ed307142d71f09d","guid":"bfdfe7dc352907fc980b868725387e9827c9ebb56834daebcf3063fd052894a7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d9f41df844ef5c7a313cdc78e9f9e692","guid":"bfdfe7dc352907fc980b868725387e98a96a82f8f530785d6edd01e34a3d8701"},{"fileReference":"bfdfe7dc352907fc980b868725387e983c69801b379d906a546ddf2407ea03bd","guid":"bfdfe7dc352907fc980b868725387e9891417c2cbd5cbf2c148913b043a67c42","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e680e7df6c0003d7bb314d42a51904c9","guid":"bfdfe7dc352907fc980b868725387e989988adfcded312698cb7a9208f53d87e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d7c2c4f012d74beeb04e5c3525d09676","guid":"bfdfe7dc352907fc980b868725387e98ce56cf869f0ba118bd66f5d74e8ee8aa"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f0af5d51b670c53b235ff6b13ea2b0fd","guid":"bfdfe7dc352907fc980b868725387e98e55540981f61d7d9e112c5cb83b62a63"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ea3a7dcbc2872c021c2f9976e79eacef","guid":"bfdfe7dc352907fc980b868725387e98fa632c78fdff878b3334c49dfe6d5008"},{"fileReference":"bfdfe7dc352907fc980b868725387e982ecd037a4c8497285ea669105f9f3282","guid":"bfdfe7dc352907fc980b868725387e98c09ffabe18e6ae93478c3ebf4f7a147e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b43dea0da7d4ec507e53a7393b85545a","guid":"bfdfe7dc352907fc980b868725387e9884c197c01289375365d7a089745f5a59","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983ee75e71b8fde2c3180da3b2347ae1bf","guid":"bfdfe7dc352907fc980b868725387e9875ef38ae059b4031337a2d058515720a"},{"fileReference":"bfdfe7dc352907fc980b868725387e988f9b7af96715f64db7fae5e125938ccc","guid":"bfdfe7dc352907fc980b868725387e9858449fe900f0e006689928d708326b45"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fdcf17f7bfb7fc88e45da7cdcb6d459d","guid":"bfdfe7dc352907fc980b868725387e983fcd9feac61e07858a78211a61e4b73b"},{"fileReference":"bfdfe7dc352907fc980b868725387e986da9c5d127c5a70054c0886f538462cf","guid":"bfdfe7dc352907fc980b868725387e98a919a4befe5343536e8b91f74c7ddf73","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c4361fe1544b4865d0e94f860a93be79","guid":"bfdfe7dc352907fc980b868725387e98279309b8f78ca7e9d659442b41c8d23b"},{"fileReference":"bfdfe7dc352907fc980b868725387e9806c11f5366472efd841db07495cc2f4f","guid":"bfdfe7dc352907fc980b868725387e98d114d18ba6c55fdabab5958beaa09a30","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98884de1e2e0fdf26e430b546fd4dd509a","guid":"bfdfe7dc352907fc980b868725387e982462bc4e5432892b2302a678199d4aa9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ca8fd7ffdfbab77065039448eea9fe72","guid":"bfdfe7dc352907fc980b868725387e9808da1ce0a5b8593022c37f48deef4084"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cf3b14176e958d526386484802388edc","guid":"bfdfe7dc352907fc980b868725387e9844c55443388e23481f8abbf2c77ea1de"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b19ff3ec6b179b2f6ac00cbeeba5960c","guid":"bfdfe7dc352907fc980b868725387e98af5dc26335118b25d07dec9df3cced46","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988871761b6529ef88558e2a14a158df5e","guid":"bfdfe7dc352907fc980b868725387e986eaaa57584c29da197142c1ddf3b1d29"},{"fileReference":"bfdfe7dc352907fc980b868725387e981fe62c74d7c7d3dbbd29cd1385b73c6b","guid":"bfdfe7dc352907fc980b868725387e98bd0be5393424f09c1fd3c3fd734c088e"},{"fileReference":"bfdfe7dc352907fc980b868725387e985992e829ca1afa7024f5f494d6d8f713","guid":"bfdfe7dc352907fc980b868725387e989d4d3f88b0845cde9235f08c80cce387","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e40513cc03bb1527761ca47839a291b5","guid":"bfdfe7dc352907fc980b868725387e98a97fb023117b5ef1af63a764a740dfc6"},{"fileReference":"bfdfe7dc352907fc980b868725387e980107f0efe4c3df3a4bbf5aebb573f069","guid":"bfdfe7dc352907fc980b868725387e98a1af4c13c83a37be4de40aec5d791fcc"},{"fileReference":"bfdfe7dc352907fc980b868725387e98413dc8327e326088a227e60c802d91ad","guid":"bfdfe7dc352907fc980b868725387e9866ccc2e09172da43f9eb6d97b7aa9c4e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98af98fbdf9e9130a7b5cd2cfd4f1a4039","guid":"bfdfe7dc352907fc980b868725387e9825e619f54758376f00383b812b8e90b0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98619340217942e748fea20ba974e40df2","guid":"bfdfe7dc352907fc980b868725387e98f12e9d888bd26b37d5ba165921d71001"},{"fileReference":"bfdfe7dc352907fc980b868725387e981e36474d33b7f7330da5879ec9e550cc","guid":"bfdfe7dc352907fc980b868725387e984cd2bacd7640b3daf0017b486a978a1c"},{"fileReference":"bfdfe7dc352907fc980b868725387e9803324e436362ee0326b17370d1b57d5f","guid":"bfdfe7dc352907fc980b868725387e986cfea9b4d5508be7cac3b3f514649e80"},{"fileReference":"bfdfe7dc352907fc980b868725387e981af4586b7cd8a61732796dc0004020bc","guid":"bfdfe7dc352907fc980b868725387e98cb37c2a9adb007a204cd570defd1b028","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a6ab4191ca170eb3fcc7d76be8edb69a","guid":"bfdfe7dc352907fc980b868725387e982cdffc5c7f045ddc9f099eaa11dfd6b4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d3a4be1c93971b161f45c446a268a925","guid":"bfdfe7dc352907fc980b868725387e987b7320e69b48efa5caa8967edcbb972b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c09c91592fdb1e94366f921af7a6b9e6","guid":"bfdfe7dc352907fc980b868725387e98f30d3c8ffaafadffc49a189760459bf1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98501d80ee39d5fb913b610b95ded6dd12","guid":"bfdfe7dc352907fc980b868725387e983fca7c268ca441a67741e249edeed892"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c0dc0d31983c9f5699f97a7c86b819be","guid":"bfdfe7dc352907fc980b868725387e98a6460a3f97f02d3b0f54a863fecf5e64"},{"fileReference":"bfdfe7dc352907fc980b868725387e989be8d7f7a4b7a88d0396418f21922242","guid":"bfdfe7dc352907fc980b868725387e984668bc5cc317b885d6dc8f96cb4e793b"},{"fileReference":"bfdfe7dc352907fc980b868725387e985a843ae229dd393d05abc3924d912060","guid":"bfdfe7dc352907fc980b868725387e98558e0cda48f2297818a8ff4d87f5c94e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fb81caa2ec05caf4d64055db20cbfb3d","guid":"bfdfe7dc352907fc980b868725387e9814e78edd6d3b2f006f419e6735029b05"},{"fileReference":"bfdfe7dc352907fc980b868725387e983dd3ffd91931063c6e0f40772ee04bf2","guid":"bfdfe7dc352907fc980b868725387e984fcdfe0314e60fd26472a3a16074c480"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f2c3f3b65118fd296209db65016c46e6","guid":"bfdfe7dc352907fc980b868725387e985fb6f8660a1b0860a387f8cbe69aba99","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cfe67ce25f058a66fd161993626700d6","guid":"bfdfe7dc352907fc980b868725387e980e4df7ff83eb4b01a156b47acb497bd6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98138f6742f27f2df9abc08de74c101a84","guid":"bfdfe7dc352907fc980b868725387e9808e028caadf52b4fa55851257b48830d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e987c745be9c34e9fb3d6df387589f347a3","guid":"bfdfe7dc352907fc980b868725387e98c60d56115182a07cb7d6aea1b2ddf4fe","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9816ae19f44f3378379d78a93555501e7b","guid":"bfdfe7dc352907fc980b868725387e98c5f97eafffd4551244cc704bfed54177"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ca41f42897b0d15b1a5349841f4ea171","guid":"bfdfe7dc352907fc980b868725387e986eae5bbb3009e85935c05306410a3e8c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98218a6bed289413cd1fa181e5e4a71993","guid":"bfdfe7dc352907fc980b868725387e9869c4e2ec156bf1ca3ecec20d94401f1f"},{"fileReference":"bfdfe7dc352907fc980b868725387e982eaa1d8d4452501ad8604dc0593b120a","guid":"bfdfe7dc352907fc980b868725387e9850380e5f0f74c694be08b3017dcde1f3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9816304fa37be1607fcb5c78294327a320","guid":"bfdfe7dc352907fc980b868725387e989912f064d2ca88aa30854000402adb28"},{"fileReference":"bfdfe7dc352907fc980b868725387e98423027e4a07dcdf3892d3b5e401fec6d","guid":"bfdfe7dc352907fc980b868725387e98d2f8f12f5a377976661ec290c41efcab"},{"fileReference":"bfdfe7dc352907fc980b868725387e987fcb3ac8423709d33718ccb3b992116c","guid":"bfdfe7dc352907fc980b868725387e98b9f578eaed6c017d76aaded49922daaf"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d118d4d6703b8936ff571cf5beb99f9e","guid":"bfdfe7dc352907fc980b868725387e98cca4b9b196b2b5b90e7dd6b42a488035"},{"fileReference":"bfdfe7dc352907fc980b868725387e989a528c359d4254b58c122c569d00a654","guid":"bfdfe7dc352907fc980b868725387e980c571883566f11bdc730394bd680fe4b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c81c2a2b455dd3e30a0325b70b87e5b1","guid":"bfdfe7dc352907fc980b868725387e9868f20baa017a0fb297e11efcfa27b99e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f690bf146f9505c3a561f5eb2cc88077","guid":"bfdfe7dc352907fc980b868725387e9803848197de79be89f340e76638daf490"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e945abe7731d81c5687528f8fb1dae17","guid":"bfdfe7dc352907fc980b868725387e98955ff6f32ad1d66943349e5e61f44b9b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98acdbef770b6f5194256e46b66af5a237","guid":"bfdfe7dc352907fc980b868725387e98a165aa592e137f5b6bb9e60bca623624"},{"fileReference":"bfdfe7dc352907fc980b868725387e982543bbef87d0c4cf2ffcaad132d58d03","guid":"bfdfe7dc352907fc980b868725387e988fd77ac4cf25ae168464818c09bb8b75","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e980d0473e5c442da9fa4261289c9928064","guid":"bfdfe7dc352907fc980b868725387e98d0871f702b675dce3e6b995a8aa5088f"},{"fileReference":"bfdfe7dc352907fc980b868725387e985846b2ab802d29550aec8ede32680275","guid":"bfdfe7dc352907fc980b868725387e98c4245c4d323ddcaf49812a8d55eccf65"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e1b49f63d0cd2853cb829e5a2918ffa5","guid":"bfdfe7dc352907fc980b868725387e98ddebfd377a8754ab7c924d048c13fd9f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b420b7a29b1f8f73c12c58c506c0c962","guid":"bfdfe7dc352907fc980b868725387e98fcf39ef5237937d5c0f3a73886ff5f28"},{"fileReference":"bfdfe7dc352907fc980b868725387e98814348841a9f4195a6a06992d4786767","guid":"bfdfe7dc352907fc980b868725387e98a91b0095a8a8137f6632ea944aeef9dd"},{"fileReference":"bfdfe7dc352907fc980b868725387e989874bdc2cfc5514095aa93b6576cc69f","guid":"bfdfe7dc352907fc980b868725387e98a892cbf90d76b88fb458a978c75f0dae"},{"fileReference":"bfdfe7dc352907fc980b868725387e9848e08d78a915c3c0f96a18053b3cf72a","guid":"bfdfe7dc352907fc980b868725387e987e6d7e2108cd5683a74a22468b897862"},{"fileReference":"bfdfe7dc352907fc980b868725387e985e5c988105a7519e5bc001c5349cfd42","guid":"bfdfe7dc352907fc980b868725387e984c84321b32f850222ee2dc5a63623809","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ae9c69fbbc7e9d0adc23720c86865e08","guid":"bfdfe7dc352907fc980b868725387e98a8cd5f87ee31f20a83225d935078b0d1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dd1cb0c2bf7a9ee2bb8b0a9915bef1cd","guid":"bfdfe7dc352907fc980b868725387e982c440114d7fbd9383d44eabc63082568"},{"fileReference":"bfdfe7dc352907fc980b868725387e98719d56d08b291e386d21a40f4eeaa427","guid":"bfdfe7dc352907fc980b868725387e98c66216a12b8a3989e0b02c32e65690e8"},{"fileReference":"bfdfe7dc352907fc980b868725387e982db3bdee5c4500abb4ab8d2757f1a033","guid":"bfdfe7dc352907fc980b868725387e983c25d471c93278aed5829cdfbcf2df1b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98baf55b500d4de58c3c849b1b81dac417","guid":"bfdfe7dc352907fc980b868725387e982cd959438825e6dd0fbd9da81bf92502"},{"fileReference":"bfdfe7dc352907fc980b868725387e9895854da8932cfe485ec330ba4318fd19","guid":"bfdfe7dc352907fc980b868725387e988746fe23102ed8818cec0e8775a1bbdc"},{"fileReference":"bfdfe7dc352907fc980b868725387e986a8f21fc3d8c58b4fe23445d2afc06df","guid":"bfdfe7dc352907fc980b868725387e98b82a90b73d6cbf56bfe8393d2330c0ad"},{"fileReference":"bfdfe7dc352907fc980b868725387e989791e8b223fc1633cd0d999951cb65de","guid":"bfdfe7dc352907fc980b868725387e98ac76eb0f78d5d9ed796b72efeb0fb860","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98de9940418fc7c9c959e3d63ffe1bbb95","guid":"bfdfe7dc352907fc980b868725387e983b2be181f2ff38a0faa940a0844894a0"},{"fileReference":"bfdfe7dc352907fc980b868725387e9820530460f1fcf996fad6f7cf439565dd","guid":"bfdfe7dc352907fc980b868725387e988744d02324b02bee7594ab10143d018a"},{"fileReference":"bfdfe7dc352907fc980b868725387e985e302b6c3557143cb800b1eeaf8bbab1","guid":"bfdfe7dc352907fc980b868725387e98c7e0eb461d9ba44c81cc13f5e8caa020"},{"fileReference":"bfdfe7dc352907fc980b868725387e98873fa1f52fe5f49dfa143f94033327a6","guid":"bfdfe7dc352907fc980b868725387e98f219ee60d13d95057e8691d96514f98e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98063109808ff5e9958a6c842cfc078daa","guid":"bfdfe7dc352907fc980b868725387e98469e92da1d4cab4d9ead5cb33ba7b7e1"},{"fileReference":"bfdfe7dc352907fc980b868725387e980f5cee24283df59b62d869f0bedf11ae","guid":"bfdfe7dc352907fc980b868725387e982c875b630fc12fc3e42bf795769bf213"},{"fileReference":"bfdfe7dc352907fc980b868725387e9870eb4ca5d72ee7a93da5a0ac1d648601","guid":"bfdfe7dc352907fc980b868725387e9885ea4cca9bff19ad3c1371d5b6774119"},{"fileReference":"bfdfe7dc352907fc980b868725387e983026ba2c9267ae9a0cb99064e7cfe3c8","guid":"bfdfe7dc352907fc980b868725387e98a3c382145ec6b0dc523c2225b8a3644f"},{"fileReference":"bfdfe7dc352907fc980b868725387e983e2c4a0d6c2271ca0a664f6524679065","guid":"bfdfe7dc352907fc980b868725387e98260ad327fc229e6671d984ade08d0373"},{"fileReference":"bfdfe7dc352907fc980b868725387e989021ec7d5feb08229f4274167a811495","guid":"bfdfe7dc352907fc980b868725387e987132fc818abc3e92e8172bb875300663"},{"fileReference":"bfdfe7dc352907fc980b868725387e981635393f4980a4dc1cc14f0ceeceeee1","guid":"bfdfe7dc352907fc980b868725387e989d8f89e4b605df3473cc692fd4f3b9ea"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cd26a7ec82684cb2832199caae5344e8","guid":"bfdfe7dc352907fc980b868725387e98eef1301f6a9aac089ec4d815efba8264"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aa70fe14ebba76913c505609c334ef03","guid":"bfdfe7dc352907fc980b868725387e982ebe1ddae4dd9a7d3bcca79037c5ed88"},{"fileReference":"bfdfe7dc352907fc980b868725387e98386d6ddd440f2cca52ba0f07993f9588","guid":"bfdfe7dc352907fc980b868725387e98c85db39b09a547a264ceb8e349cad083","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98358012f8d265eeb8266af58bd6d281c6","guid":"bfdfe7dc352907fc980b868725387e987248943419dbf3a3eeaa5befe7cd824c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9825667ccdd773fcbe6789376b16175be7","guid":"bfdfe7dc352907fc980b868725387e982b575e9b22f6a96d282bb408a720c65d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b680d3534840a16fcbde2e980b6dee18","guid":"bfdfe7dc352907fc980b868725387e98edb97d43e20d06f7374075298d15095c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988c759d1a37794e5f5c6c1d4661164bb2","guid":"bfdfe7dc352907fc980b868725387e98f150f5648b30e3dac2864f7c64e48cf2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e2a4251be2b7cd7a0f12415ae77dd21f","guid":"bfdfe7dc352907fc980b868725387e9828f7c8e75bc9367af4afce84d2816b8e"},{"fileReference":"bfdfe7dc352907fc980b868725387e9876eaa22d5340d067af63898c39e19e0e","guid":"bfdfe7dc352907fc980b868725387e9829f9662ef915115086dff66619662d4b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b32a3c9006493ed1307f8c0d12e55fd1","guid":"bfdfe7dc352907fc980b868725387e98a461a7e21cb95ed028ec2317f57126ca"},{"fileReference":"bfdfe7dc352907fc980b868725387e984b6c1e001c756b1db77fee28fb8970e1","guid":"bfdfe7dc352907fc980b868725387e98d4b2cf45d89cb21c3338a2a3f6b998c6"},{"fileReference":"bfdfe7dc352907fc980b868725387e9878ed6206138f76d0a62fd785687e17ca","guid":"bfdfe7dc352907fc980b868725387e989bc6063f67027383835d8784ca56330a"},{"fileReference":"bfdfe7dc352907fc980b868725387e987d9d58d36854589028e39fc775b62b7b","guid":"bfdfe7dc352907fc980b868725387e9806f7a601336d973e5f1196b358de79e3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98491832c2eb5a7b06393f399f374a229c","guid":"bfdfe7dc352907fc980b868725387e984f849076e8435f67951fce97845ad395","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e985f39d9985997760b85bdb42cd8b3d00b","guid":"bfdfe7dc352907fc980b868725387e9831bf59a46c8da34d04a859187d59647b"}],"guid":"bfdfe7dc352907fc980b868725387e986867f37dbddb6901b7b8e7134bb2c080","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98c71a31d51579058f76d7ce87557a87ac","guid":"bfdfe7dc352907fc980b868725387e980eb2c2d851ade24103f66ab742a36ce6"},{"fileReference":"bfdfe7dc352907fc980b868725387e981744f939b482e671c5891b4e5f6d6e8d","guid":"bfdfe7dc352907fc980b868725387e9879c1b000cd6fbd24f9745e01b910a312"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ad24d9cbd50724b065636d75c81fe412","guid":"bfdfe7dc352907fc980b868725387e98971b966a8b70561fd259eb82c0572e4f"},{"fileReference":"bfdfe7dc352907fc980b868725387e9898b0117632c487b9d1580f5edb1202a1","guid":"bfdfe7dc352907fc980b868725387e981e83a904b2b62ce252007068fd4a7d6b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98481870c26c2acc9731a73bb8bd1fe887","guid":"bfdfe7dc352907fc980b868725387e9828957fa5ce3eef5fe339f4f80fcf1061"},{"fileReference":"bfdfe7dc352907fc980b868725387e9824061a9a788e3426916e9bedb3045245","guid":"bfdfe7dc352907fc980b868725387e98151fa4e28630a341c83bb5310a45240d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bbd8ebbedac40941e0e327d1f27c6c6d","guid":"bfdfe7dc352907fc980b868725387e9808ab1b413b7a1161c6317fc66be89f73"},{"fileReference":"bfdfe7dc352907fc980b868725387e9886a155478a162b29a0ba0c860ec6f250","guid":"bfdfe7dc352907fc980b868725387e98424324134a2b88d3816500142d3b35b8"},{"fileReference":"bfdfe7dc352907fc980b868725387e986f8ffb96990bb399626c5381e170607f","guid":"bfdfe7dc352907fc980b868725387e98844be146b5b4e2d793be07ae76363745"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ce358334a1a5076952b5b191defb54e1","guid":"bfdfe7dc352907fc980b868725387e985823fdcc57572814da701f3bbb95365d"},{"fileReference":"bfdfe7dc352907fc980b868725387e986deec642724654c1e4c204b156a4deea","guid":"bfdfe7dc352907fc980b868725387e98c51f48b0640c1a23ab0229ba9fd10497"},{"fileReference":"bfdfe7dc352907fc980b868725387e9897a7ae86bc607fa9de8ff4e53586aa54","guid":"bfdfe7dc352907fc980b868725387e98bf3918817fc24dae2ecb90b1ac02e3f9"},{"fileReference":"bfdfe7dc352907fc980b868725387e9801d71f4dda6ca1b6560e07b28c111e06","guid":"bfdfe7dc352907fc980b868725387e9825eb44a59937ce7374284dfea15c50c2"},{"fileReference":"bfdfe7dc352907fc980b868725387e981bc55cac5bf59e9609e7097b78d1ac99","guid":"bfdfe7dc352907fc980b868725387e985c508a0bc39ed9808351c94a4c513ef1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aa4b92b28efbfa079b46c59e6843799e","guid":"bfdfe7dc352907fc980b868725387e98cac524ba52fbc9ecd97fcf55794a2ab7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b4b268c8cb47f6b3b41fe26f9626d3dc","guid":"bfdfe7dc352907fc980b868725387e98627b956d00529fe9fbd03177ac36c8b4"},{"fileReference":"bfdfe7dc352907fc980b868725387e982b23faafcc4de30d179f2abbde1c48c6","guid":"bfdfe7dc352907fc980b868725387e98acf5e1ec8417b70e33e5d3db600f2caf"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b1e223f65409db107f8b0fa9cfe331a5","guid":"bfdfe7dc352907fc980b868725387e985faed93cb45c091ae5c5ec85d1047ef4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98861d26a364f792ad0dfc370bc6e19777","guid":"bfdfe7dc352907fc980b868725387e98c1a036b5d69980f5cc00c93e26222a8f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ba7a2d11da67fe894102c54e263367a0","guid":"bfdfe7dc352907fc980b868725387e987e1dbd408f5bd47fcc76943bc1c2091c"},{"fileReference":"bfdfe7dc352907fc980b868725387e983f624e65a74b8b8c6f23d8a47b65ec35","guid":"bfdfe7dc352907fc980b868725387e9837a27d629b691285ca0b75ce090b4006"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f54136d02a57f35b93c2ec31619a1fe6","guid":"bfdfe7dc352907fc980b868725387e987f358aaf7b05408f294461ba1d245246"},{"fileReference":"bfdfe7dc352907fc980b868725387e986d0506fcb789d22f2f68087034cb1d2e","guid":"bfdfe7dc352907fc980b868725387e985c9cecee06c27da2dc1e21357aaa0a8f"},{"fileReference":"bfdfe7dc352907fc980b868725387e984bc83241c167059bd285dcce369d6711","guid":"bfdfe7dc352907fc980b868725387e986e476c001f279c4c21e82949d810c9f5"},{"fileReference":"bfdfe7dc352907fc980b868725387e9848e153c20ccf5da0214a31ee831120f5","guid":"bfdfe7dc352907fc980b868725387e98a111eb0b7763599914b00b7345e03bad"},{"fileReference":"bfdfe7dc352907fc980b868725387e98823a849c76b2446e4691f6a2a48668f8","guid":"bfdfe7dc352907fc980b868725387e98005e32790efbfaf5b7ff18bf3ee488c1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b29d458c3cedc976d44f1533c6cf6c7a","guid":"bfdfe7dc352907fc980b868725387e982cd582d7221a4b2978a682ed02f71373"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c27633286232d74f3bff6226dedb2786","guid":"bfdfe7dc352907fc980b868725387e98747df43c7e706bfd01d01f3e6c3a7932"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bb569377c23889d7a33573f608b47fd0","guid":"bfdfe7dc352907fc980b868725387e98f581a70fbc50534f8dfda567fccb9674"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d76d715b38c6588b6fda04bd1e9f91f4","guid":"bfdfe7dc352907fc980b868725387e98e555443b176e2df54d9f9862045df076"},{"fileReference":"bfdfe7dc352907fc980b868725387e986eeec97e30fd4a82250605684225fd80","guid":"bfdfe7dc352907fc980b868725387e985a75a313a50dc641da1615fe88561e70"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bf9eee4f12af157cfdb8fdc723b0e4c8","guid":"bfdfe7dc352907fc980b868725387e980fd20f3937bf5d6d1dc96c2e0c80062b"},{"fileReference":"bfdfe7dc352907fc980b868725387e980e862c930f34fed975f52ea610b90f43","guid":"bfdfe7dc352907fc980b868725387e98da8014f15d4e76e651f5ba695ffcaa32"},{"fileReference":"bfdfe7dc352907fc980b868725387e988d39ef2026d00b24538b7df2226d3c67","guid":"bfdfe7dc352907fc980b868725387e9829cac5444e7e64008233cf5ec68dd439"},{"fileReference":"bfdfe7dc352907fc980b868725387e983861ddb546092c52dbf5c23b6e443917","guid":"bfdfe7dc352907fc980b868725387e98d6420e47464f05b350a76f143ef2671b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f3d9b3434dc0f82b070ad56da52b6a3f","guid":"bfdfe7dc352907fc980b868725387e98313bf220885c1ae0c4c9787d18c86293"},{"fileReference":"bfdfe7dc352907fc980b868725387e985368f0c200c7c972f093f33034858d85","guid":"bfdfe7dc352907fc980b868725387e9823d02c79d89ec2adb3480f1bb5884894"},{"fileReference":"bfdfe7dc352907fc980b868725387e988e320f9b259e29846e25ad09f43f82ed","guid":"bfdfe7dc352907fc980b868725387e984692539ae48b00a90777233dff46a273"},{"fileReference":"bfdfe7dc352907fc980b868725387e988f1e78da7390ab8a7bb8a6367f4d368b","guid":"bfdfe7dc352907fc980b868725387e98b9aeaf1654dd549a722ff953985e4e30"},{"fileReference":"bfdfe7dc352907fc980b868725387e983ea69dc5c8e1c6c13f81c6ad32bd8360","guid":"bfdfe7dc352907fc980b868725387e9853224c1ffe7a1f1afe2a429c3a38480c"},{"fileReference":"bfdfe7dc352907fc980b868725387e9876d344295bf84d2846e2059d9374dd30","guid":"bfdfe7dc352907fc980b868725387e989508593d3c231ac7a36705e282b0c62b"},{"fileReference":"bfdfe7dc352907fc980b868725387e984001fb43a8b323e3765132dfce26883a","guid":"bfdfe7dc352907fc980b868725387e9815653a1264b72184cfa2b5f5d9ddbd9c"},{"fileReference":"bfdfe7dc352907fc980b868725387e987782a1cd602f37a1de65fe0b0e4acd7c","guid":"bfdfe7dc352907fc980b868725387e98bd9a4085530d450b45721d726803bdfd"},{"fileReference":"bfdfe7dc352907fc980b868725387e981dc06662ccad2b6f941f33a6e90f42e6","guid":"bfdfe7dc352907fc980b868725387e9883d2f5a843aa1d1f0865f679309f26a9"},{"fileReference":"bfdfe7dc352907fc980b868725387e9843e4f6448716cb304101ca550fdc2ed5","guid":"bfdfe7dc352907fc980b868725387e9831bc6f52a9fe0d41ae7549da8b9de3d9"},{"fileReference":"bfdfe7dc352907fc980b868725387e985128d54810aec544f57d2c49c9a4cef1","guid":"bfdfe7dc352907fc980b868725387e9813580dee707a67cfe440b01792abe30c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cefd619525510ceec143bd221bd769e1","guid":"bfdfe7dc352907fc980b868725387e985931e63dda8e67000c9e464bc27ad1a3"},{"fileReference":"bfdfe7dc352907fc980b868725387e9888dfed41d026273a3aeb7c3976f3c1c3","guid":"bfdfe7dc352907fc980b868725387e98ecf1cc883dd18a451df34ed49048df1b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98270a873843d0fc476ed942c354c3acec","guid":"bfdfe7dc352907fc980b868725387e9849a1508d7de3394d65848de5dec15dd2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f3b903d3cb6466f04122a8dcc569c45f","guid":"bfdfe7dc352907fc980b868725387e9830d69ae56d87a6acd9bfca29294946b3"},{"fileReference":"bfdfe7dc352907fc980b868725387e982d3ff31df3148c3451f810fd7f5fa808","guid":"bfdfe7dc352907fc980b868725387e98177d9e05091bf79465987cd74906062a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e851e31c6f2b1767ab90e9da8d8f7c62","guid":"bfdfe7dc352907fc980b868725387e98cc88438587367143a73669528ce3da5f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98760d2507f98c2f08b3c8c705b2363912","guid":"bfdfe7dc352907fc980b868725387e98032a9020ee822326e90288dea250cf35"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dac941846254c41f295688861ed652f0","guid":"bfdfe7dc352907fc980b868725387e98a91708b41f854cac30346e637eb65dc3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c7d2a6b25dcc403f0de2a5b9bc4294e5","guid":"bfdfe7dc352907fc980b868725387e98864aee770517b97bc12082ae125da894"},{"fileReference":"bfdfe7dc352907fc980b868725387e9886715de8548728764d2cad39f018bdcf","guid":"bfdfe7dc352907fc980b868725387e98e01e6d3825d1bd4b6a1909222d7f4a52"},{"fileReference":"bfdfe7dc352907fc980b868725387e9852ebd50069628d7a79828ebb57d86f76","guid":"bfdfe7dc352907fc980b868725387e98d3a94497369a0de7c141512537e42817"},{"fileReference":"bfdfe7dc352907fc980b868725387e988583668b0ad9a264c837fd842d3b5f29","guid":"bfdfe7dc352907fc980b868725387e98720209e2f4eaac195a741ccc43483f31"},{"fileReference":"bfdfe7dc352907fc980b868725387e988f97bb1298c08e95ce72da513963aeca","guid":"bfdfe7dc352907fc980b868725387e985f32122faf59f9cdae5df9d12a9efd27"},{"fileReference":"bfdfe7dc352907fc980b868725387e989f44bf1442031f464883e4098c35aed8","guid":"bfdfe7dc352907fc980b868725387e9847ee2f0a7230bc704549e5945c39227e"},{"fileReference":"bfdfe7dc352907fc980b868725387e9895e9f9bdb3c9603b28018cce2c956977","guid":"bfdfe7dc352907fc980b868725387e9855f6c979eeab8465d37c3baf1ff27293"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c6e86c5b1525c16b742b2f8cc6ece39a","guid":"bfdfe7dc352907fc980b868725387e981cc00a7960878587ff5f9ccff20c5e57"},{"fileReference":"bfdfe7dc352907fc980b868725387e985112e2257eeaaf38023cdb7637969005","guid":"bfdfe7dc352907fc980b868725387e9865e53157d415189d5a4252d39c18f52a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9884d1a35368dc73eb32b589997bf45020","guid":"bfdfe7dc352907fc980b868725387e98e8cc82a0bfc0d3c2c38b5712cf67852b"},{"fileReference":"bfdfe7dc352907fc980b868725387e9802d286724c2ada24e211d453680c745e","guid":"bfdfe7dc352907fc980b868725387e988fde17b644997ed50285d265009ca67c"},{"fileReference":"bfdfe7dc352907fc980b868725387e989533a782d188749d31038b70a39528e5","guid":"bfdfe7dc352907fc980b868725387e98ef4cb3cd061de40c0d3580ba28126736"},{"fileReference":"bfdfe7dc352907fc980b868725387e988720562a3394a7dca95102f3b98a023a","guid":"bfdfe7dc352907fc980b868725387e98ab1e591e606d5dba7c0742c3e7756205"},{"fileReference":"bfdfe7dc352907fc980b868725387e981ff3d870f266d470195ca43b04d8d67f","guid":"bfdfe7dc352907fc980b868725387e98f90c80e21312770b8e2028d7c8f24d75"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ee70e65e1eda2ff3ff8d0348ab918c5c","guid":"bfdfe7dc352907fc980b868725387e98df2dce473d05e2e94d2e248f5eef1237"},{"fileReference":"bfdfe7dc352907fc980b868725387e980ee870141fe60d8620c801adaf4ee206","guid":"bfdfe7dc352907fc980b868725387e98370da52c854a759ce1a7e160484070ad"},{"fileReference":"bfdfe7dc352907fc980b868725387e98921c7a9bbdbe7178ff98341f9df0b034","guid":"bfdfe7dc352907fc980b868725387e982153c38489a04cdf7ec0acfa76d1b5a2"},{"fileReference":"bfdfe7dc352907fc980b868725387e987740a02d13ac09398d0b85d3153b2f20","guid":"bfdfe7dc352907fc980b868725387e98d5ea0eb631aa196f7dcd6cc9cb3c1a77"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c66dbb3e327d9ec00f8cc6e8d1e1b948","guid":"bfdfe7dc352907fc980b868725387e980467b3b0260120dab4645db0f3fc758a"},{"fileReference":"bfdfe7dc352907fc980b868725387e980b8123f811d0cde25c64b9cad54527e4","guid":"bfdfe7dc352907fc980b868725387e98f0b33477a85d5286de7b038413f700de"},{"fileReference":"bfdfe7dc352907fc980b868725387e983924913cd9631b0a8e1474016c37fd65","guid":"bfdfe7dc352907fc980b868725387e989138863deb9e38708e1a36d65a134068"},{"fileReference":"bfdfe7dc352907fc980b868725387e984c85dd47b368929d18729b3b9dfe7ed7","guid":"bfdfe7dc352907fc980b868725387e9876b038f84379c5d294cfdaed401e4d8c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aa00e81c94da1e91420ecbc7503b9847","guid":"bfdfe7dc352907fc980b868725387e98296cb6ef4ab79cf0e37fd3cf3c258b81"},{"fileReference":"bfdfe7dc352907fc980b868725387e9822f60abdb91323bd78e764660f20de8e","guid":"bfdfe7dc352907fc980b868725387e98c3ac62acad040e6ad4c83fe5d7a9279f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a80266b8900bbb72931518de847c24c8","guid":"bfdfe7dc352907fc980b868725387e984a552647d0f6b94d34fcd8e2a0ef0307"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f8b8a9c1c8ae5199beebf308ed1d6c07","guid":"bfdfe7dc352907fc980b868725387e98f3a97dde9eb90ffcd45fe6c749f1200d"},{"fileReference":"bfdfe7dc352907fc980b868725387e983019fabfe4dba65799d509aefa5fb69a","guid":"bfdfe7dc352907fc980b868725387e981884d5719e19a84920b49dd31263e8b6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b099432017fe38fbf964a124e20b406d","guid":"bfdfe7dc352907fc980b868725387e988763c13f345e30745531721cf5d06f25"},{"fileReference":"bfdfe7dc352907fc980b868725387e9860266e56f360e7bb53a8caf03f3a1e6a","guid":"bfdfe7dc352907fc980b868725387e984134ba91ff91e3215d4ec5c17d714311"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e42577cddfe3fc54bdb003965edeff12","guid":"bfdfe7dc352907fc980b868725387e98c13ef1d04b7073306193a6834ff27c8a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a6ec633854d2fbf231deb92ae7f277b9","guid":"bfdfe7dc352907fc980b868725387e98d6c7dd077ee30b3a0b330e6b548aeea0"},{"fileReference":"bfdfe7dc352907fc980b868725387e9885e23e25274e201e4984110794ea5f79","guid":"bfdfe7dc352907fc980b868725387e98436dfa80c82815a5d973dcdf96e5c854"},{"fileReference":"bfdfe7dc352907fc980b868725387e986d7cb1f9716b66a62e2c02d1853fcaff","guid":"bfdfe7dc352907fc980b868725387e98ac8ccffb2a94f3a5b917fd5697c82dad"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c6c96cf34f1b2f26dad3bfae6acd06aa","guid":"bfdfe7dc352907fc980b868725387e98bdef8c0cc21e89a510a118c0ab12246d"},{"fileReference":"bfdfe7dc352907fc980b868725387e988c6f12374536993e64553a8dd071f3b9","guid":"bfdfe7dc352907fc980b868725387e9860b6e5c7dc07fb35ba89286612cd95c6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ee1ccd38d9ec42a9f6bd5bb7227c506b","guid":"bfdfe7dc352907fc980b868725387e98a5f2abb7e573ac79b6a581528a6a659c"},{"fileReference":"bfdfe7dc352907fc980b868725387e989c32f12d642abf39866bcc6c59c89ab2","guid":"bfdfe7dc352907fc980b868725387e98bdea1ab1c62182a10fd9c934c6403ef5"},{"fileReference":"bfdfe7dc352907fc980b868725387e9823c8189611d58ec5687601e3b4878af5","guid":"bfdfe7dc352907fc980b868725387e988bc704018663b54029519e6a242f5610"},{"fileReference":"bfdfe7dc352907fc980b868725387e985af0e724d0e218aa49783f0fcf6e1aef","guid":"bfdfe7dc352907fc980b868725387e98835d23e8b474eaa3b5760be2d607abd2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b8a568ab084dd46acea1dfc18fe2e914","guid":"bfdfe7dc352907fc980b868725387e98ae01396b3f9c708a2c2d84a6068e9c17"},{"fileReference":"bfdfe7dc352907fc980b868725387e9861e136b23e1235ef52173044409b8e88","guid":"bfdfe7dc352907fc980b868725387e980eeff6b0eb98d45016600f50de7252d8"},{"fileReference":"bfdfe7dc352907fc980b868725387e980552f6ce50890ac855205a5c679ff686","guid":"bfdfe7dc352907fc980b868725387e98d34d01705d52a35f5ef5090eafbc209e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b97105291f32812a810c41c9b69510d6","guid":"bfdfe7dc352907fc980b868725387e98993355b4b3c0634fbab18a6945b33a72"},{"fileReference":"bfdfe7dc352907fc980b868725387e98863aefe6157e2aacaf9ddd6fb577f7d6","guid":"bfdfe7dc352907fc980b868725387e9870d593556d465e2fd5b8c853e828aba2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b09ad5212c16513d73efeb756411bb35","guid":"bfdfe7dc352907fc980b868725387e981eb05ca0a7f84208972ceb9a9f6dff59"},{"fileReference":"bfdfe7dc352907fc980b868725387e980d814c7bb26425872f0b5c219241080c","guid":"bfdfe7dc352907fc980b868725387e985c275922f8a84fa5d00b941f8e8325f9"},{"fileReference":"bfdfe7dc352907fc980b868725387e9842212c0df5fd9728a12038ce17aedf4d","guid":"bfdfe7dc352907fc980b868725387e980d44737a9e03dc1db3623a2779a49665"},{"fileReference":"bfdfe7dc352907fc980b868725387e982b93ce05760d69942cd08eeb9a190762","guid":"bfdfe7dc352907fc980b868725387e982f6783920f31819ddd3a82c5036d9b5b"},{"fileReference":"bfdfe7dc352907fc980b868725387e987e1bd553c0cf6a88374e415fef55aad7","guid":"bfdfe7dc352907fc980b868725387e98ef5b5a86382d8daebd7c0e1aedeb0d70"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b608fab1816b67e12745f5fcdabcbc3b","guid":"bfdfe7dc352907fc980b868725387e982817be60565ff8df98d79d578607a556"},{"fileReference":"bfdfe7dc352907fc980b868725387e98da018402b414f94b3227ea32b75fb119","guid":"bfdfe7dc352907fc980b868725387e98e7b1278c6c138acbe1e2640bde5496bc"},{"fileReference":"bfdfe7dc352907fc980b868725387e9816cc6e5a9ac81c8298372be540ff4d06","guid":"bfdfe7dc352907fc980b868725387e98edec9920329de0521bbaf5e5573f8f61"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e15fdda76d5e34f7cd46f5a3e1155662","guid":"bfdfe7dc352907fc980b868725387e986860d8dccf9ffb2542cd8ac0ed6a415f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ca46681d7d64607307ef6ba7951e5d66","guid":"bfdfe7dc352907fc980b868725387e9840cefa7c397ce8e5ce915e7b5b9fdef3"},{"fileReference":"bfdfe7dc352907fc980b868725387e980d297a1117ab8dd1cb65fdf25181a47b","guid":"bfdfe7dc352907fc980b868725387e98f0c285a0954454f1a5b209f7498177fb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b3bd422db2082b30b47a5ead025bce56","guid":"bfdfe7dc352907fc980b868725387e98e92a085944a8fa44af7f4306c7ade91d"},{"fileReference":"bfdfe7dc352907fc980b868725387e981eb8075f0d967483c1bd67f3230910e6","guid":"bfdfe7dc352907fc980b868725387e9846ce377b534caf0fdb2652d702c4a27b"},{"fileReference":"bfdfe7dc352907fc980b868725387e981cc4a28c2dcf993ee9cd32c6194f413d","guid":"bfdfe7dc352907fc980b868725387e981975bfcdd723df05733398403420289d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e2de1af97231645fdbde17a9430465d8","guid":"bfdfe7dc352907fc980b868725387e98b502f10b11c58d2f09f1694735732542"},{"fileReference":"bfdfe7dc352907fc980b868725387e987ce15f77dc954b5dc5c528e4ddd7450b","guid":"bfdfe7dc352907fc980b868725387e98a8fde1b3bd2ec8a0b0ebcbc69538d7c2"},{"fileReference":"bfdfe7dc352907fc980b868725387e9822dc1179958496cfe9657cf4165f5b96","guid":"bfdfe7dc352907fc980b868725387e9822feb6166c1a6d6da96833c07ee72850"},{"fileReference":"bfdfe7dc352907fc980b868725387e989190b9ff65b0adb5a6d99714d768878c","guid":"bfdfe7dc352907fc980b868725387e986bb43915b50c472f855ce5ed10c663d5"},{"fileReference":"bfdfe7dc352907fc980b868725387e9879014d88396452103df748a911140649","guid":"bfdfe7dc352907fc980b868725387e985e95ac3250f85c1ffdc5d55cf96c07d3"},{"fileReference":"bfdfe7dc352907fc980b868725387e9806fef306e3573d4c9063aa896c52e9cf","guid":"bfdfe7dc352907fc980b868725387e982964769d28fbba0b61a9b9375905a9be"},{"fileReference":"bfdfe7dc352907fc980b868725387e9833a74cf76d2a20c8566233e6aef6bdd7","guid":"bfdfe7dc352907fc980b868725387e98c5a8baf2c45e021af547746b0a0dcd0a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d90240c32cb6d937c6bebb63d07af193","guid":"bfdfe7dc352907fc980b868725387e9858cee9a5eef37ed4251e6b3b4a3a8b98"},{"fileReference":"bfdfe7dc352907fc980b868725387e9848e44537f357a35b44ec1eb6f8d26680","guid":"bfdfe7dc352907fc980b868725387e98d085f336bb6448a1ff8962b1f978a66e"},{"fileReference":"bfdfe7dc352907fc980b868725387e989b390446f1feafa973caf271aabefb70","guid":"bfdfe7dc352907fc980b868725387e986bd0662b2a5af149cbaffbc8ecc65097"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a07c77d926ac0f69f5bd98d66c164246","guid":"bfdfe7dc352907fc980b868725387e988b7a43f860d4d91a614568ed1a7037d4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e293051b8704a4a3fc9a1878a319d018","guid":"bfdfe7dc352907fc980b868725387e98696162fd8912b872e023a23a23e064f8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f3b7caf30d7d06002ce9702ebb4f8fe5","guid":"bfdfe7dc352907fc980b868725387e98376c4856db4332bb00a026bfc59ab211"},{"fileReference":"bfdfe7dc352907fc980b868725387e980e3737b4e00a12ea03b1c096ad5cbc91","guid":"bfdfe7dc352907fc980b868725387e986259db722f095a725123b3b6b29f735d"},{"fileReference":"bfdfe7dc352907fc980b868725387e9860afa2d6f7732744b608a5b22dc02efd","guid":"bfdfe7dc352907fc980b868725387e98bcd92a33e65d4991e2b05be091e78e64"},{"fileReference":"bfdfe7dc352907fc980b868725387e9829e2f85e1c743511eb369db2cd453d34","guid":"bfdfe7dc352907fc980b868725387e98991f617600feb53990f1d1128445f41d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98315fc5c42731cbc9e52c441baa906597","guid":"bfdfe7dc352907fc980b868725387e9886b4c33aafd1ceb5282545e125c2774b"},{"fileReference":"bfdfe7dc352907fc980b868725387e987561958e7b5abafefffc310f0153475c","guid":"bfdfe7dc352907fc980b868725387e98fd0887f08c78610f5f45f4934eff4b5f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98828becd4fd89257b5bdda4c70b544e8b","guid":"bfdfe7dc352907fc980b868725387e98efa987d8816d77eeca9ce9fb4648e124"},{"fileReference":"bfdfe7dc352907fc980b868725387e9869c2fac3c1a2a39ccefeb93a9fa9ef66","guid":"bfdfe7dc352907fc980b868725387e980c194ffc128a4bbd153d1fb254e5f198"},{"fileReference":"bfdfe7dc352907fc980b868725387e98578038198f467262c5d63800ccbf4c0f","guid":"bfdfe7dc352907fc980b868725387e98c68abcc21c7abca585d604680dc8a0b3"},{"fileReference":"bfdfe7dc352907fc980b868725387e9847bc5fdce5f9eb8c80ef749a9f5c620a","guid":"bfdfe7dc352907fc980b868725387e98d38263919f1326ba64845a0304fe6a6b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ecfcb048c3056fb084de04f431a42f89","guid":"bfdfe7dc352907fc980b868725387e98ad678f959074cb0ada7abe7b3877788a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f3c8a8578b7108e793745fe06a393c44","guid":"bfdfe7dc352907fc980b868725387e98f5d76e01eda62698c8beaca67408e30f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f98955341f072318505600d7fc9d06d3","guid":"bfdfe7dc352907fc980b868725387e987827f110aa4e0eb106f59564733c1672"},{"fileReference":"bfdfe7dc352907fc980b868725387e988229426b3d2ae683f29aa34269fcb1e6","guid":"bfdfe7dc352907fc980b868725387e98e5ad5f677b143345dcce1db411fdb7f0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98048fbf7e09b682349e3e1325f4259f26","guid":"bfdfe7dc352907fc980b868725387e98757e6fe489372d7cbd31cb55b51e0a62"},{"fileReference":"bfdfe7dc352907fc980b868725387e98189376c04a5a3f1617345ebc9016b73b","guid":"bfdfe7dc352907fc980b868725387e98d3275aa13d4c5e9742cee13ccadcd4a4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f5640ba913c19e0d71f27b721be01b98","guid":"bfdfe7dc352907fc980b868725387e98fcb4c63b31a154b9decb806658a11675"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b9da56e1da950a8bc6800f81b9230679","guid":"bfdfe7dc352907fc980b868725387e98c9302854ff400ac1c695b702f2ab2cb7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a5bee5b252a30084fc6e029db6fd6830","guid":"bfdfe7dc352907fc980b868725387e985b5cd5598f527339865c554922dfea83"},{"fileReference":"bfdfe7dc352907fc980b868725387e98eaeab34e4e2c469f6298e1e196b7ab9d","guid":"bfdfe7dc352907fc980b868725387e98ca0288ec2fd50d654ad7569f8e91ecd8"},{"fileReference":"bfdfe7dc352907fc980b868725387e988c5eb1d4ed92633506bd2a0393dbd8ed","guid":"bfdfe7dc352907fc980b868725387e98755ca3a571e3f91e0104788585b1735d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d84eb718f5826ab1db262ba7ff14c851","guid":"bfdfe7dc352907fc980b868725387e987595d55a97746f08081634801e2ea840"},{"fileReference":"bfdfe7dc352907fc980b868725387e986d38113dba9aa0a8bd90b0d663373171","guid":"bfdfe7dc352907fc980b868725387e98d980da7855c8dadc46f4079e1f791056"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e0e640080ecb2b63a332e87d7882a3db","guid":"bfdfe7dc352907fc980b868725387e980df3866c94eafffb6db36c30f94f42d1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ee603e9ccba60eec64123a6005283944","guid":"bfdfe7dc352907fc980b868725387e989421105dcd3cd71e2c01debc94a792ac"},{"fileReference":"bfdfe7dc352907fc980b868725387e985a32b560381baf4c9a9eff8d8d044e1e","guid":"bfdfe7dc352907fc980b868725387e98a6bac320f005c45bbb70aefd9cc54b61"},{"fileReference":"bfdfe7dc352907fc980b868725387e9897f06a243ab1505040adfa1527857a1b","guid":"bfdfe7dc352907fc980b868725387e98c19354938452175f9cbb7e0c4becf60f"},{"fileReference":"bfdfe7dc352907fc980b868725387e984c7e3af27de6b51af6e508628815488e","guid":"bfdfe7dc352907fc980b868725387e98a2462f6f30fdd161c5f933ca98b7c1c0"},{"fileReference":"bfdfe7dc352907fc980b868725387e981037b7e2df9d49cf6f14474d8547db56","guid":"bfdfe7dc352907fc980b868725387e98ad0a414ec201f8de124dd11f5d7795c9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98502832b6a7869eebf7eb12d9baa587ac","guid":"bfdfe7dc352907fc980b868725387e989858a82f1914bf5fd3fb8b66981d2388"},{"fileReference":"bfdfe7dc352907fc980b868725387e987f284fb9e42f0d0d5d85a83399fa036d","guid":"bfdfe7dc352907fc980b868725387e98c42e442bbfba2b06022f427b1c03eeb6"},{"fileReference":"bfdfe7dc352907fc980b868725387e989d7142abaef284478c5b1311eff57f45","guid":"bfdfe7dc352907fc980b868725387e988e451aa84f65830993ff2e127dc759f0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d443a165ef054bfcfbeeef9e57f0652a","guid":"bfdfe7dc352907fc980b868725387e981ed1a85687aa8a92fef4e93c022c2524"},{"fileReference":"bfdfe7dc352907fc980b868725387e98070e5262f3138c1116934fa75bdc4f89","guid":"bfdfe7dc352907fc980b868725387e98f5a5759ee1712e75e4a89ddfe316650b"},{"fileReference":"bfdfe7dc352907fc980b868725387e988bedad6795e7b9b7520fbe331d142fe9","guid":"bfdfe7dc352907fc980b868725387e9807b15075cbb1a337c0c59959a26e46b1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ab8a3eff350c067055f805c6ffa8abda","guid":"bfdfe7dc352907fc980b868725387e98bed972bd8875d30171eb2914842d0127"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dbe304f4e2ea02b382b9bb5f7d672163","guid":"bfdfe7dc352907fc980b868725387e986f52cdfe09da39acd63c7fa5e457339e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98343d607af07f9c2762b794bbdbf43cf3","guid":"bfdfe7dc352907fc980b868725387e98653d01906976fec74a8563fb3c9ca5d5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bca8a4663fb9ce18f791911aef8a78ef","guid":"bfdfe7dc352907fc980b868725387e989005c8d338968ef2d7f859178f83d5eb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b5c6088a7a59ef3870afd0ca6506c6f8","guid":"bfdfe7dc352907fc980b868725387e9846a7324b19c82a3c909cba79278e54d2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b56a87a8388850e0204746badf7e76aa","guid":"bfdfe7dc352907fc980b868725387e982c28d93669841d4a2d7697228c65735a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d84a39654a84ef6c52610defccabf9f6","guid":"bfdfe7dc352907fc980b868725387e98bc8a800084397ef171b3b08f1d4f9bcc"},{"fileReference":"bfdfe7dc352907fc980b868725387e9817cc53fd803394a70c2a54b6d6e97284","guid":"bfdfe7dc352907fc980b868725387e987ff13d09bc1f6da9484a90feed82dc7a"},{"fileReference":"bfdfe7dc352907fc980b868725387e985b6b062ebd93a5323b23514cb5f3c7c9","guid":"bfdfe7dc352907fc980b868725387e984a24c2b7f03deb6c2c5567335bdf7b08"},{"fileReference":"bfdfe7dc352907fc980b868725387e989bcdf3148ed118a4b41380ae9ed62ae1","guid":"bfdfe7dc352907fc980b868725387e98e2d72a2fb7d273ce09540a56c78dcfb8"},{"fileReference":"bfdfe7dc352907fc980b868725387e9839b7a3e5e54d010c4f55e5d5a541479a","guid":"bfdfe7dc352907fc980b868725387e983adcdc51d52d65ac096a744e75eab925"},{"fileReference":"bfdfe7dc352907fc980b868725387e981509759fd3251958a936bf43a121ea38","guid":"bfdfe7dc352907fc980b868725387e98e757e33f49897ad8c67e39da9d029999"},{"fileReference":"bfdfe7dc352907fc980b868725387e9834557125b15e9f11ca4f72907b1c2101","guid":"bfdfe7dc352907fc980b868725387e98b65ccfca9a1ade0fb2fe7c8b88f09345"},{"fileReference":"bfdfe7dc352907fc980b868725387e9876f4963fefc5ae218db9a494f5318625","guid":"bfdfe7dc352907fc980b868725387e989c73c7cca7f80fda0003cb1a94f30683"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e48e06b3b05bf930a279c02ded5a8ae4","guid":"bfdfe7dc352907fc980b868725387e98e211ea33b48d6e46347e1b84276a0a1b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98922d795d5368e9c6bc8bb2d172bea2f3","guid":"bfdfe7dc352907fc980b868725387e989e7d2929700d151250164063f1e89d0f"},{"fileReference":"bfdfe7dc352907fc980b868725387e9832c3db0ff412430ca91c7f8fdc282e23","guid":"bfdfe7dc352907fc980b868725387e98763d6dc80cbabc0556826122ed896530"},{"fileReference":"bfdfe7dc352907fc980b868725387e98429c69e8b1c5a828afd76961b824921f","guid":"bfdfe7dc352907fc980b868725387e982920e9a07da2cf55300d27df0254740b"},{"fileReference":"bfdfe7dc352907fc980b868725387e985366976e382462eb7ebd783085c01b08","guid":"bfdfe7dc352907fc980b868725387e98993cb2c1215151ad306284265dadc181"},{"fileReference":"bfdfe7dc352907fc980b868725387e985cb761d7ef05ca451f79eaeefd80346c","guid":"bfdfe7dc352907fc980b868725387e98e6ab58c56522faacda2739816d8bea82"},{"fileReference":"bfdfe7dc352907fc980b868725387e982d4a6b1cfa0c3c2da4f29b8475ef503d","guid":"bfdfe7dc352907fc980b868725387e982c2af76f9e31107bbb74f0fde3fb0219"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b3ceeec96b7345f03c0ac0137d8e0a03","guid":"bfdfe7dc352907fc980b868725387e984e73a93e61d0e393fa2d6b673fc44042"},{"fileReference":"bfdfe7dc352907fc980b868725387e981cb0a7499401753795f143d523406b75","guid":"bfdfe7dc352907fc980b868725387e98bca54e7e73e1a3e9c67e0aa74a62210b"},{"fileReference":"bfdfe7dc352907fc980b868725387e988141eb81c70aada6b09e2bda8d8f74a9","guid":"bfdfe7dc352907fc980b868725387e9876920e58146b5f84f013a0a164d5f294"},{"fileReference":"bfdfe7dc352907fc980b868725387e9800ef737b5f918afc867ad869126c97e3","guid":"bfdfe7dc352907fc980b868725387e987a0b8b27a699a6f35a28ca80a06e441c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f366cd285e829de77f5cba01e1268e8f","guid":"bfdfe7dc352907fc980b868725387e987767f5e9f7a3f07264680bab05f69cc2"},{"fileReference":"bfdfe7dc352907fc980b868725387e9800ed94b438374217e401a17f41991237","guid":"bfdfe7dc352907fc980b868725387e98cd577e286b5d0e00c1f7af89723d7358"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f8cd356e10f054303757e7823150edae","guid":"bfdfe7dc352907fc980b868725387e98b39c74ded23ae2a617ae542d2900aa25"},{"fileReference":"bfdfe7dc352907fc980b868725387e989ef7e9d9a1424413d9470f43615ef4b5","guid":"bfdfe7dc352907fc980b868725387e982d300123baf61f47dc322e34f8a0b5a6"},{"fileReference":"bfdfe7dc352907fc980b868725387e984494b0503304aec5861c45ea1229b9e2","guid":"bfdfe7dc352907fc980b868725387e98a6d6ed12f189dcd71d503ad19b07c7ad"},{"fileReference":"bfdfe7dc352907fc980b868725387e987edc2fb75adc6418df0353c47f32ce54","guid":"bfdfe7dc352907fc980b868725387e9883e59c2821d2ba95de6f6e9c1fe06534"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c4b4e30741dc247a4c609674440de4b3","guid":"bfdfe7dc352907fc980b868725387e98a1d40e111f966d971d93dd597c82397a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d5162e46ba40a03df7d33abdb74f5dd3","guid":"bfdfe7dc352907fc980b868725387e983692a9538c6c3364e6c9ca16f063d7da"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d58941a66ca190fd80531545f08a04e9","guid":"bfdfe7dc352907fc980b868725387e98a6889281088d421ea8c478693910da44"},{"fileReference":"bfdfe7dc352907fc980b868725387e982d86fd45d5ff3518e552498239fcdc8d","guid":"bfdfe7dc352907fc980b868725387e98595d38d4a28748b9e0677bd474bdb4d5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a94ea13f7fe28ce4a8a9d5cc069f3ddb","guid":"bfdfe7dc352907fc980b868725387e98100980a9d2bf4b2ec1999be572b21461"},{"fileReference":"bfdfe7dc352907fc980b868725387e981de0bfed7ae1adffed9303178213653c","guid":"bfdfe7dc352907fc980b868725387e9823df7043d3db7680cc9fc74b63b01b14"},{"fileReference":"bfdfe7dc352907fc980b868725387e982f255f3e938b0d0d7e185881af36dc16","guid":"bfdfe7dc352907fc980b868725387e98c0daf9b5162ae93ad85729cb78749c6b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c71138aa51c9585d91e951852ac78d4c","guid":"bfdfe7dc352907fc980b868725387e9841f724eaee2bb4d92ab865ed5e92ae54"},{"fileReference":"bfdfe7dc352907fc980b868725387e984a00d325d787d7fe05ff2cd2a1019a05","guid":"bfdfe7dc352907fc980b868725387e98de4a60beb3c3edd270a1db803a56251a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9806b94507c9dc21657efb363dd48722d8","guid":"bfdfe7dc352907fc980b868725387e98e6950505172b6c81c2acb62da127a480"},{"fileReference":"bfdfe7dc352907fc980b868725387e9808d9e029232831f97720189440f7f89d","guid":"bfdfe7dc352907fc980b868725387e98d401e846dd3bee12f57e523598b0de0f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c1c72729cf8bf8cd2b73057e505cd86b","guid":"bfdfe7dc352907fc980b868725387e98f24a0082396336dad3116a54a54e3c37"},{"fileReference":"bfdfe7dc352907fc980b868725387e982220108432d5cef3198a72ec5c007ff9","guid":"bfdfe7dc352907fc980b868725387e98956f5a52ac23987e6e6e9f0712c67511"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aaa4b81f4bc699c51967c3fab85b4f4b","guid":"bfdfe7dc352907fc980b868725387e98c3a57f8a8b09fd35afc6700b59f58266"},{"fileReference":"bfdfe7dc352907fc980b868725387e9819858cbe4e062b7ee3dc018d6432f790","guid":"bfdfe7dc352907fc980b868725387e98bbdd4996b43800cf6b83f165bf47b66c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98919a8ae2e25fe8e2cd2e803b23d8e418","guid":"bfdfe7dc352907fc980b868725387e9834788cfa6dff7931e6bdee0a69c64231"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e998c6bb33e11c3feea17aa62dad70e8","guid":"bfdfe7dc352907fc980b868725387e989e01ec9b97a8d3c2f84e19b25c08ec79"},{"fileReference":"bfdfe7dc352907fc980b868725387e98475e46dbf15bd97afaf10001d96cb18b","guid":"bfdfe7dc352907fc980b868725387e9811ff0cb02d47dab0c3cb1243e0083fcb"},{"fileReference":"bfdfe7dc352907fc980b868725387e981cbdf66da8d580cf9318b7dcc3a56739","guid":"bfdfe7dc352907fc980b868725387e984188392a5420096b0ad705ca03e18745"},{"fileReference":"bfdfe7dc352907fc980b868725387e98984b571bd52e25b80204a15948000bd2","guid":"bfdfe7dc352907fc980b868725387e986491bc3be582b522cc6c0bf9ca1b872c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c5a38f2dfad640d8e4fa90dfa5dd223a","guid":"bfdfe7dc352907fc980b868725387e9815f8b65c3cfcedd64fbbd7772f4faaed"},{"fileReference":"bfdfe7dc352907fc980b868725387e98207934bb3647abdb3632b379e95dd3cd","guid":"bfdfe7dc352907fc980b868725387e981258ac47b4dc70cd99d190210c8be92b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e031e22a34f80baf9e6c586934a414ad","guid":"bfdfe7dc352907fc980b868725387e98d7bc7dd91187d7cda0cfd254075f2f7b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98863345211ba631a143988a4531b79085","guid":"bfdfe7dc352907fc980b868725387e98dccf2a0ecd94c62774bd14f26c436db0"},{"fileReference":"bfdfe7dc352907fc980b868725387e9878c1cc99a1e43e6ed7dd3eaa45adeee9","guid":"bfdfe7dc352907fc980b868725387e9865699b01741a4af743ed49d0154ec6e1"},{"fileReference":"bfdfe7dc352907fc980b868725387e981b020283c4f5d21114bcc1071b60368a","guid":"bfdfe7dc352907fc980b868725387e982b7ad12030d96ae847171e2bea34de7b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ed357f711ae701486fe1809f3d7f9fac","guid":"bfdfe7dc352907fc980b868725387e980a30e508c3a27dd096f4a639a7c7c200"},{"fileReference":"bfdfe7dc352907fc980b868725387e98512aa3090bc74ab024c7558ade2bebf3","guid":"bfdfe7dc352907fc980b868725387e9829560e96c14db1133a8c16d58c2fe149"},{"fileReference":"bfdfe7dc352907fc980b868725387e98da15b4142127602565d8c4670a7c3ea5","guid":"bfdfe7dc352907fc980b868725387e9852a006832e23ca30d33e83d155d84163"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e8b9d46b60704ff29d56ae4675094d2f","guid":"bfdfe7dc352907fc980b868725387e9851cc34f00cd88a115b25bb59ad0ce947"},{"fileReference":"bfdfe7dc352907fc980b868725387e981d1fe89c1a938ef5d3ed28478c2247fc","guid":"bfdfe7dc352907fc980b868725387e98cba6994a2980c3b1a8facd6d592e4da0"},{"fileReference":"bfdfe7dc352907fc980b868725387e9884da1a22f25fad29f6884d60ee3df3e4","guid":"bfdfe7dc352907fc980b868725387e98b25a63f8e8c6bc90de5ff4a91276fa53"},{"fileReference":"bfdfe7dc352907fc980b868725387e981766ad0aea33cb832626ecc9e718608a","guid":"bfdfe7dc352907fc980b868725387e9878c06c3f77974e1ed7f3afe77b41ce82"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a0593ffb46b92559fca6d1e5226a4da7","guid":"bfdfe7dc352907fc980b868725387e983010441bad72df7803ef45b8561f8cd3"},{"fileReference":"bfdfe7dc352907fc980b868725387e983eff10593b42aabc9ad58febfb4b6584","guid":"bfdfe7dc352907fc980b868725387e98eb2fcf357227bf59d0ef1750b192d518"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e10b968b0d46ad4c5d632b2ad4cf7ef2","guid":"bfdfe7dc352907fc980b868725387e982518ba0512d162f2b2aae0da3fd0f782"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a2005df5d4bc4a9a9974019bf67c2c66","guid":"bfdfe7dc352907fc980b868725387e98333a70252b5bd4daa4af190d877eb60f"},{"fileReference":"bfdfe7dc352907fc980b868725387e9817363a068086e7b32dc572f75748eca5","guid":"bfdfe7dc352907fc980b868725387e983856397ffc0639653c42da30963af58a"},{"fileReference":"bfdfe7dc352907fc980b868725387e981e01605f9a9b38019d27a4da6862010d","guid":"bfdfe7dc352907fc980b868725387e98df7140f3d7651d6e336354ec8ed90cdd"},{"fileReference":"bfdfe7dc352907fc980b868725387e988f43e6bfff8180671026d3f72707a172","guid":"bfdfe7dc352907fc980b868725387e9861d651981a152c2497a01d922d60f422"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e6b8f56eab61c7047f975600922d334f","guid":"bfdfe7dc352907fc980b868725387e9829feb34d77e2910fe110be480313ea5d"},{"fileReference":"bfdfe7dc352907fc980b868725387e9858e579b31ec0b49c94151ee91b5c56d4","guid":"bfdfe7dc352907fc980b868725387e9808597ab5eac79df05d9d11ca4e1b92eb"},{"fileReference":"bfdfe7dc352907fc980b868725387e982865a0b9365ddcfa914e8537a785a7e2","guid":"bfdfe7dc352907fc980b868725387e9867c9f83e1027fa8fcbe8400f92d26edb"},{"fileReference":"bfdfe7dc352907fc980b868725387e989ce578c7ffef95885c4e807b0ee10e45","guid":"bfdfe7dc352907fc980b868725387e98ed8ce05d2c4c3e7926c14b67341d6987"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ebffb1fe20fe78a067a1244ebc30985b","guid":"bfdfe7dc352907fc980b868725387e9847fa0c8caf0fdb8657d2f367e65b6c7a"},{"fileReference":"bfdfe7dc352907fc980b868725387e989984f0f4448d02690bb493b8d4df631a","guid":"bfdfe7dc352907fc980b868725387e988637a70a6084d424a423eb1da5b7edf0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98874c02b23c06b56e6fb5723a60f4f53e","guid":"bfdfe7dc352907fc980b868725387e987848fc93b182064d3286e4073414b5f9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f1a69304464be71ce85dcdb67a6e60ec","guid":"bfdfe7dc352907fc980b868725387e98c62be368062e69ad3416e6630d64f4a1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98de16f80bab26f3404c38461424de59f7","guid":"bfdfe7dc352907fc980b868725387e98ff0d6dac71b11ccfd4f5af68bcc08f40"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fac099bd8021bad6695885c0fc94baaa","guid":"bfdfe7dc352907fc980b868725387e98bffeedce5bc4e8241360f77f06e58ee1"},{"fileReference":"bfdfe7dc352907fc980b868725387e9846d7cb2cdbdbfc2cc7ad9129d83f5461","guid":"bfdfe7dc352907fc980b868725387e984a9ff2f6d380633644bcc7c8355ca20a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9826403765852bb10fd3f823587d69dea0","guid":"bfdfe7dc352907fc980b868725387e982c58b65909ceafa709b7b7929f7affc2"},{"fileReference":"bfdfe7dc352907fc980b868725387e9837cdcae99ab615e528ee539fc6872a34","guid":"bfdfe7dc352907fc980b868725387e9840e1468cc39db0b2a26a4e1dd29a25f8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e06826e46a8ee03ecbc275d8a583a2d6","guid":"bfdfe7dc352907fc980b868725387e989d759fc5d5e698af484878b7be7259c7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fde386236c3d3f89e97b5db76cead50b","guid":"bfdfe7dc352907fc980b868725387e98dec7297edec5230a239f8d13b4efe3eb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98501e3671cdf8f304075029b28cddd0c8","guid":"bfdfe7dc352907fc980b868725387e98afbc9e0c912a54ce2ad9415e005ee6dd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d8f9151a3dd56012ce15a5a9cd630378","guid":"bfdfe7dc352907fc980b868725387e986588ebbaba58adb74b6cdb5501b1b708"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d62595dc37317fc74f3f3a03671db0c0","guid":"bfdfe7dc352907fc980b868725387e984f9dfa450c03ecb342e931edb800f9cd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98062d0315b67fff2f6dad3227cece0aa9","guid":"bfdfe7dc352907fc980b868725387e9867b26c606bb710fccdd2fd1f1416c5d7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e05dd95c0e8fda1d3a8facd0610a4b71","guid":"bfdfe7dc352907fc980b868725387e986ca44ce3a1a16b3e89f53c421a9ac7fe"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d9cc0e3074ade12c6a0ff1b268d69877","guid":"bfdfe7dc352907fc980b868725387e983513ec410df65abe3e5755875a07a7e8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98afb23271f996080c0f493b9b3970c13c","guid":"bfdfe7dc352907fc980b868725387e98af5ecc1d3ef4253269c6a39aa0aed633"},{"fileReference":"bfdfe7dc352907fc980b868725387e98591014009a78d805568e47da3155f96c","guid":"bfdfe7dc352907fc980b868725387e9863000c13a70bbdbaa204b6986cb234f2"},{"fileReference":"bfdfe7dc352907fc980b868725387e980c503066a8d12b33d1dac0d190ee7782","guid":"bfdfe7dc352907fc980b868725387e98a0da5eab9f177310a765b1ad1100ec15"},{"fileReference":"bfdfe7dc352907fc980b868725387e9881df42ca3d4604f7e2cfea47beb4ca17","guid":"bfdfe7dc352907fc980b868725387e982dc2abc27847b9d588367901dcd9988a"},{"fileReference":"bfdfe7dc352907fc980b868725387e981945f0eb7dc530e6cb60edce661ef89a","guid":"bfdfe7dc352907fc980b868725387e9815f70a30a01f0adb681c1d5cc282b73b"},{"fileReference":"bfdfe7dc352907fc980b868725387e983fd93fac530279089e5e5073c4a2c072","guid":"bfdfe7dc352907fc980b868725387e986f339ee6a4f0262e65c4d9a8410a7336"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ea261f0880872b380bedc98dbd25631f","guid":"bfdfe7dc352907fc980b868725387e985a00fc546c1f29ccd2fea02b354008f6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b6181d284445cde5dd76bda5bb770879","guid":"bfdfe7dc352907fc980b868725387e9808d380dd72dc3eca0c977340595510cf"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d78364fbe4518c9a29cffbd19b2c71ce","guid":"bfdfe7dc352907fc980b868725387e9890b58e0c237fb7e67f8d71f8253f007c"},{"fileReference":"bfdfe7dc352907fc980b868725387e9824e33cca16721f2027fb7bad853ec643","guid":"bfdfe7dc352907fc980b868725387e984dea4a0aa13a3f94cf84f46514e72e34"},{"fileReference":"bfdfe7dc352907fc980b868725387e9829897cdfc92bc7268d92fc00826202e9","guid":"bfdfe7dc352907fc980b868725387e9883a6cd77f1a043013131e89e31aeece2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f2659f1e28f3446c0951ed4e0cfda4c8","guid":"bfdfe7dc352907fc980b868725387e986dd702921ad47edef6badbea2b38cb71"},{"fileReference":"bfdfe7dc352907fc980b868725387e98125ce290593f358bdc99749f35247fab","guid":"bfdfe7dc352907fc980b868725387e980905aeb1f0cce1872b90c7244ab002b9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98205ec7b1c28ebb06ade35cd1fa341ba0","guid":"bfdfe7dc352907fc980b868725387e98c8bd1ce9dc6e5a763c46f28919cd7f02"},{"fileReference":"bfdfe7dc352907fc980b868725387e98809409cb027066389a5795872ac588cd","guid":"bfdfe7dc352907fc980b868725387e981286f6b4b6c104cab5276ff93ef01b12"},{"fileReference":"bfdfe7dc352907fc980b868725387e984559b4fd4202895b75dc66ede5b781f4","guid":"bfdfe7dc352907fc980b868725387e98ee53b448ca6ecf19acdc9ce4b84b7a1c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98625cc54b7e7def606b65413cc0124e28","guid":"bfdfe7dc352907fc980b868725387e98182818547d581758207f054e0d87e645"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f675c1f88dd3984961db267b92f5fbe5","guid":"bfdfe7dc352907fc980b868725387e98769697f7b6079b274f7bd8da5a826c76"},{"fileReference":"bfdfe7dc352907fc980b868725387e983888394e65011ad59666f7a3af4f1bd6","guid":"bfdfe7dc352907fc980b868725387e981eaf9c4becfde6f815e5108fafb45595"},{"fileReference":"bfdfe7dc352907fc980b868725387e982e497713d18e0e48763b33527b1b0dc1","guid":"bfdfe7dc352907fc980b868725387e986fac004922cfc47a10ef5a519a970cb3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c81bbf9e2eb8dc321c67eba3ba3b80b3","guid":"bfdfe7dc352907fc980b868725387e98b59413539144f66638890910336beb53"},{"fileReference":"bfdfe7dc352907fc980b868725387e981b78d8f1cd80b6a0749a88ac6576cf6d","guid":"bfdfe7dc352907fc980b868725387e98a61c48d51c82ebffe0052064b944a5e3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f5c27fc32d722da67cf36fc9bb4a6b53","guid":"bfdfe7dc352907fc980b868725387e98e5cd9f75e067de5c408732eb32af7ad6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fdfe1a2b63e561ab4ea63b9472cec5d8","guid":"bfdfe7dc352907fc980b868725387e98620dec9b07f77702cff839f9d53198ea"},{"fileReference":"bfdfe7dc352907fc980b868725387e988d07f6cdecb770a7f852e90574e74a08","guid":"bfdfe7dc352907fc980b868725387e98351e63b98107d331c67b40787d87a1fb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c7c45292b121868b939e4863f9812497","guid":"bfdfe7dc352907fc980b868725387e986afecccd206df47190d2856e63eb8219"},{"fileReference":"bfdfe7dc352907fc980b868725387e984c1307586fc8b490ffa8c6041d0cc17d","guid":"bfdfe7dc352907fc980b868725387e98f4ae896f3023c07a13ec69b5703ae5de"},{"fileReference":"bfdfe7dc352907fc980b868725387e9849c6212d31b9c9f34e35595c06db4a58","guid":"bfdfe7dc352907fc980b868725387e98a27c762c35c20fabcffd8a7839e8b7ed"},{"fileReference":"bfdfe7dc352907fc980b868725387e986c1595591faf77978e0b1d62129253a9","guid":"bfdfe7dc352907fc980b868725387e98ab1c1d5fde0cb44d70778879967e3be8"},{"fileReference":"bfdfe7dc352907fc980b868725387e9823cd3dce0b1c8e3d32903f5d586a232f","guid":"bfdfe7dc352907fc980b868725387e985baecca818dab4e3921c09ffdf96848a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9822824ce6d92f986c1126319dc6da0983","guid":"bfdfe7dc352907fc980b868725387e98fce84f236b0d418bee80669b1e31a59c"},{"fileReference":"bfdfe7dc352907fc980b868725387e9831bc2e0203500425211e153960b08851","guid":"bfdfe7dc352907fc980b868725387e9820d4bf77b6328c7a1d05ebe7569435ff"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ace9ddf23fa508ee835d162ad30f03f8","guid":"bfdfe7dc352907fc980b868725387e984837784b122281bb1b7ee58cb7e569c4"},{"fileReference":"bfdfe7dc352907fc980b868725387e985c0044027bab5a4704060e4e5f904e07","guid":"bfdfe7dc352907fc980b868725387e98447fcc2b8dcbfa180df67bf78aaa27ba"},{"fileReference":"bfdfe7dc352907fc980b868725387e982b28d2af4ed55002b7a46662ca301ec2","guid":"bfdfe7dc352907fc980b868725387e98547cf7a49b2f43ae5e2188be0dd9c3f6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98df1d24508b0a61d90da9ae1ce83f135d","guid":"bfdfe7dc352907fc980b868725387e98272a3db2c21573fa85dd3e4b9a9a4f0e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bb54e277ca1f8b4b69e603b3b63c82b4","guid":"bfdfe7dc352907fc980b868725387e9824c1db35aa68bad5bd124309ba2f00ac"},{"fileReference":"bfdfe7dc352907fc980b868725387e9833a95fec9528d2a052c5b3cfdcf8d027","guid":"bfdfe7dc352907fc980b868725387e98743764318987e0399361d5036cd769ac"},{"fileReference":"bfdfe7dc352907fc980b868725387e983e787a852909552410851f61f7b406bb","guid":"bfdfe7dc352907fc980b868725387e98e59aec6bf96d63ad10de06d3db5402df"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f492ea79b388c9250a6bad9779ceb907","guid":"bfdfe7dc352907fc980b868725387e983cf18047816c9bcdc6137aea8f71c3e7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98193a4a8d06e581888973779d8a4292ba","guid":"bfdfe7dc352907fc980b868725387e98b3ba6898b456c5a5f1b453d7449101bc"},{"fileReference":"bfdfe7dc352907fc980b868725387e9824d0ef168891305517e4122463af7708","guid":"bfdfe7dc352907fc980b868725387e984b3100bafdb96263ac5e22ef0f45c6e2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a89d7b5ab8c0c853cd3e782f46029618","guid":"bfdfe7dc352907fc980b868725387e987e00bfd5179cceec11978ec1e4333cf8"},{"fileReference":"bfdfe7dc352907fc980b868725387e983bc3a616028938c6883fd9cb644df009","guid":"bfdfe7dc352907fc980b868725387e9812071a2732fe1247ffc8a88378a60aec"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ac3fe81c8c0c7aa1e06d823a8e25bcbb","guid":"bfdfe7dc352907fc980b868725387e985b829b0882ad1d9f267f372daf1a2df8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e7d26959b1ccb56da530e11181107067","guid":"bfdfe7dc352907fc980b868725387e989057dc058973d87821804340442f0311"},{"fileReference":"bfdfe7dc352907fc980b868725387e989d93693383d54a98e8156ce3a768dcf5","guid":"bfdfe7dc352907fc980b868725387e986d94d09fcb9ad47fca4816dd0637f6a9"},{"fileReference":"bfdfe7dc352907fc980b868725387e9879aa65ce6bd68dd060dcdc12ac4ec26b","guid":"bfdfe7dc352907fc980b868725387e98c65b2433a92d1258730fed412c3fa110"},{"fileReference":"bfdfe7dc352907fc980b868725387e9871419ad767dfae1901a2b2b3a6728a10","guid":"bfdfe7dc352907fc980b868725387e984112a17e4acfc9c01015df3f67660aa6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bb67c48ad7cd0ce696617dd0f2dd24ff","guid":"bfdfe7dc352907fc980b868725387e9819b97a15748320df036dafcb5ae1b1fa"},{"fileReference":"bfdfe7dc352907fc980b868725387e98447a26ccb3ff492a89196dba6818c702","guid":"bfdfe7dc352907fc980b868725387e98dfa7100dc58ea1b8dcabd3ea66bf29eb"},{"fileReference":"bfdfe7dc352907fc980b868725387e9816afa3335d6fe78b94816ed210faca3b","guid":"bfdfe7dc352907fc980b868725387e9849a7735fdf37e95dab7cd27884c53a50"},{"fileReference":"bfdfe7dc352907fc980b868725387e985edf2277033ca116961d5240bac652e4","guid":"bfdfe7dc352907fc980b868725387e985c02b48f9d2379fceccccda5069cce3f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e3a754a55b63ae4cebfe8b67476e0d4f","guid":"bfdfe7dc352907fc980b868725387e9812c9b640d076d31662d7140195cf4e90"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e7731c7ae539590ab60a92f58b101bfc","guid":"bfdfe7dc352907fc980b868725387e98c1ce1fa8a489b9597f5ac85ab3846b16"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f24118d67fa5d576902b453ca32fb4d4","guid":"bfdfe7dc352907fc980b868725387e984b5fa0136f1bef1dd8e54c75ba9e19e4"},{"fileReference":"bfdfe7dc352907fc980b868725387e984f83a247093b7bfae30dbc56323b72cd","guid":"bfdfe7dc352907fc980b868725387e98f6bc70812a5b8c3a78865b93c308dbae"},{"fileReference":"bfdfe7dc352907fc980b868725387e984364ba2cb29c17db3b6fd556b9461501","guid":"bfdfe7dc352907fc980b868725387e98e420b8aaaeff5537a16ae6592cdfb45f"},{"fileReference":"bfdfe7dc352907fc980b868725387e9891ed4109c5eb8623e4e20ccfd3a548c0","guid":"bfdfe7dc352907fc980b868725387e98f8d7742cf066bd000a917927d91a56b1"},{"fileReference":"bfdfe7dc352907fc980b868725387e984179e602b4169c925fc952b9a7fdca9b","guid":"bfdfe7dc352907fc980b868725387e982180e386946d084b6bb69dcc6e7ee2e6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98524ba53a36de77eb59d6fdee45ea1b55","guid":"bfdfe7dc352907fc980b868725387e981219b4600b3ff3785132e0a74dcffaac"},{"fileReference":"bfdfe7dc352907fc980b868725387e9856b77f5d4bdfb03262bb4e1e8e7143ca","guid":"bfdfe7dc352907fc980b868725387e98f3e34710cafd10c751c2fc24e5929409"},{"fileReference":"bfdfe7dc352907fc980b868725387e98038d4bb405cbab04d9c45c44a91be1b7","guid":"bfdfe7dc352907fc980b868725387e98f9ff5f749bb8e3dcb1fbd7efaef9fc96"},{"fileReference":"bfdfe7dc352907fc980b868725387e980ed28895b243791a16c810c27926dc18","guid":"bfdfe7dc352907fc980b868725387e988becbf0f0502be07e614b2b7d7334d74"},{"fileReference":"bfdfe7dc352907fc980b868725387e9885adef922d4f212fadd18a6dd044f40b","guid":"bfdfe7dc352907fc980b868725387e9800733a02edb47975f9eb7e6875ff042c"},{"fileReference":"bfdfe7dc352907fc980b868725387e9837cb67609c514d53e4a10de36e7f78ec","guid":"bfdfe7dc352907fc980b868725387e989314bf80be46f3d5d11e4c75f58b88c8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e5d43831254ef977325a522d2d940a49","guid":"bfdfe7dc352907fc980b868725387e98806789f37f4a53d31cf94c02d8695684"},{"fileReference":"bfdfe7dc352907fc980b868725387e98048450731da9483802b9461cc21ae323","guid":"bfdfe7dc352907fc980b868725387e982d6268877a92d25c11ccc698a75b75ea"},{"fileReference":"bfdfe7dc352907fc980b868725387e988c3dfdc8f32e8b0ee2f8b3b6cf1d064c","guid":"bfdfe7dc352907fc980b868725387e98f5a66d3b4277176c5f7a2522127f3ee4"},{"fileReference":"bfdfe7dc352907fc980b868725387e988e17c76ee5555095f2fa95f43a4e72c6","guid":"bfdfe7dc352907fc980b868725387e98da3f6f703668d470297b6f73716d09d9"},{"fileReference":"bfdfe7dc352907fc980b868725387e982d8837e191f0fa175aa00b83baacb255","guid":"bfdfe7dc352907fc980b868725387e98558995f38e6fa77e9cf42fb742d7c3c1"},{"fileReference":"bfdfe7dc352907fc980b868725387e9876c485feee1b0faa61a1a97d3f753383","guid":"bfdfe7dc352907fc980b868725387e98a813aa9602d81e29c860c96d579b2386"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f78374fdf5a6255861bc2352a4791663","guid":"bfdfe7dc352907fc980b868725387e98dd5aecc097e13168fe397ca1f63ebc16"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bbeb389b09796f2032daa7e87ab370cd","guid":"bfdfe7dc352907fc980b868725387e9801cebf56762ab44b38e6353caf1e92dd"},{"fileReference":"bfdfe7dc352907fc980b868725387e984c358cb4c701c123d1bb48f37397493b","guid":"bfdfe7dc352907fc980b868725387e98eba20015868bdb77793f8ffab1d5a5b2"},{"fileReference":"bfdfe7dc352907fc980b868725387e984088cba2c41b2738197177f9bc8d51ea","guid":"bfdfe7dc352907fc980b868725387e98dd2ddded7d7f369fa64e2053c2cae181"},{"fileReference":"bfdfe7dc352907fc980b868725387e980cec874f5b8b1dfdcf9545163078a43e","guid":"bfdfe7dc352907fc980b868725387e985997241b3e17df656cbea08515dec6fd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ea72748d61d05410fb756c299577fda2","guid":"bfdfe7dc352907fc980b868725387e98a8fc5834c07c0fef44b3b146db3308dc"},{"fileReference":"bfdfe7dc352907fc980b868725387e98603c3b0b96a55e5fee887d52736bfe0a","guid":"bfdfe7dc352907fc980b868725387e985cf4b54aecb470e608d4c1b2bfbf1f17"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f2bb2031c53974cc40035b69831f3c8c","guid":"bfdfe7dc352907fc980b868725387e988c3fe2c3fc4594a05c734dd4e9024c3a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9827af76263713220bb5d02faca65a9ace","guid":"bfdfe7dc352907fc980b868725387e98795d107ce2fd74dabcb424a4eb922476"},{"fileReference":"bfdfe7dc352907fc980b868725387e9818a3fa6b1f96308c082ec878842da4f8","guid":"bfdfe7dc352907fc980b868725387e98603ec3434f060f1b837135d06cc33269"},{"fileReference":"bfdfe7dc352907fc980b868725387e98771f1da054ff8fec8f5d2a87e3189d75","guid":"bfdfe7dc352907fc980b868725387e98aaf3eb76c1831698031e68c8816da124"},{"fileReference":"bfdfe7dc352907fc980b868725387e985021d8040547b0705b825475572a9283","guid":"bfdfe7dc352907fc980b868725387e98f28757084e15aa00494a4656c2564ea0"}],"guid":"bfdfe7dc352907fc980b868725387e98aa4f8dec43c51866c033ef61bcbc6529","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98610a0b6ce4a6a7b5e88da6a7d642d7c6"}],"guid":"bfdfe7dc352907fc980b868725387e98012965066f710b072918b5a020e2570d","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e9870612a2fb6b3cb40ba1d31358076df65","targetReference":"bfdfe7dc352907fc980b868725387e98f99e4f8be15916176d0b5f8867f3a63b"}],"guid":"bfdfe7dc352907fc980b868725387e9852c6c6744c8ee4f45c09c50e7780a323","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98f99e4f8be15916176d0b5f8867f3a63b","name":"Sentry-Sentry"}],"guid":"bfdfe7dc352907fc980b868725387e98b7cbd6928e589e6ea7e2866f501cf79b","name":"Sentry","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98347fc9eaf109d4977e6dc793359ac703","name":"Sentry.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=7374a73541f12dc8d7bbb5aef2aa9afc-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=7374a73541f12dc8d7bbb5aef2aa9afc-json new file mode 100644 index 0000000..0e25cb9 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=7374a73541f12dc8d7bbb5aef2aa9afc-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e983cec0bc18b2db7434234b0bb9f60b333","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/shared_preferences_foundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"shared_preferences_foundation","INFOPLIST_FILE":"Target Support Files/shared_preferences_foundation/ResourceBundle-shared_preferences_foundation_privacy-shared_preferences_foundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"shared_preferences_foundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98982f1d46f2703cb1147763ca4be6a6f5","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e981e9b29ba00bbe596786c71d5afe0807e","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/shared_preferences_foundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"shared_preferences_foundation","INFOPLIST_FILE":"Target Support Files/shared_preferences_foundation/ResourceBundle-shared_preferences_foundation_privacy-shared_preferences_foundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"shared_preferences_foundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9862f0989f936924c01c9d8bf8d041a358","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e981e9b29ba00bbe596786c71d5afe0807e","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/shared_preferences_foundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"shared_preferences_foundation","INFOPLIST_FILE":"Target Support Files/shared_preferences_foundation/ResourceBundle-shared_preferences_foundation_privacy-shared_preferences_foundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"shared_preferences_foundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98b38a5a564213d906fb7358398962f4ba","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98cec05b8866add98b3832fd6ae734b33d","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e984a90c902ce723f29618900543afc21a5","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e987c34275765e0b96690ad1d9b47e40e8b","guid":"bfdfe7dc352907fc980b868725387e98059b61b4ca6cda1be16d4e5ffb0f80f7"}],"guid":"bfdfe7dc352907fc980b868725387e98cfcbca9ecde0461c021048e4c6e03ebe","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98e0be3b0d5ad56f1985578b1f97431765","name":"shared_preferences_foundation-shared_preferences_foundation_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98ad625504a4c1e61077bbfd33bd1d1785","name":"shared_preferences_foundation_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=78aef59943a4c4a4992550ea0d404fe4-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=78aef59943a4c4a4992550ea0d404fe4-json new file mode 100644 index 0000000..72489f8 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=78aef59943a4c4a4992550ea0d404fe4-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98e00148ad347041302e1661066e859792","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/PINOperation/PINOperation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/PINOperation/PINOperation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/PINOperation/PINOperation.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"PINOperation","PRODUCT_NAME":"PINOperation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98d3ccf07ce60c6982d571503b5409970d","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ed6be5034c8c67cf428ef9e49687da42","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/PINOperation/PINOperation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/PINOperation/PINOperation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/PINOperation/PINOperation.modulemap","PRODUCT_MODULE_NAME":"PINOperation","PRODUCT_NAME":"PINOperation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98552a49c4e4d3a20d84a5ceb208bb9b2d","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ed6be5034c8c67cf428ef9e49687da42","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/PINOperation/PINOperation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/PINOperation/PINOperation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/PINOperation/PINOperation.modulemap","PRODUCT_MODULE_NAME":"PINOperation","PRODUCT_NAME":"PINOperation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e982be57788ebc8a782beb8a9c5834d9dcf","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98a9cf56f8a09c7db8f0cc2ad67590f922","guid":"bfdfe7dc352907fc980b868725387e98f6127dc51358f1a7a12d7f22236eebf1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988fbf13ccfcb7d56df15ef0357cfed7e6","guid":"bfdfe7dc352907fc980b868725387e9884c2b2bdb75ece7f0f03e58093e16935","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b4611dcee446c73bc8bb51f1e414d71f","guid":"bfdfe7dc352907fc980b868725387e98d3dda54252465a3fa2058d8a553767b5","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e986e29a4ad63491f5f014d2c1bce0b6b04","guid":"bfdfe7dc352907fc980b868725387e9822eac3bf7d653e153ce68f826bea5bec","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a483f96c826466bda0220e00c9e49f8b","guid":"bfdfe7dc352907fc980b868725387e981cc9a51c8302bab0e440880a4eeca351","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98611f1229ec62f09304342746c4756ce2","guid":"bfdfe7dc352907fc980b868725387e989af91908b2426d5c59686de4a5332306","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e987ee26af1cb4094a3e59f10685ba3aa46","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e989256ac257b3defb931338931bc891397","guid":"bfdfe7dc352907fc980b868725387e98911ceead930c2608daa05e28e7d38273"},{"fileReference":"bfdfe7dc352907fc980b868725387e986556e302ca1228c95c1f2cbb5bafb5ba","guid":"bfdfe7dc352907fc980b868725387e984f0e46eb9bd89c7f6660ad966fb6be1d"},{"fileReference":"bfdfe7dc352907fc980b868725387e9804020ca9e5b49b387c98c210d409afc3","guid":"bfdfe7dc352907fc980b868725387e988c04a4ff5db9989bd025f327dff16963"}],"guid":"bfdfe7dc352907fc980b868725387e98361cc2f85d299e0b8b336788f17c9e68","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98ee57ebcc421e06c173b32703b704fe4f"}],"guid":"bfdfe7dc352907fc980b868725387e981b9d78cf658a69794f72aedf055f4fe8","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e980bf07c8339fb922926379ea96049b5db","targetReference":"bfdfe7dc352907fc980b868725387e9872a1d0c9b4d65372f854ad7ceb04716f"}],"guid":"bfdfe7dc352907fc980b868725387e982bb559799c9a57072ea5569ab7e6ac04","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e9872a1d0c9b4d65372f854ad7ceb04716f","name":"PINOperation-PINOperation"}],"guid":"bfdfe7dc352907fc980b868725387e98d09cfc976f4622a7180a4de1a3b0a290","name":"PINOperation","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98ccd5063b353607b0bc283d743114ffaf","name":"PINOperation.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=883e1b0a416407bbc06abc4842125626-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=883e1b0a416407bbc06abc4842125626-json new file mode 100644 index 0000000..46d2ca8 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=883e1b0a416407bbc06abc4842125626-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98144cd18850e477837c238075d5256ffe","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-RunnerTests/Pods-RunnerTests-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-RunnerTests/Pods-RunnerTests.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9877be33549ce0177bec2b3c0496489e35","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e981b663a2c82f0220040296818ba53477e","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-RunnerTests/Pods-RunnerTests-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-RunnerTests/Pods-RunnerTests.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98e7c79ce1a80946228dcb1b503d3cb87c","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98965b92d39d30a7872295adc2841cd1b1","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-RunnerTests/Pods-RunnerTests-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-RunnerTests/Pods-RunnerTests.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e982b76ed9f5b48cab71bf125b80dcac5de","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98e5e8bcdff29e5f8321be18f7989b4bc7","guid":"bfdfe7dc352907fc980b868725387e98ca9af5e2c54f437f9ebb0c203883ccae","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e986e6b8bd91d07f2fb082ccd84c7dcacb1","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98022654f1ff78dd844d694dba2439dab2","guid":"bfdfe7dc352907fc980b868725387e9881f185e1672aa83b98d6e30b47f8f468"}],"guid":"bfdfe7dc352907fc980b868725387e98de09b1176c796343f1f9bcd422c73402","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98e7ac2b91ee49764a75561cf994247683"}],"guid":"bfdfe7dc352907fc980b868725387e983bb5c38e7891bdb262f8e050f7d97030","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e987fddc24c35656402341de288e0688015","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98312b4bc59bbbe2c06c205bf4da6737f5","name":"Pods-Runner"}],"guid":"bfdfe7dc352907fc980b868725387e98483832d3c820398e9d40e1a6904b03fe","name":"Pods-RunnerTests","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e984f9f39caeddf64cc331db2b69d62aa63","name":"Pods_RunnerTests.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=88ce58f5c4c9db3b4c8da44c4ce83a97-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=88ce58f5c4c9db3b4c8da44c4ce83a97-json new file mode 100644 index 0000000..523abcf --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=88ce58f5c4c9db3b4c8da44c4ce83a97-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e981bec8910b7d28be215d53481be797475","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/get_thumbnail_video/get_thumbnail_video-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/get_thumbnail_video/get_thumbnail_video-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/get_thumbnail_video/get_thumbnail_video.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"get_thumbnail_video","PRODUCT_NAME":"get_thumbnail_video","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98044f94ff1444d29eaa19265f3592e584","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c3b733e9ef0ed327bc439a2f469777f6","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/get_thumbnail_video/get_thumbnail_video-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/get_thumbnail_video/get_thumbnail_video-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/get_thumbnail_video/get_thumbnail_video.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"get_thumbnail_video","PRODUCT_NAME":"get_thumbnail_video","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9898695f5f4527df9ed851aaced3f2dae2","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c3b733e9ef0ed327bc439a2f469777f6","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/get_thumbnail_video/get_thumbnail_video-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/get_thumbnail_video/get_thumbnail_video-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/get_thumbnail_video/get_thumbnail_video.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"get_thumbnail_video","PRODUCT_NAME":"get_thumbnail_video","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98297f27130bea95107c4c5ba299fbee1c","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98655355ef116ad849adc14710a8876d53","guid":"bfdfe7dc352907fc980b868725387e9831e3799c249efe23fb1d32b2540730b3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f583ac326afb0485d75384ffb6dba690","guid":"bfdfe7dc352907fc980b868725387e98f6c8217e829849616c0e0f9ed67ef8c9","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98a1b7b943174cf7d20bacf8be6f4edca3","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e987a469c36e3142c42200830f7e024ed8c","guid":"bfdfe7dc352907fc980b868725387e98823ad2708956674991e742cbddd55829"},{"fileReference":"bfdfe7dc352907fc980b868725387e987d395f0f5798141178bbc687f4907437","guid":"bfdfe7dc352907fc980b868725387e989354d308d95088a3faef65f6a3b21330"}],"guid":"bfdfe7dc352907fc980b868725387e9868ce7fd6ca984cd2d25a70daf7a844db","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e9800d11bc5f8b05f6d3011b25551e8313d"}],"guid":"bfdfe7dc352907fc980b868725387e98584011742be37d3df0c8259bb6b54547","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98d30b8125552fbd01e58c3a8f2b41b93a","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98459ecbbef4dbbe8a07a0c87bad0e0d1b","name":"libwebp"}],"guid":"bfdfe7dc352907fc980b868725387e98626d6ae7a16904bbde60028e930a9b9d","name":"get_thumbnail_video","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e988021dca43136aad83767f846d89e6188","name":"get_thumbnail_video.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=890c5b35a2fc19fa56a15ceff3ee58d7-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=890c5b35a2fc19fa56a15ceff3ee58d7-json new file mode 100644 index 0000000..672e666 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=890c5b35a2fc19fa56a15ceff3ee58d7-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9852db5518fe94a802610aee1b1ea98697","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/sqflite_darwin","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"sqflite_darwin","INFOPLIST_FILE":"Target Support Files/sqflite_darwin/ResourceBundle-sqflite_darwin_privacy-sqflite_darwin-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"sqflite_darwin_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e987575a296efb8e72174203540de5dbefa","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ca5d52647c3b954ba805fb853478ece0","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/sqflite_darwin","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"sqflite_darwin","INFOPLIST_FILE":"Target Support Files/sqflite_darwin/ResourceBundle-sqflite_darwin_privacy-sqflite_darwin-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"sqflite_darwin_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9851a957fd965fbef630c94ce32c5b8fee","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ca5d52647c3b954ba805fb853478ece0","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/sqflite_darwin","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"sqflite_darwin","INFOPLIST_FILE":"Target Support Files/sqflite_darwin/ResourceBundle-sqflite_darwin_privacy-sqflite_darwin-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"sqflite_darwin_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98a84d7ca49dc8f9b00eb574821d858ad4","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98300669217af94e6798ad3881f6dcb6d9","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98a72df53f745e4d075597dd955a4977b8","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d68fc1d153189e9e8975516bcdd9b6b9","guid":"bfdfe7dc352907fc980b868725387e98c1fc15931b52c62a481e84f8b8a789e0"}],"guid":"bfdfe7dc352907fc980b868725387e984067ab5512efce7a6c90d0ce97692fc3","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9883134bb5f399cb37a1eb075d4fea30d8","name":"sqflite_darwin-sqflite_darwin_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9849c1d4b1200fcbf6f387f94121c7d0bf","name":"sqflite_darwin_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=8c702b8179c37d765fb3ae2833521625-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=8c702b8179c37d765fb3ae2833521625-json new file mode 100644 index 0000000..df44776 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=8c702b8179c37d765fb3ae2833521625-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e987ac03f99384c64c0e85fcd4ee8c85ddf","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PINCache","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"PINCache","INFOPLIST_FILE":"Target Support Files/PINCache/ResourceBundle-PINCache-PINCache-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"PINCache","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98ec8855ae73009538b3466f00f1512666","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9899422390852183ad01586a712fb65be1","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PINCache","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"PINCache","INFOPLIST_FILE":"Target Support Files/PINCache/ResourceBundle-PINCache-PINCache-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"PINCache","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e987b7765bd9d96c0d6ef3f5fd9cccbf8a0","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9899422390852183ad01586a712fb65be1","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PINCache","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"PINCache","INFOPLIST_FILE":"Target Support Files/PINCache/ResourceBundle-PINCache-PINCache-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"PINCache","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9840f118f2e81076d4e98751046d7702da","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98233ba29d8400ecf8a7482a7b670dcf08","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98744bf5ab97e2d4503e197826121cd818","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98777ef8dcdf2cbae87302dd3356219762","guid":"bfdfe7dc352907fc980b868725387e9841fd3b5d50c2b9153c1638fadca7a610"}],"guid":"bfdfe7dc352907fc980b868725387e98f25fc7157a6dbcbde7b3870f12c63fa1","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98956b709ce41abfabe34269a056c97973","name":"PINCache-PINCache","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98f0260a1047ea1c9b35c31cfd4df8bbeb","name":"PINCache.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=9cf32d5c1035240015248e91d8f9baa6-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=9cf32d5c1035240015248e91d8f9baa6-json new file mode 100644 index 0000000..be6b362 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=9cf32d5c1035240015248e91d8f9baa6-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98cba956d57cfe44411172ba385027fea9","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GTMAppAuth","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GTMAppAuth","INFOPLIST_FILE":"Target Support Files/GTMAppAuth/ResourceBundle-GTMAppAuth_Privacy-GTMAppAuth-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"10.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"GTMAppAuth_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98e71c3caa718858bf0caaf51ce46136a3","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e986282cf88e62b023588e08b945665fb72","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GTMAppAuth","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GTMAppAuth","INFOPLIST_FILE":"Target Support Files/GTMAppAuth/ResourceBundle-GTMAppAuth_Privacy-GTMAppAuth-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"10.0","PRODUCT_NAME":"GTMAppAuth_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e986794780ba243893715f9f528e31cd9d8","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e986282cf88e62b023588e08b945665fb72","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GTMAppAuth","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GTMAppAuth","INFOPLIST_FILE":"Target Support Files/GTMAppAuth/ResourceBundle-GTMAppAuth_Privacy-GTMAppAuth-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"10.0","PRODUCT_NAME":"GTMAppAuth_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e981c51720295a606e9f70cc2187f49010f","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e985fe0f0e3d134dfd40d5dfa3ce91b3656","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98942bf82c6daa029def2a9c378010072d","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98b7a0cb4cabaf7adf79aa69e9dac4e40a","guid":"bfdfe7dc352907fc980b868725387e98ea80735942d3612ecb56354e23cc3823"}],"guid":"bfdfe7dc352907fc980b868725387e98f80fe420a5aebc292aa80c3bce06d853","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9865af479ae97320e284a27cf831d212b3","name":"GTMAppAuth-GTMAppAuth_Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98e6360e40dc59e89c98ab031af57e52cd","name":"GTMAppAuth_Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=a3eeba2199c1fa4106132ff45176196b-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=a3eeba2199c1fa4106132ff45176196b-json new file mode 100644 index 0000000..1b0d6ef --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=a3eeba2199c1fa4106132ff45176196b-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98483d8bd2b885c4cd70bd6eb217c16a3d","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/video_player_avfoundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"video_player_avfoundation","INFOPLIST_FILE":"Target Support Files/video_player_avfoundation/ResourceBundle-video_player_avfoundation_privacy-video_player_avfoundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"video_player_avfoundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98fabdba19392099ae47cb6db0bdceb312","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98022b9671f20c7c4558d82328932f679a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/video_player_avfoundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"video_player_avfoundation","INFOPLIST_FILE":"Target Support Files/video_player_avfoundation/ResourceBundle-video_player_avfoundation_privacy-video_player_avfoundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"video_player_avfoundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98fce1422680a527ba4e0db178dc42896e","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98022b9671f20c7c4558d82328932f679a","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/video_player_avfoundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"video_player_avfoundation","INFOPLIST_FILE":"Target Support Files/video_player_avfoundation/ResourceBundle-video_player_avfoundation_privacy-video_player_avfoundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"video_player_avfoundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98a46f8f0a9a340256cae19741844da1fd","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98d7c48c8e09c131e47ab68e99b881f1ce","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98ab00ac26de9ce3145a4fc47e0f236755","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9822649e67d20ea7e6c146fd8c43eff34e","guid":"bfdfe7dc352907fc980b868725387e9883f6de7587fa083be9992b27f0fdefd0"}],"guid":"bfdfe7dc352907fc980b868725387e98b03751cecb70d99ad820cec111a33983","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98e4af9c7b061f7f7eb180b825e303ea04","name":"video_player_avfoundation-video_player_avfoundation_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98f295c3d20283631bbd62e6c18f7af077","name":"video_player_avfoundation_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=a987e269c18ed5c5d5215a562fe8f786-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=a987e269c18ed5c5d5215a562fe8f786-json new file mode 100644 index 0000000..191d1c2 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=a987e269c18ed5c5d5215a562fe8f786-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e987b64c6e213a672c37e13f9e176c26e66","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sign_in_with_apple/sign_in_with_apple-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sign_in_with_apple/sign_in_with_apple-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sign_in_with_apple/sign_in_with_apple.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sign_in_with_apple","PRODUCT_NAME":"sign_in_with_apple","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98e04a82309a870e76dbfc089893dc21e5","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9835c0f425583188146a59b33c739c98b4","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sign_in_with_apple/sign_in_with_apple-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sign_in_with_apple/sign_in_with_apple-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sign_in_with_apple/sign_in_with_apple.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sign_in_with_apple","PRODUCT_NAME":"sign_in_with_apple","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98e62697befae0cff1d4b061b15112dce8","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9835c0f425583188146a59b33c739c98b4","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sign_in_with_apple/sign_in_with_apple-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sign_in_with_apple/sign_in_with_apple-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sign_in_with_apple/sign_in_with_apple.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sign_in_with_apple","PRODUCT_NAME":"sign_in_with_apple","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98c14f6b4eb24eea594b9b968d7173ff4b","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9814c3eb0df3c2e52400b381d694dda564","guid":"bfdfe7dc352907fc980b868725387e983ad11d0b959389e1202d7e7d90f43a1b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ce88f7662b64673b3e02f36c04fdaaa6","guid":"bfdfe7dc352907fc980b868725387e989808f9fa26b9569ec2939cf64c5a3d42","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e988ea8506ab46dab8c6b3f6c3c964eb463","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e981049980b857ded311f46423483617e3a","guid":"bfdfe7dc352907fc980b868725387e9875955ed9fc49abd74985332e36e4e07f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ff36749fa25f5140b8e87aa21ff1a4a7","guid":"bfdfe7dc352907fc980b868725387e9897d3b573b659f2d6bce7953c00fc4406"},{"fileReference":"bfdfe7dc352907fc980b868725387e9823ac2ebb412b151e6d2f8a10c000e8f1","guid":"bfdfe7dc352907fc980b868725387e98d048200c9c6e1ee576fffd01cf466492"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bb14c5aa2e8c5f852cfe2c6928b58da8","guid":"bfdfe7dc352907fc980b868725387e985835f247a160b74cbf9922577cca7ed6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bea1d30a44ce7c3b81fcb1084ef81aed","guid":"bfdfe7dc352907fc980b868725387e9808c2752afbb02ee9624229d9cbf98fac"},{"fileReference":"bfdfe7dc352907fc980b868725387e980eb365f12058fd8fd2412172ce5175d1","guid":"bfdfe7dc352907fc980b868725387e9873ea0f7eed1e403e112962c15c4decb2"}],"guid":"bfdfe7dc352907fc980b868725387e98596e087e00d7d706a9c739cae77463a0","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98cae7937f72b3c24ef044df41eddc79f2"}],"guid":"bfdfe7dc352907fc980b868725387e987b99a7878263c9dd09ee1d54e4fe3820","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9865341048385217eb45e7940fba935a58","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"}],"guid":"bfdfe7dc352907fc980b868725387e9854872b53324b870c3c439eeaf7fabcb1","name":"sign_in_with_apple","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98dd16ca5dcad2b2e9092dc8bc02761d73","name":"sign_in_with_apple.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=afb41d015b49cab5af7f1e0c0cf121bc-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=afb41d015b49cab5af7f1e0c0cf121bc-json new file mode 100644 index 0000000..e64bcf1 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=afb41d015b49cab5af7f1e0c0cf121bc-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9855f667e8b10245566f5d18867d6262ee","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SwiftyGif","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"SwiftyGif","INFOPLIST_FILE":"Target Support Files/SwiftyGif/ResourceBundle-SwiftyGif-SwiftyGif-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"SwiftyGif","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e982978d13c8638fe30bb0ea972e63b1fb1","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984ce874e1e631db158308566573cb1939","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SwiftyGif","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"SwiftyGif","INFOPLIST_FILE":"Target Support Files/SwiftyGif/ResourceBundle-SwiftyGif-SwiftyGif-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"SwiftyGif","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98eba6e836189719c187c4a302089ada58","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984ce874e1e631db158308566573cb1939","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SwiftyGif","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"SwiftyGif","INFOPLIST_FILE":"Target Support Files/SwiftyGif/ResourceBundle-SwiftyGif-SwiftyGif-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"SwiftyGif","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9896b84c99da59040b51424db9595431d4","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e988752f1fc48aece728e3aed7767e8dfde","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98a4129eac4bd05060795c49672e40a674","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e989ffb87665984a777fccc697de96bbc02","guid":"bfdfe7dc352907fc980b868725387e98cf67b841a1350728665244536c940e15"}],"guid":"bfdfe7dc352907fc980b868725387e9863b6ab2a7f06cf36aec3b68e28218fec","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98f5cd644fc2aeb8654450a2168f52697c","name":"SwiftyGif-SwiftyGif","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9824d08d80a11ec6e34ca1c1e17eca0844","name":"SwiftyGif.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=b0740c2e5ee3162ec4b5d5b7be0c6bc9-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=b0740c2e5ee3162ec4b5d5b7be0c6bc9-json new file mode 100644 index 0000000..c76e67f --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=b0740c2e5ee3162ec4b5d5b7be0c6bc9-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98dfeaebcd8aea2e753049392f4566e8ab","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/AppAuth/AppAuth-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/AppAuth/AppAuth-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/AppAuth/AppAuth.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"AppAuth","PRODUCT_NAME":"AppAuth","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9838f359a914480866ab600caf00488685","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984e9846f9bd02001bffc698b449150ddb","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/AppAuth/AppAuth-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/AppAuth/AppAuth-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/AppAuth/AppAuth.modulemap","PRODUCT_MODULE_NAME":"AppAuth","PRODUCT_NAME":"AppAuth","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e989edf99ea2b4edea0486b888ea574a8ea","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984e9846f9bd02001bffc698b449150ddb","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/AppAuth/AppAuth-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/AppAuth/AppAuth-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/AppAuth/AppAuth.modulemap","PRODUCT_MODULE_NAME":"AppAuth","PRODUCT_NAME":"AppAuth","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e984e780033b66f90c8eafb514167bc3655","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98996e4e2d34c7f1c15aa385e4c8e87e1c","guid":"bfdfe7dc352907fc980b868725387e9835e2a4918aa87499eafe8d2c318d6057","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983d35b34becc98c98b6652f5bdb5052d1","guid":"bfdfe7dc352907fc980b868725387e98b593e36ce49085fc256381c249976e89","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988f5044eafae1f72ad0aad1fe9759751c","guid":"bfdfe7dc352907fc980b868725387e989bf70896a7d952854a45cb4218f76b4d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98436d2321216a1204bdca93d9f3408967","guid":"bfdfe7dc352907fc980b868725387e98346caaed2ae26f08752446e9256c142f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ef822ac1ee49268261b662fc9bb82a48","guid":"bfdfe7dc352907fc980b868725387e9809dc64621eb0d1bb4eaa9f784ea2628b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fdce16b94e155fb5bc1a2d82086f5c82","guid":"bfdfe7dc352907fc980b868725387e9865c03dfe610b76d73fa2f59e43a018b0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cdfd164da908078e7ef14596587f7dc6","guid":"bfdfe7dc352907fc980b868725387e9884ceb80c54ea87aff5dbd066062b4a71","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983ba782bb46a2a98078f1a8c69723e748","guid":"bfdfe7dc352907fc980b868725387e98fe627dd3f63d4e0a7df20f2b3672ea73","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c622245b5ed332ef8bca5cba07c45b9f","guid":"bfdfe7dc352907fc980b868725387e9838ccef920063996c68f88bfe3a18bbb8","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e986e24c2a6a19f55672e0bc7aaeab720bb","guid":"bfdfe7dc352907fc980b868725387e98c80aa6fff50b0a7c9b7b91eceb499214","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988680829ea010545d6a1fc5345a6c7950","guid":"bfdfe7dc352907fc980b868725387e98e453606ae485068ac9b5c3d7e2e73156","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e987ca52d0b5272c25e45c1cf3d3536d30f","guid":"bfdfe7dc352907fc980b868725387e987819d1a19f43324b45f2fa24bc0c1910","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d2b0da3a4ad50125d0aad4fe29dd45eb","guid":"bfdfe7dc352907fc980b868725387e98eba5b70564dbc01e034308e2b60099c4","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d4a58b0816b7ddda478a2195f64d2a44","guid":"bfdfe7dc352907fc980b868725387e980cb497c45839a0bcfef3ebb8f672ffe7","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e6ed0c91ff5f2ccda0b5c67ae9b885bc","guid":"bfdfe7dc352907fc980b868725387e98af75b105fee013ed545355245b5e69b0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e987bbe038a671268d08d46cc6591f1dd9a","guid":"bfdfe7dc352907fc980b868725387e981885ed15e4563f6f473659f9ecfa740e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b348c7ef456426d255457af034d9c397","guid":"bfdfe7dc352907fc980b868725387e986d0f9df46bf7c4def05e4fcf6d06f424","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a2f7792275344f9157ef3e8d5780abc9","guid":"bfdfe7dc352907fc980b868725387e98130c670a378f091964c9a99de0fe5b7d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983662254fa33ece809a1b7361798a882d","guid":"bfdfe7dc352907fc980b868725387e98f87fbe91077e9c74fe7865badd07a31c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9809cb7c7b2d002bada8e83c14888a7d1b","guid":"bfdfe7dc352907fc980b868725387e98cc1d4083e52518b1cc5752910682434f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9832f200727c5afdc838bebe606d6989a0","guid":"bfdfe7dc352907fc980b868725387e989d9b17b476cda6eba621548f1a6af13f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d9debd3a35e773ead5d79c4548431ceb","guid":"bfdfe7dc352907fc980b868725387e9824afb5e9dba236abb010b79abff0f867","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9815c91bd4101d4623e88c4f045dc27f1d","guid":"bfdfe7dc352907fc980b868725387e98b992e406c3077a33f1fce275d2065ba5","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c248004e480731c08adee24b05379247","guid":"bfdfe7dc352907fc980b868725387e988f5f902685df12af1171cd61797d96db","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981aa370d66e85e05338064c6edbe89f77","guid":"bfdfe7dc352907fc980b868725387e982b7492c45573bbea9cdcbecc7cf87842","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98404ffc92e76232747bd41f3a792cb17a","guid":"bfdfe7dc352907fc980b868725387e98b672363655c69ef93ba2a9c9be5f895e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e989761eb6db740e2136f7a2975a33ef304","guid":"bfdfe7dc352907fc980b868725387e986e689533f0a3a860cf0bce1a64e86052","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e989e26e887ed947c53e4557a4f3834259f","guid":"bfdfe7dc352907fc980b868725387e9825d3dbd3ac30cbdeab219a105a3d456a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dbecc8c9e6fe62d162edeef8f47d9f36","guid":"bfdfe7dc352907fc980b868725387e98fb9099af59321359500579ff7b37dd42","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9838b410d9776178a0a6ed799a04edf0dd","guid":"bfdfe7dc352907fc980b868725387e98da97860b81a183455b3334b97ffc71ac","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e984b3c5f24a96353460aa52bfa632ceae0","guid":"bfdfe7dc352907fc980b868725387e98d1367c09cfad97cb5b4021856409c6ee","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98959ebdb1843f628584278d2b2a0e5b89","guid":"bfdfe7dc352907fc980b868725387e9803f29ec614f88bd7f02db74712c55ce2","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9813ff98d711eab16db9f74f5c1248c882","guid":"bfdfe7dc352907fc980b868725387e98a3932466b9f0de0b5334b5f074680444","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f865bc5c6e9fbd2c8649c4c031c48736","guid":"bfdfe7dc352907fc980b868725387e9884d19e8d0f214dae2fb0d1d0a52ceb20","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983ac7bf5dd7cc5e3d3b407cf74756ce2f","guid":"bfdfe7dc352907fc980b868725387e98b4da687242434e8595f1ff648e8c4a8b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e986d39b68a8356c08def6fc556ae104ebb","guid":"bfdfe7dc352907fc980b868725387e98b700bfed93d1ff2f36b8ef73283ae720","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98709a761a1d871105331116e3228409c2","guid":"bfdfe7dc352907fc980b868725387e9888d278f864b10c77df0d7f868dd1f793","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9891446fe7b4a7dece8640f6884a460b8f","guid":"bfdfe7dc352907fc980b868725387e98a4efdd26a94a129105398d3e5f507af3","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9899425aa12cff2d7b9a11fdeb2197f21d","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98b5d225b711256a9973deae0809025b0b","guid":"bfdfe7dc352907fc980b868725387e984be062ecc4bbee3c433adf451ce52411"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ca77ea056651f04861ecf47ccaa24d82","guid":"bfdfe7dc352907fc980b868725387e987cba445125a90e17740ae3259421d1de"},{"fileReference":"bfdfe7dc352907fc980b868725387e98436f3f316bd551c4341844f883e3eeda","guid":"bfdfe7dc352907fc980b868725387e986022d06332a4a5d6714503199d9616b3"},{"fileReference":"bfdfe7dc352907fc980b868725387e989893775f4a9241c91570f3e275e6fc59","guid":"bfdfe7dc352907fc980b868725387e980ffbeed29b446138c39f2d12ae0bacb6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a999ddae6750aee1795959ddc33b9ca6","guid":"bfdfe7dc352907fc980b868725387e984c3c7b0f8a8dbf9df2b43fc36b4b27b7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a15be603ed9689691a2533f54df87bb2","guid":"bfdfe7dc352907fc980b868725387e98739a05f2a9c75b343f5d5fda34b3119f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aa590b628a3848d6cd511e1482f129b8","guid":"bfdfe7dc352907fc980b868725387e98d91d0b79211b92abfc44b031ddc05ea9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98011084e91af0544dacc51f15dd7f4d9b","guid":"bfdfe7dc352907fc980b868725387e988e10bf0f1cd908bde9a7973a46787d59"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a0f40d6d99c7919a26ec76ad1414f1e2","guid":"bfdfe7dc352907fc980b868725387e982618ebbfb872702353238696bb964a5f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98004310bf8c3563d60663b2475e05c5f4","guid":"bfdfe7dc352907fc980b868725387e9856fbf9d18faeac64b3c2ef26ff2593d2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f617a5564650282acb51825ae1f12ace","guid":"bfdfe7dc352907fc980b868725387e98e45ddc5562518fdb111f9039b9c6ab78"},{"fileReference":"bfdfe7dc352907fc980b868725387e98819a97f0778a64ffd6ef050339dda7e1","guid":"bfdfe7dc352907fc980b868725387e980c1e15e7d474b08633f2c62c1422b13b"},{"fileReference":"bfdfe7dc352907fc980b868725387e9869b1c4bab6d62a20728098bfd620541b","guid":"bfdfe7dc352907fc980b868725387e9844d621a6eec6be92fbca590a1cc3f158"},{"fileReference":"bfdfe7dc352907fc980b868725387e98003244a56b437ecb2c70bde801efe9dc","guid":"bfdfe7dc352907fc980b868725387e98d8051382ae86a58b0e7c039d3a514f74"},{"fileReference":"bfdfe7dc352907fc980b868725387e9858836cf9534cd711f2973418510d317a","guid":"bfdfe7dc352907fc980b868725387e98ac80c9ce6afe2e551f86b440c9dbce93"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ff1c0196f34973dc1a394da08b32bd1c","guid":"bfdfe7dc352907fc980b868725387e98d8f6ad70640c9359700dbae63aa10bb2"},{"fileReference":"bfdfe7dc352907fc980b868725387e986ba406595c9137d8367ae0fec493de87","guid":"bfdfe7dc352907fc980b868725387e987d16a421ae182f9a38c0084085e9f787"},{"fileReference":"bfdfe7dc352907fc980b868725387e987033476d2fea35b299e97c88ca0cac1e","guid":"bfdfe7dc352907fc980b868725387e98e197d434ddf398a4700a0843471f235a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b8771d682a2428842b52c01cb94d2742","guid":"bfdfe7dc352907fc980b868725387e98161e59725e2efbdd4f661863d905ed4e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fb7497f27a9887fe1d31ced69518fc82","guid":"bfdfe7dc352907fc980b868725387e98d51feb4cfec2ba0accac4dc05fa4583f"},{"fileReference":"bfdfe7dc352907fc980b868725387e988f8463dcd3afa4b45c7e27a2ed1a7c95","guid":"bfdfe7dc352907fc980b868725387e983da04708745588c8578e1c4335a9199f"},{"fileReference":"bfdfe7dc352907fc980b868725387e9801ac96d9f419c13c4d3e6ee1b0b681c8","guid":"bfdfe7dc352907fc980b868725387e98f37aa874181d44c0d99e9ef33d3e0451"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f7d84c3424a741c13248097331d827bb","guid":"bfdfe7dc352907fc980b868725387e9843c24117a75a316c2e1efae20106dfa8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d1b12257cfe1ab7190174fe2dc71ffd9","guid":"bfdfe7dc352907fc980b868725387e98bc7567ea31a2158840ca1dcc69f2e889"},{"fileReference":"bfdfe7dc352907fc980b868725387e9883352c742ef80ca980ac6e2ec4840af8","guid":"bfdfe7dc352907fc980b868725387e98283a6d0f0fc934c6fed39d296504a7a1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c66fa385bb62758dbd8a753c3a763444","guid":"bfdfe7dc352907fc980b868725387e989ef33ed7291b0a72a340fcfbd007790b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e1126f4e75dea7c4febe8dd3653fe08f","guid":"bfdfe7dc352907fc980b868725387e98a2725e5f07919e33a7cbfa9b8aa1e7e0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98eb9d5308fa5c79a9c4b8d45e5f734650","guid":"bfdfe7dc352907fc980b868725387e9875a71aeffb50242e060ca59b8648af50"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a04742e650b5536857d63dc557c7ed69","guid":"bfdfe7dc352907fc980b868725387e98ffe83a3be1ca2c6073058a8f9fad2ffa"},{"fileReference":"bfdfe7dc352907fc980b868725387e98da41e9b9411204e2567663b9b92f187d","guid":"bfdfe7dc352907fc980b868725387e982321fb9f249b015bccda654afd3e4bd0"}],"guid":"bfdfe7dc352907fc980b868725387e9881a6f91f9c4a78256c07328a94010f1b","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98c5ee603f3d0306d4328b6ce80791a4c9"},{"fileReference":"bfdfe7dc352907fc980b868725387e9803ee236a40fef55416b6acccb5786310","guid":"bfdfe7dc352907fc980b868725387e98de3535e725d5f81434d8d4dfa48ea4d0"}],"guid":"bfdfe7dc352907fc980b868725387e9824a834500be158586a81b15610dcdb61","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98d8db5a2f3c02b2760bde1e0f5901c864","targetReference":"bfdfe7dc352907fc980b868725387e98410c96b4e26fc36411e63b84c3491605"}],"guid":"bfdfe7dc352907fc980b868725387e98071d577239764044d9469461f6f20f20","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98410c96b4e26fc36411e63b84c3491605","name":"AppAuth-AppAuthCore_Privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98758cc842172da540ffb591e63e38dc1e","name":"AppAuth","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9831bed8c3b9a4033f1cf45ed4e397e6e7","name":"AppAuth.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=b4f15867e9afcc747260c57a11b0bd82-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=b4f15867e9afcc747260c57a11b0bd82-json new file mode 100644 index 0000000..2ef31ce --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=b4f15867e9afcc747260c57a11b0bd82-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f40a524c9a9b720eab38f32f93b699ae","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DKPhotoGallery","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"DKPhotoGallery","INFOPLIST_FILE":"Target Support Files/DKPhotoGallery/ResourceBundle-DKPhotoGallery-DKPhotoGallery-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"DKPhotoGallery","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98364e2f476e4f1e270e61f37618896f69","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a61afc599309c6316d5575e2d2c9da83","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DKPhotoGallery","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"DKPhotoGallery","INFOPLIST_FILE":"Target Support Files/DKPhotoGallery/ResourceBundle-DKPhotoGallery-DKPhotoGallery-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"DKPhotoGallery","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98b7ad3cb0c906e91a3cf51cb839aa3251","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a61afc599309c6316d5575e2d2c9da83","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DKPhotoGallery","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"DKPhotoGallery","INFOPLIST_FILE":"Target Support Files/DKPhotoGallery/ResourceBundle-DKPhotoGallery-DKPhotoGallery-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"DKPhotoGallery","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98654db606d38931cc7dcb27c6b3986ee6","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e985e9cf3dbf79c9fb57e67e68cd212b62a","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98086aa7c8654f08d44872fe4d0f019fd7","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98fae782eb7db542c8117253e4a99b1919","guid":"bfdfe7dc352907fc980b868725387e986f6191d45a0f49c3962c545dd11a2150"},{"fileReference":"bfdfe7dc352907fc980b868725387e980780fe74ea8184fd41b42dd074aa0c7c","guid":"bfdfe7dc352907fc980b868725387e98d0d22b16b98bb3352a18e1ef2a73cd2a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9824f4967d8eeba90efef60f211374ade7","guid":"bfdfe7dc352907fc980b868725387e983862b59df3089d171d390a5bc1217fad"},{"fileReference":"bfdfe7dc352907fc980b868725387e9823911894fdad9bc4d9cf0fb01ce54b8a","guid":"bfdfe7dc352907fc980b868725387e98973c58c64620701da10e7045a10bf8ff"},{"fileReference":"bfdfe7dc352907fc980b868725387e981faa4c42182fd65669396155b00b1cd0","guid":"bfdfe7dc352907fc980b868725387e987fca6af82432dfed3930de6ec5470a6b"}],"guid":"bfdfe7dc352907fc980b868725387e98a04e7f8ea86bd87a1205c0ff6bdfb9d2","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98d3f65728b12dd217475d1283ee417937","name":"DKPhotoGallery-DKPhotoGallery","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9845db4417944723d8b91f4a6c67e94d3c","name":"DKPhotoGallery.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=bb0ec5b1e14b84e15d873eac8a09bd39-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=bb0ec5b1e14b84e15d873eac8a09bd39-json new file mode 100644 index 0000000..77521d5 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=bb0ec5b1e14b84e15d873eac8a09bd39-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98750ef893532f252d748afdc3775f3731","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GoogleUtilities","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GoogleUtilities","INFOPLIST_FILE":"Target Support Files/GoogleUtilities/ResourceBundle-GoogleUtilities_Privacy-GoogleUtilities-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"GoogleUtilities_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98d5cd03d08ce6818d1bfdc9aad3a7102b","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98b5d95bb80b2175c0fd617a09c487b6be","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GoogleUtilities","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GoogleUtilities","INFOPLIST_FILE":"Target Support Files/GoogleUtilities/ResourceBundle-GoogleUtilities_Privacy-GoogleUtilities-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"GoogleUtilities_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9893523628fea25a2f6d9ad16d2eb2ace5","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98b5d95bb80b2175c0fd617a09c487b6be","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GoogleUtilities","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GoogleUtilities","INFOPLIST_FILE":"Target Support Files/GoogleUtilities/ResourceBundle-GoogleUtilities_Privacy-GoogleUtilities-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"GoogleUtilities_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98fe2077817c3ac16b7556e009cf459a75","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98457b7c7c52f7c00b25f666697455a782","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e982c88086e88fafbed8fba8ce32d41425b","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98e14a4b4a0af680d654d94db07c66eecd","guid":"bfdfe7dc352907fc980b868725387e9838686f36d85243afd506da9d679259e7"}],"guid":"bfdfe7dc352907fc980b868725387e987ca2538014bd0f331ed434f69f6d24f5","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e981a9fac6eb9c80f8eed49fda0531af6a4","name":"GoogleUtilities-GoogleUtilities_Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e981f1852a7971aaa5e479d216071487d3a","name":"GoogleUtilities_Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=bc684725a9f81bee7e41905945a7c796-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=bc684725a9f81bee7e41905945a7c796-json new file mode 100644 index 0000000..7b6d7dc --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=bc684725a9f81bee7e41905945a7c796-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98fd697e403563ad805b57963ffcfab70a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/path_provider_foundation/path_provider_foundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/path_provider_foundation/path_provider_foundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/path_provider_foundation/path_provider_foundation.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"path_provider_foundation","PRODUCT_NAME":"path_provider_foundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98ab88586633079f928287f370e8b6f07b","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98421b7b1c964452f17fe30563d0290935","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/path_provider_foundation/path_provider_foundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/path_provider_foundation/path_provider_foundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/path_provider_foundation/path_provider_foundation.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"path_provider_foundation","PRODUCT_NAME":"path_provider_foundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9880f884b2537bd891ed54ff6e3ab7d0ee","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98421b7b1c964452f17fe30563d0290935","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/path_provider_foundation/path_provider_foundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/path_provider_foundation/path_provider_foundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/path_provider_foundation/path_provider_foundation.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"path_provider_foundation","PRODUCT_NAME":"path_provider_foundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9858b9d941e76db42d349048c14af0e16e","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e981eab3ce181c9ff0e070f98fbc07da6ba","guid":"bfdfe7dc352907fc980b868725387e98e40234757d04478dc54a213f59e845fa","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98450b40315711083d32b0ed949174ff28","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98ed0d0e57f01a2a4054ec9ed6f31f76d2","guid":"bfdfe7dc352907fc980b868725387e98ee07124c5a56249624039545d27c3ef8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98eacd43492482602008db1d818025331a","guid":"bfdfe7dc352907fc980b868725387e986dfc1b5ca512f6383be32a7124385963"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bb8979ac57e465dc4281e2be258e754e","guid":"bfdfe7dc352907fc980b868725387e98d746aa9430fd2d1d914234552a9008b4"}],"guid":"bfdfe7dc352907fc980b868725387e98f5d455158bacea210fd45e1a8f3245fc","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e9829f34398048903731961241124ac546e"}],"guid":"bfdfe7dc352907fc980b868725387e987ebedde198dc993f3ca38aec4ed08768","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98234997a2811e55e2dfc23faf0b9d3093","targetReference":"bfdfe7dc352907fc980b868725387e987ea64ee8d53085bf9edd1a57aaf8cbb5"}],"guid":"bfdfe7dc352907fc980b868725387e98ac45f7d09c5ae0c1d8f7eb8e8ff004ab","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e987ea64ee8d53085bf9edd1a57aaf8cbb5","name":"path_provider_foundation-path_provider_foundation_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e9830037b09fee48cfce1f8562d753688c8","name":"path_provider_foundation","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98177b75fe6f519d73b22b382cca137f1c","name":"path_provider_foundation.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cb7840926af9980628c744a2a62de36d-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cb7840926af9980628c744a2a62de36d-json new file mode 100644 index 0000000..247bbf3 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cb7840926af9980628c744a2a62de36d-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980506e30044f99965ee32dcad10ea17c6","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GoogleSignIn","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GoogleSignIn","INFOPLIST_FILE":"Target Support Files/GoogleSignIn/ResourceBundle-GoogleSignIn-GoogleSignIn-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"GoogleSignIn","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e983812ff2d572934f8037a7170b1bf0b0d","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e989daf2e88caa8494e1832d8bce0659e6c","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GoogleSignIn","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GoogleSignIn","INFOPLIST_FILE":"Target Support Files/GoogleSignIn/ResourceBundle-GoogleSignIn-GoogleSignIn-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"GoogleSignIn","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e980e4323d9765755af813b2ce2e5a51fad","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e989daf2e88caa8494e1832d8bce0659e6c","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GoogleSignIn","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GoogleSignIn","INFOPLIST_FILE":"Target Support Files/GoogleSignIn/ResourceBundle-GoogleSignIn-GoogleSignIn-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"GoogleSignIn","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e986ccb65b71e4bce9d2c77a03a34728833","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e988e198311376d1dd43f214d8712e238c7","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e986f815f8abbc84fc69756f0c4533d5525","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9871d6dbad6196a0d535e30404c0337106","guid":"bfdfe7dc352907fc980b868725387e985c9c79a31bf65941e8aa965761e85dd5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ff9875af9671057c7feac89b6e0f24e1","guid":"bfdfe7dc352907fc980b868725387e98e45bbf89c549def905018051628d3ca3"},{"fileReference":"bfdfe7dc352907fc980b868725387e981ed3c091ed2ca6cf5861e86db4a4219d","guid":"bfdfe7dc352907fc980b868725387e98f3acca1874fe75b872d43c33e7913ce7"},{"fileReference":"bfdfe7dc352907fc980b868725387e9827a669f6fe595fe8dd32079d62be5360","guid":"bfdfe7dc352907fc980b868725387e989f60939c5594975385ed2338e8576941"},{"fileReference":"bfdfe7dc352907fc980b868725387e981236c3b753e4758f610f42cdb418c704","guid":"bfdfe7dc352907fc980b868725387e980a0011a0e29c6f7b15364bae6f7dbf4b"},{"fileReference":"bfdfe7dc352907fc980b868725387e985afd0140125190dd3812c4ae8db77a65","guid":"bfdfe7dc352907fc980b868725387e98148a704a549f041f406b291d5ab7a94d"},{"fileReference":"bfdfe7dc352907fc980b868725387e985cbb02109057f6b76ed9127dc449bea9","guid":"bfdfe7dc352907fc980b868725387e98cd781caaa360cf9291dd14a27f4b39eb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e43e63d02f37c14144166391949c0d3e","guid":"bfdfe7dc352907fc980b868725387e982d1765f26d48b503da04aeb420740b5d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e75adbbb494d6a711cade385df87456f","guid":"bfdfe7dc352907fc980b868725387e98539f5008c87b1dd9a7c0d77ba7aa5ff7"},{"fileReference":"bfdfe7dc352907fc980b868725387e981ee723fbca2297b6c2521b1ec7e71dbe","guid":"bfdfe7dc352907fc980b868725387e98056d340bd9c01cbc22791a89346b22e5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98abbc2bbf47ff8828424e56a5a865f083","guid":"bfdfe7dc352907fc980b868725387e98d002a165a9aa6003029538c539ea0482"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fac678e55ff26ef47e70a8b45af233ac","guid":"bfdfe7dc352907fc980b868725387e9839a683ca0df1c5374e9952bb54f98295"},{"fileReference":"bfdfe7dc352907fc980b868725387e9840a0e2c9088f1db15a645b3cf9e46453","guid":"bfdfe7dc352907fc980b868725387e984e616e98ddadc0246842fa1022be84e7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98554784dbdc41d2f3a5a9b3697c39e912","guid":"bfdfe7dc352907fc980b868725387e98bfb7112da499e915dc6e9220d7e47efd"},{"fileReference":"bfdfe7dc352907fc980b868725387e9809e80502663158518a38212cd46d5f3c","guid":"bfdfe7dc352907fc980b868725387e9849ef1a56bc30bbd3c8dd60e95ae2b606"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f14c239c96799c4674a4b3bd2652b526","guid":"bfdfe7dc352907fc980b868725387e981d4f42657b2a872ac72a010d4de1bc39"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f3cdc73820e26cf40cc13681d7a75061","guid":"bfdfe7dc352907fc980b868725387e9856b27a822bb23316bcd3164ad53a5794"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ade0aca1008c505f04cacdaa9fff3287","guid":"bfdfe7dc352907fc980b868725387e98885f3c6114052814af1aa367db496b6a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98968778dca678552db9c05cbd569cb8b4","guid":"bfdfe7dc352907fc980b868725387e98b50c1ebcc51e55b684e22e7153b3e852"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b4002ea9874206202efa9e2da8da1943","guid":"bfdfe7dc352907fc980b868725387e98258fb640f447ea3dcea57f4171123c65"},{"fileReference":"bfdfe7dc352907fc980b868725387e9895a7303c9473e33d07e82257d86c0ee1","guid":"bfdfe7dc352907fc980b868725387e9861332fdb9b2f478ae8a430a6c4e47fb9"},{"fileReference":"bfdfe7dc352907fc980b868725387e980412b030f5b7dd33774274676e293d4d","guid":"bfdfe7dc352907fc980b868725387e98793620da83e2aad6d2c71f1efa468849"},{"fileReference":"bfdfe7dc352907fc980b868725387e983ec58ce8b3b0764c0ef11c1266631639","guid":"bfdfe7dc352907fc980b868725387e983694d7b11d54e0ad4d0fb9c11927e453"},{"fileReference":"bfdfe7dc352907fc980b868725387e9843cd55c24f0af9abb9bc181d0bcda4de","guid":"bfdfe7dc352907fc980b868725387e98958572b8772d031591a08b843ca212a5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cae9812d105945a31fa562d166466d9c","guid":"bfdfe7dc352907fc980b868725387e9800806bb2e974d7fd5e26f88b57deb024"},{"fileReference":"bfdfe7dc352907fc980b868725387e984cc3c6a58243aef16426c45fcb875458","guid":"bfdfe7dc352907fc980b868725387e98d739b8a21cec14a39c70625f2d19956a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98772da3e09e47265745ad18ce50ae053b","guid":"bfdfe7dc352907fc980b868725387e98e6db256f19926a88cbddfc976c1efdf8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b799b3ef43a0118e9541b362d2c1d6b9","guid":"bfdfe7dc352907fc980b868725387e98179c96eb4029cc172c3eca33074c3aa8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c24361ab56355cb17d5cdd361d6908b9","guid":"bfdfe7dc352907fc980b868725387e9866d270010f2feb5d82d1e6a7857896e3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b3d207267e656f0de7db41dda827374f","guid":"bfdfe7dc352907fc980b868725387e98e44297d5782f19cc71b3940445aa10e3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bb029f4d3142860d9011f5d6f16d3557","guid":"bfdfe7dc352907fc980b868725387e983dc7f215e42e545d1a5f64427aa677ff"},{"fileReference":"bfdfe7dc352907fc980b868725387e982a78dacb329ba45ffb7a93d660551a67","guid":"bfdfe7dc352907fc980b868725387e9875133e6b01f538cb43dc30408be1aaf1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d81107b8899fb7a3b4016a55919340ed","guid":"bfdfe7dc352907fc980b868725387e98191254f972d1d530529119afae813d12"},{"fileReference":"bfdfe7dc352907fc980b868725387e984d20bdb704e5dbbf4668b4ad7ed420df","guid":"bfdfe7dc352907fc980b868725387e98fa131780328748ae70334da9ab058945"},{"fileReference":"bfdfe7dc352907fc980b868725387e98307c9583a8cff73e9d3414d0f8a350b5","guid":"bfdfe7dc352907fc980b868725387e98fbcb778967a6548a3cf2237c586d0701"},{"fileReference":"bfdfe7dc352907fc980b868725387e982e05ec53e2672fb1bec098d3dac70ac7","guid":"bfdfe7dc352907fc980b868725387e98507d628148ada8275e197fda8423ce0b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e64f3bec976cc97f25dcd3dc162494c1","guid":"bfdfe7dc352907fc980b868725387e98567c8228c6a512ce78e4a3fd35a2686e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a2032ca5760fa6862b5bf670df3e6ff9","guid":"bfdfe7dc352907fc980b868725387e981bdad14bc188215197253b7058140a25"},{"fileReference":"bfdfe7dc352907fc980b868725387e98818f8e7ad429e847a4868bf4a5e9e6a8","guid":"bfdfe7dc352907fc980b868725387e984107d22469e51d03f23d01dd1a5f7942"},{"fileReference":"bfdfe7dc352907fc980b868725387e981f7086b08042d34c5aba4a7d20c7fe78","guid":"bfdfe7dc352907fc980b868725387e9863b3e662a58fa196cb52f292dc3a1cc5"},{"fileReference":"bfdfe7dc352907fc980b868725387e9825730bafa00d2dc72c66c070d65b9cc1","guid":"bfdfe7dc352907fc980b868725387e98137408757d1a62a369a407cc56b2436e"},{"fileReference":"bfdfe7dc352907fc980b868725387e985e29b3e43249814a78f255556c3c63dc","guid":"bfdfe7dc352907fc980b868725387e985b11e32db30b4d60d2a720975e042d60"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a7a953bf22bb509218f0b84620020ef9","guid":"bfdfe7dc352907fc980b868725387e98870f0471e9c7dc942a59533bf479a230"}],"guid":"bfdfe7dc352907fc980b868725387e98de4833cb620cbf8d313837e9f9535224","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9832c61b747d3949a8e639c0653b6048d5","name":"GoogleSignIn-GoogleSignIn","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98f9027e60e784c40cc1e95eb21d378508","name":"GoogleSignIn.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cbf2960cbd0930c686fa47044b9459eb-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cbf2960cbd0930c686fa47044b9459eb-json new file mode 100644 index 0000000..4064341 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cbf2960cbd0930c686fa47044b9459eb-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98e00148ad347041302e1661066e859792","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PINOperation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"PINOperation","INFOPLIST_FILE":"Target Support Files/PINOperation/ResourceBundle-PINOperation-PINOperation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"PINOperation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98da110ded2811b30090e9fe25e01f89f3","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ed6be5034c8c67cf428ef9e49687da42","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PINOperation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"PINOperation","INFOPLIST_FILE":"Target Support Files/PINOperation/ResourceBundle-PINOperation-PINOperation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"PINOperation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9843dd2a40429837de0b810d7793995c73","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ed6be5034c8c67cf428ef9e49687da42","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PINOperation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"PINOperation","INFOPLIST_FILE":"Target Support Files/PINOperation/ResourceBundle-PINOperation-PINOperation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"PINOperation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98fd4bd507d9cbff1c52335cb8a0ea4357","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98286c9a2484dcbecb64313f053ad3e247","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e987a3ecb893cda51e7a014f857e20a8fc9","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e988dfde507a473af4e25078324b7214a1b","guid":"bfdfe7dc352907fc980b868725387e980f76634d01e8a38e415c2a7f7df804f0"}],"guid":"bfdfe7dc352907fc980b868725387e985f8c616df06ff50589daa605ca4e37ae","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9872a1d0c9b4d65372f854ad7ceb04716f","name":"PINOperation-PINOperation","productReference":{"guid":"bfdfe7dc352907fc980b868725387e987bf6d1ea999e726b389c1fcaff598482","name":"PINOperation.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cce67dca6b2e721e0a122845f2fa84c8-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cce67dca6b2e721e0a122845f2fa84c8-json new file mode 100644 index 0000000..2ed67b0 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cce67dca6b2e721e0a122845f2fa84c8-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f70f5b5132ed18bf605c024985b6611c","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/Cache/Cache-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/Cache/Cache-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"11.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/Cache/Cache.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"Cache","PRODUCT_NAME":"Cache","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9819c491b8b9c46d93df68f7aecb1d8f12","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98182554de8941372ede8df44273f13769","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/Cache/Cache-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/Cache/Cache-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"11.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/Cache/Cache.modulemap","PRODUCT_MODULE_NAME":"Cache","PRODUCT_NAME":"Cache","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9811a596f78049c98a81c550a1166e4b40","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98182554de8941372ede8df44273f13769","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/Cache/Cache-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/Cache/Cache-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"11.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/Cache/Cache.modulemap","PRODUCT_MODULE_NAME":"Cache","PRODUCT_NAME":"Cache","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9809662a081fc78a901f8776757b7525cb","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98834f69cf26b82c488064ee57fced8070","guid":"bfdfe7dc352907fc980b868725387e98fdf4f6f3cfcf202b7aad698ad22c5b39","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9803e718f716275816f86e5445ddde77c3","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98ee4feead94fdaa388a0aa1da10d03081","guid":"bfdfe7dc352907fc980b868725387e9848d1406a7d60baedd7e24312730253eb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b267bf8f27dc8f9633f31e14f865963c","guid":"bfdfe7dc352907fc980b868725387e981e9592da6ffb42a3df577179b093c769"},{"fileReference":"bfdfe7dc352907fc980b868725387e9813d7048e3c601667d4c1b2368c9da518","guid":"bfdfe7dc352907fc980b868725387e98b6c369e8f55aab5a5cf25ffbebae11a6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98177533ddc8a5590aaf23666590e0de14","guid":"bfdfe7dc352907fc980b868725387e9825c3e1b8fb91a580b78112fbddcf48ca"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ff37ae58009e058ab4984f4f10a075c6","guid":"bfdfe7dc352907fc980b868725387e98e9964713e58651f69e54a22b1267974f"},{"fileReference":"bfdfe7dc352907fc980b868725387e984e3dafd83ca4111df4cde1899384f89f","guid":"bfdfe7dc352907fc980b868725387e98cd56cd05f14a8debf3a4179596277e3a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9880dddb774d7d1a4a9e8b66a2543bd970","guid":"bfdfe7dc352907fc980b868725387e985db1d429593238942a0a8cbf9d8a7450"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d40fb5a0063a227208e00f16dc4ce599","guid":"bfdfe7dc352907fc980b868725387e98d5400cbcc9e7fd01bbe07a040ad8f238"},{"fileReference":"bfdfe7dc352907fc980b868725387e986255273ceec26cef9a33743fba2ef35b","guid":"bfdfe7dc352907fc980b868725387e9821d4bc4a974e61544fa603b54c089a75"},{"fileReference":"bfdfe7dc352907fc980b868725387e983ba35b109b358833ffec2bd3a6c2c6d1","guid":"bfdfe7dc352907fc980b868725387e988f7a63334447305bd9d740496c877c49"},{"fileReference":"bfdfe7dc352907fc980b868725387e980369313ddf00818b31a3c8aadd8626d1","guid":"bfdfe7dc352907fc980b868725387e989ff09a3d06875ff51d47f52155deb6af"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f337985a26c1e2eaa18042a1004987f8","guid":"bfdfe7dc352907fc980b868725387e9842294fe7997ab25594f86f6aa8cbc840"},{"fileReference":"bfdfe7dc352907fc980b868725387e980719a0ecd3d9429b8a4b6178161f29d3","guid":"bfdfe7dc352907fc980b868725387e98af97ed3e8fdbe59d796f5c9360ba99a5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a19601500a16f5dacd5cff5d2dbac90d","guid":"bfdfe7dc352907fc980b868725387e98ae14b2f88e9d6e21e1679180decc6bd9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ff9e0efdcc31290788ebede8b0fc91ca","guid":"bfdfe7dc352907fc980b868725387e98c61e280448ae53e7eadd7a89a60812fe"},{"fileReference":"bfdfe7dc352907fc980b868725387e98eaf8c2b86dd791b806e93db946b081ba","guid":"bfdfe7dc352907fc980b868725387e98f364057cd1b6bf0a2eb34f7d6013b3c4"},{"fileReference":"bfdfe7dc352907fc980b868725387e9817e4d89d4beebbb54daa923e79563605","guid":"bfdfe7dc352907fc980b868725387e984f4d71dbccccf8d11130b579b75bf89f"},{"fileReference":"bfdfe7dc352907fc980b868725387e987f5d6133f4b823b5676001856367b239","guid":"bfdfe7dc352907fc980b868725387e98138b8b6ed27930f5f488aa6779272b01"},{"fileReference":"bfdfe7dc352907fc980b868725387e983d156fc54ed3816babab663e8d67a491","guid":"bfdfe7dc352907fc980b868725387e9845ddc1b6d7f967964024aa9fe4efc2da"},{"fileReference":"bfdfe7dc352907fc980b868725387e9842fc4b1d8f8753e66fa4943bbb2c2f88","guid":"bfdfe7dc352907fc980b868725387e98de2ba9b84148be7141bb86c2813e417a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cf1fc4beaa19efc7ab86f8950fd10dcf","guid":"bfdfe7dc352907fc980b868725387e98ae294f3e9112714fa336d4bd9e5e8d2e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98af4ea6fc5f26eb1192d0f53a1319af03","guid":"bfdfe7dc352907fc980b868725387e98f3464d1b96a27489303cdfd1e5ca3824"},{"fileReference":"bfdfe7dc352907fc980b868725387e985f9a8f41663bccee0793176bf6f11b62","guid":"bfdfe7dc352907fc980b868725387e98845738e1a1702edfa6186be0207d4386"},{"fileReference":"bfdfe7dc352907fc980b868725387e98801f43a08d46317b261b74bee5a5483d","guid":"bfdfe7dc352907fc980b868725387e98963954c4d78a40da247d54205ddb4254"},{"fileReference":"bfdfe7dc352907fc980b868725387e9896d7a5f9173da19f8a0ad6f8eb503255","guid":"bfdfe7dc352907fc980b868725387e98f3a1924150a56961401d9b4d65b9a8b7"},{"fileReference":"bfdfe7dc352907fc980b868725387e982b12df098bbdb5c5d6e6899e15a4e841","guid":"bfdfe7dc352907fc980b868725387e98eee59649227b77af8222a536175b2df6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98db23451d2cb585a50816d949a43de5b7","guid":"bfdfe7dc352907fc980b868725387e98dba51e1ee85977e1ff5261b38d5cd31f"},{"fileReference":"bfdfe7dc352907fc980b868725387e986612a5aa23258a41878f3692bad068ca","guid":"bfdfe7dc352907fc980b868725387e9863729b96885c46e7ea3d56515f6496a0"},{"fileReference":"bfdfe7dc352907fc980b868725387e989588f910d6cf59505e889a92fa6c520a","guid":"bfdfe7dc352907fc980b868725387e98c31506c5c2dda7be099d37185af1c519"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d9ac9e14d78234e52cf56478bcab0696","guid":"bfdfe7dc352907fc980b868725387e986acbea0c6f997b01eb654df526e22167"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f1c21a118888846ae49b7c178705e45b","guid":"bfdfe7dc352907fc980b868725387e98dcd65ca4fe88590160b5f52308b0e6a1"},{"fileReference":"bfdfe7dc352907fc980b868725387e9895972485ce24c88e727bfa5f53b3ce5e","guid":"bfdfe7dc352907fc980b868725387e98641528d2d9f4cffef700013170d4e529"},{"fileReference":"bfdfe7dc352907fc980b868725387e987193d58a8619d21177bab8b742aef892","guid":"bfdfe7dc352907fc980b868725387e9899125d5b2f7b83a7ed38a0c6ba7cce26"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ea30ad25b73449567441824cf2c4cbe2","guid":"bfdfe7dc352907fc980b868725387e98a91d1190938238727483a444f3816d7e"}],"guid":"bfdfe7dc352907fc980b868725387e983a0aa2a1f5d801f8c09ee3559e1daed5","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e986c38e0252e037583c5b90ea60873512d"}],"guid":"bfdfe7dc352907fc980b868725387e9805391d61e995fa68e1f2d97a3734eef9","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98f88e3121499c86961ced27909ba01cd6","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98687f14f834c716a0a6b72b2f678d5d39","name":"Cache","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98fdbf8692076b1f163449c92d81d4a201","name":"Cache.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=d153a7b9bd4720b326f514093fa062c3-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=d153a7b9bd4720b326f514093fa062c3-json new file mode 100644 index 0000000..4b9fb98 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=d153a7b9bd4720b326f514093fa062c3-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98e2cb861f0c3d7355adc0b87017f02c72","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/image_picker_ios/image_picker_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/image_picker_ios/image_picker_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/image_picker_ios/image_picker_ios.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"image_picker_ios","PRODUCT_NAME":"image_picker_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9864dece58fe8898e7f0b46391fe2d091f","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9811f2ba2770a9de88641eb8273e3aa006","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/image_picker_ios/image_picker_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/image_picker_ios/image_picker_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/image_picker_ios/image_picker_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"image_picker_ios","PRODUCT_NAME":"image_picker_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e981b08ec94c515cc2b895c3ae9b4c03834","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9811f2ba2770a9de88641eb8273e3aa006","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/image_picker_ios/image_picker_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/image_picker_ios/image_picker_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/image_picker_ios/image_picker_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"image_picker_ios","PRODUCT_NAME":"image_picker_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e982b03ce4519745554a82e5cffe58f25e2","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9823fda51250fb9a46f112ae6c9f5012bf","guid":"bfdfe7dc352907fc980b868725387e9866bf3449eed6ab4ae907dc43916a91dd","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9850839acc9b469e43f328c2056eaabab0","guid":"bfdfe7dc352907fc980b868725387e98adc3b0f3b2af8e9b7c9c2615aa8994b7","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983f063d053695d267139f5464bc810ace","guid":"bfdfe7dc352907fc980b868725387e98afc5e5c257ce07d3cfaa9857675d0bed","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9813a57168f14d7cc0a2ca7d7463fbf7ff","guid":"bfdfe7dc352907fc980b868725387e98b1e61f196e718387d241ee50b723f211","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c47b2587ffd9d40975ace15673b26fb3","guid":"bfdfe7dc352907fc980b868725387e9825bf152e8d9e6b07406828647ff1151a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ae5998e506dbb9b999fe027e2086ab16","guid":"bfdfe7dc352907fc980b868725387e98a352aba37649cda3635c483f178749f6","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f02a12394f614f673704a71af8898c1d","guid":"bfdfe7dc352907fc980b868725387e982c2d7e9ecf504bef35535c30f22d7d57","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98311e077ed95a3fb4594b294e3b5ca460","guid":"bfdfe7dc352907fc980b868725387e98d74ae022f5aef6814611f174cab04147","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e987c543487347cac13b6462fae62598e7f","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e980ca42cb9880dfcc87fa505b7d120d4ca","guid":"bfdfe7dc352907fc980b868725387e986f6672082677e1b32a16619131fbca36"},{"fileReference":"bfdfe7dc352907fc980b868725387e98243570643f3171ca1dc8bcfa28465beb","guid":"bfdfe7dc352907fc980b868725387e986487ee0d3edc05fdfbbf22ef004ff5a7"},{"fileReference":"bfdfe7dc352907fc980b868725387e9813728463e8c567a4cb996ca4abfa5947","guid":"bfdfe7dc352907fc980b868725387e987aa63680d2840cfb1d170d04693dd983"},{"fileReference":"bfdfe7dc352907fc980b868725387e980210a3efa5fabed8022e9cce3c6f3b96","guid":"bfdfe7dc352907fc980b868725387e98d40d68ed00784d30b53390ad1f07019d"},{"fileReference":"bfdfe7dc352907fc980b868725387e9820449af1930e0fcf0c9675fb21b8dcea","guid":"bfdfe7dc352907fc980b868725387e98eaee9893684846155c530d52688d78b5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ecb8322458e1379bbb85a3169f9679af","guid":"bfdfe7dc352907fc980b868725387e98e0ab939fbafbd88342244f2b4a6d7f2e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98076775a8984730f436623db047239b5f","guid":"bfdfe7dc352907fc980b868725387e98068918c8c53891a76170543119a02405"}],"guid":"bfdfe7dc352907fc980b868725387e98ce67561b68c83c2e24888c94da999914","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98cf1fddec899afc6c9825c5eb5ec44493"}],"guid":"bfdfe7dc352907fc980b868725387e98434353ef3b38c3699582ee30b73fe6a8","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e9872ef11792920b3966776ea469c5092df","targetReference":"bfdfe7dc352907fc980b868725387e98082dc85da1fc941e5234c7cc1f11b27d"}],"guid":"bfdfe7dc352907fc980b868725387e9811e9e8a5f23273fd9234f4740a75ccb9","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98082dc85da1fc941e5234c7cc1f11b27d","name":"image_picker_ios-image_picker_ios_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e981f000f066404b97b12e9c4ca84d38d0f","name":"image_picker_ios","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e988e06e8c3685b7c12032d8059f412f4cb","name":"image_picker_ios.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=dd66991d6fba9b230f8f71981c4a5b8a-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=dd66991d6fba9b230f8f71981c4a5b8a-json new file mode 100644 index 0000000..f323bb3 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=dd66991d6fba9b230f8f71981c4a5b8a-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98490fde87ae055958de1d1f8e2cd97696","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GTMSessionFetcher","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GTMSessionFetcher","INFOPLIST_FILE":"Target Support Files/GTMSessionFetcher/ResourceBundle-GTMSessionFetcher_Full_Privacy-GTMSessionFetcher-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"10.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"GTMSessionFetcher_Full_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9860ac3a439ff230fb9d400fd3e303e625","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984ae7daf5f58d55b28e60985ea305a6ba","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GTMSessionFetcher","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GTMSessionFetcher","INFOPLIST_FILE":"Target Support Files/GTMSessionFetcher/ResourceBundle-GTMSessionFetcher_Full_Privacy-GTMSessionFetcher-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"10.0","PRODUCT_NAME":"GTMSessionFetcher_Full_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9802fffdbc20e0c1721c07949e921a2f11","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984ae7daf5f58d55b28e60985ea305a6ba","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GTMSessionFetcher","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GTMSessionFetcher","INFOPLIST_FILE":"Target Support Files/GTMSessionFetcher/ResourceBundle-GTMSessionFetcher_Full_Privacy-GTMSessionFetcher-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"10.0","PRODUCT_NAME":"GTMSessionFetcher_Full_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98acb8fa662d9c4b3325ebdafa5ad8aa1a","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e984585e195ea76849f6c5774f9fbe9c677","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9840fb746c4c2e6921576f57c969aca463","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98e5f5a6ca139e971b373b28dee0bc4868","guid":"bfdfe7dc352907fc980b868725387e98844b5bec73b56656a85a17dfd7272f05"}],"guid":"bfdfe7dc352907fc980b868725387e9865b79a72288882b3935d7047437181b9","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98d9a0c31ef553ffd1644ea2f5fc087d46","name":"GTMSessionFetcher-GTMSessionFetcher_Full_Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e989eab67172ffcb7faa039fae4c252dd63","name":"GTMSessionFetcher_Full_Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=e3d941345c3ed6b4b64f1a040fb349f9-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=e3d941345c3ed6b4b64f1a040fb349f9-json new file mode 100644 index 0000000..58b7bb3 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=e3d941345c3ed6b4b64f1a040fb349f9-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9807971a9517bde8ab94126d7c7ea18faf","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/wakelock_plus/wakelock_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/wakelock_plus/wakelock_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/wakelock_plus/wakelock_plus.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"wakelock_plus","PRODUCT_NAME":"wakelock_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98b581f5cca7b664f30d5d2a08317a7fad","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e987497a2e6d36626ea41277a9a858f90c8","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/wakelock_plus/wakelock_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/wakelock_plus/wakelock_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/wakelock_plus/wakelock_plus.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"wakelock_plus","PRODUCT_NAME":"wakelock_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e982dc3b692b5846f8a5361f859a8a40c5c","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e987497a2e6d36626ea41277a9a858f90c8","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/wakelock_plus/wakelock_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/wakelock_plus/wakelock_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/wakelock_plus/wakelock_plus.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"wakelock_plus","PRODUCT_NAME":"wakelock_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98d4337bec2123f6c918c81d0c4441d3e9","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98b7c6a1f47cdd76ee2b05730ceb9e3f91","guid":"bfdfe7dc352907fc980b868725387e9829f75911edf130d79203ed4ff38f3365","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e984b28bcff5671fc94abf8a223d44a74dc","guid":"bfdfe7dc352907fc980b868725387e98aaa60e1464ed61400d9fbc2827393dad","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983794e4dff317c4644264c1bc61f27550","guid":"bfdfe7dc352907fc980b868725387e987b4e05e90f5ef791f4ea7d6a779bf0e7","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e824cfb8763633af81b34235dde5f40b","guid":"bfdfe7dc352907fc980b868725387e9868b9f1b12a6ffe89443a9876f7986bec","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98b9f1355f6df9a69ad9da433a7e8846b7","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d46ec504b110745f479b4b37ea51bd6a","guid":"bfdfe7dc352907fc980b868725387e980d958cdb7060c936fe16a5868dfc2583"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b8831a289739d7ad79bf16542837390b","guid":"bfdfe7dc352907fc980b868725387e98912c6c7db76c14cb2c68bc076d512b2d"},{"fileReference":"bfdfe7dc352907fc980b868725387e987a93ccb5ea3b7083fba7e5d08b357a2a","guid":"bfdfe7dc352907fc980b868725387e985aaf9342e6ee6ee04f9b639ac78df3e7"},{"fileReference":"bfdfe7dc352907fc980b868725387e987a7d597e4c3ba769556c0021bce2a2c5","guid":"bfdfe7dc352907fc980b868725387e98988aacc62fb6dbaa5e820d834b3317e0"}],"guid":"bfdfe7dc352907fc980b868725387e98619c3275c00cd3fb7fc37783ababf508","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98a765c1dd97acaeed830d9198028ea4cb"}],"guid":"bfdfe7dc352907fc980b868725387e982c098536a961c11ba4db2cf46747cb65","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98e18604f991bd3d53fa2f3c653948fcec","targetReference":"bfdfe7dc352907fc980b868725387e98581b37173e8b6c1bb9293721a603b6cb"}],"guid":"bfdfe7dc352907fc980b868725387e987c005c81c357de3e21e69e3f12822157","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98581b37173e8b6c1bb9293721a603b6cb","name":"wakelock_plus-wakelock_plus_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e985ee86805101bc8fd279e03690a1048af","name":"wakelock_plus","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98076c34494e4629b9e213e9d6e2a4736f","name":"wakelock_plus.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=e65ba4d0ed7caef44047171439e0a1a3-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=e65ba4d0ed7caef44047171439e0a1a3-json new file mode 100644 index 0000000..fd92282 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=e65ba4d0ed7caef44047171439e0a1a3-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9823abccf175e3748989858fca523d051a","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SDWebImage","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"SDWebImage","INFOPLIST_FILE":"Target Support Files/SDWebImage/ResourceBundle-SDWebImage-SDWebImage-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"SDWebImage","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98bccd7b58394ebb889696a96340f8da88","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a2fbdfb06a54efc6c31a323919799308","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SDWebImage","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"SDWebImage","INFOPLIST_FILE":"Target Support Files/SDWebImage/ResourceBundle-SDWebImage-SDWebImage-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"SDWebImage","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e987c5c8abcc949ef19aba36e8180aef975","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a2fbdfb06a54efc6c31a323919799308","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SDWebImage","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"SDWebImage","INFOPLIST_FILE":"Target Support Files/SDWebImage/ResourceBundle-SDWebImage-SDWebImage-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"SDWebImage","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9834d4c4c0572f8c2e232624686dcdacfb","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98e4f05848c360a7f028adcf176cab1da4","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98b7367572a39af577e102d570105689c2","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98a94f8bd547042e933d9b2477d5fb3d9d","guid":"bfdfe7dc352907fc980b868725387e982902a9ec832fc452bf55dcede8022ac1"}],"guid":"bfdfe7dc352907fc980b868725387e9887c8bbcac5a50ac4ba8c905bf87bda32","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9826e2628dc041aabe2d77e75ccb1dc95b","name":"SDWebImage-SDWebImage","productReference":{"guid":"bfdfe7dc352907fc980b868725387e986798c379d76b6055dc2d719d4bd63a69","name":"SDWebImage.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=eace002b6dc322ecbca4ab861bcb9dc3-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=eace002b6dc322ecbca4ab861bcb9dc3-json new file mode 100644 index 0000000..b1f5120 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=eace002b6dc322ecbca4ab861bcb9dc3-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a1a6bf6218802cfcc0131de0a56b79e5","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/package_info_plus/package_info_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/package_info_plus/package_info_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/package_info_plus/package_info_plus.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"package_info_plus","PRODUCT_NAME":"package_info_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9897051622773a9cd7d8fae6ba3be0988b","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9874865a6a69751a866558c3d5b1bc5edd","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/package_info_plus/package_info_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/package_info_plus/package_info_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/package_info_plus/package_info_plus.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"package_info_plus","PRODUCT_NAME":"package_info_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98937974f840ad34ce898c3a62a0a52a8d","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9874865a6a69751a866558c3d5b1bc5edd","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/package_info_plus/package_info_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/package_info_plus/package_info_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/package_info_plus/package_info_plus.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"package_info_plus","PRODUCT_NAME":"package_info_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98f7c4cdd694f93dd8f9baf8a7be82dba5","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98f2e5868d14f01410abc58c219879d488","guid":"bfdfe7dc352907fc980b868725387e98b54019b0d68db017e3dd4f7a48fb91e4","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98119acdf47b100728e8b5072ae423c670","guid":"bfdfe7dc352907fc980b868725387e984a3cde720e889627fced5106f157da46","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9882bf16bb6e470ae110c9ab32e9a6916b","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e985217cfb3a0f0173fdafdf6859072dace","guid":"bfdfe7dc352907fc980b868725387e9837f9cdcacc63a92e15834b821df66fff"},{"fileReference":"bfdfe7dc352907fc980b868725387e98938fe42eccd51562b225c55eee77dcd5","guid":"bfdfe7dc352907fc980b868725387e98807c0f13ab38bf78a255422ace44851d"}],"guid":"bfdfe7dc352907fc980b868725387e9802e6907f47df982f511318ee6421866b","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98f9972619f6373dcc7a588e3720ff6b1d"}],"guid":"bfdfe7dc352907fc980b868725387e9853f06540a2b47e2bce34c4f52b96b9b7","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98d3f2eef9a97764f5506e64926c3bef1a","targetReference":"bfdfe7dc352907fc980b868725387e987b6c2f882d164ef4f3c76673562685a1"}],"guid":"bfdfe7dc352907fc980b868725387e981ef7df0f5e6435e5f909151e5c6d893c","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e987b6c2f882d164ef4f3c76673562685a1","name":"package_info_plus-package_info_plus_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98a5ae7244e41cc249cf7186dbb9962ecb","name":"package_info_plus","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98d9c4afca85b28d898f3002d0bb74c874","name":"package_info_plus.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f1325fbfe51d1bfe06adf6c62846c9f8-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f1325fbfe51d1bfe06adf6c62846c9f8-json new file mode 100644 index 0000000..f50779d --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f1325fbfe51d1bfe06adf6c62846c9f8-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9807971a9517bde8ab94126d7c7ea18faf","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/wakelock_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"wakelock_plus","INFOPLIST_FILE":"Target Support Files/wakelock_plus/ResourceBundle-wakelock_plus_privacy-wakelock_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"wakelock_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e986c35a4145b06f23d3cf4ede0099aa7db","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e987497a2e6d36626ea41277a9a858f90c8","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/wakelock_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"wakelock_plus","INFOPLIST_FILE":"Target Support Files/wakelock_plus/ResourceBundle-wakelock_plus_privacy-wakelock_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"wakelock_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98792ecb76510999a5a6e923827c1d08dd","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e987497a2e6d36626ea41277a9a858f90c8","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/wakelock_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"wakelock_plus","INFOPLIST_FILE":"Target Support Files/wakelock_plus/ResourceBundle-wakelock_plus_privacy-wakelock_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"wakelock_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e983ade0c8d71bd2cc49cf6271d3e75759b","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98111cf8754b5407db5bd21bbc9ae62ab2","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98cf8de1b03322df59edf07f6a254b2abb","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9862875e91e158e0bd0497f696c5d0c1a4","guid":"bfdfe7dc352907fc980b868725387e983eb83e5809f972a56aa465f2521efb4a"}],"guid":"bfdfe7dc352907fc980b868725387e98a0e5836113bcd596967d310235c9ee9f","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98581b37173e8b6c1bb9293721a603b6cb","name":"wakelock_plus-wakelock_plus_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e985bb85bab05ce137e1d4577ccc5273f1c","name":"wakelock_plus_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f150ab1e8e7dc6e16853a36e784efe90-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f150ab1e8e7dc6e16853a36e784efe90-json new file mode 100644 index 0000000..e1f5b4c --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f150ab1e8e7dc6e16853a36e784efe90-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98fd697e403563ad805b57963ffcfab70a","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/path_provider_foundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"path_provider_foundation","INFOPLIST_FILE":"Target Support Files/path_provider_foundation/ResourceBundle-path_provider_foundation_privacy-path_provider_foundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"path_provider_foundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98f224f7e48f462100af6489196765e77c","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98421b7b1c964452f17fe30563d0290935","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/path_provider_foundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"path_provider_foundation","INFOPLIST_FILE":"Target Support Files/path_provider_foundation/ResourceBundle-path_provider_foundation_privacy-path_provider_foundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"path_provider_foundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98391ad75329d01d1daf04dd170e85f838","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98421b7b1c964452f17fe30563d0290935","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/path_provider_foundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"path_provider_foundation","INFOPLIST_FILE":"Target Support Files/path_provider_foundation/ResourceBundle-path_provider_foundation_privacy-path_provider_foundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"path_provider_foundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98e847f053f56c3f074ce3b6d8e4490006","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e983f1de644ad716837dd6b0a35d7dbe302","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e982a88f4ba57e940f634dbaef4634c9581","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9818deba5db5bbe9743838078d412588c6","guid":"bfdfe7dc352907fc980b868725387e98e41358499e0121f836791e2f61cb9763"}],"guid":"bfdfe7dc352907fc980b868725387e98dc194231cfbd4b95cba2275495f3f937","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e987ea64ee8d53085bf9edd1a57aaf8cbb5","name":"path_provider_foundation-path_provider_foundation_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e986e649604f74c414a7c2dbe5ef4cc4e75","name":"path_provider_foundation_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f72858c3a5c384460053294ab3bbefe7-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f72858c3a5c384460053294ab3bbefe7-json new file mode 100644 index 0000000..52796f9 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f72858c3a5c384460053294ab3bbefe7-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98edc927ef808dc9c69e60bcbe1636b16d","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sms_autofill/sms_autofill-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sms_autofill/sms_autofill-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sms_autofill/sms_autofill.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sms_autofill","PRODUCT_NAME":"sms_autofill","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9822fcdab986e9a9eb694df462d14493ba","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9817d038dbda971a4614ab031ec2e7c07b","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sms_autofill/sms_autofill-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sms_autofill/sms_autofill-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sms_autofill/sms_autofill.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sms_autofill","PRODUCT_NAME":"sms_autofill","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e984a9c073f1815883157c611344f559bea","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9817d038dbda971a4614ab031ec2e7c07b","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sms_autofill/sms_autofill-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sms_autofill/sms_autofill-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sms_autofill/sms_autofill.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sms_autofill","PRODUCT_NAME":"sms_autofill","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9853fc032b4b8e6e52f67fc6dc61b0bf04","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e986062ad2fb9572a48e39b121020bb907b","guid":"bfdfe7dc352907fc980b868725387e98d91bd09cf16f3ea655758abbaf684f61","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bd0017951dac2b37603f9883a88a92d4","guid":"bfdfe7dc352907fc980b868725387e9887abd26967219abd76eb00927c88d73d","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98274c815632ac2cfbf9f6a59d2c8291e2","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e986f010232c3d5ad34cafdc9ed252e3b10","guid":"bfdfe7dc352907fc980b868725387e986b521e765777f4f2ae0e2ddb9b5956dd"},{"fileReference":"bfdfe7dc352907fc980b868725387e9874ea3be6ebbfc140ff5b3f5dbb5bc315","guid":"bfdfe7dc352907fc980b868725387e98f216411372ba143c70194c5c121f58de"}],"guid":"bfdfe7dc352907fc980b868725387e98412b66342ef133e364839b094ecefe63","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98f0c141d791f88520fddef2c9977e3d8f"}],"guid":"bfdfe7dc352907fc980b868725387e98b975bbf416266c1efd2f0b14ab5a3dee","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98d7bd9db137e9e64a9b205a2d97963a5a","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"}],"guid":"bfdfe7dc352907fc980b868725387e98e12182d29f945a15cf9d2a115b919169","name":"sms_autofill","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98968d09631a3fa5c7638f7aab8037022c","name":"sms_autofill.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=fc023069645e81d90d672c5ccaa9a74a-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=fc023069645e81d90d672c5ccaa9a74a-json new file mode 100644 index 0000000..d1c68d2 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=fc023069645e81d90d672c5ccaa9a74a-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9852db5518fe94a802610aee1b1ea98697","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sqflite_darwin/sqflite_darwin-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sqflite_darwin/sqflite_darwin-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sqflite_darwin/sqflite_darwin.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sqflite_darwin","PRODUCT_NAME":"sqflite_darwin","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98ee49f65d26d8a0c930cc03d16e0ffcc8","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ca5d52647c3b954ba805fb853478ece0","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sqflite_darwin/sqflite_darwin-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sqflite_darwin/sqflite_darwin-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sqflite_darwin/sqflite_darwin.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sqflite_darwin","PRODUCT_NAME":"sqflite_darwin","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e987d3fcd01a34fff9e18dec0764bcc371e","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ca5d52647c3b954ba805fb853478ece0","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sqflite_darwin/sqflite_darwin-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sqflite_darwin/sqflite_darwin-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sqflite_darwin/sqflite_darwin.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sqflite_darwin","PRODUCT_NAME":"sqflite_darwin","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e984def481d54810d0de6d3335b228b2a5d","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e987c84b00ffb0607561fdfb521489cb944","guid":"bfdfe7dc352907fc980b868725387e98f74bfe561cdc142d140be02f934f1dd5","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c8e360108ee2e1f62699ef57975dfbaf","guid":"bfdfe7dc352907fc980b868725387e9859ea82e057971f6585c23e0629da0838"},{"fileReference":"bfdfe7dc352907fc980b868725387e981c2e524df448ec5379c91610a0af54f1","guid":"bfdfe7dc352907fc980b868725387e982ed74ddcc2974a721c6052bc8574c94d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dec427cb4378a1cf1c1a5eaf60bc4086","guid":"bfdfe7dc352907fc980b868725387e98c638ad6e49644c2dd9c7a0f69190ac5d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c180991e9f6197b8c30b5ab78f406138","guid":"bfdfe7dc352907fc980b868725387e98d966ea1281f6a91a81f42d48d1872f50"},{"fileReference":"bfdfe7dc352907fc980b868725387e9813d63878936e0dfd0489465d9e4ea8e3","guid":"bfdfe7dc352907fc980b868725387e986e155438834541a7d76d246cd5abdb00"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ff3c9e8065ad758f9b2e560abdc7b59b","guid":"bfdfe7dc352907fc980b868725387e9859c8275833f4ee49e4714bc41eb1e659"},{"fileReference":"bfdfe7dc352907fc980b868725387e98229c9dc8d3f90d42d02df76e77208999","guid":"bfdfe7dc352907fc980b868725387e986b22609462b4233239cb7c9a221e9e63"},{"fileReference":"bfdfe7dc352907fc980b868725387e984fbce5ea987a9b1532ff61541cf87c11","guid":"bfdfe7dc352907fc980b868725387e98c48ebc9a3cd1735759e6cca592d5450f"},{"fileReference":"bfdfe7dc352907fc980b868725387e981947f810b0ebb95937f7183ac2ea0988","guid":"bfdfe7dc352907fc980b868725387e98a912ebdcf80fb2f93a853de17a1952b3"},{"fileReference":"bfdfe7dc352907fc980b868725387e9875923d8e0772f7b0db36579d32f49445","guid":"bfdfe7dc352907fc980b868725387e988ec4eb1a4c541cfb9b0fcccf8237bb60","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988e34a55db9095098db7a441065522a3e","guid":"bfdfe7dc352907fc980b868725387e98791e86ec84756c86fb0d15b2a4261be4"},{"fileReference":"bfdfe7dc352907fc980b868725387e9885e6bde4939849d8a7715e5d5b762fc1","guid":"bfdfe7dc352907fc980b868725387e9825b761453dc0eac71f4c7fbe6ffcc40c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f75e9257f8e084ca370d46dfe69314cb","guid":"bfdfe7dc352907fc980b868725387e9861983e92c953cfba9b9330cdcf4afe8a","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98cc465b98567e5be1dff8b7284a07e4e3","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98c4c973325f6885c1407918615777412b","guid":"bfdfe7dc352907fc980b868725387e985adaa6c4e40f33315ac0cec984200988"},{"fileReference":"bfdfe7dc352907fc980b868725387e9886ec81aeee49719355e8e46e427b1b75","guid":"bfdfe7dc352907fc980b868725387e98bf1790982bc04eac3e06ab5e371d6c93"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cb294a021298d283d77df78c5a104118","guid":"bfdfe7dc352907fc980b868725387e980f2403feed669c952284c16e88f58518"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ad7a26c5d770a43b1288fb8e328c090a","guid":"bfdfe7dc352907fc980b868725387e989fc437bcb8a2d2a1cfdb869b4460a604"},{"fileReference":"bfdfe7dc352907fc980b868725387e9807bdcddd5e597bd7a9182823d23f1a5e","guid":"bfdfe7dc352907fc980b868725387e986ba7fe2f9be0bd4e78fcda7dc7b10343"},{"fileReference":"bfdfe7dc352907fc980b868725387e9828fe20134422084898a6b58ea7cb5470","guid":"bfdfe7dc352907fc980b868725387e987e844dde1a707645fa1443b4dc8f58b5"},{"fileReference":"bfdfe7dc352907fc980b868725387e987b41de98677ad128a668140eb77340cc","guid":"bfdfe7dc352907fc980b868725387e98676284d6c751f8e5e484c13d47108fe3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aa588c49c0f29c2521e19ed9e78ab9ee","guid":"bfdfe7dc352907fc980b868725387e98d9f653069110e6ef3ecc4d8d36c0e68d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a1af171f5a917f60e0c6cbf3e5230e77","guid":"bfdfe7dc352907fc980b868725387e981d72a7e98d2a7d77e3c80c26f55e16de"}],"guid":"bfdfe7dc352907fc980b868725387e9837c2f0a37c50e959478519168227e455","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e982f461d51c284a55b8f869fc9092ae5dc"}],"guid":"bfdfe7dc352907fc980b868725387e98dd47f73652ff7b522b7942f6a87afd23","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98d17544c34b81de618417de5f9c91b4ec","targetReference":"bfdfe7dc352907fc980b868725387e9883134bb5f399cb37a1eb075d4fea30d8"}],"guid":"bfdfe7dc352907fc980b868725387e98e60a652c76bfee084293e97b00176921","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e9883134bb5f399cb37a1eb075d4fea30d8","name":"sqflite_darwin-sqflite_darwin_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e981304d3d2169071b3ca365b19f5340b7c","name":"sqflite_darwin","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98dbbec3eebed26c79cc653713be723aba","name":"sqflite_darwin.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=fc0c21a91c4c68cceb5eb78c9cd38e57-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=fc0c21a91c4c68cceb5eb78c9cd38e57-json new file mode 100644 index 0000000..ea49720 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=fc0c21a91c4c68cceb5eb78c9cd38e57-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98e985e378d71adcc73aaffb9c1f6c0b9b","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/better_player_plus/better_player_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/better_player_plus/better_player_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/better_player_plus/better_player_plus.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"better_player_plus","PRODUCT_NAME":"better_player_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98bce04919b890bd7aed80d2f6fa8850e8","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e988441e236375b4cb392ca55ffd653fa54","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/better_player_plus/better_player_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/better_player_plus/better_player_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/better_player_plus/better_player_plus.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"better_player_plus","PRODUCT_NAME":"better_player_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98a37971b3de621c0e880098ce46b6a95f","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e988441e236375b4cb392ca55ffd653fa54","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/better_player_plus/better_player_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/better_player_plus/better_player_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/better_player_plus/better_player_plus.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"better_player_plus","PRODUCT_NAME":"better_player_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98f292dc7022274121f181fce13cce41f0","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98263e6f9a5d92d4e8d2963c1154f461f8","guid":"bfdfe7dc352907fc980b868725387e98def3817ff757e8824fb55deff783e74d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e984418d0c3f75886b37556a3f3cc65867f","guid":"bfdfe7dc352907fc980b868725387e98d3f6cb3d6d13f5952189dca7019c4e8a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e984b948423f4e6b2300477d673886f65fe","guid":"bfdfe7dc352907fc980b868725387e98a525d24ea560a195f343bd7a4da9df7e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b9103e2271cbfc166fe2660fd2692d05","guid":"bfdfe7dc352907fc980b868725387e98787893c247d785e774cdb5a9b1d413cb","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e7ec57cf4f8204038df619242d2b526f","guid":"bfdfe7dc352907fc980b868725387e98d629e5c02acaf107788664fef609a357","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981ef4add4f0f7c3fd094353bf29f31e74","guid":"bfdfe7dc352907fc980b868725387e983114fc70a17993afe610b5a108b1ab0f","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e982c000c07650eaff32c57e4ed7a779f7d","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98188e3a6e5499c1698ca9920867c8e4f6","guid":"bfdfe7dc352907fc980b868725387e987d068e393c7db76c74bfb3478f647423"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ae3ca0a7ac9e8c184b40023fc7ee0a4f","guid":"bfdfe7dc352907fc980b868725387e981ebabe205c557e279d5887ba334a5ee2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c27645b99e2391255f580099ffbb29a1","guid":"bfdfe7dc352907fc980b868725387e98add256552759310d2ebd6e8d76b209a2"},{"fileReference":"bfdfe7dc352907fc980b868725387e9849ac3e04558e5f2867038a141f75ac97","guid":"bfdfe7dc352907fc980b868725387e98bf49c8a1a75d78998861fbc3f76013cf"},{"fileReference":"bfdfe7dc352907fc980b868725387e980b7def8b3ac13244f4046acc579bd47c","guid":"bfdfe7dc352907fc980b868725387e98d0886ad09c40f4a98ec7536038e936cd"},{"fileReference":"bfdfe7dc352907fc980b868725387e9868952393e262db434dad80282a46892a","guid":"bfdfe7dc352907fc980b868725387e9824298712a7118f05c333bf26b3ec5c80"},{"fileReference":"bfdfe7dc352907fc980b868725387e980867eb6bbb294c85db46f63f94e84058","guid":"bfdfe7dc352907fc980b868725387e98926603937a5484e83a973d5ff233d7f8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f5038db6efdaecd19977d1f892e78e56","guid":"bfdfe7dc352907fc980b868725387e9823fcc93dee70429b699c4afc34d205fa"}],"guid":"bfdfe7dc352907fc980b868725387e9849c17fa96abf8401a2430c1fe1b392c8","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e9807d167788c31b760c3b7dd16df674602"}],"guid":"bfdfe7dc352907fc980b868725387e98a5829fed6fe0b0d418f78ccfbe06fcac","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98025b77a20342d026edf273eff28d1d3d","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98687f14f834c716a0a6b72b2f678d5d39","name":"Cache"},{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98ae4cba9dafde33c1f8a32ad5773d6cd3","name":"GCDWebServer"},{"guid":"bfdfe7dc352907fc980b868725387e989f6c9e975471ecf29d91b182619839be","name":"HLSCachingReverseProxyServer"},{"guid":"bfdfe7dc352907fc980b868725387e980a765b211b0c8c508dddcb830a52bbab","name":"PINCache"}],"guid":"bfdfe7dc352907fc980b868725387e986cd267420621a3ff1d813b97fdcfc70c","name":"better_player_plus","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e982979aa52633ff059b6ad20ce50d04f84","name":"better_player_plus.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=fcd7f0e2fff58c71da870051fa213820-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=fcd7f0e2fff58c71da870051fa213820-json new file mode 100644 index 0000000..cb0cc9f --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=fcd7f0e2fff58c71da870051fa213820-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98483d8bd2b885c4cd70bd6eb217c16a3d","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/video_player_avfoundation/video_player_avfoundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/video_player_avfoundation/video_player_avfoundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/video_player_avfoundation/video_player_avfoundation.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"video_player_avfoundation","PRODUCT_NAME":"video_player_avfoundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98398bac938fb47b84c16f19633c15c92f","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98022b9671f20c7c4558d82328932f679a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/video_player_avfoundation/video_player_avfoundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/video_player_avfoundation/video_player_avfoundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/video_player_avfoundation/video_player_avfoundation.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"video_player_avfoundation","PRODUCT_NAME":"video_player_avfoundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9839d79a52f24f54321de12379511903ab","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98022b9671f20c7c4558d82328932f679a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/sentientgeeks/development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/video_player_avfoundation/video_player_avfoundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/video_player_avfoundation/video_player_avfoundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/video_player_avfoundation/video_player_avfoundation.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"video_player_avfoundation","PRODUCT_NAME":"video_player_avfoundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9894fef8acb7de742f96aaab49fd64da62","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e985adcb840da0c9eee8a4a30ade77d3164","guid":"bfdfe7dc352907fc980b868725387e980223af070454170a0b7d3b1361ba6800","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f45c79e93cf8410528c3aeccfd7e71cc","guid":"bfdfe7dc352907fc980b868725387e98af9baa1a214e18f0740673a53ee3a1e7","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c2c7e5fd2c68b441b72e779241aabe7c","guid":"bfdfe7dc352907fc980b868725387e98d361524d0bbc0eae975162423ea39391","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bbbc15346f0876ee6aedefbe49008dc3","guid":"bfdfe7dc352907fc980b868725387e98592724f0aead9aed6184ccba926c3358","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983e5903f2862b3a4f03ea07b55a81809f","guid":"bfdfe7dc352907fc980b868725387e985f4c9ea9715d308ccf7cfb4fa38d39f1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ae774d57e7a99e49f39b2447a3e723c3","guid":"bfdfe7dc352907fc980b868725387e985f4eb06ccf7b0e6b6f62b42e6e567952","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9832205c61db1273c6b79c226465dc657d","guid":"bfdfe7dc352907fc980b868725387e98200c518de51f12b07c10a1568b24e4a3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9870bef7a6e98605fbd37e3b645a9ab2f0","guid":"bfdfe7dc352907fc980b868725387e987423cabde9be5c9ce6ad4211d85a7a9c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e982852a3f15074edeb53702d3da7777293","guid":"bfdfe7dc352907fc980b868725387e986622024fa4c5026bce3d6bedb93708bf","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e989c358fdfaeee0dfc2f0bf32b43d3198b","guid":"bfdfe7dc352907fc980b868725387e988baaa201e8200465d5cad48cfc617506","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9889a993f10419282526149c65f05d1d6d","guid":"bfdfe7dc352907fc980b868725387e9875fe1bb25210e274e094b1d5a28f48af","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ae79dcf56251fc677518b5f7a205e90a","guid":"bfdfe7dc352907fc980b868725387e98a3013bb633bcb8861c4af070676454c4","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bcaaf2b5a834fdd5ff43688174609c62","guid":"bfdfe7dc352907fc980b868725387e986b370a394be613ba5799fa4d11c919ef","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9856a1b5ec989abb659c05cc042f469db6","guid":"bfdfe7dc352907fc980b868725387e98fb07394129e8e15c4a276f6c926ae120","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9818ff9c7b330cfbd914505c6276ab67c0","guid":"bfdfe7dc352907fc980b868725387e989314e081c3f5bfab1279e3c2c1139a24","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e983145ad27ab9a5d703e29269b9b2b583a","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e985f33bbee40fafa1d5f86ffae6f910a33","guid":"bfdfe7dc352907fc980b868725387e98462d72be51e2d42e9f0113c685cf957a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f82f3d4f630ddc11f2c259f7d680cd9a","guid":"bfdfe7dc352907fc980b868725387e989851f21dc1881e64d21e0223601a3ea9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98952e5cb4ebef951c0e1ce848bbe8e165","guid":"bfdfe7dc352907fc980b868725387e988b2b0d3293fe5fa5163e848e73287fa9"},{"fileReference":"bfdfe7dc352907fc980b868725387e983fb3a3922d9d7d1b57e53172a257992c","guid":"bfdfe7dc352907fc980b868725387e9878fe5122da43e13355af702578c47c6d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a9fd8c4640efbc7127122be777c1a1b8","guid":"bfdfe7dc352907fc980b868725387e98152a413d79815b6b7e16f8222b059af3"},{"fileReference":"bfdfe7dc352907fc980b868725387e987efb3b149741ae2c8b620f200c576321","guid":"bfdfe7dc352907fc980b868725387e98d8a60e9dc307978e06d0976c668337a6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98010f4c6e5a300816edd8e79ca88e2c22","guid":"bfdfe7dc352907fc980b868725387e985c4b75f26b14508b53e12df60d30b440"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e3bfc676967365da7f59e5fc134ab13b","guid":"bfdfe7dc352907fc980b868725387e9870213b2a7f693ef9848866859b406466"},{"fileReference":"bfdfe7dc352907fc980b868725387e9880f5aa0644e8a8c3e543e1a131fadac7","guid":"bfdfe7dc352907fc980b868725387e98f6ab12171d8d5fc29fc520257bd34abc"},{"fileReference":"bfdfe7dc352907fc980b868725387e98017c35d1247d3fc3a7b1f23791934721","guid":"bfdfe7dc352907fc980b868725387e9806ef2c8ff6903129ffb8c9def9edfc4a"},{"fileReference":"bfdfe7dc352907fc980b868725387e981472c236e0915d067c80f7a6e6cc17ca","guid":"bfdfe7dc352907fc980b868725387e98a89106363ecf1c82c77a5e97d941ae89"}],"guid":"bfdfe7dc352907fc980b868725387e9884539da3bdf2ed4ad426ca202aaf6bc7","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e98c1dae7e29df157eddda815ae5462108c"}],"guid":"bfdfe7dc352907fc980b868725387e98119e723bd2257d68f10fcea70feb1342","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e981c10b7a3ff26395a834064a0172d6124","targetReference":"bfdfe7dc352907fc980b868725387e98e4af9c7b061f7f7eb180b825e303ea04"}],"guid":"bfdfe7dc352907fc980b868725387e98a3435bfc3b1be550d78f0653eca9c848","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98e4af9c7b061f7f7eb180b825e303ea04","name":"video_player_avfoundation-video_player_avfoundation_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e988a0a5b40b007f81bee1472e4d0fb23da","name":"video_player_avfoundation","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98b5f237537920ce49888f6f7f73c80a6c","name":"video_player_avfoundation.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=fd05e863e29e0a4e9a22bf251bfa2fec-json b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=fd05e863e29e0a4e9a22bf251bfa2fec-json new file mode 100644 index 0000000..c8030fb --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=fd05e863e29e0a4e9a22bf251bfa2fec-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98750ef893532f252d748afdc3775f3731","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GoogleUtilities/GoogleUtilities-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GoogleUtilities/GoogleUtilities.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"GoogleUtilities","PRODUCT_NAME":"GoogleUtilities","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98e425a1e8db6e79830a7039a23d814b23","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98b5d95bb80b2175c0fd617a09c487b6be","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GoogleUtilities/GoogleUtilities-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GoogleUtilities/GoogleUtilities.modulemap","PRODUCT_MODULE_NAME":"GoogleUtilities","PRODUCT_NAME":"GoogleUtilities","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e987db285d93611770fd486bdaf5ad22ab0","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98b5d95bb80b2175c0fd617a09c487b6be","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GoogleUtilities/GoogleUtilities-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GoogleUtilities/GoogleUtilities.modulemap","PRODUCT_MODULE_NAME":"GoogleUtilities","PRODUCT_NAME":"GoogleUtilities","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98c1bb98d5a58d5a410d2689a035c32807","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e986420df3c569b657cd5e64f113971f08e","guid":"bfdfe7dc352907fc980b868725387e9850fdc2d359e29fcb4980c1bf8a90dfc1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c24bf59f76771e18e3a38576d9a8fc62","guid":"bfdfe7dc352907fc980b868725387e98b4f57ae72b049f3f4169dfc1e4ee4885","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981a4e04fa8da241a99a7d6b498071b378","guid":"bfdfe7dc352907fc980b868725387e9860918e5970dbdd03002d70da6c53cd33","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9879acb9a523bfe446a07847d9c409dcb3","guid":"bfdfe7dc352907fc980b868725387e98da9575de65303b9349a19f57180034c1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98df3fe6c7a68156bc4e4bc7de9a97c3d0","guid":"bfdfe7dc352907fc980b868725387e98fec16a6e58401da570677767d3984118","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98378741d36efe92ba89a293484ab23ecc","guid":"bfdfe7dc352907fc980b868725387e985c1be36e95cd9860631ac74d72d08834","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983347e86b68119defb556cc3500cb02d9","guid":"bfdfe7dc352907fc980b868725387e98f33a4fa57e57b31afeed493b46c073f8","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e989f398ffbdcaa63ecd78172be4bc1b41d","guid":"bfdfe7dc352907fc980b868725387e984279711b589b8538c7358d5d3082eecc","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e985cf549f1e0e64e30c2de82ce95d3c594","guid":"bfdfe7dc352907fc980b868725387e980a7640b5d238c998bae00427a09b7232"}],"guid":"bfdfe7dc352907fc980b868725387e981e7b377cfb33209161f3f5366e4c80b7","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98648b322b92bb11beacbc7f1c1f83db48","guid":"bfdfe7dc352907fc980b868725387e9876ed4719e8cd17c650be89de188de143"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cf86a8499fd067b6f8fe6432ec793296","guid":"bfdfe7dc352907fc980b868725387e980cc26f56f45f346312664fc8f38d3394"},{"fileReference":"bfdfe7dc352907fc980b868725387e983273dce697e09c7f420558eb90a69b49","guid":"bfdfe7dc352907fc980b868725387e98054bd017eb4ffe5051f555bcb9d78173"},{"fileReference":"bfdfe7dc352907fc980b868725387e983c3206dc0c2013f719271497c226705a","guid":"bfdfe7dc352907fc980b868725387e98fc012dbbfda0af4d6003164fd1b6c8cb"},{"fileReference":"bfdfe7dc352907fc980b868725387e984d8eec2f813cc7769aef24ffd662dc57","guid":"bfdfe7dc352907fc980b868725387e987a3a881111682be9653350bc003befa4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b60b139473a2131c208d56684eb34e76","guid":"bfdfe7dc352907fc980b868725387e989caead34302418bcff084fa4a8b4a616"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b20f28d557c7b8df32c04632da8c51d4","guid":"bfdfe7dc352907fc980b868725387e984cc01be51a326edbe919cf0c51fb6511"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fe2238c862931eb5e52c6d53b65e4669","guid":"bfdfe7dc352907fc980b868725387e985e4abca63ad152948f7840d4b4d98609"}],"guid":"bfdfe7dc352907fc980b868725387e98446574de08668808443e4af7eeb22348","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9806daff75eeb7d2676ecea0b011c9134b","guid":"bfdfe7dc352907fc980b868725387e986fae1c57444c19b9e279b676e7a9c2dd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98837e741867d5fe8bc907927670287ace","guid":"bfdfe7dc352907fc980b868725387e986a2786585ede2b0a67159e3f9f72db01"}],"guid":"bfdfe7dc352907fc980b868725387e98ee13d65b249f30c50c66190e4c84337b","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e983c1406fffde7a8b7dfa48c788ac47a29","targetReference":"bfdfe7dc352907fc980b868725387e981a9fac6eb9c80f8eed49fda0531af6a4"}],"guid":"bfdfe7dc352907fc980b868725387e984648a04573766719b059fc3b199813df","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e981a9fac6eb9c80f8eed49fda0531af6a4","name":"GoogleUtilities-GoogleUtilities_Privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98718890dfdac589615663a02d43d9af3e","name":"GoogleUtilities","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98ca49ca851f2777b997a3e74ccb860358","name":"GoogleUtilities.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/ios/build/ios/XCBuildData/PIFCache/workspace/WORKSPACE@v11_hash=(null)_subobjects=8714092e10803f3de9a34ab61ac2b55d-json b/ios/build/ios/XCBuildData/PIFCache/workspace/WORKSPACE@v11_hash=(null)_subobjects=8714092e10803f3de9a34ab61ac2b55d-json new file mode 100644 index 0000000..0af2582 --- /dev/null +++ b/ios/build/ios/XCBuildData/PIFCache/workspace/WORKSPACE@v11_hash=(null)_subobjects=8714092e10803f3de9a34ab61ac2b55d-json @@ -0,0 +1 @@ +{"guid":"dc4b70c03e8043e50e38f2068887b1d4","name":"Pods","path":"/Users/sentientgeeks/Documents/OnUFitnessMobile/ios/Pods/Pods.xcodeproj/project.xcworkspace","projects":["PROJECT@v11_mod=8df9ee72a434823faea6d09b791c2e9d_hash=bfdfe7dc352907fc980b868725387e98plugins=1OJSG6M1FOV3XYQCBH7Z29RZ0FPR9XDE1"]} \ No newline at end of file diff --git a/lib/constants/api_endpoints.dart b/lib/constants/api_endpoints.dart new file mode 100644 index 0000000..0bdb41c --- /dev/null +++ b/lib/constants/api_endpoints.dart @@ -0,0 +1,195 @@ +import 'package:onufitness/environment/environment_config.dart'; + +class ApiUrl { + // Get the base URL from environment configuration + static String get baseUrl => EnvironmentConfigFactory.getConfig().apiBaseUrl; + + //.............................................................................................................. + // Update Access topken......................................................................................... + static const updateAccessToken = "/api/Auth/refresh-token"; + static const sendFcmToken = "/api/Users/update-user-device-token"; + static const fetchAgoraUserAndRtmToken = + "/api/Communications/get-agora-user-rtm-token"; + static const getAgoraRtcToken = "/api/Communications/get-agora-rtc-token"; + // Create Account (Sign up)..................................................................................... + static const createAccounrSendOtp = "/api/Auth/send-otp"; + static const createAccountVerifyOTP = "/api/Auth/verify-otp"; + static const uploadProfileImage = "/api/Users/user-profile-image-setup"; + static const register = "/api/Auth/register"; + static const profileSetup = "/api/Users/user-profile-setup"; + static const finalUserInformationAndCreateAccount = + "/api/Users/user-information"; + // Login........................................................................................................... + static const emailExistCheck = "/api/Auth/email-check"; + static const login = "/api/Auth/login"; + static const socialGoogleLogin = "/api/Auth/social-login"; + // Forget Password................................................................................................... + static const forgetPasswordSendOtp = "/api/Auth/forget-password-send-otp"; + static const forgetPasswordVerifyOTP = "/api/Auth/verify-forget-password-otp"; + static const resetPassword = "/api/Auth/forget-password"; + // Logout........................................................................................................... + static const logout = "/api/Users/user-logout"; + //Home Dashboard................................................................................................. + + static const getChallengeCompleteCount = + "/api/Dashboard/get-challenge-complete-count"; + static const getGoalCompleteCount = "/api/Dashboard/get-goal-complete-count"; + static const getUserConnectionCount = + "/api/Dashboard/get-user-connection-count"; + static const getUserConnectionReport = + "/api/Dashboard/get-user-connection-report"; + static const getGoalPieChartData = + "/api/Dashboard/get-goal-progress-chart-data"; + + static const getChallengePieChartData = + "/api/Dashboard/get-challenge-progress-chart-data"; + + static const getRecentTopMostPost = "/api/Dashboard/get-top-most-post"; + + // Trainee Accounts ................................................................................................. + static const becomeACoach = "/api/Coaches/coach-request"; + // Coach Accounts ................................................................................................. + static const updateCoachProfessionalInfo = + "/api/Coaches/update-coach-professional-info"; + static const getCoachProfessionalInfo = + "/api/Coaches/get-coach-professional-info"; + static const getServiceOfferings = "/api/Coaches/get-coach-service-offering"; + static const updateCoachCertificate = "/api/Coaches/update-coach-certificate"; + static const deleteCoachCertificate = "/api/Coaches/delete-coach-certificate"; + static const updateServiceOffering = "/api/Coaches/update-service-offering"; + static const String getCoachReviewRating = + "/api/Coaches/get-coach-review-rating"; + + static const String coachAddServiceOfferingCertificate = + "/api/Coaches/add-coach-certificate"; + + // Master Table..................................................................................... + static const fetchCountryListDropdown = "/api/Masters/countries"; + static const fetchStateListDropdown = "/api/Masters/states"; + static const fetchCityListDropdown = "/api/Masters/cities"; + static const fetchGenderListDropdown = "/api/Masters/genders"; + static const fetchWorkoutTypes = "/api/Masters/interests"; + static const fetchFitnessGoals = "/api/Masters/fitness-goals"; + static const fetchDietaryPreferences = "/api/Masters/dietaryPreferences"; + static const fetchHealthConditions = "/api/Masters/healthConditions"; + + static const fetchCoachTypes = "/api/Masters/coachTypes"; + static const fetchMasterTableUniList = "/api/Masters/task-metrices"; + //... + static const fetchPostTypes = "/api/Masters/post-types"; + static const fetchdeviceTypes = "/api/Masters/device-types"; + static const fetchPostPrivecy = "/api/Masters/post-visibility"; + //......... User details................................................................................................ + + static const fetchUserDetails = "/api/Users/get-user-details"; + + //........ U-Vault.................................................................................... + + static const uploadUvaultVideos = "/api/UVaults/create-uvault"; + static const fetchUvaultVideos = "/api/UVaults"; + static const deleteUvault = "/api/UVaults/delete-uvault"; + static const updateUvault = "/api/UVaults/update-uvault"; + + // Social Wall.................................................................................... + static const submitPollVote = "/api/Socials/create-update-poll-vote"; + static const uploadSocialPost = "/api/Socials/create-post-media"; + static const uploadTribeEchoboardPost = + "/api/Socials/create-tribe-post-media"; + static const createConnection = "/api/Socials/create-connection"; + static const responseToConnectRequest = + "/api/Socials/response-to-connect-request"; + static const createPollPost = "/api/Socials/create-poll-post"; + static const createTribePollPost = "/api/Socials/create-tribe-poll-post"; + + static const getSocialProfileInfo = "/api/Users/get-user-with-profile"; + + static const getPosts = "/api/Socials/get-posts-by-userID"; + static const getSinglePostByID = "/api/Socials/get-single-post-details"; + static const createTribe = '/api/Socials/create-tribe'; + static const getRecentActivity = "/api/Socials/get-user-recent-post-by"; + + static const fetchExclusiveConnections = + '/api/Socials/get-exclusive-connections'; + + //...Connection............................. + static const getInvitationUserlist = + "/api/Socials/get-social-requested-connection"; + static const getFriendsList = "/api/Socials/get-social-accepted-connection"; + static const getSocialUsers = "/api/Socials/get-social-users-connection"; + static const getSuggestedUserConnection = + "/api/Socials/get-suggested-users-connection"; + + static const getTribeMemberDetailsByID = + "/api/Socials/get-tribe-members-by-tribeID"; + //...Comments.............................. + + static const getParentCommentList = + "/api/Socials/get-parent-with-single-sub-comments"; + + static const addComment = "/api/Socials/create-post-comment"; + + static const getSubCommentList = "/api/Socials/get-sub-post-comments"; + + static const createUpdatePostReaction = + "/api/Socials/create-update-post-reaction"; + + static const deleteEchoboardPost = "/api/Socials/delete-post"; + + static const fetchCompletedGoalsForBadges = + "/api/Goals/get-latest-completed-goals"; + + static const fetchUserReviews = "/api/Users/get-user-review-rating"; + static const createUserReview = "/api/Users/create-user-review"; + + static const getConnectedUsersWithMemberStatus = + "/api/Socials/get-connected-users-with-member-status"; + + static const addTribeMembers = "/api/Socials/add-tribe-members"; + static const removeTribeMember = "/api/Socials/delete-tribe-member"; + static const deleteTribe = "/api/Socials/delete-tribe"; + // Live streams... + static const getLiveStreams = "/api/Communications/get-live-streams"; + static const getMyUpcomingLiveStreamsByUser = + "/api/Communications/get-upcoming-live-streams-by-user"; + static const getAllUpcomingLiveStreams = + "/api/Communications/get-all-upcoming-live-streams"; + + static const createScheduledLiveStream = + "/api/Communications/create-scheduled-live-stream"; + static const getSpecificLiveStream = "/api/Communications/get-live-stream"; + + static const endLiveStream = "/api/Communications/end-live-stream"; + static const leaveLiveStream = "/api/Communications/left-from-live-stream"; + static const joinLiveStreamAsAudience = + "/api/Communications/join-live-stream"; + // Goal Section............................................................................................................ + static const getAllJoinedGoals = "/api/Goals/get-all-joined-goals-by-user"; + static const getAllExploreGoals = "/api/Goals/get-all-goal"; + static const joinToTheGoal = "/api/Goals/select-goal"; + static const inputGoalTask = "/api/Goals/goal-task-tracking"; + + //challenge..................................................................................................... + static const fetchOngoingChallenges = + "/api/Challenges/get-ongoing-challenges"; + static const fetchUpcomingChallenges = + "/api/Challenges/get-upcoming-challenges"; + static const fetchCreatedbyMeChallenges = + "/api/Challenges/get-created-challenges"; + static const fetchJoinedChallenges = "/api/Challenges/get-joined-challenges"; + + static const joinChallenge = "/api/Challenges/add-challenge-participation"; + static const inputChallengeTask = + "/api/Challenges/add-challenge-task-tracking"; + static const fetchLeaderBoard = + "/api/Challenges/get-challenge-participations"; + static const createChallenge = "/api/Challenges/create-challenge"; + static const addParticipentToChallenge = + "/api/Challenges/add-challenge-participants"; + static const fetchExclusiveConnectionsOfChallenge = + '/api/Socials/get-exclusive-connections-with-challenge-connections'; + static const updateChallengePrivacy = "/api/Challenges/update-challenge"; + // Privacy-related endpoints........................................................................ + static const String getExclusiveConnectionsByPost = + '/api/Socials/get-exclusive-connections-by-post'; + static const String updatePost = '/api/Socials/update-post'; +} diff --git a/lib/constants/api_enum_constant.dart b/lib/constants/api_enum_constant.dart new file mode 100644 index 0000000..8e5379d --- /dev/null +++ b/lib/constants/api_enum_constant.dart @@ -0,0 +1,76 @@ +class ApiEnum { + static const googleIdenty = "Google"; + static const appleIdenty = "Apple"; + static const facebookIdenty = "Facebook"; + static const instagramIdenty = "Instagram"; + //.......................................................................... + static const isEmailExist = "Email_Not_Exist"; + static const isUpdateUserProfile = "User_Profile_Setup"; + static const isUpdateUserInformation = "User_Profile_Info"; + static const isregistrationDone = "Registration_Done"; + //.......................................................................... + static const traineeUserRole = "Trainee"; + static const coachUserRole = "Coach"; + + //...Post types enum........................................................ + static const imagePostTypeID = "1"; + static const videoPostTypeID = "2"; + static const pollPostTypeID = "3"; + static const sparkPostTypeID = "4"; + static const onlyTextPostTypeId = "5"; + + //...Device Type............................................................. + static const androidDeviceTypeID = "1"; + static const iosDeviceTypeID = "2"; + static const webDeviceTypeID = "3"; + //...Post Visibility types................................................... + static const publicPostVisibilityID = 1; + static const privatePostVisibilityID = 2; + static const exclusivePostVisibilityID = 3; + + // Social Wall Connection status............................................... + static const allPeople = "All"; + static const notConnected = "NotConnected"; + static const pending = "Pending"; + static const accepted = "Accepted"; + static const rejected = "Rejected"; + static const Connected = 'Connected'; + static const Requested = "Requested"; + + // Social Wall Post Reaction................................................... + static const highFive = 1; + static const heart = 2; + static const beastMode = 3; + + // Notification Type............................................................. + + static const Goal = 1; + static const Challenge = 2; + static const ConnectionRequest = 3; + static const Post = 4; + static const RequestAccepted = 5; + static const CoachRequest = 6; + static const ReportPost = 7; + static const GoalCompleted = 8; + static const ChallengeCompleted = 9; + static const LiveStream = 10; + static const CallingNotification = 11; + static const ChatNotification = 12; + static const CommentPost = 13; + static const ReactPost = 14; + static const SubCommentPost = 15; + static const CoachApproval = 16; + static const RemainGoal = 17; + static const RemainChallenge = 18; + static const CallingNotificationCancel = 19; + static const UserDeleteFromAdmin = 20; + static const GoalProgressStatus = 21; + static const ChallengeProgressStatus = 22; + static const AddTribeMember = 23; + static const GroupChatNotification = 24; + + // Chat Token....................................................................... + + static const PUBLISHER = '1'; + static const SUBSCRIBER = '2'; +} diff --git a/lib/constants/app_config.dart b/lib/constants/app_config.dart new file mode 100644 index 0000000..a88dbdc --- /dev/null +++ b/lib/constants/app_config.dart @@ -0,0 +1,43 @@ +import 'package:onufitness/environment/environment_config.dart'; + +class AppConfig { + static final EnvironmentConfig _config = EnvironmentConfigFactory.getConfig(); + + // API Configuration + static String get apiBaseUrl => _config.apiBaseUrl; + static String get webUrl => _config.webUrl; + + // Logging & Monitoring + static String get sentryDsn => _config.sentryDsn; + static String get environment => _config.environment; + static bool get enableLogging => _config.enableLogging; + static bool get useSentry => _config.useSentry; + + // Third-party Services + static String get googleIosClientId => _config.googleIosClientId; + static String get agoraAppId => _config.agoraAppId; + static String get agoraChatAppKey => _config.agoraChatAppKey; + + // App Settings + static int get streamEndsTime => _config.streamEndsTime; + + // Helper methods + + /// Build a full share URL for a post + static String buildPostShareUrl(String encodedPostId) { + return "https://$webUrl/post-link?postId=$encodedPostId"; + } + + /// Build a full share URL for a tribe post + static String buildTribePostShareUrl( + String encodedTribeId, + String encodedPostId, + ) { + return "https://$webUrl/tribe-post-link?tribeId=$encodedTribeId&postId=$encodedPostId"; + } + + /// Check if current host matches the configured web URL + static bool isValidDeepLinkHost(String host) { + return host == webUrl; + } +} diff --git a/lib/constants/asset_constants.dart b/lib/constants/asset_constants.dart new file mode 100644 index 0000000..2b5378b --- /dev/null +++ b/lib/constants/asset_constants.dart @@ -0,0 +1,103 @@ +import 'package:flutter/material.dart'; + +class AssetConstants { + final BuildContext context; + + AssetConstants._(this.context); + + static AssetConstants of(BuildContext context) => AssetConstants._(context); + //............. Authentication................................................................ + + static const String _assets = 'assets/'; + static const String dummyUserImage = "${_assets}user_default_image.png"; + //............................................................................................ + static const String logo = '${_assets}logos/'; + static const String otpAuth = '${_assets}auth/otp_auth.png'; + static const String passwordAuth = '${_assets}auth/password_auth.png'; + static const String userAuth = '${_assets}auth/user_auth.png'; + static const String googleIcon = '${_assets}auth/google.png'; + static const String appleIcon = '${_assets}auth/apple.png'; + static const String instagramIcon = '${_assets}auth/instagram.png'; + static const String facebookIcon = '${_assets}auth/facebook.png'; + static const String appLogo = '${_assets}logo/Logo onU.png'; + + static const String getStarted = "${_assets}splash/thumbnail_IMG.jpg"; + static const String create1 = '${_assets}auth/1.png'; + + static const String create2 = "${_assets}auth/2.png"; + static const String tickUnderCircle = "${_assets}accounts/check-waves.png"; + //............. My Accounts................................................................ + + static const String caloriesBurned = "${_assets}accounts/calories_burned.png"; + static const String connections = "${_assets}accounts/connections.png"; + static const String myAccount = "${_assets}accounts/user-circle.png"; + static const String rise = "${_assets}accounts/rise.png"; + static const String uVault = "${_assets}accounts/u_vault.png"; + static const String myActivity = "${_assets}accounts/my_activity.png"; + static const String privacyPolicy = "${_assets}accounts/privacy_policy.png"; + static const String delete = "${_assets}accounts/delete.png"; + static const String achievements = "${_assets}accounts/achievements.png"; + static const String goButton = "${_assets}accounts/go.png"; + static const String accountIcon = "${_assets}nav_bar/account.png"; + static const String fitnessGoals = "${_assets}accounts/fitness_goal.png"; + static const String healthInfo = "${_assets}accounts/health_info.png"; + static const String calenderIcon = "${_assets}accounts/calender_icon.png"; + static const String playStartImage = "${_assets}accounts/play_start.png"; + static const String goalHeartImage = + "${_assets}accounts/goal_heart_outline1.png"; + static const String menuIcon = "${_assets}accounts/menu_icon.png"; + static const String fileIcon = "${_assets}accounts/file-text.png"; + //............. Nav Bar.................................................................... + + static const String home = "${_assets}nav_bar/home.png"; + static const String echoBoard = "${_assets}nav_bar/echoboard.png"; + static const String goal = "${_assets}nav_bar/goal.png"; + static const String account = "${_assets}nav_bar/account.png"; + static const String editIcon = "${_assets}accounts/editIcon.png"; + + static const String notificationIcon = + "${_assets}accounts/notification_icon.png"; + + //............... U-Vault............................................................................ + static const String cloudUpload = "${_assets}cloud-add.png"; + static const String uploadTextWithIcon = + "${_assets}upload_text_with_icon.png"; + static const String filterMenuIcon = "${_assets}filter.png"; + //............... Social Wall............................................................................ + static const String imageSocialWall = + "${_assets}social/image_icon_social_wall.png"; + static const String videoIconSocialWall = "${_assets}social/video_icon1.png"; + static const String reelIconSocialWall = + "${_assets}social/video_post_icon.png"; + + static const String connectionLogo = "${_assets}social/connection_icon.png"; + //.. + static const String chatIcon = "${_assets}social/chat_logo.png"; + static const String likeIcon = "${_assets}social/high_five_like_icon.png"; + static const String highFiveIcon = "${_assets}social/high-five_color.png"; + static const String heartReactionicon = "${_assets}social/heart color.png"; + static const String beastModeIcon = "${_assets}social/beast color.png"; + static const String commentsLogo = "${_assets}social/comments_icon.png"; + static const String shareLogo = "${_assets}social/share_icon.png"; + static const String createPollLogo = "${_assets}social/create_poll_icon.png"; + static const String facebookLogo = "${_assets}social/facebook.png"; + static const String instagramLogo = "${_assets}social/instagram_1.png"; + static const String linkedInLogo = "${_assets}social/linkedIn.png"; + static const String twitterLogo = "${_assets}social/twitter.png"; + + static const String chatAppBarBackgroundImage = + "${_assets}chat/chat_appbar_bg_image.png"; + + // Goal........................................................................................................ + + static const String goalAchievementsReward = + "${_assets}goals/goal_achievement_reward.png"; + + // Challenges.................................................................................................. + static const String challengeRank1 = + "${_assets}challenge/challenge_leaderboard_1st_rank.png"; + static const String challengeRank2 = + "${_assets}challenge/challenge_leaderboard_2nd_rank.png"; + static const String challengeRank3 = + "${_assets}challenge/challenge_leaderboard_3rd_rank.png"; +} diff --git a/lib/constants/color_constant.dart b/lib/constants/color_constant.dart new file mode 100644 index 0000000..1f179d1 --- /dev/null +++ b/lib/constants/color_constant.dart @@ -0,0 +1,40 @@ +import 'package:flutter/material.dart'; + +const int primaryColor = 0xFFD2EB16; +const Color deeperShadeOfprimaryColor = Color.fromRGBO(112, 126, 8, 1); +const Color pageBackGroundColor = Color.fromRGBO(244, 246, 248, 1); +const int darkGreyColor = 0xFF747A7F; +const Color greyBorderColor = Color.fromRGBO(152, 152, 152, 1); +const Color greyBorderColorLight = Color.fromRGBO(197, 197, 197, 1); +const Color greyTextColor1 = Color.fromRGBO(116, 122, 127, 1); +const Color greyTextColor2 = Color.fromRGBO(158, 158, 158, 1); +const Color textFieldFillColor = Color.fromRGBO(245, 245, 249, 1); + +const Color containerBorderColor = Color.fromRGBO(231, 235, 238, 1); +const Color textfieldBorderColorSky1 = Color.fromRGBO(244, 246, 248, 1); + +const Color lightGreyColor = Color.fromRGBO(213, 215, 218, 1); +const int chatBubbleColor = 0xFFD2EB16; +//................................................................................................... +const int outlineButtonBorderColorSky = 0xFF0E2E8F0; +const Color textfieldBorderColorSky = Color.fromRGBO(226, 232, 240, 1.0); +const Color socialLoginButtonTextColor = Color.fromRGBO(120, 125, 147, 1); + +const Color containerBorderColor2 = Color.fromRGBO(240, 240, 240, 1); + +const Color becomeACoachGradient1 = Color.fromARGB(255, 240, 255, 122); +const Color becomeACoachGradient2 = Color.fromRGBO(231, 235, 238, 1); + +const Color containerOutlineColor1 = Color.fromRGBO(222, 222, 222, 1); +const Color appBarBackgroundColor = Color.fromRGBO(255, 255, 255, 1); +const Color appbarTextColor = Color.fromRGBO(19, 34, 53, 1); +const int getStartedBackgroundBlackColor = 0xFF010C12; +const int deleteAccountTextColorRed = 0xFFBB0F0F; +const int ratingOrangeColor = 0xFFFFB400; +const int buttonBackgroundDarkGeryColor = 0xFF6E6C7F; + +//........................................................................................................................ +const Color yellowColor = Color.fromRGBO(230, 255, 42, 1); +const Color goalCardGradient1 = Color.fromRGBO(231, 235, 238, 1); +const int goalCardGradient2 = 0xFFDEE9A3; +const Color primaryGreenShadeColor = Color.fromARGB(255, 86, 108, 53); diff --git a/lib/constants/constant.dart b/lib/constants/constant.dart new file mode 100644 index 0000000..d4c724c --- /dev/null +++ b/lib/constants/constant.dart @@ -0,0 +1,14 @@ +import 'package:flutter/widgets.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:onufitness/utils/helper_function.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +SharedPreferences? preferences; + +TextStyle customTextStyle = TextStyle( + fontSize: isTablet ? 24.sp : 18.sp, + fontWeight: FontWeight.w600, +); + +var defaultFontFamilyName = "Inter"; +var montserratFontFamily = "Montserrat"; diff --git a/lib/constants/data/bindings.dart b/lib/constants/data/bindings.dart new file mode 100644 index 0000000..b50cee0 --- /dev/null +++ b/lib/constants/data/bindings.dart @@ -0,0 +1,105 @@ +import 'package:get/get.dart'; +import 'package:onufitness/controller/get_agora_token_controller.dart'; +import 'package:onufitness/controller/get_user_data_controller.dart'; +import 'package:onufitness/controller/notification_controller.dart'; +import 'package:onufitness/controller/update_acces_token_controller.dart'; +import 'package:onufitness/screens/accounts/Controllers/coach_rating_controller.dart'; +import 'package:onufitness/screens/accounts/Controllers/health_info_update_controller.dart'; +import 'package:onufitness/screens/accounts/Controllers/trainee_account_controller.dart'; +import 'package:onufitness/screens/accounts/become_a_coach_controller.dart'; +import 'package:onufitness/screens/accounts/Controllers/client_management_controller.dart'; +import 'package:onufitness/screens/accounts/Controllers/coach_account_controller.dart'; +import 'package:onufitness/screens/accounts/Controllers/coach_service_offering_controller.dart'; +import 'package:onufitness/screens/accounts/Controllers/my_account_controller.dart'; +import 'package:onufitness/screens/accounts/Controllers/edit_account_controller.dart'; +import 'package:onufitness/screens/echoboard/controllers/tribe_member_controller.dart'; +import 'package:onufitness/screens/goals/controllers/goal_controller.dart'; +import 'package:onufitness/screens/home/controllers/home_controller.dart'; +import 'package:onufitness/screens/login/Controllers/login_controller.dart'; +import 'package:onufitness/screens/navbar/bottom_nav_bar.dart'; +import 'package:onufitness/screens/register/Controllers/create_account_controller.dart'; +import 'package:onufitness/screens/register/Controllers/social_login_controller.dart'; +import 'package:onufitness/screens/rise/controllers/create_challenge_controller.dart'; +import 'package:onufitness/screens/rise/controllers/rise_controller.dart'; +import 'package:onufitness/screens/rise/widgets/watch_video_popup.dart'; +import 'package:onufitness/screens/chat/controllers/chat_controller.dart'; +import 'package:onufitness/screens/echoboard/controllers/connection_and_tribe_controller.dart'; +import 'package:onufitness/screens/echoboard/controllers/like_comment_controller.dart'; +import 'package:onufitness/screens/echoboard/controllers/poll_controller.dart'; +import 'package:onufitness/screens/echoboard/controllers/profile_controller.dart'; +import 'package:onufitness/screens/echoboard/controllers/rating_reviews.controller.dart'; +import 'package:onufitness/screens/echoboard/widget/post_three_dot_bottom_sheet.dart'; +import 'package:onufitness/screens/streamming/controllers/get_api_live_streams_controller.dart'; +import 'package:onufitness/screens/streamming/controllers/stream_controller.dart'; +import 'package:onufitness/screens/u_vault/controllers/uvault_video_controller.dart'; +import 'package:onufitness/services/agora/agora_chat_service.dart'; +import 'package:onufitness/services/deep_link_services/deep_link_service.dart'; +import 'package:onufitness/services/network_service/network_service.dart'; + +class MyBinding extends Bindings { + @override + void dependencies() { + //Login Signup....................................... + Get.lazyPut(() => CreateAccountController()); + Get.lazyPut(() => EditAccountController()); + Get.lazyPut(() => LoginController()); + Get.lazyPut(() => SocialLoginController()); + Get.lazyPut(() => MyAccountController()); + Get.lazyPut(() => RiseController()); + Get.lazyPut(() => NetworkController()); + Get.lazyPut(() => GetUserDetailsController()); + Get.lazyPut(() => UpdateAccesTokenController()); + // Social wall controllers --------------------------- + Get.lazyPut(() => SocialConnectionController()); + Get.lazyPut(() => LikeCommentController()); + Get.lazyPut(() => ProfileController()); + Get.lazyPut(() => PollController(), fenix: true); + Get.lazyPut(() => ReviewsController()); + Get.lazyPut(() => ReportPostController()); + Get.lazyPut(() => TribeMemberController()); + //........Uvault---------------------------------------- + Get.lazyPut(() => UvaultController(), fenix: true); + // Goal Controller-------------------------------------- + Get.lazyPut(() => GoalController(), fenix: true); + + // Challenges Controller-------------------------------------- + Get.lazyPut(() => ChallengeVideoController()); + Get.lazyPut(() => CreateChallengeController()); + Get.lazyPut(() => RiseController(), fenix: true); + + // My Accounts.................................................. + Get.lazyPut(() => BecomeACoachController()); + Get.lazyPut(() => ProfessionalInfoController()); + Get.lazyPut(() => CoachServiceOfferingController()); + Get.lazyPut(() => EditAccountController()); + Get.lazyPut(() => MyAccountController()); + Get.lazyPut(() => TraineeAccountController()); + Get.lazyPut(() => ClientController()); + Get.lazyPut(() => RatingsReviewsController()); + Get.lazyPut(() => HealthConditionUpdateController()); + + //Notification................................................... + Get.lazyPut(() => NotificationController(), fenix: true); + + // Add deep link service------------------------------ + // Note : permanent controller do Get.put only once in the app. Not even if(!Get.isRegistered) check + Get.put(DeepLinkService(), permanent: true); + // Nav bar............................................ + Get.lazyPut(() => NavigationController(), fenix: true); + + //....Chat.............................................. + + Get.lazyPut(() => ChatController()); + Get.lazyPut(() => AgoraChatService()); + + //....Call.............................................. + Get.put(AgoraTokenController(), permanent: true); + // Stream............................................... + Get.lazyPut(() => LiveStreamController()); + Get.lazyPut(() => GetLiveStreamsController(), fenix: true); + + // Home.................................................. + + Get.lazyPut(() => FitnessController()); + } +} diff --git a/lib/constants/data_constant.dart b/lib/constants/data_constant.dart new file mode 100644 index 0000000..126e2fa --- /dev/null +++ b/lib/constants/data_constant.dart @@ -0,0 +1,19 @@ +// Sentry data............................................................................................. + +const String sentryDsnId = + "https://efbb706b9daece2dad28bee3577fbc55@o4509013627502592.ingest.us.sentry.io/4509014149365760"; + +const String sentryDevEnvironment = "Development"; +const String sentryReleaseEnvironment = "Production"; + +//Google IOS Client id...................................................................................... + +const String googleIosClientId = + "1015952306116-r2ee1e0a6ohchpbeb4q0cpub0gqeda39.apps.googleusercontent.com"; + +//.... Agora App ID.......................................................................................... + +const int streamEndsTime = 10; + +const String agoraAppId = "c34ee6dfd326499daa63b54455412b55"; +const String agoraChatAppKey = '411364828#1571168'; diff --git a/lib/constants/string_constant.dart b/lib/constants/string_constant.dart new file mode 100644 index 0000000..ea6a3c1 --- /dev/null +++ b/lib/constants/string_constant.dart @@ -0,0 +1,87 @@ +// App theme........................................................ +import 'package:onufitness/screens/accounts/views/trainee_account/termas_and_condition_screen.dart'; + +const String icLauncherIcon = "@mipmap/ic_launcher"; + +// TabBar variable name.............................................. +const riseExploreTabUpcoming = "ExploreUpcoming"; +const riseExploreTabOngoing = "ExploreOngoing"; +const riseCreatedByMeTab = "Created by me"; +const riseJoinedTab = "Joined"; +// My Account......................................................... + +const myProfileText = "My Profile"; +const riseText = "Rise"; +const uVaultText = "U-Vault"; +const termsAndContionTileText = "Terms & Conditions"; +const privicyPolicyTileText = "Privacy policy"; +const achievementsText = "Achievements"; +const logoutText = "Logout"; +const accountAppBarText = "Account"; +const becomeACoachText = "Become a coach"; +const fitnessGoalText = "Fitness Goals"; +const healthInformationText = "Health Information"; +const editProfile = "Edit Profile"; +const doneText = "Done"; +const clientManagementAppbarText = "Client Management"; +const searchForClientstext = "Search for clients"; +const ratingAndReviewsAppbarText = "Ratings & Reviews"; + +// Register............................................................ +const createProfileText = "Create Profile"; +const profileSetupText = "Profile Setup"; +const profileSetupDescriptionText = "*Please Enter Mandatory Information"; +const termsAndConditionText1 = "I agree to the Terms and Conditions *"; +const termsAndConditionText2 = + "I consent to the processing of my data in accordance with HIPAA. *"; +const profileInfoText = "Profile Information"; +const profileInformationDescriptionText = + "Provide your details to help us create an accurate profile."; +// Nav Bar............................................................. + +const navHomeText = "Home"; +const navEchoboardText = "EchoBoard"; +const navGoalText = "Goal"; +const navAccountText = "Account"; + +//............................................................................. + +const String termsAndConditions = """ +Terms and Conditions + +By using our fitness mobile application ("App"), you agree to comply with and be bound by the following Terms and Conditions. Please read them carefully before using the App. + +User Responsibility: You agree to use the App at your own risk. You should consult a medical professional before starting any fitness program. We are not liable for any injuries or health issues arising from the use of our content. + +Content Use: All workouts, meal plans, images, and videos provided are for personal, non-commercial use only. Reproduction, distribution, or modification without written consent is prohibited. + +Account: You are responsible for maintaining the confidentiality of your login credentials. You must notify us immediately of any unauthorized use of your account. + +Subscription & Payments: Some features may require a paid subscription. All payments are non-refundable unless stated otherwise. Subscriptions renew automatically unless canceled before the renewal date. + +Data & Privacy: By using the App, you consent to our collection and use of personal data as outlined in our Privacy Policy. + +Modifications: We reserve the right to update or modify these Terms at any time. Continued use of the App implies acceptance of the revised Terms. + +If you disagree with any part of these terms, please discontinue use of the App. +"""; + +const String privacyPolicy = """ +Privacy Policy + +We respect your privacy and are committed to protecting your personal data. This Privacy Policy explains how we collect, use, and safeguard your information when you use our fitness mobile application ("App"). + +Data Collection: We may collect personal information such as name, email address, age, fitness goals, and device information when you register or use features of the App. + +Usage Data: We also collect anonymized usage data to improve the app experience, such as workout duration, preferences, and navigation behavior. + +Use of Information: Your data helps us personalize your fitness experience, provide customer support, and improve app functionality. We do not sell your personal data to third parties. + +Data Sharing: We may share data with service providers who help us operate the App. All partners are obligated to keep your information secure and use it only for authorized purposes. + +Security: We implement industry-standard security measures to protect your information. However, no method of transmission over the Internet is 100% secure. + +Changes: We may update this policy from time to time. Continued use of the App constitutes your acceptance of the revised policy. + +If you have questions about this policy, contact us via the support section in the App. +"""; diff --git a/lib/constants/text_constant.dart b/lib/constants/text_constant.dart new file mode 100644 index 0000000..dd00f85 --- /dev/null +++ b/lib/constants/text_constant.dart @@ -0,0 +1,19 @@ +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:onufitness/utils/helper_function.dart'; + +//small........ +var verySmallSizeText = isTablet ? 14.sp : 12.sp; +var smallSizeText = isTablet ? 16.sp : 14.sp; + +//Regular....... +var regularSizeText = isTablet ? 18.sp : 16.sp; +//medium........ +var mediumSizeText = isTablet ? 20.sp : 18.sp; + +//Large....... +var largeSizeText = isTablet ? 24.sp : 20.sp; +var veryLargeSizeText = isTablet ? 30.sp : 24.sp; +var veryVeryLargeSizeText = isTablet ? 35.sp : 30.sp; + +//AppBar and other Headimngs....... +var appBarHeardingText = isTablet ? 22.sp : 20.sp; diff --git a/lib/controller/get_agora_token_controller.dart b/lib/controller/get_agora_token_controller.dart new file mode 100644 index 0000000..d3632b3 --- /dev/null +++ b/lib/controller/get_agora_token_controller.dart @@ -0,0 +1,295 @@ +import 'dart:convert'; +import 'dart:developer'; +import 'dart:io'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/constants/api_enum_constant.dart'; +import 'package:onufitness/models/general/get_agora_user_trm_token_response_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/services/local_storage_services/shared_services.dart'; + +class AgoraTokenController extends GetxController { + AgoraUserAndRtmTokenResponseModel agoraToken = + AgoraUserAndRtmTokenResponseModel(); + RxBool isTokenGenerating = false.obs; + + Future getAgoraUserAndRrmToken() async { + isTokenGenerating(true); + var ret = false; + try { + var response = await ApiBase.getRequest( + extendedURL: ApiUrl.fetchAgoraUserAndRtmToken, + ); + agoraToken = agoraUserAndRtmTokenResponseModelFromJson(response.body); + log( + "Agora Token API Statuscode-----------------> ${response.statusCode}", + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + await SharedServices.setAgoraToken(agoraToken); + ret = true; + } else { + ret = false; + } + } catch (e) { + ret = false; + log("Exception: $e"); + } + isTokenGenerating(false); + return ret; + } + + //.......... Get RTC token....................................................................... + RxString rTCtoken = "".obs; + Future getRTCtoken({ + required String channelName, + required String role, + String? tempId, + String? receivrId, + String? callType, + }) async { + isTokenGenerating(true); + var ret = false; + try { + var apiBody = {"channelName": channelName, "role": role}; + if (tempId != null) { + apiBody['tempId'] = tempId; + } + if (callType != null) { + apiBody['callType'] = callType.toString(); + } + if (receivrId != null) { + apiBody['receiverId'] = receivrId; + } + log("RTC API response body : ${apiBody.toString()}"); + var response = await ApiBase.postRequest( + extendedURL: ApiUrl.getAgoraRtcToken, + body: apiBody, + ); + log("RTC From API----> ${response.body}"); + + if (response.statusCode == 200 || response.statusCode == 201) { + rTCtoken.value = jsonDecode(response.body)['data']['agoraRtcToken']; + + ret = true; + } else { + ret = false; + } + } catch (e) { + ret = false; + log("Exception: $e"); + } + isTokenGenerating(false); + return ret; + } + + // Incoming Call Notification........................................................................... + + RxString incomingCallNotificationID = "".obs; + + Future incomingCallNotification({ + required String channelName, + required String receiverId, + required String callType, + }) async { + var ret = false; + try { + var apiBody = { + "channelName": channelName, + "receiverId": receiverId, + "callType": callType.toString(), + }; + + log("incoming Call Notification request body : ${apiBody.toString()}"); + var response = await ApiBase.postRequest( + extendedURL: "/api/Notifications/sent-call-notification", + body: apiBody, + ); + log("incoming Call Notification response body ----> ${response.body}"); + + if (response.statusCode == 200 || response.statusCode == 201) { + incomingCallNotificationID.value = + jsonDecode(response.body)['data']['notificationId']; + + log("Call NotificationID : ${incomingCallNotificationID.value}"); + ret = true; + } else { + ret = false; + } + } catch (e) { + ret = false; + log("Exception: $e"); + } + return ret; + } + + // Cancel Notification after Call ends......................................................... + + Future cancelNotification({ + required String channelName, + required String receiverId, + required String? callType, + required String notificationId, + }) async { + var ret = false; + try { + var apiBody = { + "channelName": channelName, + "receiverId": receiverId, + "callType": callType.toString(), + "notificationId": notificationId, + }; + + log("cancelNotification request body : ${apiBody.toString()}"); + var response = await ApiBase.postRequest( + extendedURL: "/api/Notifications/sent-call-cancel-notification", + body: apiBody, + ); + log("cancelNotification From API----> ${response.body}"); + + if (response.statusCode == 200 || response.statusCode == 201) { + final res = jsonDecode(response.body); + + if (res['isSuccess'] == true) { + // cancel API only returns bool, not notificationId + if (res['data'] is Map && res['data']['notificationId'] != null) { + incomingCallNotificationID.value = res['data']['notificationId']; + } else { + incomingCallNotificationID.value = ""; + } + + ret = true; + } else { + ret = false; + } + } else { + ret = false; + } + } catch (e) { + ret = false; + log("Exception: $e"); + } + return ret; + } + + //.......... Create Live Stream................................................................. + + // Variables for create live stream + RxBool isCreatingStream = false.obs; + RxString streamChatRoomId = "".obs; + RxInt streamId = 0.obs; + + Future createLiveStream({ + required String streamTitle, + String? streamDescription, + int tribeIdForTribeEchoboard = 0, + }) async { + isCreatingStream(true); + var ret = false; + try { + var apiBody = + tribeIdForTribeEchoboard == 0 + ? { + "streamTitle": streamTitle, + "streamDescription": streamDescription, + "DeviceTypeID": + Platform.isAndroid + ? ApiEnum.androidDeviceTypeID + : ApiEnum.iosDeviceTypeID, + } + : { + "streamTitle": streamTitle, + "streamDescription": streamDescription, + "DeviceTypeID": + Platform.isAndroid + ? ApiEnum.androidDeviceTypeID + : ApiEnum.iosDeviceTypeID, + "tribeID": tribeIdForTribeEchoboard, + }; + final apiUrl = + tribeIdForTribeEchoboard == 0 + ? "/api/Communications/create-live-stream" + : "/api/Communications/create-tribe-live-stream"; + var response = await ApiBase.postRequest( + extendedURL: apiUrl, + body: apiBody, + ); + + log("Create Live Stream API Response----> ${response.body}"); + log("Create Live Stream API Statuscode----> ${response.statusCode}"); + + if (response.statusCode == 200 || response.statusCode == 201) { + var responseData = jsonDecode(response.body); + + if (responseData['isSuccess'] == true) { + // Store the response data in observable variables + streamChatRoomId.value = + responseData['data']['streamChatRoomId'].toString(); + streamId.value = responseData['data']['streamId']; + + log("Stream Chat Room ID: ${streamChatRoomId.value}"); + log("Stream ID: ${streamId.value}"); + + ret = true; + } else { + log("API returned isSuccess as false"); + ret = false; + } + } else { + log("API call failed with status code: ${response.statusCode}"); + ret = false; + } + } catch (e) { + ret = false; + log("Exception in createLiveStream: $e"); + } + isCreatingStream(false); + return ret; + } + //.....start Scheduled Live Stream............................................................ + + Future startScheduledLiveStream({ + required String scheduleStreamId, + }) async { + isCreatingStream(true); + var ret = false; + try { + var response = await ApiBase.postRequest( + extendedURL: + "/api/Communications/start-scheduled-live-stream?streamId=$scheduleStreamId", + body: {}, + ); + + log("Schedule Live Stream API Response----> ${response.body}"); + log("Schedule Live Stream API Statuscode----> ${response.statusCode}"); + + if (response.statusCode == 200 || response.statusCode == 201) { + var responseData = jsonDecode(response.body); + + if (responseData['isSuccess'] == true) { + streamChatRoomId.value = + responseData['data']['streamChatRoomId'].toString(); + streamId.value = responseData['data']['streamId']; + + log( + "Stream Chat Room ID startScheduledLiveStream: ${streamChatRoomId.value}", + ); + log("Stream ID: ${streamId.toString()}"); + + ret = true; + } else { + log("API returned isSuccess as false"); + ret = false; + } + } else { + log("API call failed with status code: ${response.statusCode}"); + ret = false; + } + } catch (e) { + ret = false; + log("Exception in createLiveStream: $e"); + } + isCreatingStream(false); + return ret; + } +} diff --git a/lib/controller/get_user_data_controller.dart b/lib/controller/get_user_data_controller.dart new file mode 100644 index 0000000..48904ba --- /dev/null +++ b/lib/controller/get_user_data_controller.dart @@ -0,0 +1,152 @@ +// import 'dart:developer'; + +// import 'package:get/get.dart'; +// import 'package:onufitness/constants/api_endpoints.dart'; +// import 'package:onufitness/models/user_details_response_model.dart'; +// import 'package:onufitness/services/api_services/base_api_services.dart'; +// import 'package:onufitness/services/local_storage_services/shared_services.dart'; +// import 'package:onufitness/utils/custom_sneakbar.dart'; + +// class GetUserDetailsController extends GetxController { +// UserDetailsResponseModel userDetailsResponseModel = +// UserDetailsResponseModel(); +// RxBool isUserDetailsFetchedLoading = false.obs; +// // observable for becomeCoachStatus +// RxString becomeCoachStatus = ''.obs; + +// Future fetchUserDetails() async { +// isUserDetailsFetchedLoading(true); +// var ret = false; +// try { +// var response = await ApiBase.getRequest( +// extendedURL: ApiUrl.fetchUserDetails, +// ); +// userDetailsResponseModel = userDetailsResponseModelFromJson( +// response.body, +// ); +// log("User details API Statuscode---------------> ${response.statusCode}"); +// if (response.statusCode == 200 || response.statusCode == 201) { +// if (userDetailsResponseModel.isSuccess == true) { +// await SharedServices.setUserDetails(userDetailsResponseModel); +// //........................................................ +// becomeCoachStatus.value = +// userDetailsResponseModel.data?.becomeCoachStatus ?? ''; +// //........................................................ +// ret = true; +// } else { +// ret = false; +// customSnackbar( +// title: "Error", +// message: "Failed to fetch user details", +// ); +// } +// } else { +// ret = false; +// customSnackbar(title: "Error", message: "Failed to fetch user details"); +// } +// } catch (e) { +// ret = false; +// log("Exception: $e"); +// } +// isUserDetailsFetchedLoading(false); +// return ret; +// } +// } + +//.....Above one is Coach to Traine Degrade without Handelled................................................................................... + +import 'dart:developer'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/models/user_details_response_model.dart'; +import 'package:onufitness/routes/route_constant.dart'; +import 'package:onufitness/screens/chat/controllers/chat_controller.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/services/local_storage_services/shared_services.dart'; +import 'package:onufitness/services/notification_services/notification_service.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class GetUserDetailsController extends GetxController { + UserDetailsResponseModel userDetailsResponseModel = + UserDetailsResponseModel(); + RxBool isUserDetailsFetchedLoading = false.obs; + // observable for becomeCoachStatus + RxString becomeCoachStatus = ''.obs; + + Future fetchUserDetails() async { + isUserDetailsFetchedLoading(true); + var ret = false; + try { + var response = await ApiBase.getRequest( + extendedURL: ApiUrl.fetchUserDetails, + ); + userDetailsResponseModel = userDetailsResponseModelFromJson( + response.body, + ); + log("User details API Statuscode---------------> ${response.statusCode}"); + if (response.statusCode == 200 || response.statusCode == 201) { + if (userDetailsResponseModel.isSuccess == true) { + // Update the value of becomeCoachStatus................................................. + becomeCoachStatus.value = + userDetailsResponseModel.data?.becomeCoachStatus ?? ''; + // Get stored user type role from SharedPreferences...................................... + String? storedUserTypeRole = + SharedServices.getUserDetails()?.data?.userTypeName; + String? newUserTypeRole = userDetailsResponseModel.data?.userTypeName; + + // Check if user type role has changed................................................. + if (storedUserTypeRole != null && + newUserTypeRole != null && + storedUserTypeRole != newUserTypeRole) { + // Show non-dismissible dialog + showRoleChangedDialog(); + ret = false; + } + // Else set the new data................................................................ + else { + // Role matches, proceed with normal flow + await SharedServices.setUserDetails(userDetailsResponseModel); + + ret = true; + } + } else { + ret = false; + customSnackbar( + title: "Error", + message: "Failed to fetch user details", + ); + } + } else { + ret = false; + customSnackbar(title: "Error", message: "Failed to fetch user details"); + } + } catch (e) { + ret = false; + customSnackbar(title: "Error", message: "Failed to fetch user details"); + log("Exception: $e"); + } + isUserDetailsFetchedLoading(false); + return ret; + } + + static Future showRoleChangedDialog() async { + final chatController = Get.find(); + final notioficationService = Get.find(); + await Get.defaultDialog( + title: "Role Changed", + middleText: + 'Your role has changed. Please logout and login again to continue.', + barrierDismissible: false, + confirm: TextButton( + onPressed: () async { + await chatController.logout(); + await notioficationService.deleteDeviceToken(); + await SharedServices.logout(); + Get.offNamedUntil(RouteConstant.loginFirstScreen, (route) => false); + }, + child: Text("Ok"), + ), + ); + } +} diff --git a/lib/controller/notification_controller.dart b/lib/controller/notification_controller.dart new file mode 100644 index 0000000..f8c17aa --- /dev/null +++ b/lib/controller/notification_controller.dart @@ -0,0 +1,229 @@ +import 'dart:developer'; +import 'package:get/get.dart'; +import 'package:flutter/material.dart'; +import 'package:onufitness/constants/api_enum_constant.dart'; +import 'package:onufitness/models/notification/get_all_notification_response_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; + +class NotificationController extends GetxController { + // Observables + var notificationResponse = Rxn(); + var isLoading = true.obs; + var isLoadingMore = false.obs; + var errorMessage = RxnString(); + var hasReachedEnd = false.obs; + + // Pagination variables + var currentPage = 1.obs; + static const int pageSize = 20; + var allNotifications = [].obs; + + // Scroll controller for pagination + final ScrollController scrollController = ScrollController(); + + @override + void onInit() { + super.onInit(); + _setupScrollListener(); + fetchNotifications(isRefresh: true); + } + + @override + void onClose() { + scrollController.dispose(); + super.onClose(); + } + + void _setupScrollListener() { + scrollController.addListener(() { + if (scrollController.position.pixels >= + scrollController.position.maxScrollExtent - 200) { + if (!isLoadingMore.value && !hasReachedEnd.value) { + loadMore(); + } + } + }); + } + + // Getters + List get notifications => allNotifications; + int get totalUnseenCount => + notificationResponse.value?.data?.totalUnseenCount ?? 0; + bool get hasUnreadNotifications => totalUnseenCount > 0; + + //fetch Notifications API Call ................................................................................ + Future fetchNotifications({bool isRefresh = false}) async { + try { + if (isRefresh) { + isLoading.value = true; + currentPage.value = 1; + hasReachedEnd.value = false; + allNotifications.clear(); + } + + errorMessage.value = null; + + final response = await ApiBase.getRequest( + extendedURL: + "/api/Notifications/get-notifications-by-userID?PageNumber=${currentPage.value}&PageSize=$pageSize", + ); + + if (response.statusCode == 200) { + final responseModel = getAllNotificationResponseModelFromJson( + response.body, + ); + + notificationResponse.value = responseModel; + + if (responseModel.data?.items != null) { + if (isRefresh) { + allNotifications.value = responseModel.data!.items!; + } else { + allNotifications.addAll(responseModel.data!.items!); + } + + // Check if we've reached the end + if (responseModel.data!.items!.length < pageSize) { + hasReachedEnd.value = true; + } + } else { + hasReachedEnd.value = true; + } + } else { + errorMessage.value = 'Failed to load notifications'; + } + } catch (e) { + errorMessage.value = 'Error: $e'; + } finally { + isLoading.value = false; + isLoadingMore.value = false; + } + } + + //.............................................................................................................. + //.............................................................................................................. + Future loadMore() async { + if (hasReachedEnd.value || isLoadingMore.value) return; + + isLoadingMore.value = true; + currentPage.value++; + + await fetchNotifications(isRefresh: false); + } + + Future refreshNotifications() async { + await fetchNotifications(isRefresh: true); + } + + Future markNotificationAsRead(int notificationId) async { + log("Entered in markNotificationAsRead"); + try { + final response = await ApiBase.patchRequest( + extendedURL: "/api/Notifications/update-notification/$notificationId", + ); + log(response.statusCode.toString()); + log(response.body.toString()); + + if (response.statusCode == 200) { + // Update local state + final itemIndex = allNotifications.indexWhere( + (item) => item.notificationId == notificationId, + ); + + if (itemIndex != -1) { + allNotifications[itemIndex].isSeen = true; + // Update unseen count + if (notificationResponse.value?.data != null) { + notificationResponse.value!.data!.totalUnseenCount = + (notificationResponse.value!.data!.totalUnseenCount ?? 1) - 1; + } + // Trigger reactive update + allNotifications.refresh(); + notificationResponse.refresh(); + } + } + } catch (e) { + log("Catch : Failed to Mark Read notification"); + } + } + + Future markAllAsRead() async { + log("markAllAsRead"); + try { + final response = await ApiBase.patchRequest( + extendedURL: "/api/Notifications/mark-all-as-read", + ); + log(response.statusCode.toString()); + log(response.body.toString()); + + if (response.statusCode == 200) { + // Update local state + for (var item in allNotifications) { + item.isSeen = true; + } + // Update unseen count + if (notificationResponse.value?.data != null) { + notificationResponse.value!.data!.totalUnseenCount = 0; + } + allNotifications.refresh(); + notificationResponse.refresh(); + } + } catch (e) { + log("Catch : Failed to Mark all Read notification"); + } + } + + // Utility Methods + IconData getNotificationIcon(int? notificationType) { + switch (notificationType) { + case ApiEnum.Goal: + return Icons.fitness_center; + case ApiEnum.Challenge: + return Icons.event; + case ApiEnum.ConnectionRequest: + return Icons.people; + case ApiEnum.Post: + return Icons.image; + case ApiEnum.RequestAccepted: + return Icons.person; + case ApiEnum.CoachRequest: + return Icons.notifications; + case ApiEnum.ReportPost: + return Icons.report; + + case ApiEnum.ChallengeCompleted: + return Icons.event; + case ApiEnum.GoalCompleted: + return Icons.fitness_center; + + default: + return Icons.notifications; + } + } + + Color getNotificationColor(int? notificationType) { + switch (notificationType) { + case ApiEnum.Goal: + return Colors.blue; + case ApiEnum.Challenge: + return Colors.orange; + case ApiEnum.ConnectionRequest: + return Colors.green; + case ApiEnum.Post: + return Colors.red; + case ApiEnum.RequestAccepted: + return Colors.purple; + case ApiEnum.CoachRequest: + return Colors.brown; + case ApiEnum.ReportPost: + return Colors.grey; + + case ApiEnum.ChallengeCompleted: + return Colors.purpleAccent; + case ApiEnum.GoalCompleted: + return Colors.deepPurple; + default: + return Colors.grey; + } + } +} diff --git a/lib/controller/update_acces_token_controller.dart b/lib/controller/update_acces_token_controller.dart new file mode 100644 index 0000000..52bebf0 --- /dev/null +++ b/lib/controller/update_acces_token_controller.dart @@ -0,0 +1,105 @@ +import 'dart:convert'; +import 'dart:developer'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/models/general/access_token_update_response_model.dart'; +import 'package:onufitness/routes/route_constant.dart'; +import 'package:onufitness/services/local_storage_services/shared_services.dart'; +import 'package:http/http.dart' as http; + +class UpdateAccesTokenController extends GetxController { + static AccessTokenUpdateResponseModel accessTokenModel = + AccessTokenUpdateResponseModel(); + static RxString newAccessToken = "".obs; + static RxString newRefreshToken = "".obs; + + static RxBool isLoading = false.obs; + static Future updateAccessToken() async { + final loginDetails = SharedServices.getLoginDetails(); + //................................................................. + if (loginDetails?.data?.tokenResponse?.refreshToken == null || + loginDetails?.data?.tokenResponse?.accessToken == null) { + return false; + } + //................................................................. + else { + var ret = false; + isLoading(true); + + try { + var body = { + "refreshToken": loginDetails?.data?.tokenResponse?.refreshToken, + "IsSocial": + SharedServices.getUserDetails()?.data?.loginType == "Email" + ? false + : true, + }; + log("request Body ------> ${body.toString()}"); + + var response = await http.post( + Uri.parse("${ApiUrl.baseUrl}${ApiUrl.updateAccessToken}"), + headers: {'Content-Type': 'application/json'}, + body: jsonEncode(body), + ); + + log("Access Token Update Statuscode ------> ${response.statusCode}"); + log("Access Token Update Response Body ------> ${response.body}"); + accessTokenModel = accessTokenUpdateResponseModelFromJson( + response.body, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + if (accessTokenModel.isSuccess == true) { + ret = true; + newAccessToken.value = accessTokenModel.data!.accessToken!; + newRefreshToken.value = accessTokenModel.data!.refreshToken!; + + log("Statuscode from IF : ${response.statusCode.toString()}"); + + // Update token in SharedPreferences................................................ + var user = SharedServices.getLoginDetails(); + if (user != null && + user.data != null && + user.data!.tokenResponse != null) { + user.data!.tokenResponse!.accessToken = newAccessToken.value; + user.data!.tokenResponse!.refreshToken = newRefreshToken.value; + await SharedServices.setLoginDetails(user); + //................................................................................ + } + } else { + ret = false; + log("Statuscode Else 1 : ${response.statusCode.toString()}"); + await showTokenExpiresDialog(); + } + } else { + ret = false; + log("Statuscode Else 2 : ${response.statusCode.toString()}"); + await showTokenExpiresDialog(); + } + } catch (e) { + ret = false; + log("Catch from Access Token Update: $e"); + await showTokenExpiresDialog(); + } + + isLoading(false); + return ret; + } + } + + static Future showTokenExpiresDialog() async { + await Get.defaultDialog( + title: "Session Expired", + middleText: "Your session has expired. Please log in again to continue.", + barrierDismissible: false, + confirm: TextButton( + onPressed: () async { + await SharedServices.logout(); + Get.offNamedUntil(RouteConstant.loginFirstScreen, (route) => false); + }, + child: Text("OK"), + ), + ); + } +} diff --git a/lib/environment/app_environment.dart b/lib/environment/app_environment.dart new file mode 100644 index 0000000..dc581fa --- /dev/null +++ b/lib/environment/app_environment.dart @@ -0,0 +1,27 @@ +enum Environment { development, uat, production } + +class AppEnvironment { + static Environment _currentEnvironment = Environment.development; + + static Environment get current => _currentEnvironment; + + static void setEnvironment(Environment environment) { + _currentEnvironment = environment; + } + + static bool get isDevelopment => + _currentEnvironment == Environment.development; + static bool get isUAT => _currentEnvironment == Environment.uat; + static bool get isProduction => _currentEnvironment == Environment.production; + + static String get environmentName { + switch (_currentEnvironment) { + case Environment.development: + return 'Development'; + case Environment.uat: + return 'UAT'; + case Environment.production: + return 'Production'; + } + } +} diff --git a/lib/environment/development_config.dart b/lib/environment/development_config.dart new file mode 100644 index 0000000..5d402f9 --- /dev/null +++ b/lib/environment/development_config.dart @@ -0,0 +1,35 @@ +import 'package:onufitness/environment/environment_config.dart'; + +class DevelopmentConfig implements EnvironmentConfig { + @override + String get apiBaseUrl => "https://dev-api.onufitness.com"; + + @override + String get webUrl => "dev.onufitness.com"; + + @override + String get sentryDsn => + "https://efbb706b9daece2dad28bee3577fbc55@o4509013627502592.ingest.us.sentry.io/4509014149365760"; + + @override + String get environment => "Development"; + + @override + bool get enableLogging => true; + + @override + bool get useSentry => false; + + @override + String get googleIosClientId => + "1015952306116-r2ee1e0a6ohchpbeb4q0cpub0gqeda39.apps.googleusercontent.com"; + + @override + String get agoraAppId => "c34ee6dfd326499daa63b54455412b55"; + + @override + String get agoraChatAppKey => "411364828#1571168"; + + @override + int get streamEndsTime => 10; +} diff --git a/lib/environment/environment_config.dart b/lib/environment/environment_config.dart new file mode 100644 index 0000000..3ec20e2 --- /dev/null +++ b/lib/environment/environment_config.dart @@ -0,0 +1,32 @@ +import 'package:onufitness/environment/app_environment.dart'; +import 'package:onufitness/environment/development_config.dart'; +import 'package:onufitness/environment/production_config.dart'; +import 'package:onufitness/environment/uat_config.dart'; + +abstract class EnvironmentConfig { + String get apiBaseUrl; + String get webUrl; + String get sentryDsn; + String get environment; + bool get enableLogging; + bool get useSentry; + + // App-wide configurations + String get googleIosClientId; + String get agoraAppId; + String get agoraChatAppKey; + int get streamEndsTime; +} + +class EnvironmentConfigFactory { + static EnvironmentConfig getConfig() { + switch (AppEnvironment.current) { + case Environment.development: + return DevelopmentConfig(); + case Environment.uat: + return UATConfig(); + case Environment.production: + return ProductionConfig(); + } + } +} diff --git a/lib/environment/production_config.dart b/lib/environment/production_config.dart new file mode 100644 index 0000000..45e26be --- /dev/null +++ b/lib/environment/production_config.dart @@ -0,0 +1,35 @@ +import 'package:onufitness/environment/environment_config.dart'; + +class ProductionConfig implements EnvironmentConfig { + @override + String get apiBaseUrl => "https://api.onufitness.com"; + + @override + String get webUrl => "onufitness.com"; + + @override + String get sentryDsn => + "https://efbb706b9daece2dad28bee3577fbc55@o4509013627502592.ingest.us.sentry.io/4509014149365760"; + + @override + String get environment => "Production"; + + @override + bool get enableLogging => false; + + @override + bool get useSentry => true; + + @override + String get googleIosClientId => + "1015952306116-r2ee1e0a6ohchpbeb4q0cpub0gqeda39.apps.googleusercontent.com"; + + @override + String get agoraAppId => "c34ee6dfd326499daa63b54455412b55"; + + @override + String get agoraChatAppKey => "411364828#1571168"; + + @override + int get streamEndsTime => 10; +} diff --git a/lib/environment/uat_config.dart b/lib/environment/uat_config.dart new file mode 100644 index 0000000..935691a --- /dev/null +++ b/lib/environment/uat_config.dart @@ -0,0 +1,35 @@ +import 'package:onufitness/environment/environment_config.dart'; + +class UATConfig implements EnvironmentConfig { + @override + String get apiBaseUrl => "https://uat-api.onufitness.com"; + + @override + String get webUrl => "uat.onufitness.com"; + + @override + String get sentryDsn => + "https://efbb706b9daece2dad28bee3577fbc55@o4509013627502592.ingest.us.sentry.io/4509014149365760"; + + @override + String get environment => "UAT"; + + @override + bool get enableLogging => true; + + @override + bool get useSentry => true; + + @override + String get googleIosClientId => + "1015952306116-r2ee1e0a6ohchpbeb4q0cpub0gqeda39.apps.googleusercontent.com"; + + @override + String get agoraAppId => "c34ee6dfd326499daa63b54455412b55"; + + @override + String get agoraChatAppKey => "411364828#1571168"; + + @override + int get streamEndsTime => 10; +} diff --git a/lib/firebase_options.dart b/lib/firebase_options.dart new file mode 100644 index 0000000..6f19dc7 --- /dev/null +++ b/lib/firebase_options.dart @@ -0,0 +1,70 @@ +// File generated by FlutterFire CLI. +// ignore_for_file: type=lint +import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; +import 'package:flutter/foundation.dart' + show defaultTargetPlatform, kIsWeb, TargetPlatform; + +/// Default [FirebaseOptions] for use with your Firebase apps. +/// +/// Example: +/// ```dart +/// import 'firebase_options.dart'; +/// // ... +/// await Firebase.initializeApp( +/// options: DefaultFirebaseOptions.currentPlatform, +/// ); +/// ``` +class DefaultFirebaseOptions { + static FirebaseOptions get currentPlatform { + if (kIsWeb) { + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for web - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + } + switch (defaultTargetPlatform) { + case TargetPlatform.android: + return android; + case TargetPlatform.iOS: + return ios; + case TargetPlatform.macOS: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for macos - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.windows: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for windows - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.linux: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for linux - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + default: + throw UnsupportedError( + 'DefaultFirebaseOptions are not supported for this platform.', + ); + } + } + + static const FirebaseOptions android = FirebaseOptions( + apiKey: 'AIzaSyBurwTb2vfZ2Ku6-98iSM-pnW5Tr8ZNdKY', + appId: '1:1015952306116:android:6359da68ee7b58f6587e91', + messagingSenderId: '1015952306116', + projectId: 'onufitness-436db', + storageBucket: 'onufitness-436db.firebasestorage.app', + ); + + static const FirebaseOptions ios = FirebaseOptions( + apiKey: 'AIzaSyC0OA2De0skAm0w176KPO_eKgZ9Ou5zPgE', + appId: '1:1015952306116:ios:4b16953a643786dc587e91', + messagingSenderId: '1015952306116', + projectId: 'onufitness-436db', + storageBucket: 'onufitness-436db.firebasestorage.app', + iosClientId: + '1015952306116-r2ee1e0a6ohchpbeb4q0cpub0gqeda39.apps.googleusercontent.com', + iosBundleId: 'com.onufitness.dev', + ); +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..49b0d71 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,201 @@ +import 'dart:convert'; +import 'package:firebase_core/firebase_core.dart'; +import 'package:firebase_messaging/firebase_messaging.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_enum_constant.dart'; +import 'package:onufitness/constants/constant.dart'; +import 'package:onufitness/constants/data/bindings.dart'; +import 'package:onufitness/constants/data_constant.dart'; +import 'package:onufitness/environment/app_environment.dart'; +import 'package:onufitness/firebase_options.dart'; +import 'package:onufitness/routes/app_page_router.dart'; +import 'package:onufitness/routes/route_constant.dart'; +import 'package:onufitness/services/agora/call_services.dart'; +import 'package:onufitness/services/local_storage_services/shared_services.dart'; +import 'package:onufitness/services/logger_service.dart'; +import 'package:onufitness/services/network_service/network_service.dart'; +import 'package:onufitness/services/notification_services/navigation_controller.dart'; +import 'package:onufitness/services/notification_services/notification_service.dart'; +import 'package:onufitness/services/socket/socket_service.dart'; +import 'package:onufitness/themes/app_theme.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +void main() async { + //...Maintain the order of the code in main method................................................ + WidgetsFlutterBinding.ensureInitialized(); + //................................................................................................. + // Set Application Environment - Development + AppEnvironment.setEnvironment(Environment.uat); + final logger = LoggerService(); + logger.log('App starting in ${AppEnvironment.environmentName} mode'); + //................................................................................................. + SystemChrome.setSystemUIOverlayStyle( + SystemUiOverlayStyle( + systemNavigationBarColor: Colors.white, + statusBarColor: Colors.white, + statusBarIconBrightness: Brightness.dark, + systemNavigationBarIconBrightness: Brightness.dark, + ), + ); + //................................................................................................. + // Initialize SharedPreferences + preferences = await SharedPreferences.getInstance(); + // Initialize services + SharedServices.getLoginDetails(); + SharedServices.getUserDetails(); + //................................................................................................. + // Initialize Firebase + await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); + //................................................................................................. + FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler); + //................................................................................................. + + //................................................................................................. + // Initialize NotificationController first + final notifController = Get.put( + NotificationNavigationController(), + permanent: true, + ); + + //................................................................................................. + // Initialize AgoraCallService if logged in + if (SharedServices.isLoggedIn()) { + await Get.putAsync(() async { + return await AgoraCallService().init(); + }, permanent: true); + } + //................................................................................................. + // Initialize NotificationService + await Get.putAsync( + () async => NotificationService(), + permanent: true, + ); + //................................................................................................. + // Initialize SocketService after a small delay + Future.delayed(const Duration(seconds: 2), () { + if (!Get.isRegistered()) { + Get.put(SocketService(), permanent: true); + } + Get.find().connect(); + }); + //................................................................................................. + //................................................................................................. + // Handle app launch from terminated state + //................................................................................................. + final details = + await globalNotificationsPlugin.getNotificationAppLaunchDetails(); + if (details?.didNotificationLaunchApp ?? false) { + final payload = details?.notificationResponse?.payload; + final notificationId = details?.notificationResponse?.id; + final actionId = details?.notificationResponse?.actionId; + if (notificationId != null) { + await globalNotificationsPlugin.cancel(notificationId); + } + + if (payload != null) { + try { + final data = jsonDecode(payload); + final notificationType = parseNotificationType( + data['notificationType'], + ); + + if (actionId == 'reject_call') { + notifController.isCallingNotificationNavigation.value = false; + // DON'T RETURN - just skip processing + } else { + // Only process normal incoming calls + if (notificationType == ApiEnum.CallingNotification) { + await globalNotificationsPlugin.cancelAll(); + final channelName = extractChannelName(data); + if (channelName != null) { + activeCallNotifications.remove(channelName); + } + } + + notifController.setFlagsFromPayload(data); + } + } catch (e) { + logger.error('Error decoding notification payload', error: e); + } + } + } + //................................................................................................. + // Initialize NetworkController + Get.put(NetworkController()); + //................................................................................................. + // Set orientation + SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); + //........................................................................... + await SentryFlutter.init((options) { + options.dsn = sentryDsnId; + options.sendDefaultPii = true; + options.attachScreenshot = true; + options.enableAppLifecycleBreadcrumbs = true; + options.enableNativeCrashHandling = true; + options.attachStacktrace = true; + options.tracesSampleRate = 0.01; + + options.debug = true; + options.diagnosticLevel = SentryLevel.debug; + options.enableLogs = true; + + options.replay.sessionSampleRate = 1.0; + options.replay.onErrorSampleRate = 1.0; + + options.environment = + kDebugMode ? sentryDevEnvironment : sentryReleaseEnvironment; + }, appRunner: () => runApp(SentryWidget(child: MyApp()))); + //...................................................................... + + // runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + return LayoutBuilder( + builder: (context, constraints) { + if (constraints.maxWidth >= 600) { + return ScreenUtilInit( + designSize: const Size(600, 960), + minTextAdapt: true, + splitScreenMode: true, + builder: (context, child) { + return GetMaterialApp( + initialBinding: MyBinding(), + debugShowCheckedModeBanner: false, + initialRoute: RouteConstant.splashScreen, + getPages: AppPageRouter().getPages, + title: 'OnUFitness', + theme: AppTheme.currentTheme, + ); + }, + ); + } else { + return ScreenUtilInit( + designSize: const Size(375, 812), + minTextAdapt: true, + splitScreenMode: true, + builder: (context, child) { + return GetMaterialApp( + initialBinding: MyBinding(), + debugShowCheckedModeBanner: false, + initialRoute: RouteConstant.splashScreen, + getPages: AppPageRouter().getPages, + title: 'OnUFitness', + theme: AppTheme.currentTheme, + ); + }, + ); + } + }, + ); + } +} diff --git a/lib/models/general/access_token_update_response_model.dart b/lib/models/general/access_token_update_response_model.dart new file mode 100644 index 0000000..6f9e657 --- /dev/null +++ b/lib/models/general/access_token_update_response_model.dart @@ -0,0 +1,63 @@ +import 'dart:convert'; + +AccessTokenUpdateResponseModel accessTokenUpdateResponseModelFromJson( + String str, +) => AccessTokenUpdateResponseModel.fromJson(json.decode(str)); + +String accessTokenUpdateResponseModelToJson( + AccessTokenUpdateResponseModel data, +) => json.encode(data.toJson()); + +class AccessTokenUpdateResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + AccessTokenUpdateResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory AccessTokenUpdateResponseModel.fromJson(Map json) => + AccessTokenUpdateResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + String? accessToken; + String? refreshToken; + int? expiresOn; + + Data({this.accessToken, this.refreshToken, this.expiresOn}); + + factory Data.fromJson(Map json) => Data( + accessToken: json["accessToken"], + refreshToken: json["refreshToken"], + + expiresOn: json["expiresOn"], + ); + + Map toJson() => { + "accessToken": accessToken, + "expiresOn": expiresOn, + "refreshToken": refreshToken, + }; +} diff --git a/lib/models/general/general_api_data_structure_response_model.dart b/lib/models/general/general_api_data_structure_response_model.dart new file mode 100644 index 0000000..e03f969 --- /dev/null +++ b/lib/models/general/general_api_data_structure_response_model.dart @@ -0,0 +1,40 @@ +import 'dart:convert'; + +GeneralDataResponseModel generalDataResponseModelFromJson(String str) => + GeneralDataResponseModel.fromJson(json.decode(str)); + +String generalDataResponseModelToJson(GeneralDataResponseModel data) => + json.encode(data.toJson()); + +class GeneralDataResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + dynamic data; + dynamic errors; + + GeneralDataResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory GeneralDataResponseModel.fromJson(Map json) => + GeneralDataResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"], + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data, + "errors": errors, + }; +} diff --git a/lib/models/general/get_agora_user_trm_token_response_model.dart b/lib/models/general/get_agora_user_trm_token_response_model.dart new file mode 100644 index 0000000..9e2e356 --- /dev/null +++ b/lib/models/general/get_agora_user_trm_token_response_model.dart @@ -0,0 +1,60 @@ +import 'dart:convert'; + +AgoraUserAndRtmTokenResponseModel agoraUserAndRtmTokenResponseModelFromJson( + String str, +) => AgoraUserAndRtmTokenResponseModel.fromJson(json.decode(str)); + +String agoraUserAndRtmTokenResponseModelToJson( + AgoraUserAndRtmTokenResponseModel data, +) => json.encode(data.toJson()); + +class AgoraUserAndRtmTokenResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + AgoraUserAndRtmTokenResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory AgoraUserAndRtmTokenResponseModel.fromJson( + Map json, + ) => AgoraUserAndRtmTokenResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + String? agoraUserToken; + String? agoraRtmToken; + + Data({this.agoraUserToken, this.agoraRtmToken}); + + factory Data.fromJson(Map json) => Data( + agoraUserToken: json["agoraUserToken"], + agoraRtmToken: json["agoraRtmToken"], + ); + + Map toJson() => { + "agoraUserToken": agoraUserToken, + "agoraRtmToken": agoraRtmToken, + }; +} diff --git a/lib/models/is_email_exist_is_profile_complete_response_model.dart b/lib/models/is_email_exist_is_profile_complete_response_model.dart new file mode 100644 index 0000000..b312e58 --- /dev/null +++ b/lib/models/is_email_exist_is_profile_complete_response_model.dart @@ -0,0 +1,72 @@ +import 'dart:convert'; + +EmailExistCheckResponseModel emailExistCheckResponseModelFromJson(String str) => + EmailExistCheckResponseModel.fromJson(json.decode(str)); + +String emailExistCheckResponseModelToJson(EmailExistCheckResponseModel data) => + json.encode(data.toJson()); + +class EmailExistCheckResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + EmailExistCheckResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory EmailExistCheckResponseModel.fromJson(Map json) => + EmailExistCheckResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + bool? isEmailExist; + bool? isUpdateUserProfile; + bool? isUpdateUserInformation; + String? userId; + String? registrationStatus; + + Data({ + this.isEmailExist, + this.isUpdateUserProfile, + this.isUpdateUserInformation, + this.userId, + this.registrationStatus, + }); + + factory Data.fromJson(Map json) => Data( + isEmailExist: json["isEmailExist"], + isUpdateUserProfile: json["isUpdateUserProfile"], + isUpdateUserInformation: json["isUpdateUserInformation"], + userId: json["userID"], + registrationStatus: json["registrationStatus"], + ); + + Map toJson() => { + "isEmailExist": isEmailExist, + "isUpdateUserProfile": isUpdateUserProfile, + "isUpdateUserInformation": isUpdateUserInformation, + "userID": userId, + "registrationStatus": registrationStatus, + }; +} diff --git a/lib/models/login_response_model.dart b/lib/models/login_response_model.dart new file mode 100644 index 0000000..525b654 --- /dev/null +++ b/lib/models/login_response_model.dart @@ -0,0 +1,99 @@ +import 'dart:convert'; + +LoginResponseModel loginResponseModelFromJson(String str) => + LoginResponseModel.fromJson(json.decode(str)); + +String loginResponseModelToJson(LoginResponseModel data) => + json.encode(data.toJson()); + +class LoginResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + LoginResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory LoginResponseModel.fromJson(Map json) => + LoginResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + TokenResponse? tokenResponse; + String? userId; + String? userRole; + String? registrationStatus; + + Data({ + this.tokenResponse, + this.userId, + this.userRole, + this.registrationStatus, + }); + + factory Data.fromJson(Map json) => Data( + tokenResponse: + json["tokenResponse"] == null + ? null + : TokenResponse.fromJson(json["tokenResponse"]), + userId: json["userId"], + registrationStatus: json["registrationStatus"], + userRole: json["userRole"], + ); + + Map toJson() => { + "tokenResponse": tokenResponse?.toJson(), + "userId": userId, + "userRole": userRole, + "registrationStatus": registrationStatus, + }; +} + +class TokenResponse { + String? accessToken; + String? refreshToken; + String? tokenType; + int? expiresIn; + + TokenResponse({ + this.accessToken, + this.refreshToken, + this.tokenType, + this.expiresIn, + }); + + factory TokenResponse.fromJson(Map json) => TokenResponse( + accessToken: json["accessToken"], + refreshToken: json["refreshToken"], + tokenType: json["tokenType"], + expiresIn: json["expiresIn"], + ); + + Map toJson() => { + "accessToken": accessToken, + "refreshToken": refreshToken, + "tokenType": tokenType, + "expiresIn": expiresIn, + }; +} diff --git a/lib/models/master_dropdowns/city_list_dropdown_response_model.dart b/lib/models/master_dropdowns/city_list_dropdown_response_model.dart new file mode 100644 index 0000000..631759d --- /dev/null +++ b/lib/models/master_dropdowns/city_list_dropdown_response_model.dart @@ -0,0 +1,64 @@ +import 'dart:convert'; + +CityListResponseModel cityListResponseModelFromJson(String str) => + CityListResponseModel.fromJson(json.decode(str)); + +String cityListResponseModelToJson(CityListResponseModel data) => + json.encode(data.toJson()); + +class CityListResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + List? data; + dynamic errors; + + CityListResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory CityListResponseModel.fromJson(Map json) => + CityListResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: + json["data"] == null + ? [] + : List.from(json["data"]!.map((x) => SingleCityModel.fromJson(x))), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": + data == null ? [] : List.from(data!.map((x) => x.toJson())), + "errors": errors, + }; +} + +class SingleCityModel { + int? cityId; + int? stateId; + String? cityName; + + SingleCityModel({this.cityId, this.stateId, this.cityName}); + + factory SingleCityModel.fromJson(Map json) => SingleCityModel( + cityId: json["cityID"], + stateId: json["stateID"], + cityName: json["cityName"], + ); + + Map toJson() => { + "cityID": cityId, + "stateID": stateId, + "cityName": cityName, + }; +} diff --git a/lib/models/master_dropdowns/coach_types_dropdown_response_model.dart b/lib/models/master_dropdowns/coach_types_dropdown_response_model.dart new file mode 100644 index 0000000..0a03e66 --- /dev/null +++ b/lib/models/master_dropdowns/coach_types_dropdown_response_model.dart @@ -0,0 +1,59 @@ +import 'dart:convert'; + +CoachTypesResponseModel coachTypesResponseModelFromJson(String str) => + CoachTypesResponseModel.fromJson(json.decode(str)); + +String coachTypesResponseModelToJson(CoachTypesResponseModel data) => + json.encode(data.toJson()); + +class CoachTypesResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + List? data; + dynamic errors; + + CoachTypesResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory CoachTypesResponseModel.fromJson(Map json) => + CoachTypesResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: + json["data"] == null + ? [] + : List.from(json["data"]!.map((x) => CoachTypes.fromJson(x))), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": + data == null ? [] : List.from(data!.map((x) => x.toJson())), + "errors": errors, + }; +} + +class CoachTypes { + int? coachTypeId; + String? typeName; + + CoachTypes({this.coachTypeId, this.typeName}); + + factory CoachTypes.fromJson(Map json) => + CoachTypes(coachTypeId: json["coachTypeID"], typeName: json["typeName"]); + + Map toJson() => { + "coachTypeID": coachTypeId, + "typeName": typeName, + }; +} diff --git a/lib/models/master_dropdowns/country_list_dropdown_response_model.dart b/lib/models/master_dropdowns/country_list_dropdown_response_model.dart new file mode 100644 index 0000000..36fdff1 --- /dev/null +++ b/lib/models/master_dropdowns/country_list_dropdown_response_model.dart @@ -0,0 +1,64 @@ +import 'dart:convert'; + +GetCountryListResponseModel getCountryListResponseModelFromJson(String str) => + GetCountryListResponseModel.fromJson(json.decode(str)); + +String getCountryListResponseModelToJson(GetCountryListResponseModel data) => + json.encode(data.toJson()); + +class GetCountryListResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + List? data; + dynamic errors; + + GetCountryListResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory GetCountryListResponseModel.fromJson(Map json) => + GetCountryListResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: + json["data"] == null + ? [] + : List.from( + json["data"]!.map((x) => SingleCountryModel.fromJson(x)), + ), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": + data == null ? [] : List.from(data!.map((x) => x.toJson())), + "errors": errors, + }; +} + +class SingleCountryModel { + int? countryId; + String? countryName; + + SingleCountryModel({this.countryId, this.countryName}); + + factory SingleCountryModel.fromJson(Map json) => + SingleCountryModel( + countryId: json["countryID"], + countryName: json["countryName"], + ); + + Map toJson() => { + "countryID": countryId, + "countryName": countryName, + }; +} diff --git a/lib/models/master_dropdowns/dietary_preferences_dropdown_response_model.dart b/lib/models/master_dropdowns/dietary_preferences_dropdown_response_model.dart new file mode 100644 index 0000000..8d6363f --- /dev/null +++ b/lib/models/master_dropdowns/dietary_preferences_dropdown_response_model.dart @@ -0,0 +1,63 @@ +import 'dart:convert'; + +DietaryPreferencesResponseModel dietaryPreferencesResponseModelFromJson( + String str, +) => DietaryPreferencesResponseModel.fromJson(json.decode(str)); + +String dietaryPreferencesResponseModelToJson( + DietaryPreferencesResponseModel data, +) => json.encode(data.toJson()); + +class DietaryPreferencesResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + List? data; + dynamic errors; + + DietaryPreferencesResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory DietaryPreferencesResponseModel.fromJson(Map json) => + DietaryPreferencesResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: + json["data"] == null + ? [] + : List.from(json["data"]!.map((x) => DietaryPreferences.fromJson(x))), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": + data == null ? [] : List.from(data!.map((x) => x.toJson())), + "errors": errors, + }; +} + +class DietaryPreferences { + int? dietaryPreferenceId; + String? dietaryPreferenceName; + + DietaryPreferences({this.dietaryPreferenceId, this.dietaryPreferenceName}); + + factory DietaryPreferences.fromJson(Map json) => DietaryPreferences( + dietaryPreferenceId: json["dietaryPreferenceID"], + dietaryPreferenceName: json["dietaryPreferenceName"], + ); + + Map toJson() => { + "dietaryPreferenceID": dietaryPreferenceId, + "dietaryPreferenceName": dietaryPreferenceName, + }; +} diff --git a/lib/models/master_dropdowns/fitness_goals_dropdown_response_model.dart b/lib/models/master_dropdowns/fitness_goals_dropdown_response_model.dart new file mode 100644 index 0000000..1673d43 --- /dev/null +++ b/lib/models/master_dropdowns/fitness_goals_dropdown_response_model.dart @@ -0,0 +1,89 @@ +import 'dart:convert'; + +FitnessGoalsResponseModel fitnessGoalsResponseModelFromJson(String str) => + FitnessGoalsResponseModel.fromJson(json.decode(str)); + +String fitnessGoalsResponseModelToJson(FitnessGoalsResponseModel data) => + json.encode(data.toJson()); + +class FitnessGoalsResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + List? data; + dynamic errors; + + FitnessGoalsResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory FitnessGoalsResponseModel.fromJson(Map json) => + FitnessGoalsResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: + json["data"] == null + ? [] + : List.from( + json["data"]!.map((x) => SingleFitnessGoal.fromJson(x)), + ), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": + data == null ? [] : List.from(data!.map((x) => x.toJson())), + "errors": errors, + }; +} + +class SingleFitnessGoal { + int? fitnessGoalId; + String? fitnessGoalTitle; + int? parentFitnessGoalId; + bool? isActive; + List? subCategories; + + SingleFitnessGoal({ + this.fitnessGoalId, + this.fitnessGoalTitle, + this.parentFitnessGoalId, + this.isActive, + this.subCategories, + }); + + factory SingleFitnessGoal.fromJson(Map json) => + SingleFitnessGoal( + fitnessGoalId: json["fitnessGoalID"], + fitnessGoalTitle: json["fitnessGoalTitle"], + parentFitnessGoalId: json["parentFitnessGoalId"], + isActive: json["isActive"], + subCategories: + json["subCategories"] == null + ? [] + : List.from( + json["subCategories"]!.map( + (x) => SingleFitnessGoal.fromJson(x), + ), + ), + ); + + Map toJson() => { + "fitnessGoalID": fitnessGoalId, + "fitnessGoalTitle": fitnessGoalTitle, + "parentFitnessGoalId": parentFitnessGoalId, + "isActive": isActive, + "subCategories": + subCategories == null + ? [] + : List.from(subCategories!.map((x) => x.toJson())), + }; +} diff --git a/lib/models/master_dropdowns/gender_list_dropdown_response_model.dart b/lib/models/master_dropdowns/gender_list_dropdown_response_model.dart new file mode 100644 index 0000000..c6729fb --- /dev/null +++ b/lib/models/master_dropdowns/gender_list_dropdown_response_model.dart @@ -0,0 +1,59 @@ +import 'dart:convert'; + +GenderListResponseModel genderListResponseModelFromJson(String str) => + GenderListResponseModel.fromJson(json.decode(str)); + +String genderListResponseModelToJson(GenderListResponseModel data) => + json.encode(data.toJson()); + +class GenderListResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + List? data; + dynamic errors; + + GenderListResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory GenderListResponseModel.fromJson(Map json) => + GenderListResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: + json["data"] == null + ? [] + : List.from(json["data"]!.map((x) => Genders.fromJson(x))), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": + data == null ? [] : List.from(data!.map((x) => x.toJson())), + "errors": errors, + }; +} + +class Genders { + int? genderId; + String? genderName; + + Genders({this.genderId, this.genderName}); + + factory Genders.fromJson(Map json) => + Genders(genderId: json["genderID"], genderName: json["genderName"]); + + Map toJson() => { + "genderID": genderId, + "genderName": genderName, + }; +} diff --git a/lib/models/master_dropdowns/health_conditions_dropdowns_response_model.dart b/lib/models/master_dropdowns/health_conditions_dropdowns_response_model.dart new file mode 100644 index 0000000..60344d7 --- /dev/null +++ b/lib/models/master_dropdowns/health_conditions_dropdowns_response_model.dart @@ -0,0 +1,66 @@ +import 'dart:convert'; + +HealthConditionsResponseModel healthConditionsResponseModelFromJson( + String str, +) => HealthConditionsResponseModel.fromJson(json.decode(str)); + +String healthConditionsResponseModelToJson( + HealthConditionsResponseModel data, +) => json.encode(data.toJson()); + +class HealthConditionsResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + List? data; + dynamic errors; + + HealthConditionsResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory HealthConditionsResponseModel.fromJson(Map json) => + HealthConditionsResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: + json["data"] == null + ? [] + : List.from( + json["data"]!.map((x) => HealthConditions.fromJson(x)), + ), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": + data == null ? [] : List.from(data!.map((x) => x.toJson())), + "errors": errors, + }; +} + +class HealthConditions { + int? conditionId; + String? conditionName; + + HealthConditions({this.conditionId, this.conditionName}); + + factory HealthConditions.fromJson(Map json) => + HealthConditions( + conditionId: json["conditionID"], + conditionName: json["conditionName"], + ); + + Map toJson() => { + "conditionID": conditionId, + "conditionName": conditionName, + }; +} diff --git a/lib/models/master_dropdowns/metric_list_response_model.dart b/lib/models/master_dropdowns/metric_list_response_model.dart new file mode 100644 index 0000000..21bd62d --- /dev/null +++ b/lib/models/master_dropdowns/metric_list_response_model.dart @@ -0,0 +1,73 @@ +import 'dart:convert'; + +MetricListSubmitModel metricListSubmitModelFromJson(String str) => + MetricListSubmitModel.fromJson(json.decode(str)); + +String metricListSubmitModelToJson(MetricListSubmitModel data) => + json.encode(data.toJson()); + +class MetricListSubmitModel { + bool? isSuccess; + int? statusCode; + String? message; + List? data; + dynamic errors; + + MetricListSubmitModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory MetricListSubmitModel.fromJson(Map json) => + MetricListSubmitModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: + json["data"] == null + ? [] + : List.from( + json["data"]!.map((x) => SingelMetricModel.fromJson(x)), + ), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": + data == null ? [] : List.from(data!.map((x) => x.toJson())), + "errors": errors, + }; +} + +class SingelMetricModel { + int? metricId; + String? metricName; + List? metricUnits; + + SingelMetricModel({this.metricId, this.metricName, this.metricUnits}); + + factory SingelMetricModel.fromJson(Map json) => + SingelMetricModel( + metricId: json["metricID"], + metricName: json["metricName"], + metricUnits: + json["metricUnits"] == null + ? [] + : List.from(json["metricUnits"]!.map((x) => x)), + ); + + Map toJson() => { + "metricID": metricId, + "metricName": metricName, + "metricUnits": + metricUnits == null + ? [] + : List.from(metricUnits!.map((x) => x)), + }; +} diff --git a/lib/models/master_dropdowns/prefferred_workout_types_dropdown_response_model.dart b/lib/models/master_dropdowns/prefferred_workout_types_dropdown_response_model.dart new file mode 100644 index 0000000..7782a0d --- /dev/null +++ b/lib/models/master_dropdowns/prefferred_workout_types_dropdown_response_model.dart @@ -0,0 +1,62 @@ +import 'dart:convert'; + +PreferredWorkoutTypesResponseModel preferredWorkoutTypesResponseModelFromJson( + String str, +) => PreferredWorkoutTypesResponseModel.fromJson(json.decode(str)); + +String preferredWorkoutTypesResponseModelToJson( + PreferredWorkoutTypesResponseModel data, +) => json.encode(data.toJson()); + +class PreferredWorkoutTypesResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + List? data; + dynamic errors; + + PreferredWorkoutTypesResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory PreferredWorkoutTypesResponseModel.fromJson( + Map json, + ) => PreferredWorkoutTypesResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: + json["data"] == null + ? [] + : List.from(json["data"]!.map((x) => WorkoutTypes.fromJson(x))), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": + data == null ? [] : List.from(data!.map((x) => x.toJson())), + "errors": errors, + }; +} + +class WorkoutTypes { + int? interestId; + String? interestName; + + WorkoutTypes({this.interestId, this.interestName}); + + factory WorkoutTypes.fromJson(Map json) => + WorkoutTypes(interestId: json["interestID"], interestName: json["interestName"]); + + Map toJson() => { + "interestID": interestId, + "interestName": interestName, + }; +} diff --git a/lib/models/master_dropdowns/state_list_dropdown_response_model.dart b/lib/models/master_dropdowns/state_list_dropdown_response_model.dart new file mode 100644 index 0000000..cca844d --- /dev/null +++ b/lib/models/master_dropdowns/state_list_dropdown_response_model.dart @@ -0,0 +1,67 @@ +import 'dart:convert'; + +StateListResponseModel stateListResponseModelFromJson(String str) => + StateListResponseModel.fromJson(json.decode(str)); + +String stateListResponseModelToJson(StateListResponseModel data) => + json.encode(data.toJson()); + +class StateListResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + List? data; + dynamic errors; + + StateListResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory StateListResponseModel.fromJson(Map json) => + StateListResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: + json["data"] == null + ? [] + : List.from( + json["data"]!.map((x) => SingleStateList.fromJson(x)), + ), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": + data == null ? [] : List.from(data!.map((x) => x.toJson())), + "errors": errors, + }; +} + +class SingleStateList { + int? stateId; + int? countryId; + String? stateName; + + SingleStateList({this.stateId, this.countryId, this.stateName}); + + factory SingleStateList.fromJson(Map json) => + SingleStateList( + stateId: json["stateID"], + countryId: json["countryID"], + stateName: json["stateName"], + ); + + Map toJson() => { + "stateID": stateId, + "countryID": countryId, + "stateName": stateName, + }; +} diff --git a/lib/models/notification/get_all_notification_response_model.dart b/lib/models/notification/get_all_notification_response_model.dart new file mode 100644 index 0000000..4db099c --- /dev/null +++ b/lib/models/notification/get_all_notification_response_model.dart @@ -0,0 +1,113 @@ +import 'dart:convert'; + +GetAllNotificationResponseModel getAllNotificationResponseModelFromJson( + String str, +) => GetAllNotificationResponseModel.fromJson(json.decode(str)); + +String getAllNotificationResponseModelToJson( + GetAllNotificationResponseModel data, +) => json.encode(data.toJson()); + +class GetAllNotificationResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + GetAllNotificationResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory GetAllNotificationResponseModel.fromJson(Map json) => + GetAllNotificationResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + int? totalCount; + List? items; + int? totalUnseenCount; + + Data({this.totalCount, this.items, this.totalUnseenCount}); + + factory Data.fromJson(Map json) => Data( + totalCount: json["totalCount"], + items: + json["items"] == null + ? [] + : List.from( + json["items"]!.map((x) => NotificationItem.fromJson(x)), + ), + totalUnseenCount: json["totalUnseenCount"], + ); + + Map toJson() => { + "totalCount": totalCount, + "items": + items == null ? [] : List.from(items!.map((x) => x.toJson())), + "totalUnseenCount": totalUnseenCount, + }; +} + +class NotificationItem { + int? notificationId; + String? notificationTitle; + int? notificationType; + String? notificationTypeName; + String? userId; + bool? isSeen; + String? dataField; + String? createdAt; + + NotificationItem({ + this.notificationId, + this.notificationTitle, + this.notificationType, + this.notificationTypeName, + this.userId, + this.isSeen, + this.dataField, + this.createdAt, + }); + + factory NotificationItem.fromJson(Map json) => + NotificationItem( + notificationId: json["notificationID"], + notificationTitle: json["notificationTitle"], + notificationType: json["notificationType"], + notificationTypeName: json["notificationTypeName"], + userId: json["userID"], + isSeen: json["isSeen"], + dataField: json["dataField"], + createdAt: json["createdAt"], + ); + + Map toJson() => { + "notificationID": notificationId, + "notificationTitle": notificationTitle, + "notificationType": notificationType, + "notificationTypeName": notificationTypeName, + "userID": userId, + "isSeen": isSeen, + "dataField": dataField, + "createdAt": createdAt, + }; +} diff --git a/lib/models/register_user_post_api_response_model.dart b/lib/models/register_user_post_api_response_model.dart new file mode 100644 index 0000000..1ee6a53 --- /dev/null +++ b/lib/models/register_user_post_api_response_model.dart @@ -0,0 +1,52 @@ +import 'dart:convert'; + +RegisterPostApiResponseModel registerPostApiResponseModelFromJson(String str) => + RegisterPostApiResponseModel.fromJson(json.decode(str)); + +String registerPostApiResponseModelToJson(RegisterPostApiResponseModel data) => + json.encode(data.toJson()); + +class RegisterPostApiResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + RegisterPostApiResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory RegisterPostApiResponseModel.fromJson(Map json) => + RegisterPostApiResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + String? userId; + String? email; + + Data({this.userId, this.email}); + + factory Data.fromJson(Map json) => + Data(userId: json["userId"], email: json["email"]); + + Map toJson() => {"userId": userId, "email": email}; +} diff --git a/lib/models/user_details_response_model.dart b/lib/models/user_details_response_model.dart new file mode 100644 index 0000000..99a53cf --- /dev/null +++ b/lib/models/user_details_response_model.dart @@ -0,0 +1,187 @@ +import 'dart:convert'; + +UserDetailsResponseModel userDetailsResponseModelFromJson(String str) => + UserDetailsResponseModel.fromJson(json.decode(str)); + +String userDetailsResponseModelToJson(UserDetailsResponseModel data) => + json.encode(data.toJson()); + +class UserDetailsResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + UserDetailsResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory UserDetailsResponseModel.fromJson(Map json) => + UserDetailsResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + String? userId; + String? fullName; + String? firstName; + String? lastName; + String? userName; + String? displayName; + String? email; + String? phoneNumber; + int? userTypeId; + String? userTypeName; + String? profilePicture; + DateTime? dateOfBirth; + String? gender; + String? countryCode; + int? countryId; + int? stateId; + int? cityId; + bool? isActive; + bool? isDeleted; + dynamic fitnessLevel; + dynamic coachFitnessCategory; + String? privacySettings; + dynamic facebookSocialLink; + dynamic instagramSocialLink; + dynamic linkedInSocialLink; + dynamic twitterSocialLink; + dynamic aboutMe; + bool? isUpdateUserProfile; + bool? isUpdateUserInformation; + String? userProfilePic; + String? userProfilePicType; + String? becomeCoachStatus; + String? loginType; + + Data({ + this.userId, + this.fullName, + this.firstName, + this.lastName, + this.userName, + this.displayName, + this.email, + this.phoneNumber, + this.userTypeId, + this.userTypeName, + this.profilePicture, + this.dateOfBirth, + this.gender, + this.countryCode, + this.countryId, + this.stateId, + this.cityId, + this.isActive, + this.isDeleted, + this.fitnessLevel, + this.coachFitnessCategory, + this.privacySettings, + this.facebookSocialLink, + this.instagramSocialLink, + this.linkedInSocialLink, + this.twitterSocialLink, + this.aboutMe, + this.isUpdateUserProfile, + this.isUpdateUserInformation, + this.userProfilePic, + this.userProfilePicType, + this.becomeCoachStatus, + this.loginType, + }); + + factory Data.fromJson(Map json) => Data( + userId: json["userID"], + fullName: json["fullName"], + firstName: json["firstName"], + lastName: json["lastName"], + userName: json["userName"], + displayName: json["displayName"], + email: json["email"], + phoneNumber: json["phoneNumber"], + userTypeId: json["userTypeId"], + userTypeName: json["userTypeName"], + profilePicture: json["profilePicture"], + dateOfBirth: + json["dateOfBirth"] == null + ? null + : DateTime.parse(json["dateOfBirth"]), + gender: json["gender"], + countryCode: json["countryCode"], + countryId: json["countryID"], + stateId: json["stateID"], + cityId: json["cityID"], + isActive: json["isActive"], + isDeleted: json["isDeleted"], + fitnessLevel: json["fitnessLevel"], + coachFitnessCategory: json["coachFitnessCategory"], + privacySettings: json["privacySettings"], + facebookSocialLink: json["facebookSocialLink"], + instagramSocialLink: json["instagramSocialLink"], + linkedInSocialLink: json["linkedInSocialLink"], + twitterSocialLink: json["twitterSocialLink"], + aboutMe: json["aboutMe"], + isUpdateUserProfile: json["isUpdateUserProfile"], + isUpdateUserInformation: json["isUpdateUserInformation"], + userProfilePic: json["userProfilePic"], + userProfilePicType: json["userProfilePicType"], + becomeCoachStatus: json["becomeCoachStatus"], + loginType: json["loginType"], + ); + + Map toJson() => { + "userID": userId, + "fullName": fullName, + "firstName": firstName, + "lastName": lastName, + "userName": userName, + "displayName": displayName, + "email": email, + "phoneNumber": phoneNumber, + "userTypeId": userTypeId, + "userTypeName": userTypeName, + "profilePicture": profilePicture, + "dateOfBirth": dateOfBirth?.toIso8601String(), + "gender": gender, + "countryCode": countryCode, + "countryID": countryId, + "stateID": stateId, + "cityID": cityId, + "isActive": isActive, + "isDeleted": isDeleted, + "fitnessLevel": fitnessLevel, + "coachFitnessCategory": coachFitnessCategory, + "privacySettings": privacySettings, + "facebookSocialLink": facebookSocialLink, + "instagramSocialLink": instagramSocialLink, + "linkedInSocialLink": linkedInSocialLink, + "twitterSocialLink": twitterSocialLink, + "aboutMe": aboutMe, + "isUpdateUserProfile": isUpdateUserProfile, + "isUpdateUserInformation": isUpdateUserInformation, + "userProfilePic": userProfilePic, + "userProfilePicType": userProfilePicType, + "becomeCoachStatus": becomeCoachStatus, + "loginType": loginType, + }; +} diff --git a/lib/routes/app_page_router.dart b/lib/routes/app_page_router.dart new file mode 100644 index 0000000..4c096ed --- /dev/null +++ b/lib/routes/app_page_router.dart @@ -0,0 +1,328 @@ +import 'package:get/get.dart'; +import 'package:onufitness/constants/data/bindings.dart'; +import 'package:onufitness/routes/route_constant.dart'; +import 'package:onufitness/screens/accounts/views/coach_account/client_management_screen.dart'; +import 'package:onufitness/screens/accounts/views/coach_account/coach_my_profile_screen.dart'; +import 'package:onufitness/screens/accounts/views/coach_account/coach_service_offering_screen.dart'; +import 'package:onufitness/screens/accounts/views/coach_account/professional_information_screen.dart'; +import 'package:onufitness/screens/accounts/views/trainee_account/trainee_achievement_screen.dart'; +import 'package:onufitness/screens/accounts/views/trainee_account/become_a_coach_screen.dart'; +import 'package:onufitness/screens/accounts/views/trainee_account/edit_profile.dart'; +import 'package:onufitness/screens/accounts/views/trainee_account/preferred_fitnessgoal.dart'; +import 'package:onufitness/screens/accounts/views/trainee_account/privecy_policy_screen.dart'; +import 'package:onufitness/screens/accounts/views/trainee_account/termas_and_condition_screen.dart'; +import 'package:onufitness/screens/accounts/views/trainee_account/trainee_health_information.dart'; +import 'package:onufitness/screens/accounts/views/trainee_account/trainee_my_activity_screen.dart'; +import 'package:onufitness/screens/accounts/views/trainee_account/trainee_profile_screen.dart'; +import 'package:onufitness/screens/chat/views/call_ui.dart'; +import 'package:onufitness/screens/echoboard/views/user_social_profile_screen.dart'; +import 'package:onufitness/screens/echoboard/views/view_tribe_screen.dart'; +import 'package:onufitness/screens/goals/screens/goal_screen.dart'; +import 'package:onufitness/screens/login/views/email_login_screen.dart'; +import 'package:onufitness/screens/login/views/login_enter_otp_screen.dart'; +import 'package:onufitness/screens/login/views/login_reset_password_send_otp_screen.dart'; +import 'package:onufitness/screens/login/views/login_screen.dart'; +import 'package:onufitness/screens/login/views/new_password_screen.dart'; +import 'package:onufitness/screens/navbar/bottom_nav_bar.dart'; +import 'package:onufitness/screens/notification/notification_screen.dart'; +import 'package:onufitness/screens/register/views/create_final_user_account_screen.dart'; +import 'package:onufitness/screens/register/views/create_profile_screen_after_register.dart'; +import 'package:onufitness/screens/register/views/register_enter_otp_screen.dart'; +import 'package:onufitness/screens/register/views/set_password_screen.dart'; +import 'package:onufitness/screens/register/views/register_screen.dart'; +import 'package:onufitness/screens/rise/views/create_challenge_screen.dart'; +import 'package:onufitness/screens/rise/views/rise_screen.dart'; +import 'package:onufitness/screens/chat/views/chat_user_list_screen.dart'; +import 'package:onufitness/screens/echoboard/views/create_poll_screen.dart'; +import 'package:onufitness/screens/echoboard/views/echoboard_view_screen.dart'; +import 'package:onufitness/screens/echoboard/views/exclusive_connection_selection_screen.dart'; +import 'package:onufitness/screens/echoboard/views/friend_request_screen.dart'; +import 'package:onufitness/screens/echoboard/views/upload_post_screen.dart'; +import 'package:onufitness/screens/echoboard/views/user_search_screen_for_connection.dart'; +import 'package:onufitness/screens/echoboard/views/user_selection_screen_for_create_tribe.dart'; +import 'package:onufitness/screens/splash/get_started_screen.dart'; +import 'package:onufitness/screens/splash/splash_screen.dart'; +import 'package:onufitness/screens/streamming/screens/get_singel_live_stream_screen.dart'; +import 'package:onufitness/screens/u_vault/views/draft_videos_screen.dart'; +import 'package:onufitness/screens/u_vault/views/my_videos_screen.dart'; +import 'package:onufitness/screens/u_vault/views/update_uvault_screen.dart'; +import 'package:onufitness/screens/u_vault/views/upload_uvoult_video_screen.dart'; +import 'package:onufitness/screens/u_vault/views/view_uvault_videos.dart'; + +class AppPageRouter { + final List getPages = [ + // Splash screen route............................................. + GetPage(name: RouteConstant.splashScreen, page: () => SplashScreen()), + GetPage( + name: RouteConstant.getStartedScreen, + page: () => GetStartedScreen(), + ), + + // login routes.................................................... + GetPage( + name: RouteConstant.loginFirstScreen, + page: () => LoginScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.emailLoginScreen, + page: () => EmailLoginScreen(), + binding: MyBinding(), + ), + + GetPage( + name: RouteConstant.loginResetPasswordSendScreen, + page: () => LoginResetPasswordSendOtpScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.loginEnterOtpScreen, + page: () => LoginEnterOtpScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.loginSetNewPasswordScreen, + page: () => SetNewPasswordScreenAfterResetPassword(), + binding: MyBinding(), + ), + + // Register routes.................................................... + GetPage( + name: RouteConstant.signUpScreen, + page: () => RegistrationScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.signupEnterOtpScreen, + page: () => RegisterEnterOtpScreen(), + binding: MyBinding(), + ), + + GetPage( + name: RouteConstant.signUpSetPassword, + page: () => RegisterSetPasswordScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.signUpCreateProfile, + page: () => CreateProfileScreen(), + binding: MyBinding(), + ), + + GetPage( + name: RouteConstant.signUpCreateUserFinalAccount, + page: () => CreateFinalUserAccountScreen(), + binding: MyBinding(), + ), + //Dashboard....................................... + GetPage( + name: RouteConstant.dashboardScreen, + page: () => DashboardScreen(), + binding: MyBinding(), + ), + // My Account Screens.............................. + // Trainee + GetPage( + name: RouteConstant.traineeMyProfile, + page: () => TraineeProfileScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.traineeCoachEditProfile, + page: () => TraineeCoachEditProfileScreen(), + binding: MyBinding(), + ), + + GetPage( + name: RouteConstant.traineeHealthInformationScreen, + page: () => const TraineeHealthInformationScreen(), + binding: MyBinding(), + ), + + GetPage( + name: RouteConstant.traineeMyactivity, + page: () => const TraineeMyActivityScreen(), + binding: MyBinding(), + ), + + GetPage( + name: RouteConstant.becomeACoachScreen, + page: () => BecomeCoachForm(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.traineetermsAndConditions, + page: () => TermasAndConditionScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.privecyPolicyScreen, + page: () => PrivecyPolicyScreen(), + binding: MyBinding(), + ), + + GetPage( + name: RouteConstant.preferredFitnessgoalScreen, + page: () => PreferredFitnessgoalScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.traineeAchievementScreen, + page: () => TraineeAchievementScreen(), + binding: MyBinding(), + ), + // My Account Screens.............................. + // Coach + GetPage( + name: RouteConstant.coachClientManagement, + page: () => ClientManagementScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.coachMyProfile, + page: () => CoachMyProfileScreen(), + binding: MyBinding(), + ), + + GetPage( + name: RouteConstant.coachServiceOfferings, + page: () => ServiceOfferingsScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.professionalInfoScreen, + page: () => ProfessionalInfoScreen(), + binding: MyBinding(), + ), + // Uvault........................................................... + GetPage( + name: RouteConstant.uploadUvaultVideos, + page: () => const UploadUvaultScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.updateUvaultVideos, + page: () => const UpdateUvaultScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.viewUvault, + page: () => const UvaultViewScreen(), + binding: MyBinding(), + ), + + GetPage( + name: RouteConstant.draftUvaultVideos, + page: () => DraftVideosScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.myUploadedUvaultVideos, + page: () => UvaultMyVideosScreen(), + binding: MyBinding(), + ), + + // EchoBoard........................................................... + GetPage( + name: RouteConstant.viewPosts, + page: () => EchoBoardViewScreen(), + binding: MyBinding(), + ), + + GetPage( + name: RouteConstant.userSearchScreen, + page: () => UserSearchScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.uploadSocialPostScreen, + page: () => UploadPostScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.chatListScreen, + page: () => ChatListScreen(), + binding: MyBinding(), + ), + + GetPage( + name: RouteConstant.friendRequestScreen, + page: () => FriendRequestScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.pollCreateScreen, + page: () => PollCreationView(), + binding: MyBinding(), + ), + + GetPage( + name: RouteConstant.userListViewScreenForTribe, + page: () => UserListViewScreenForTribe(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.userSocialProfileScreen, + page: () => UserSocialProfileScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.viewTribeScreen, + page: () => ViewTribeScreen(), + binding: MyBinding(), + ), + + GetPage( + name: RouteConstant.exclusiveConnectionSelectionScreen, + page: () => ExclusiveConnectionSelectionScreen(), + binding: MyBinding(), + ), + + //Notification.......................................................................... + GetPage( + name: RouteConstant.notificationListScreen, + page: () => NotificationScreen(), + binding: MyBinding(), + ), + // Call Screens........................................................... + GetPage( + name: RouteConstant.incomingCallScreen, + page: () => IncomingCallScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.outgoingCallScreen, + page: () => OutgoingCallScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.activeCallScreen, + page: () => CallScreen(), + binding: MyBinding(), + ), + //...... Challenge................................................................ + GetPage( + name: RouteConstant.createChallengeScreen, + page: () => CreateChallengeScreen(), + binding: MyBinding(), + ), + GetPage( + name: RouteConstant.challengeListScreen, + page: () => RiseScreen(), + binding: MyBinding(), + ), + + // Goal.......................................................................................... + GetPage( + name: RouteConstant.goalScreen, + page: () => GoalScreen(), + binding: MyBinding(), + ), + // Goal.......................................................................................... + GetPage( + name: RouteConstant.singleLiveStreamScreen, + page: () => SingleLiveStreamScreen(), + binding: MyBinding(), + ), + ]; +} diff --git a/lib/routes/route_constant.dart b/lib/routes/route_constant.dart new file mode 100644 index 0000000..31f56e2 --- /dev/null +++ b/lib/routes/route_constant.dart @@ -0,0 +1,93 @@ +class RouteConstant { + static const String splashScreen = "/"; + static const String getStartedScreen = "/getStartedScreen"; + // Login Screens................................. + static const String loginFirstScreen = "/login"; + static const String emailLoginScreen = "/emailLogin"; + static const String loginResetPasswordSendScreen = + "/emailLogin/resetPassword/Send"; + static const String loginEnterOtpScreen = "/login/enterOTP"; + static const String loginSetNewPasswordScreen = "/login/setNewPassword"; + + // Register Screens............................... + + static const String signUpScreen = "/createAccount"; + static const String signupEnterOtpScreen = "/createAccount/signupOTP"; + static const String signUpSetPassword = + "/createAccount/signupOTP/setPassword"; + static const String signUpCreateProfile = + "/createAccount/signupOTP/setPassword/createProfile"; + + static const String signUpCreateUserFinalAccount = + "/createProfile/createFinalAccount"; + static const String dashboardScreen = "/dashboard"; + + // My Account Screens.............................. + // Trainee + static const String traineeMyProfile = "/trainee/account/myprofile"; + static const String traineeCoachEditProfile = + "/trainee/account/myprofile/edit-profilre"; + + static const String traineeHealthInformationScreen = + "/trainee/account/myprofile/health-info"; + static const String traineeMyactivity = "/trainee/account/myactivity"; + static const String traineeAchievementScreen = + "/trainee/account/achievements"; + + static const String becomeACoachScreen = "/trainee/become-coach"; + + static const String traineetermsAndConditions = "/trainee/terms-conditions"; + static const String privecyPolicyScreen = "/trainee/privacy-policy"; + + static const String preferredFitnessgoalScreen = "/trainee/preferred-goal"; + // My Account Screens.............................. + // Coach + static const String coachMyProfile = "/coach/account/myprofile"; + static const String coachClientManagement = + "/coach/account/client-management"; + static const String coachServiceOfferings = + "/coach/account/myprofile/service-offering"; + static const String professionalInfoScreen = + "/coach/account/myprofile/professional-Info"; + + //... U-vault......................................................... + static const String viewUvault = "/account/viewUvault"; + static const String uploadUvaultVideos = "/coach/account/uploadUvaultVideos"; + static const String updateUvaultVideos = "/coach/account/updateUvaultVideos"; + + static const String draftUvaultVideos = "/coach/account/draft-uvault-videos"; + static const String myUploadedUvaultVideos = + "/coach/account/my-uvault-videos"; + + //... Echo-Boadd......................................................... + + static const String viewPosts = "/echoboard/posts"; + static const String userSearchScreen = "/echoboard/search-users"; + static const String uploadSocialPostScreen = "/echoboard/upload-posts"; + static const String chatListScreen = "/echoboard/chats"; + static const String friendRequestScreen = "/echoboard/friend-requests"; + + static const String pollCreateScreen = "/echoboard/create-poll"; + static const String userSocialProfileScreen = "/echoboard/social-profile"; + + static const String userListViewScreenForTribe = "/echoboard/userlist-tribe"; + static const String exclusiveConnectionSelectionScreen = + "/echoboard/exclusive-connection-selection"; + static const String viewTribeScreen = "/echoboard/connections/tribe-list"; + //Notification.................................................................... + static const String notificationListScreen = "/notification"; + + // Challenges................................................................... + static const String createChallengeScreen = + "/account/challenge/create-challenge"; + static const String challengeListScreen = "/account/challenge"; + + //Goal............................................................................... + static const String goalScreen = "/goal"; + //... Call Screens................................................................... + static const String incomingCallScreen = "/echoboard/call/incoming"; + static const String outgoingCallScreen = "/echoboard/call/outgoing"; + static const String activeCallScreen = "/echoboard/call/active"; + //Live Stream............................................................................... + static const String singleLiveStreamScreen = "/live-Stream"; +} diff --git a/lib/screens/accounts/Controllers/client_management_controller.dart b/lib/screens/accounts/Controllers/client_management_controller.dart new file mode 100644 index 0000000..8cc6aca --- /dev/null +++ b/lib/screens/accounts/Controllers/client_management_controller.dart @@ -0,0 +1,39 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +class ClientController extends GetxController { + final TextEditingController searchController = TextEditingController(); + final List clients = [ + 'Alfonso Vetrovs', + 'James Lubin', + 'Alfredo Franci', + 'Erin Culhane', + 'Nolan Calzoni', + 'Lindsey Mango', + 'Maria Passaquindici Arcand', + 'Chance Culhane', + ]; + final RxList filteredClients = [].obs; + + @override + void onInit() { + super.onInit(); + filteredClients.assignAll(clients); + searchController.addListener(_filterClients); + } + + void _filterClients() { + filteredClients.assignAll( + clients.where( + (client) => + client.toLowerCase().contains(searchController.text.toLowerCase()), + ), + ); + } + + @override + void onClose() { + searchController.dispose(); + super.onClose(); + } +} diff --git a/lib/screens/accounts/Controllers/coach_account_controller.dart b/lib/screens/accounts/Controllers/coach_account_controller.dart new file mode 100644 index 0000000..ccc003a --- /dev/null +++ b/lib/screens/accounts/Controllers/coach_account_controller.dart @@ -0,0 +1,105 @@ +import 'dart:convert'; +import 'dart:developer'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class ProfessionalInfoController extends GetxController { + TextEditingController experienceTextController = TextEditingController(); + + @override + void onInit() { + super.onInit(); + onInitApiCall(); + experienceTextController = TextEditingController(); + } + + onInitApiCall() async { + await getProfessionalInfoApiCall(); + } + + @override + void onClose() { + experienceTextController.dispose(); + super.onClose(); + } + + //.............................................................................................................. + var specializations = [].obs; + + void addSpecialization(String specialization) { + if (specialization.isNotEmpty && + !specializations.contains(specialization)) { + specializations.add(specialization); + } + } + + void removeSpecialization(String specialization) { + specializations.remove(specialization); + } + + //.............................................................................................................. + RxBool isfetchProfInfoLoading = false.obs; + + getProfessionalInfoApiCall() async { + isfetchProfInfoLoading(true); + try { + var response = await ApiBase.getRequest( + extendedURL: ApiUrl.getCoachProfessionalInfo, + sendHeaders: true, + ); + log(response.statusCode.toString()); + log(response.body.toString()); + if (response.statusCode == 200 || response.statusCode == 201) { + var body = jsonDecode(response.body); + if (body["data"]["yearOfExperience"] != null) { + experienceTextController.text = + body["data"]["yearOfExperience"].toString(); + } + } else { + customSnackbar( + title: "Failed", + message: "Failed to fetch year of experience", + ); + } + } catch (e) { + log("Error fetching professional info: ${e.toString()}"); + } + isfetchProfInfoLoading(false); + } + + RxBool isUpdateProfInfoLoading = false.obs; + + updateProfessionalInfoApiCall() async { + isUpdateProfInfoLoading(true); + try { + var response = await ApiBase.patchRequest( + extendedURL: ApiUrl.updateCoachProfessionalInfo, + body: {"yearOfExperience": experienceTextController.text.trim()}, + ); + log(response.body.toString()); + if (response.statusCode == 200 || response.statusCode == 201) { + customSnackbar( + title: "Success", + message: "Experience Updated Successfully", + duration: 1, + ); + } else { + customSnackbar( + title: "Failed", + message: "Failed to update experience", + duration: 1, + ); + } + } catch (e) { + customSnackbar( + title: "Failed", + message: "Failed to update experience", + duration: 1, + ); + } + isUpdateProfInfoLoading(false); + } +} diff --git a/lib/screens/accounts/Controllers/coach_rating_controller.dart b/lib/screens/accounts/Controllers/coach_rating_controller.dart new file mode 100644 index 0000000..83bf08f --- /dev/null +++ b/lib/screens/accounts/Controllers/coach_rating_controller.dart @@ -0,0 +1,169 @@ +import 'dart:developer'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/screens/accounts/model/coach_rating_response_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class RatingsReviewsController extends GetxController { + var isLoading = false.obs; + var coachRatingsData = Rxn(); + var currentPage = 1.obs; + var pageSize = 10.obs; + var hasMoreData = true.obs; + var isLoadingMore = false.obs; + + @override + void onInit() { + fetchRatingsReviews(isRefresh: true); + super.onInit(); + scrollController = ScrollController(); + scrollController.addListener(_scrollListener); + } + + @override + void onClose() { + scrollController.dispose(); + super.onClose(); + } + + late ScrollController scrollController; + void _scrollListener() { + if (scrollController.position.pixels == + scrollController.position.maxScrollExtent) { + if (!isLoadingMore.value && hasMoreData.value) { + loadMoreReviews(); + } + } + } + + Future fetchRatingsReviews({bool isRefresh = false}) async { + if (isRefresh) { + currentPage.value = 1; + hasMoreData.value = true; + } + + isLoading(true); + try { + var response = await ApiBase.getRequest( + extendedURL: + "${ApiUrl.getCoachReviewRating}?PageNumber=${currentPage.value}&PageSize=${pageSize.value}", + sendHeaders: true, + ); + + log("Response Status Code: ${response.statusCode}"); + log("Response Body: ${response.body}"); + + if (response.statusCode == 200 || response.statusCode == 201) { + var responseModel = coachRatingsResponseModelFromJson(response.body); + + if (responseModel.isSuccess == true) { + if (isRefresh || currentPage.value == 1) { + coachRatingsData.value = responseModel; + } else { + // Append new reviews to existing list + if (coachRatingsData.value?.data?.userReviewRatings != null) { + coachRatingsData.value!.data!.userReviewRatings!.addAll( + responseModel.data?.userReviewRatings ?? [], + ); + coachRatingsData.refresh(); + } + } + + // Check if there are more reviews to load + int currentReviewsCount = + coachRatingsData.value?.data?.userReviewRatings?.length ?? 0; + int totalReviews = coachRatingsData.value?.data?.totalReviews ?? 0; + hasMoreData.value = currentReviewsCount < totalReviews; + } else { + log("Failed to fetch reviews : Else 1"); + } + } else { + log("Failed to fetch reviews : Else 2"); + } + } catch (e) { + log("Error fetching ratings: ${e.toString()}"); + customSnackbar( + title: "Error", + message: "Something went wrong while fetching reviews", + ); + } + isLoading(false); + } + + Future loadMoreReviews() async { + if (isLoadingMore.value || !hasMoreData.value) return; + + isLoadingMore(true); + currentPage.value++; + + try { + var response = await ApiBase.getRequest( + extendedURL: + "${ApiUrl.getCoachReviewRating}?PageNumber=${currentPage.value}&PageSize=${pageSize.value}", + sendHeaders: true, + ); + log("Ratting response body :------> ${response.body}"); + if (response.statusCode == 200 || response.statusCode == 201) { + var responseModel = coachRatingsResponseModelFromJson(response.body); + + if (responseModel.isSuccess == true && + responseModel.data?.userReviewRatings != null) { + if (responseModel.data!.userReviewRatings!.isNotEmpty) { + coachRatingsData.value!.data!.userReviewRatings!.addAll( + responseModel.data!.userReviewRatings!, + ); + coachRatingsData.refresh(); + } else { + hasMoreData.value = false; + } + + int currentReviewsCount = + coachRatingsData.value?.data?.userReviewRatings?.length ?? 0; + int totalReviews = coachRatingsData.value?.data?.totalReviews ?? 0; + hasMoreData.value = currentReviewsCount < totalReviews; + } else { + hasMoreData.value = false; + } + } else { + hasMoreData.value = false; + } + } catch (e) { + log("Error loading more reviews: ${e.toString()}"); + hasMoreData.value = false; + } + isLoadingMore(false); + } + + Future refreshReviews() async { + await fetchRatingsReviews(isRefresh: true); + } + + // Get rating percentage for progress bars + double getRatingPercentage(int starCount, int totalReviews) { + if (totalReviews == 0) { + return 0.0; + } else { + return (starCount / totalReviews) * 100; + } + } + + // Get star count by rating + int getStarCount(int rating) { + switch (rating) { + case 5: + return coachRatingsData.value?.data?.countOf5Star ?? 0; + case 4: + return coachRatingsData.value?.data?.countOf4Star ?? 0; + case 3: + return coachRatingsData.value?.data?.countOf3Star ?? 0; + case 2: + return coachRatingsData.value?.data?.countOf2Star ?? 0; + case 1: + return coachRatingsData.value?.data?.countOf1Star ?? 0; + default: + return 0; + } + } +} diff --git a/lib/screens/accounts/Controllers/coach_service_offering_controller.dart b/lib/screens/accounts/Controllers/coach_service_offering_controller.dart new file mode 100644 index 0000000..cff2d07 --- /dev/null +++ b/lib/screens/accounts/Controllers/coach_service_offering_controller.dart @@ -0,0 +1,382 @@ +import 'dart:developer'; +import 'package:file_picker/file_picker.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/controller/update_acces_token_controller.dart'; +import 'package:onufitness/screens/accounts/model/coach_service_offerings_response_model.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/models/master_dropdowns/coach_types_dropdown_response_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/services/local_storage_services/shared_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:http/http.dart' as http; + +class CoachServiceOfferingController extends GetxController { + @override + void onInit() { + fetchCoachTypes(); + getServiceOfferings(); + super.onInit(); + } + + var isServiceOfferingsLoading = false.obs; + var serviceOfferingsData = Rxn(); + var apiCertificates = [].obs; + var isUpdatingServiceOffering = false.obs; + var isAddingCertificate = false.obs; + + Future pickFileForAdding() async { + FilePickerResult? result = await FilePicker.platform.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf', 'jpg', 'jpeg', 'png'], + ); + + if (result != null) { + String filePath = result.files.single.path!; + await addCertificateToServer(filePath); + } + } + + void pickFileForEditing(int index) async { + FilePickerResult? result = await FilePicker.platform.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf', 'jpg', 'jpeg', 'png'], + ); + + if (result != null) { + String filePath = result.files.single.path!; + Certificate cert = apiCertificates[index]; + await updateCertificateOnServer(cert.certificateId!, filePath); + } + } + + Future downloadCertificate(String filePath) async { + final uri = Uri.parse(filePath); + if (!await launchUrl(uri, mode: LaunchMode.inAppBrowserView)) { + throw Exception('Could not launch $filePath'); + } + } + + String getShortText(String text, {int maxLength = 10}) { + if (text.length <= maxLength) return text; + return '${text.substring(0, maxLength)}...'; + } + + void removeCertificateWithConfirmation(int index) { + String fileName = apiCertificates[index].certificateName!; + + Get.dialog( + AlertDialog( + title: Text("Remove Certificate"), + content: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("Are you sure you want to remove this certificate?"), + SizedBox(height: 10), + Text( + "File: $fileName", + style: TextStyle(fontWeight: FontWeight.bold), + ), + SizedBox(height: 10), + ], + ), + actions: [ + TextButton(onPressed: () => Get.back(), child: Text("Cancel")), + ElevatedButton( + onPressed: () { + Get.back(); + + _removeCertificateAtIndex(index); + }, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.red, + foregroundColor: Colors.white, + ), + child: Text("Remove"), + ), + ], + ), + ); + } + + void _removeCertificateAtIndex(int index) async { + Certificate cert = apiCertificates[index]; + await deleteCertificateFromServer(cert.certificateId!); + } + + //Update Service Offering .............................................................................. + Future updateServiceOffering() async { + if (selectedCoachTypesId.value == 0) { + customSnackbar(title: "Error", message: "Please select a coach type"); + return; + } + + isUpdatingServiceOffering(true); + try { + var response = await ApiBase.putRequest( + extendedURL: ApiUrl.updateServiceOffering, + sendHeaders: true, + body: {"coachTypeID": selectedCoachTypesId.value}, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + customSnackbar( + title: "Success", + message: "Service offering updated successfully", + duration: 1, + ); + await getServiceOfferings(); + } else { + customSnackbar( + title: "Error", + message: "Failed to update service offering", + duration: 1, + ); + } + } catch (e) { + customSnackbar( + title: "Error", + message: "Failed to update service offering", + duration: 1, + ); + } finally { + isUpdatingServiceOffering(false); + } + } + + // Delete Certificate............................................................................... + + RxList deleteCertificateLoading = [].obs; + Future deleteCertificateFromServer(int certificateId) async { + deleteCertificateLoading.add(certificateId); + try { + var response = await ApiBase.deleteRequest( + extendedURL: "${ApiUrl.deleteCoachCertificate}/$certificateId", + sendHeaders: true, + body: {}, + ); + + if (response.statusCode == 200 || response.statusCode == 204) { + await getServiceOfferings(); + } else { + customSnackbar(title: "Error", message: "Failed to delete certificate"); + } + } catch (e) { + log("Exception in deleteCertificateFromServer: $e"); + customSnackbar( + title: "Error", + message: "Failed to delete certificate: ${e.toString()}", + ); + } finally { + deleteCertificateLoading.remove(certificateId); + } + } + + // Update Certificate....................................................................................... + RxList updateCertificateLoading = [].obs; + + Future updateCertificateOnServer( + int certificateId, + String filePath, + ) async { + updateCertificateLoading.add(certificateId); + try { + var request = http.MultipartRequest( + 'PUT', + Uri.parse("${ApiUrl.baseUrl}${ApiUrl.updateCoachCertificate}"), + ); + + String? token = SharedServices.userAuth(); + request.headers['Authorization'] = 'Bearer $token'; + request.headers['accept'] = 'text/plain'; + request.fields['CertificateID'] = certificateId.toString(); + var file = await http.MultipartFile.fromPath('Certificates', filePath); + request.files.add(file); + var response = await request.send(); + var responseBody = await response.stream.bytesToString(); + + if (response.statusCode == 200 || response.statusCode == 201) { + customSnackbar( + title: "Success", + message: "Certificate updated successfully", + duration: 1, + ); + await getServiceOfferings(); + } else if (response.statusCode == 401) { + await UpdateAccesTokenController.updateAccessToken(); + await updateCertificateOnServer(certificateId, filePath); + } else { + log("Update certificate error: ${response.statusCode} - $responseBody"); + customSnackbar( + title: "Error", + message: "Failed to update certificate", + duration: 1, + ); + } + } catch (e) { + log("Catch: Exception in updateCertificateOnServer"); + customSnackbar( + title: "Error", + message: "Failed to update certificate", + duration: 1, + ); + } finally { + updateCertificateLoading.remove(certificateId); + } + } + + // Add Certificate....................................................................................... + Future addCertificateToServer(String filePath) async { + isAddingCertificate(true); + try { + var request = http.MultipartRequest( + 'POST', + Uri.parse( + "${ApiUrl.baseUrl}${ApiUrl.coachAddServiceOfferingCertificate}", + ), + ); + + String? token = SharedServices.userAuth(); + request.headers['Authorization'] = 'Bearer $token'; + request.headers['accept'] = 'text/plain'; + request.fields['CertificateType'] = 'string'; + var file = await http.MultipartFile.fromPath('Certificates', filePath); + request.files.add(file); + + var response = await request.send(); + var responseBody = await response.stream.bytesToString(); + log("Add certificate error: ${response.statusCode} - $responseBody"); + + if (response.statusCode == 200 || response.statusCode == 201) { + customSnackbar( + title: "Success", + message: "Certificate added successfully", + duration: 1, + ); + + await getServiceOfferings(); + } else if (response.statusCode == 401) { + await UpdateAccesTokenController.updateAccessToken(); + await addCertificateToServer(filePath); + } else { + log("Add certificate error: ${response.statusCode} - $responseBody"); + customSnackbar( + title: "Error", + message: "Failed to add certificate", + duration: 1, + ); + } + } catch (e) { + log("Exception in addCertificateToServer: $e"); + customSnackbar( + title: "Error", + message: "Failed to add certificate: ${e.toString()}", + duration: 1, + ); + } finally { + isAddingCertificate(false); + } + } + + //...........Fetch Coach Types for Dropdown.............................................................................. + var isCoachTypesLoading = false.obs; + var apiCoachTypeList = [].obs; + var selectedCoachTypes = "".obs; + RxList localCoachTypesNameList = [].obs; + RxInt selectedCoachTypesId = 0.obs; + + Future fetchCoachTypes() async { + isCoachTypesLoading(true); + try { + var response = await ApiBase.getRequest( + extendedURL: ApiUrl.fetchCoachTypes, + sendHeaders: true, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + var responseData = coachTypesResponseModelFromJson(response.body); + if (responseData.isSuccess == true) { + apiCoachTypeList.assignAll(responseData.data ?? []); + + localCoachTypesNameList.clear(); + + for (var coach in responseData.data!) { + localCoachTypesNameList.add(coach.typeName.toString()); + } + } else { + var responseData = coachTypesResponseModelFromJson(response.body); + customSnackbar( + title: "Error", + message: responseData.message ?? "Failed to get Coach Types", + ); + } + } else { + var responseData = coachTypesResponseModelFromJson(response.body); + customSnackbar( + title: "Error", + message: responseData.message ?? "Failed to get Coach Types", + ); + } + } catch (e) { + log("Exception: $e"); + customSnackbar(title: "Error", message: "Failed to get Coach Types"); + } finally { + isCoachTypesLoading(false); + } + } + + //...........Get Service Offerings API Call.............................................................................. + Future getServiceOfferings() async { + isServiceOfferingsLoading(true); + try { + var response = await ApiBase.getRequest( + extendedURL: ApiUrl.getServiceOfferings, + sendHeaders: true, + ); + log(response.body); + if (response.statusCode == 200 || response.statusCode == 201) { + var responseData = getServiceOfferingsResponseModelFromJson( + response.body, + ); + if (responseData.isSuccess == true && responseData.data != null) { + serviceOfferingsData.value = responseData.data; + apiCertificates.assignAll(responseData.data?.certificates ?? []); + + if (responseData.data?.coachTypeName != null) { + selectedCoachTypes.value = responseData.data!.coachTypeName!; + selectedCoachTypesId.value = responseData.data!.coachTypeId ?? 0; + } + + log("Service Offerings loaded successfully"); + } else { + customSnackbar( + title: "Error", + message: responseData.message ?? "Failed to get Service Offerings", + ); + } + } else { + log("API Error: Status Code ${response.statusCode}"); + log("Response Body: ${response.body}"); + customSnackbar( + title: "Error", + message: "Failed to get Service Offerings", + ); + } + } catch (e) { + log("Exception in getServiceOfferings: $e"); + customSnackbar( + title: "Error", + message: "Failed to get Service Offerings}", + ); + } finally { + isServiceOfferingsLoading(false); + } + } + + // Method to refresh/reload service offerings........................................................................ + Future refreshServiceOfferings() async { + await getServiceOfferings(); + } +} diff --git a/lib/screens/accounts/Controllers/edit_account_controller.dart b/lib/screens/accounts/Controllers/edit_account_controller.dart new file mode 100644 index 0000000..3546dfb --- /dev/null +++ b/lib/screens/accounts/Controllers/edit_account_controller.dart @@ -0,0 +1,361 @@ +import 'dart:convert'; +import 'dart:developer'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:intl/intl.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/models/user_details_response_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class EditAccountController extends GetxController { + // User data + UserDetailsResponseModel userDetailsResponseModel = + UserDetailsResponseModel(); + + final ImagePicker _picker = ImagePicker(); + var profileImage = Rx(null); + var isUploadingImage = false.obs; + + TextEditingController firstNameController = TextEditingController(); + TextEditingController lastNameController = TextEditingController(); + TextEditingController aboutMeController = TextEditingController(); + TextEditingController facebookController = TextEditingController(); + TextEditingController instagramController = TextEditingController(); + TextEditingController linkedInController = TextEditingController(); + TextEditingController twitterController = TextEditingController(); + TextEditingController phoneNumberController = TextEditingController(); + + // Form Data + var selectedDate = "".obs; + var selectedGender = 'Male'.obs; + var selectedCountryCode = 'IN'.obs; + + // Loading states + var isUpdating = false.obs; + var isLoading = false.obs; + + @override + void onInit() { + firstNameController = TextEditingController(); + lastNameController = TextEditingController(); + aboutMeController = TextEditingController(); + facebookController = TextEditingController(); + instagramController = TextEditingController(); + linkedInController = TextEditingController(); + twitterController = TextEditingController(); + phoneNumberController = TextEditingController(); + super.onInit(); + loadUserData(); + } + + RxBool fetchUserDetailsLoading = false.obs; + Future fetchUserDetails() async { + fetchUserDetailsLoading(true); + update(); + try { + final response = await ApiBase.getRequest( + extendedURL: ApiUrl.fetchUserDetails, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + userDetailsResponseModel = userDetailsResponseModelFromJson( + response.body, + ); + _populateFormFields(); + update(); + + return true; + } else { + customSnackbar(title: "Error", message: "Failed to fetch user details"); + return false; + } + } catch (e) { + log("Exception: $e"); + customSnackbar(title: "Error", message: "Failed to fetch user details"); + return false; + } finally { + fetchUserDetailsLoading(false); + update(); + } + } + + Future loadUserData() async { + isLoading.value = true; + + final success = await fetchUserDetails(); + + if (success) { + _populateFormFields(); + } + + isLoading.value = false; + } + + void _populateFormFields() { + final userData = userDetailsResponseModel.data; + if (userData == null) return; + + firstNameController.text = userData.firstName ?? ''; + lastNameController.text = userData.lastName ?? ''; + aboutMeController.text = userData.aboutMe ?? ''; + facebookController.text = userData.facebookSocialLink ?? ''; + instagramController.text = userData.instagramSocialLink ?? ''; + linkedInController.text = userData.linkedInSocialLink ?? ''; + twitterController.text = userData.twitterSocialLink ?? ''; + phoneNumberController.text = userData.phoneNumber ?? ''; + + selectedGender.value = userData.gender ?? 'Male'; + selectedCountryCode.value = userData.countryCode ?? 'IN'; + + if (userData.dateOfBirth != null) { + selectedDate.value = DateFormat( + 'yyyy-MM-dd', + ).format(userData.dateOfBirth!); + } + } + + // Simple age validation........................................................................... + bool _isOver18(DateTime birthDate) { + final now = DateTime.now(); + final age = now.year - birthDate.year; + if (now.month < birthDate.month || + (now.month == birthDate.month && now.day < birthDate.day)) { + return (age - 1) >= 18; + } + return age >= 18; + } + + Future pickDate(BuildContext context) async { + final DateTime? pickedDate = await showDatePicker( + context: context, + initialDate: DateTime.now().subtract(Duration(days: 18 * 365)), + firstDate: DateTime(1800), + lastDate: DateTime.now(), + ); + + if (pickedDate != null) { + if (_isOver18(pickedDate)) { + selectedDate.value = DateFormat('yyyy-MM-dd').format(pickedDate); + } else { + customSnackbar( + title: "Age Restriction", + message: "You must be at least 18 years old to proceed.", + duration: 2, + ); + } + } + } + + //............................................................................................ + Future updateUserProfile() async { + isUpdating.value = true; + + try { + final requestBody = { + "firstName": firstNameController.text.trim(), + "lastName": lastNameController.text.trim(), + "aboutMe": aboutMeController.text.trim(), + "dateOfBirth": selectedDate.value, + "gender": selectedGender.value, + "facebookSocialLink": facebookController.text.trim(), + "linkedInSocialLink": linkedInController.text.trim(), + "instagramSocialLink": instagramController.text.trim(), + "twitterSocialLink": twitterController.text.trim(), + "phoneNumber": phoneNumberController.text.trim(), + "countryCode": selectedCountryCode.value, + }; + + final response = await ApiBase.patchRequest( + extendedURL: "/api/Users/update-user", + body: requestBody, + sendHeaders: true, + ); + + if (response.statusCode == 200 || response.statusCode == 204) { + // Refresh user data after successful update + await fetchUserDetails(); + update(); + Get.back(); + Future.delayed(const Duration(milliseconds: 300), () { + customSnackbar( + title: 'Success', + message: 'Profile updated successfully', + duration: 1, + ); + }); + return true; + } else { + customSnackbar( + title: 'Failed', + message: 'Failed to update profile details', + ); + return false; + } + } catch (e) { + log('Update profile error: $e'); + customSnackbar( + title: 'Failed', + message: 'Failed to update profile details', + ); + return false; + } finally { + isUpdating.value = false; + } + } + + Future uploadProfilePictureAPIcall() async { + if (profileImage.value == null) return; + + isUploadingImage.value = true; + + try { + final userData = userDetailsResponseModel.data; + final userId = userData?.userId; + + if (userId == null) { + customSnackbar(title: "Error", message: "User ID not found"); + return; + } + + final response = await ApiBase.postSingleFileRequest( + extendedURL: "${ApiUrl.uploadProfileImage}/$userId", + sendHeaders: false, + file: profileImage.value!, + fileNameKey: 'file', + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + // Refresh user data to get updated profile image + await fetchUserDetails(); + + customSnackbar( + title: "Success", + message: "Image uploaded successfully", + duration: 1, + ); + } else { + final errorMessage = + jsonDecode(response.body)["message"] ?? "Upload failed"; + customSnackbar(title: "Error", message: errorMessage); + } + } catch (e) { + log("Upload image error: $e"); + customSnackbar(title: "Error", message: "Failed to upload image"); + } finally { + isUploadingImage.value = false; + } + } + + // Getters for UI + String? get userProfileImageUrl => + userDetailsResponseModel.data?.userProfilePic; + bool get hasNetworkImage => userProfileImageUrl?.isNotEmpty == true; + //........... Delete user Account............................................................................ + RxBool isAccountDeleting = false.obs; + Future deleteUserAccount() async { + bool ret = false; + isAccountDeleting(true); + try { + final response = await ApiBase.patchRequest( + extendedURL: "/api/Users/delete-user-account", + ); + log(response.body.toString()); + if (response.statusCode == 200 || response.statusCode == 201) { + ret = true; + } else { + ret = false; + customSnackbar( + title: "Deletion Failed", + message: + "We were unable to delete your account. Please try again later.", + duration: 2, + ); + } + } catch (e) { + customSnackbar( + title: "Deletion Failed", + message: + "We were unable to delete your account. Please try again later.", + + duration: 2, + ); + ret = false; + } finally { + isAccountDeleting(false); + } + + return ret; + } + + // Form validation............................................................................ + bool validateForm() { + if (firstNameController.text.trim().isEmpty) { + customSnackbar( + title: "First Name empty", + message: "Please enter your first name", + duration: 2, + ); + return false; + } + + if (lastNameController.text.trim().isEmpty) { + customSnackbar( + title: "Last Name empty", + message: "Please enter your last name", + duration: 2, + ); + return false; + } + + if (phoneNumberController.text.trim().isEmpty) { + customSnackbar( + title: "Phone Number empty", + message: "Please enter your phone number", + duration: 2, + ); + return false; + } + + if (!isValidName(firstNameController.text.trim())) { + customSnackbar( + title: "First Name Input error", + message: + "First name should only contain letters, spaces, apostrophes, and hyphens", + duration: 2, + ); + return false; + } + + if (!isValidName(lastNameController.text.trim())) { + customSnackbar( + title: "Last Name Input error", + message: + "Last name should only contain letters, spaces, apostrophes, and hyphens", + duration: 2, + ); + return false; + } + + return true; + } + + bool isValidName(String name) { + final nameRegex = RegExp(r"^[a-zA-Z\s\-\']+$"); + return nameRegex.hasMatch(name) && name.length >= 2; + } + + @override + void onClose() { + firstNameController.dispose(); + lastNameController.dispose(); + aboutMeController.dispose(); + facebookController.dispose(); + instagramController.dispose(); + linkedInController.dispose(); + twitterController.dispose(); + phoneNumberController.dispose(); + super.onClose(); + } +} diff --git a/lib/screens/accounts/Controllers/health_info_update_controller.dart b/lib/screens/accounts/Controllers/health_info_update_controller.dart new file mode 100644 index 0000000..c90bebe --- /dev/null +++ b/lib/screens/accounts/Controllers/health_info_update_controller.dart @@ -0,0 +1,294 @@ +import 'dart:convert'; +import 'dart:developer'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/models/master_dropdowns/dietary_preferences_dropdown_response_model.dart'; +import 'package:onufitness/models/master_dropdowns/health_conditions_dropdowns_response_model.dart'; +import 'package:onufitness/screens/accounts/model/user_selected_health_cond_response_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class HealthConditionUpdateController extends GetxController { + // Loading states + var isDietaryPreferencesLoading = false.obs; + var isHealthConditionsLoading = false.obs; + var isUserDataLoading = false.obs; + var isUpdateLoading = false.obs; + + // API data lists + var apiDietaryPreferencesList = [].obs; + var apiHealthConditionsList = [].obs; + + // Local dropdown lists + var localDietaryPreferencesList = [].obs; + var localHealthConditionsList = [].obs; + + // Selected values + var selectedDietaryPreferences = "".obs; + var selectedDietaryPreferencesId = 0.obs; + var selectedHealthConditions = [].obs; + var selectedHealthConditionsIds = [].obs; + + // User data + var userHealthData = Rxn(); + + @override + void onInit() { + super.onInit(); + } + + //............... Fetch Dietary Preferences List................................................................ + + Future fetchDietaryPreferences() async { + isDietaryPreferencesLoading(true); + try { + var response = await ApiBase.getRequest( + extendedURL: ApiUrl.fetchDietaryPreferences, + sendHeaders: false, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + var responseData = dietaryPreferencesResponseModelFromJson( + response.body, + ); + if (responseData.isSuccess == true) { + apiDietaryPreferencesList.assignAll(responseData.data ?? []); + + localDietaryPreferencesList.clear(); + for (var d in responseData.data!) { + localDietaryPreferencesList.add(d.dietaryPreferenceName.toString()); + } + } else { + customSnackbar( + title: "Error", + message: + responseData.message ?? "Failed to load Dietary Preferences", + ); + } + } else { + var responseData = dietaryPreferencesResponseModelFromJson( + response.body, + ); + customSnackbar( + title: "Error", + message: responseData.message ?? "Failed to load Dietary Preferences", + ); + } + } catch (e) { + log("Error fetching dietary preferences: $e"); + customSnackbar( + title: "Error", + message: "Failed to load Dietary Preferences", + ); + } finally { + isDietaryPreferencesLoading(false); + } + } + + //............... Fetch Health Conditions List................................................................ + + Future fetchHealthConditions() async { + isHealthConditionsLoading(true); + try { + var response = await ApiBase.getRequest( + extendedURL: ApiUrl.fetchHealthConditions, + sendHeaders: false, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + var responseData = healthConditionsResponseModelFromJson(response.body); + if (responseData.isSuccess == true) { + apiHealthConditionsList.assignAll(responseData.data ?? []); + + localHealthConditionsList.clear(); + for (var health in responseData.data!) { + localHealthConditionsList.add(health.conditionName.toString()); + } + } else { + customSnackbar( + title: "Error", + message: responseData.message ?? "Failed to load Health Conditions", + ); + } + } else { + var responseData = healthConditionsResponseModelFromJson(response.body); + customSnackbar( + title: "Error", + message: responseData.message ?? "Failed to load Health Conditions", + ); + } + } catch (e) { + log("Error fetching health conditions: $e"); + customSnackbar( + title: "Error", + message: "Failed to load Health Conditions", + ); + } finally { + isHealthConditionsLoading(false); + } + } + + //............... Fetch User Health Information................................................................ + + Future fetchUserHealthInformation() async { + isUserDataLoading(true); + try { + var response = await ApiBase.getRequest( + extendedURL: '/api/Users/get-user-health-information', + sendHeaders: true, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + var responseData = userSelectedHealthConditionsResponseModelFromJson( + response.body, + ); + + if (responseData.isSuccess == true) { + userHealthData.value = responseData; + + // Set selected dietary preference + if (responseData.data?.dietaryPreferences?.isNotEmpty == true) { + var dietaryPref = responseData.data!.dietaryPreferences!.first; + selectedDietaryPreferences.value = + dietaryPref.dietaryPreferenceName ?? ""; + selectedDietaryPreferencesId.value = + dietaryPref.dietaryPreferenceId ?? 0; + } + + // Set selected health conditions + if (responseData.data?.healthConditions?.isNotEmpty == true) { + selectedHealthConditions.clear(); + selectedHealthConditionsIds.clear(); + + for (var condition in responseData.data!.healthConditions!) { + if (condition.conditionName != null) { + selectedHealthConditions.add(condition.conditionName!); + } + if (condition.conditionId != null) { + selectedHealthConditionsIds.add(condition.conditionId!); + } + } + } + + log("User health data loaded successfully"); + } else { + customSnackbar( + title: "Error", + message: + responseData.message ?? + "Failed to load user health information", + ); + } + } else { + customSnackbar( + title: "Error", + message: "Failed to load user health information", + ); + } + } catch (e) { + log("Error fetching user health information: $e"); + customSnackbar( + title: "Error", + message: "Failed to load user health information", + ); + } finally { + isUserDataLoading(false); + } + } + + //............... Update User Health Information................................................................ + + Future updateUserHealthInformation() async { + isUpdateLoading(true); + try { + // Prepare request body + Map requestBody = { + "dietaryPreferenceIDs": [selectedDietaryPreferencesId.value], + "conditionIDs": selectedHealthConditionsIds.toList(), + }; + + log("Update request body: ${jsonEncode(requestBody)}"); + + var response = await ApiBase.putRequest( + extendedURL: '/api/Users/update-user-health-information', + body: requestBody, + sendHeaders: true, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + Get.back(); + Future.delayed(Duration(milliseconds: 300), () { + customSnackbar( + title: "Success", + message: "Health information updated successfully", + duration: 2, + ); + }); + // Optionally refresh the data + await fetchUserHealthInformation(); + } else { + try { + var errorResponse = jsonDecode(response.body); + customSnackbar( + title: "Error", + message: + errorResponse['message'] ?? + "Failed to update health information", + duration: 2, + ); + } catch (e) { + customSnackbar( + title: "Error", + message: "Failed to update health information", + duration: 2, + ); + } + } + } catch (e) { + log("Error updating health information: $e"); + customSnackbar( + title: "Error", + message: "Failed to update health information", + duration: 2, + ); + } finally { + isUpdateLoading(false); + } + } + + //............... Health Conditions Selection Handler................................................................ + + void onHealthConditionsChanged(List selectedItems) { + selectedHealthConditions.assignAll(selectedItems); + + // Update selected IDs based on selected names + selectedHealthConditionsIds.clear(); + for (String conditionName in selectedItems) { + var condition = apiHealthConditionsList.firstWhereOrNull( + (element) => element.conditionName == conditionName, + ); + if (condition != null && condition.conditionId != null) { + selectedHealthConditionsIds.add(condition.conditionId!); + } + } + + log("Selected health conditions: $selectedItems"); + log( + "Selected health condition IDs: ${selectedHealthConditionsIds.toList()}", + ); + } + + //............... Clear Data on Dispose................................................................ + + @override + void onClose() { + // Clear all data when controller is disposed + apiDietaryPreferencesList.clear(); + apiHealthConditionsList.clear(); + localDietaryPreferencesList.clear(); + localHealthConditionsList.clear(); + selectedHealthConditions.clear(); + selectedHealthConditionsIds.clear(); + super.onClose(); + } +} diff --git a/lib/screens/accounts/Controllers/my_account_controller.dart b/lib/screens/accounts/Controllers/my_account_controller.dart new file mode 100644 index 0000000..ae2b057 --- /dev/null +++ b/lib/screens/accounts/Controllers/my_account_controller.dart @@ -0,0 +1,74 @@ +import 'dart:convert'; +import 'dart:developer'; + +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/services/local_storage_services/shared_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class MyAccountController extends GetxController { + RxBool isLogoutLoading = false.obs; + + Future logout() async { + var ret = false; + isLogoutLoading(true); + try { + var userId = SharedServices.getLoginDetails()?.data?.userId.toString(); + var response = await ApiBase.patchRequest( + body: {"email": userId}, + extendedURL: ApiUrl.logout, + ); + log(response.statusCode.toString()); + if (response.statusCode == 200 || response.statusCode == 201) { + ret = true; + } else { + ret = false; + customSnackbar( + title: "Error", + message: "Logout failed. Please try again.", + ); + } + } catch (e) { + log("Logout Catch : ${e.toString()}"); + customSnackbar( + title: "Error", + message: "Logout failed. Please try again.", + ); + ret = false; + } + isLogoutLoading(false); + return ret; + } + + // Get user coach request status.................................................... + + RxBool coachStatusLoading = false.obs; + + Future getCoachRequestStatus() async { + var ret = false; + coachStatusLoading(true); + try { + var response = await ApiBase.getRequest( + extendedURL: "/api/Coaches/check-coach-request-status", + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + final body = jsonDecode(response.body); + if (body["message"] != null && body["message"].toString().isNotEmpty) { + customSnackbar(title: "Info", message: body["message"], duration: 3); + } + + ret = true; + } else { + ret = false; + } + } catch (e) { + log("Coach Status Catch: ${e.toString()}"); + ret = false; + } finally { + coachStatusLoading(false); + } + return ret; + } +} diff --git a/lib/screens/accounts/Controllers/trainee_account_controller.dart b/lib/screens/accounts/Controllers/trainee_account_controller.dart new file mode 100644 index 0000000..a917f1b --- /dev/null +++ b/lib/screens/accounts/Controllers/trainee_account_controller.dart @@ -0,0 +1,243 @@ +import 'dart:developer'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/models/master_dropdowns/fitness_goals_dropdown_response_model.dart'; +import 'package:onufitness/screens/accounts/model/trainee_my_fitness_goal_response_model.dart'; +import 'package:onufitness/screens/accounts/model/user_progress_response_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class TraineeAccountController extends GetxController { + TextEditingController preferredGoalController = TextEditingController(); + + @override + void onInit() { + super.onInit(); + onInitApiCall(); + preferredGoalController = TextEditingController(); + } + + onInitApiCall() async { + await fetchFitnessGoals(); // First fetch available goals + await fetchSelectedFitnessGoal(); // Then fetch user's selected goal + } + + @override + void onClose() { + preferredGoalController.dispose(); + super.onClose(); + } + + RxBool isMyFitnessGoalLoading = false.obs; + TraineeSelectedFitnessGoalResponseModel myFitnessGoal = + TraineeSelectedFitnessGoalResponseModel(); + + Future fetchSelectedFitnessGoal() async { + var ret = false; + isMyFitnessGoalLoading(true); + try { + var response = await ApiBase.getRequest( + extendedURL: "/api/Users/get-user-preferred-goal", + ); + log("fetchSelectedFitnessGoal-----> :${response.body}"); + myFitnessGoal = traineeSelectedFitnessGoalResponseModelFromJson( + response.body, + ); + if (response.statusCode == 200 || response.statusCode == 201) { + preferredGoalController.text = + myFitnessGoal.data!.fitnessGoalTitle.toString(); + + // Set the selected goal in dropdown + selectedFitnessGoal.value = + myFitnessGoal.data!.fitnessGoalTitle.toString(); + selectedFitnessGoalId.value = myFitnessGoal.data!.fitnessGoalId ?? 0; + + ret = true; + } else { + myFitnessGoal = TraineeSelectedFitnessGoalResponseModel(); + ret = false; + } + } catch (e) { + myFitnessGoal = TraineeSelectedFitnessGoalResponseModel(); + log("Logout Catch : ${e.toString()}"); + ret = false; + } + isMyFitnessGoalLoading(false); + return ret; + } + + //............... Fetch Fitness Goals List................................................................ + + var isFitnessGoalsLoading = false.obs; + var apiFitnessGoalsList = [].obs; + var selectedFitnessGoal = "".obs; + RxList localFitnessGoalsList = [].obs; + RxInt selectedFitnessGoalId = 0.obs; + + Future fetchFitnessGoals() async { + isFitnessGoalsLoading(true); + try { + var response = await ApiBase.getRequest( + extendedURL: ApiUrl.fetchFitnessGoals, + sendHeaders: false, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + var responseData = fitnessGoalsResponseModelFromJson(response.body); + if (responseData.isSuccess == true) { + apiFitnessGoalsList.assignAll(responseData.data ?? []); + + localFitnessGoalsList.clear(); + + for (var goal in responseData.data!) { + localFitnessGoalsList.add(goal.fitnessGoalTitle.toString()); + } + } + } else {} + } catch (e) { + log(e.toString()); + } finally { + isFitnessGoalsLoading(false); + } + } + + //............... Update Fitness Goal API Call................................................................ + + RxBool isUpdateFitneesGoalLoading = false.obs; + + Future updateMyFitnessGoalApiCall() async { + if (selectedFitnessGoalId.value == 0) { + Get.snackbar("Error", "Please select a fitness goal"); + return false; + } + + var ret = false; + isUpdateFitneesGoalLoading(true); + try { + var requestBody = {"fitnessGoalID": selectedFitnessGoalId.value}; + + var response = await ApiBase.patchRequest( + extendedURL: "/api/Users/update-user-preferred-goal", + body: requestBody, + ); + + log("Update fitness goal response: ${response.statusCode}"); + + if (response.statusCode == 200 || response.statusCode == 201) { + Future.delayed(Duration(milliseconds: 500), () { + customSnackbar( + title: "Success", + message: "Fitness goal updated successfully", + duration: 1, + ); + }); + ret = true; + Get.back(); + } else { + customSnackbar( + title: "Error", + message: "Failed to update fitness goal", + duration: 2, + ); + + ret = false; + } + } catch (e) { + log("Update fitness goal catch: ${e.toString()}"); + customSnackbar( + title: "Error", + message: "Failed to update fitness goal", + duration: 2, + ); + ret = false; + } + isUpdateFitneesGoalLoading(false); + return ret; + } + + //............... User Progress with Challenges Pagination................................................................ + + RxBool isUserProgressLoading = false.obs; + RxList challengesList = [].obs; + RxInt currentPage = 1.obs; + RxInt pageSize = 10.obs; + RxInt totalChallenges = 0.obs; + RxBool hasMoreChallenges = true.obs; + UserProgressResponseModel userProgressResponse = UserProgressResponseModel(); + + Future fetchUserProgress({bool loadMore = false}) async { + if (!loadMore) { + currentPage.value = 1; + challengesList.clear(); + hasMoreChallenges.value = true; + } + + if (!hasMoreChallenges.value && loadMore) { + return false; + } + + var ret = false; + isUserProgressLoading(true); + + try { + var response = await ApiBase.getRequest( + extendedURL: + "/api/Users/get-user-progress?PageNumber=${currentPage.value}&PageSize=${pageSize.value}", + ); + + log("User progress response: ${response.statusCode}"); + + if (response.statusCode == 200 || response.statusCode == 201) { + userProgressResponse = userProgressResponseModelFromJson(response.body); + + if (userProgressResponse.isSuccess == true && + userProgressResponse.data != null) { + totalChallenges.value = + userProgressResponse.data!.totalChallenges ?? 0; + + if (userProgressResponse.data!.challenges != null && + userProgressResponse.data!.challenges!.isNotEmpty) { + if (loadMore) { + challengesList.addAll(userProgressResponse.data!.challenges!); + } else { + challengesList.assignAll(userProgressResponse.data!.challenges!); + } + + currentPage.value++; + + // Check if there are more challenges to load + if (challengesList.length >= totalChallenges.value) { + hasMoreChallenges.value = false; + } + + ret = true; + } else { + hasMoreChallenges.value = false; + } + } + } else { + ret = false; + } + } catch (e) { + log("Fetch user progress catch: ${e.toString()}"); + + ret = false; + } + + isUserProgressLoading(false); + return ret; + } + + // Load more challenges for pagination + Future loadMoreChallenges() async { + if (!isUserProgressLoading.value && hasMoreChallenges.value) { + await fetchUserProgress(loadMore: true); + } + } + + // Refresh challenges list + Future refreshChallenges() async { + await fetchUserProgress(loadMore: false); + } +} diff --git a/lib/screens/accounts/become_a_coach_controller.dart b/lib/screens/accounts/become_a_coach_controller.dart new file mode 100644 index 0000000..7b32a59 --- /dev/null +++ b/lib/screens/accounts/become_a_coach_controller.dart @@ -0,0 +1,263 @@ +import 'dart:convert'; +import 'dart:developer'; +import 'package:file_picker/file_picker.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/models/master_dropdowns/coach_types_dropdown_response_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/services/local_storage_services/shared_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class BecomeACoachController extends GetxController { + @override + void onInit() async { + super.onInit(); + fetchCoachTypes(); + certificateTypeController = TextEditingController(); + socialMediaController = TextEditingController(); + selectedExperienceCount = TextEditingController(); + } + + //............................................................................................................... + + var certificateFile = Rx(null); + + Future pickCertificate() async { + final result = await FilePicker.platform.pickFiles( + type: FileType.custom, + allowedExtensions: ['jpg', 'jpeg', 'png', 'pdf'], + ); + + if (result != null && result.files.single.path != null) { + final file = result.files.single; + final filePath = file.path!; + final fileSize = file.size; // in bytes + final fileExtension = file.extension?.toLowerCase(); + + const maxFileSize = 5 * 1024 * 1024; // 5MB + + if (!['jpg', 'jpeg', 'png', 'pdf'].contains(fileExtension)) { + customSnackbar( + title: "Invalid File", + message: "Only PDF, PNG, JPG, JPEG files are allowed.", + ); + return; + } + + if (fileSize > maxFileSize) { + customSnackbar( + title: "File Too Large", + message: + "File size too large. PDF, PNG, JPG, and JPEG files must be 5MB or smaller.", + ); + return; + } + + certificateFile.value = XFile(filePath); + } + } + + //............................................................................................................ + Rx selectedDate = Rx(null); + + void pickDate(BuildContext context) async { + DateTime? pickedDate = await showDatePicker( + context: context, + initialDate: selectedDate.value ?? DateTime.now(), + firstDate: DateTime(1900), + lastDate: DateTime.now(), + ); + + if (pickedDate != null) { + selectedDate.value = pickedDate; + } + } + + //............................................................................................................ + var isCoachTypesLoading = false.obs; + var apiCoachTypeList = [].obs; + var selectedCoachTypes = "".obs; + RxList localCoachTypesNameList = [].obs; + RxInt selectedCoachTypesId = 0.obs; + Future fetchCoachTypes() async { + isCoachTypesLoading(true); + try { + var response = await ApiBase.getRequest( + extendedURL: ApiUrl.fetchCoachTypes, + sendHeaders: false, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + var responseData = coachTypesResponseModelFromJson(response.body); + if (responseData.isSuccess == true) { + apiCoachTypeList.assignAll(responseData.data ?? []); + + localCoachTypesNameList.clear(); + + for (var coach in responseData.data!) { + localCoachTypesNameList.add(coach.typeName.toString()); + } + } else { + var responseData = coachTypesResponseModelFromJson(response.body); + customSnackbar( + title: "Error", + message: responseData.message ?? "Failed to get Coach Types", + ); + } + } else { + var responseData = coachTypesResponseModelFromJson(response.body); + customSnackbar( + title: "Error", + message: responseData.message ?? "Failed to get Coach Types", + ); + } + } catch (e) { + log("Exception: $e"); + customSnackbar(title: "Error", message: "Failed to get Coach Types"); + } finally { + isCoachTypesLoading(false); + } + } + + //............................................................................................................ + TextEditingController certificateTypeController = TextEditingController(); + TextEditingController socialMediaController = TextEditingController(); + + TextEditingController selectedExperienceCount = TextEditingController(); + RxBool isBecomeCoachLoading = false.obs; + + Future becomeCoach() async { + isBecomeCoachLoading(true); + bool ret = false; + + try { + if (certificateFile.value == null) { + customSnackbar( + title: "Error", + message: "Please select a certificate file.", + ); + isBecomeCoachLoading(false); + return false; + } + + var response = await ApiBase.postMultipleFiles( + extendedURL: ApiUrl.becomeACoach, + body: { + "UserID": SharedServices.getLoginDetails()?.data?.userId.toString(), + "YearOfExperience": selectedExperienceCount.text, + "CertificateType": certificateTypeController.text, + "SocialMediaLinks": "", + "CoachTypeID": selectedCoachTypesId.value, + }, + + files: [certificateFile.value!], + fileNameKey: 'Certificates', + ); + + log(certificateFile.value!.path.toString()); + if (response.statusCode == 200 || response.statusCode == 201) { + Future.delayed(Duration(milliseconds: 300), () { + customSnackbar( + title: "Success", + message: "Coach registration successful.", + ); + }); + + certificateTypeController.clear(); + socialMediaController.clear(); + selectedCoachTypesId.value = 0; + selectedExperienceCount.text = ""; + certificateFile.value = null; + ret = true; + } else { + log("Error: ${response.body}"); + Map responseData = json.decode(response.body); + String message = responseData['message'] ?? 'Unknown error occurred'; + Future.delayed(Duration(milliseconds: 300), () { + customSnackbar(title: "Failed", message: message); + }); + } + } catch (e) { + log("Exception: $e"); + customSnackbar( + title: "Failure", + message: "Unexpected error occurred. Please try again later.", + ); + } + + isBecomeCoachLoading(false); + return ret; + } + + // Upload Profile Picture................................................................................. + + var profileImage = Rx(null); + final ImagePicker _picker = ImagePicker(); + Future pickImage() async { + final XFile? result = await _picker.pickImage(source: ImageSource.gallery); + + if (result != null) { + final fileBytes = await result.readAsBytes(); + final fileSize = fileBytes.length; + const maxFileSize = 5 * 1024 * 1024; // 5MB + + if (fileSize > maxFileSize) { + customSnackbar( + title: "File Too Large", + message: + "Profile image must be 5MB or smaller. Please select a smaller file.", + ); + return; + } + + profileImage.value = result; + update(); + await uploadProfilePicture(); + } + } + + //......................................................................................................... + var isUploadingImage = false.obs; + + Future uploadProfilePicture() async { + if (profileImage.value == null) { + log("No image selected"); + customSnackbar(title: "Error", message: "No image selected"); + return; + } + + isUploadingImage(true); + try { + var userId = SharedServices.getUserDetails()?.data?.userId.toString(); + var response = await ApiBase.postSingleFileRequest( + extendedURL: "${ApiUrl.uploadProfileImage}/$userId", + sendHeaders: false, + file: profileImage.value!, + fileNameKey: 'file', + ); + + log(response.statusCode.toString()); + log(response.body.toString()); + if (response.statusCode == 200 || response.statusCode == 201) { + log("Image uploaded successfully"); + customSnackbar( + title: "Success", + message: "Image uploaded successfully", + duration: 1, + ); + } else { + customSnackbar( + title: "Error", + message: jsonDecode(response.body)["message"], + ); + } + } catch (e) { + log("Error uploading image: \$e"); + customSnackbar(title: "Error", message: "Failed to upload image"); + } finally { + isUploadingImage(false); + } + } +} diff --git a/lib/screens/accounts/model/coach_rating_response_model.dart b/lib/screens/accounts/model/coach_rating_response_model.dart new file mode 100644 index 0000000..3d7baea --- /dev/null +++ b/lib/screens/accounts/model/coach_rating_response_model.dart @@ -0,0 +1,142 @@ +import 'dart:convert'; + +CoachRatingsResponseModel coachRatingsResponseModelFromJson(String str) => + CoachRatingsResponseModel.fromJson(json.decode(str)); + +String coachRatingsResponseModelToJson(CoachRatingsResponseModel data) => + json.encode(data.toJson()); + +class CoachRatingsResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + CoachRatingsResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory CoachRatingsResponseModel.fromJson(Map json) => + CoachRatingsResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + List? userReviewRatings; + double? userAvgReviewRating; + int? totalReviews; + int? countOf5Star; + int? countOf4Star; + int? countOf3Star; + int? countOf2Star; + int? countOf1Star; + + Data({ + this.userReviewRatings, + this.userAvgReviewRating, + this.totalReviews, + this.countOf5Star, + this.countOf4Star, + this.countOf3Star, + this.countOf2Star, + this.countOf1Star, + }); + + factory Data.fromJson(Map json) => Data( + userReviewRatings: + json["userReviewRatings"] == null + ? [] + : List.from( + json["userReviewRatings"]!.map( + (x) => CoachReviewRating.fromJson(x), + ), + ), + userAvgReviewRating: json["userAvgReviewRating"]?.toDouble(), + totalReviews: json["totalReviews"], + countOf5Star: json["countOf5Star"], + countOf4Star: json["countOf4Star"], + countOf3Star: json["countOf3Star"], + countOf2Star: json["countOf2Star"], + countOf1Star: json["countOf1Star"], + ); + + Map toJson() => { + "userReviewRatings": + userReviewRatings == null + ? [] + : List.from(userReviewRatings!.map((x) => x.toJson())), + "userAvgReviewRating": userAvgReviewRating, + "totalReviews": totalReviews, + "countOf5Star": countOf5Star, + "countOf4Star": countOf4Star, + "countOf3Star": countOf3Star, + "countOf2Star": countOf2Star, + "countOf1Star": countOf1Star, + }; +} + +class CoachReviewRating { + String? userId; + String? firstName; + String? lastName; + String? fullName; + String? profilePicture; + int? rating; + String? reviewDescription; + DateTime? createdAt; + + CoachReviewRating({ + this.userId, + this.firstName, + this.lastName, + this.fullName, + this.profilePicture, + this.rating, + this.reviewDescription, + this.createdAt, + }); + + factory CoachReviewRating.fromJson(Map json) => + CoachReviewRating( + userId: json["userID"], + firstName: json["firstName"], + lastName: json["lastName"], + fullName: json["fullName"], + profilePicture: json["profilePicture"], + rating: json["rating"], + reviewDescription: json["reviewDescription"], + createdAt: + json["createdAt"] == null + ? null + : DateTime.parse(json["createdAt"]), + ); + + Map toJson() => { + "userID": userId, + "firstName": firstName, + "lastName": lastName, + "fullName": fullName, + "profilePicture": profilePicture, + "rating": rating, + "reviewDescription": reviewDescription, + "createdAt": createdAt?.toIso8601String(), + }; +} diff --git a/lib/screens/accounts/model/coach_service_offerings_response_model.dart b/lib/screens/accounts/model/coach_service_offerings_response_model.dart new file mode 100644 index 0000000..36b11b4 --- /dev/null +++ b/lib/screens/accounts/model/coach_service_offerings_response_model.dart @@ -0,0 +1,132 @@ +import 'dart:convert'; + +GetServiceOfferingsResponseModel getServiceOfferingsResponseModelFromJson( + String str, +) => GetServiceOfferingsResponseModel.fromJson(json.decode(str)); + +String getServiceOfferingsResponseModelToJson( + GetServiceOfferingsResponseModel data, +) => json.encode(data.toJson()); + +class GetServiceOfferingsResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + ServiceOfferingsData? data; + dynamic errors; + + GetServiceOfferingsResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory GetServiceOfferingsResponseModel.fromJson( + Map json, + ) => GetServiceOfferingsResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: + json["data"] == null + ? null + : ServiceOfferingsData.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class ServiceOfferingsData { + String? userId; + int? coachTypeId; + String? coachTypeName; + List? certificates; + + ServiceOfferingsData({ + this.userId, + this.coachTypeId, + this.coachTypeName, + this.certificates, + }); + + factory ServiceOfferingsData.fromJson(Map json) => + ServiceOfferingsData( + userId: json["userID"], + coachTypeId: json["coachTypeID"], + coachTypeName: json["coachTypeName"], + certificates: + json["certificates"] == null + ? [] + : List.from( + json["certificates"]!.map((x) => Certificate.fromJson(x)), + ), + ); + + Map toJson() => { + "userID": userId, + "coachTypeID": coachTypeId, + "coachTypeName": coachTypeName, + "certificates": + certificates == null + ? [] + : List.from(certificates!.map((x) => x.toJson())), + }; +} + +class Certificate { + int? certificateId; + String? userId; + String? certificateName; + String? certificateType; + String? certificateUrl; + DateTime? createdAt; + DateTime? updatedAt; + List? events; + + Certificate({ + this.certificateId, + this.userId, + this.certificateName, + this.certificateType, + this.certificateUrl, + this.createdAt, + this.updatedAt, + this.events, + }); + + factory Certificate.fromJson(Map json) => Certificate( + certificateId: json["certificateID"], + userId: json["userID"], + certificateName: json["certificateName"], + certificateType: json["certificateType"], + certificateUrl: json["certificateURL"], + createdAt: + json["createdAt"] == null ? null : DateTime.parse(json["createdAt"]), + updatedAt: + json["updatedAt"] == null ? null : DateTime.parse(json["updatedAt"]), + events: + json["events"] == null + ? [] + : List.from(json["events"]!.map((x) => x)), + ); + + Map toJson() => { + "certificateID": certificateId, + "userID": userId, + "certificateName": certificateName, + "certificateType": certificateType, + "certificateURL": certificateUrl, + "createdAt": createdAt?.toIso8601String(), + "updatedAt": updatedAt?.toIso8601String(), + "events": events == null ? [] : List.from(events!.map((x) => x)), + }; +} diff --git a/lib/screens/accounts/model/trainee_my_fitness_goal_response_model.dart b/lib/screens/accounts/model/trainee_my_fitness_goal_response_model.dart new file mode 100644 index 0000000..54d0ed3 --- /dev/null +++ b/lib/screens/accounts/model/trainee_my_fitness_goal_response_model.dart @@ -0,0 +1,71 @@ +import 'dart:convert'; + +TraineeSelectedFitnessGoalResponseModel +traineeSelectedFitnessGoalResponseModelFromJson(String str) => + TraineeSelectedFitnessGoalResponseModel.fromJson(json.decode(str)); + +String traineeSelectedFitnessGoalResponseModelToJson( + TraineeSelectedFitnessGoalResponseModel data, +) => json.encode(data.toJson()); + +class TraineeSelectedFitnessGoalResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + TraineeSelectedFitnessGoalResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory TraineeSelectedFitnessGoalResponseModel.fromJson( + Map json, + ) => TraineeSelectedFitnessGoalResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + int? userPreferredGoalId; + String? userId; + int? fitnessGoalId; + String? fitnessGoalTitle; + + Data({ + this.userPreferredGoalId, + this.userId, + this.fitnessGoalId, + this.fitnessGoalTitle, + }); + + factory Data.fromJson(Map json) => Data( + userPreferredGoalId: json["userPreferredGoalID"], + userId: json["userID"], + fitnessGoalId: json["fitnessGoalID"], + fitnessGoalTitle: json["fitnessGoalTitle"], + ); + + Map toJson() => { + "userPreferredGoalID": userPreferredGoalId, + "userID": userId, + "fitnessGoalID": fitnessGoalId, + "fitnessGoalTitle": fitnessGoalTitle, + }; +} diff --git a/lib/screens/accounts/model/user_progress_response_model.dart b/lib/screens/accounts/model/user_progress_response_model.dart new file mode 100644 index 0000000..1f25f9a --- /dev/null +++ b/lib/screens/accounts/model/user_progress_response_model.dart @@ -0,0 +1,117 @@ +import 'dart:convert'; + +UserProgressResponseModel userProgressResponseModelFromJson(String str) => + UserProgressResponseModel.fromJson(json.decode(str)); + +String userProgressResponseModelToJson(UserProgressResponseModel data) => + json.encode(data.toJson()); + +class UserProgressResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + UserProgressResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory UserProgressResponseModel.fromJson(Map json) => + UserProgressResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + List? challenges; + List? goals; + int? totalChallenges; + int? totalGoals; + + Data({this.challenges, this.goals, this.totalChallenges, this.totalGoals}); + + factory Data.fromJson(Map json) => Data( + challenges: + json["challenges"] == null + ? [] + : List.from( + json["challenges"]!.map((x) => ChallengePogress.fromJson(x)), + ), + goals: + json["goals"] == null + ? [] + : List.from(json["goals"]!.map((x) => x)), + totalChallenges: json["totalChallenges"], + totalGoals: json["totalGoals"], + ); + + Map toJson() => { + "challenges": + challenges == null + ? [] + : List.from(challenges!.map((x) => x.toJson())), + "goals": goals == null ? [] : List.from(goals!.map((x) => x)), + "totalChallenges": totalChallenges, + "totalGoals": totalGoals, + }; +} + +class ChallengePogress { + String? userId; + int? challengeId; + String? challengeTitle; + String? status; + String? taskUnit; + double? totalMetricValue; + + ChallengePogress({ + this.userId, + this.challengeId, + this.challengeTitle, + this.status, + this.taskUnit, + this.totalMetricValue, + }); + + factory ChallengePogress.fromJson(Map json) => + ChallengePogress( + userId: json["userID"], + challengeId: + json["challengeID"] is String + ? int.tryParse(json["challengeID"]) + : json["challengeID"], + challengeTitle: json["challengeTitle"], + status: json["status"], + taskUnit: json["taskUnit"], + totalMetricValue: + json["totalMetricValue"] is int + ? (json["totalMetricValue"] as int).toDouble() + : json["totalMetricValue"]?.toDouble(), + ); + + Map toJson() => { + "userID": userId, + "challengeID": challengeId, + "challengeTitle": challengeTitle, + "status": status, + "taskUnit": taskUnit, + "totalMetricValue": totalMetricValue, + }; +} diff --git a/lib/screens/accounts/model/user_selected_health_cond_response_model.dart b/lib/screens/accounts/model/user_selected_health_cond_response_model.dart new file mode 100644 index 0000000..58fe36d --- /dev/null +++ b/lib/screens/accounts/model/user_selected_health_cond_response_model.dart @@ -0,0 +1,117 @@ +import 'dart:convert'; + +UserSelectedHealthConditionsResponseModel +userSelectedHealthConditionsResponseModelFromJson(String str) => + UserSelectedHealthConditionsResponseModel.fromJson(json.decode(str)); + +String userSelectedHealthConditionsResponseModelToJson( + UserSelectedHealthConditionsResponseModel data, +) => json.encode(data.toJson()); + +class UserSelectedHealthConditionsResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + UserSelectedHealthConditionsResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory UserSelectedHealthConditionsResponseModel.fromJson( + Map json, + ) => UserSelectedHealthConditionsResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + String? userId; + List? healthConditions; + List? dietaryPreferences; + + Data({this.userId, this.healthConditions, this.dietaryPreferences}); + + factory Data.fromJson(Map json) => Data( + userId: json["userID"], + healthConditions: + json["healthConditions"] == null + ? [] + : List.from( + json["healthConditions"]!.map((x) => HealthCondition.fromJson(x)), + ), + dietaryPreferences: + json["dietaryPreferences"] == null + ? [] + : List.from( + json["dietaryPreferences"]!.map( + (x) => DietaryPreference.fromJson(x), + ), + ), + ); + + Map toJson() => { + "userID": userId, + "healthConditions": + healthConditions == null + ? [] + : List.from(healthConditions!.map((x) => x.toJson())), + "dietaryPreferences": + dietaryPreferences == null + ? [] + : List.from(dietaryPreferences!.map((x) => x.toJson())), + }; +} + +class DietaryPreference { + int? dietaryPreferenceId; + String? dietaryPreferenceName; + + DietaryPreference({this.dietaryPreferenceId, this.dietaryPreferenceName}); + + factory DietaryPreference.fromJson(Map json) => + DietaryPreference( + dietaryPreferenceId: json["dietaryPreferenceID"], + dietaryPreferenceName: json["dietaryPreferenceName"], + ); + + Map toJson() => { + "dietaryPreferenceID": dietaryPreferenceId, + "dietaryPreferenceName": dietaryPreferenceName, + }; +} + +class HealthCondition { + int? conditionId; + String? conditionName; + + HealthCondition({this.conditionId, this.conditionName}); + + factory HealthCondition.fromJson(Map json) => + HealthCondition( + conditionId: json["conditionID"], + conditionName: json["conditionName"], + ); + + Map toJson() => { + "conditionID": conditionId, + "conditionName": conditionName, + }; +} diff --git a/lib/screens/accounts/views/coach_account/client_management_old_design_screen.dart b/lib/screens/accounts/views/coach_account/client_management_old_design_screen.dart new file mode 100644 index 0000000..34d7f20 --- /dev/null +++ b/lib/screens/accounts/views/coach_account/client_management_old_design_screen.dart @@ -0,0 +1,120 @@ +// import 'package:flutter/material.dart'; +// import 'package:flutter_screenutil/flutter_screenutil.dart'; +// import 'package:get/get.dart'; +// import 'package:onufitness/constants/color_constant.dart'; +// import 'package:onufitness/constants/string_constant.dart'; +// import 'package:onufitness/screens/accounts/Controllers/client_management_controller.dart'; +// import 'package:onufitness/screens/accounts/widgets/show_client_details_bottom_sheet_widget.dart'; +// import 'package:onufitness/utils/helper_function.dart'; +// import 'package:onufitness/widgets/appbars/custom_appbar.dart'; + +// class ClientManagementScreen extends StatelessWidget { +// const ClientManagementScreen({super.key}); + +// @override +// Widget build(BuildContext context) { +// final ClientController controller = Get.put(ClientController()); + +// return Scaffold( +// backgroundColor: appBarBackgroundColor, +// appBar: CustomAppBar( +// title: clientManagementAppbarText, +// backgroundColor: appBarBackgroundColor, +// textColor: appbarTextColor, +// titleFontSize: 20.sp, +// leading: IconButton( +// onPressed: () { +// Navigator.pop(context); +// }, +// icon: Icon(Icons.arrow_back_ios), +// ), +// automaticallyImplyLeading: false, +// ), +// body: Column( +// children: [ +// Divider(color: Color(outlineButtonBorderColorSky)), +// Expanded( +// child: Padding( +// padding: EdgeInsets.symmetric(horizontal: 16.w), +// child: Column( +// children: [ +// SizedBox(height: 16.h), +// TextField( +// controller: controller.searchController, +// decoration: InputDecoration( +// prefixIcon: const Icon( +// Icons.search, +// color: greyTextColor1, +// ), +// hintText: searchForClientstext, +// filled: true, +// fillColor: textFieldFillColor, +// border: OutlineInputBorder( +// borderRadius: BorderRadius.circular(24.r), +// borderSide: BorderSide.none, +// ), +// ), +// ), +// SizedBox(height: 16.h), +// Expanded( +// child: Obx( +// () => ListView.builder( +// itemCount: controller.filteredClients.length, +// itemBuilder: (context, index) { +// return InkWell( +// onTap: () { +// showClientDetailsBottomSheet(context); +// }, +// child: Padding( +// padding: EdgeInsets.symmetric(vertical: 8.h), +// child: Row( +// crossAxisAlignment: CrossAxisAlignment.center, +// children: [ +// CircleAvatar( +// radius: isTablet ? 30.r : 24.r, +// backgroundImage: AssetImage( +// 'assets/image.png', +// ), +// ), +// SizedBox(width: 16.w), +// Expanded( +// child: Column( +// crossAxisAlignment: +// CrossAxisAlignment.start, +// children: [ +// Text( +// controller.filteredClients[index], +// style: TextStyle( +// fontSize: isTablet ? 20.sp : 16.sp, +// fontWeight: FontWeight.w600, +// ), +// overflow: TextOverflow.ellipsis, +// ), +// Text( +// 'Age: 30 • North America', +// style: TextStyle( +// fontSize: isTablet ? 18.sp : 14.sp, +// color: Colors.grey, +// ), +// overflow: TextOverflow.ellipsis, +// ), +// ], +// ), +// ), +// ], +// ), +// ), +// ); +// }, +// ), +// ), +// ), +// ], +// ), +// ), +// ), +// ], +// ), +// ); +// } +// } diff --git a/lib/screens/accounts/views/coach_account/client_management_screen.dart b/lib/screens/accounts/views/coach_account/client_management_screen.dart new file mode 100644 index 0000000..98f7b13 --- /dev/null +++ b/lib/screens/accounts/views/coach_account/client_management_screen.dart @@ -0,0 +1,158 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/text_constant.dart'; +import 'package:onufitness/routes/route_constant.dart'; +import 'package:onufitness/screens/echoboard/controllers/connection_and_tribe_controller.dart'; +import 'package:onufitness/screens/echoboard/controllers/profile_controller.dart'; +import 'package:onufitness/screens/echoboard/widget/friend_request_send_user_card.dart'; +import 'package:onufitness/screens/echoboard/widget/pagination_widget.dart'; +import 'package:onufitness/widgets/appbars/custom_appbar.dart'; + +class ClientManagementScreen extends StatefulWidget { + const ClientManagementScreen({super.key}); + + @override + State createState() => _ClientManagementScreenState(); +} + +class _ClientManagementScreenState extends State { + @override + void initState() { + if (!Get.isRegistered()) { + Get.put(SocialConnectionController()); + } + if (!Get.isRegistered()) { + Get.put(ProfileController()); + } + + WidgetsBinding.instance.addPostFrameCallback((_) { + getFriendList(); + }); + super.initState(); + } + + final controller = Get.find(); + + final profileController = Get.find(); + + getFriendList() async { + controller.currentTab.value = "Friends"; + controller.changeTab("Friends"); + controller.clearSearch(); + } + + @override + Widget build(BuildContext context) { + return PopScope( + canPop: true, + + onPopInvokedWithResult: (didPop, result) { + controller.searchValue.value = ""; + controller.searchController.clear(); + }, + + child: Scaffold( + appBar: CustomAppBar( + title: "Client Management", + leading: IconButton( + onPressed: () { + Get.back(); + controller.searchValue.value = ""; + controller.searchController.clear(); + }, + icon: Icon(Icons.arrow_back_ios), + ), + textColor: appbarTextColor, + backgroundColor: Colors.white, + titleFontSize: appBarHeardingText, + ), + body: Column( + children: [ + // Search Field + Padding( + padding: EdgeInsets.symmetric(horizontal: 15.sp), + child: TextField( + controller: controller.searchController, + decoration: InputDecoration( + hintText: 'Search for clients', + hintStyle: TextStyle( + fontWeight: FontWeight.w600, + color: greyBorderColor, + ), + prefixIcon: Padding( + padding: EdgeInsets.only(left: 20), + child: const Icon(Icons.search), + ), + suffixIcon: IconButton( + icon: const Padding( + padding: EdgeInsets.only(right: 10), + child: Icon(Icons.close), + ), + onPressed: () { + controller.clearSearch(); + }, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(30), + borderSide: BorderSide.none, + ), + filled: true, + fillColor: textFieldFillColor, + ), + onChanged: (value) => controller.onSearchChanged(value), + onSubmitted: (_) => controller.searchUsers(), + ), + ), + + Expanded( + child: Obx(() { + if (controller.isLoading.value) { + return const Center(child: CircularProgressIndicator()); + } else { + final users = controller.usersData.value?.data?.items; + if (users == null || users.isEmpty) { + return Center(child: Text('No Client found')); + } + + return ListView.builder( + itemCount: users.length, + padding: const EdgeInsets.all(10), + itemBuilder: (context, index) { + final user = users[index]; + + return InkWell( + onTap: () { + profileController.selectedUserId.value = + user.userId.toString(); + + Get.toNamed(RouteConstant.userSocialProfileScreen); + }, + child: ConnectUserCard( + user: user, + onConnect: () async { + await controller.sendConnectionRequest( + user.userId!, + ); + }, + connectionStatus: user.connectionStatus!, + loadingContains: + controller.sendConnectionRequestLoading, + isYourFriend: true, + ), + ); + }, + ); + } + }), + ), + //Pagination widget..................................................... + showsUserListPagination(controller), + //...................................................................... + ], + ), + ), + ); + } +} diff --git a/lib/screens/accounts/views/coach_account/coach_my_account_screen.dart b/lib/screens/accounts/views/coach_account/coach_my_account_screen.dart new file mode 100644 index 0000000..c2a5b73 --- /dev/null +++ b/lib/screens/accounts/views/coach_account/coach_my_account_screen.dart @@ -0,0 +1,456 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/asset_constants.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/constant.dart'; +import 'package:onufitness/constants/string_constant.dart'; +import 'package:onufitness/constants/text_constant.dart'; +import 'package:onufitness/controller/notification_controller.dart'; +import 'package:onufitness/routes/route_constant.dart'; +import 'package:onufitness/screens/accounts/Controllers/coach_rating_controller.dart'; +import 'package:onufitness/screens/accounts/Controllers/edit_account_controller.dart'; +import 'package:onufitness/screens/accounts/Controllers/my_account_controller.dart'; +import 'package:onufitness/screens/accounts/views/coach_account/ratings_and_reviews.dart'; +import 'package:onufitness/screens/accounts/widgets/my_account_features_tile_card.dart'; +import 'package:onufitness/screens/chat/controllers/chat_controller.dart'; +import 'package:onufitness/screens/register/Controllers/social_login_controller.dart'; +import 'package:onufitness/services/local_storage_services/shared_services.dart'; +import 'package:onufitness/services/notification_services/notification_service.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; +import 'package:onufitness/utils/helper_function.dart'; +import 'package:onufitness/widgets/others/button_action_bottom_sheet.dart'; +import 'package:onufitness/widgets/appbars/custom_appbar.dart'; +import 'package:onufitness/widgets/Buttons/custom_social_login_button.dart'; + +class CoachMyAccountScreen extends StatefulWidget { + const CoachMyAccountScreen({super.key}); + + @override + State createState() => _CoachMyAccountScreenState(); +} + +class _CoachMyAccountScreenState extends State { + MyAccountController myAccountController = Get.put(MyAccountController()); + + SocialLoginController socialLoginController = Get.put( + SocialLoginController(), + ); + final EditAccountController editAccountController = Get.put( + EditAccountController(), + ); + final notificationController = Get.find(); + final notioficationService = Get.find(); + final ratingsController = Get.put(RatingsReviewsController()); + + final chatController = Get.find(); + + Widget _buildRatingShimmer() { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 60.w, + height: 20.h, + decoration: BoxDecoration( + color: Colors.grey.shade300, + borderRadius: BorderRadius.circular(4.r), + ), + ), + SizedBox(height: 8.h), + Container( + width: 100.w, + height: 16.h, + decoration: BoxDecoration( + color: Colors.grey.shade300, + borderRadius: BorderRadius.circular(4.r), + ), + ), + ], + ), + Row( + children: List.generate(5, (index) { + return Padding( + padding: EdgeInsets.only(right: 2.w), + child: Container( + width: 22.w, + height: 22.h, + decoration: BoxDecoration( + color: Colors.grey.shade300, + borderRadius: BorderRadius.circular(2.r), + ), + ), + ); + }), + ), + ], + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: pageBackGroundColor, + appBar: CustomAppBar( + title: accountAppBarText, + backgroundColor: appBarBackgroundColor, + textColor: appbarTextColor, + titleFontSize: appBarHeardingText, + automaticallyImplyLeading: false, + actions: [ + Stack( + children: [ + IconButton( + icon: Icon( + Icons.notifications_none, + color: Colors.black, + size: 25.sp, + ), + onPressed: () { + notificationController.fetchNotifications(isRefresh: true); + Get.toNamed(RouteConstant.notificationListScreen); + }, + ), + notificationController.hasUnreadNotifications + ? Positioned( + right: isTablet ? 5.w : 12.w, + top: isTablet ? 6.h : 12.h, + child: Container( + width: 8.r, + height: 8.r, + decoration: BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ) + : SizedBox(), + ], + ), + ], + ), + body: SingleChildScrollView( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + children: [ + // Rating Card with Shimmer Loading + Obx( + () => Container( + padding: EdgeInsets.symmetric( + horizontal: 16.w, + vertical: 20.h, + ), + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: containerBorderColor), + borderRadius: BorderRadius.circular(15.r), + boxShadow: [ + BoxShadow( + blurRadius: 1, + color: Color(outlineButtonBorderColorSky), + spreadRadius: 1, + offset: Offset(0, 3), + ), + ], + ), + child: + ratingsController.isLoading.value + ? _buildRatingShimmer() + : Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + RichText( + text: TextSpan( + style: TextStyle( + fontSize: 16.sp, + color: Colors.black, + ), + children: [ + TextSpan( + text: + ratingsController + .coachRatingsData + .value + ?.data + ?.userAvgReviewRating + ?.toStringAsFixed(1) ?? + "0.0", + style: TextStyle( + fontWeight: FontWeight.w600, + fontSize: 18.sp, + color: Colors.black87, + ), + ), + TextSpan( + text: " /5", + style: TextStyle( + fontSize: 18.sp, + color: Colors.black54, + ), + ), + ], + ), + ), + SizedBox(height: 4.h), + Text( + "${ratingsController.coachRatingsData.value?.data?.totalReviews ?? 0} User Reviews", + style: TextStyle( + fontSize: 14.sp, + color: Colors.black54, + ), + ), + ], + ), + Row( + children: List.generate(5, (index) { + double rating = + ratingsController + .coachRatingsData + .value + ?.data + ?.userAvgReviewRating ?? + 0.0; + if (index < rating.floor()) { + return Icon( + Icons.star, + color: Colors.orange, + size: 22.sp, + ); + } else if (index < rating) { + return Icon( + Icons.star_half, + color: Colors.orange, + size: 22.sp, + ); + } else { + return Icon( + Icons.star_border, + color: Colors.grey, + size: 22.sp, + ); + } + }), + ), + ], + ), + ), + ), + SizedBox(height: 30.h), + Container( + padding: EdgeInsets.symmetric(vertical: 20.w), + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: containerBorderColor), + borderRadius: BorderRadius.circular(20.r), + boxShadow: [ + BoxShadow( + blurRadius: 1, + color: Color(outlineButtonBorderColorSky), + spreadRadius: 1, + offset: Offset(0, 3), + ), + ], + ), + child: Column( + children: [ + accountMenuItem( + AssetConstants.myAccount, + myProfileText, + () { + Get.toNamed(RouteConstant.coachMyProfile); + }, + ), + isTablet ? SizedBox(height: 10.h) : Container(), + Padding( + padding: EdgeInsets.only(left: 45.w), + child: Divider( + color: Color(outlineButtonBorderColorSky), + ), + ), + accountMenuItem(AssetConstants.uVault, uVaultText, () { + Get.toNamed(RouteConstant.viewUvault); + }), + isTablet ? SizedBox(height: 10.h) : Container(), + Padding( + padding: EdgeInsets.only(left: 45.w), + child: Divider( + color: Color(outlineButtonBorderColorSky), + ), + ), + accountMenuItem(AssetConstants.rise, riseText, () { + Get.toNamed(RouteConstant.challengeListScreen); + }), + isTablet ? SizedBox(height: 10.h) : Container(), + Padding( + padding: EdgeInsets.only(left: 45.w), + child: Divider( + color: Color(outlineButtonBorderColorSky), + ), + ), + //.................................................................. + // accountMenuItem( + // AssetConstants.achievements, + // achievementsText, + // () { + // Get.toNamed(RouteConstant.traineeAchievementScreen); + // }, + // ), + // isTablet ? SizedBox(height: 10.h) : Container(), + // Padding( + // padding: EdgeInsets.only(left: 45.w), + // child: Divider( + // color: Color(outlineButtonBorderColorSky), + // ), + // ), + + //.................................................................. + + // accountMenuItem( + // AssetConstants.myActivity, + // "Client Management", + // () { + // Get.toNamed(RouteConstant.coachClientManagement); + // }, + // ), + // isTablet ? SizedBox(height: 10.h) : Container(), + // Padding( + // padding: EdgeInsets.only(left: 45.w), + // child: Divider( + // color: Color(outlineButtonBorderColorSky), + // ), + // ), + //.................................................................. + accountMenuItem( + AssetConstants.achievements, + "Ratings & Reviews", + () { + Get.to(() => RatingsReviewsScreen()); + }, + ), + ], + ), + ), + ], + ), + SizedBox(height: 30.h), + Align( + alignment: Alignment.bottomCenter, + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 0.2.sw), + child: CustomSocialLoginButton( + borderSide: BorderSide(color: Colors.grey), + height: isTablet ? 60.h : 55.h, + text: logoutText, + textColor: Colors.black, + fontSize: isTablet ? 22.sp : 18.sp, + fontWeight: FontWeight.w600, + onPressed: () async { + await actionButtonBottomSheet( + context: context, + title: "Are you sure you want to Logout ?", + subtitle: "This action cannot be undone.", + submitButtonText: "Logout", + isLoading: myAccountController.isLogoutLoading, + assetPath: AssetConstants.delete, + primaryColor: Color(primaryColor), + cancelBorderColor: greyBorderColorLight, + onPressed: () async { + await socialLoginController.logout(); + await myAccountController.logout().then(( + value, + ) async { + if (value) { + await chatController.logout(); + await notioficationService.deleteDeviceToken(); + await SharedServices.logout(); + Get.offNamedUntil( + RouteConstant.loginFirstScreen, + (route) => false, + ); + } + }); + }, + cancelButtonText: "Cancel", + onCancelPressed: () { + Get.back(); + }, + ); + }, + ), + ), + ), + SizedBox(height: isTablet ? 30.h : 20.h), + + Center( + child: TextButton( + onPressed: () { + actionButtonBottomSheet( + context: context, + title: "Are you sure you want to delete your account?", + subtitle: "This action cannot be undone.", + submitButtonText: "Delete Request", + onPressed: () { + editAccountController.deleteUserAccount().then(( + value, + ) async { + if (value == true) { + await socialLoginController.logout(); + await chatController.logout(); + await notioficationService.deleteDeviceToken(); + await SharedServices.logout(); + Get.offNamedUntil( + RouteConstant.loginFirstScreen, + (route) => false, + ); + + Future.delayed(Duration(milliseconds: 300), () { + customSnackbar( + title: "Account Deleted", + message: + "Your account has been successfully deleted. If you wish to recover it, please contact our support team.", + ); + }); + } + }); + }, + cancelButtonText: "Cancel", + onCancelPressed: () { + Get.back(); + }, + assetPath: AssetConstants.delete, + primaryColor: Color(primaryColor), + cancelBorderColor: greyBorderColorLight, + isLoading: editAccountController.isAccountDeleting, + ); + }, + child: Text( + "Delete your account", + style: TextStyle( + fontSize: regularSizeText, + color: Color(deleteAccountTextColorRed), + fontWeight: FontWeight.w600, + fontFamily: montserratFontFamily, + ), + ), + ), + ), + SizedBox(height: 30.h), + ], + ), + ), + ), + ); + } +} diff --git a/lib/screens/accounts/views/coach_account/coach_my_profile_screen.dart b/lib/screens/accounts/views/coach_account/coach_my_profile_screen.dart new file mode 100644 index 0000000..61a9a2a --- /dev/null +++ b/lib/screens/accounts/views/coach_account/coach_my_profile_screen.dart @@ -0,0 +1,136 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/asset_constants.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/constant.dart'; +import 'package:onufitness/constants/string_constant.dart'; +import 'package:onufitness/controller/notification_controller.dart'; +import 'package:onufitness/routes/route_constant.dart'; +import 'package:onufitness/screens/accounts/Controllers/edit_account_controller.dart'; +import 'package:onufitness/screens/accounts/widgets/my_account_features_tile_card.dart'; +import 'package:onufitness/screens/accounts/widgets/user_profile_card.dart'; +import 'package:onufitness/utils/helper_function.dart'; + +class CoachMyProfileScreen extends StatefulWidget { + const CoachMyProfileScreen({super.key}); + + @override + State createState() => _CoachMyProfileScreenState(); +} + +class _CoachMyProfileScreenState extends State { + final notificationController = Get.find(); + final editAccountController = Get.find(); + + @override + void initState() { + WidgetsBinding.instance.addPostFrameCallback((_) { + apicall(); + }); + super.initState(); + } + + apicall() async { + await editAccountController.fetchUserDetails(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: pageBackGroundColor, + appBar: AppBar( + backgroundColor: appBarBackgroundColor, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios), + onPressed: () { + Navigator.pop(context); + }, + ), + title: Text(myProfileText, style: customTextStyle), + actions: [ + Stack( + children: [ + IconButton( + icon: Icon( + Icons.notifications_none, + color: Colors.black, + size: 25.sp, + ), + onPressed: () { + notificationController.fetchNotifications(isRefresh: true); + Get.toNamed(RouteConstant.notificationListScreen); + }, + ), + notificationController.hasUnreadNotifications + ? Positioned( + right: isTablet ? 5.w : 12.w, + top: isTablet ? 6.h : 12.h, + child: Container( + width: 8.r, + height: 8.r, + decoration: BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ) + : SizedBox(), + ], + ), + ], + ), + body: SingleChildScrollView( + padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + profileCard(), + SizedBox(height: 25.h), + Container( + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: containerBorderColor), + borderRadius: BorderRadius.circular(20.r), + boxShadow: [ + BoxShadow( + blurRadius: 1, + color: Color(outlineButtonBorderColorSky), + spreadRadius: 1, + offset: Offset(0, 3), + ), + ], + ), + + child: Padding( + padding: EdgeInsets.symmetric(vertical: isTablet ? 30.h : 5.h), + child: Column( + children: [ + accountMenuItem( + AssetConstants.fitnessGoals, + "Professional Information", + () { + Get.toNamed(RouteConstant.professionalInfoScreen); + }, + ), + Padding( + padding: EdgeInsets.only(left: 45.w), + child: Divider(color: Color(outlineButtonBorderColorSky)), + ), + accountMenuItem( + AssetConstants.healthInfo, + "Service Offerings", + () { + Get.toNamed(RouteConstant.coachServiceOfferings); + }, + ), + ], + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/accounts/views/coach_account/coach_service_offering_screen.dart b/lib/screens/accounts/views/coach_account/coach_service_offering_screen.dart new file mode 100644 index 0000000..9e659e0 --- /dev/null +++ b/lib/screens/accounts/views/coach_account/coach_service_offering_screen.dart @@ -0,0 +1,437 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:onufitness/constants/asset_constants.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/constant.dart'; +import 'package:onufitness/constants/text_constant.dart'; +import 'package:onufitness/screens/accounts/Controllers/coach_service_offering_controller.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; +import 'package:onufitness/utils/helper_function.dart'; +import 'package:onufitness/widgets/appbars/custom_appbar.dart'; +import 'package:onufitness/widgets/Dropdowns/custom_normal_hintext_dropdown.dart'; +import 'package:onufitness/widgets/Buttons/custom_submit_button.dart'; +import 'package:onufitness/widgets/bottomsheet/common_upload_option_bottomsheet.dart' + show CommonUploadBottomSheet; + +class ServiceOfferingsScreen extends StatelessWidget { + final CoachServiceOfferingController controller = Get.put( + CoachServiceOfferingController(), + ); + + ServiceOfferingsScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Obx(() { + bool isInitialLoading = + controller.isServiceOfferingsLoading.value || + controller.isCoachTypesLoading.value; + + return Stack( + children: [ + Scaffold( + backgroundColor: appBarBackgroundColor, + appBar: CustomAppBar( + title: 'Service Offerings', + backgroundColor: appBarBackgroundColor, + textColor: appbarTextColor, + leading: IconButton( + onPressed: () { + Get.back(); + }, + icon: Icon(Icons.arrow_back_ios), + ), + titleFontSize: appBarHeardingText, + automaticallyImplyLeading: false, + actions: [ + IconButton( + onPressed: controller.refreshServiceOfferings, + icon: Obx( + () => + controller.isServiceOfferingsLoading.value + ? SizedBox( + width: 20.w, + height: 20.h, + child: const CircularProgressIndicator( + strokeWidth: 2, + color: Colors.white, + ), + ) + : const Icon(Icons.refresh), + ), + ), + Obx( + () => + controller.isUpdatingServiceOffering.value + ? Container( + padding: EdgeInsets.symmetric(horizontal: 16.w), + child: SizedBox( + width: 20.w, + height: 20.h, + child: const CircularProgressIndicator( + strokeWidth: 2, + color: Colors.black, + ), + ), + ) + : TextButton( + onPressed: () async { + await controller.updateServiceOffering(); + }, + child: Text( + 'Done', + style: customTextStyle.copyWith( + color: appbarTextColor, + ), + ), + ), + ), + ], + ), + body: SingleChildScrollView( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 10.h), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Obx(() { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + CustomDropdownField( + title: "Coaching Type*", + items: controller.localCoachTypesNameList, + selectedItem: + controller.selectedCoachTypes.isEmpty + ? null + : controller.selectedCoachTypes.value, + onChanged: (String? newValue) { + if (newValue != null) { + controller.selectedCoachTypes.value = newValue; + + var selectedObj = controller.apiCoachTypeList + .firstWhere( + (element) => element.typeName == newValue, + ); + + controller.selectedCoachTypesId.value = + selectedObj.coachTypeId!; + } + }, + ), + ], + ); + }), + + SizedBox(height: 24.h), + + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + 'My Certificates', + style: TextStyle( + fontSize: 18.sp, + fontWeight: FontWeight.bold, + ), + ), + Obx( + () => Container( + padding: EdgeInsets.symmetric( + horizontal: 12.w, + vertical: 6.h, + ), + decoration: BoxDecoration( + color: Colors.grey.shade200, + borderRadius: BorderRadius.circular(20.r), + ), + child: Text( + 'Total: ${controller.apiCertificates.length}', + style: TextStyle( + fontSize: 12.sp, + fontWeight: FontWeight.w600, + color: Colors.grey.shade700, + ), + ), + ), + ), + ], + ), + SizedBox(height: 12.h), + + Obx( + () => Center( + child: + controller.apiCertificates.isEmpty + ? Text( + "No Certificate Found", + style: TextStyle( + color: Colors.grey, + fontWeight: FontWeight.w400, + fontSize: smallSizeText, + ), + ) + : Container(), + ), + ), + + SizedBox(height: 12.h), + Obx( + () => Column( + children: List.generate( + controller.apiCertificates.length, + (index) => customCertificateTileCard(index), + ), + ), + ), + + SizedBox(height: 20.h), + + Obx( + () => + controller.isAddingCertificate.value + ? Container( + height: 50.h, + decoration: BoxDecoration( + color: lightGreyColor, + borderRadius: BorderRadius.circular(30.r), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox( + width: 20.w, + height: 20.h, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Colors.white, + ), + ), + SizedBox(width: 12.w), + Text( + 'Adding Certificate...', + style: TextStyle( + fontSize: 16.sp, + color: Colors.black, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ) + : CustomSubmitButton( + height: 50.h, + isLoading: controller.isAddingCertificate.value, + text: "+ Add Certificate", + // onPressed: controller.pickFileForAdding, + onPressed: () { + CommonUploadBottomSheet.show( + context: context, + title: "Upload Certificate", + allowedFileTypes: [ + 'jpg', + 'jpeg', + 'png', + 'pdf', + ], + maxFileSizeMB: 5.0, + showCamera: true, + showGallery: true, + showDocument: true, + onFileSelected: ( + String filePath, + String fileName, + String fileExtension, + ) { + controller.addCertificateToServer( + filePath, + ); + }, + onError: (String errorMessage) { + // Show error message + customSnackbar( + title: "Error", + message: errorMessage, + duration: 3, + ); + }, + ); + }, + ), + ), + SizedBox(height: 20.h), + ], + ), + ), + ), + ), + + // Loader overlay — covers AppBar + Body (same as ProfessionalInfoScreen) + if (isInitialLoading) + Container( + color: Colors.black.withValues(alpha: .4), + child: const Center( + child: CircularProgressIndicator( + color: Colors.white, + strokeWidth: 3, + ), + ), + ), + ], + ); + }); + } + + Widget customCertificateTileCard(int index) { + String filePath = controller.apiCertificates[index].certificateUrl!; + + return Container( + margin: EdgeInsets.only(bottom: 12.h), + padding: EdgeInsets.symmetric(horizontal: 12.w, vertical: 10.h), + decoration: BoxDecoration( + color: textFieldFillColor, + borderRadius: BorderRadius.circular(10.r), + border: Border.all(color: Color(darkGreyColor), width: 1.5), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Row( + children: [ + Image.asset( + AssetConstants.fileIcon, + height: isTablet ? 25.h : 20.h, + width: isTablet ? 25.w : 20.w, + ), + SizedBox(width: 8.w), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + controller.getShortText( + controller + .serviceOfferingsData + .value! + .certificates![index] + .certificateName!, + ), + style: TextStyle( + fontSize: 16.sp, + color: Colors.black87, + decoration: TextDecoration.underline, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ), + ], + ), + ), + Row( + children: [ + SizedBox(width: 10.w), + actionButton(Icons.download, () { + controller.downloadCertificate(filePath); + }, backgroundColor: Colors.black), + SizedBox(width: 8.w), + + Obx( + () => + controller.updateCertificateLoading.contains( + controller.apiCertificates[index].certificateId, + ) + ? Container( + height: 35.h, + width: 35.w, + decoration: const BoxDecoration( + color: Colors.grey, + shape: BoxShape.circle, + ), + child: const Center( + child: SizedBox( + width: 18, + height: 18, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Colors.white, + ), + ), + ), + ) + : actionButton( + Icons.edit, + () => controller.pickFileForEditing(index), + backgroundColor: Colors.black, + ), + ), + SizedBox(width: 8.w), + + Obx( + () => + controller.deleteCertificateLoading.contains( + controller.apiCertificates[index].certificateId, + ) + ? Container( + height: 35.h, + width: 35.w, + decoration: const BoxDecoration( + color: Colors.grey, + shape: BoxShape.circle, + ), + child: const Center( + child: SizedBox( + width: 18, + height: 18, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Colors.white, + ), + ), + ), + ) + : actionButton( + Icons.close, + () => controller.removeCertificateWithConfirmation( + index, + ), + backgroundColor: Colors.black, + tooltip: 'Remove certificate', + ), + ), + ], + ), + ], + ), + ); + } + + Widget actionButton( + IconData icon, + VoidCallback onPressed, { + Color? backgroundColor, + String? tooltip, + }) { + Widget button = Container( + height: 35.h, + width: 35.w, + decoration: BoxDecoration( + color: backgroundColor ?? Colors.black, + shape: BoxShape.circle, + ), + child: IconButton( + icon: Icon(icon, size: regularSizeText, color: Colors.white), + onPressed: onPressed, + ), + ); + + if (tooltip != null) { + return Tooltip(message: tooltip, child: button); + } + return button; + } +} diff --git a/lib/screens/accounts/views/coach_account/professional_information_screen.dart b/lib/screens/accounts/views/coach_account/professional_information_screen.dart new file mode 100644 index 0000000..481303a --- /dev/null +++ b/lib/screens/accounts/views/coach_account/professional_information_screen.dart @@ -0,0 +1,118 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/constant.dart'; +import 'package:onufitness/constants/text_constant.dart'; +import 'package:onufitness/screens/accounts/Controllers/coach_account_controller.dart'; +import 'package:onufitness/widgets/appbars/custom_appbar.dart'; +import 'package:onufitness/widgets/TextFields/custom_textfield_with_inside_container_label_text.dart'; + +class ProfessionalInfoScreen extends StatelessWidget { + ProfessionalInfoScreen({super.key}); + + final controller = Get.put(ProfessionalInfoController()); + + @override + Widget build(BuildContext context) { + return Obx(() { + bool isInitialLoading = controller.isfetchProfInfoLoading.value; + + return Stack( + children: [ + Scaffold( + backgroundColor: appBarBackgroundColor, + appBar: CustomAppBar( + title: "Professional Information", + backgroundColor: appBarBackgroundColor, + textColor: appbarTextColor, + titleFontSize: 18.sp, + leading: IconButton( + onPressed: () { + Get.back(); + }, + icon: const Icon(Icons.arrow_back_ios), + ), + actions: [ + Obx( + () => + controller.isUpdateProfInfoLoading.value + ? Padding( + padding: EdgeInsets.only(right: 10.w), + child: SizedBox( + height: 20.h, + width: 20.w, + child: const CircularProgressIndicator( + color: Colors.black, + strokeWidth: 2, + ), + ), + ) + : Padding( + padding: EdgeInsets.only(right: 10.w), + child: TextButton( + onPressed: () async { + await controller + .updateProfessionalInfoApiCall(); + }, + child: Text( + "Done", + style: customTextStyle.copyWith( + color: Colors.black, + fontSize: 20.sp, + ), + ), + ), + ), + ), + ], + ), + body: Column( + children: [ + Divider(color: lightGreyColor), + LayoutBuilder( + builder: (context, constraints) { + bool isTablet = constraints.maxWidth >= 600; + + return Padding( + padding: EdgeInsets.symmetric( + horizontal: isTablet ? 40.w : 20.w, + vertical: 20.h, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + CustomTextFieldContainerInsideLabel( + label: "Years of Experience", + textSize: smallSizeText, + fillColor: textFieldFillColor, + borderColor: lightGreyColor, + controller: controller.experienceTextController, + keyboardType: TextInputType.number, + ), + SizedBox(height: 15.h), + ], + ), + ); + }, + ), + ], + ), + ), + + // Loader overlay — covers AppBar + Body + if (isInitialLoading) + Container( + color: Colors.black.withValues(alpha: .4), + child: const Center( + child: CircularProgressIndicator( + color: Colors.white, + strokeWidth: 3, + ), + ), + ), + ], + ); + }); + } +} diff --git a/lib/screens/accounts/views/coach_account/ratings_and_reviews.dart b/lib/screens/accounts/views/coach_account/ratings_and_reviews.dart new file mode 100644 index 0000000..93abfaf --- /dev/null +++ b/lib/screens/accounts/views/coach_account/ratings_and_reviews.dart @@ -0,0 +1,358 @@ +import 'dart:developer'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/string_constant.dart'; +import 'package:onufitness/screens/accounts/Controllers/coach_rating_controller.dart'; +import 'package:onufitness/widgets/appbars/custom_appbar.dart'; + +class RatingsReviewsScreen extends StatelessWidget { + const RatingsReviewsScreen({super.key}); + + @override + Widget build(BuildContext context) { + final RatingsReviewsController controller = Get.put( + RatingsReviewsController(), + ); + + return Scaffold( + backgroundColor: appBarBackgroundColor, + appBar: CustomAppBar( + title: ratingAndReviewsAppbarText, + backgroundColor: appBarBackgroundColor, + textColor: appbarTextColor, + titleFontSize: 20.sp, + leading: IconButton( + onPressed: () { + Get.back(); + }, + icon: Icon(Icons.arrow_back_ios), + ), + automaticallyImplyLeading: false, + ), + body: Obx(() { + if (controller.isLoading.value && + controller.coachRatingsData.value == null) { + return Center(child: CircularProgressIndicator(color: Colors.black)); + } + + if (controller.coachRatingsData.value == null) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.star_outline, size: 64.sp, color: Colors.grey), + SizedBox(height: 16.h), + Text( + "No reviews available", + style: TextStyle(fontSize: 18.sp, color: Colors.grey), + ), + SizedBox(height: 16.h), + ElevatedButton( + onPressed: () => controller.fetchRatingsReviews(), + child: Text("Retry"), + ), + ], + ), + ); + } + + return RefreshIndicator( + backgroundColor: Colors.white, + color: Colors.black, + onRefresh: controller.refreshReviews, + child: Padding( + padding: EdgeInsets.all(16.w), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildRatingSummary(controller), + SizedBox(height: 16.h), + Expanded(child: _buildReviewsList(controller)), + ], + ), + ), + ); + }), + ); + } + + Widget _buildRatingSummary(RatingsReviewsController controller) { + return Obx(() { + final data = controller.coachRatingsData.value?.data; + if (data == null) return SizedBox.shrink(); + + return Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + flex: 1, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text( + data.userAvgReviewRating?.toStringAsFixed(1) ?? '0.0', + style: TextStyle( + fontSize: 20.sp, + fontWeight: FontWeight.w600, + ), + ), + SizedBox(width: 8.w), + Icon( + Icons.star, + color: Color(ratingOrangeColor), + size: 20.sp, + ), + ], + ), + Text( + "${data.totalReviews ?? 0} Reviews", + style: TextStyle(fontSize: 14.sp, color: Colors.grey), + ), + ], + ), + ), + Expanded( + flex: 2, + child: Column( + children: [ + SizedBox(height: 8.h), + _buildRatingBar(controller: controller, stars: 5), + _buildRatingBar(controller: controller, stars: 4), + _buildRatingBar(controller: controller, stars: 3), + _buildRatingBar(controller: controller, stars: 2), + _buildRatingBar(controller: controller, stars: 1), + ], + ), + ), + ], + ); + }); + } + + Widget _buildRatingBar({ + required RatingsReviewsController controller, + required int stars, + }) { + return Obx(() { + final data = controller.coachRatingsData.value?.data; + if (data == null) return SizedBox.shrink(); + + final starCount = controller.getStarCount(stars); + log("starCount : $starCount"); + final totalReviews = data.totalReviews ?? 0; + final percentage = controller.getRatingPercentage( + starCount, + totalReviews, + ); + + return Padding( + padding: EdgeInsets.symmetric(vertical: 2.h), + child: Row( + children: [ + Text("$stars", style: TextStyle(fontSize: 14.sp)), + SizedBox(width: 8.w), + Expanded( + child: LinearProgressIndicator( + value: percentage / 100, + backgroundColor: Colors.grey.shade300, + color: Color(ratingOrangeColor), + minHeight: 8.h, + ), + ), + SizedBox(width: 8.w), + Text( + starCount.toString(), + style: TextStyle(fontSize: 12.sp, color: Colors.grey), + ), + ], + ), + ); + }); + } + + Widget _buildReviewsList(RatingsReviewsController controller) { + return Obx(() { + final reviews = + controller.coachRatingsData.value?.data?.userReviewRatings ?? []; + + if (reviews.isEmpty) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.rate_review_outlined, size: 64.sp, color: Colors.grey), + SizedBox(height: 16.h), + Text( + "No reviews yet", + style: TextStyle(fontSize: 18.sp, color: Colors.grey), + ), + ], + ), + ); + } + + return ListView.builder( + controller: controller.scrollController, + itemCount: reviews.length + (controller.hasMoreData.value ? 1 : 0), + itemBuilder: (context, index) { + if (index == reviews.length) { + // Loading indicator for pagination + return Obx(() { + if (controller.isLoadingMore.value) { + return Padding( + padding: EdgeInsets.all(16.h), + child: Center( + child: CircularProgressIndicator(color: Colors.black), + ), + ); + } + return SizedBox.shrink(); + }); + } + + final review = reviews[index]; + return _buildReviewCard( + name: + review.fullName ?? + "${review.firstName ?? ''} ${review.lastName ?? ''}".trim(), + rating: review.rating ?? 0, + review: review.reviewDescription ?? '', + date: review.createdAt, + profilePicture: review.profilePicture, + ); + }, + ); + }); + } + + Widget _buildReviewCard({ + required String name, + required int rating, + required String review, + DateTime? date, + String? profilePicture, + }) { + return Padding( + padding: EdgeInsets.symmetric(vertical: 10.h), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + // Profile Picture + Container( + width: 40.w, + height: 40.w, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.grey.shade200, + ), + child: + profilePicture != null && profilePicture.isNotEmpty + ? ClipOval( + child: Image.network( + profilePicture, + fit: BoxFit.cover, + loadingBuilder: (context, child, loadingProgress) { + if (loadingProgress == null) { + return child; + } + return Center( + child: SizedBox( + width: 20.w, + height: 20.w, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Colors.black, + ), + ), + ); + }, + errorBuilder: (context, error, stackTrace) { + return Icon( + Icons.person, + size: 20.sp, + color: Colors.grey, + ); + }, + ), + ) + : Icon(Icons.person, size: 20.sp, color: Colors.grey), + ), + SizedBox(width: 12.w), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Text( + name.isEmpty ? "Anonymous" : name, + style: TextStyle( + fontSize: 16.sp, + fontWeight: FontWeight.bold, + ), + overflow: TextOverflow.ellipsis, + ), + ), + Row( + children: List.generate( + 5, + (index) => Icon( + Icons.star, + color: + index < rating + ? Color(ratingOrangeColor) + : Colors.grey, + size: 16.sp, + ), + ), + ), + ], + ), + if (date != null) + Text( + _formatDate(date), + style: TextStyle(fontSize: 12.sp, color: Colors.grey), + ), + ], + ), + ), + ], + ), + SizedBox(height: 8.h), + if (review.isNotEmpty) + Text( + review, + style: TextStyle(fontSize: 14.sp, color: Colors.grey[800]), + ), + SizedBox(height: 8.h), + Divider(color: Colors.grey.shade300), + ], + ), + ); + } + + String _formatDate(DateTime date) { + final now = DateTime.now(); + final difference = now.difference(date); + + if (difference.inDays > 7) { + return "${date.day}/${date.month}/${date.year}"; + } else if (difference.inDays > 0) { + return "${difference.inDays} days ago"; + } else if (difference.inHours > 0) { + return "${difference.inHours} hours ago"; + } else if (difference.inMinutes > 0) { + return "${difference.inMinutes} minutes ago"; + } else { + return "Just now"; + } + } +} diff --git a/lib/screens/accounts/views/trainee_account/become_a_coach_screen.dart b/lib/screens/accounts/views/trainee_account/become_a_coach_screen.dart new file mode 100644 index 0000000..2c449c3 --- /dev/null +++ b/lib/screens/accounts/views/trainee_account/become_a_coach_screen.dart @@ -0,0 +1,433 @@ +import 'package:dotted_border/dotted_border.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'dart:io'; +import 'package:get/get.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/constant.dart'; +import 'package:onufitness/constants/string_constant.dart'; +import 'package:onufitness/constants/text_constant.dart'; +import 'package:onufitness/controller/get_user_data_controller.dart'; +import 'package:onufitness/screens/accounts/become_a_coach_controller.dart'; +import 'package:onufitness/services/local_storage_services/shared_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; +import 'package:onufitness/utils/helper_function.dart'; +import 'package:onufitness/widgets/Dropdowns/custom_normal_hintext_dropdown.dart'; +import 'package:onufitness/widgets/Buttons/custom_submit_button.dart'; +import 'package:onufitness/widgets/TextFields/custom_textfield_with_inside_container_label_text.dart'; +import 'package:onufitness/widgets/bottomsheet/common_upload_option_bottomsheet.dart'; + +class BecomeCoachForm extends StatefulWidget { + const BecomeCoachForm({super.key}); + + @override + State createState() => _BecomeCoachFormState(); +} + +class _BecomeCoachFormState extends State { + GetUserDetailsController? getUserDetailsController; + late BecomeACoachController controller; + @override + void initState() { + //................................................................ + if (!Get.isRegistered()) { + Get.put(GetUserDetailsController()); + } + getUserDetailsController = Get.find(); + //................................................................ + if (!Get.isRegistered()) { + Get.put(BecomeACoachController()); + } + controller = Get.find(); + //................................................................ + WidgetsBinding.instance.addPostFrameCallback((_) { + apicall(); + }); + super.initState(); + } + + apicall() async { + await getUserDetailsController!.fetchUserDetails(); + } + + bool validateForm() { + List missingFields = []; + + if (controller.certificateFile.value == null) { + missingFields.add("Certificate"); + } + + if (controller.certificateTypeController.text.trim().isEmpty) { + missingFields.add("Certificate Type"); + } + + if (controller.selectedExperienceCount.text.trim().isEmpty) { + missingFields.add("Years of Experience"); + } + + if (controller.selectedCoachTypes.value.isEmpty) { + missingFields.add("Coaching Type"); + } + + if (missingFields.isNotEmpty) { + customSnackbar( + title: "Error", + message: "Please fill in the following: ${missingFields.join(', ')}.", + ); + return false; + } + + return true; + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Color(primaryColor), + title: Text( + "Become a Coach", + style: TextStyle( + fontSize: appBarHeardingText, + fontWeight: FontWeight.w600, + color: appbarTextColor, + ), + ), + leading: IconButton( + onPressed: () { + Get.back(); + }, + icon: Icon(Icons.arrow_back_ios), + ), + ), + body: Padding( + padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: 5.h), + child: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(height: 10.h), + Text( + profileInfoText, + style: TextStyle( + fontSize: isTablet ? 20.sp : 18.sp, + fontWeight: FontWeight.w600, + ), + ), + Text( + profileInformationDescriptionText, + textAlign: TextAlign.start, + style: TextStyle( + color: greyTextColor1, + fontSize: isTablet ? 14.sp : 12.sp, + ), + ), + SizedBox(height: 10.h), + + Center( + child: Stack( + alignment: Alignment.bottomRight, + children: [ + Container( + width: isTablet ? 150.r : 100.r, + height: isTablet ? 150.r : 100.r, + decoration: BoxDecoration( + shape: BoxShape.circle, + gradient: LinearGradient( + colors: [ + becomeACoachGradient2, + becomeACoachGradient1.withValues(alpha: 0.3), + ], + begin: Alignment.topCenter, + end: Alignment.bottomRight, + ), + ), + child: Obx( + () => CircleAvatar( + radius: isTablet ? 60.r : 50.r, + backgroundColor: Colors.transparent, + child: + controller.profileImage.value == null + ? (SharedServices.getUserDetails() + ?.data + ?.userProfilePic == + null + ? Icon( + Icons.person, + size: isTablet ? 90.sp : 50.sp, + color: Colors.white, + ) + : ClipOval( + child: Image.network( + SharedServices.getUserDetails()! + .data! + .userProfilePic + .toString(), + width: isTablet ? 120.r : 100.r, + height: isTablet ? 120.r : 100.r, + fit: BoxFit.cover, + loadingBuilder: ( + context, + child, + loadingProgress, + ) { + if (loadingProgress == null) { + return child; + } + return Container( + width: isTablet ? 120.r : 100.r, + height: isTablet ? 120.r : 100.r, + decoration: BoxDecoration( + color: lightGreyColor + .withValues(alpha: 0.6), + shape: BoxShape.circle, + ), + child: Center( + child: SizedBox( + width: isTablet ? 30.r : 25.r, + height: + isTablet ? 30.r : 25.r, + child: + CircularProgressIndicator( + color: Colors.black, + strokeWidth: 2, + ), + ), + ), + ); + }, + errorBuilder: ( + context, + error, + stackTrace, + ) { + return Container( + width: isTablet ? 120.r : 100.r, + height: isTablet ? 120.r : 100.r, + decoration: BoxDecoration( + color: Colors.grey[300], + shape: BoxShape.circle, + ), + child: Icon( + Icons.person, + size: isTablet ? 50.sp : 40.sp, + color: Colors.white, + ), + ); + }, + ), + )) + : CircleAvatar( + backgroundImage: FileImage( + File(controller.profileImage.value!.path), + ), + radius: isTablet ? 60.r : 50.r, + ), + ), + ), + ), + Positioned( + bottom: isTablet ? 10.h : 5.w, + right: 5.w, + child: CircleAvatar( + radius: isTablet ? 25.r : 15.r, + backgroundColor: Colors.white, + child: IconButton( + icon: Icon( + Icons.edit, + size: isTablet ? 20.sp : 15.sp, + color: Colors.black, + ), + onPressed: () { + controller.pickImage(); + }, + ), + ), + ), + ], + ), + ), + SizedBox(height: 15.h), + GestureDetector( + // onTap: () => controller.pickCertificate(), + onTap: () { + CommonUploadBottomSheet.show( + context: context, + title: "Upload Certificate", + allowedFileTypes: ['jpg', 'jpeg', 'png', 'pdf'], + maxFileSizeMB: 5.0, + showCamera: true, + showGallery: true, + showDocument: true, + onFileSelected: ( + String filePath, + String fileName, + String fileExtension, + ) { + // Update controller with selected file + controller.certificateFile.value = XFile(filePath); + }, + onError: (String errorMessage) { + // Show error message + customSnackbar(title: "Error", message: errorMessage); + }, + ); + }, + child: Obx( + () => + controller.certificateFile.value == null + ? Center( + child: DottedBorder( + color: greyBorderColor, + strokeWidth: 1, + dashPattern: [8, 4], + child: Container( + padding: EdgeInsets.all(20.sp), + child: Column( + children: [ + Container( + height: 45.h, + width: 45.w, + decoration: BoxDecoration( + color: textfieldBorderColorSky1, + shape: BoxShape.circle, + ), + child: Icon(Icons.arrow_upward_outlined), + ), + Text( + "Upload your certificate", + style: customTextStyle.copyWith( + fontSize: isTablet ? 20.sp : 16.sp, + ), + ), + Text( + "Supported format: JPG, PNG, PDF (Upto 5MB)", + textAlign: TextAlign.center, + style: customTextStyle.copyWith( + fontSize: isTablet ? 14.sp : 12.sp, + fontWeight: FontWeight.normal, + color: greyTextColor1, + ), + ), + ], + ), + ), + ), + ) + : DottedBorder( + color: greyBorderColor, + strokeWidth: 1, + dashPattern: [8, 4], + child: Row( + children: [ + Icon(Icons.insert_drive_file, size: 30.w), + SizedBox(width: 10.w), + Expanded( + child: Text( + controller.certificateFile.value!.path + .split('/') + .last, + style: TextStyle( + fontWeight: FontWeight.w600, + ), + ), + ), + IconButton( + icon: Icon(Icons.close, color: Colors.red), + onPressed: + () => + controller.certificateFile.value = + null, + ), + ], + ), + ), + ), + ), + SizedBox(height: 20.h), + + CustomTextFieldContainerInsideLabel( + label: "Certificate Type *", + textSize: smallSizeText, + fillColor: textFieldFillColor, + borderColor: lightGreyColor, + controller: controller.certificateTypeController, + keyboardType: TextInputType.text, + height: 40.h, + ), + SizedBox(height: 15.h), + + CustomTextFieldContainerInsideLabel( + borderColor: lightGreyColor, + height: 40.h, + lebelTextFontWeight: FontWeight.w500, + controller: controller.selectedExperienceCount, + label: "Years of Experience *", + keyboardType: TextInputType.numberWithOptions(), + ), + SizedBox(height: 15.h), + + Obx(() { + return controller.isCoachTypesLoading.value + ? const Center(child: CircularProgressIndicator()) + : CustomDropdownField( + height: 64.h, + title: "Coaching Type *", + items: controller.localCoachTypesNameList, + selectedItem: + controller.selectedCoachTypes.isEmpty + ? null + : controller.selectedCoachTypes.value, + onChanged: (String? newValue) { + if (newValue != null) { + controller.selectedCoachTypes.value = newValue; + + var selectedObj = controller.apiCoachTypeList + .firstWhere( + (element) => element.typeName == newValue, + ); + + // Correctly update the selected ID + controller.selectedCoachTypesId.value = + selectedObj.coachTypeId!; + } + }, + borderColor: lightGreyColor, + ); + }), + + SizedBox(height: 20.h), + Obx( + () => CustomSubmitButton( + isLoading: controller.isBecomeCoachLoading.value, + backgroundColor: Color(primaryColor), + text: "Submit", + height: isTablet ? 60.h : 55.h, + textColor: Colors.black, + fontWeight: FontWeight.w600, + fontSize: isTablet ? 20.sp : 16.sp, + onPressed: () { + if (validateForm()) { + controller.becomeCoach().then((value) { + if (value) { + getUserDetailsController!.fetchUserDetails().then(( + value, + ) { + if (value) { + Get.back(); + } + }); + } + }); + } + }, + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/screens/accounts/views/trainee_account/edit_profile.dart b/lib/screens/accounts/views/trainee_account/edit_profile.dart new file mode 100644 index 0000000..da27f67 --- /dev/null +++ b/lib/screens/accounts/views/trainee_account/edit_profile.dart @@ -0,0 +1,455 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:intl_phone_field/intl_phone_field.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/constant.dart'; +import 'package:onufitness/constants/string_constant.dart'; +import 'package:onufitness/constants/text_constant.dart'; +import 'package:onufitness/screens/accounts/Controllers/edit_account_controller.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; +import 'package:onufitness/utils/helper_function.dart'; +import 'package:onufitness/widgets/Dropdowns/custom_lebel_dropdown.dart'; +import 'package:onufitness/widgets/bottomsheet/common_upload_option_bottomsheet.dart' + show CommonUploadBottomSheet; +import 'package:onufitness/widgets/pickers/custom_date_picker.dart'; +import 'package:onufitness/widgets/TextFields/custom_textfield_with_inside_container_label_text.dart'; + +class TraineeCoachEditProfileScreen extends StatefulWidget { + const TraineeCoachEditProfileScreen({super.key}); + + @override + State createState() => + _TraineeCoachEditProfileScreenState(); +} + +class _TraineeCoachEditProfileScreenState + extends State { + final controller = Get.find(); + + @override + void initState() { + WidgetsBinding.instance.addPostFrameCallback((_) { + apicall(); + }); + super.initState(); + } + + apicall() async { + await controller.fetchUserDetails(); + } + + // Simple age validation + bool _isOver18(DateTime birthDate) { + final now = DateTime.now(); + final age = now.year - birthDate.year; + if (now.month < birthDate.month || + (now.month == birthDate.month && now.day < birthDate.day)) { + return (age - 1) >= 18; + } + return age >= 18; + } + + void pickBirthDate() async { + final DateTime? pickedDate = await showDatePicker( + context: context, + initialDate: DateTime.now().subtract(Duration(days: 18 * 365)), + firstDate: DateTime(1900), + lastDate: DateTime.now(), + ); + + if (pickedDate != null) { + if (_isOver18(pickedDate)) { + controller.selectedDate.value = + "${pickedDate.day}/${pickedDate.month}/${pickedDate.year}"; + } else { + customSnackbar( + title: "Age Restriction", + message: "You must be at least 18 years old to proceed.", + duration: 3, + ); + } + } + } + + void handleDoneButtonPress() async { + if (controller.validateForm()) { + try { + await controller.updateUserProfile(); + customSnackbar( + title: "Success", + message: "Profile updated successfully!", + duration: 2, + ); + } catch (e) { + customSnackbar( + title: "Failed", + message: "Failed to update profile. Please try again.", + duration: 2, + ); + } + } + } + + Widget buildProfileImage(bool isTablet) { + return Obx(() { + if (controller.isLoading.value) { + return Container( + width: isTablet ? 150.r : 100.r, + height: isTablet ? 150.r : 100.r, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.grey[300], + ), + child: Center( + child: CircularProgressIndicator( + color: Colors.black, + strokeWidth: 2, + ), + ), + ); + } + + if (controller.profileImage.value != null) { + return CircleAvatar( + backgroundImage: FileImage(File(controller.profileImage.value!.path)), + radius: isTablet ? 60.r : 50.r, + ); + } + + if (controller.hasNetworkImage) { + return CircleAvatar( + radius: isTablet ? 60.r : 50.r, + backgroundColor: lightGreyColor.withValues(alpha: 0.5), + child: ClipOval( + child: Image.network( + controller.userProfileImageUrl!, + width: isTablet ? 120.r : 100.r, + height: isTablet ? 120.r : 100.r, + fit: BoxFit.cover, + loadingBuilder: (context, child, loadingProgress) { + if (loadingProgress == null) return child; + return Container( + width: isTablet ? 120.r : 100.r, + height: isTablet ? 120.r : 100.r, + decoration: BoxDecoration( + color: lightGreyColor.withValues(alpha: 0.5), + shape: BoxShape.circle, + ), + child: Center( + child: CircularProgressIndicator( + color: Colors.black, + strokeWidth: 2, + ), + ), + ); + }, + errorBuilder: (context, error, stackTrace) { + return buildDefaultAvatar(isTablet); + }, + ), + ), + ); + } + + return buildDefaultAvatar(isTablet); + }); + } + + Widget buildDefaultAvatar(bool isTablet) { + return Container( + width: isTablet ? 150.r : 100.r, + height: isTablet ? 150.r : 100.r, + decoration: BoxDecoration( + shape: BoxShape.circle, + gradient: LinearGradient( + colors: [ + becomeACoachGradient2, + becomeACoachGradient1.withValues(alpha: 0.3), + ], + begin: Alignment.topCenter, + end: Alignment.bottomRight, + ), + ), + child: Icon( + Icons.person, + size: isTablet ? 90.sp : 50.sp, + color: Colors.white, + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + backgroundColor: Colors.white, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios), + onPressed: () => Get.back(), + ), + title: Text( + editProfile, + style: customTextStyle.copyWith( + color: appbarTextColor, + fontWeight: FontWeight.w600, + fontSize: isTablet ? 24.sp : 20.sp, + ), + ), + actions: [ + Obx( + () => TextButton( + onPressed: + controller.isUpdating.value ? null : handleDoneButtonPress, + child: + controller.isUpdating.value + ? SizedBox( + height: 20.h, + width: 20.w, + child: CircularProgressIndicator( + color: Colors.black, + strokeWidth: 2, + ), + ) + : Text( + doneText, + style: TextStyle( + fontSize: isTablet ? 25.sp : 20.sp, + fontWeight: FontWeight.w600, + color: appbarTextColor, + ), + ), + ), + ), + ], + ), + body: LayoutBuilder( + builder: (context, constraints) { + bool isTablet = constraints.maxWidth >= 600; + + return Obx(() { + if (controller.fetchUserDetailsLoading.value) { + return Center( + child: CircularProgressIndicator(color: Colors.black), + ); + } + + return SingleChildScrollView( + padding: EdgeInsets.symmetric( + horizontal: isTablet ? 20.w : 15.w, + vertical: 16.h, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Stack( + alignment: Alignment.bottomRight, + children: [ + CircleAvatar( + radius: isTablet ? 60.r : 50.r, + backgroundColor: Colors.grey[300], + child: buildProfileImage(isTablet), + ), + Positioned( + bottom: 5, + right: 5, + child: CircleAvatar( + radius: 15.r, + backgroundColor: Colors.white, + child: + controller.isUploadingImage.value + ? SizedBox( + width: 15.r, + height: 15.r, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Colors.black, + ), + ) + : IconButton( + icon: Icon( + Icons.edit, + size: isTablet ? 20.sp : 15.sp, + color: Colors.black, + ), + + onPressed: () { + CommonUploadBottomSheet.show( + context: context, + title: "Upload Photo From", + allowedFileTypes: [ + 'jpg', + 'jpeg', + 'png', + ], + maxFileSizeMB: 5.0, + showCamera: true, + showGallery: true, + showDocument: true, + onFileSelected: ( + String filePath, + String fileName, + String fileExtension, + ) async { + controller.profileImage.value = XFile( + filePath, + ); + await controller + .uploadProfilePictureAPIcall(); + }, + onError: (String errorMessage) { + // Show error message + customSnackbar( + title: "Error", + message: errorMessage, + ); + }, + ); + }, + ), + ), + ), + ], + ), + + SizedBox(height: 20.h), + + // Form Fields with validation indicators + CustomTextFieldContainerInsideLabel( + label: "First Name*", + controller: controller.firstNameController, + borderColor: lightGreyColor, + ), + SizedBox(height: 20.h), + + CustomTextFieldContainerInsideLabel( + label: "Last name*", + controller: controller.lastNameController, + borderColor: lightGreyColor, + ), + SizedBox(height: 20.h), + + CustomTextFieldContainerInsideLabel( + label: "About me", + controller: controller.aboutMeController, + maxLine: 4, + borderColor: lightGreyColor, + topContentPadding: 25.h, + ), + SizedBox(height: 20.h), + + Obx( + () => IntlPhoneField( + controller: controller.phoneNumberController, + initialCountryCode: controller.selectedCountryCode.value, + style: TextStyle(fontSize: regularSizeText), + decoration: InputDecoration( + fillColor: textFieldFillColor, + filled: true, + labelText: "Phone Number*", + labelStyle: TextStyle( + color: greyTextColor1, + fontSize: regularSizeText, + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: lightGreyColor, + width: 1, + ), + borderRadius: BorderRadius.circular(10.r), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: lightGreyColor, + width: 1, + ), + borderRadius: BorderRadius.circular(10.r), + ), + errorBorder: OutlineInputBorder( + borderSide: BorderSide(color: Colors.red, width: 1), + borderRadius: BorderRadius.circular(10.r), + ), + focusedErrorBorder: OutlineInputBorder( + borderSide: BorderSide(color: Colors.red, width: 1), + borderRadius: BorderRadius.circular(10.r), + ), + ), + dropdownTextStyle: TextStyle(fontSize: regularSizeText), + onChanged: (value) { + controller.selectedCountryCode.value = + value.countryISOCode; + }, + ), + ), + + SizedBox(height: 20.h), + + // Date Picker + Obx( + () => CustomDatePicker( + label: "Date of birth", + selectedDate: controller.selectedDate.value, + onDatePicked: controller.pickDate, + borderColor: lightGreyColor, + ), + ), + + SizedBox(height: 20.h), + + // Gender Dropdown + Obx( + () => EnhancedLebelTextDropdown( + title: 'Gender', + items: const ["Male", "Female", "Other"], + selectedItem: controller.selectedGender.value, + onChanged: (value) { + if (value != null) { + controller.selectedGender.value = value; + } + }, + borderColor: lightGreyColor, + ), + ), + + SizedBox(height: 20.h), + + // Social Media Links + CustomTextFieldContainerInsideLabel( + label: "Facebook Profile Link", + controller: controller.facebookController, + borderColor: lightGreyColor, + ), + SizedBox(height: 20.h), + + CustomTextFieldContainerInsideLabel( + label: "Instagram Profile Link", + controller: controller.instagramController, + borderColor: lightGreyColor, + ), + SizedBox(height: 20.h), + + CustomTextFieldContainerInsideLabel( + label: "LinkedIn Profile Link", + controller: controller.linkedInController, + borderColor: lightGreyColor, + ), + SizedBox(height: 20.h), + + CustomTextFieldContainerInsideLabel( + label: "Twitter Profile Link", + controller: controller.twitterController, + borderColor: lightGreyColor, + ), + SizedBox(height: 20.h), + ], + ), + ); + }); + }, + ), + ); + } +} diff --git a/lib/screens/accounts/views/trainee_account/preferred_fitnessgoal.dart b/lib/screens/accounts/views/trainee_account/preferred_fitnessgoal.dart new file mode 100644 index 0000000..84b2f8b --- /dev/null +++ b/lib/screens/accounts/views/trainee_account/preferred_fitnessgoal.dart @@ -0,0 +1,127 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/constant.dart'; +import 'package:onufitness/screens/accounts/Controllers/trainee_account_controller.dart'; +import 'package:onufitness/widgets/Dropdowns/custom_normal_hintext_dropdown.dart'; +import 'package:onufitness/widgets/appbars/custom_appbar.dart'; + +class PreferredFitnessgoalScreen extends StatelessWidget { + PreferredFitnessgoalScreen({super.key}); + + final controller = Get.put(TraineeAccountController()); + + @override + Widget build(BuildContext context) { + return Obx(() { + bool isInitialLoading = + controller.isFitnessGoalsLoading.value || + controller.isMyFitnessGoalLoading.value; + + return Stack( + children: [ + Scaffold( + backgroundColor: appBarBackgroundColor, + appBar: CustomAppBar( + title: "Preferred fitness goal", + backgroundColor: appBarBackgroundColor, + textColor: appbarTextColor, + titleFontSize: 18.sp, + leading: IconButton( + onPressed: () { + Get.back(); + }, + icon: const Icon(Icons.arrow_back_ios), + ), + actions: [ + Obx( + () => + controller.isUpdateFitneesGoalLoading.value + ? Padding( + padding: EdgeInsets.only(right: 10.w), + child: SizedBox( + height: 20.h, + width: 20.w, + child: const CircularProgressIndicator( + color: Colors.black, + strokeWidth: 2, + ), + ), + ) + : Padding( + padding: EdgeInsets.only(right: 10.w), + child: TextButton( + onPressed: () async { + await controller.updateMyFitnessGoalApiCall(); + }, + child: Text( + "Done", + style: customTextStyle.copyWith( + color: Colors.black, + fontSize: 20.sp, + ), + ), + ), + ), + ), + ], + ), + body: Column( + children: [ + Divider(color: lightGreyColor), + Padding( + padding: EdgeInsets.symmetric( + horizontal: 20.w, + vertical: 20.h, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Obx(() { + return CustomDropdownField( + borderColor: lightGreyColor, + title: "Fitness Goals", + items: controller.localFitnessGoalsList, + selectedItem: + controller.selectedFitnessGoal.isEmpty + ? null + : controller.selectedFitnessGoal.value, + onChanged: (String? newValue) { + if (newValue != null) { + controller.selectedFitnessGoal.value = newValue; + var selectedObj = controller.apiFitnessGoalsList + .firstWhere( + (element) => + element.fitnessGoalTitle == newValue, + ); + controller.selectedFitnessGoalId.value = + selectedObj.fitnessGoalId!; + } + }, + ); + }), + SizedBox(height: 15.h), + ], + ), + ), + ], + ), + ), + + // Loader overlay - covers AppBar + Body + if (isInitialLoading) + Container( + color: Colors.black.withValues(alpha: 0.4), + child: const Center( + child: CircularProgressIndicator( + color: Colors.white, + strokeWidth: 3, + ), + ), + ), + ], + ); + }); + } +} diff --git a/lib/screens/accounts/views/trainee_account/privecy_policy_screen.dart b/lib/screens/accounts/views/trainee_account/privecy_policy_screen.dart new file mode 100644 index 0000000..c2990cb --- /dev/null +++ b/lib/screens/accounts/views/trainee_account/privecy_policy_screen.dart @@ -0,0 +1,40 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/string_constant.dart'; +import 'package:onufitness/widgets/appbars/custom_appbar.dart'; + +class PrivecyPolicyScreen extends StatelessWidget { + const PrivecyPolicyScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: appBarBackgroundColor, + appBar: CustomAppBar( + backgroundColor: appBarBackgroundColor, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios), + onPressed: () { + Navigator.pop(context); + }, + ), + title: "Privacy Policy", + textColor: Colors.black, + titleFontSize: 16.sp, + ), + + body: SingleChildScrollView( + child: Column( + children: [ + Divider(), + Padding( + padding: EdgeInsets.all(20.sp), + child: Text(textAlign: TextAlign.center, privacyPolicy), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/accounts/views/trainee_account/termas_and_condition_screen.dart b/lib/screens/accounts/views/trainee_account/termas_and_condition_screen.dart new file mode 100644 index 0000000..f54d6c8 --- /dev/null +++ b/lib/screens/accounts/views/trainee_account/termas_and_condition_screen.dart @@ -0,0 +1,40 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/string_constant.dart'; +import 'package:onufitness/widgets/appbars/custom_appbar.dart'; + +class TermasAndConditionScreen extends StatelessWidget { + const TermasAndConditionScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: appBarBackgroundColor, + appBar: CustomAppBar( + backgroundColor: appBarBackgroundColor, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios), + onPressed: () { + Navigator.pop(context); + }, + ), + title: "Terms & Conditions", + textColor: Colors.black, + titleFontSize: 16.sp, + ), + + body: SingleChildScrollView( + child: Column( + children: [ + Divider(), + Padding( + padding: EdgeInsets.all(20.sp), + child: Text(textAlign: TextAlign.center, termsAndConditions), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/accounts/views/trainee_account/trainee_account.dart b/lib/screens/accounts/views/trainee_account/trainee_account.dart new file mode 100644 index 0000000..1ac3eb8 --- /dev/null +++ b/lib/screens/accounts/views/trainee_account/trainee_account.dart @@ -0,0 +1,417 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/asset_constants.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/constant.dart'; +import 'package:onufitness/constants/string_constant.dart'; +import 'package:onufitness/constants/text_constant.dart'; +import 'package:onufitness/controller/get_user_data_controller.dart'; +import 'package:onufitness/controller/notification_controller.dart'; +import 'package:onufitness/routes/route_constant.dart'; +import 'package:onufitness/screens/accounts/Controllers/edit_account_controller.dart'; +import 'package:onufitness/screens/accounts/Controllers/my_account_controller.dart'; +import 'package:onufitness/screens/accounts/widgets/become_a_coach_button_card.dart'; +import 'package:onufitness/screens/accounts/widgets/coach_application_status_button.dart'; +import 'package:onufitness/screens/chat/controllers/chat_controller.dart'; +import 'package:onufitness/screens/register/Controllers/social_login_controller.dart'; +import 'package:onufitness/services/local_storage_services/shared_services.dart'; +import 'package:onufitness/services/notification_services/notification_service.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; +import 'package:onufitness/widgets/others/button_action_bottom_sheet.dart'; +import 'package:onufitness/screens/accounts/widgets/my_account_features_tile_card.dart'; +import 'package:onufitness/utils/helper_function.dart'; +import 'package:onufitness/widgets/Buttons/custom_social_login_button.dart'; + +class TraineeMyAccountScreen extends StatefulWidget { + const TraineeMyAccountScreen({super.key}); + + @override + State createState() => _TraineeMyAccountScreenState(); +} + +class _TraineeMyAccountScreenState extends State { + // Use late final for all controllers + late final SocialLoginController socialLoginController; + late final GetUserDetailsController getUserDetailsController; + late final MyAccountController controller; + late final NotificationController notificationController; + late final NotificationService notificationService; + late final ChatController chatController; + late final EditAccountController editAccountController; + + @override + void initState() { + super.initState(); + + // Initialize SocialLoginController + if (!Get.isRegistered()) { + Get.put(SocialLoginController()); + } + socialLoginController = Get.find(); + + // Initialize GetUserDetailsController + if (!Get.isRegistered()) { + Get.put(GetUserDetailsController()); + } + getUserDetailsController = Get.find(); + + // Initialize MyAccountController + if (!Get.isRegistered()) { + Get.put(MyAccountController()); + } + controller = Get.find(); + + // Initialize NotificationController + if (!Get.isRegistered()) { + Get.put(NotificationController()); + } + notificationController = Get.find(); + + // // Initialize NotificationService + // if (!Get.isRegistered()) { + // Get.put(NotificationService()); + // } + notificationService = Get.find(); + + // Initialize ChatController + if (!Get.isRegistered()) { + Get.put(ChatController()); + } + chatController = Get.find(); + + // Initialize EditAccountController + if (!Get.isRegistered()) { + Get.put(EditAccountController()); + } + editAccountController = Get.find(); + + // API calls + WidgetsBinding.instance.addPostFrameCallback((_) { + apicall(); + }); + } + + apicall() async { + await editAccountController.fetchUserDetails(); + await getUserDetailsController.fetchUserDetails(); + } + + Widget coachStatusWidget() { + return Obx(() { + if (getUserDetailsController.isUserDetailsFetchedLoading.value) { + return Center(child: CircularProgressIndicator()); + } + + final status = getUserDetailsController.becomeCoachStatus.value; + + // Show status button only for Pending and Approved + if (status == "Pending") { + return coachStatusButton( + status: "Pending", + statusText: status, + onTap: () { + customSnackbar( + title: "Application Pending", + message: + "Your coach application is currently under review. We'll notify you once it's processed.", + ); + }, + ); + } else if (status == "Approved") { + return coachStatusButton( + status: "Approved", + statusText: status, + onTap: () { + customSnackbar( + title: "Congratulations!", + message: + "Your coach application has been approved. Please log out and log in again to access your coach profile.", + duration: 5, + ); + }, + ); + } else if (status == "Rejected") { + return coachStatusButton( + status: "Rejected", + statusText: status, + onTap: () async { + // Refresh user details when returning from Become a Coach screen + final result = await Get.toNamed(RouteConstant.becomeACoachScreen); + if (result == true) { + // Refresh the status after returning + await getUserDetailsController.fetchUserDetails(); + } + }, + ); + } else { + return becomeCoachCard( + onTap: () async { + final result = await Get.toNamed(RouteConstant.becomeACoachScreen); + if (result == true) { + await getUserDetailsController.fetchUserDetails(); + } + }, + ); + } + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: pageBackGroundColor, + appBar: AppBar( + backgroundColor: appBarBackgroundColor, + title: Text( + accountAppBarText, + style: TextStyle( + fontSize: appBarHeardingText, + fontWeight: FontWeight.w600, + color: appbarTextColor, + ), + ), + automaticallyImplyLeading: false, + actions: [ + Stack( + children: [ + IconButton( + icon: Icon( + Icons.notifications_none, + color: Colors.black, + size: 24.sp, + ), + onPressed: () { + notificationController.fetchNotifications(isRefresh: true); + Get.toNamed(RouteConstant.notificationListScreen); + }, + ), + notificationController.hasUnreadNotifications + ? Positioned( + right: isTablet ? 5.w : 12.w, + top: isTablet ? 6.h : 12.h, + child: Container( + width: 8.r, + height: 8.r, + decoration: BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ) + : SizedBox(), + ], + ), + ], + ), + body: LayoutBuilder( + builder: (context, constraints) { + return SingleChildScrollView( + padding: EdgeInsets.symmetric(horizontal: 15.w, vertical: 15.h), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: EdgeInsets.symmetric(vertical: 15.h), + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: containerBorderColor), + borderRadius: BorderRadius.circular(20.r), + boxShadow: [ + BoxShadow( + blurRadius: 1, + color: Color(outlineButtonBorderColorSky), + spreadRadius: 1, + offset: Offset(0, 3), + ), + ], + ), + child: Column( + children: [ + accountMenuItem( + AssetConstants.myAccount, + myProfileText, + () { + Get.toNamed(RouteConstant.traineeMyProfile); + }, + ), + isTablet ? SizedBox(height: 10.h) : Container(), + Padding( + padding: EdgeInsets.only(left: 45.w), + child: Divider( + color: Color(outlineButtonBorderColorSky), + ), + ), + accountMenuItem(AssetConstants.rise, riseText, () { + Get.toNamed(RouteConstant.challengeListScreen); + }), + isTablet ? SizedBox(height: 10.h) : Container(), + Padding( + padding: EdgeInsets.only(left: 45.w), + child: Divider( + color: Color(outlineButtonBorderColorSky), + ), + ), + accountMenuItem(AssetConstants.uVault, uVaultText, () { + Get.toNamed(RouteConstant.viewUvault); + }), + isTablet ? SizedBox(height: 10.h) : Container(), + Padding( + padding: EdgeInsets.only(left: 45.w), + child: Divider( + color: Color(outlineButtonBorderColorSky), + ), + ), + // accountMenuItem( + // AssetConstants.achievements, + // achievementsText, + // () { + // Get.toNamed(RouteConstant.traineeAchievementScreen); + // }, + // ), + // isTablet ? SizedBox(height: 10.h) : Container(), + // Padding( + // padding: EdgeInsets.only(left: 45.w), + // child: Divider( + // color: Color(outlineButtonBorderColorSky), + // ), + // ), + accountMenuItem( + AssetConstants.myActivity, + termsAndContionTileText, + () { + Get.toNamed(RouteConstant.traineetermsAndConditions); + }, + ), + isTablet ? SizedBox(height: 10.h) : Container(), + Padding( + padding: EdgeInsets.only(left: 45.w), + child: Divider( + color: Color(outlineButtonBorderColorSky), + ), + ), + accountMenuItem( + AssetConstants.privacyPolicy, + privicyPolicyTileText, + () { + Get.toNamed(RouteConstant.privecyPolicyScreen); + }, + ), + ], + ), + ), + + SizedBox(height: isTablet ? 40.h : 20.h), + + // Use the new method to build coach status widget + coachStatusWidget(), + + SizedBox(height: isTablet ? 40.h : 20.h), + + Center( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 0.2.sw), + child: CustomSocialLoginButton( + borderSide: BorderSide(color: greyBorderColorLight), + height: isTablet ? 70.h : 55.h, + text: logoutText, + textColor: Colors.black, + fontSize: 18.sp, + fontWeight: FontWeight.w600, + onPressed: () async { + await actionButtonBottomSheet( + context: context, + title: "Are you sure you want to Logout ?", + subtitle: "This action cannot be undone.", + submitButtonText: "Logout", + isLoading: controller.isLogoutLoading, + assetPath: AssetConstants.delete, + primaryColor: Color(primaryColor), + cancelBorderColor: greyBorderColorLight, + onPressed: () async { + await socialLoginController.logout(); + await controller.logout().then((value) async { + if (value) { + await chatController.logout(); + await notificationService.deleteDeviceToken(); + await SharedServices.logout(); + Get.offNamedUntil( + RouteConstant.loginFirstScreen, + (route) => false, + ); + } + }); + }, + cancelButtonText: "Cancel", + onCancelPressed: () { + Get.back(); + }, + ); + }, + ), + ), + ), + SizedBox(height: isTablet ? 30.h : 20.h), + + Center( + child: TextButton( + onPressed: () { + actionButtonBottomSheet( + context: context, + title: "Are you sure you want to delete your account?", + subtitle: "This action cannot be undone.", + submitButtonText: "Delete Request", + onPressed: () { + editAccountController.deleteUserAccount().then(( + value, + ) async { + if (value == true) { + await socialLoginController.logout(); + await chatController.logout(); + await notificationService.deleteDeviceToken(); + await SharedServices.logout(); + Get.offNamedUntil( + RouteConstant.loginFirstScreen, + (route) => false, + ); + + Future.delayed(Duration(milliseconds: 300), () { + customSnackbar( + title: "Account Deleted", + message: + "Your account has been successfully deleted. If you wish to recover it, please contact our support team.", + ); + }); + } + }); + }, + cancelButtonText: "Cancel", + onCancelPressed: () { + Get.back(); + }, + assetPath: AssetConstants.delete, + primaryColor: Color(primaryColor), + cancelBorderColor: greyBorderColorLight, + isLoading: editAccountController.isAccountDeleting, + ); + }, + child: Text( + "Delete your account", + style: TextStyle( + fontSize: regularSizeText, + color: Color(deleteAccountTextColorRed), + fontWeight: FontWeight.w600, + fontFamily: montserratFontFamily, + ), + ), + ), + ), + SizedBox(height: 30.h), + ], + ), + ); + }, + ), + ); + } +} diff --git a/lib/screens/accounts/views/trainee_account/trainee_achievement_screen.dart b/lib/screens/accounts/views/trainee_account/trainee_achievement_screen.dart new file mode 100644 index 0000000..5859892 --- /dev/null +++ b/lib/screens/accounts/views/trainee_account/trainee_achievement_screen.dart @@ -0,0 +1,358 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/text_constant.dart'; +import 'package:onufitness/screens/accounts/Controllers/trainee_account_controller.dart'; +import 'package:onufitness/screens/accounts/model/user_progress_response_model.dart'; +import 'package:onufitness/widgets/appbars/custom_appbar.dart'; + +class TraineeAchievementScreen extends StatefulWidget { + const TraineeAchievementScreen({super.key}); + + @override + TraineeAchievementScreenState createState() => + TraineeAchievementScreenState(); +} + +class TraineeAchievementScreenState extends State { + final TraineeAccountController controller = + Get.find(); + final ScrollController _scrollController = ScrollController(); + + @override + void initState() { + super.initState(); + WidgetsBinding.instance.addPostFrameCallback((_) { + controller.fetchUserProgress(); + }); + _scrollController.addListener(_onScroll); + } + + @override + void dispose() { + _scrollController.dispose(); + super.dispose(); + } + + void _onScroll() { + if (_scrollController.position.pixels == + _scrollController.position.maxScrollExtent) { + controller.loadMoreChallenges(); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: CustomAppBar( + backgroundColor: Colors.white, + textColor: appbarTextColor, + titleFontSize: appBarHeardingText, + title: "My Achievement", + leading: IconButton( + onPressed: () { + Get.back(); + }, + icon: Icon(Icons.arrow_back_ios), + ), + ), + body: Obx(() { + if (controller.isUserProgressLoading.value && + controller.challengesList.isEmpty) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator( + valueColor: AlwaysStoppedAnimation( + Color(primaryColor), + ), + ), + SizedBox(height: 16.h), + Text( + 'Loading achievements...', + style: TextStyle( + fontSize: regularSizeText, + color: Color(darkGreyColor), + ), + ), + ], + ), + ); + } + + if (controller.challengesList.isEmpty) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.flag_outlined, size: 60.sp, color: lightGreyColor), + SizedBox(height: 16.h), + Text( + 'No achievements Found', + style: TextStyle( + fontSize: mediumSizeText, + fontWeight: FontWeight.w600, + color: Color(darkGreyColor), + ), + ), + SizedBox(height: 8.h), + Text( + 'Start your fitness journey by joining challenges!', + style: TextStyle( + fontSize: smallSizeText, + color: Color(darkGreyColor).withValues(alpha: 0.7), + ), + textAlign: TextAlign.center, + ), + SizedBox(height: 24.h), + ElevatedButton( + onPressed: () => controller.refreshChallenges(), + style: ElevatedButton.styleFrom( + backgroundColor: Color(primaryColor), + padding: EdgeInsets.symmetric( + horizontal: 24.w, + vertical: 12.h, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.r), + ), + elevation: 2, + ), + child: Text( + 'Refresh', + style: TextStyle( + fontSize: regularSizeText, + color: Colors.black, + fontWeight: FontWeight.w600, + ), + ), + ), + ], + ), + ); + } + + return RefreshIndicator( + onRefresh: controller.refreshChallenges, + color: Color(primaryColor), + child: Column( + children: [ + // Challenges List + Expanded( + child: ListView.builder( + controller: _scrollController, + padding: EdgeInsets.all(15.w), + itemCount: + controller.challengesList.length + + (controller.hasMoreChallenges.value ? 1 : 0), + itemBuilder: (context, index) { + if (index == controller.challengesList.length) { + // Loading indicator for pagination + return Container( + padding: EdgeInsets.all(16.w), + alignment: Alignment.center, + child: CircularProgressIndicator( + valueColor: AlwaysStoppedAnimation( + Color(primaryColor), + ), + ), + ); + } + + final challenge = controller.challengesList[index]; + return _buildChallengeCard(challenge, index); + }, + ), + ), + ], + ), + ); + }), + ); + } + + Widget _buildChallengeCard(ChallengePogress challenge, int index) { + IconData statusIcon = _getStatusIcon(challenge.status ?? ''); + + return Container( + margin: EdgeInsets.only(bottom: 15.h), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16.r), + border: Border.all( + color: lightGreyColor.withValues(alpha: 0.3), + width: 1, + ), + boxShadow: [ + BoxShadow( + color: Colors.black.withValues(alpha: 0.05), + blurRadius: 8, + offset: Offset(0, 2), + ), + ], + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(16.r), + child: Column( + children: [ + // Status header with light green background + Container( + width: double.infinity, + padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 6.h), + decoration: BoxDecoration( + color: Color(primaryColor).withValues(alpha: 0.2), + ), + child: Row( + children: [ + Container( + width: 24.w, + height: 24.h, + decoration: BoxDecoration( + color: Color(primaryColor), + shape: BoxShape.circle, + ), + child: Icon(statusIcon, color: Colors.black, size: 12.sp), + ), + SizedBox(width: 12.w), + Text( + challenge.status?.toUpperCase() ?? 'COMPLETE', + style: TextStyle( + fontSize: smallSizeText, + fontWeight: FontWeight.w600, + color: Colors.black, + letterSpacing: 0.5, + ), + ), + ], + ), + ), + + // Challenge content + Padding( + padding: EdgeInsets.all(10.w), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + challenge.challengeTitle ?? 'Challenge name1', + style: TextStyle( + fontSize: mediumSizeText, + fontWeight: FontWeight.w600, + color: Colors.black, + ), + ), + SizedBox(height: 10.h), + + Row( + children: [ + Expanded( + child: _buildInfoItem( + icon: Icons.trending_up, + label: 'Target', + value: + challenge.totalMetricValue != null + ? challenge.totalMetricValue! % 1 == 0 + ? '${challenge.totalMetricValue!.toInt()}' + : challenge.totalMetricValue! + .toStringAsFixed(1) + : '0', + isTarget: true, + ), + ), + SizedBox(width: 15.w), + Expanded( + child: _buildInfoItem( + icon: Icons.straighten, + label: 'Unit', + value: challenge.taskUnit ?? 'Count', + isTarget: false, + ), + ), + ], + ), + ], + ), + ), + ], + ), + ), + ); + } + + Widget _buildInfoItem({ + required IconData icon, + required String label, + required String value, + required bool isTarget, + }) { + return Container( + padding: EdgeInsets.all(10.w), + decoration: BoxDecoration( + color: + isTarget + ? Color(primaryColor).withValues(alpha: 0.2) + : lightGreyColor + ..withValues(alpha: 0.5), + borderRadius: BorderRadius.circular(12.r), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Container( + width: 20.w, + height: 20.h, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8.r), + ), + child: Icon(icon, size: 12.sp, color: Colors.black), + ), + SizedBox(width: 12.w), + Text( + label, + style: TextStyle( + fontSize: regularSizeText, + color: Colors.black, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + SizedBox(height: 12.h), + Text( + value, + style: TextStyle( + fontSize: mediumSizeText, + fontWeight: FontWeight.w500, + color: Colors.black, + ), + ), + ], + ), + ); + } + + IconData _getStatusIcon(String status) { + switch (status.toLowerCase()) { + case 'completed': + case 'complete': + return Icons.check; + case 'active': + case 'in_progress': + return Icons.play_arrow; + case 'pending': + return Icons.schedule; + case 'failed': + return Icons.close; + case 'cancelled': + return Icons.cancel; + default: + return Icons.check; + } + } +} diff --git a/lib/screens/accounts/views/trainee_account/trainee_health_information.dart b/lib/screens/accounts/views/trainee_account/trainee_health_information.dart new file mode 100644 index 0000000..a57ac24 --- /dev/null +++ b/lib/screens/accounts/views/trainee_account/trainee_health_information.dart @@ -0,0 +1,163 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/text_constant.dart'; +import 'package:onufitness/screens/accounts/Controllers/health_info_update_controller.dart'; +import 'package:onufitness/screens/register/widgets/custom_multi_select_dropdown.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; +import 'package:onufitness/utils/helper_function.dart'; +import 'package:onufitness/widgets/Dropdowns/custom_normal_hintext_dropdown.dart'; +import 'package:onufitness/widgets/Buttons/custom_submit_button.dart'; +import 'package:onufitness/widgets/appbars/custom_appbar.dart'; + +class TraineeHealthInformationScreen extends StatefulWidget { + const TraineeHealthInformationScreen({super.key}); + + @override + State createState() => + _TraineeHealthInformationScreenState(); +} + +class _TraineeHealthInformationScreenState + extends State { + late HealthConditionUpdateController healthController; + + @override + void initState() { + super.initState(); + healthController = Get.put(HealthConditionUpdateController()); + _initializeData(); + } + + Future _initializeData() async { + // Fetch dropdown options and current user data + await Future.wait([ + healthController.fetchDietaryPreferences(), + healthController.fetchHealthConditions(), + healthController.fetchUserHealthInformation(), + ]); + } + + @override + Widget build(BuildContext context) { + return Obx(() { + bool isInitialLoading = + healthController.isDietaryPreferencesLoading.value || + healthController.isHealthConditionsLoading.value || + healthController.isUserDataLoading.value; + + return Stack( + children: [ + Scaffold( + backgroundColor: appBarBackgroundColor, + appBar: CustomAppBar( + backgroundColor: Colors.white, + textColor: appbarTextColor, + titleFontSize: appBarHeardingText, + title: "Health Information", + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios), + onPressed: () { + Get.back(); + }, + ), + ), + body: SingleChildScrollView( + padding: EdgeInsets.symmetric(horizontal: isTablet ? 40.w : 20.w), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(height: 20.h), + + // Dietary Preferences Dropdown + CustomDropdownField( + borderColor: lightGreyColor, + title: "Dietary Preferences*", + items: healthController.localDietaryPreferencesList, + selectedItem: + healthController.selectedDietaryPreferences.isEmpty + ? null + : healthController.selectedDietaryPreferences.value, + onChanged: (String? newValue) { + if (newValue != null) { + healthController.selectedDietaryPreferences.value = + newValue; + var selectedObj = healthController + .apiDietaryPreferencesList + .firstWhere( + (element) => + element.dietaryPreferenceName == newValue, + ); + healthController.selectedDietaryPreferencesId.value = + selectedObj.dietaryPreferenceId!; + } + }, + ), + + SizedBox(height: isTablet ? 20.h : 15.h), + + // Health Conditions Multi-Select + CustomCheckboxDropdown( + borderColor: lightGreyColor, + title: "Health Conditions", + items: healthController.localHealthConditionsList.toList(), + selectedItems: List.from( + healthController.selectedHealthConditions, + ), + onChanged: (List selectedItems) { + healthController.onHealthConditionsChanged(selectedItems); + }, + ), + + SizedBox(height: isTablet ? 30.h : 20.h), + + // Update Button + Obx( + () => CustomSubmitButton( + isLoading: healthController.isUpdateLoading.value, + text: "Update", + textColor: Colors.white, + fontSize: isTablet ? 20.sp : 18.sp, + fontWeight: FontWeight.w600, + height: isTablet ? 60.h : 50.h, + backgroundColor: Colors.black, + onPressed: () { + if (healthController + .selectedDietaryPreferences + .value + .isEmpty) { + customSnackbar( + title: "Incomplete Information", + message: "Please select a dietary preference.", + ); + return; + } else { + healthController.updateUserHealthInformation(); + } + }, + ), + ), + + SizedBox(height: 30.h), + ], + ), + ), + ), + + // Loader overlay — covers AppBar + Body + if (isInitialLoading) + Container( + color: Colors.black.withValues(alpha: 0.4), + child: const Center( + child: CircularProgressIndicator( + color: Colors.white, + strokeWidth: 3, + ), + ), + ), + ], + ); + }); + } +} diff --git a/lib/screens/accounts/views/trainee_account/trainee_my_activity_screen.dart b/lib/screens/accounts/views/trainee_account/trainee_my_activity_screen.dart new file mode 100644 index 0000000..69a2711 --- /dev/null +++ b/lib/screens/accounts/views/trainee_account/trainee_my_activity_screen.dart @@ -0,0 +1,156 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:onufitness/constants/color_constant.dart'; + +class TraineeMyActivityScreen extends StatelessWidget { + const TraineeMyActivityScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: appBarBackgroundColor, + appBar: AppBar( + backgroundColor: appBarBackgroundColor, + title: const Text( + 'My Activity', + style: TextStyle(fontWeight: FontWeight.bold), + ), + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios), + onPressed: () { + Navigator.pop(context); + }, + ), + ), + body: Column( + children: [ + Divider(color: Color(outlineButtonBorderColorSky)), + Expanded( + child: LayoutBuilder( + builder: (context, constraints) { + final isTablet = constraints.maxWidth >= 600; + + return ListView.builder( + itemCount: 7, + itemBuilder: (context, index) { + return Column( + children: [ + Padding( + padding: EdgeInsets.symmetric( + vertical: 8.h, + horizontal: 16.w, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Total workout duration', + style: TextStyle( + fontSize: isTablet ? 18.sp : 13.sp, + color: greyTextColor1, + ), + ), + SizedBox(height: 10.h), + Text( + _getDuration(index), + style: TextStyle( + fontSize: isTablet ? 20.sp : 14.sp, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Calories burned', + style: TextStyle( + fontSize: isTablet ? 18.sp : 13.sp, + color: greyTextColor1, + ), + ), + SizedBox(height: 10.h), + Text( + caloriesBurned(index), + style: TextStyle( + fontSize: isTablet ? 20.sp : 14.sp, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Reward', + style: TextStyle( + fontSize: isTablet ? 18.sp : 13.sp, + color: greyTextColor1, + ), + ), + SizedBox(height: 10.h), + Text( + _getReward(index), + style: TextStyle( + fontSize: isTablet ? 20.sp : 14.sp, + ), + ), + ], + ), + ], + ), + ), + Padding( + padding: EdgeInsets.only(left: 10.w, right: 10.w), + child: Divider( + color: Color(outlineButtonBorderColorSky), + ), + ), + ], + ); + }, + ); + }, + ), + ), + ], + ), + ); + } + + String _getDuration(int index) { + const durations = [ + '7 - 15 Feb 2025', + '1 - 7 Feb 2025', + '21 Jan - 1 Feb 2025', + '15 - 19 Jan 2025', + '5 - 14 Jan 2025', + '7 Feb - 15 Feb 2025', + '7 Feb - 15 Feb 2025', + ]; + return durations[index % durations.length]; + } + + String _getReward(int index) { + const rewards = ['🏅', '🏅', '--', '--', '--', '🏅', '🏅']; + return rewards[index % rewards.length]; + } + + String caloriesBurned(int index) { + const rewards = [ + '2000 Kacl', + '2000 Kacl', + '2000 Kacl', + '2000 Kacl', + '2000 Kacl', + '2000 Kacl', + '2000 Kacl', + ]; + return rewards[index % rewards.length]; + } +} diff --git a/lib/screens/accounts/views/trainee_account/trainee_profile_screen.dart b/lib/screens/accounts/views/trainee_account/trainee_profile_screen.dart new file mode 100644 index 0000000..f92d674 --- /dev/null +++ b/lib/screens/accounts/views/trainee_account/trainee_profile_screen.dart @@ -0,0 +1,138 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/asset_constants.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/constant.dart'; +import 'package:onufitness/constants/string_constant.dart'; +import 'package:onufitness/controller/notification_controller.dart'; +import 'package:onufitness/routes/route_constant.dart'; +import 'package:onufitness/screens/accounts/Controllers/edit_account_controller.dart'; +import 'package:onufitness/screens/accounts/widgets/my_account_features_tile_card.dart'; +import 'package:onufitness/screens/accounts/widgets/user_profile_card.dart'; +import 'package:onufitness/utils/helper_function.dart'; + +class TraineeProfileScreen extends StatefulWidget { + const TraineeProfileScreen({super.key}); + + @override + State createState() => _TraineeProfileScreenState(); +} + +class _TraineeProfileScreenState extends State { + final notificationController = Get.find(); + + final editAccountController = Get.find(); + @override + void initState() { + WidgetsBinding.instance.addPostFrameCallback((_) { + apicall(); + }); + super.initState(); + } + + apicall() async { + await editAccountController.fetchUserDetails(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: pageBackGroundColor, + appBar: AppBar( + backgroundColor: appBarBackgroundColor, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios), + onPressed: () { + Get.back(); + }, + ), + title: Text(myProfileText, style: customTextStyle), + actions: [ + Stack( + children: [ + IconButton( + icon: Icon( + Icons.notifications_none, + color: Colors.black, + size: 25.sp, + ), + onPressed: () { + notificationController.fetchNotifications(isRefresh: true); + Get.toNamed(RouteConstant.notificationListScreen); + }, + ), + notificationController.hasUnreadNotifications + ? Positioned( + right: isTablet ? 5.w : 12.w, + top: isTablet ? 6.h : 12.h, + child: Container( + width: 8.r, + height: 8.r, + decoration: BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ) + : SizedBox(), + ], + ), + ], + ), + body: SingleChildScrollView( + padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + profileCard(), + SizedBox(height: 25.h), + Container( + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: containerBorderColor), + borderRadius: BorderRadius.circular(20.r), + boxShadow: [ + BoxShadow( + blurRadius: 1, + color: Color(outlineButtonBorderColorSky), + spreadRadius: 1, + offset: Offset(0, 3), + ), + ], + ), + + child: Padding( + padding: EdgeInsets.symmetric(vertical: isTablet ? 30.h : 5.h), + child: Column( + children: [ + accountMenuItem( + AssetConstants.fitnessGoals, + fitnessGoalText, + () { + Get.toNamed(RouteConstant.preferredFitnessgoalScreen); + }, + ), + Padding( + padding: EdgeInsets.only(left: 45.w), + child: Divider(color: Color(outlineButtonBorderColorSky)), + ), + accountMenuItem( + AssetConstants.healthInfo, + healthInformationText, + () { + Get.toNamed( + RouteConstant.traineeHealthInformationScreen, + ); + }, + ), + ], + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/accounts/widgets/become_a_coach_button_card.dart b/lib/screens/accounts/widgets/become_a_coach_button_card.dart new file mode 100644 index 0000000..36ab6dc --- /dev/null +++ b/lib/screens/accounts/widgets/become_a_coach_button_card.dart @@ -0,0 +1,58 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:onufitness/constants/asset_constants.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/string_constant.dart'; +import 'package:onufitness/utils/helper_function.dart'; + +Widget becomeCoachCard({required VoidCallback onTap}) { + return InkWell( + onTap: onTap, + child: Container( + height: isTablet ? 90.h : null, + padding: EdgeInsets.all(10.w), + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + becomeACoachGradient1.withValues(alpha: 0.4), + becomeACoachGradient2, + ], + ), + + borderRadius: BorderRadius.circular(12.r), + + boxShadow: [ + BoxShadow( + blurRadius: 1, + color: Color(outlineButtonBorderColorSky), + spreadRadius: 1, + offset: Offset(0, 3), + ), + ], + ), + child: Row( + children: [ + SizedBox( + height: isTablet ? 40.h : 25.h, + width: isTablet ? 40.w : 25.w, + child: Image.asset(AssetConstants.accountIcon), + ), + SizedBox(width: 12.w), + Text( + becomeACoachText, + style: TextStyle( + fontWeight: FontWeight.w600, + fontSize: isTablet ? 22.sp : 16.sp, + ), + ), + const Spacer(), + SizedBox( + height: isTablet ? 30.h : 20.h, + width: isTablet ? 30.w : 20.w, + child: Image.asset(AssetConstants.goButton), + ), + ], + ), + ), + ); +} diff --git a/lib/screens/accounts/widgets/coach_application_status_button.dart b/lib/screens/accounts/widgets/coach_application_status_button.dart new file mode 100644 index 0000000..905c090 --- /dev/null +++ b/lib/screens/accounts/widgets/coach_application_status_button.dart @@ -0,0 +1,71 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:onufitness/constants/asset_constants.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/utils/helper_function.dart'; + +Widget coachStatusButton({ + required String status, + required String statusText, + required VoidCallback onTap, +}) { + return InkWell( + onTap: onTap, + child: Container( + height: isTablet ? 90.h : null, + padding: EdgeInsets.all(10.w), + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + becomeACoachGradient1.withValues(alpha: 0.4), + becomeACoachGradient2, + ], + ), + borderRadius: BorderRadius.circular(12.r), + boxShadow: [ + BoxShadow( + blurRadius: 1, + color: Color(outlineButtonBorderColorSky), + spreadRadius: 1, + offset: Offset(0, 3), + ), + ], + ), + child: Row( + children: [ + SizedBox( + height: isTablet ? 40.h : 25.h, + width: isTablet ? 40.w : 25.w, + child: Image.asset(AssetConstants.accountIcon), + ), + SizedBox(width: 12.w), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "Coach Application", + style: TextStyle( + fontWeight: FontWeight.w600, + fontSize: isTablet ? 22.sp : 18.sp, + ), + ), + SizedBox(height: 2.h), + Text( + statusText, + style: TextStyle( + fontWeight: FontWeight.w500, + fontSize: isTablet ? 18.sp : 14.sp, + color: Colors.black87, + ), + ), + ], + ), + ), + Icon(Icons.warning), + ], + ), + ), + ); +} diff --git a/lib/screens/accounts/widgets/my_account_features_tile_card.dart b/lib/screens/accounts/widgets/my_account_features_tile_card.dart new file mode 100644 index 0000000..30a760a --- /dev/null +++ b/lib/screens/accounts/widgets/my_account_features_tile_card.dart @@ -0,0 +1,22 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:onufitness/utils/helper_function.dart'; + +Widget accountMenuItem(String image, String title, VoidCallback onPressed) { + return ListTile( + leading: SizedBox( + height: isTablet ? 25.sp : 20.h, + width: isTablet ? 25.sp : 20.w, + child: Image.asset(image), + ), + title: Text( + title, + style: TextStyle( + fontWeight: FontWeight.w600, + fontSize: isTablet ? 16.sp : 16.sp, + ), + ), + trailing: const Icon(Icons.arrow_forward_ios), + onTap: onPressed, + ); +} diff --git a/lib/screens/accounts/widgets/show_client_details_bottom_sheet_widget.dart b/lib/screens/accounts/widgets/show_client_details_bottom_sheet_widget.dart new file mode 100644 index 0000000..b7fe8b8 --- /dev/null +++ b/lib/screens/accounts/widgets/show_client_details_bottom_sheet_widget.dart @@ -0,0 +1,260 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/asset_constants.dart'; +import 'package:onufitness/constants/color_constant.dart'; + +void showClientDetailsBottomSheet(BuildContext context) { + showModalBottomSheet( + context: context, + isScrollControlled: true, + backgroundColor: Colors.transparent, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.vertical(top: Radius.circular(30.r)), + ), + builder: (context) { + return Stack( + clipBehavior: Clip.none, + children: [ + ClientDetailsBottomSheet(), + Positioned( + top: -60.h, + right: 20.w, + child: SizedBox( + height: 40.h, + width: 40.w, + child: FloatingActionButton( + onPressed: () => Get.back(), + backgroundColor: Colors.white, + shape: CircleBorder(), + elevation: 5, + child: Icon(Icons.close, size: 18.sp, color: Colors.black), + ), + ), + ), + ], + ); + }, + ); +} + +class ClientDetailsBottomSheet extends StatelessWidget { + const ClientDetailsBottomSheet({super.key}); + + @override + Widget build(BuildContext context) { + return LayoutBuilder( + builder: (context, constraints) { + bool isTablet = constraints.maxWidth >= 600; + + return Container( + padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: 20.h), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.vertical(top: Radius.circular(30.r)), + boxShadow: [ + BoxShadow(color: Colors.black26, blurRadius: 10, spreadRadius: 2), + ], + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + /// Drag Handle + Container( + width: isTablet ? 150.w : 50.w, + height: 5.h, + decoration: BoxDecoration( + color: Color(darkGreyColor), + borderRadius: BorderRadius.circular(10.r), + ), + ), + SizedBox(height: 15.h), + + /// Client Info + Row( + children: [ + CircleAvatar( + radius: isTablet ? 40.r : 25.r, + backgroundImage: AssetImage('assets/image.png'), + ), + SizedBox(width: 12.w), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Alfredo Franci", + style: TextStyle( + fontSize: isTablet ? 20.sp : 16.sp, + fontWeight: FontWeight.w600, + ), + ), + Text( + "Age: 30 • North America", + style: TextStyle(fontSize: 14.sp, color: Colors.grey), + ), + ], + ), + Spacer(), + ], + ), + SizedBox(height: 15.h), + + /// Progress Cards + _buildProgressCard( + title: "Session Completion", + progress: 0.85, + value: "85%", + details: "34 of 40 sessions completed", + ), + SizedBox(height: 10.h), + _buildProgressCard( + title: "On-Time Completion", + progress: 0.92, + value: "92%", + details: "31 sessions completed on time", + ), + SizedBox(height: 10.h), + _buildCurrentStreakCard( + title: "Current Streak", + value: "🔥 14", + details: "Personal best: 21 days", + ), + ], + ), + ); + }, + ); + } + + Widget _buildProgressCard({ + required String title, + required double progress, + required String value, + required String details, + }) { + return Container( + padding: EdgeInsets.all(20.sp), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20.r), + border: Border.all(color: Color(outlineButtonBorderColorSky)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + /// Title & Percentage + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + SizedBox( + height: 20.h, + width: 20.h, + child: Image.asset(AssetConstants.tickUnderCircle), + ), + SizedBox(width: 5.w), + Text( + title, + style: TextStyle( + fontSize: 14.sp, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + Text( + value, + style: TextStyle( + fontSize: 14.sp, + fontWeight: FontWeight.w600, + color: Colors.black, + ), + ), + ], + ), + SizedBox(height: 5.h), + + /// Continuous Progress Bar + LinearProgressIndicator( + value: progress, + backgroundColor: Colors.grey.shade300, + color: Color(primaryColor), + minHeight: 6.h, + borderRadius: BorderRadius.circular(10.r), + ), + SizedBox(height: 5.h), + + /// Details + Text( + details, + style: TextStyle(fontSize: 12.sp, color: Colors.grey.shade600), + ), + ], + ), + ); + } + + Widget _buildCurrentStreakCard({ + required String title, + required String value, + required String details, + }) { + return Container( + padding: EdgeInsets.all(20.sp), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20.r), + border: Border.all(color: Color(outlineButtonBorderColorSky)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + /// Title & Value + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + title, + style: TextStyle(fontSize: 14.sp, fontWeight: FontWeight.bold), + ), + Text( + value, + style: TextStyle( + fontSize: 14.sp, + fontWeight: FontWeight.w600, + color: Colors.black, + ), + ), + ], + ), + SizedBox(height: 5.h), + + /// Segmented Progress Bar + Row( + children: List.generate(4, (index) { + return Expanded( + child: Container( + margin: EdgeInsets.symmetric(horizontal: 2.w), + height: 6.h, + decoration: BoxDecoration( + color: + index < 2 ? Color(primaryColor) : Colors.grey.shade300, + borderRadius: BorderRadius.circular(3.r), + ), + ), + ); + }), + ), + SizedBox(height: 5.h), + + /// Details + Text( + details, + style: TextStyle(fontSize: 12.sp, color: Colors.grey.shade600), + ), + ], + ), + ); + } +} diff --git a/lib/screens/accounts/widgets/trainee_calories_and_connections_info_card.dart b/lib/screens/accounts/widgets/trainee_calories_and_connections_info_card.dart new file mode 100644 index 0000000..2760b9a --- /dev/null +++ b/lib/screens/accounts/widgets/trainee_calories_and_connections_info_card.dart @@ -0,0 +1,53 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/utils/helper_function.dart'; + +Widget traineeCaloriesConnectionsInfoCard( + String value, + String label, + String image, +) { + return Container( + width: isTablet ? 0.4.sw : null, + height: isTablet ? 100.h : null, + padding: EdgeInsets.all(15.w), + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: containerBorderColor), + borderRadius: BorderRadius.circular(12.r), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + height: isTablet ? 50.h : 40.h, + width: isTablet ? 50.h : 40.w, + child: Image.asset(image), + ), + SizedBox(width: 15.w), + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + value, + style: TextStyle( + fontSize: isTablet ? 24.sp : 20.sp, + fontWeight: FontWeight.w600, + ), + ), + Text( + label, + style: TextStyle( + fontSize: isTablet ? 16.sp : 14.sp, + color: greyTextColor1, + ), + ), + ], + ), + ], + ), + ); +} diff --git a/lib/screens/accounts/widgets/user_profile_card.dart b/lib/screens/accounts/widgets/user_profile_card.dart new file mode 100644 index 0000000..18c2afe --- /dev/null +++ b/lib/screens/accounts/widgets/user_profile_card.dart @@ -0,0 +1,206 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/screens/echoboard/widget/image_zoom.dart'; +import 'package:shimmer/shimmer.dart'; +import 'package:onufitness/constants/asset_constants.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/routes/route_constant.dart'; +import 'package:onufitness/screens/accounts/Controllers/edit_account_controller.dart'; +import 'package:onufitness/utils/helper_function.dart'; + +Widget profileCard() { + return GetBuilder( + init: EditAccountController(), + builder: (controller) { + final userData = controller.userDetailsResponseModel.data; + + if (controller.fetchUserDetailsLoading.value == true) { + return Shimmer.fromColors( + baseColor: Colors.grey.shade300, + highlightColor: Colors.grey.shade100, + child: Container( + padding: EdgeInsets.symmetric( + vertical: isTablet ? 18.sp : 24.sp, + horizontal: 10.sp, + ), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12.r), + ), + child: Row( + children: [ + CircleAvatar( + radius: 30.r, + backgroundColor: Colors.grey.shade300, + ), + SizedBox(width: 12.w), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 150.w, + height: 16.h, + color: Colors.grey.shade300, + ), + SizedBox(height: 8.h), + Container( + width: 100.w, + height: 12.h, + color: Colors.grey.shade300, + ), + ], + ), + ), + Container( + height: isTablet ? 50.h : 40.h, + width: isTablet ? 50.w : 40.w, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.grey.shade300, + ), + ), + ], + ), + ), + ); + } + + return Container( + padding: EdgeInsets.symmetric( + vertical: isTablet ? 18.sp : 24.sp, + horizontal: 10.sp, + ), + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + becomeACoachGradient2, + becomeACoachGradient2, + becomeACoachGradient1.withValues(alpha: 0.5), + ], + begin: Alignment.topCenter, + end: Alignment.bottomRight, + ), + borderRadius: BorderRadius.circular(12.r), + boxShadow: [ + BoxShadow( + blurRadius: 1, + color: Color(outlineButtonBorderColorSky), + spreadRadius: 1, + offset: Offset(0, 3), + ), + ], + ), + child: Row( + children: [ + InkWell( + onTap: () { + if (controller.hasNetworkImage) { + Get.to( + () => ImageZoomWidget( + imageUrl: controller.userProfileImageUrl!, + ), + ); + } + }, + child: CircleAvatar( + radius: 30.r, + backgroundColor: Colors.grey.shade200, + child: ClipOval( + child: + controller.hasNetworkImage + ? CachedNetworkImage( + imageUrl: controller.userProfileImageUrl!, + width: 60.r, + height: 60.r, + fit: BoxFit.cover, + key: ValueKey(controller.userProfileImageUrl), + errorWidget: + (context, url, error) => Icon( + Icons.person, + size: 30.r, + color: Color(darkGreyColor), + ), + placeholder: + (context, url) => SizedBox( + width: 60.r, + height: 60.r, + child: Center( + child: CircularProgressIndicator( + strokeWidth: 2, + color: Color(darkGreyColor), + ), + ), + ), + ) + : Icon( + Icons.person, + size: 30.r, + color: Color(darkGreyColor), + ), + ), + ), + ), + + SizedBox(width: 12.w), + + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + userData?.fullName?.isNotEmpty == true + ? userData!.fullName! + : '${userData?.firstName ?? ''} ${userData?.lastName ?? ''}' + .trim() + .isNotEmpty + ? '${userData?.firstName ?? ''} ${userData?.lastName ?? ''}' + .trim() + : 'Unknown User', + style: TextStyle( + fontSize: isTablet ? 24.sp : 18.sp, + fontWeight: FontWeight.w600, + ), + ), + if (userData?.email?.isNotEmpty == true) ...[ + SizedBox(height: 2.h), + Text( + userData?.email ?? "", + style: TextStyle( + fontSize: isTablet ? 19.sp : 14.sp, + color: Colors.grey, + ), + ), + ], + ], + ), + ), + + IconButton( + icon: Container( + height: isTablet ? 50.h : 40.h, + width: isTablet ? 50.w : 40.w, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.black, + ), + child: Padding( + padding: EdgeInsets.all(12.sp), + child: Image.asset( + AssetConstants.editIcon, + fit: BoxFit.contain, + ), + ), + ), + onPressed: () async { + await Get.toNamed(RouteConstant.traineeCoachEditProfile); + }, + ), + ], + ), + ); + }, + ); +} diff --git a/lib/screens/chat/controllers/chat_controller.dart b/lib/screens/chat/controllers/chat_controller.dart new file mode 100644 index 0000000..0368c1c --- /dev/null +++ b/lib/screens/chat/controllers/chat_controller.dart @@ -0,0 +1,2084 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:io'; +import 'package:onufitness/services/logger_service.dart'; +import 'package:audio_waveforms/audio_waveforms.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:agora_chat_sdk/agora_chat_sdk.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:dio/dio.dart'; +import 'package:permission_handler/permission_handler.dart'; + +class ChatController extends GetxController with WidgetsBindingObserver { + //............................................................................................................ + final logger = LoggerService(); + + @override + void onInit() async { + super.onInit(); + addListeners(); + addPresenceListener(); + WidgetsBinding.instance.addObserver(this); + } + + //............................................................................................................ + + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + super.didChangeAppLifecycleState(state); + + if (state == AppLifecycleState.paused || + state == AppLifecycleState.inactive || + state == AppLifecycleState.hidden) { + if (isRecording.value) { + pauseRecording(); + } + } + } + + //............................................................................................................ + + @override + void onClose() { + // Remove event handlers first + ChatClient.getInstance.chatManager.removeMessageEvent('chat_listener'); + ChatClient.getInstance.chatManager.removeEventHandler("receive_chat"); + ChatClient.getInstance.chatManager.removeEventHandler( + "delivery_message_listioner", + ); + ChatClient.getInstance.chatManager.removeEventHandler( + "read_message_listioner", + ); + ChatClient.getInstance.chatManager.removeEventHandler( + "conversation_read_listioner", + ); + ChatClient.getInstance.removeConnectionEventHandler('connection_handler'); + ChatClient.getInstance.presenceManager.removeEventHandler( + "presence_handler", + ); + // Dispose recorder + recorderController?.dispose(); + durationTimer?.cancel(); + + // Dispose all players + for (final controller in playerControllers.values) { + controller.dispose(); + } + WidgetsBinding.instance.removeObserver(this); + super.onClose(); + } + + //............................................................................................................... + // Delete a specific conversation and all its messages.......................................................... + //............................................................................................................... + + Future deleteConversation(String conversationId) async { + try { + // Delete from Agora Chat SDK. + await ChatClient.getInstance.chatManager.deleteConversation( + conversationId, + deleteMessages: true, + ); + try { + await ChatClient.getInstance.chatManager.deleteRemoteConversation( + conversationId, + ); + } on ChatError catch (e) { + logger.error( + "Error deleting remote conversation", + error: e, + stackTrace: StackTrace.current, + ); + } + + // Remove from local controller data + messagesMap.remove(conversationId); + lastMessages.remove(conversationId); + unreadCounts.remove(conversationId); + cursors.remove(conversationId); + isLoadingMore.remove(conversationId); + hasMoreMessages.remove(conversationId); + userInfoMap.remove(conversationId); + groupInfoMap.remove(conversationId); + presenceMap.remove(conversationId); + // Remove from recent conversations list + recentConversations.removeWhere((conv) => conv.id == conversationId); + + if (selectedUserId.value == conversationId) { + await unsuscribePresence(conversationId); + selectedUserId.value = ""; + } + } on ChatError catch (e) { + logger.error( + "Failed to delete conversation $conversationId", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + // //............................................................................................................... + // //............................................................................................................... + // //........ Chat Code Logics...................................................................................... + // //............................................................................................................... + // //............................................................................................................... + + // Tracks messages for each conversation................................................ + final RxMap> messagesMap = + >{}.obs; + + // Make these properly observable...................................................... + final RxMap lastMessages = {}.obs; + final RxMap unreadCounts = {}.obs; + RxList recentConversations = [].obs; + + // Pagination related variables.......................................................... + final RxMap cursors = {}.obs; + final RxMap isLoadingMore = {}.obs; + final RxMap hasMoreMessages = {}.obs; + + // File download tracking............................................................... + final RxMap downloadProgress = {}.obs; + final RxMap isDownloading = {}.obs; + + // File sending/upload tracking........................................................ + final RxMap isSending = {}.obs; + + RxString selectedUserId = "".obs; + final RxMap presenceMap = {}.obs; + + void addPresenceListener() { + ChatClient.getInstance.presenceManager.addEventHandler( + 'presence_handler', + ChatPresenceEventHandler( + onPresenceStatusChanged: (List list) { + for (final p in list) { + final userId = p.publisher; + final statusMap = p.statusDetails; + + bool isOnline = false; + if (statusMap != null && statusMap.isNotEmpty) { + isOnline = statusMap.values.any((v) => v == 1); + } + + presenceMap[userId] = isOnline ? 'online' : 'offline'; + } + }, + ), + ); + } + + Future subscribeToUserPresence(String userId) async { + try { + List subsss = await ChatClient.getInstance.presenceManager + .subscribe(members: [userId], expiry: 300); + + for (final p in subsss) { + final statusMap = p.statusDetails; + bool isOnline = false; + + if (statusMap != null && statusMap.isNotEmpty) { + isOnline = statusMap.values.any((v) => v == 1); + } + + presenceMap[p.publisher] = isOnline ? 'online' : 'offline'; + } + } catch (e) { + logger.error( + "Presence subscription failed for $userId", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + unsuscribePresence(String userId) async { + try { + await ChatClient.getInstance.presenceManager.unsubscribe( + members: [userId], + ); + presenceMap.remove(userId); + } catch (e) { + logger.error( + "Presence unsubscribe failed", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + // File sending methods............................................................................................. + final ImagePicker _picker = ImagePicker(); + final Dio _dio = Dio(); + + void forceRefreshMessages(String conversationId) { + final currentMessages = messagesMap[conversationId]; + if (currentMessages != null) { + // Force observable update by creating new list reference + messagesMap[conversationId] = List.from(currentMessages); + messagesMap.refresh(); // Force GetX to notify observers + } + } + + Future sendImageFromCamera( + String targetId, { + bool isGroup = false, + }) async { + try { + final XFile? image = await _picker.pickImage(source: ImageSource.camera); + if (image != null) { + final file = File(image.path); + final sizeInBytes = await file.length(); + if (_isFileSizeValid(sizeInBytes)) { + // Trigger UI update before sending + isSending[targetId] = true; + + await sendFile( + targetId: targetId, + filePath: image.path, + isGroup: isGroup, + ); + } else { + customSnackbar( + title: "File too large", + message: "Please select a file smaller than 10 MB.", + duration: 2, + ); + } + } + } catch (e) { + isSending[targetId] = false; + } + } + + Future sendImageFromGallery( + String targetId, { + bool isGroup = false, + }) async { + try { + final XFile? image = await _picker.pickImage(source: ImageSource.gallery); + if (image != null) { + final file = File(image.path); + final sizeInBytes = await file.length(); + if (_isFileSizeValid(sizeInBytes)) { + isSending[targetId] = true; + + await sendFile( + targetId: targetId, + filePath: image.path, + isGroup: isGroup, + ); + } else { + customSnackbar( + title: "File too large", + message: "Please select a file smaller than 10 MB.", + duration: 2, + ); + } + } + } catch (e) { + isSending[targetId] = false; + } + } + + Future sendVideo(String targetId, {bool isGroup = false}) async { + try { + final XFile? video = await _picker.pickVideo(source: ImageSource.gallery); + if (video != null) { + final file = File(video.path); + final sizeInBytes = await file.length(); + if (_isFileSizeValid(sizeInBytes)) { + // Trigger UI update before sending + isSending[targetId] = true; + + await sendFile( + targetId: targetId, + filePath: video.path, + isGroup: isGroup, + ); + } else { + customSnackbar( + title: "File too large", + message: "Please select a file smaller than 10 MB.", + duration: 2, + ); + } + } + } catch (e) { + isSending[targetId] = false; + } + } + + Future sendDocument(String targetId, {bool isGroup = false}) async { + try { + FilePickerResult? result = await FilePicker.platform.pickFiles(); + + if (result != null && result.files.single.path != null) { + final file = File(result.files.single.path!); + final sizeInBytes = await file.length(); + + if (_isFileSizeValid(sizeInBytes)) { + // Trigger UI update before sending + isSending[targetId] = true; + + await sendFile( + targetId: targetId, + filePath: file.path, + isGroup: isGroup, + ); + } else { + customSnackbar( + title: "File too large", + message: "Please select a file smaller than 10 MB.", + duration: 2, + ); + } + } + } catch (e) { + isSending[targetId] = false; + } + } + // Agora File Send Method............................................................................................ + + Future sendFile({ + required String targetId, + required String filePath, + required bool isGroup, + }) async { + try { + final file = File(filePath); + final int fileSize = await file.length(); + final String fileName = file.path.split('/').last; + + // Set sending state BEFORE creating message + isSending[targetId] = true; + + final ChatMessage msg = ChatMessage.createFileSendMessage( + targetId: targetId, + filePath: filePath, + displayName: fileName, + fileSize: fileSize, + ); + + msg.chatType = isGroup ? ChatType.GroupChat : ChatType.Chat; + + // Send the message + await ChatClient.getInstance.chatManager.sendMessage(msg); + + await Future.delayed(const Duration(milliseconds: 500)); + } on ChatError catch (e) { + logger.error( + "Send file message failed", + error: e, + stackTrace: StackTrace.current, + ); + customSnackbar( + title: "Send Failed", + message: "Failed to send file...", + duration: 3, + ); + } catch (e) { + logger.error( + "Unexpected error sending file", + error: e, + stackTrace: StackTrace.current, + ); + + customSnackbar( + title: "Send Failed", + message: "Failed to send file...", + duration: 3, + ); + } + } + + // Helper method to validate file size................................................................................ + bool _isFileSizeValid(int sizeInBytes) { + const maxSizeInBytes = 10 * 1024 * 1024; // 10 MB + return sizeInBytes <= maxSizeInBytes; + } + + //........................................................................................................... + + // File download functionality + Future downloadFile(ChatMessage message) async { + if (isDownloading[message.msgId] == true) return; + + try { + isDownloading[message.msgId] = true; + downloadProgress[message.msgId] = 0.0; + + String? remoteUrl; + String fileName = ''; + + // Get remote URL and filename based on message type + switch (message.body.type) { + case MessageType.IMAGE: + final imageBody = message.body as ChatImageMessageBody; + remoteUrl = imageBody.remotePath; + fileName = imageBody.displayName ?? 'image_${message.msgId}.jpg'; + break; + case MessageType.VIDEO: + final videoBody = message.body as ChatVideoMessageBody; + remoteUrl = videoBody.remotePath; + fileName = videoBody.displayName ?? 'video_${message.msgId}.mp4'; + break; + case MessageType.FILE: + final fileBody = message.body as ChatFileMessageBody; + remoteUrl = fileBody.remotePath; + fileName = fileBody.displayName ?? 'file_${message.msgId}'; + break; + default: + return; + } + + if (remoteUrl == null || remoteUrl.isEmpty) { + return; + } + + // Get downloads directory + final Directory? downloadsDir = await getExternalStorageDirectory(); + if (downloadsDir == null) { + logger.error( + "Could not access downloads directory", + error: Exception("Downloads directory is null"), + stackTrace: StackTrace.current, + ); + return; + } + + final String savePath = '${downloadsDir.path}/ChatDownloads/$fileName'; + final File saveFile = File(savePath); + + // Create directory if it doesn't exist + await saveFile.parent.create(recursive: true); + + // Download file with progress tracking + await _dio.download( + remoteUrl, + savePath, + onReceiveProgress: (received, total) { + if (total > 0) { + final progress = received / total; + downloadProgress[message.msgId] = progress; + } + }, + ); + + downloadProgress[message.msgId] = 1.0; + // Show success message or open file + customSnackbar( + title: "Download Complete", + message: "File saved to: $savePath", + ); + } catch (e) { + logger.error( + "Download failed for message ${message.msgId}", + error: e, + stackTrace: StackTrace.current, + ); + + customSnackbar( + title: "Download Failed", + message: "Could not download file: $e", + ); + } finally { + isDownloading[message.msgId] = false; + } + } + + // Check if file is already downloaded + Future isFileDownloaded(ChatMessage message) async { + try { + final Directory? downloadsDir = await getExternalStorageDirectory(); + if (downloadsDir == null) return false; + + String fileName = ''; + switch (message.body.type) { + case MessageType.IMAGE: + final imageBody = message.body as ChatImageMessageBody; + fileName = imageBody.displayName ?? 'image_${message.msgId}.jpg'; + break; + case MessageType.VIDEO: + final videoBody = message.body as ChatVideoMessageBody; + fileName = videoBody.displayName ?? 'video_${message.msgId}.mp4'; + break; + case MessageType.FILE: + final fileBody = message.body as ChatFileMessageBody; + fileName = fileBody.displayName ?? 'file_${message.msgId}'; + break; + default: + return false; + } + + final String filePath = '${downloadsDir.path}/ChatDownloads/$fileName'; + return File(filePath).existsSync(); + } catch (e) { + logger.error( + "Error checking if file is downloaded", + error: e, + stackTrace: StackTrace.current, + ); + return false; + } + } + + // Open downloaded file + Future openFile(ChatMessage message) async { + try { + final Directory? downloadsDir = await getExternalStorageDirectory(); + if (downloadsDir == null) return; + + String fileName = ''; + switch (message.body.type) { + case MessageType.IMAGE: + final imageBody = message.body as ChatImageMessageBody; + fileName = imageBody.displayName ?? 'image_${message.msgId}.jpg'; + break; + case MessageType.VIDEO: + final videoBody = message.body as ChatVideoMessageBody; + fileName = videoBody.displayName ?? 'video_${message.msgId}.mp4'; + break; + case MessageType.FILE: + final fileBody = message.body as ChatFileMessageBody; + fileName = fileBody.displayName ?? 'file_${message.msgId}'; + break; + default: + return; + } + + final String filePath = '${downloadsDir.path}/ChatDownloads/$fileName'; + + if (File(filePath).existsSync()) { + customSnackbar(title: "File Location", message: filePath); + } else { + customSnackbar( + title: "File Not Found", + message: "Please download the file first", + ); + } + } catch (e) { + logger.error( + "Error opening file", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + // Listener for Send Message, Receive message............................................................................ + void addListeners() { + ChatClient.getInstance.chatManager.addMessageEvent( + 'chat_listener', + ChatMessageEvent( + onSuccess: (msgId, msg) { + final currentUserId = ChatClient.getInstance.currentUserId; + if (msg.from == currentUserId) { + final conversationKey = msg.to!; + // Update messages map.............................................................. + final currentList = messagesMap[conversationKey] ?? []; + final updatedList = [...currentList, msg]; + messagesMap[conversationKey] = updatedList; + lastMessages[conversationKey] = msg; + + // Update recent conversations order (but only for Chat and GroupChat)............... + + if (msg.chatType == ChatType.Chat || + msg.chatType == ChatType.GroupChat) { + updateRecentConversationsOrder(conversationKey); + } + // Stop loading state when File is successfully sent................................. + if (isSending[conversationKey] == true) { + isSending[conversationKey] = false; + } + } + }, + onProgress: (msgId, progress) {}, + onError: (msgId, msg, error) { + logger.error( + "Message send error: $msgId", + error: error, + stackTrace: StackTrace.current, + ); + + if (msg.to != null) { + isSending[msg.to!] = false; + isSending.refresh(); + } + }, + ), + ); + ChatClient.getInstance.chatManager.addEventHandler( + "receive_chat", + ChatEventHandler( + onMessagesReceived: (messages) async { + final currentUserId = ChatClient.getInstance.currentUserId; + + for (final msg in messages) { + final conversationKey = + msg.chatType == ChatType.GroupChat + ? msg.to! + : (msg.from == currentUserId ? msg.to! : msg.from!); + + // Skip messages that are not Chat or GroupChat + if (msg.chatType != ChatType.Chat && + msg.chatType != ChatType.GroupChat) { + continue; + } + // Fetch group info if needed + if (msg.chatType == ChatType.GroupChat) { + await fetchGroupInfo(msg.to!); + } + // Append new message to current list + final currentList = messagesMap[conversationKey] ?? []; + final updatedList = [...currentList, msg]; + messagesMap[conversationKey] = updatedList; + + // Update last message + lastMessages[conversationKey] = msg; + + final isIncoming = msg.from != currentUserId; + + if (isIncoming) { + try { + final convo = await ChatClient.getInstance.chatManager + .getConversation( + conversationKey, + type: + msg.chatType == ChatType.GroupChat + ? ChatConversationType.GroupChat + : ChatConversationType.Chat, + ); + + if (convo != null) { + final unread = await convo.unreadCount(); + unreadCounts[conversationKey] = unread; + } + } catch (e) { + logger.error( + "Failed to get unread count for $conversationKey", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + // Reorder recent conversations + updateRecentConversationsOrder(conversationKey); + + // Auto-send read receipt if this user is selected in chat + if (msg.from == selectedUserId.value) { + ChatClient.getInstance.chatManager.sendMessageReadAck(msg); + } + } + }, + ), + ); + + ChatClient.getInstance.chatManager.addEventHandler( + "delivery_message_listener", + ChatEventHandler( + onMessagesDelivered: (messages) { + for (final msg in messages) { + final conversationKey = msg.to ?? msg.from!; + updateMessageStatus(msg.msgId, conversationKey, delivered: true); + } + }, + ), + ); + + ChatClient.getInstance.chatManager.addEventHandler( + "read_message_listener", + ChatEventHandler( + onMessagesRead: (messages) { + for (final msg in messages) { + final conversationKey = msg.to ?? msg.from!; + updateMessageStatus(msg.msgId, conversationKey, read: true); + } + }, + ), + ); + + ChatClient.getInstance.chatManager.addEventHandler( + "conversation_read_listener", + ChatEventHandler( + onConversationRead: (from, to) { + // Update your message list for this conversation + final messages = messagesMap[to]; + if (messages != null) { + for (final msg in messages) { + msg.hasReadAck = true; + } + messagesMap[to] = List.from(messages); + } + }, + ), + ); + + ChatClient.getInstance.addConnectionEventHandler( + 'connection_handler', + ConnectionEventHandler( + onConnected: () async { + try { + await ChatClient.getInstance.presenceManager.publishPresence( + "online", + ); + } catch (e) { + logger.error( + "Failed to publish presence", + error: e, + stackTrace: StackTrace.current, + ); + } + }, + onDisconnected: () {}, + onTokenWillExpire: () async {}, + onTokenDidExpire: () {}, + ), + ); + } + + void updateMessageStatus( + String msgId, + String conversationId, { + bool delivered = false, + bool read = false, + }) { + final currentList = messagesMap[conversationId]; + if (currentList == null) return; + + final updatedList = + currentList.map((msg) { + if (read) msg.hasReadAck = true; + if (delivered) msg.hasDeliverAck = true; + + return msg; + }).toList(); + + messagesMap[conversationId] = updatedList; + } + + // Helper method to update conversation order in recent conversations .................................................... + void updateRecentConversationsOrder(String conversationKey) { + final currentConversations = List.from( + recentConversations, + ); + + // Find the conversation and move it to top + final existingIndex = currentConversations.indexWhere( + (conv) => conv.id == conversationKey, + ); + + if (existingIndex != -1) { + // Move existing conversation to top + final conversation = currentConversations.removeAt(existingIndex); + currentConversations.insert(0, conversation); + recentConversations.value = currentConversations; + } else { + // If conversation doesn't exist in recent list, reload recent chats + loadRecentChats(); + } + } + + Future sendTextMessage( + String targetId, + String content, { + bool isGroup = false, + }) async { + final msg = ChatMessage.createTxtSendMessage( + targetId: targetId, + content: content, + )..chatType = isGroup ? ChatType.GroupChat : ChatType.Chat; + + try { + await ChatClient.getInstance.chatManager.sendMessage(msg); + } on ChatError catch (e) { + logger.error( + "Send message failed", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + RxBool isGroupChattt = false.obs; + + // Load initial messages for a conversation (most recent messages) + // Future> loadMessages(String conversationId) async { + // print("Loading initial messages for conversation: $conversationId"); + // // Determine conversation type based on isGroupChattt flag + // final conversationType = + // isGroupChattt.value + // ? ChatConversationType.GroupChat + // : ChatConversationType.Chat; + + // print( + // "Loading as ${conversationType == ChatConversationType.GroupChat ? 'GROUP' : 'SINGLE'} chat", + // ); + + // final conv = await ChatClient.getInstance.chatManager.getConversation( + // conversationId, + // type: + // isGroupChattt.value + // ? ChatConversationType.GroupChat + // : ChatConversationType.Chat, + // ); + + // if (conv == null) { + // log("No conversation found for $conversationId"); + // return []; + // } + + // try { + // // Load recent messages from local database first + // final messages = await conv.loadMessages(startMsgId: '', loadCount: 20); + + // // Sort messages by timestamp to ensure proper order + // messages.sort((a, b) => a.serverTime.compareTo(b.serverTime)); + + // messagesMap[conversationId] = messages; + + // // Update last message if messages exist + // if (messages.isNotEmpty) { + // lastMessages[conversationId] = messages.last; + // } + + // // Initialize pagination state + // cursors[conversationId] = ''; + // isLoadingMore[conversationId] = false; + // hasMoreMessages[conversationId] = true; + + // // Load more messages from server if local messages are less than expected + // if (messages.length < 20) { + // await loadMoreMessages(conversationId); + // } + + // return messages; + // } on ChatError catch (e) { + // log("Load messages failed: ${e.description}"); + // return []; + // } + // } + //........Above one is Original Methos ( Till 12th December 2025)......................................................................... + + Future> loadMessages(String conversationId) async { + // Determine conversation type based on isGroupChattt flag + final conversationType = + isGroupChattt.value + ? ChatConversationType.GroupChat + : ChatConversationType.Chat; + + final conv = await ChatClient.getInstance.chatManager.getConversation( + conversationId, + type: conversationType, + ); + + try { + List messages = []; + + // Try loading from local first + if (conv != null) { + messages = await conv.loadMessages(startMsgId: '', loadCount: 50); + } + + // Sort messages by timestamp to ensure proper order + messages.sort((a, b) => a.serverTime.compareTo(b.serverTime)); + + // For group messages, fetch user info for all senders + if (isGroupChattt.value && messages.isNotEmpty) { + final Set senderIds = {}; + for (final msg in messages) { + if (msg.from != null && + msg.from != ChatClient.getInstance.currentUserId) { + senderIds.add(msg.from!); + } + } + + // Fetch user info in parallel for better performance + for (final senderId in senderIds) { + fetchUserInfo(senderId); + } + } + + messagesMap[conversationId] = messages; + + // Update last message if messages exist + if (messages.isNotEmpty) { + lastMessages[conversationId] = messages.last; + } + + // Initialize pagination state + cursors[conversationId] = ''; + isLoadingMore[conversationId] = false; + hasMoreMessages[conversationId] = true; + + // Load more messages from server if local messages are less than expected or if it's a group chat + if (messages.length < 20 || isGroupChattt.value) { + await loadMoreMessages(conversationId); + } + + return messagesMap[conversationId] ?? []; + } on ChatError catch (e) { + logger.error( + "Load messages failed", + error: e, + stackTrace: StackTrace.current, + ); + return []; + } + } + + /// Load more historical messages with pagination + Future loadMoreMessages(String conversationId) async { + if (isLoadingMore[conversationId] == true || + hasMoreMessages[conversationId] == false) { + return; + } + + isLoadingMore[conversationId] = true; + + try { + final ChatConversationType conversationType = + isGroupChattt.value + ? ChatConversationType.GroupChat + : ChatConversationType.Chat; + // Configure fetch options + final FetchMessageOptions options = FetchMessageOptions( + from: conversationId, + direction: ChatSearchDirection.Up, + needSave: true, // Save to local database + ); + + final ChatCursorResult result = await ChatClient + .getInstance + .chatManager + .fetchHistoryMessagesByOption( + conversationId, + conversationType, + options: options, + cursor: cursors[conversationId] ?? '', + pageSize: 20, // Load 20 messages at a time + ); + + final List newMessages = result.data ?? []; + final String? nextCursor = result.cursor; + + if (newMessages.isNotEmpty) { + // Get existing messages + final existingMessages = messagesMap[conversationId] ?? []; + + // Sort new messages by timestamp + newMessages.sort((a, b) => a.serverTime.compareTo(b.serverTime)); + + // Merge with existing messages (new messages go to the beginning) + final List allMessages = [ + ...newMessages, + ...existingMessages, + ]; + + // Remove duplicates based on message ID + final Map uniqueMessages = {}; + for (final msg in allMessages) { + uniqueMessages[msg.msgId] = msg; + } + + // Convert back to list and sort by timestamp + final List finalMessages = + uniqueMessages.values.toList() + ..sort((a, b) => a.serverTime.compareTo(b.serverTime)); + + // Update messages map + messagesMap[conversationId] = finalMessages; + + // Update cursor for next pagination + cursors[conversationId] = nextCursor ?? ''; + + // Check if there are more messages to load + hasMoreMessages[conversationId] = newMessages.length == 20; + } else { + // No more messages available + hasMoreMessages[conversationId] = false; + } + } on ChatError catch (e) { + logger.error( + "Load more messages failed", + error: e, + stackTrace: StackTrace.current, + ); + hasMoreMessages[conversationId] = false; + } finally { + isLoadingMore[conversationId] = false; + await markAllMessagesAsRead(conversationId); + unreadCounts[conversationId] = 0; + } + } + + Future loadRecentChats() async { + try { + List localConversations = + await ChatClient.getInstance.chatManager.loadAllConversations(); + + // Filter to include only Chat and GroupChat conversations + localConversations = + localConversations.where((conversation) { + return conversation.type == ChatConversationType.Chat || + conversation.type == ChatConversationType.GroupChat; + }).toList(); + + // If no local conversations (new device), fetch from server...................... + if (localConversations.isEmpty) { + await _fetchConversationsFromServer(); + // Load again after server fetch + localConversations = + localConversations.where((conversation) { + return conversation.type == ChatConversationType.Chat || + conversation.type == ChatConversationType.GroupChat; + }).toList(); + } + // ................................................................................ + // Sort conversations by last message timestamp.................................... + localConversations.sort((a, b) { + final aLastMessage = lastMessages[a.id]; + final bLastMessage = lastMessages[b.id]; + + if (aLastMessage == null && bLastMessage == null) return 0; + if (aLastMessage == null) return 1; + if (bLastMessage == null) return -1; + + return bLastMessage.serverTime.compareTo(aLastMessage.serverTime); + }); + + for (final conversation in localConversations) { + final convType = conversation.type; + //For showing Last Message + final messages = await conversation.loadMessages( + startMsgId: '', + loadCount: 1, + ); + + if (messages.isNotEmpty) { + lastMessages[conversation.id] = messages.last; + messagesMap[conversation.id] = messages; + } + + final unread = await conversation.unreadCount(); + unreadCounts[conversation.id] = unread; + + if (convType == ChatConversationType.GroupChat) { + await fetchGroupInfo(conversation.id); + } else if (convType == ChatConversationType.Chat) { + await fetchUserInfo(conversation.id); + } + } + + recentConversations.value = localConversations; + } on ChatError catch (e) { + logger.error( + "Failed to load recent chats", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + //............................................................................................ + // Below Method is for fetching Server site conversation...................................... + //............................................................................................ + Future _fetchConversationsFromServer() async { + try { + // Get current user ID + final currentUserId = ChatClient.getInstance.currentUserId; + if (currentUserId == null) { + logger.error( + "Failed to fetch conversations: Current user ID is null. User may not be logged in or session expired.", + error: Exception("Current user ID is null"), + stackTrace: StackTrace.current, + ); + return; + } + // Fetch both Chat and GroupChat conversations + await _fetchServerMessageHistory(ChatConversationType.Chat); + await _fetchServerMessageHistory(ChatConversationType.GroupChat); + } on ChatError catch (e) { + // Silently ignore error 201 - session not ready yet + if (e.code == 201) { + logger.warning( + "Session not ready for server fetch (error 201), using local data only", + ); + return; + } + logger.error( + "Failed to fetch conversations from server", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + // Fetch message history from server to populate local conversations + Future _fetchServerMessageHistory(ChatConversationType type) async { + try { + final currentUserId = ChatClient.getInstance.currentUserId; + if (currentUserId == null) return; + final ChatCursorResult result = await ChatClient + .getInstance + .chatManager + .fetchHistoryMessagesByOption( + currentUserId, + type, + options: FetchMessageOptions( + direction: ChatSearchDirection.Up, + needSave: true, // Important: Save to local database + ), + cursor: '', + pageSize: 50, + ); + + final List messages = result.data ?? []; + + // Group messages by conversation + final Map> conversationMessages = {}; + + for (final message in messages) { + // Skip messages that are not Chat or GroupChat + if (type == ChatConversationType.Chat && + message.chatType != ChatType.Chat) { + continue; + } + if (type == ChatConversationType.GroupChat && + message.chatType != ChatType.GroupChat) { + continue; + } + + String conversationId; + + if (type == ChatConversationType.GroupChat) { + // For group chats, use the 'to' field which contains the group ID + conversationId = message.to!; + } else { + // For single chats, use the other user's ID + conversationId = + message.from == currentUserId ? message.to! : message.from!; + } + + if (!conversationMessages.containsKey(conversationId)) { + conversationMessages[conversationId] = []; + } + conversationMessages[conversationId]!.add(message); + } + + // Process each conversation + for (final entry in conversationMessages.entries) { + final conversationId = entry.key; + final messages = entry.value; + + // Sort messages by timestamp + messages.sort((a, b) => a.serverTime.compareTo(b.serverTime)); + + // Update local data + messagesMap[conversationId] = messages; + lastMessages[conversationId] = messages.last; + + // Get conversation to update unread count + final conversation = await ChatClient.getInstance.chatManager + .getConversation(conversationId, type: ChatConversationType.Chat); + + if (conversation != null) { + final unread = await conversation.unreadCount(); + unreadCounts[conversationId] = unread; + } + // Fetch additional info based on type + if (type == ChatConversationType.GroupChat) { + await fetchGroupInfo(conversationId); + + // Fetch user info for group message senders + final Set senderIds = {}; + for (final msg in messages) { + if (msg.from != null && msg.from != currentUserId) { + senderIds.add(msg.from!); + } + } + for (final senderId in senderIds) { + fetchUserInfo(senderId); + } + } else { + await fetchUserInfo(conversationId); + } + } + } on ChatError catch (e) { + logger.error( + "Failed to fetch server message history", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + Future loadAllMessages(String conversationId) async { + await loadMessages(conversationId); + while (hasMoreMessages[conversationId] == true) { + await loadMoreMessages(conversationId); + await Future.delayed(const Duration(milliseconds: 100)); + } + } + + Future markAllMessagesAsRead(String conversationId) async { + try { + final conv = await ChatClient.getInstance.chatManager.getConversation( + conversationId, + type: + isGroupChattt.value + ? ChatConversationType.GroupChat + : ChatConversationType.Chat, + ); + + if (conv != null) { + await conv.markAllMessagesAsRead(); + unreadCounts[conversationId] = 0; + + final messages = messagesMap[conversationId] ?? []; + if (messages.isNotEmpty) { + final lastMessage = messages.last; + try { + await ChatClient.getInstance.chatManager.sendConversationReadAck( + conversationId, + ); + await ChatClient.getInstance.chatManager.sendMessageReadAck( + lastMessage, + ); + } catch (e) { + logger.error( + "Failed to send read receipt", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + final index = recentConversations.indexWhere( + (c) => c.id == conversationId, + ); + if (index != -1) { + final updatedConv = await ChatClient.getInstance.chatManager + .getConversation(conversationId, type: ChatConversationType.Chat); + if (updatedConv != null) { + recentConversations[index] = updatedConv; + } + } + } + } on ChatError catch (e) { + logger.error( + "Failed to mark messages as read", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + Future logout() async { + try { + await ChatClient.getInstance.logout(true); + messagesMap.clear(); + lastMessages.clear(); + unreadCounts.clear(); + recentConversations.clear(); + cursors.clear(); + isLoadingMore.clear(); + hasMoreMessages.clear(); + downloadProgress.clear(); + isDownloading.clear(); + } catch (e) { + logger.error( + "Agora logout failed", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + final RxMap userInfoMap = {}.obs; + final RxMap groupInfoMap = {}.obs; + + Future fetchUserInfo(String userId) async { + if (userInfoMap.containsKey(userId)) return; + + try { + final result = await ChatClient.getInstance.userInfoManager + .fetchUserInfoById([userId]); + if (result.isNotEmpty) { + userInfoMap[userId] = result[userId]!; + } + } catch (e) { + logger.error( + "Failed to fetch user info for $userId", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + Future fetchGroupInfo(String groupId) async { + if (groupInfoMap.containsKey(groupId)) return; + + try { + // First try to get group from specification (more detailed info) + final groupSpec = await ChatClient.getInstance.groupManager + .fetchGroupInfoFromServer(groupId); + groupInfoMap[groupId] = groupSpec; + return; + } catch (e) { + // Silently fallback to local cache + } + + // Fallback: Get group from local cache + final group = await ChatClient.getInstance.groupManager.getGroupWithId( + groupId, + ); + if (group != null) { + groupInfoMap[groupId] = group; + return; + } + + // Final fallback: Try to get from joined groups list + try { + final groupList = + await ChatClient.getInstance.groupManager.getJoinedGroups(); + final group = groupList.firstWhereOrNull((g) => g.groupId == groupId); + if (group != null) { + groupInfoMap[groupId] = group; + } + } catch (e2, stackTrace) { + logger.error( + "Failed to get group info from joined groups list as fallback", + error: e2, + stackTrace: stackTrace, + ); + } + } + + //........................................................................................ + String getFileExtension(String fileName) { + final parts = fileName.split('.'); + return (parts.length > 1) ? '.${parts.last}' : ''; + } + + bool isImageExtension(String ext) { + const imageExts = ['.jpg', '.jpeg', '.png', '.webp', '.heic']; + return imageExts.contains(ext); + } + + bool isVideoExtension(String ext) { + const videoExts = ['.mp4', '.mov', '.avi', '.mkv', '.webm', '.ogg']; + return videoExts.contains(ext); + } + + bool isDocumentExtension(String ext) { + const docExts = [ + // Text & documents + '.txt', '.rtf', '.pdf', '.doc', '.docx', '.odt', '.pages', + // Spreadsheets + '.xls', '.xlsx', '.csv', '.ods', '.numbers', + // Presentations + '.ppt', '.pptx', '.odp', '.key', + // E-books + '.epub', '.mobi', + + // Images in documents + '.webp', '.gif', '.tiff', '.bmp', '.ico', '.svg', + ]; + return docExts.contains(ext.toLowerCase()); + } + //..Send Notification Methods.................................................................................... + + var isSendingChatNotification = false.obs; + var isSendingGroupChatNotification = false.obs; + + Future sendChatNotification({ + required String notificationTitle, + required int notificationType, + required String receiverId, + required String notificationMessage, + }) async { + try { + isSendingChatNotification.value = true; + + var body = { + "notificationTitle": notificationTitle, + "notificationType": notificationType, + "receiverId": receiverId, + "notificationMessage": notificationMessage, + }; + final response = await ApiBase.postRequest( + extendedURL: '/api/Notifications/sent-chat-notification', + body: body, + ); + if (response.statusCode != 200) { + logger.error( + 'sendChatNotification failed with status ${response.statusCode}', + extras: { + 'extras statusCode': response.statusCode.toString(), + 'extras responseBody': response.body, + }, + error: {'error body': response.body.toString()}, + ); + return; + } + } catch (e) { + logger.error( + '"catch chat notification :" Failed to send group chat notification', + error: e, + stackTrace: StackTrace.current, + ); + } finally { + isSendingChatNotification.value = false; + } + } + + /// Send group chat notification to a tribe + Future sendGroupChatNotification({ + required String notificationTitle, + required int notificationType, + required String tribeId, + required String notificationMessage, + }) async { + isSendingGroupChatNotification.value = true; + try { + var body = { + "notificationTitle": notificationTitle, + "notificationType": notificationType, + "tribeId": tribeId, + "notificationMessage": notificationMessage, + }; + + final response = await ApiBase.postRequest( + extendedURL: '/api/Notifications/sent-group-chat-notification', + body: body, + ); + if (response.statusCode != 200) { + logger.error( + 'sendGroupChatNotification failed with status ${response.statusCode}', + extras: { + 'extras statusCode': response.statusCode.toString(), + 'extras responseBody': response.body, + }, + error: {'error body': response.body.toString()}, + ); + return; + } + } catch (e) { + logger.error( + '"catch chat notification :" Failed to send group chat notification', + error: e, + stackTrace: StackTrace.current, + ); + } finally { + isSendingGroupChatNotification.value = false; + } + } + + //....You are no longer friend api call................................................ + RxBool isMyFriend = false.obs; + RxBool isMyFriendCheckLoading = false.obs; + + Future friendCheck({required String connectedAgoraUserID}) async { + isMyFriendCheckLoading(true); + try { + final response = await ApiBase.getRequest( + extendedURL: + '/api/Socials/get-user-connection-exist-agora/$connectedAgoraUserID', + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + final decoded = jsonDecode(response.body); + isMyFriend.value = decoded['data'] == true; + } else { + isMyFriend.value = false; + } + } catch (e) { + logger.error( + "Error in friendCheck", + error: e, + stackTrace: StackTrace.current, + ); + isMyFriend.value = false; + } finally { + isMyFriendCheckLoading(false); + } + } + + //...................................................................................... + //............................................................................................................ + //............................................................................................................ + //..Voice recording related Variables and Methods............................................................. + //............................................................................................................ + //............................................................................................................ + + RecorderController? recorderController; + final RxBool isRecording = false.obs; + final RxString recordingPath = ''.obs; + final RxInt recordingDuration = 0.obs; + Timer? durationTimer; + + // Voice playback tracking + final RxMap playerControllers = + {}.obs; + final RxMap isPlayingVoice = {}.obs; + final RxMap voiceCurrentPosition = {}.obs; + final RxMap voiceMaxDuration = {}.obs; + final RxBool isRecordingPaused = false.obs; + Timer? recordingTimer; + final RxMap hasCompleted = {}.obs; + //............................................................................................................ + //............................................................................................................ + + // Pause recording (for app lifecycle changes) + Future pauseRecording() async { + try { + if (recorderController != null && isRecording.value) { + await recorderController!.pause(); + durationTimer?.cancel(); + isRecordingPaused.value = true; + } + } catch (e) { + logger.error( + "Failed to pause recording", + error: e, + stackTrace: StackTrace.current, + ); + // If pause fails, cancel the recording to be safe + cancelRecording(); + } + } + + //............................................................................................................ + //............................................................................................................ + // method to toggle pause/resume + void togglePauseRecording() async { + if (recorderController == null) return; + + if (isRecordingPaused.value) { + await recorderController!.record(); + isRecordingPaused.value = false; + _startDurationTimer(); + } else { + // Pause recording + await recorderController!.pause(); + isRecordingPaused.value = true; + durationTimer?.cancel(); + } + } + + //............................................................................................................ + //............................................................................................................ + // Cancel recording + Future cancelRecording() async { + try { + if (recorderController != null && isRecording.value) { + await recorderController!.stop(); + durationTimer?.cancel(); + + // Delete the recorded file + if (recordingPath.value.isNotEmpty) { + final file = File(recordingPath.value); + if (file.existsSync()) { + file.deleteSync(); + } + } + + isRecording.value = false; + isRecordingPaused.value = false; + recordingPath.value = ''; + recordingDuration.value = 0; + } + } catch (e) { + logger.error( + "Failed to cancel recording", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + //............................................................................................................ + //............................................................................................................ + // Initialize recorder controller + + Future initializeRecorder() async { + recorderController = + RecorderController() + ..androidEncoder = AndroidEncoder.aac + ..androidOutputFormat = AndroidOutputFormat.mpeg4 + ..iosEncoder = IosEncoder.kAudioFormatMPEG4AAC + ..sampleRate = 44100; + } + + //............................................................................................................ + //............................................................................................................ + // Request microphone permission + + Future requestMicrophonePermission() async { + final status = await Permission.microphone.request(); + if (status.isGranted) { + return true; + } else if (status.isPermanentlyDenied) { + await openAppSettings(); + return false; + } + return false; + } + + //............................................................................................................ + //............................................................................................................ + // Start voice recording + + Future startRecording(String conversationId) async { + try { + final hasPermission = await requestMicrophonePermission(); + if (!hasPermission) { + customSnackbar( + title: "Permission Required", + message: "Microphone permission is required to record voice messages", + duration: 3, + ); + return; + } + + if (recorderController == null) { + await initializeRecorder(); + } + + // Get temporary directory for recording + final directory = await getTemporaryDirectory(); + final timestamp = DateTime.now().millisecondsSinceEpoch; + final path = '${directory.path}/voice_$timestamp.m4a'; + + // Start recording + await recorderController!.record(path: path); + + isRecording.value = true; + recordingPath.value = path; + recordingDuration.value = 0; + + // Update duration every second + _startDurationTimer(); + } catch (e) { + logger.error( + "Failed to start recording", + error: e, + stackTrace: StackTrace.current, + ); + customSnackbar( + title: "Recording Failed", + message: "Could not start recording. Please try again.", + duration: 3, + ); + } + } + + //............................................................................................................ + //............................................................................................................ + + void _startDurationTimer() { + durationTimer?.cancel(); // Cancel any existing timer first + durationTimer = Timer.periodic(const Duration(seconds: 1), (timer) { + if (isRecording.value && !isRecordingPaused.value) { + recordingDuration.value++; + } + }); + } + + //............................................................................................................ + //............................................................................................................ + // Stop recording and send + + Future stopAndSendRecording( + String targetId, { + bool isGroup = false, + }) async { + try { + if (recorderController == null || !isRecording.value) return; + + // Stop recording + final path = await recorderController!.stop(); + durationTimer?.cancel(); + + isRecording.value = false; + + if (path == null || path.isEmpty) { + return; + } + + // Check if recording is too short (less than 1 second) + if (recordingDuration.value < 1) { + customSnackbar( + title: "Recording Too Short", + message: "Please record for at least 1 second", + duration: 2, + ); + File(path).deleteSync(); + return; + } + + // Send voice message method call + await sendVoiceMessage( + targetId: targetId, + voicePath: path, + duration: recordingDuration.value, + isGroup: isGroup, + ); + + // Reset recording state + recordingPath.value = ''; + recordingDuration.value = 0; + } catch (e) { + logger.error( + "Failed to stop recording", + error: e, + stackTrace: StackTrace.current, + ); + isRecording.value = false; + customSnackbar( + title: "Send Failed", + message: "Could not send voice message", + duration: 3, + ); + } + } + + //............................................................................................................ + //............................................................................................................ + // Send voice message + + Future sendVoiceMessage({ + required String targetId, + required String voicePath, + required int duration, + required bool isGroup, + }) async { + try { + final file = File(voicePath); + if (!file.existsSync()) { + return; + } + + // Set sending state + isSending[targetId] = true; + + // Create voice message + final msg = ChatMessage.createVoiceSendMessage( + targetId: targetId, + filePath: voicePath, + duration: duration, + displayName: 'voice_${DateTime.now().millisecondsSinceEpoch}.m4a', + ); + + msg.chatType = isGroup ? ChatType.GroupChat : ChatType.Chat; + + // Send the message + await ChatClient.getInstance.chatManager.sendMessage(msg); + } on ChatError catch (e) { + logger.error( + "Send voice message failed", + error: e, + stackTrace: StackTrace.current, + ); + customSnackbar( + title: "Send Failed", + message: "Failed to send voice message", + duration: 2, + ); + } catch (e) { + logger.error( + "Unexpected error sending voice", + error: e, + stackTrace: StackTrace.current, + ); + customSnackbar( + title: "Send Failed", + message: "Failed to send voice message", + duration: 2, + ); + } finally { + isSending[targetId] = false; + } + } + + //............................................................................................................ + //............................................................................................................ + + Future getPlayerController( + String msgId, + String audioPath, + ) async { + if (playerControllers.containsKey(msgId)) { + return playerControllers[msgId]!; + } + + final controller = PlayerController(); + + try { + await controller.preparePlayer( + path: audioPath, + shouldExtractWaveform: true, + ); + + // Set up player state listener + controller.onPlayerStateChanged.listen((state) { + if (state == PlayerState.stopped) { + isPlayingVoice[msgId] = false; + hasCompleted[msgId] = true; + voiceCurrentPosition[msgId] = 0; + } else if (state == PlayerState.paused) { + isPlayingVoice[msgId] = false; + } else if (state == PlayerState.playing) { + isPlayingVoice[msgId] = true; + hasCompleted[msgId] = false; + } + }); + + // Set up position listener + controller.onCurrentDurationChanged.listen((duration) { + voiceCurrentPosition[msgId] = duration; + + // Check if playback completed + final maxDur = voiceMaxDuration[msgId] ?? 0; + if (maxDur > 0 && duration >= maxDur - 300) { + hasCompleted[msgId] = true; + } + }); + + // Get max duration + final maxDuration = await controller.getDuration(DurationType.max); + voiceMaxDuration[msgId] = maxDuration; + + playerControllers[msgId] = controller; + isPlayingVoice[msgId] = false; + voiceCurrentPosition[msgId] = 0; + hasCompleted[msgId] = false; + + return controller; + } catch (e) { + logger.error( + "Failed to prepare player for $msgId", + error: e, + stackTrace: StackTrace.current, + ); + rethrow; + } + } + + //............................................................................................................ + //............................................................................................................ + + Future refreshPlayer(String msgId, String audioPath) async { + // Dispose old player if exists + if (playerControllers.containsKey(msgId)) { + try { + await playerControllers[msgId]!.stopPlayer(); + playerControllers[msgId]!.dispose(); + playerControllers.remove(msgId); + } catch (e) { + logger.error( + "Error disposing old player", + error: e, + stackTrace: StackTrace.current, + ); + } + } + + // Clear state + isPlayingVoice.remove(msgId); + voiceCurrentPosition.remove(msgId); + voiceMaxDuration.remove(msgId); + hasCompleted.remove(msgId); + + // Create new player + return await getPlayerController(msgId, audioPath); + } + + //............................................................................................................ + //............................................................................................................ + //togglePlayVoice METHOD + + Future togglePlayVoice(ChatMessage message) async { + try { + final msgId = message.msgId; + final voiceBody = message.body as ChatVoiceMessageBody; + + String? audioPath; + + // Check local path first + if (voiceBody.localPath.isNotEmpty && + File(voiceBody.localPath).existsSync()) { + audioPath = voiceBody.localPath; + } else if (voiceBody.remotePath?.isNotEmpty == true) { + // Download if needed + final directory = await getTemporaryDirectory(); + final localPath = '${directory.path}/voice_${message.msgId}.m4a'; + + if (!File(localPath).existsSync()) { + await _dio.download(voiceBody.remotePath!, localPath); + } + audioPath = localPath; + } + + if (audioPath == null) { + customSnackbar( + title: "Playback Failed", + message: "Voice message not available", + duration: 2, + ); + return; + } + + // Get current player state + final isCurrentlyPlaying = isPlayingVoice[msgId] ?? false; + final hasPlayerCompleted = hasCompleted[msgId] ?? false; + + // Get player controller - refresh if completed + PlayerController controller; + if (hasPlayerCompleted && !isCurrentlyPlaying) { + controller = await refreshPlayer(msgId, audioPath); + } else { + controller = await getPlayerController(msgId, audioPath); + } + + // Toggle play/pause + if (isCurrentlyPlaying) { + await controller.pausePlayer(); + } else { + // Stop all other players first + for (final entry in playerControllers.entries) { + if (entry.key != msgId && isPlayingVoice[entry.key] == true) { + try { + await entry.value.pausePlayer(); + } catch (e) { + logger.error( + "Error pausing other player", + error: e, + stackTrace: StackTrace.current, + ); + } + } + } + + await controller.startPlayer(); + } + } catch (e) { + logger.error( + "Failed to toggle voice playback", + error: e, + stackTrace: StackTrace.current, + ); + customSnackbar( + title: "Playback Error", + message: "Could not play this voice message", + duration: 2, + ); + } + } + + //............................................................................................................ + //............................................................................................................ + + Future seekVoiceMessage(ChatMessage message, double percentage) async { + try { + final msgId = message.msgId; + final voiceBody = message.body as ChatVoiceMessageBody; + + String? audioPath; + + // Check local path first + if (voiceBody.localPath.isNotEmpty && + File(voiceBody.localPath).existsSync()) { + audioPath = voiceBody.localPath; + } else if (voiceBody.remotePath?.isNotEmpty == true) { + // Download if needed + final directory = await getTemporaryDirectory(); + final localPath = '${directory.path}/voice_${message.msgId}.m4a'; + + if (!File(localPath).existsSync()) { + await _dio.download(voiceBody.remotePath!, localPath); + } + audioPath = localPath; + } + + if (audioPath == null) { + return; + } + + // Get or create player controller + PlayerController controller; + if (playerControllers.containsKey(msgId)) { + controller = playerControllers[msgId]!; + } else { + controller = await getPlayerController(msgId, audioPath); + } + + // Calculate target position in milliseconds + final maxDuration = + voiceMaxDuration[msgId] ?? (voiceBody.duration) * 1000; + final targetPosition = (maxDuration * percentage).toInt(); + + // Seek to position + await controller.seekTo(targetPosition); + + // Update current position + voiceCurrentPosition[msgId] = targetPosition; + + // Start playing from this position if not already playing + if (isPlayingVoice[msgId] != true) { + // Stop all other players first + for (final entry in playerControllers.entries) { + if (entry.key != msgId && isPlayingVoice[entry.key] == true) { + try { + await entry.value.pausePlayer(); + } catch (e) { + // Silently ignore pause errors for other players + } + } + } + + await controller.startPlayer(); + } + } catch (e) { + logger.error( + "Failed to seek voice message", + error: e, + stackTrace: StackTrace.current, + ); + customSnackbar( + title: "Seek Error", + message: "Could not seek to position", + duration: 2, + ); + } + } + + // Dispose player for a message............................................................................................. + Future disposePlayer(String msgId) async { + if (playerControllers.containsKey(msgId)) { + playerControllers[msgId]!.dispose(); + playerControllers.remove(msgId); + isPlayingVoice.remove(msgId); + voiceCurrentPosition.remove(msgId); + voiceMaxDuration.remove(msgId); + hasCompleted.remove(msgId); + } + } + + // Format duration for display + String formatVoiceDuration(int seconds) { + final minutes = seconds ~/ 60; + final remainingSeconds = seconds % 60; + return '${minutes.toString().padLeft(1, '0')}:${remainingSeconds.toString().padLeft(2, '0')}'; + } + + //............................................................................................................ + //............................................................................................................ +} diff --git a/lib/screens/chat/views/call_ui.dart b/lib/screens/chat/views/call_ui.dart new file mode 100644 index 0000000..f09a8a5 --- /dev/null +++ b/lib/screens/chat/views/call_ui.dart @@ -0,0 +1,1367 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:agora_rtc_engine/agora_rtc_engine.dart'; +import 'package:onufitness/routes/route_constant.dart'; +import 'package:onufitness/services/agora/call_services.dart'; + +// Outgoing call screen - Shows when you initiate a call +class OutgoingCallScreen extends StatelessWidget { + final callService = AgoraCallService.instance; + + OutgoingCallScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + body: Obx(() { + // Auto navigate to call screen when call is accepted/connected + if (callService.callState.value == CallState.connected) { + WidgetsBinding.instance.addPostFrameCallback((_) { + Get.offNamed(RouteConstant.activeCallScreen); + }); + } + + return SafeArea( + child: Stack( + children: [ + if (callService.currentCallType.value == CallType.video) + SizedBox( + width: double.infinity, + height: double.infinity, + child: + callService.isVideoPreviewStarted.value + ? AgoraVideoView( + controller: VideoViewController( + rtcEngine: callService.rtcEngine!, + canvas: const VideoCanvas(uid: 0), + ), + ) + : Container( + color: Colors.grey[900], + child: Center( + child: CircularProgressIndicator( + color: Colors.white, + ), + ), + ), + ), + + // Gradient overlay for better text visibility + Container( + width: double.infinity, + height: double.infinity, + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Colors.black.withValues(alpha: 0.7), + Colors.transparent, + Colors.transparent, + Colors.black.withValues(alpha: 0.8), + ], + stops: [0.0, 0.3, 0.7, 1.0], + ), + ), + ), + + Column( + children: [ + // Top section with back button and encryption info + Padding( + padding: const EdgeInsets.all(16.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + children: [ + Icon(Icons.lock, color: Colors.white, size: 16.sp), + SizedBox(width: 4), + Text( + 'End-to-end encrypted', + style: TextStyle( + color: Colors.white, + fontSize: 12.sp, + fontWeight: FontWeight.w300, + ), + ), + ], + ), + ], + ), + ), + + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // Only show profile picture for voice calls + if (callService.currentCallType.value == CallType.voice) + CircleAvatar( + radius: 80.r, + backgroundColor: Colors.grey[800], + child: + callService.callerProfilePic.value.isNotEmpty + ? ClipOval( + child: Image.network( + callService.callerProfilePic.value, + fit: BoxFit.cover, + filterQuality: FilterQuality.low, + width: 160.r, + height: 160.r, + ), + ) + : Text( + callService.callerName.value.isNotEmpty + ? callService.callerName.value[0] + .toUpperCase() + : callService + .remoteUserId + .value + .isNotEmpty + ? callService.remoteUserId.value[0] + .toUpperCase() + : 'U', + style: TextStyle( + color: Colors.white, + fontSize: 42.sp, + fontWeight: FontWeight.bold, + ), + ), + ), + if (callService.currentCallType.value == CallType.voice) + SizedBox(height: 20), + + // Caller name + Text( + callService.callerName.value.isNotEmpty + ? callService.callerName.value + : callService.remoteUserId.value, + style: TextStyle( + color: Colors.white, + fontSize: 28, + fontWeight: FontWeight.w500, + shadows: [ + Shadow( + offset: Offset(0, 1), + blurRadius: 3, + color: Colors.black.withValues(alpha: 0.8), + ), + ], + ), + ), + SizedBox(height: 8), + Text( + callService.callState.value == CallState.calling + ? 'Calling...' + : callService.callState.value == CallState.idle + ? 'Call ended' + : 'Connecting...', + style: TextStyle( + color: Colors.white70, + fontSize: 16.sp, + shadows: [ + Shadow( + offset: Offset(0, 1), + blurRadius: 3, + color: Colors.black.withValues(alpha: 0.8), + ), + ], + ), + ), + ], + ), + ), + + // Call type indicator + Container( + margin: EdgeInsets.only(bottom: 40), + padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10), + decoration: BoxDecoration( + color: Colors.black.withValues(alpha: 0.6), + borderRadius: BorderRadius.circular(20), + border: Border.all( + color: Colors.white.withValues(alpha: 0.2), + width: 1, + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + callService.currentCallType.value == CallType.video + ? Icons.videocam + : Icons.call, + color: Colors.white, + size: 20, + ), + SizedBox(width: 8), + Text( + callService.currentCallType.value == CallType.video + ? 'Video calling' + : 'Voice calling', + style: TextStyle(color: Colors.white), + ), + ], + ), + ), + + // Call controls + Padding( + padding: EdgeInsets.only(bottom: 60), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + callActionButton( + icon: Icons.call_end, + color: Colors.red, + onTap: () async { + await callService.endCall(); + }, + ), + ], + ), + ), + ], + ), + ], + ), + ); + }), + ); + } + + Widget callActionButton({ + required IconData icon, + required Color color, + required VoidCallback onTap, + }) { + return GestureDetector( + onTap: onTap, + child: Container( + width: 70, + height: 70, + decoration: BoxDecoration( + color: color, + shape: BoxShape.circle, + boxShadow: [ + BoxShadow( + color: color.withValues(alpha: 0.4), + blurRadius: 10, + spreadRadius: 2, + ), + ], + ), + child: Icon(icon, color: Colors.white, size: 32), + ), + ); + } +} + +// Incoming call screen with animations - Shows when someone calls you +class IncomingCallScreen extends StatefulWidget { + const IncomingCallScreen({super.key}); + + @override + State createState() => _IncomingCallScreenState(); +} + +class _IncomingCallScreenState extends State + with TickerProviderStateMixin { + final callService = Get.find(); + + late AnimationController _pulseController; + late AnimationController _slideController; + late AnimationController _fadeController; + late AnimationController _rippleController; + + late Animation _pulseAnimation; + late Animation _slideAnimation; + late Animation _fadeAnimation; + late Animation _rippleAnimation; + + @override + void initState() { + super.initState(); + + // Pulse animation for profile picture + _pulseController = AnimationController( + duration: const Duration(milliseconds: 1500), + vsync: this, + )..repeat(reverse: true); + + _pulseAnimation = Tween(begin: 1.0, end: 1.05).animate( + CurvedAnimation(parent: _pulseController, curve: Curves.easeInOut), + ); + + // Slide animation for content + _slideController = AnimationController( + duration: const Duration(milliseconds: 600), + vsync: this, + )..forward(); + + _slideAnimation = Tween( + begin: const Offset(0, 0.3), + end: Offset.zero, + ).animate( + CurvedAnimation(parent: _slideController, curve: Curves.easeOutCubic), + ); + + // Fade animation + _fadeController = AnimationController( + duration: const Duration(milliseconds: 800), + vsync: this, + )..forward(); + + _fadeAnimation = Tween( + begin: 0.0, + end: 1.0, + ).animate(CurvedAnimation(parent: _fadeController, curve: Curves.easeIn)); + + // Ripple animation for buttons + _rippleController = AnimationController( + duration: const Duration(milliseconds: 2000), + vsync: this, + )..repeat(); + + _rippleAnimation = Tween(begin: 0.0, end: 1.0).animate( + CurvedAnimation(parent: _rippleController, curve: Curves.easeOut), + ); + } + + @override + void dispose() { + _pulseController.dispose(); + _slideController.dispose(); + _fadeController.dispose(); + _rippleController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + body: Obx(() { + final hasValidData = + callService.callerName.value.isNotEmpty && + callService.channelName.value.isNotEmpty; + + if (!hasValidData) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator(), + SizedBox(height: 15.h), + Text('Connecting...', style: TextStyle(color: Colors.white)), + ], + ), + ); + } + + if (callService.callState.value == CallState.connected) { + WidgetsBinding.instance.addPostFrameCallback((_) { + Get.offNamed(RouteConstant.activeCallScreen); + }); + } + + return SafeArea( + child: Stack( + children: [ + if (callService.currentCallType.value == CallType.video) + SizedBox( + width: double.infinity, + height: double.infinity, + child: + callService.isVideoPreviewStarted.value + ? AgoraVideoView( + controller: VideoViewController( + rtcEngine: callService.rtcEngine!, + canvas: const VideoCanvas(uid: 0), + ), + ) + : Container( + color: Colors.grey[900], + child: Center( + child: CircularProgressIndicator( + color: Colors.white, + ), + ), + ), + ), + + Container( + width: double.infinity, + height: double.infinity, + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Colors.black.withValues(alpha: 0.7), + Colors.transparent, + Colors.transparent, + Colors.black.withValues(alpha: 0.9), + ], + stops: [0.0, 0.3, 0.6, 1.0], + ), + ), + ), + + FadeTransition( + opacity: _fadeAnimation, + child: Column( + children: [ + Padding( + padding: const EdgeInsets.all(16.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + children: [ + Icon( + Icons.lock, + color: Colors.white, + size: 16.sp, + ), + SizedBox(width: 4), + Text( + 'End-to-end encrypted', + style: TextStyle( + color: Colors.white, + fontSize: 12.sp, + fontWeight: FontWeight.w300, + ), + ), + ], + ), + ], + ), + ), + + Expanded( + child: SlideTransition( + position: _slideAnimation, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // Animated call type indicator + TweenAnimationBuilder( + tween: Tween(begin: 0.0, end: 1.0), + duration: Duration(milliseconds: 600), + curve: Curves.elasticOut, + builder: (context, value, child) { + return Transform.scale( + scale: value, + child: Container( + padding: EdgeInsets.symmetric( + horizontal: 16, + vertical: 8, + ), + decoration: BoxDecoration( + color: Colors.black.withValues( + alpha: 0.6, + ), + borderRadius: BorderRadius.circular(20), + border: Border.all( + color: Colors.white.withValues( + alpha: 0.2, + ), + width: 1, + ), + ), + child: Text( + 'Incoming ${callService.currentCallType.value.name} call', + style: TextStyle( + color: Colors.white, + fontSize: 14, + fontWeight: FontWeight.w400, + ), + ), + ), + ); + }, + ), + SizedBox(height: 40), + + // Animated profile picture with pulse and ripples + if (callService.currentCallType.value == + CallType.voice) + Stack( + alignment: Alignment.center, + children: [ + // Outer ripple effect + AnimatedBuilder( + animation: _rippleAnimation, + builder: (context, child) { + return Container( + width: + 200 + (_rippleAnimation.value * 40), + height: + 200 + (_rippleAnimation.value * 40), + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: Colors.white.withValues( + alpha: + 0.3 * + (1 - _rippleAnimation.value), + ), + width: 2, + ), + ), + ); + }, + ), + // Inner ripple effect + AnimatedBuilder( + animation: _rippleAnimation, + builder: (context, child) { + return Container( + width: + 180 + (_rippleAnimation.value * 30), + height: + 180 + (_rippleAnimation.value * 30), + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: Colors.white.withValues( + alpha: + 0.5 * + (1 - _rippleAnimation.value), + ), + width: 2, + ), + ), + ); + }, + ), + // Pulsing profile picture + ScaleTransition( + scale: _pulseAnimation, + child: CircleAvatar( + radius: 80, + backgroundColor: Colors.grey[800], + backgroundImage: + callService + .callerProfilePic + .value + .isNotEmpty + ? NetworkImage( + callService + .callerProfilePic + .value, + ) + : null, + child: + callService + .callerProfilePic + .value + .isEmpty + ? Text( + callService + .callerName + .value + .isNotEmpty + ? callService + .callerName + .value[0] + .toUpperCase() + : callService + .remoteUserId + .value + .isNotEmpty + ? callService + .remoteUserId + .value[0] + .toUpperCase() + : 'U', + style: TextStyle( + color: Colors.white, + fontSize: 48, + fontWeight: FontWeight.bold, + ), + ) + : null, + ), + ), + ], + ), + SizedBox(height: 20), + + // Caller name with fade-in + Text( + callService.callerName.value.isNotEmpty + ? callService.callerName.value + : callService.remoteUserId.value, + style: TextStyle( + color: Colors.white, + fontSize: 28, + fontWeight: FontWeight.w400, + ), + ), + SizedBox(height: 30), + + // Call type indicator with icon animation + TweenAnimationBuilder( + tween: Tween(begin: 0.0, end: 1.0), + duration: Duration(milliseconds: 800), + curve: Curves.elasticOut, + builder: (context, value, child) { + return Transform.scale( + scale: value, + child: Container( + padding: EdgeInsets.symmetric( + horizontal: 20, + vertical: 10, + ), + decoration: BoxDecoration( + color: Colors.grey[900], + borderRadius: BorderRadius.circular(20), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + callService.currentCallType.value == + CallType.video + ? Icons.videocam + : Icons.call, + color: Colors.white, + size: 20, + ), + SizedBox(width: 8), + Text( + callService.currentCallType.value == + CallType.video + ? 'Video Call' + : 'Voice Call', + style: TextStyle(color: Colors.white), + ), + ], + ), + ), + ); + }, + ), + ], + ), + ), + ), + + // Animated call control buttons + Padding( + padding: EdgeInsets.only(bottom: 60), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + // Reject button with ripple + TweenAnimationBuilder( + tween: Tween(begin: 0.0, end: 1.0), + duration: Duration(milliseconds: 500), + curve: Curves.elasticOut, + builder: (context, value, child) { + return Transform.scale( + scale: value, + child: _buildAnimatedButton( + icon: Icons.call_end, + color: Colors.red, + onTap: () async { + await callService.rejectCall(); + }, + ), + ); + }, + ), + // Accept button with ripple and bounce + TweenAnimationBuilder( + tween: Tween(begin: 0.0, end: 1.0), + duration: Duration(milliseconds: 700), + curve: Curves.elasticOut, + builder: (context, value, child) { + return Transform.scale( + scale: value, + child: _buildAnimatedButton( + icon: Icons.call, + color: Colors.green, + onTap: () { + callService.acceptCall( + callType: + callService.currentCallType.value, + ); + }, + isPrimary: true, + ), + ); + }, + ), + ], + ), + ), + ], + ), + ), + ], + ), + ); + }), + ); + } + + Widget _buildAnimatedButton({ + required IconData icon, + required Color color, + required VoidCallback onTap, + bool isPrimary = false, + }) { + return Stack( + alignment: Alignment.center, + children: [ + // Pulsing ring for accept button + if (isPrimary) + AnimatedBuilder( + animation: _rippleAnimation, + builder: (context, child) { + return Container( + width: 90 + (_rippleAnimation.value * 20), + height: 90 + (_rippleAnimation.value * 20), + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: color.withValues( + alpha: 0.4 * (1 - _rippleAnimation.value), + ), + width: 3, + ), + ), + ); + }, + ), + // Button + GestureDetector( + onTap: onTap, + child: AnimatedContainer( + duration: Duration(milliseconds: 200), + width: 70, + height: 70, + decoration: BoxDecoration( + color: color, + shape: BoxShape.circle, + boxShadow: [ + BoxShadow( + color: color.withValues(alpha: 0.5), + blurRadius: 20, + spreadRadius: 5, + ), + ], + ), + child: Icon(icon, color: Colors.white, size: 32), + ), + ), + ], + ); + } +} + +// Active call screen - Shows when call is connected +class CallScreen extends StatefulWidget { + const CallScreen({super.key}); + + @override + State createState() => _CallScreenState(); +} + +class _CallScreenState extends State { + final callService = Get.find(); + final RxBool isVideoSwapped = false.obs; // Track if videos are swapped + + @override + void initState() { + super.initState(); + } + + @override + Widget build(BuildContext context) { + return PopScope( + onPopInvokedWithResult: (didPop, result) {}, + child: Scaffold( + backgroundColor: Colors.black, + body: SafeArea( + child: Obx(() { + final hasValidData = + callService.callerName.value.isNotEmpty && + callService.channelName.value.isNotEmpty; + + if (!hasValidData) { + // Show loading while waiting for data + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator(), + SizedBox(height: 15.h), + Text('Connecting...'), + ], + ), + ); + } + + // ✅ Show connecting state while call is being established + if (callService.callState.value == CallState.ringing) { + return _buildConnectingUI(); + } + + return callService.currentCallType.value == CallType.video + ? _buildVideoCallUI() + : _buildVoiceCallUI(); + }), + ), + ), + ); + } + + // ✅ NEW: Show smooth connecting UI instead of IncomingCallScreen buttons + Widget _buildConnectingUI() { + return Stack( + children: [ + // Show video preview if available + if (callService.currentCallType.value == CallType.video) + SizedBox( + width: double.infinity, + height: double.infinity, + child: + callService.isVideoPreviewStarted.value + ? AgoraVideoView( + controller: VideoViewController( + rtcEngine: callService.rtcEngine!, + canvas: const VideoCanvas(uid: 0), + ), + ) + : Container( + color: Colors.grey[900], + child: Center( + child: CircularProgressIndicator(color: Colors.white), + ), + ), + ), + + // Gradient overlay + Container( + width: double.infinity, + height: double.infinity, + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Colors.black.withValues(alpha: 0.7), + Colors.transparent, + Colors.transparent, + Colors.black.withValues(alpha: 0.8), + ], + stops: [0.0, 0.3, 0.7, 1.0], + ), + ), + ), + + // Content + Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // Profile picture for voice calls + if (callService.currentCallType.value == CallType.voice) + CircleAvatar( + radius: 80, + backgroundColor: Colors.grey[800], + backgroundImage: + callService.callerProfilePic.value.isNotEmpty + ? NetworkImage(callService.callerProfilePic.value) + : null, + child: + callService.callerProfilePic.value.isEmpty + ? Text( + callService.callerName.value.isNotEmpty + ? callService.callerName.value[0].toUpperCase() + : 'U', + style: TextStyle( + color: Colors.white, + fontSize: 48, + fontWeight: FontWeight.bold, + ), + ) + : null, + ), + + SizedBox(height: 24), + + // Caller name + Text( + callService.callerName.value, + style: TextStyle( + color: Colors.white, + fontSize: 28, + fontWeight: FontWeight.w500, + ), + ), + + SizedBox(height: 16), + + // Connecting indicator with animation + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + strokeWidth: 2, + valueColor: AlwaysStoppedAnimation(Colors.white70), + ), + ), + SizedBox(width: 12), + Text( + 'Connecting...', + style: TextStyle(color: Colors.white70, fontSize: 16), + ), + ], + ), + ], + ), + ], + ); + } + + Widget _buildVideoCallUI() { + return Stack( + children: [ + // Main video view (full screen) - Shows remote by default, local when swapped + SizedBox( + width: double.infinity, + height: double.infinity, + child: Obx(() { + // When swapped, show local video in main view + if (isVideoSwapped.value) { + return callService.isLocalVideoEnabled.value + ? AgoraVideoView( + controller: VideoViewController( + rtcEngine: callService.rtcEngine!, + canvas: const VideoCanvas(uid: 0), + ), + ) + : Container( + color: Colors.grey[900], + child: Center( + child: Icon( + Icons.videocam_off, + color: Colors.white, + size: 64, + ), + ), + ); + } + + // Default: Show remote video in main view + // Show profile picture if remote user hasn't joined OR if remote video is disabled + if (callService.integerRemoteUserUid.value == 0 || + !callService.isRemoteVideoEnabled.value) { + return Container( + color: Colors.grey[900], + child: Center( + child: CircleAvatar( + radius: 80.r, + backgroundColor: Colors.grey[800], + backgroundImage: + callService.callerProfilePic.value.isNotEmpty + ? NetworkImage(callService.callerProfilePic.value) + : null, + child: + callService.callerProfilePic.value.isEmpty + ? Text( + callService.callerName.value.isNotEmpty + ? callService.callerName.value[0] + .toUpperCase() + : callService.remoteUserId.value.isNotEmpty + ? callService.remoteUserId.value[0] + .toUpperCase() + : 'U', + style: TextStyle( + color: Colors.white, + fontSize: 42.sp, + fontWeight: FontWeight.bold, + ), + ) + : null, + ), + ), + ); + } + + // Show remote video when available and enabled + return AgoraVideoView( + controller: VideoViewController.remote( + rtcEngine: callService.rtcEngine!, + canvas: VideoCanvas( + uid: callService.integerRemoteUserUid.value, + ), + connection: RtcConnection( + channelId: callService.channelName.value, + ), + ), + ); + }), + ), + + // Top overlay with caller info and call duration + Positioned( + top: 0, + left: 0, + right: 0, + child: Container( + padding: EdgeInsets.symmetric(horizontal: 20, vertical: 16), + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Colors.black.withValues(alpha: 0.8), + Colors.transparent, + ], + ), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Row( + children: [ + Icon(Icons.lock, color: Colors.white, size: 16.sp), + SizedBox(width: 4), + Text( + 'End to End Encrypted', + style: TextStyle( + color: Colors.white, + fontSize: 12.sp, + fontWeight: FontWeight.w300, + ), + ), + ], + ), + SizedBox(height: 16), + Text( + callService.callerName.value.isNotEmpty + ? callService.callerName.value + : callService.remoteUserId.value, + style: TextStyle( + color: Colors.white, + fontSize: 24, + fontWeight: FontWeight.w500, + ), + ), + SizedBox(height: 4), + Obx( + () => Text( + _formatDuration(callService.callDuration.value), + style: TextStyle(color: Colors.white70, fontSize: 14.sp), + ), + ), + ], + ), + ), + ), + + // Thumbnail video view (top right corner) - Shows local by default, remote when swapped + Positioned( + top: 80.h, + right: 20.w, + child: GestureDetector( + onTap: () { + // Toggle the swap state + isVideoSwapped.value = !isVideoSwapped.value; + }, + child: Container( + width: 120.w, + height: 160.h, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + border: Border.all( + color: Colors.white.withValues(alpha: 0.3), + width: 1, + ), + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(12), + child: Obx(() { + // When swapped, show remote video in thumbnail + if (isVideoSwapped.value) { + if (callService.integerRemoteUserUid.value == 0 || + !callService.isRemoteVideoEnabled.value) { + return Container( + color: Colors.black87, + child: Center( + child: CircleAvatar( + radius: 30.r, + backgroundColor: Colors.grey[800], + backgroundImage: + callService.callerProfilePic.value.isNotEmpty + ? NetworkImage( + callService.callerProfilePic.value, + ) + : null, + child: + callService.callerProfilePic.value.isEmpty + ? Text( + callService.callerName.value.isNotEmpty + ? callService.callerName.value[0] + .toUpperCase() + : callService + .remoteUserId + .value + .isNotEmpty + ? callService.remoteUserId.value[0] + .toUpperCase() + : 'U', + style: TextStyle( + color: Colors.white, + fontSize: 20.sp, + fontWeight: FontWeight.bold, + ), + ) + : null, + ), + ), + ); + } + return AgoraVideoView( + controller: VideoViewController.remote( + rtcEngine: callService.rtcEngine!, + canvas: VideoCanvas( + uid: callService.integerRemoteUserUid.value, + ), + connection: RtcConnection( + channelId: callService.channelName.value, + ), + ), + ); + } + + // Default: Show local video in thumbnail + return callService.isLocalVideoEnabled.value + ? AgoraVideoView( + controller: VideoViewController( + rtcEngine: callService.rtcEngine!, + canvas: const VideoCanvas(uid: 0), + ), + ) + : Container( + color: Colors.black87, + child: Center( + child: Icon( + Icons.videocam_off, + color: Colors.white, + size: 32, + ), + ), + ); + }), + ), + ), + ), + ), + + // Bottom controls + Positioned( + bottom: 0, + left: 0, + right: 0, + child: Container( + padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: 40.w), + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.bottomCenter, + end: Alignment.topCenter, + colors: [ + Colors.black.withValues(alpha: 0.8), + Colors.transparent, + ], + ), + ), + child: _buildCallControls(), + ), + ), + ], + ); + } + + Widget _buildVoiceCallUI() { + return Column( + children: [ + // Top section + Padding( + padding: const EdgeInsets.all(16.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.lock, color: Colors.white, size: 16.sp), + SizedBox(width: 4), + Text( + 'End to End Encrypted', + style: TextStyle( + color: Colors.white, + fontSize: 12.sp, + fontWeight: FontWeight.w300, + ), + ), + ], + ), + ), + + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircleAvatar( + radius: 80, + backgroundColor: Colors.grey[800], + backgroundImage: + callService.callerProfilePic.value.isNotEmpty + ? NetworkImage(callService.callerProfilePic.value) + : null, + child: + callService.callerProfilePic.value.isEmpty + ? Text( + callService.callerName.value.isNotEmpty + ? callService.callerName.value[0].toUpperCase() + : callService.remoteUserId.value.isNotEmpty + ? callService.remoteUserId.value[0].toUpperCase() + : 'U', + style: TextStyle( + color: Colors.white, + fontSize: 48, + fontWeight: FontWeight.bold, + ), + ) + : null, + ), + SizedBox(height: 20), + Text( + callService.callerName.value.isNotEmpty + ? callService.callerName.value + : callService.remoteUserId.value, + style: TextStyle( + color: Colors.white, + fontSize: 28, + fontWeight: FontWeight.w400, + ), + ), + SizedBox(height: 10), + Obx( + () => Text( + _formatDuration(callService.callDuration.value), + style: TextStyle(color: Colors.grey[400], fontSize: 16), + ), + ), + ], + ), + ), + + Padding( + padding: EdgeInsets.only(bottom: 60), + child: _buildCallControls(), + ), + ], + ); + } + + Widget _buildCallControls() { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + // Mute/Unmute button + Obx( + () => _buildControlButton( + icon: + callService.isLocalAudioEnabled.value + ? Icons.mic + : Icons.mic_off, + color: + callService.isLocalAudioEnabled.value + ? Colors.grey[700]! + : Colors.red, + onTap: callService.toggleLocalAudio, + ), + ), + SizedBox(width: 5.w), + // Speaker button (for both voice and video calls) + Obx( + () => _buildControlButton( + icon: + callService.isSpeakerEnabled.value + ? Icons.volume_up + : Icons.volume_down, + color: + callService.isSpeakerEnabled.value + ? Colors.blue + : Colors.grey[700]!, + onTap: callService.toggleSpeaker, + ), + ), + // Video controls (only for video calls) + if (callService.currentCallType.value == CallType.video) ...[ + SizedBox(width: 5.w), + Obx( + () => _buildControlButton( + icon: + callService.isLocalVideoEnabled.value + ? Icons.videocam + : Icons.videocam_off, + color: + callService.isLocalVideoEnabled.value + ? Colors.grey[700]! + : Colors.red, + onTap: callService.toggleLocalVideo, + ), + ), + SizedBox(width: 5.w), + _buildControlButton( + icon: Icons.flip_camera_ios, + color: Colors.grey[700]!, + onTap: callService.switchCamera, + ), + ], + SizedBox(width: 5.w), + // End call button + _buildControlButton( + icon: Icons.call_end, + color: Colors.red, + onTap: () async { + await callService.endCall(); + }, + ), + ], + ); + } + + Widget _buildControlButton({ + required IconData icon, + required Color color, + required VoidCallback onTap, + }) { + return GestureDetector( + onTap: onTap, + child: Container( + width: 60, + height: 60, + decoration: BoxDecoration(color: color, shape: BoxShape.circle), + child: Icon(icon, color: Colors.white, size: 24), + ), + ); + } + + String _formatDuration(int seconds) { + int minutes = seconds ~/ 60; + int remainingSeconds = seconds % 60; + return '${minutes.toString().padLeft(2, '0')}:${remainingSeconds.toString().padLeft(2, '0')}'; + } +} diff --git a/lib/screens/chat/views/chat_inside_screen.dart b/lib/screens/chat/views/chat_inside_screen.dart new file mode 100644 index 0000000..126cb5d --- /dev/null +++ b/lib/screens/chat/views/chat_inside_screen.dart @@ -0,0 +1,1471 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:flutter/rendering.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/services/logger_service.dart'; +import 'package:intl/intl.dart'; +import 'package:agora_chat_sdk/agora_chat_sdk.dart'; +import 'package:onufitness/constants/api_enum_constant.dart'; +import 'package:onufitness/constants/asset_constants.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/text_constant.dart'; +import 'package:onufitness/screens/chat/controllers/chat_controller.dart'; +import 'package:onufitness/screens/chat/widgets/chat_input_area.dart'; +import 'package:onufitness/screens/chat/widgets/voice/voice_message_buble_widget.dart'; +import 'package:onufitness/screens/echoboard/widget/image_zoom.dart'; +import 'package:onufitness/screens/chat/widgets/chat_appbar.dart'; +import 'package:onufitness/screens/chat/widgets/chat_video_widgets.dart'; +import 'package:onufitness/services/agora/agora_chat_service.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class ChatDetailScreen extends StatefulWidget { + final String targetUserId; + final String targetUserName; + final String? targetUserAvatar; + final bool isGroupMessage; + const ChatDetailScreen({ + super.key, + required this.targetUserId, + required this.targetUserName, + this.targetUserAvatar, + this.isGroupMessage = false, + }); + + @override + State createState() => _ChatDetailScreenState(); +} + +class _ChatDetailScreenState extends State { + late ChatController chatCtrl; + late TextEditingController textController; + late ScrollController scrollController; + AgoraChatService agoraService = Get.put(AgoraChatService()); + final logger = LoggerService(); + + // Track if we should maintain scroll position during pagination + bool maintainScrollPosition = false; + double scrollPosition = 0.0; + + @override + void initState() { + if (!Get.isRegistered()) { + Get.put(ChatController()); + } + chatCtrl = Get.find(); + super.initState(); + textController = TextEditingController(); + scrollController = ScrollController(); + chatCtrl.isGroupChattt.value = widget.isGroupMessage; + + // Load existing messages for this conversation + + WidgetsBinding.instance.addPostFrameCallback((_) { + // chatCtrl.isGroupChattt.value = widget.isGroupMessage; + initAgoraChatService(); + isMyFriendCheck(); + loadMessages(); + // Set up listeners + setupControllers(); + subscribeToUserPresence(); + }); + } + + @override + void dispose() { + textController.dispose(); + scrollController.dispose(); + super.dispose(); + } + + initAgoraChatService() async { + if (agoraService.currentUserId == null) { + await Future.delayed(Duration(milliseconds: 500)); + + // Check again + if (agoraService.currentUserId == null) { + bool success = await agoraService.loginToAgora(); + if (!success) { + customSnackbar( + title: "Error", + message: "Failed to connect to chat", + duration: 2, + ); + Get.back(); + return; + } + } + } + } + + subscribeToUserPresence() async { + await chatCtrl.subscribeToUserPresence(widget.targetUserId); + } + + isMyFriendCheck() async { + await chatCtrl.friendCheck(connectedAgoraUserID: widget.targetUserId); + } + + Future loadMessages() async { + // Load messages from the conversation + await chatCtrl.loadMessages(widget.targetUserId); + WidgetsBinding.instance.addPostFrameCallback((_) { + _scrollToBottom(); + }); + } + + void setupControllers() { + // For tracking scroll direction + scrollController.addListener(() { + final position = scrollController.position; + + // Detect upward scroll near top to trigger pagination + if (position.userScrollDirection == ScrollDirection.forward && + position.pixels <= 100) { + _loadMoreMessages(); + } + }); + + // ONLY scroll to bottom when a new message is added at the end + ever(chatCtrl.messagesMap, (map) { + final messages = map[widget.targetUserId] ?? []; + + // Only scroll to bottom if this is a NEW message appended + if (messages.isNotEmpty) { + final lastMsg = messages.last; + + final isNewMessage = + DateTime.fromMillisecondsSinceEpoch( + lastMsg.serverTime, + ).difference(DateTime.now()).inSeconds.abs() < + 5; + + if (isNewMessage) { + WidgetsBinding.instance.addPostFrameCallback((_) { + _scrollToBottom(); + }); + } + } + }); + } + + Future _loadMoreMessages() async { + final hasMore = chatCtrl.hasMoreMessages[widget.targetUserId] ?? false; + final isLoading = chatCtrl.isLoadingMore[widget.targetUserId] ?? false; + + if (hasMore && !isLoading) { + // Save current scroll position + scrollPosition = scrollController.position.pixels; + // maintainScrollPosition = true; + + await chatCtrl.loadMoreMessages(widget.targetUserId); + } + } + + void _scrollToBottom() { + if (scrollController.hasClients) { + Future.delayed(const Duration(milliseconds: 100), () { + if (scrollController.hasClients && + scrollController.position.maxScrollExtent > 0) { + scrollController.animateTo( + scrollController.position.maxScrollExtent, + duration: const Duration(milliseconds: 300), + curve: Curves.easeOut, + ); + } + }); + } + } + + @override + Widget build(BuildContext context) { + return PopScope( + canPop: false, + onPopInvokedWithResult: (didPop, result) async { + if (!didPop) { + Get.back(); + await chatCtrl.markAllMessagesAsRead(widget.targetUserId); + chatCtrl.selectedUserId.value = ""; + + await chatCtrl.unsuscribePresence(widget.targetUserId); + } + }, + child: Scaffold( + resizeToAvoidBottomInset: true, + + body: Container( + decoration: BoxDecoration( + color: Color(primaryColor), + image: DecorationImage( + image: AssetImage(AssetConstants.chatAppBarBackgroundImage), + fit: BoxFit.cover, + opacity: 0.5, + ), + ), + child: SafeArea( + bottom: false, + child: Column( + mainAxisSize: MainAxisSize.max, // For Samsung phones + children: [ + // Reactive app bar + Obx(() { + final status = + chatCtrl.presenceMap[widget.targetUserId] ?? ''; + final isOnline = status == 'online'; + + return chatAppBar( + context: context, + chatCtrl: chatCtrl, + receiverName: widget.targetUserName, + showOnlineDot: isOnline, + targetUserAvatarUrl: widget.targetUserAvatar, + userId: widget.targetUserId, + isGroupChat: widget.isGroupMessage, + ); + }), + + // Chat messages + Expanded( + child: ChatMessageList( + chatCtrl: chatCtrl, + scrollController: scrollController, + targetUserId: widget.targetUserId, + isGroupMessage: widget.isGroupMessage, + ), + ), + + // File upload loader + FileUploadLoader( + targetUserId: widget.targetUserId, + chatCtrl: chatCtrl, + ), + + // Conditionally show chat input + if (widget.isGroupMessage == true) + Column( + children: [ + ChatInputAreaWithVoice( + chatCtrl: chatCtrl, + textController: textController, + targetUserId: widget.targetUserId, + isGroupMessage: widget.isGroupMessage, + targetUserName: widget.targetUserName, + ), + Container(color: Colors.white, height: 20.h), + ], + ) + else + Obx(() { + if (chatCtrl.isMyFriendCheckLoading.value) { + // Using this Insted of Loader ( for better UX) + return Column( + children: [ + ChatInputAreaWithVoice( + chatCtrl: chatCtrl, + textController: textController, + targetUserId: widget.targetUserId, + isGroupMessage: widget.isGroupMessage, + targetUserName: widget.targetUserName, + ), + ], + ); + } + + if (chatCtrl.isMyFriend.value) { + return Column( + children: [ + ChatInputAreaWithVoice( + chatCtrl: chatCtrl, + textController: textController, + targetUserId: widget.targetUserId, + isGroupMessage: widget.isGroupMessage, + targetUserName: widget.targetUserName, + ), + ], + ); + } + + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: EdgeInsets.only(bottom: 20.sp, top: 15.sp), + child: Text( + "You cannot send messages to this user right now.", + textAlign: TextAlign.center, + style: TextStyle(color: Colors.black), + ), + ), + Container( + height: MediaQuery.of(context).padding.bottom, + ), + ], + ); + }), + ], + ), + ), + ), + ), + ); + } +} + +// Message List Component with Pagination Support +class ChatMessageList extends StatelessWidget { + final ChatController chatCtrl; + final ScrollController scrollController; + final String targetUserId; + final bool isGroupMessage; + const ChatMessageList({ + super.key, + required this.chatCtrl, + required this.scrollController, + required this.targetUserId, + this.isGroupMessage = false, + }); + + @override + Widget build(BuildContext context) { + return Container( + color: Colors.white, + child: Column( + children: [ + // End-to-End Encryption Notice + const EncryptionNotice(), + // Message List + Expanded(child: Obx(() => messageListContent())), + ], + ), + ); + } + + Widget messageListContent() { + final messages = chatCtrl.messagesMap[targetUserId] ?? []; + final isLoadingMore = chatCtrl.isLoadingMore[targetUserId] ?? false; + final hasMoreMessages = chatCtrl.hasMoreMessages[targetUserId] ?? false; + + if (messages.isEmpty && !isLoadingMore) { + return const EmptyChat(); + } + + return ListView.builder( + controller: scrollController, + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 20), + itemCount: messages.length + (isLoadingMore ? 1 : 0), + itemBuilder: (_, i) { + // Show loading indicator at the top + if (i == 0 && isLoadingMore) { + return const LoadingIndicator(); + } + + final messageIndex = isLoadingMore ? i - 1 : i; + final msg = messages[messageIndex]; + + final showDate = + messageIndex == 0 || + !_isSameDay( + DateTime.fromMillisecondsSinceEpoch( + messages[messageIndex - 1].serverTime, + ), + DateTime.fromMillisecondsSinceEpoch(msg.serverTime), + ); + + final isGroupMsg = isGroupMessage; + final isMe = msg.from == ChatClient.getInstance.currentUserId; + + // Get sender name for group messages + String? senderName; + if (isGroupMsg && !isMe) { + // First try to get from userInfoMap + final userInfo = chatCtrl.userInfoMap[msg.from]; + if (userInfo != null && userInfo.nickName?.isNotEmpty == true) { + senderName = userInfo.nickName; + } else if (userInfo != null && userInfo.userId.isNotEmpty == true) { + senderName = userInfo.userId; + } else { + // Fallback to sender's user ID if no display name is available + // senderName = msg.from ?? 'Unknown'; + senderName = 'Unknown'; + + // Trigger fetch of user info for future messages + if (msg.from != null) { + chatCtrl.fetchUserInfo(msg.from!); + } + } + } + + return Column( + children: [ + if (showDate) + _DateSeparator( + date: DateTime.fromMillisecondsSinceEpoch(msg.serverTime), + ), + CustomMessageBubble( + message: msg, + isMe: isMe, + isGroupMessage: isGroupMsg, + senderName: senderName, + chatController: chatCtrl, + ), + + // Show "Load All Messages" button at the top (after loading indicator) + if (messageIndex == 0 && !isLoadingMore && hasMoreMessages) + LoadAllMessagesButton( + chatCtrl: chatCtrl, + targetUserId: targetUserId, + ), + ], + ); + }, + ); + } + + bool _isSameDay(DateTime date1, DateTime date2) { + return date1.year == date2.year && + date1.month == date2.month && + date1.day == date2.day; + } +} + +// End-to-End Encryption Notice Widget +class EncryptionNotice extends StatelessWidget { + const EncryptionNotice({super.key}); + + @override + Widget build(BuildContext context) { + return Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + decoration: BoxDecoration(color: Colors.white), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.lock, size: regularSizeText, color: lightGreyColor), + const SizedBox(width: 8), + Text( + "End to End Encrypted", + style: TextStyle( + fontSize: smallSizeText, + color: lightGreyColor, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ); + } +} + +// Loading Indicator Widget +class LoadingIndicator extends StatelessWidget { + const LoadingIndicator({super.key}); + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.all(16), + child: const Center( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator(strokeWidth: 2), + ), + SizedBox(height: 8), + Text( + "Loading messages...", + style: TextStyle(color: Colors.grey, fontSize: 12), + ), + ], + ), + ), + ); + } +} + +// Load All Messages Button Widget +class LoadAllMessagesButton extends StatelessWidget { + final ChatController chatCtrl; + final String targetUserId; + + const LoadAllMessagesButton({ + super.key, + required this.chatCtrl, + required this.targetUserId, + }); + + @override + Widget build(BuildContext context) { + return Container( + margin: const EdgeInsets.all(16), + child: Center( + child: ElevatedButton.icon( + onPressed: () async { + await chatCtrl.loadAllMessages(targetUserId); + }, + icon: const Icon(Icons.history, size: 16), + label: const Text("Load All Messages"), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.blue.shade50, + foregroundColor: Colors.blue.shade700, + elevation: 0, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + ), + ), + ), + ); + } +} + +class EmptyChat extends StatelessWidget { + const EmptyChat({super.key}); + + @override + Widget build(BuildContext context) { + return Center( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + Icons.chat_bubble_outline, + size: 80, + color: Colors.grey.withValues(alpha: 0.5), + ), + const SizedBox(height: 16), + const Text( + "No messages yet", + style: TextStyle(color: Colors.grey, fontSize: 16), + ), + const SizedBox(height: 8), + Text( + "Say hello to start the conversation!", + style: TextStyle(color: Colors.grey.shade600, fontSize: 14), + ), + ], + ), + ); + } +} + +class _DateSeparator extends StatelessWidget { + final DateTime date; + + const _DateSeparator({required this.date}); + + @override + Widget build(BuildContext context) { + return Container( + margin: const EdgeInsets.symmetric(vertical: 16), + child: Row( + children: [ + Expanded(child: Divider(color: Colors.grey.shade300)), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10), + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: Colors.grey.shade200, + borderRadius: BorderRadius.circular(12), + ), + child: Text( + _formatMessageDate(date), + style: TextStyle(color: Colors.grey.shade600, fontSize: 12), + ), + ), + ), + Expanded(child: Divider(color: Colors.grey.shade300)), + ], + ), + ); + } + + String _formatMessageDate(DateTime date) { + final now = DateTime.now(); + if (_isSameDay(date, now)) { + return "Today"; + } else if (_isSameDay(date, now.subtract(const Duration(days: 1)))) { + return "Yesterday"; + } else if (now.difference(date).inDays < 7) { + return DateFormat('EEEE').format(date); + } else { + return DateFormat('MMM d, yyyy').format(date); + } + } + + bool _isSameDay(DateTime date1, DateTime date2) { + return date1.year == date2.year && + date1.month == date2.month && + date1.day == date2.day; + } +} + +class CustomMessageBubble extends StatelessWidget { + final ChatMessage message; + final bool isMe; + final bool isGroupMessage; + final String? senderName; + final ChatController chatController; + const CustomMessageBubble({ + super.key, + required this.message, + required this.isMe, + required this.chatController, + this.isGroupMessage = false, + this.senderName, + }); + + @override + Widget build(BuildContext context) { + final timeString = DateFormat( + 'h:mm a', + ).format(DateTime.fromMillisecondsSinceEpoch(message.serverTime)); + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + constraints: BoxConstraints(maxWidth: Get.width * 0.75), + margin: EdgeInsets.only( + top: 4.h, + bottom: 6.h, + left: isMe ? 30.w : 15.w, + right: isMe ? 15.w : 30.w, + ), + child: Column( + crossAxisAlignment: + isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + Container( + decoration: BoxDecoration( + color: isMe ? Color(chatBubbleColor) : Colors.grey.shade200, + borderRadius: BorderRadius.only( + topLeft: Radius.circular(isMe ? 20 : 2), + topRight: Radius.circular(isMe ? 2 : 20), + bottomLeft: const Radius.circular(20), + bottomRight: const Radius.circular(20), + ), + boxShadow: [ + BoxShadow( + color: Colors.black.withValues(alpha: 0.08), + blurRadius: 4, + offset: const Offset(0, 2), + ), + ], + border: + isMe + ? null + : Border.all( + color: Colors.grey.withValues(alpha: 0.1), + width: 1, + ), + ), + child: Padding( + padding: EdgeInsets.symmetric( + horizontal: getPaddingHorizontal(), + vertical: getPaddingVertical(), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Sender name for group messages + if (isGroupMessage && !isMe && senderName != null) + Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Text( + senderName!, + style: TextStyle( + fontSize: verySmallSizeText, + color: deeperShadeOfprimaryColor, + fontWeight: FontWeight.w600, + ), + ), + ), + + // Message content based on type + messageContentWidget(chatController), + + const SizedBox(height: 6), + + // Time and status row + Row( + mainAxisAlignment: MainAxisAlignment.end, + mainAxisSize: MainAxisSize.min, + children: [ + Text( + timeString, + style: TextStyle( + fontSize: verySmallSizeText, + color: isMe ? Colors.grey : Color(darkGreyColor), + fontWeight: FontWeight.w400, + ), + ), + if (isMe && !isGroupMessage) ...[ + const SizedBox(width: 4), + messageStatusIconWidget(), + ], + ], + ), + ], + ), + ), + ), + ], + ), + ), + ); + } + + double getPaddingHorizontal() { + switch (message.body.type) { + case MessageType.IMAGE: + return 8.w; + case MessageType.FILE: + return 10.w; + default: + return 15.w; + } + } + + double getPaddingVertical() { + switch (message.body.type) { + case MessageType.IMAGE: + return 8.h; + case MessageType.FILE: + return 10.w; + default: + return 5.h; + } + } + + Widget messageContentWidget(ChatController chatController) { + final messageType = message.body.type; + + // Handle text messages + if (messageType == MessageType.TXT) { + return textMessageWidget(); + } + + // Handle voice messages + if (messageType == MessageType.VOICE) { + return VoiceMessageBubble( + message: message, + isMe: isMe, + chatController: chatController, + ); + } + + // Handle file-based messages + if (message.body is! ChatFileMessageBody) { + return unsupportedMessageWidget(); + } + + final body = message.body as ChatFileMessageBody; + final fileName = body.displayName?.toLowerCase().trim() ?? ''; + final extension = chatController.getFileExtension(fileName); + + if (chatController.isImageExtension(extension)) { + return imageMessageWidget(); + } else if (chatController.isVideoExtension(extension)) { + return videoMessageWidget(); + } else if (chatController.isDocumentExtension(extension)) { + return fileMessageWidget(); + } else { + return unsupportedMessageWidget(); + } + } + + Widget textMessageWidget() { + final textBody = message.body as ChatTextMessageBody; + return Text( + textBody.content, + style: TextStyle( + fontSize: 16, + color: isMe ? Colors.black : Colors.black, + height: 1.3, + ), + ); + } + + Widget imageMessageWidget() { + final imageBody = message.body as ChatFileMessageBody; + final chatCtrl = Get.find(); + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + constraints: BoxConstraints( + maxWidth: Get.width * 0.6, + maxHeight: 300, + minWidth: 150, + minHeight: 150, + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(12), + child: Stack( + children: [ + customImageContainer(imageBody), + Positioned( + top: 8, + right: 8, + child: Obx(() { + final isDownloading = + chatCtrl.isDownloading[message.msgId] ?? false; + final progress = + chatCtrl.downloadProgress[message.msgId] ?? 0.0; + + return Container( + decoration: BoxDecoration( + color: Colors.black.withValues(alpha: 0.6), + borderRadius: BorderRadius.circular(30), + ), + child: + isDownloading + ? Container( + padding: const EdgeInsets.all(8), + child: SizedBox( + width: 24, + height: 24, + child: CircularProgressIndicator( + value: progress, + strokeWidth: 2, + color: Colors.white, + ), + ), + ) + : IconButton( + onPressed: () => chatCtrl.downloadFile(message), + icon: const Icon( + Icons.download, + color: Colors.white, + size: 18, + ), + padding: const EdgeInsets.all(4), + constraints: const BoxConstraints( + minWidth: 32, + minHeight: 32, + ), + ), + ); + }), + ), + ], + ), + ), + ), + ], + ); + } + + Widget customImageContainer(ChatFileMessageBody imageBody) { + if (imageBody.localPath.isNotEmpty == true) { + final localFile = File(imageBody.localPath); + if (localFile.existsSync()) { + return GestureDetector( + onTap: + () => Get.to( + () => ImageZoomWidget( + imageUrl: imageBody.remotePath!, + heroTag: "Hey_hero_${DateTime.now().millisecondsSinceEpoch}", + ), + ), + child: Image.file( + localFile, + fit: BoxFit.cover, + errorBuilder: + (context, error, stackTrace) => + defaultImagePlaceholder(imageBody), + ), + ); + } + } + + // Try to display remote image + if (imageBody.remotePath?.isNotEmpty == true) { + return GestureDetector( + onTap: + () => Get.to( + () => ImageZoomWidget( + imageUrl: imageBody.remotePath!, + heroTag: "${DateTime.now().millisecondsSinceEpoch}", + ), + ), + child: Image.network( + imageBody.remotePath!, + fit: BoxFit.cover, + loadingBuilder: (context, child, loadingProgress) { + if (loadingProgress == null) return child; + return Center( + child: CircularProgressIndicator( + value: + loadingProgress.expectedTotalBytes != null + ? loadingProgress.cumulativeBytesLoaded / + loadingProgress.expectedTotalBytes! + : null, + ), + ); + }, + errorBuilder: + (context, error, stackTrace) => + defaultImagePlaceholder(imageBody), + ), + ); + } + + return defaultImagePlaceholder(imageBody); + } + + Widget defaultImagePlaceholder(ChatFileMessageBody imageBody) { + return Container( + width: double.infinity, + height: 150, + color: Colors.grey.shade300, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.image, size: 40, color: Colors.grey.shade600), + const SizedBox(height: 8), + Text( + imageBody.displayName ?? 'Image', + style: TextStyle(color: Colors.grey.shade600), + textAlign: TextAlign.center, + ), + const SizedBox(height: 8), + ], + ), + ); + } + + Widget videoMessageWidget() { + final videoBody = message.body as ChatFileMessageBody; + final chatCtrl = Get.find(); + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + constraints: BoxConstraints( + maxWidth: Get.width * 0.6, + maxHeight: 150, + minWidth: 150, + minHeight: 150, + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(12), + child: Stack( + children: [ + Container( + width: double.infinity, + height: 150.h, + color: Colors.black, + ), + + // Play button overlay + Positioned( + top: 0, + right: 0, + bottom: 0, + left: 0, + child: Container( + color: Colors.black.withValues(alpha: 0.3), + child: Center( + child: GestureDetector( + onTap: () => playVideo(videoBody), + child: Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: Colors.black.withValues(alpha: 0.5), + shape: BoxShape.circle, + ), + child: const Icon( + Icons.play_arrow, + color: Colors.white, + size: 30, + ), + ), + ), + ), + ), + ), + + // Download overlay if needed + Obx(() { + final isDownloading = + chatCtrl.isDownloading[message.msgId] ?? false; + final progress = + chatCtrl.downloadProgress[message.msgId] ?? 0.0; + + if (isDownloading) { + return Container( + color: Colors.black.withValues(alpha: 0.5), + child: Center( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + CircularProgressIndicator( + value: progress, + color: Colors.white, + ), + const SizedBox(height: 8), + Text( + '${(progress * 100).toInt()}%', + style: const TextStyle(color: Colors.white), + ), + ], + ), + ), + ); + } + return const SizedBox.shrink(); + }), + ], + ), + ), + ), + const SizedBox(height: 4), + Row( + children: [ + Expanded( + child: Text( + videoBody.displayName ?? 'Video', + style: TextStyle( + fontSize: verySmallSizeText, + color: isMe ? Colors.black : Colors.black, + ), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + ), + const SizedBox(width: 10), + + // Download button beside video file name + Obx(() { + final isDownloading = + chatCtrl.isDownloading[message.msgId] ?? false; + + return GestureDetector( + onTap: + isDownloading ? null : () => chatCtrl.downloadFile(message), + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: 6, + vertical: 5, + ), + decoration: BoxDecoration( + color: isDownloading ? Colors.grey : Colors.blue, + borderRadius: BorderRadius.circular(4), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + isDownloading ? Icons.downloading : Icons.download, + size: regularSizeText, + color: Colors.white, + ), + ], + ), + ), + ); + }), + ], + ), + ], + ); + } + + void playVideo(ChatFileMessageBody videoBody) async { + String? videoPath; + + // Check if video is available locally + if (videoBody.localPath.isNotEmpty == true && + File(videoBody.localPath).existsSync()) { + videoPath = videoBody.localPath; + } else if (videoBody.remotePath?.isNotEmpty == true) { + videoPath = videoBody.remotePath!; + } + + if (videoPath != null) { + Get.to(() => VideoPlayerScreen(videoPath: videoPath!)); + } else { + // Show download dialog + Get.dialog( + AlertDialog( + title: const Text('Video Not Available'), + content: const Text('Please download the video first to play it.'), + actions: [ + TextButton( + onPressed: () => Get.back(), + child: const Text('Cancel'), + ), + ElevatedButton( + onPressed: () { + Get.back(); + final chatCtrl = Get.find(); + chatCtrl.downloadFile(message); + }, + child: const Text('Download'), + ), + ], + ), + ); + } + } + + // Updated fileMessageWidget method for PDF and other file handling + Widget fileMessageWidget() { + final fileBody = message.body as ChatFileMessageBody; + final chatCtrl = Get.find(); + + return Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: + isMe ? Colors.white.withValues(alpha: 0.2) : Colors.grey.shade100, + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Colors.grey.shade300), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: getFileIconColor(fileBody.displayName ?? ''), + borderRadius: BorderRadius.circular(6), + ), + child: Icon( + getFileIcon(fileBody.displayName ?? ''), + color: Colors.white, + size: 20, + ), + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileBody.displayName ?? 'Unknown File', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: isMe ? Colors.black87 : Colors.black, + ), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + const SizedBox(height: 2), + Text( + _formatFileSize(fileBody.fileSize!), + style: TextStyle( + fontSize: verySmallSizeText, + color: isMe ? Colors.black : Colors.black, + ), + ), + ], + ), + ), + + // Download button only + Obx(() { + final isDownloading = + chatCtrl.isDownloading[message.msgId] ?? false; + final progress = + chatCtrl.downloadProgress[message.msgId] ?? 0.0; + + if (isDownloading) { + return SizedBox( + width: 40, + height: 40, + child: Stack( + alignment: Alignment.center, + children: [ + CircularProgressIndicator( + value: progress, + strokeWidth: 2, + backgroundColor: Colors.grey.shade300, + ), + Text( + '${(progress * 100).toInt()}%', + style: const TextStyle(fontSize: 8), + ), + ], + ), + ); + } + + return GestureDetector( + onTap: () => chatCtrl.downloadFile(message), + child: Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.blue, + borderRadius: BorderRadius.circular(6), + ), + child: Icon(Icons.download, color: Colors.white, size: 16), + ), + ); + }), + ], + ), + ], + ), + ); + } + + // New VideoPlayerScreen widget + Widget unsupportedMessageWidget() { + return Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: Colors.orange.shade100, + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Colors.orange.shade300), + ), + child: Row( + children: [ + Icon(Icons.warning, color: Colors.orange.shade700), + const SizedBox(width: 8), + Expanded( + child: Text( + 'Unsupported message type: ${message.body.type}', + style: TextStyle(color: Colors.orange.shade700, fontSize: 12), + ), + ), + ], + ), + ); + } + + Widget messageStatusIconWidget() { + if (message.hasReadAck) { + return Icon(Icons.done_all, size: 14, color: Colors.blue); + } else if (message.hasDeliverAck) { + return Icon(Icons.done_all, size: 14, color: Colors.grey); + } else { + return Icon(Icons.check, size: 14, color: Colors.grey); + } + } + + IconData getFileIcon(String fileName) { + final extension = fileName.split('.').last.toLowerCase(); + switch (extension) { + case 'pdf': + return Icons.picture_as_pdf; + case 'doc': + case 'docx': + return Icons.description; + case 'xls': + case 'xlsx': + return Icons.table_chart; + case 'ppt': + case 'pptx': + return Icons.slideshow; + case 'zip': + case 'rar': + return Icons.archive; + case 'txt': + return Icons.text_snippet; + default: + return Icons.insert_drive_file; + } + } + + Color getFileIconColor(String fileName) { + final extension = fileName.split('.').last.toLowerCase(); + switch (extension) { + case 'pdf': + return Colors.red; + case 'doc': + case 'docx': + return Colors.blue; + case 'xls': + case 'xlsx': + return Colors.green; + case 'ppt': + case 'pptx': + return Colors.orange; + case 'zip': + case 'rar': + return Colors.purple; + case 'txt': + return Colors.grey; + default: + return Colors.blueGrey; + } + } + + String _formatFileSize(int bytes) { + if (bytes < 1024) return '$bytes B'; + if (bytes < 1024 * 1024) return '${(bytes / 1024).toStringAsFixed(1)} KB'; + if (bytes < 1024 * 1024 * 1024) { + return '${(bytes / (1024 * 1024)).toStringAsFixed(1)} MB'; + } + return '${(bytes / (1024 * 1024 * 1024)).toStringAsFixed(1)} GB'; + } +} + +class SendButton extends StatelessWidget { + final ChatController chatCtrl; + final TextEditingController textController; + final String targetUserId; + final bool isGroupMessage; + final String targetUserName; + + const SendButton({ + super.key, + required this.chatCtrl, + required this.textController, + required this.targetUserId, + this.isGroupMessage = false, + required this.targetUserName, + }); + + @override + Widget build(BuildContext context) { + return ValueListenableBuilder( + valueListenable: textController, + builder: (context, value, child) { + return GestureDetector( + onTap: () { + _sendMessage(); + }, + onLongPress: () {}, + child: Container( + width: 45.w, + height: 45.h, + decoration: BoxDecoration( + color: const Color(primaryColor), + shape: BoxShape.circle, + ), + child: Icon(Icons.send, color: Colors.black), + ), + ); + }, + ); + } + + void _sendMessage() { + final text = textController.text.trim(); + if (text.isNotEmpty) { + chatCtrl.sendTextMessage(targetUserId, text, isGroup: isGroupMessage); + textController.clear(); + + if (isGroupMessage == true) { + chatCtrl.sendGroupChatNotification( + notificationMessage: text, + notificationTitle: "", + notificationType: ApiEnum.ChatNotification, + tribeId: targetUserId, + ); + } + + if (!isGroupMessage) { + chatCtrl.sendChatNotification( + notificationMessage: text, + notificationTitle: "", + notificationType: ApiEnum.ChatNotification, + receiverId: targetUserId, + ); + } + } + } +} + +class FileUploadLoader extends StatelessWidget { + final String targetUserId; + final ChatController chatCtrl; + + const FileUploadLoader({ + super.key, + required this.targetUserId, + required this.chatCtrl, + }); + + @override + Widget build(BuildContext context) { + return Obx(() { + final isUploading = chatCtrl.isSending[targetUserId] ?? false; + + return AnimatedSwitcher( + duration: const Duration(milliseconds: 250), + switchInCurve: Curves.easeOut, + switchOutCurve: Curves.easeIn, + transitionBuilder: (child, animation) { + return SizeTransition(sizeFactor: animation, child: child); + }, + child: + isUploading + ? Container( + key: const ValueKey("file_uploading"), + padding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 12, + ), + decoration: BoxDecoration( + color: const Color(primaryColor).withValues(alpha: 0.1), + border: Border( + top: BorderSide(color: Colors.grey.shade300), + ), + boxShadow: [ + BoxShadow( + color: Colors.black.withValues(alpha: 0.05), + offset: const Offset(0, -2), + blurRadius: 6, + ), + ], + ), + child: Padding( + padding: EdgeInsets.all(6), + child: Row( + children: [ + SizedBox( + width: 24.w, + height: 24.h, + child: CircularProgressIndicator( + strokeWidth: 2.5, + color: const Color(primaryColor), + backgroundColor: const Color( + primaryColor, + ).withValues(alpha: 0.3), + ), + ), + const SizedBox(width: 12), + Expanded( + child: Text( + "Sending file...", + style: TextStyle( + color: const Color(primaryColor), + fontSize: 14, + fontWeight: FontWeight.w500, + ), + ), + ), + // Tooltip( + // message: "Cancel upload", + // child: IconButton( + // onPressed: () { + // chatCtrl.isSending[targetUserId] = false; + // }, + // icon: const Icon(Icons.close, size: 20), + // color: Colors.grey.shade600, + // constraints: const BoxConstraints( + // minWidth: 32, + // minHeight: 32, + // ), + // ), + // ), + ], + ), + ), + ) + : const SizedBox.shrink(), + ); + }); + } +} diff --git a/lib/screens/chat/views/chat_user_list_screen.dart b/lib/screens/chat/views/chat_user_list_screen.dart new file mode 100644 index 0000000..f13786e --- /dev/null +++ b/lib/screens/chat/views/chat_user_list_screen.dart @@ -0,0 +1,769 @@ +import 'package:agora_chat_sdk/agora_chat_sdk.dart'; +import 'package:flutter/material.dart'; +import 'package:onufitness/services/logger_service.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import 'package:onufitness/constants/asset_constants.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/text_constant.dart'; +import 'package:onufitness/routes/route_constant.dart'; +import 'package:onufitness/screens/chat/controllers/chat_controller.dart'; +import 'package:onufitness/screens/chat/views/chat_inside_screen.dart'; +import 'package:onufitness/screens/chat/views/chat_user_search_screen.dart'; +import 'package:onufitness/services/agora/agora_chat_service.dart'; +import 'package:onufitness/services/agora/call_services.dart'; +import 'package:shimmer/shimmer.dart'; + +class ChatListScreen extends StatefulWidget { + const ChatListScreen({super.key}); + + @override + State createState() => _ChatListScreen2State(); +} + +class _ChatListScreen2State extends State { + ChatController chatCtrl = Get.find(); + final agoraService = Get.find(); + AgoraCallService agoraCallService = AgoraCallService.instance; + bool _isDataLoaded = false; + final logger = LoggerService(); + + @override + void initState() { + super.initState(); + WidgetsBinding.instance.addPostFrameCallback((_) { + initializeChat(); + }); + } + + //................................................................................................................................... + //................................................................................................................................... + + Future initializeChat() async { + try { + // Check if already logged in with proper verification + final isLoggedIn = await agoraService.isUserLoggedIn(); + logger.log( + "Is user already logged in to chat --->> from chat_user_list_screen: ${isLoggedIn.toString()}", + ); + if (isLoggedIn) { + logger.log("Chat already initialized and connected"); + await loadChatData(); + return; + } + + logger.log("Starting chat initialization..."); + + // Initialize SDK (safe to call multiple times) + await agoraService.initChatSdk(); + await Future.delayed(Duration(milliseconds: 2000)); + + // Login to Agora with verification + final loginSuccess = await agoraService.loginToAgora(); + + if (!loginSuccess) { + logger.error("Failed to login to Agora Chat"); + // Show error to user + return; + } + + // Wait for connection to stabilize + await Future.delayed(Duration(milliseconds: 1000)); + + // Verify one more time before loading data + final finalCheck = await agoraService.isUserLoggedIn(); + if (!finalCheck) { + logger.error("Login succeeded but not connected"); + return; + } + + await loadChatData(); + } catch (e, stackTrace) { + logger.error("Error initializing chat", error: e, stackTrace: stackTrace); + } + } + + //................................................................................................................................... + //................................................................................................................................... + + Future loadChatData() async { + try { + await chatCtrl.loadRecentChats(); + _isDataLoaded = true; + } catch (e, stackTrace) { + logger.error("Error loading chat data", error: e, stackTrace: stackTrace); + } + } + + String getLastMessageText(String conversationId) { + final lastMessage = chatCtrl.lastMessages[conversationId]; + if (lastMessage == null) return "No messages yet"; + + // Handle different message types + switch (lastMessage.body.type) { + case MessageType.TXT: + final txtBody = lastMessage.body as ChatTextMessageBody; + return txtBody.content; + case MessageType.IMAGE: + return "📷 Image"; + case MessageType.VIDEO: + return "🎥 Video"; + case MessageType.VOICE: + return "🎵 Voice message"; + case MessageType.FILE: + return "📁 File"; + case MessageType.LOCATION: + return "📍 Location"; + default: + return "Message"; + } + } + + String formatMessageTime(String timeString) { + try { + final epochMillis = int.parse(timeString); + final time = DateTime.fromMillisecondsSinceEpoch(epochMillis); + final now = DateTime.now(); + final difference = now.difference(time); + + if (difference.inDays > 0) { + if (difference.inDays == 1) { + return "Yesterday"; + } else if (difference.inDays < 7) { + return DateFormat('EEEE').format(time); + } else { + return DateFormat('dd/MM').format(time); + } + } else if (difference.inHours > 0) { + return "${difference.inHours}h ago"; + } else if (difference.inMinutes > 0) { + return "${difference.inMinutes}m ago"; + } else { + return "Just now"; + } + } catch (e) { + return ""; + } + } + + void navigateToCallScreen(AgoraCallService agoraCallService) { + final callState = agoraCallService.callState.value; + + if (callState == CallState.connected) { + Get.toNamed(RouteConstant.activeCallScreen); + } else if (callState == CallState.calling) { + Get.toNamed(RouteConstant.outgoingCallScreen); + } else if (callState == CallState.ringing) { + Get.toNamed(RouteConstant.incomingCallScreen); + } + } + + List getCallGradientColors(CallState callState) { + switch (callState) { + case CallState.connected: + return [Color(0xFF4CAF50), Color(0xFF66BB6A)]; + case CallState.calling: + return [Color(0xFFFF9800), Color(0xFFFFB74D)]; + case CallState.ringing: + return [Color(0xFF2196F3), Color(0xFF64B5F6)]; + default: + return [Colors.grey, Colors.grey.shade400]; + } + } + + Color getCallStatusColor(CallState callState) { + switch (callState) { + case CallState.connected: + return Color(0xFF4CAF50); + case CallState.calling: + return Color(0xFFFF9800); + case CallState.ringing: + return Color(0xFF2196F3); + default: + return Colors.grey; + } + } + + String getCallStatusText(AgoraCallService agoraCallService) { + switch (agoraCallService.callState.value) { + case CallState.calling: + return 'Calling ${agoraCallService.callerName.value}...'; + case CallState.ringing: + return 'Incoming call from ${agoraCallService.callerName.value}'; + case CallState.connected: + return 'On call with ${agoraCallService.callerName.value}'; + default: + return ''; + } + } + + String formatDuration(int seconds) { + int hours = seconds ~/ 3600; + int minutes = (seconds % 3600) ~/ 60; + int remainingSeconds = seconds % 60; + + if (hours > 0) { + return '${hours.toString().padLeft(2, '0')}:${minutes.toString().padLeft(2, '0')}:${remainingSeconds.toString().padLeft(2, '0')}'; + } + return '${minutes.toString().padLeft(2, '0')}:${remainingSeconds.toString().padLeft(2, '0')}'; + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + + body: Container( + decoration: BoxDecoration( + color: Color(primaryColor), + image: DecorationImage( + image: AssetImage(AssetConstants.chatAppBarBackgroundImage), + fit: BoxFit.cover, + opacity: 0.5, + ), + ), + child: SafeArea( + bottom: false, + child: Column( + mainAxisSize: MainAxisSize.max, + children: [ + // Call Indicator - At the top + callIndicator(), + + // Custom Header + customChatAppBarHeader(chatCtrl), + + // Main Content + Expanded( + child: Container( + color: Colors.white, + child: Obx(() { + final chats = chatCtrl.recentConversations; + final unreadCounts = chatCtrl.unreadCounts; + + // Show loading indicator while data is being loaded + if (!_isDataLoaded && chats.isEmpty) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator( + color: Color(primaryColor), + ), + SizedBox(height: 16), + Text( + "Loading chats...", + style: TextStyle( + color: Colors.grey.shade600, + fontSize: 16, + ), + ), + ], + ), + ); + } + + if (chats.isEmpty) { + return emptyStateWidget(); + } + + return RefreshIndicator( + onRefresh: loadChatData, + color: Color(primaryColor), + child: ListView.builder( + itemCount: chats.length, + itemBuilder: (context, index) { + final convo = chats[index]; + final conversationId = convo.id; + final unreadCount = unreadCounts[conversationId] ?? 0; + final lastMessageText = getLastMessageText( + conversationId, + ); + + return chatListItemWidget( + convo, + unreadCount, + lastMessageText, + ); + }, + ), + ); + }), + ), + ), + ], + ), + ), + ), + floatingActionButton: FloatingActionButton( + onPressed: () { + Get.to(() => ChatUserSearchScreen()); + }, + backgroundColor: Color(primaryColor), + child: Icon(Icons.chat, color: Colors.black), + ), + ); + } + + Widget callStatusActionButton({ + required IconData icon, + required VoidCallback onTap, + required String tooltip, + bool isDestructive = false, + }) { + return Tooltip( + message: tooltip, + child: InkWell( + onTap: onTap, + borderRadius: BorderRadius.circular(20), + child: Container( + padding: EdgeInsets.all(8), + decoration: BoxDecoration( + color: + isDestructive + ? Colors.red.withValues(alpha: 0.2) + : Colors.white.withValues(alpha: 0.2), + borderRadius: BorderRadius.circular(20), + ), + child: Icon( + icon, + color: isDestructive ? Colors.red.shade100 : Colors.white, + size: 15.sp, + ), + ), + ), + ); + } + + Widget callIndicator() { + return Obx(() { + if (agoraCallService.callState.value == CallState.connected || + agoraCallService.callState.value == CallState.calling || + agoraCallService.callState.value == CallState.ringing) { + return Container( + width: double.infinity, + decoration: BoxDecoration( + gradient: LinearGradient( + colors: getCallGradientColors(agoraCallService.callState.value), + begin: Alignment.centerLeft, + end: Alignment.centerRight, + ), + boxShadow: [ + BoxShadow( + color: getCallStatusColor( + agoraCallService.callState.value, + ).withValues(alpha: 0.3), + blurRadius: 8, + offset: Offset(0, 2), + ), + ], + ), + child: Material( + color: Colors.transparent, + child: InkWell( + onTap: () => navigateToCallScreen(agoraCallService), + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 15.w, vertical: 10.h), + child: Row( + children: [ + // Call Icon + Container( + padding: EdgeInsets.all(6.sp), + decoration: BoxDecoration( + color: Colors.white.withValues(alpha: 0.2), + shape: BoxShape.circle, + ), + child: Icon( + agoraCallService.currentCallType.value == CallType.video + ? Icons.videocam + : Icons.call, + color: Colors.white, + size: 15.sp, + ), + ), + SizedBox(width: 12.w), + + // Call Status and Details + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Text( + getCallStatusText(agoraCallService), + style: TextStyle( + color: Colors.white, + fontSize: smallSizeText, + fontWeight: FontWeight.w600, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + if (agoraCallService.callState.value == + CallState.connected) + Obx( + () => Text( + formatDuration( + agoraCallService.callDuration.value, + ), + style: TextStyle( + color: Colors.white.withValues(alpha: 0.9), + fontSize: verySmallSizeText, + fontWeight: FontWeight.w400, + ), + ), + ), + ], + ), + ), + + // Action Buttons + Row( + mainAxisSize: MainAxisSize.min, + children: [ + // Return to Call Button + callStatusActionButton( + icon: Icons.open_in_full, + onTap: () => navigateToCallScreen(agoraCallService), + tooltip: 'Return to call', + ), + SizedBox(width: 8), + + // End Call Button (only show for connected calls) + if (agoraCallService.callState.value == + CallState.connected) + callStatusActionButton( + icon: Icons.call_end, + onTap: () => agoraCallService.endCall(), + tooltip: 'End call', + isDestructive: true, + ), + ], + ), + ], + ), + ), + ), + ), + ); + } + return SizedBox.shrink(); + }); + } + + Widget emptyStateWidget() { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.chat_bubble_outline, + size: 80, + color: Colors.grey.withValues(alpha: 0.5), + ), + SizedBox(height: 16), + Text( + "No chats available", + style: TextStyle( + color: Colors.grey.shade600, + fontSize: 18, + fontWeight: FontWeight.w500, + ), + ), + SizedBox(height: 8), + Text( + "Pull to refresh or check your connection", + style: TextStyle(color: Colors.grey.shade500, fontSize: 14), + ), + SizedBox(height: 20), + ElevatedButton.icon( + onPressed: () => loadChatData(), + icon: Icon(Icons.refresh), + label: Text("Refresh"), + style: ElevatedButton.styleFrom( + backgroundColor: Color(primaryColor), + foregroundColor: Colors.black, + ), + ), + ], + ), + ); + } + + Widget chatListItemWidget( + ChatConversation conversation, + int unreadCount, + String lastMessageText, + ) { + final conversationId = conversation.id; + final isGroupChat = conversation.type == ChatConversationType.GroupChat; + final lastMessage = chatCtrl.lastMessages[conversationId]; + final lastMessageTime = lastMessage?.serverTime ?? DateTime.now(); + + // Fetch appropriate info based on chat type + if (isGroupChat) { + chatCtrl.fetchGroupInfo(conversationId); + } else { + chatCtrl.fetchUserInfo(conversationId); + } + + return Obx(() { + // Get appropriate info based on chat type + final userInfo = chatCtrl.userInfoMap[conversationId]; + final groupInfo = chatCtrl.groupInfoMap[conversationId]; + final isLoading = isGroupChat ? groupInfo == null : userInfo == null; + + // Determine display name and avatar + String displayName; + String? avatarUrl; + + if (isGroupChat) { + displayName = groupInfo?.name ?? conversationId; + avatarUrl = groupInfo?.extension ?? ''; + } else { + displayName = userInfo?.nickName ?? "Unknown"; + avatarUrl = userInfo?.avatarUrl; + } + + return Container( + margin: const EdgeInsets.symmetric(horizontal: 8, vertical: 2), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8), + boxShadow: [ + BoxShadow( + color: Colors.black.withValues(alpha: 0.05), + blurRadius: 2, + offset: Offset(0, 1), + ), + ], + ), + child: ListTile( + onTap: () async { + chatCtrl.markAllMessagesAsRead(conversationId); + + if (!isGroupChat) { + chatCtrl.selectedUserId.value = conversationId; + await chatCtrl.subscribeToUserPresence(conversationId); + displayName = userInfo!.nickName!; + avatarUrl = userInfo.avatarUrl; + } + + Get.to( + () => ChatDetailScreen( + targetUserId: conversationId, + targetUserName: displayName, + targetUserAvatar: avatarUrl, + isGroupMessage: isGroupChat, + ), + ); + }, + + contentPadding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 8, + ), + leading: Stack( + children: [ + isLoading + ? Shimmer.fromColors( + baseColor: Colors.grey.shade300, + highlightColor: Colors.grey.shade100, + child: CircleAvatar( + radius: 27.r, + backgroundColor: Colors.grey.shade300, + ), + ) + : CircleAvatar( + radius: 27.r, + backgroundColor: Colors.grey.shade300, + backgroundImage: + (avatarUrl != null && avatarUrl.isNotEmpty) + ? NetworkImage(avatarUrl) + : null, + child: + (avatarUrl == null || avatarUrl.isEmpty) + ? isGroupChat + ? Icon( + Icons.group, + size: 27.sp, + color: Colors.grey.shade600, + ) + : Text( + (displayName.isNotEmpty + ? displayName[0].toUpperCase() + : 'U'), + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ) + : null, + ), + // Group indicator + if (isGroupChat) + Positioned( + right: 0, + bottom: 0, + child: Container( + width: 15.w, + height: 15.h, + decoration: BoxDecoration( + color: Color(primaryColor), + shape: BoxShape.circle, + border: Border.all(color: Colors.white, width: 2), + ), + child: Icon(Icons.group, size: 10, color: Colors.black), + ), + ), + ], + ), + title: + isLoading + ? Shimmer.fromColors( + baseColor: Colors.grey.shade300, + highlightColor: Colors.grey.shade100, + child: Container( + width: 120, + height: 14, + color: Colors.white, + ), + ) + : displayName.isNotEmpty + ? Text( + displayName, + style: TextStyle( + fontWeight: + unreadCount > 0 ? FontWeight.w600 : FontWeight.normal, + fontSize: regularSizeText, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ) + : Text( + conversationId, + style: TextStyle( + fontWeight: + unreadCount > 0 ? FontWeight.w600 : FontWeight.normal, + fontSize: regularSizeText, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + subtitle: Row( + children: [ + if (lastMessage != null) + Expanded( + child: Text( + lastMessageText, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + color: Color(darkGreyColor), + fontSize: smallSizeText, + ), + ), + ), + ], + ), + trailing: SizedBox( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text( + formatMessageTime(lastMessageTime.toString()), + style: TextStyle( + color: + unreadCount > 0 + ? Color(primaryColor) + : Color(darkGreyColor), + fontSize: 10.sp, + fontWeight: + unreadCount > 0 ? FontWeight.w500 : FontWeight.normal, + ), + ), + const SizedBox(height: 4), + if (unreadCount > 0) + Container( + decoration: BoxDecoration( + color: Color(primaryColor), + borderRadius: BorderRadius.circular(30), + ), + constraints: const BoxConstraints( + minWidth: 20, + minHeight: 20, + maxHeight: 20, + maxWidth: 20, + ), + child: Center( + child: Padding( + padding: const EdgeInsets.all(2), + child: Text( + unreadCount > 99 ? "99+" : unreadCount.toString(), + style: TextStyle( + fontSize: 11.sp, + fontWeight: FontWeight.w600, + color: Colors.black, + ), + ), + ), + ), + ), + ], + ), + ), + ), + ); + }); + } + + Widget customChatAppBarHeader(ChatController controller) { + return Container( + decoration: BoxDecoration( + color: Color(primaryColor), + image: DecorationImage( + image: AssetImage(AssetConstants.chatAppBarBackgroundImage), + fit: BoxFit.cover, + opacity: 0.5, + ), + ), + child: Container( + padding: EdgeInsets.only(top: 10.h, bottom: 10.h), + child: Row( + children: [ + IconButton( + icon: Icon(Icons.arrow_back_ios), + color: Colors.black, + onPressed: () { + Get.back(); + controller.messagesMap.clear(); + controller.lastMessages.clear(); + controller.unreadCounts.clear(); + controller.recentConversations.clear(); + controller.cursors.clear(); + controller.isLoadingMore.clear(); + controller.hasMoreMessages.clear(); + controller.userInfoMap.clear(); + controller.groupInfoMap.clear(); + controller.presenceMap.clear(); + controller.hasMoreMessages.clear(); + }, + ), + Expanded( + child: Text( + "Messages", + style: TextStyle( + color: Colors.black, + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/chat/views/chat_user_search_screen.dart b/lib/screens/chat/views/chat_user_search_screen.dart new file mode 100644 index 0000000..4d077f4 --- /dev/null +++ b/lib/screens/chat/views/chat_user_search_screen.dart @@ -0,0 +1,365 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/text_constant.dart'; +import 'package:onufitness/screens/echoboard/controllers/echoboard_controller.dart'; +import 'package:onufitness/screens/chat/views/chat_inside_screen.dart'; +import 'package:onufitness/services/logger_service.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; +import 'package:onufitness/widgets/appbars/custom_appbar.dart'; + +class ChatUserSearchScreen extends StatefulWidget { + const ChatUserSearchScreen({super.key}); + + @override + State createState() => _ChatUserSearchScreenState(); +} + +class _ChatUserSearchScreenState extends State { + final EchoBoardController controller = Get.find(); + final ScrollController _scrollController = ScrollController(); + final logger = LoggerService(); + + @override + void initState() { + super.initState(); + _scrollController.addListener(_onScroll); + WidgetsBinding.instance.addPostFrameCallback((_) { + controller.fetchExclusiveConnections(refresh: true); + }); + } + + void _onScroll() { + if (_scrollController.position.pixels >= + _scrollController.position.maxScrollExtent - 300) { + if (controller.hasMoreDataConnection.value && + !controller.isConnectionPaginationLoading.value) { + controller.fetchExclusiveConnections(); + } + } + } + + Future _onRefresh() async { + await controller.fetchExclusiveConnections(refresh: true); + return Future.value(); + } + + void onConnectionTap({ + required String? agoraGroupId, + required String? connectedUserId, + required String? userName, + required String? groupName, + required String? groupImage, + required String? userProfilePic, + }) { + // ---------- GROUP CHAT ---------- + if (agoraGroupId != null && agoraGroupId.isNotEmpty) { + if (groupName == null || groupName.isEmpty) { + customSnackbar( + title: "Group Info Missing", + message: "Group name not found.", + duration: 2, + ); + return; + } + + Get.to( + () => ChatDetailScreen( + targetUserId: agoraGroupId, + targetUserName: groupName, + targetUserAvatar: groupImage, + isGroupMessage: true, + ), + ); + return; + } + + // ---------- 1-1 CHAT ---------- + final cleanedUserId = connectedUserId?.replaceAll('-', ''); + + if (cleanedUserId == null || cleanedUserId.isEmpty) { + customSnackbar( + title: "Chat Not Available", + message: "Chat window is not available.", + duration: 2, + ); + return; + } + + if (userName == null || userName.isEmpty) { + customSnackbar( + title: "User Info Missing", + message: "User name not found.", + duration: 2, + ); + return; + } + + Get.to( + () => ChatDetailScreen( + targetUserId: cleanedUserId, + targetUserName: userName, + targetUserAvatar: userProfilePic, + ), + ); + } + + @override + void dispose() { + _scrollController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: CustomAppBar( + title: 'Select Connection', + textColor: appbarTextColor, + titleFontSize: appBarHeardingText, + backgroundColor: Color(primaryColor), + leading: IconButton( + icon: Icon(Icons.arrow_back_ios, color: Colors.black), + onPressed: () { + Get.back(); + }, + ), + ), + body: Column( + children: [ + Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: EdgeInsets.all(10.sp), + child: TextField( + controller: controller.connectionSearchController, + decoration: InputDecoration( + hintText: 'Search for members', + hintStyle: TextStyle( + fontWeight: FontWeight.w600, + color: greyBorderColor, + ), + prefixIcon: const Padding( + padding: EdgeInsets.only(left: 20), + child: Icon(Icons.search), + ), + suffixIcon: IconButton( + icon: const Padding( + padding: EdgeInsets.only(right: 10), + child: Icon(Icons.close), + ), + onPressed: () => controller.clearSearch(), + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(30), + borderSide: BorderSide.none, + ), + filled: true, + fillColor: textFieldFillColor, + ), + onChanged: (newValue) { + controller.connectionSearchValue.value = newValue; + }, + onSubmitted: (_) { + controller.fetchExclusiveConnections(refresh: true); + }, + ), + ), + const SizedBox(height: 12), + ], + ), + ), + Expanded( + child: Obx( + () => + controller.isConnectionsFetchLoading.value && + controller.exclusiveConnections.data?.items == null + ? const Center( + child: CircularProgressIndicator(color: Colors.black), + ) + : controller.exclusiveConnections.data?.items == null || + controller.exclusiveConnections.data!.items!.isEmpty + ? Center( + child: RefreshIndicator( + onRefresh: _onRefresh, + child: ListView( + physics: const AlwaysScrollableScrollPhysics(), + children: [ + SizedBox(height: 150.h), + Center(child: Text('No connections found')), + ], + ), + ), + ) + : RefreshIndicator( + backgroundColor: Colors.white, + color: Colors.black, + onRefresh: _onRefresh, + child: ListView.builder( + physics: const AlwaysScrollableScrollPhysics(), + controller: _scrollController, + padding: EdgeInsets.symmetric(horizontal: 16.w), + itemCount: + controller + .exclusiveConnections + .data! + .items! + .length + + (controller.isConnectionPaginationLoading.value + ? 1 + : 0), + itemBuilder: (_, i) { + if (i == + controller + .exclusiveConnections + .data! + .items! + .length) { + return const Padding( + padding: EdgeInsets.symmetric(vertical: 16.0), + child: Center( + child: CircularProgressIndicator( + backgroundColor: Colors.white, + color: Colors.black, + ), + ), + ); + } + + final connection = + controller.exclusiveConnections.data!.items![i]; + + return SingleConnectionTile( + name: + connection.tribeId != null + ? connection.tribeName ?? 'Unknown Tribe' + : connection.fullName ?? 'Unknown User', + type: + connection.tribeId != null ? 'group' : 'user', + members: connection.totalMemberCount, + imageUrl: + connection.tribeId != null + ? connection.tribeImage ?? + connection.adminProfilePicture! + : connection.profilePicture ?? '', + onTap: () { + onConnectionTap( + agoraGroupId: connection.agoraGroupID, + connectedUserId: connection.connectedUserId, + userName: connection.fullName, + groupName: connection.tribeName, + groupImage: connection.tribeImage, + userProfilePic: connection.profilePicture, + ); + }, + ); + }, + ), + ), + ), + ), + ], + ), + ); + } +} + +class SingleConnectionTile extends StatelessWidget { + final String name; + final String type; + final int? members; + final String imageUrl; + final VoidCallback onTap; + + const SingleConnectionTile({ + required this.name, + required this.type, + this.members, + required this.imageUrl, + required this.onTap, + super.key, + }); + + @override + Widget build(BuildContext context) { + return ListTile( + onTap: onTap, + contentPadding: EdgeInsets.symmetric(vertical: 4.h, horizontal: 8.w), + leading: + type == 'group' + ? Stack( + clipBehavior: Clip.none, + children: [ + // Admin profile picture + CircleAvatar( + radius: 30.r, + backgroundColor: Colors.grey[300], + backgroundImage: + imageUrl.isNotEmpty ? NetworkImage(imageUrl) : null, + child: + imageUrl.isEmpty + ? Icon( + Icons.person, + size: 25.sp, + color: Color(darkGreyColor), + ) + : null, + ), + // +N badge + Positioned( + right: -8.r, + top: -8.r, + child: Container( + width: 40.r, + height: 40.r, + decoration: BoxDecoration( + color: const Color(0xFFDBF403), + shape: BoxShape.circle, + border: Border.all(color: Colors.white, width: 2), + ), + alignment: Alignment.center, + child: Text( + '+${(members ?? 1) - 1}', + style: TextStyle( + fontSize: 14.sp, + fontWeight: FontWeight.bold, + color: Colors.black, + ), + ), + ), + ), + ], + ) + : CircleAvatar( + radius: 30.r, + backgroundImage: + imageUrl.isNotEmpty ? NetworkImage(imageUrl) : null, + backgroundColor: Colors.grey[300], + child: + imageUrl.isEmpty + ? Icon( + Icons.person, + size: 30.sp, + color: Colors.grey[600], + ) + : null, + ), + title: Text( + name, + style: TextStyle(fontSize: 14.sp, fontWeight: FontWeight.w500), + ), + subtitle: + type == 'group' + ? Text( + '${members ?? 0} members', + style: TextStyle(fontSize: 12.sp, color: Colors.grey), + ) + : null, + trailing: Icon(Icons.arrow_forward_ios, color: Colors.grey, size: 16.sp), + ); + } +} diff --git a/lib/screens/chat/widgets/chat_appbar.dart b/lib/screens/chat/widgets/chat_appbar.dart new file mode 100644 index 0000000..7c520d9 --- /dev/null +++ b/lib/screens/chat/widgets/chat_appbar.dart @@ -0,0 +1,438 @@ +import 'package:awesome_snackbar_content/awesome_snackbar_content.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/asset_constants.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/constants/text_constant.dart'; +import 'package:onufitness/routes/route_constant.dart'; +import 'package:onufitness/screens/chat/controllers/chat_controller.dart'; +import 'package:onufitness/services/agora/call_services.dart'; +import 'package:onufitness/widgets/others/new_custom_sneakbar.dart'; + +Widget chatAppBar({ + required BuildContext context, + required ChatController chatCtrl, + required String userId, + required String receiverName, + String? targetUserAvatarUrl, + bool showOnlineDot = false, + bool isGroupChat = false, +}) { + final agoraCallService = AgoraCallService.instance; + + // Function to check if call can be made.............................................................................. + void checkAndMakeCall(CallType callType) { + if (agoraCallService.callState.value != CallState.idle) { + AwesomeCustomSnackbar.show( + context: context, + title: 'Call In Progress', + message: + 'You are already in a call. Please end the current call first.', + contentType: ContentType.warning, + ); + return; + } + + if (receiverName.isEmpty && userId.isEmpty) { + AwesomeCustomSnackbar.show( + context: context, + title: 'Invalid User', + message: 'Cannot initiate call. User information is not available.', + contentType: ContentType.warning, + ); + return; + } + + try { + agoraCallService.makeCall( + context: context, + targetUserId: userId, + targatedUserName: receiverName, + targatedUserProfilePic: targetUserAvatarUrl, + callType: callType, + ); + } catch (e) { + AwesomeCustomSnackbar.show( + context: context, + title: 'Call Failed', + message: 'Unable to initiate call. Please try again later.', + contentType: ContentType.warning, + ); + } + } + + return Column( + children: [ + // Call Indicator - Above the AppBar + Obx(() { + if (agoraCallService.callState.value == CallState.connected || + agoraCallService.callState.value == CallState.calling || + agoraCallService.callState.value == CallState.ringing) { + return Container( + width: double.infinity, + + decoration: BoxDecoration( + gradient: LinearGradient( + colors: _getCallGradientColors( + agoraCallService.callState.value, + ), + begin: Alignment.centerLeft, + end: Alignment.centerRight, + ), + boxShadow: [ + BoxShadow( + color: _getCallStatusColor( + agoraCallService.callState.value, + ).withValues(alpha: 0.3), + blurRadius: 8, + offset: Offset(0, 2), + ), + ], + ), + child: Material( + color: Colors.transparent, + child: InkWell( + onTap: () => _navigateToCallScreen(agoraCallService), + child: Padding( + padding: EdgeInsets.symmetric( + horizontal: 15.w, + vertical: 12.h, + ), + child: Row( + children: [ + // Call Icon + Container( + padding: EdgeInsets.all(6.sp), + decoration: BoxDecoration( + color: Colors.white.withValues(alpha: 0.2), + shape: BoxShape.circle, + ), + child: Icon( + agoraCallService.currentCallType.value == + CallType.video + ? Icons.videocam + : Icons.call, + color: Colors.white, + size: 15.sp, + ), + ), + SizedBox(width: 12.w), + + // Call Status and Details + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Text( + _getCallStatusText(agoraCallService), + style: TextStyle( + color: Colors.white, + fontSize: smallSizeText, + fontWeight: FontWeight.w600, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + if (agoraCallService.callState.value == + CallState.connected) + Obx( + () => Text( + _formatDuration( + agoraCallService.callDuration.value, + ), + style: TextStyle( + color: Colors.white.withValues(alpha: 0.9), + fontSize: verySmallSizeText, + fontWeight: FontWeight.w400, + ), + ), + ), + ], + ), + ), + + // Action Buttons + Row( + mainAxisSize: MainAxisSize.min, + children: [ + // Return to Call Button + _buildActionButton( + icon: Icons.open_in_full, + onTap: + () => _navigateToCallScreen(agoraCallService), + tooltip: 'Return to call', + ), + SizedBox(width: 8), + + // End Call Button (only show for connected calls) + if (agoraCallService.callState.value == + CallState.connected) + _buildActionButton( + icon: Icons.call_end, + onTap: () => agoraCallService.endCall(), + tooltip: 'End call', + isDestructive: true, + ), + ], + ), + ], + ), + ), + ), + ), + ); + } + return SizedBox.shrink(); + }), + + // Main AppBar content + Container( + padding: EdgeInsets.only(top: 15.h, bottom: 10.h), + decoration: BoxDecoration( + color: Color(primaryColor), + image: DecorationImage( + image: AssetImage(AssetConstants.chatAppBarBackgroundImage), + fit: BoxFit.cover, + opacity: 0.5, + ), + ), + child: Row( + children: [ + IconButton( + icon: Icon(Icons.arrow_back_ios, color: Colors.black), + onPressed: () async { + Get.back(); + chatCtrl.selectedUserId.value = ""; + await chatCtrl.markAllMessagesAsRead(userId); + await chatCtrl.unsuscribePresence(userId); + }, + ), + + // User Avatar with Online Indicator + Stack( + children: [ + CircleAvatar( + radius: 20.r, + backgroundColor: Colors.grey.shade300, + backgroundImage: + (targetUserAvatarUrl != null && + targetUserAvatarUrl.isNotEmpty) + ? NetworkImage(targetUserAvatarUrl) + : null, + child: + (targetUserAvatarUrl == null || + targetUserAvatarUrl.isEmpty) + ? Text( + receiverName.isNotEmpty + ? receiverName[0].toUpperCase() + : 'U', + style: const TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w600, + ), + ) + : null, + ), + + // if (showOnlineDot && !isGroupChat) + // Positioned( + // right: 2, + // bottom: 2, + // child: Container( + // width: 12, + // height: 12, + // decoration: BoxDecoration( + // color: Colors.green, + // shape: BoxShape.circle, + // border: Border.all(color: Colors.white, width: 2), + // ), + // ), + // ), + ], + ), + + const SizedBox(width: 12), + + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + receiverName.isNotEmpty ? receiverName : "Unknown User", + style: TextStyle( + color: Colors.black, + fontWeight: FontWeight.w600, + fontSize: smallSizeText, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + if (!isGroupChat) + Text( + showOnlineDot ? "Online" : "Last seen recently", + style: TextStyle( + fontSize: verySmallSizeText, + color: showOnlineDot ? Colors.green : Colors.grey, + fontWeight: FontWeight.w400, + ), + ), + ], + ), + ), + + // Action Buttons + Obx(() { + bool isCallActive = + agoraCallService.callState.value != CallState.idle; + return Padding( + padding: EdgeInsets.only(right: 15.sp), + child: Row( + children: [ + if (!isGroupChat && chatCtrl.isMyFriend.value) + AppBarAction( + icon: Icons.call, + onPressed: () => checkAndMakeCall(CallType.voice), + isEnabled: showOnlineDot && !isCallActive, + ), + if (!isGroupChat && chatCtrl.isMyFriend.value) + AppBarAction( + icon: Icons.videocam, + onPressed: () => checkAndMakeCall(CallType.video), + isEnabled: showOnlineDot && !isCallActive, + ), + ], + ), + ); + }), + ], + ), + ), + ], + ); +} + +// Helper function to navigate to appropriate call screen +void _navigateToCallScreen(AgoraCallService agoraCallService) { + final callState = agoraCallService.callState.value; + + if (callState == CallState.connected) { + Get.toNamed(RouteConstant.activeCallScreen); + } else if (callState == CallState.calling) { + Get.toNamed(RouteConstant.outgoingCallScreen); + } else if (callState == CallState.ringing) { + Get.toNamed(RouteConstant.incomingCallScreen); + } +} + +// Helper function to get call gradient colors +List _getCallGradientColors(CallState callState) { + switch (callState) { + case CallState.connected: + return [Color(0xFF4CAF50), Color(0xFF66BB6A)]; + case CallState.calling: + return [Color(0xFFFF9800), Color(0xFFFFB74D)]; + case CallState.ringing: + return [Color(0xFF2196F3), Color(0xFF64B5F6)]; + default: + return [Colors.grey, Colors.grey.shade400]; + } +} + +// Helper function to get call status color +Color _getCallStatusColor(CallState callState) { + switch (callState) { + case CallState.connected: + return Color(0xFF4CAF50); + case CallState.calling: + return Color(0xFFFF9800); + case CallState.ringing: + return Color(0xFF2196F3); + default: + return Colors.grey; + } +} + +// Helper function to build action buttons +Widget _buildActionButton({ + required IconData icon, + required VoidCallback onTap, + required String tooltip, + bool isDestructive = false, +}) { + return Tooltip( + message: tooltip, + child: InkWell( + onTap: onTap, + borderRadius: BorderRadius.circular(20), + child: Container( + padding: EdgeInsets.all(8), + decoration: BoxDecoration( + color: + isDestructive + ? Colors.red.withValues(alpha: 0.2) + : Colors.white.withValues(alpha: 0.2), + borderRadius: BorderRadius.circular(20), + ), + child: Icon( + icon, + color: isDestructive ? Colors.red.shade100 : Colors.white, + size: 15.sp, + ), + ), + ), + ); +} + +// Helper function to get call status text +String _getCallStatusText(AgoraCallService agoraCallService) { + switch (agoraCallService.callState.value) { + case CallState.calling: + return 'Calling ${agoraCallService.callerName.value}...'; + case CallState.ringing: + return 'Incoming call from ${agoraCallService.callerName.value}'; + case CallState.connected: + return 'On call with ${agoraCallService.callerName.value}'; + default: + return ''; + } +} + +// Helper function to format call duration +String _formatDuration(int seconds) { + int hours = seconds ~/ 3600; + int minutes = (seconds % 3600) ~/ 60; + int remainingSeconds = seconds % 60; + + if (hours > 0) { + return '${hours.toString().padLeft(2, '0')}:${minutes.toString().padLeft(2, '0')}:${remainingSeconds.toString().padLeft(2, '0')}'; + } + return '${minutes.toString().padLeft(2, '0')}:${remainingSeconds.toString().padLeft(2, '0')}'; +} + +// App Bar Action Widget +class AppBarAction extends StatelessWidget { + final IconData icon; + final VoidCallback onPressed; + final bool isEnabled; + + const AppBarAction({ + super.key, + required this.icon, + required this.onPressed, + this.isEnabled = true, + }); + + @override + Widget build(BuildContext context) { + return IconButton( + // icon: Icon(icon, color: isEnabled ? Colors.black : Colors.grey.shade500), + icon: Icon(icon, color: Colors.black), + onPressed: onPressed, + ); + } +} + +//............................................................................................................................ diff --git a/lib/screens/chat/widgets/chat_input_area.dart b/lib/screens/chat/widgets/chat_input_area.dart new file mode 100644 index 0000000..401f878 --- /dev/null +++ b/lib/screens/chat/widgets/chat_input_area.dart @@ -0,0 +1,412 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_enum_constant.dart'; +import 'package:onufitness/constants/color_constant.dart'; +import 'package:onufitness/screens/chat/controllers/chat_controller.dart'; +import 'package:onufitness/screens/chat/widgets/show_media_bottom_sheet.dart'; + +class ChatInputAreaWithVoice extends StatelessWidget { + final ChatController chatCtrl; + final TextEditingController textController; + final String targetUserId; + final bool isGroupMessage; + final String targetUserName; + + const ChatInputAreaWithVoice({ + super.key, + required this.chatCtrl, + required this.textController, + required this.targetUserId, + this.isGroupMessage = false, + required this.targetUserName, + }); + + @override + Widget build(BuildContext context) { + return PopScope( + canPop: true, + onPopInvokedWithResult: (didPop, result) { + // Stop recording when navigating back + if (chatCtrl.isRecording.value) { + chatCtrl.cancelRecording(); + } + }, + child: Obx(() { + // Show recording interface when recording + if (chatCtrl.isRecording.value) { + return recordingInterface(context); + } + + // Show normal input interface + return messageInputInterface(context); + }), + ); + } + + // Normal chat input interface + Widget messageInputInterface(BuildContext context) { + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + padding: EdgeInsets.symmetric(horizontal: 8.w, vertical: 10.h), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withValues(alpha: 0.05), + offset: const Offset(0, -1), + blurRadius: 3, + ), + ], + ), + child: Row( + children: [ + // Attachment button + IconButton( + icon: Icon( + Icons.add_circle_outline, + color: Colors.grey.shade600, + size: 26.sp, + ), + onPressed: + () => showMediaOptions( + context, + targetUserId, + isGroup: isGroupMessage, + ), + ), + + // Text input + Expanded( + child: Container( + decoration: BoxDecoration( + color: Colors.grey.shade100, + borderRadius: BorderRadius.circular(22), + ), + child: TextField( + controller: textController, + decoration: InputDecoration( + hintText: "Message", + hintStyle: TextStyle( + color: Colors.grey.shade500, + fontSize: 14.sp, + ), + border: InputBorder.none, + contentPadding: EdgeInsets.symmetric( + horizontal: 16.w, + vertical: 10.h, + ), + ), + maxLines: null, + ), + ), + ), + + SizedBox(width: 8.w), + + // Mic or Send button + ValueListenableBuilder( + valueListenable: textController, + builder: (context, value, child) { + final hasText = value.text.trim().isNotEmpty; + + return GestureDetector( + onTap: hasText ? _sendMessage : null, + onLongPress: !hasText ? () => _startRecording() : null, + child: Container( + width: 40.w, + height: 40.h, + decoration: BoxDecoration( + color: Color(primaryColor), + shape: BoxShape.circle, + ), + child: Icon( + hasText ? Icons.send_rounded : Icons.mic, + color: Colors.black, + size: 20.sp, + ), + ), + ); + }, + ), + ], + ), + ), + + // Bottom padding + Container( + color: Colors.white, + height: MediaQuery.of(context).padding.bottom, + ), + ], + ); + } + + // Compact professional voice recording interface with pause button + Widget recordingInterface(BuildContext context) { + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 12.h), + decoration: BoxDecoration( + color: Colors.white, + border: Border( + top: BorderSide(color: Colors.red.shade100, width: 2), + ), + boxShadow: [ + BoxShadow( + color: Colors.red.withValues(alpha: 0.08), + offset: Offset(0, -2), + blurRadius: 8, + ), + ], + ), + child: Row( + children: [ + // Animated recording indicator (only shows when not paused) + Obx(() { + final isPaused = chatCtrl.isRecordingPaused.value; + return TweenAnimationBuilder( + key: ValueKey(isPaused), + tween: Tween(begin: 0.7, end: 1.0), + duration: const Duration(milliseconds: 600), + curve: Curves.easeInOut, + onEnd: () { + // This will restart via widget rebuild + }, + builder: (context, double value, child) { + return Transform.scale( + scale: isPaused ? 1.0 : value, + child: Container( + width: 10.w, + height: 10.h, + decoration: BoxDecoration( + color: isPaused ? Colors.orange : Colors.red, + shape: BoxShape.circle, + boxShadow: [ + BoxShadow( + color: (isPaused ? Colors.orange : Colors.red) + .withValues(alpha: 0.4), + blurRadius: 6, + spreadRadius: 1, + ), + ], + ), + ), + ); + }, + ); + }), + + SizedBox(width: 12.w), + + // Recording waveform animation (only animates when not paused) + Obx(() { + final isPaused = chatCtrl.isRecordingPaused.value; + return Row( + children: List.generate(15, (index) { + return Padding( + padding: EdgeInsets.only(right: 3.w), + child: TweenAnimationBuilder( + key: ValueKey('$isPaused-$index'), + tween: Tween( + begin: 8.0, + end: + isPaused + ? 8.0 + : [12.0, 18.0, 14.0, 20.0, 16.0][index % 5], + ), + duration: Duration(milliseconds: 300 + (index * 50)), + curve: Curves.easeInOut, + onEnd: () {}, + builder: (context, double height, child) { + return Container( + width: 2.5.w, + height: height.h, + decoration: BoxDecoration( + color: + isPaused + ? Colors.orange.shade300 + : Colors.red.shade400, + borderRadius: BorderRadius.circular(2), + ), + ); + }, + ), + ); + }), + ); + }), + + const Spacer(), + + // Duration display + Obx(() { + final isPaused = chatCtrl.isRecordingPaused.value; + return Container( + padding: EdgeInsets.symmetric( + horizontal: 12.w, + vertical: 6.h, + ), + decoration: BoxDecoration( + color: + isPaused ? Colors.orange.shade50 : Colors.red.shade50, + borderRadius: BorderRadius.circular(16), + ), + child: Text( + chatCtrl.formatVoiceDuration( + chatCtrl.recordingDuration.value, + ), + style: TextStyle( + fontSize: 13.sp, + color: + isPaused + ? Colors.orange.shade700 + : Colors.red.shade700, + fontWeight: FontWeight.w600, + letterSpacing: 0.5, + ), + ), + ); + }), + + SizedBox(width: 12.w), + + // Pause/Resume button + Obx(() { + final isPaused = chatCtrl.isRecordingPaused.value; + return GestureDetector( + onTap: () => chatCtrl.togglePauseRecording(), + child: Container( + width: 38.w, + height: 38.h, + decoration: BoxDecoration( + color: + isPaused + ? Colors.orange.shade100 + : Colors.grey.shade100, + shape: BoxShape.circle, + ), + child: Icon( + isPaused ? Icons.play_arrow_rounded : Icons.pause_rounded, + color: + isPaused + ? Colors.orange.shade700 + : Colors.grey.shade700, + size: 20.sp, + ), + ), + ); + }), + + SizedBox(width: 8.w), + + // Delete button + GestureDetector( + onTap: () => chatCtrl.cancelRecording(), + child: Container( + width: 38.w, + height: 38.h, + decoration: BoxDecoration( + color: Colors.grey.shade100, + shape: BoxShape.circle, + ), + child: Icon( + Icons.delete_outline_rounded, + color: Colors.grey.shade700, + size: 20.sp, + ), + ), + ), + + SizedBox(width: 8.w), + + // Send button + GestureDetector( + onTap: () async { + chatCtrl.stopAndSendRecording( + targetUserId, + isGroup: isGroupMessage, + ); + chatCtrl.isRecordingPaused.value = false; + if (isGroupMessage) { + await chatCtrl.sendGroupChatNotification( + notificationMessage: "Voice message", + notificationTitle: "", + notificationType: ApiEnum.ChatNotification, + tribeId: targetUserId, + ); + } else { + await chatCtrl.sendChatNotification( + notificationMessage: "Voice message", + notificationTitle: "", + notificationType: ApiEnum.ChatNotification, + receiverId: targetUserId, + ); + } + }, + child: Container( + width: 38.w, + height: 38.h, + decoration: BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + boxShadow: [ + BoxShadow( + color: Colors.red.withValues(alpha: 0.3), + blurRadius: 8, + offset: const Offset(0, 2), + ), + ], + ), + child: Icon( + Icons.send_rounded, + color: Colors.white, + size: 18.sp, + ), + ), + ), + ], + ), + ), + + // Bottom padding + Container( + color: Colors.white, + height: MediaQuery.of(context).padding.bottom, + ), + ], + ); + } + + void _sendMessage() { + final text = textController.text.trim(); + if (text.isNotEmpty) { + chatCtrl.sendTextMessage(targetUserId, text, isGroup: isGroupMessage); + textController.clear(); + + if (isGroupMessage) { + chatCtrl.sendGroupChatNotification( + notificationMessage: text, + notificationTitle: "", + notificationType: ApiEnum.ChatNotification, + tribeId: targetUserId, + ); + } else { + chatCtrl.sendChatNotification( + notificationMessage: text, + notificationTitle: "", + notificationType: ApiEnum.ChatNotification, + receiverId: targetUserId, + ); + } + } + } + + void _startRecording() { + chatCtrl.startRecording(targetUserId); + } +} diff --git a/lib/screens/chat/widgets/chat_video_widgets.dart b/lib/screens/chat/widgets/chat_video_widgets.dart new file mode 100644 index 0000000..8b79694 --- /dev/null +++ b/lib/screens/chat/widgets/chat_video_widgets.dart @@ -0,0 +1,128 @@ +import 'dart:io'; + +import 'package:chewie/chewie.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:video_player/video_player.dart'; + +class VideoPlayerScreen extends StatefulWidget { + final String videoPath; + + const VideoPlayerScreen({super.key, required this.videoPath}); + + @override + State createState() => _VideoPlayerScreenState(); +} + +class _VideoPlayerScreenState extends State { + late VideoPlayerController _videoPlayerController; + ChewieController? _chewieController; + bool _isInitialized = false; + String? _errorMessage; + + @override + void initState() { + super.initState(); + _initializePlayer(); + } + + Future _initializePlayer() async { + try { + // Initialize video player controller + if (widget.videoPath.startsWith('http')) { + _videoPlayerController = VideoPlayerController.networkUrl( + Uri.parse(widget.videoPath), + ); + } else { + _videoPlayerController = VideoPlayerController.file( + File(widget.videoPath), + ); + } + + await _videoPlayerController.initialize(); + + // Initialize Chewie controller + _chewieController = ChewieController( + videoPlayerController: _videoPlayerController, + autoPlay: true, + looping: false, + allowFullScreen: true, + allowMuting: true, + showControls: true, + materialProgressColors: ChewieProgressColors( + playedColor: Colors.blue, + handleColor: Colors.white, + backgroundColor: Colors.white, + bufferedColor: Colors.grey, + ), + placeholder: Container( + color: Colors.black, + child: const Center(child: CircularProgressIndicator()), + ), + autoInitialize: true, + ); + + setState(() { + _isInitialized = true; + }); + } catch (e) { + // Error during video initialization + } + } + + @override + void dispose() { + _chewieController?.dispose(); + _videoPlayerController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: AppBar( + backgroundColor: Colors.black, + iconTheme: const IconThemeData(color: Colors.white), + title: const Text( + 'Video Player', + style: TextStyle(color: Colors.white), + ), + ), + body: Center( + child: + _errorMessage != null + ? Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.error_outline, size: 60, color: Colors.red), + const SizedBox(height: 16), + Text( + "Some Error has occured", + style: const TextStyle(color: Colors.white), + textAlign: TextAlign.center, + ), + const SizedBox(height: 16), + ElevatedButton( + onPressed: () => Get.back(), + child: const Text('Go Back'), + ), + ], + ) + : _isInitialized && _chewieController != null + ? Chewie(controller: _chewieController!) + : Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 16), + const Text( + 'Loading video...', + style: TextStyle(color: Colors.white), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/chat/widgets/media_option_widget.dart b/lib/screens/chat/widgets/media_option_widget.dart new file mode 100644 index 0000000..1528f59 --- /dev/null +++ b/lib/screens/chat/widgets/media_option_widget.dart @@ -0,0 +1,41 @@ +import 'package:flutter/material.dart'; + +class MediaOptionButton extends StatelessWidget { + final IconData icon; + final String label; + final Color color; + final VoidCallback onTap; + + const MediaOptionButton({ + super.key, + required this.icon, + required this.label, + required this.color, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onTap, + child: Column( + children: [ + Container( + width: 60, + height: 60, + decoration: BoxDecoration( + color: color.withValues(alpha: 0.1), + shape: BoxShape.circle, + ), + child: Icon(icon, color: color, size: 30), + ), + const SizedBox(height: 8), + Text( + label, + style: const TextStyle(fontSize: 12, color: Colors.black), + ), + ], + ), + ); + } +} diff --git a/lib/screens/chat/widgets/show_media_bottom_sheet.dart b/lib/screens/chat/widgets/show_media_bottom_sheet.dart new file mode 100644 index 0000000..a594579 --- /dev/null +++ b/lib/screens/chat/widgets/show_media_bottom_sheet.dart @@ -0,0 +1,144 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/screens/chat/controllers/chat_controller.dart'; + +void showMediaOptions( + BuildContext context, + String targetUserId, { + bool isGroup = false, +}) { + final chatCtrl = Get.find(); + + Get.bottomSheet( + Container( + padding: const EdgeInsets.all(20), + decoration: const BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 40, + height: 4, + decoration: BoxDecoration( + color: Colors.grey.shade300, + borderRadius: BorderRadius.circular(2), + ), + ), + const SizedBox(height: 16), + const Text( + "Share Media", + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + MediaOptionButton( + icon: Icons.camera_alt, + label: "Camera", + color: Colors.blue, + onTap: () async { + Get.back(); + await chatCtrl.sendImageFromCamera( + targetUserId, + isGroup: isGroup, + ); + }, + ), + MediaOptionButton( + icon: Icons.image, + label: "Gallery", + color: Colors.purple, + onTap: () async { + Get.back(); + await chatCtrl.sendImageFromGallery( + targetUserId, + isGroup: isGroup, + ); + }, + ), + MediaOptionButton( + icon: Icons.videocam, + label: "Video", + color: Colors.red, + onTap: () async { + Get.back(); + await chatCtrl.sendVideo(targetUserId, isGroup: isGroup); + }, + ), + MediaOptionButton( + icon: Icons.insert_drive_file, + label: "Document", + color: Colors.orange, + onTap: () async { + Get.back(); + await chatCtrl.sendDocument(targetUserId, isGroup: isGroup); + }, + ), + ], + ), + const SizedBox(height: 20), + + Container( + color: Colors.white, + + padding: EdgeInsetsDirectional.only( + bottom: MediaQuery.of(context).viewPadding.bottom, + ), + ), + ], + ), + ), + isScrollControlled: true, + ); +} + +// MediaOptionButton widget if not already defined +class MediaOptionButton extends StatelessWidget { + final IconData icon; + final String label; + final Color color; + final VoidCallback onTap; + + const MediaOptionButton({ + super.key, + required this.icon, + required this.label, + required this.color, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onTap, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 60, + height: 60, + decoration: BoxDecoration( + color: color.withValues(alpha: 0.1), + shape: BoxShape.circle, + border: Border.all(color: color.withValues(alpha: 0.3)), + ), + child: Icon(icon, color: color, size: 28), + ), + const SizedBox(height: 8), + Text( + label, + style: TextStyle( + fontSize: 12, + color: Colors.grey.shade700, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ); + } +} diff --git a/lib/screens/chat/widgets/voice/voice_message_buble_widget.dart b/lib/screens/chat/widgets/voice/voice_message_buble_widget.dart new file mode 100644 index 0000000..4bc8a6d --- /dev/null +++ b/lib/screens/chat/widgets/voice/voice_message_buble_widget.dart @@ -0,0 +1,157 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:agora_chat_sdk/agora_chat_sdk.dart'; +import 'package:onufitness/screens/chat/controllers/chat_controller.dart'; + +class VoiceMessageBubble extends StatelessWidget { + final ChatMessage message; + final bool isMe; + final ChatController chatController; + + const VoiceMessageBubble({ + super.key, + required this.message, + required this.isMe, + required this.chatController, + }); + + @override + Widget build(BuildContext context) { + final voiceBody = message.body as ChatVoiceMessageBody; + final msgId = message.msgId; + final duration = voiceBody.duration; + + return Obx(() { + final isPlaying = chatController.isPlayingVoice[msgId] ?? false; + final currentPos = chatController.voiceCurrentPosition[msgId] ?? 0; + final maxDuration = chatController.voiceMaxDuration[msgId] ?? duration; + + return Container( + constraints: BoxConstraints(minWidth: 120.w, maxWidth: Get.width * 0.6), + padding: EdgeInsets.symmetric(horizontal: 12.w, vertical: 10.h), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + // Play/Pause button + InkWell( + onTap: () => chatController.togglePlayVoice(message), + borderRadius: BorderRadius.circular(18.w), + child: Container( + width: 36.w, + height: 36.h, + decoration: BoxDecoration( + color: isMe ? Colors.white : Colors.grey.shade300, + shape: BoxShape.circle, + ), + child: Icon( + isPlaying ? Icons.pause : Icons.play_arrow, + color: isMe ? Colors.black : Colors.black87, + size: 20.sp, + ), + ), + ), + + SizedBox(width: 12.w), + + // Waveform visualization + Expanded( + child: GestureDetector( + behavior: HitTestBehavior.translucent, + onTapDown: (details) { + _handleSeek(context, details.globalPosition); + }, + onHorizontalDragUpdate: (details) { + _handleSeek(context, details.globalPosition); + }, + + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Simple waveform bars + SizedBox( + height: 30.h, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: List.generate(20, (index) { + final heights = [ + 12, + 12, + 8, + 20, + 24, + 20, + 16, + 12, + 8, + 16, + 20, + 24, + 16, + 12, + 20, + 16, + 12, + 8, + 16, + 12, + ]; + final progress = + maxDuration > 0 ? currentPos / maxDuration : 0.0; + final isActive = (index / 20) < progress; + + return Container( + width: 2.w, + height: heights[index].h, + decoration: BoxDecoration( + color: + isActive + ? (isMe ? Colors.white : Colors.blue) + : (isMe + ? Colors.white.withValues(alpha: 0.4) + : Colors.grey.shade400), + borderRadius: BorderRadius.circular(1), + ), + ); + }), + ), + ), + + SizedBox(height: 4.h), + + // Duration text + Text( + isPlaying + ? '${chatController.formatVoiceDuration(currentPos ~/ 1000)} / ${chatController.formatVoiceDuration(duration)}' + : (currentPos != 0 + ? '${chatController.formatVoiceDuration(currentPos ~/ 1000)} / ${chatController.formatVoiceDuration(duration)}' + : chatController.formatVoiceDuration(duration)), + style: TextStyle( + fontSize: 10.sp, + color: isMe ? Colors.black54 : Colors.grey.shade600, + ), + ), + ], + ), + ), + ), + ], + ), + ); + }); + } + + void _handleSeek(BuildContext context, Offset globalPosition) { + final RenderBox? box = context.findRenderObject() as RenderBox?; + if (box == null) return; + + final localPosition = box.globalToLocal(globalPosition); + final width = box.size.width; + + // Calculate seek percentage based on the expanded waveform area + final seekPercentage = (localPosition.dx / width).clamp(0.0, 1.0); + + chatController.seekVoiceMessage(message, seekPercentage); + } +} diff --git a/lib/screens/echoboard/controllers/connection_and_tribe_controller.dart b/lib/screens/echoboard/controllers/connection_and_tribe_controller.dart new file mode 100644 index 0000000..bfcc798 --- /dev/null +++ b/lib/screens/echoboard/controllers/connection_and_tribe_controller.dart @@ -0,0 +1,622 @@ +import 'dart:convert'; +import 'dart:io'; +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/screens/echoboard/models/get_all_tribr_list_with_members_response_model.dart'; +import 'package:onufitness/screens/echoboard/models/get_user_list_for_connection_request_response_model.dart'; +import 'package:onufitness/screens/echoboard/models/tribe/single_tribe_details_response_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class SocialConnectionController extends GetxController { + @override + void onInit() { + searchController = TextEditingController(); + tribeNameController = TextEditingController(); + tribeSearchController = TextEditingController(); + super.onInit(); + } + + TextEditingController searchController = TextEditingController(); + TextEditingController tribeSearchController = TextEditingController(); + RxBool isLoading = false.obs; + RxString searchValue = ''.obs; + RxString tribeSearchValue = ''.obs; + RxInt currentPage = 1.obs; + RxInt tribeCurrentPage = 1.obs; + final int pageSize = 20; + final int tribePageSize = 20; + RxString errorMessage = ''.obs; + + // Separate data models for each tab to prevent data mixing + Rx invitationsData = + Rx(null); + Rx friendsData = + Rx(null); + Rx suggestedUsersData = + Rx(null); + Rx allUsersData = + Rx(null); + Rx tribeMemberData = + Rx(null); + // Tribe data + Rx tribesData = + Rx(null); + RxBool isTribesLoading = false.obs; + RxBool isTribePaginationLoading = false.obs; + RxBool hasMoreTribes = true.obs; + + // This is a computed property to get the correct data based on current tab + Rx get usersData { + if (currentTab.value == "Invitations") { + return invitationsData; + } else if (currentTab.value == "Friends") { + return friendsData; + } else if (currentTab.value == "Suggested") { + return suggestedUsersData; + } else if (currentTab.value == "Pending") { + return allUsersData; + } else if (currentTab.value == "TribeMembers") { + return tribeMemberData; + } + // Fallback (should never happen in this case) + return Rx(null); + } + + void clearCurrentTabData() { + if (currentTab.value == "Invitations") { + invitationsData.value = null; + } else if (currentTab.value == "Friends") { + friendsData.value = null; + } else if (currentTab.value == "Suggested") { + suggestedUsersData.value = null; + } else if (currentTab.value == "Pending") { + allUsersData.value = null; + } else if (currentTab.value == "TribeMembers") { + tribeMemberData.value = null; + } + } + + void clearAllTabData() { + invitationsData.value = null; + friendsData.value = null; + suggestedUsersData.value = null; + allUsersData.value = null; + tribeMemberData.value = null; + } + + // Track the current tab + RxString currentTab = "Invitations".obs; + + // Check if user is member of tribe API call............................................................... + RxBool isCheckingTribeMembership = false.obs; + + Future checkUserInTribe({required int tribeId}) async { + isCheckingTribeMembership(true); + bool isMember = false; + + try { + String extendedURL = "/api/Socials/check-user-in-tribe/$tribeId"; + + var response = await ApiBase.getRequest(extendedURL: extendedURL); + + if (response.statusCode == 200) { + // Parse the response + final parsedData = jsonDecode(response.body); + isMember = parsedData['data'] ?? true; + } else if (response.statusCode == 400) { + // User is not a member + isMember = false; + Future.delayed(Duration(milliseconds: 300), () { + customSnackbar( + title: "Access Limited", + message: "You're not a member of the tribe this post belongs to.", + duration: 3, + ); + }); + } else { + Future.delayed(Duration(milliseconds: 300), () { + customSnackbar( + title: "Access Limited", + message: "You're not a member of the tribe this post belongs to.", + duration: 3, + ); + }); + isMember = false; + } + } catch (e) { + Future.delayed(Duration(milliseconds: 300), () { + customSnackbar( + title: "Error", + message: "Failed to verify tribe membership. Please try again.", + duration: 2, + ); + }); + + isMember = false; + } + + isCheckingTribeMembership(false); + return isMember; + } + + // Get Single tribes with tribe ID.................................................................................................. + RxBool isSingleTribeLoading = false.obs; + Rx singleTribeDetails = + Rx(null); + Future getSingleTribeDetails({required int tribeId}) async { + isSingleTribeLoading.value = true; + bool ret = false; + + try { + String extendedURL = + "/api/Socials/get-tribe-details-with-member-count/$tribeId"; + + var response = await ApiBase.getRequest(extendedURL: extendedURL); + + if (response.statusCode == 200) { + final parsedData = singleTribeDetailsResponseModelFromJson( + response.body, + ); + + singleTribeDetails.value = parsedData; + ret = true; + } else { + ret = false; + } + } catch (e) { + ret = false; + } + + isSingleTribeLoading.value = false; + return ret; + } + + // Get all tribes with members.................................................................................................. + Future getAllTribesWithMembers({bool refresh = false}) async { + if (refresh) { + tribeCurrentPage.value = 1; + hasMoreTribes.value = true; + isTribesLoading.value = true; + } else { + if (!hasMoreTribes.value || isTribePaginationLoading.value) { + return false; + } + isTribePaginationLoading.value = true; + } + + bool ret = false; + + try { + String extendedURL = + "/api/Socials/get-tribes-by-memberID?PageNumber=${tribeCurrentPage.value}&PageSize=$tribePageSize"; + + if (tribeSearchValue.value.isNotEmpty) { + extendedURL += "&SearchType=name&SearchValue=${tribeSearchValue.value}"; + } + + var response = await ApiBase.getRequest(extendedURL: extendedURL); + + if (response.statusCode == 200) { + final parsedData = tribeListWithMembersResponseModelFromJson( + response.body, + ); + + if (refresh || tribeCurrentPage.value == 1) { + tribesData.value = parsedData; + } else { + // Append to existing data for pagination + if (tribesData.value?.data?.items != null && + parsedData.data?.items != null) { + tribesData.value!.data!.items!.addAll(parsedData.data!.items!); + tribesData.value!.data!.totalCount = parsedData.data!.totalCount; + tribesData.refresh(); + } else { + tribesData.value = parsedData; + } + } + + // Check if there are more pages + final totalCount = parsedData.data?.totalCount ?? 0; + final currentItemCount = tribesData.value?.data?.items?.length ?? 0; + hasMoreTribes.value = currentItemCount < totalCount; + + if (hasMoreTribes.value) { + tribeCurrentPage.value++; + } + + ret = true; + } else { + errorMessage('Failed to load tribes: ${response.statusCode}'); + ret = false; + } + } catch (e) { + errorMessage('Error: ${e.toString()}'); + ret = false; + } + + isTribesLoading.value = false; + isTribePaginationLoading.value = false; + return ret; + } + + // Clear tribe search + void clearTribeSearch() { + tribeSearchValue.value = ''; + tribeSearchController.clear(); + getAllTribesWithMembers(refresh: true); + } + + // Get all user and Search User by name + Future searchUsers({int? tribeId, bool clearOldData = true}) async { + if (clearOldData) { + clearCurrentTabData(); + } + isLoading(true); + errorMessage(''); + bool ret = false; + + try { + String extendedURL = ""; + if (currentTab.value == "Invitations") { + extendedURL = + "${ApiUrl.getInvitationUserlist}?PageNumber=${currentPage.value}&PageSize=$pageSize&SearchType=name&SearchValue=${searchValue.value}"; + } + + if (currentTab.value == "Friends") { + extendedURL = + "${ApiUrl.getFriendsList}?PageNumber=${currentPage.value}&PageSize=$pageSize&SearchType=name&SearchValue=${searchValue.value}"; + } + if (currentTab.value == "Suggested") { + extendedURL = + "${ApiUrl.getSuggestedUserConnection}?PageNumber=${currentPage.value}&PageSize=$pageSize"; + } + + if (currentTab.value == "Pending") { + if (searchValue.value != "" || searchController.text.isNotEmpty) { + //For showing data from all users + extendedURL = + "${ApiUrl.getSocialUsers}?PageNumber=${currentPage.value}&PageSize=$pageSize&SearchType=name&SearchValue=${searchValue.value}"; + } else { + extendedURL = + "${ApiUrl.getSocialUsers}?connectionStatus=Pending&PageNumber=${currentPage.value}&PageSize=$pageSize"; + } + } + + if (currentTab.value == "TribeMembers") { + extendedURL = + "${ApiUrl.getTribeMemberDetailsByID}/$tribeId?PageNumber=${currentPage.value}&PageSize=$pageSize&SearchType=name&SearchValue=${searchValue.value}"; + } + + var response = await ApiBase.getRequest(extendedURL: extendedURL); + + if (response.statusCode == 200) { + final parsedData = getAllUsersForSendConnectionModelFromJson( + response.body, + ); + + // Update the appropriate data model + if (currentTab.value == "Invitations") { + invitationsData.value = parsedData; + } else if (currentTab.value == "Friends") { + friendsData.value = parsedData; + } else if (currentTab.value == "Suggested") { + suggestedUsersData.value = parsedData; + } else if (currentTab.value == "Pending") { + allUsersData.value = parsedData; + } else if (currentTab.value == "TribeMembers") { + tribeMemberData.value = parsedData; + } + // Ensure currentPage is valid based on the new total count + final totalCount = parsedData.data?.totalCount ?? 0; + final totalPages = totalCount > 0 ? (totalCount / pageSize).ceil() : 1; + + // If current page is greater than total pages, adjust it + if (currentPage.value > totalPages && totalPages > 0) { + currentPage.value = totalPages; + } + + ret = true; + } else { + errorMessage('Failed to load users: ${response.statusCode}'); + ret = false; + } + } catch (e) { + errorMessage('Error: ${e.toString()}'); + ret = false; + } + + isLoading(false); + return ret; + } + + // Send Connection Request API call............................................................... + RxList sendConnectionRequestLoading = [].obs; + RxBool singleSendConnectionRequestLoading = false.obs; + Future sendConnectionRequest(String userId) async { + sendConnectionRequestLoading.add(userId); + singleSendConnectionRequestLoading(true); + bool ret = false; + + try { + var response = await ApiBase.postRequest( + extendedURL: ApiUrl.createConnection, + body: {'receiverID': userId}, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + // Update connection status in appropriate data model + + if (currentTab.value == "Pending") { + final userList = allUsersData.value?.data?.items; + if (userList != null) { + final user = userList.firstWhereOrNull((u) => u.userId == userId); + if (user != null) { + user.connectionStatus = "Pending"; + allUsersData.refresh(); // to trigger UI update + } + } + } else if (currentTab.value == "Suggested") { + final userList = suggestedUsersData.value?.data?.items; + if (userList != null) { + final user = userList.firstWhereOrNull((u) => u.userId == userId); + if (user != null) { + user.connectionStatus = "Pending"; + suggestedUsersData.refresh(); // to trigger UI update + } + } + } + ret = true; + } else { + customSnackbar( + title: "Failure", + message: "Failed to send connection request.", + ); + ret = false; + } + } catch (e) { + customSnackbar( + title: "Error", + message: "Failed to send connection request. Please try again later.", + ); + ret = false; + } + + sendConnectionRequestLoading.remove(userId); + singleSendConnectionRequestLoading(false); + return ret; + } + //Remobe frienf API call................................................................................ + + RxBool isRemoveConnectionLoading = false.obs; + Future removeFriend({required String connectionId}) async { + isRemoveConnectionLoading(true); + try { + final response = await ApiBase.deleteRequest( + extendedURL: "/api/Socials/user-delete-connection", + body: {"connectedUserID": connectionId}, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + return true; + } else { + return false; + } + } catch (e) { + return false; + } finally { + isRemoveConnectionLoading(false); + } + } + + // Response to Connection Request API call.............................................................. + RxList responseToInvitationLoading = [].obs; + RxBool isRespondingToConnection = false.obs; + Future respondToConnectionRequest(String userId, String status) async { + responseToInvitationLoading.add(userId); + isRespondingToConnection(true); + bool ret = false; + + try { + var response = await ApiBase.putRequest( + extendedURL: ApiUrl.responseToConnectRequest, + body: {'connectedUserID': userId, 'connectionStatus': status}, + ); + + if (response.statusCode == 200 || response.statusCode == 204) { + // Remove the user from the list after responding + if (currentTab.value == "Invitations") { + final userList = invitationsData.value?.data?.items; + if (userList != null) { + userList.removeWhere((u) => u.userId == userId); + + // Update total count when removing items + if (invitationsData.value?.data?.totalCount != null) { + invitationsData.value!.data!.totalCount = + invitationsData.value!.data!.totalCount! - 1; + } + + invitationsData.refresh(); + + final totalCount = invitationsData.value?.data?.totalCount ?? 0; + final totalPages = + totalCount > 0 ? (totalCount / pageSize).ceil() : 1; + + if (currentPage.value > totalPages && totalPages > 0) { + currentPage.value = totalPages; + (); + } + } + } + + String message = + status == "Accepted" + ? "Connection request accepted successfully!" + : "Connection request rejected"; + + customSnackbar(title: "Success", message: message, duration: 1); + + ret = true; + } else { + customSnackbar( + title: "Failure", + message: "Failed to respond to connection request.", + duration: 1, + ); + ret = false; + } + } catch (e) { + customSnackbar( + title: "Error", + message: + "Failed to respond to connection request. Please try again later.", + duration: 1, + ); + ret = false; + } + + responseToInvitationLoading.remove(userId); + isRespondingToConnection(false); + return ret; + } + + //..................................................................................... + // Pagination........................................................................ + //..................................................................................... + void onPageChanged(int page) { + currentPage.value = page; + searchUsers(); + } + + void onSearchChanged(String value) { + searchValue.value = value; + currentPage.value = 1; + } + + void clearSearch() { + searchValue.value = ''; + searchController.clear(); + currentPage.value = 1; + clearCurrentTabData(); // Clear old data + searchUsers(); + } + + void changeTab(String tab) { + if (currentTab.value == tab) return; // Don't reload if same tab + + // Clear search when changing tabs + searchValue.value = ''; + searchController.clear(); + currentPage.value = 1; + + // Update tab + currentTab.value = tab; + + // Clear old data and fetch new + clearCurrentTabData(); + searchUsers(); + } + + //..................................................................................... + // Tribe functions........................................................................ + //..................................................................................... + RxList selectedUserIds = [].obs; + Rx selectedTribeImage = Rx(null); + TextEditingController tribeNameController = TextEditingController(); + Future pickTribeImage() async { + final picker = ImagePicker(); + final XFile? image = await picker.pickImage(source: ImageSource.gallery); + if (image != null) { + selectedTribeImage.value = File(image.path); + } + } + + Future createTribe() async { + final imageFile = selectedTribeImage.value; + final tribeName = tribeNameController.text.trim(); + bool ret = false; + if (tribeName.isEmpty) { + customSnackbar( + title: "Error", + message: "Please enter a tribe name", + duration: 1, + ); + return false; + } + + isLoading.value = true; + + try { + final Map body = {'TribeName': tribeName}; + + for (var i = 0; i < selectedUserIds.length; i++) { + body['TribeMemberIDs[$i]'] = selectedUserIds[i]; + } + + final response = await ApiBase.postAnyFileWithMimeType( + extendedURL: ApiUrl.createTribe, + file: imageFile != null ? XFile(imageFile.path) : null, + fileNameKey: 'TribeImage', + body: body, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + ret = true; + + selectedTribeImage.value = null; + tribeNameController.clear(); + selectedUserIds.clear(); + clearAllUserSelections(); + } else { + ret = false; + customSnackbar( + title: "Failed", + message: "Tribe creation failed. Please try again later.", + duration: 1, + ); + } + } catch (e, stack) { + ret = false; + customSnackbar( + title: "Error", + message: "An unexpected error occurred. Please check your connection.", + duration: 1, + ); + } finally { + isLoading.value = false; + } + return ret; + } + + //......... Tribe User Selection..................................................................... + final Map _selectedUserMap = + {}.obs; + + List get allSelectedUsers => _selectedUserMap.values.toList(); + + void tribeUserSelection(String userId) { + final data = usersData.value?.data; + final items = data?.items ?? []; + + if (selectedUserIds.contains(userId)) { + selectedUserIds.remove(userId); + _selectedUserMap.remove(userId); + } else { + selectedUserIds.add(userId); + final userIndex = items.indexWhere((user) => user.userId == userId); + + if (userIndex >= 0) { + _selectedUserMap[userId] = items[userIndex]; + } + } + } + + void clearAllUserSelections() { + selectedUserIds.clear(); + _selectedUserMap.clear(); + } + + //..................................................................................... +} diff --git a/lib/screens/echoboard/controllers/delete_report_controller.dart b/lib/screens/echoboard/controllers/delete_report_controller.dart new file mode 100644 index 0000000..f828325 --- /dev/null +++ b/lib/screens/echoboard/controllers/delete_report_controller.dart @@ -0,0 +1,33 @@ +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; + +class PostMorePressController extends GetxController { + RxBool isDeleting = false.obs; + + Future deletePost(String postId) async { + bool ret = false; + isDeleting.value = true; + try { + var response = await ApiBase.deleteRequest( + extendedURL: "${ApiUrl.deleteEchoboardPost}/$postId", + body: {}, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + ret = true; + } else { + ret = false; + } + } catch (e) { + ret = false; + } + isDeleting.value = false; + return ret; + } + + Future reportPost(String postId) async { + bool ret = false; + return ret; + } +} diff --git a/lib/screens/echoboard/controllers/echoboard_controller.dart b/lib/screens/echoboard/controllers/echoboard_controller.dart new file mode 100644 index 0000000..2ba8221 --- /dev/null +++ b/lib/screens/echoboard/controllers/echoboard_controller.dart @@ -0,0 +1,1217 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:developer'; +import 'dart:io'; +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/constants/api_enum_constant.dart'; +import 'package:onufitness/screens/echoboard/models/get_exclusive_connections_response_model.dart'; +import 'package:onufitness/screens/echoboard/models/poll_submit_response_model.dart'; +import 'package:onufitness/screens/echoboard/models/post_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/utils/custom_cache_manager.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; +import 'package:video_player/video_player.dart'; + +class EchoBoardController extends GetxController { + // Privacy edit state + final selectedPrivacyId = 0.obs; + final isUpdatingPrivacy = false.obs; + final RxString currentEditingPostId = ''.obs; + + // Exclusive connections for privacy edit + ExclusiveConnectionResponseModel privacyExclusiveConnections = + ExclusiveConnectionResponseModel(); + final isPrivacyConnectionsLoading = false.obs; + final isPrivacyConnectionPaginationLoading = false.obs; + final privacyConnectionCurrentPage = 1.obs; + final privacyConnectionPageSize = 15; + final hasMorePrivacyConnections = true.obs; + final privacyConnectionSearchValue = ''.obs; + TextEditingController privacyConnectionSearchController = + TextEditingController(); + + // Track selected connections for privacy + final RxList selectedPrivacyConnectionIds = [].obs; + final RxList> selectedPrivacyConnections = + >[].obs; + + // Track original state for comparison + final RxList originalPrivacyConnectionIds = [].obs; + + //.......................................................................................... + // Initialize privacy edit state + //.......................................................................................... + void initializePrivacyEdit(SocialPostItem post) { + selectedPrivacyId.value = + post.postVisibilityId ?? ApiEnum.publicPostVisibilityID; + currentEditingPostId.value = post.postId.toString(); + + // Reset connection states - THIS IS CORRECT for initial load + selectedPrivacyConnectionIds.clear(); + selectedPrivacyConnections.clear(); + originalPrivacyConnectionIds.clear(); + privacyConnectionSearchValue.value = ''; + privacyConnectionSearchController.clear(); + privacyConnectionCurrentPage.value = 1; + hasMorePrivacyConnections.value = true; + privacyExclusiveConnections = ExclusiveConnectionResponseModel(); + } + + //.......................................................................................... + // Select privacy option + //.......................................................................................... + void selectPrivacy(int privacyId) { + selectedPrivacyId.value = privacyId; + } + + //.......................................................................................... + // Fetch exclusive connections for a specific post + //.......................................................................................... + + Future fetchExclusiveConnectionsForPost( + int postId, { + bool refresh = false, + }) async { + if (refresh) { + privacyConnectionCurrentPage.value = 1; + hasMorePrivacyConnections.value = true; + privacyExclusiveConnections = ExclusiveConnectionResponseModel(); + } else { + if (isPrivacyConnectionPaginationLoading.value || + !hasMorePrivacyConnections.value) { + return false; + } + } + + if (refresh) { + isPrivacyConnectionsLoading.value = true; + } else { + isPrivacyConnectionPaginationLoading.value = true; + } + final userSearchValue = privacyConnectionSearchValue.value.trim(); + + try { + final url = + userSearchValue.isEmpty + ? "${ApiUrl.getExclusiveConnectionsByPost}/$postId?PageNumber=${privacyConnectionCurrentPage.value}&PageSize=$privacyConnectionPageSize" + : "${ApiUrl.getExclusiveConnectionsByPost}/$postId?PageNumber=${privacyConnectionCurrentPage.value}&PageSize=$privacyConnectionPageSize&SearchType=name&SearchValue=$userSearchValue"; + + final response = await ApiBase.getRequest(extendedURL: url); + + if (response.statusCode == 200 || response.statusCode == 201) { + final newData = exclusiveConnectionResponseModelFromJson(response.body); + + if (newData.isSuccess == true && newData.data != null) { + if (refresh) { + privacyExclusiveConnections = newData; + + // This preserves user selections during search + if (originalPrivacyConnectionIds.isEmpty) { + for (var connection in newData.data?.items ?? []) { + if (connection.isAdded == true) { + final id = + connection.connectedUserId != null + ? 'user_${connection.connectedUserId}' + : 'tribe_${connection.tribeId}'; + + selectedPrivacyConnectionIds.add(id); + originalPrivacyConnectionIds.add(id); + selectedPrivacyConnections.add({ + "TribeID": connection.tribeId, + "ConnectedUserID": connection.connectedUserId, + }); + } + } + } + } else { + final currentItems = privacyExclusiveConnections.data?.items ?? []; + final newItems = newData.data?.items ?? []; + privacyExclusiveConnections.data?.items = [ + ...currentItems, + ...newItems, + ]; + privacyExclusiveConnections.data?.totalCount = + newData.data?.totalCount; + } + + final fetchedCount = + privacyExclusiveConnections.data?.items?.length ?? 0; + final totalCount = newData.data?.totalCount ?? 0; + hasMorePrivacyConnections.value = fetchedCount < totalCount; + + if (newData.data?.items?.isNotEmpty == true) { + privacyConnectionCurrentPage.value++; + } else { + hasMorePrivacyConnections.value = false; + } + + return true; + } + } + } catch (e) { + log("Error fetching exclusive connections for post: $e"); + } finally { + isPrivacyConnectionsLoading.value = false; + isPrivacyConnectionPaginationLoading.value = false; + } + + return false; + } + + //.......................................................................................... + void searchPrivacyConnections(int postId) { + privacyConnectionCurrentPage.value = 1; + hasMorePrivacyConnections.value = true; + // ✅ Don't clear selections when searching + fetchExclusiveConnectionsForPost(postId, refresh: true); + } + + //.......................................................................................... + // ✅ UPDATED: Clear search - preserve selections + //.......................................................................................... + void clearPrivacySearch() { + privacyConnectionSearchValue.value = ''; + privacyConnectionSearchController.clear(); + final postId = int.tryParse(currentEditingPostId.value); + if (postId != null) { + // ✅ Don't clear selections when clearing search + searchPrivacyConnections(postId); + } + } + + //.......................................................................................... + // Toggle connection selection + //.......................................................................................... + void togglePrivacyConnection(ExclusiveConnections connection) { + final isUser = connection.connectedUserId != null; + final id = + isUser + ? 'user_${connection.connectedUserId}' + : 'tribe_${connection.tribeId}'; + + if (selectedPrivacyConnectionIds.contains(id)) { + // Unselect + selectedPrivacyConnectionIds.remove(id); + selectedPrivacyConnections.removeWhere((element) { + return (connection.tribeId != null && + element['TribeID'] == connection.tribeId) || + (connection.connectedUserId != null && + element['ConnectedUserID'] == connection.connectedUserId); + }); + } else { + // Select + selectedPrivacyConnectionIds.add(id); + selectedPrivacyConnections.add({ + "TribeID": connection.tribeId, + "ConnectedUserID": connection.connectedUserId, + }); + } + } + + //.......................................................................................... + // Update post privacy + //.......................................................................................... + Future updatePostPrivacy(int postId) async { + isUpdatingPrivacy.value = true; + + try { + // Determine which connections were added and removed + final newConnections = >[]; + final deletedConnections = >[]; + + // If privacy is exclusive, calculate differences + if (selectedPrivacyId.value == ApiEnum.exclusivePostVisibilityID) { + // Find newly added connections + for (var connection in selectedPrivacyConnections) { + final id = + connection['ConnectedUserID'] != null + ? 'user_${connection['ConnectedUserID']}' + : 'tribe_${connection['TribeID']}'; + + if (!originalPrivacyConnectionIds.contains(id)) { + newConnections.add(connection); + } + } + + // Find removed connections + for (var originalId in originalPrivacyConnectionIds) { + if (!selectedPrivacyConnectionIds.contains(originalId)) { + // Parse the ID to get the connection details + if (originalId.startsWith('user_')) { + final userId = originalId.replaceFirst('user_', ''); + deletedConnections.add({ + "TribeID": null, + "ConnectedUserID": userId, + }); + } else if (originalId.startsWith('tribe_')) { + final tribeId = int.tryParse( + originalId.replaceFirst('tribe_', ''), + ); + deletedConnections.add({ + "TribeID": tribeId, + "ConnectedUserID": null, + }); + } + } + } + } + + final body = { + "PostID": postId, + "PostVisibilityID": selectedPrivacyId.value, + "IsTribe": "false", + "TribeID": "0", + "NewPostExclusiveConnectionJson": jsonEncode(newConnections), + "DeletePostExclusiveConnectionJson": jsonEncode(deletedConnections), + }; + log("Update privacy request body: ${body.toString()}"); + + var response = await ApiBase.patchAnyFileWithMimeType( + extendedURL: ApiUrl.updatePost, + body: body, + file: null, + fileNameKey: null, + ); + log("Update privacy response: ${response.body}"); + + if (response.statusCode == 200 || response.statusCode == 201) { + final responseData = jsonDecode(response.body); + + if (responseData['isSuccess'] == true) { + // Update the post in cache with new privacy settings + final post = getPostFromCache(postId.toString()); + if (post != null) { + post.postVisibilityId = selectedPrivacyId.value; + updatePostInCache(post); + } + + Future.delayed(Duration(milliseconds: 100), () { + customSnackbar( + title: "Success", + message: "Post privacy updated successfully", + duration: 2, + ); + }); + refreshPosts(); + + return true; + } + } + + customSnackbar( + title: "Error", + message: "Failed to update post privacy", + duration: 2, + ); + return false; + } catch (e) { + log("Error updating post privacy: $e"); + customSnackbar( + title: "Error", + message: "Failed to update post privacy", + duration: 2, + ); + return false; + } finally { + isUpdatingPrivacy.value = false; + } + } + + //..................................................................................................... + @override + void onInit() async { + captionCtrl = TextEditingController(); + connectionSearchController = TextEditingController(); + privacyConnectionSearchController = TextEditingController(); + super.onInit(); + // fetchPosts(refresh: true); + } + + @override + void onClose() { + captionCtrl.dispose(); + videoController.value?.dispose(); + privacyConnectionSearchController.dispose(); + super.onClose(); + } + //.......................................................................................... + //.......................................................................................... + // fetchPosts API call..................................................................... + //.......................................................................................... + //.......................................................................................... + + final posts = [].obs; + final isLoading = true.obs; + final currentPage = 1.obs; + final pageSize = 15.obs; + final hasMoreData = true.obs; + final searchType = ''.obs; + final searchValue = ''.obs; + + // Cache map for storing posts with their IDs as keys + final RxMap postsCache = + {}.obs; + + // For video preview + Rxn videoController = Rxn(); + final isVideoInitialized = false.obs; + final isVideoPlaying = false.obs; + + PostModel postModel = PostModel(); + RxBool isPostFetchedLoading = false.obs; + final isPaginationLoading = false.obs; + + Future fetchPosts({bool refresh = false, int tribeId = 0}) async { + log( + "fetchPosts called with refresh: $refresh, currentPage: ${currentPage.value}", + ); + + // Check if we need to exit early + if (!refresh) { + if (isPaginationLoading.value) { + log("Pagination already in progress, skipping fetch"); + return false; + } + if (hasMoreData.value == false) { + log("No more data available, skipping fetch"); + return false; + } + } + + // Set loading states + if (refresh) { + currentPage.value = 1; + hasMoreData.value = true; + posts.clear(); + postsCache.clear(); + isPostFetchedLoading.value = true; + } else { + isPaginationLoading.value = true; + } + + try { + final url = + tribeId != 0 + ? "/api/Socials/get-tribe-posts/$tribeId?PageNumber=${currentPage.value}&PageSize=${pageSize.value}" + : "${ApiUrl.getPosts}?PageNumber=${currentPage.value}&PageSize=${pageSize.value}&SearchType=${searchType.value}&SearchValue=${searchValue.value}"; + + log("Fetching posts with URL: $url"); + + final response = await ApiBase.getRequest(extendedURL: url); + + postModel = postModelFromJson(response.body); + + if (response.statusCode == 200 && postModel.isSuccess == true) { + final newItems = postModel.data?.items ?? []; + log("Fetched ${newItems.length} new items"); + //.....Below one is the Previous One........................................... + // if (newItems.isNotEmpty) { + // for (var post in newItems) { + // if (post.postId != null) { + // postsCache[post.postId.toString()] = post; + // } + // } + + // posts.addAll(newItems); + // // Increment page number for next fetch + // currentPage.value++; + // log("Updated current page to: ${currentPage.value}"); + // } + + //......Below one is For Image Optimization....................................... + + if (newItems.isNotEmpty) { + for (var post in newItems) { + if (post.postId != null) { + postsCache[post.postId.toString()] = post; + } + + final imageUrl = getFirstImageUrl(post); + if (imageUrl != null && + imageUrl.isNotEmpty && + _isValidNetworkUrl(imageUrl)) { + WidgetsBinding.instance.addPostFrameCallback((_) { + final context1 = Get.context; + if (context1 != null && context1.mounted) { + precacheImage( + CachedNetworkImageProvider( + imageUrl, + cacheManager: CustomCacheManager.instance, + ), + context1, + ); + } + }); + } + } + + posts.addAll(newItems); + currentPage.value++; + log("Updated current page to: ${currentPage.value}"); + } + //........................................................ + if (newItems.isEmpty) { + log("No more data available, setting hasMoreData to false"); + hasMoreData.value = false; + } + return true; + } else { + return false; + } + } catch (e) { + log("Exception in fetchPosts: $e"); + } finally { + isPostFetchedLoading.value = false; + isPaginationLoading.value = false; + log( + "Loading states reset: isPostFetchedLoading=${isPostFetchedLoading.value}, isPaginationLoading=${isPaginationLoading.value}", + ); + } + isPostFetchedLoading(false); + return false; + } + + bool _isValidNetworkUrl(String url) { + try { + final uri = Uri.parse(url); + // Check if it's a valid HTTP/HTTPS URL with a host + return (uri.scheme == 'http' || uri.scheme == 'https') && + uri.host.isNotEmpty; + } catch (e) { + log("Invalid URL format: $url, error: $e"); + return false; + } + } + + Future refreshPosts() async { + log("Refreshing posts"); + await fetchPosts(refresh: true); + } + + // Get a post from cache by ID....................................................................................... + SocialPostItem? getPostFromCache(String id) { + return postsCache[id]; + } + + // Add or update a post in the cache................................................................................. + void updatePostInCache(SocialPostItem post) { + if (post.postId != null) { + postsCache[post.postId.toString()] = post; + + // Also update in the main posts list if it exists there + final index = posts.indexWhere((p) => p.postId == post.postId); + if (index != -1) { + posts[index] = post; + // Force UI update + posts.refresh(); + } + } + } + + Future initializeVideoPlayer(String videoPath) async { + videoController.value?.dispose(); + final controller = VideoPlayerController.file(File(videoPath)); + videoController.value = controller; + await controller.initialize(); + await controller.setLooping(true); + isVideoInitialized.value = true; + toggleVideoPlayback(); + } + + void toggleVideoPlayback() { + if (!isVideoInitialized.value) return; + + if (isVideoPlaying.value) { + videoController.value?.pause(); + } else { + videoController.value?.play(); + } + + isVideoPlaying.value = !isVideoPlaying.value; + } + + // Utility method to check if a post has media + bool hasMedia(SocialPostItem post) { + return (post.mediaFiles != null && post.mediaFiles!.isNotEmpty); + } + + // Utility method to check if a post has a video + bool hasVideo(SocialPostItem post) { + if (post.mediaFiles == null || post.mediaFiles!.isEmpty) return false; + return post.mediaFiles!.any( + (media) => + media.mediaType != null && + media.mediaType!.toLowerCase().contains('video'), + ); + } + + // Utility method to check if a post has an image + bool hasImage(SocialPostItem post) { + if (post.mediaFiles == null || post.mediaFiles!.isEmpty) return false; + return post.mediaFiles!.any( + (media) => + media.mediaType != null && + media.mediaType!.toLowerCase().contains('image'), + ); + } + + // Utility method to check if a post has a poll + bool hasPoll(SocialPostItem post) { + return post.poll != null; + } + + // Utility method to get the first image URL if exists + String? getFirstImageUrl(SocialPostItem post) { + if (!hasImage(post)) return null; + + final imageMedia = post.mediaFiles!.firstWhere( + (media) => + media.mediaType != null && + media.mediaType!.toLowerCase().contains('image'), + orElse: () => MediaFile(), + ); + + return imageMedia.mediaFile; + } + + // Utility method to get the first video URL if exists + String? getFirstVideoUrl(SocialPostItem post) { + if (!hasVideo(post)) return null; + + final videoMedia = post.mediaFiles!.firstWhere( + (media) => + media.mediaType != null && + media.mediaType!.toLowerCase().contains('video'), + orElse: () => MediaFile(), + ); + + return videoMedia.mediaFile; + } + + //.................................................................................................................................................................................................. + //........ Share Post Feature................................................................................................. + //.................................................................................................................................................................................................. + + final RxBool isLoadingSharedPost = false.obs; + Future loadSpecificPost({ + required String postId, + int tribeId = 0, + }) async { + log('Loading specific post: $postId'); + + isLoadingSharedPost.value = true; + + try { + // Find the existing index before removing (to maintain position if post exists) + final existingIndex = posts.indexWhere( + (p) => p.postId.toString() == postId, + ); + + // Remove from list and cache to ensure fresh data + posts.removeWhere((p) => p.postId.toString() == postId); + postsCache.remove(postId); + + // Always fetch from API + log('Fetching post from API'); + final url = + tribeId != 0 + ? "${ApiUrl.getSinglePostByID}/$postId?tribeId=$tribeId&pageNumber=1&pageSize=10" + : "${ApiUrl.getSinglePostByID}/$postId?pageNumber=1&pageSize=10"; + + final response = await ApiBase.getRequest(extendedURL: url); + + log("Specific post API statuscode: ${response.statusCode}"); + log("Specific post API body: ${response.body}"); + log("Specific post API url: $url"); + + if (response.statusCode == 200 || response.statusCode == 201) { + final postData = jsonDecode(response.body); + + if (postData['isSuccess'] == true && postData['data'] != null) { + final SocialPostItem specificPost = SocialPostItem.fromJson( + postData['data'], + ); + + // Add to cache + postsCache[postId] = specificPost; + + // Insert at the same position if it existed, otherwise at the beginning + if (existingIndex != -1 && existingIndex < posts.length) { + posts.insert(existingIndex, specificPost); + } else { + posts.insert(0, specificPost); + } + + log('Specific post loaded successfully'); + return true; + } else { + log('API returned success=false or no data'); + showPostNotFoundError(); + return false; + } + } else { + log('Failed to load specific post - Status: ${response.statusCode}'); + showPostNotFoundError(); + return false; + } + } catch (e) { + log('Error loading specific post: $e'); + showPostNotFoundError(); + return false; + } finally { + isLoadingSharedPost.value = false; + } + } + + void showPostNotFoundError() { + customSnackbar( + title: "Error", + message: "Could not load the post.", + duration: 2, + ); + } + + //....................................................................................................................... + //................................................................................................................................................ + // Poll........................................................................................................................................... + //................................................................................................................................................ + Future submitPollVote( + int pollId, + int optionId, + ) async { + try { + log("Submitting poll vote - PollID: $pollId, OptionID: $optionId"); + + final response = await ApiBase.postRequest( + extendedURL: + "${ApiUrl.submitPollVote}?PollID=$pollId&OptionID=$optionId", + body: {}, + ); + + log("Poll vote response status code: ${response.statusCode}"); + + if (response.statusCode == 200) { + final result = pollSubmitResponseModelFromJson(response.body); + // Update the post in our data source + updatePostWithPollResults(result, selectedOptionId: optionId); + return result; + } else { + log("Poll vote error: ${response.body}"); + + customSnackbar( + title: "Error", + message: "Something went wrong while voting", + ); + } + } catch (e) { + log("Poll vote exception: $e"); + + customSnackbar( + title: "Error", + message: "Something went wrong while voting", + ); + } + return null; + } + + //............................................................................................................. + // Replace ( Update) Post with poll results.................................................................... + //............................................................................................................ + + void updatePostWithPollResults( + PollSubmitResponseModel response, { + int? selectedOptionId, + }) { + // Find the post that contains this poll + final int index = posts.indexWhere( + (post) => post.poll?.pollPostId == response.data!.pollPostId, + ); + + if (index != -1) { + log("Updating post at index $index with new poll results"); + + // Create a deep copy of the post to ensure reactivity + final SocialPostItem post = posts[index]; + final SocialPostItem updatedPost = SocialPostItem( + postId: post.postId, + userId: post.userId, + content: post.content, + mediaFiles: post.mediaFiles, + profilePicture: post.profilePicture, + fullName: post.fullName, + userTypeName: post.userTypeName, + createdAt: post.createdAt, + totalPostReactions: post.totalPostReactions, + totalPostComments: post.totalPostComments, + postReactionTypeId: post.postReactionTypeId, + ); + + // Create a copy of the poll + if (post.poll != null) { + updatedPost.poll = Poll( + pollPostId: post.poll!.pollPostId, + question: post.poll!.question, + expiryDate: post.poll!.expiryDate, + totalPollVotes: response.data!.totalPollVotes, + options: [], // Will add options below + ); + + // Add options with updated vote counts + if (post.poll!.options != null) { + for (var oldOption in post.poll!.options!) { + final responseOption = response.data!.options?.firstWhere( + (o) => o.optionId == oldOption.optionId, + + orElse: () { + return PollSubmitResponseOptions( + optionId: oldOption.optionId, + totalOptionPollVotes: oldOption.totalOptionPollVotes, + ); + }, + ); + + updatedPost.poll!.options!.add( + Option( + optionId: oldOption.optionId, + pollId: oldOption.pollId, + userId: oldOption.userId, + optionLabel: oldOption.optionLabel, + totalOptionPollVotes: + responseOption?.totalOptionPollVotes ?? + oldOption.totalOptionPollVotes, + percentageOptionPollVotes: oldOption.percentageOptionPollVotes, + hasUserVoted: + responseOption?.hasUserVoted ?? + (selectedOptionId == oldOption.optionId), + ), + ); + } + } + } + log("Selected option------>: $selectedOptionId"); + + // Update the post in the list immediately + posts[index] = updatedPost; + posts.refresh(); + // Refresh the UI + update(); + } + } + + //............................................................................................................ + //............................................................................................................ + //........................................................ + final mediaType = Rx(MediaType.none); + + final _picker = ImagePicker(); + + Future pickImage() async { + final image = await _picker.pickImage(source: ImageSource.gallery); + + if (image != null) { + final extension = image.path.split('.').last.toUpperCase(); + final allowedExtensions = ['JPG', 'JPEG', 'PNG']; + final file = File(image.path); + final fileSize = await file.length(); + const maxFileSize = 5 * 1024 * 1024; + + if (!allowedExtensions.contains(extension)) { + customSnackbar( + title: 'Unsupported Format', + message: 'Please select a JPG, PNG image.', + ); + + return; + } + + if (fileSize > maxFileSize) { + customSnackbar( + title: "File Too Large", + message: + 'Image must be 5MB or smaller. Please select a smaller file.', + ); + + return; + } + + clearVideo(); + selectedImage.value = file; + mediaType.value = MediaType.image; + } + } + + Future pickVideo() async { + final video = await _picker.pickVideo( + source: ImageSource.gallery, + maxDuration: const Duration(minutes: 5), + ); + + if (video != null) { + final extension = video.path.split('.').last.toUpperCase(); + final allowedExtensions = ['MP4', 'M4V']; + + if (!allowedExtensions.contains(extension)) { + customSnackbar( + title: 'Unsupported Format', + message: 'Please select a valid video file.', + ); + return; + } + + final file = File(video.path); + final fileSize = await file.length(); + const maxFileSize = 50 * 1024 * 1024; + + if (fileSize > maxFileSize) { + customSnackbar( + title: "File Too Large", + message: + 'Video must be 50MB or smaller. Please select a smaller file.', + ); + return; + } + + selectedImage.value = null; + selectedVideo.value = file; + mediaType.value = MediaType.video; + + await initializeVideoPlayer(video.path); + } + } + + void clearVideo() { + selectedVideo.value = null; + videoController.value?.pause(); + videoController.value?.dispose(); + videoController.value = null; + isVideoInitialized.value = false; + isVideoPlaying.value = false; + mediaType.value = MediaType.none; + } + + void removeMedia() { + selectedImage.value = null; + clearVideo(); + } + + //......Upload a Post ..................................................................... + final selectedImage = Rxn(); + final selectedVideo = Rxn(); + TextEditingController captionCtrl = TextEditingController(); + var captionText = ''.obs; + final visibility = 'Public'.obs; + final List> visibilityTypes = [ + { + 'label': 'Public', + 'publicId': ApiEnum.publicPostVisibilityID, + 'description': 'Anyone can see', + 'icon': Icons.public, + }, + { + 'label': 'Private', + 'privateId': ApiEnum.privatePostVisibilityID, + 'description': 'Share with me', + 'icon': Icons.lock, + }, + { + 'label': 'Connections', + 'description': 'Selected connections', + 'icon': Icons.people, + 'trailing': Icon(Icons.chevron_right), + "exclusiveId": ApiEnum.exclusivePostVisibilityID, + }, + ]; + + RxBool isPostUploadLoading = false.obs; + + Future uploadPost({int tribeIdForTribeEchoboard = 0}) async { + isPostUploadLoading(true); + bool ret = false; + try { + File? fileToUpload; + XFile? nullableFileToUpload; + bool hasMedia = false; + + //....................................................................... + if (mediaType.value == MediaType.image && selectedImage.value != null) { + fileToUpload = selectedImage.value!; + hasMedia = true; + } else if (mediaType.value == MediaType.video && + selectedVideo.value != null) { + fileToUpload = selectedVideo.value!; + hasMedia = true; + } + //....................................................................... + + if (hasMedia && fileToUpload != null) { + nullableFileToUpload = XFile(fileToUpload.path); + } + + //....................................................................... + Map body = {}; + if (tribeIdForTribeEchoboard != 0) { + body = { + "Content": captionCtrl.text, + "PostTypeID": + hasMedia + ? mediaType.value == MediaType.image + ? ApiEnum.imagePostTypeID + : ApiEnum.videoPostTypeID + : ApiEnum.onlyTextPostTypeId, + + "TribeID": tribeIdForTribeEchoboard, + "DeviceTypeID": + Platform.isAndroid + ? ApiEnum.androidDeviceTypeID + : ApiEnum.iosDeviceTypeID, + }; + } + if (tribeIdForTribeEchoboard == 0) { + body = { + "Content": captionCtrl.text, + "PostTypeID": + hasMedia + ? mediaType.value == MediaType.image + ? ApiEnum.imagePostTypeID + : ApiEnum.videoPostTypeID + : ApiEnum.onlyTextPostTypeId, + "PostVisibilityID": getSelectedVisibilityId(), + "TribeID": 0, + "DeviceTypeID": + Platform.isAndroid + ? ApiEnum.androidDeviceTypeID + : ApiEnum.iosDeviceTypeID, + "ExclusiveConnectionsJson": jsonEncode( + selectedConnections, + ), // need to send in string format that's why "jsonEncode" used ( backend requirement ) + }; + } + + final url = + tribeIdForTribeEchoboard == 0 + ? ApiUrl.uploadSocialPost + : ApiUrl.uploadTribeEchoboardPost; + var response = await ApiBase.postAnyFileWithMimeType( + extendedURL: url, + body: body, + file: nullableFileToUpload, + fileNameKey: hasMedia ? "PostMediaFile" : null, + ); + //....................................................................... + if (response.statusCode == 200 || response.statusCode == 201) { + log("Successful"); + ret = true; + resetAfterSuccessfulUpload(); + customSnackbar( + title: "Success !", + message: "Post upload successful", + duration: 1, + ); + } else { + ret = false; + customSnackbar( + title: "Failed !", + message: "Post upload failed, please try again..", + duration: 1, + ); + } + } catch (e) { + customSnackbar( + title: "Failed !", + message: "Post upload failed, please try again..", + duration: 1, + ); + } finally { + isPostUploadLoading(false); + } + + return ret; + } + + //............................................................................. + // Helper method to reset all variables after successful upload............... + void resetAfterSuccessfulUpload() { + captionCtrl.clear(); + selectedImage.value = null; + selectedVideo.value = null; + + // Reset video controller if it exists + if (videoController.value != null) { + videoController.value!.pause(); + videoController.value!.dispose(); + videoController.value = null; + isVideoInitialized.value = false; + isVideoPlaying.value = false; + } + + mediaType.value = MediaType.none; + visibility.value = 'Public'; + } + + //.............................................................................. + // Get Selected Visibility from API Enum......................................... + String getSelectedVisibilityId() { + final selectedVisibility = visibilityTypes.firstWhere( + (element) => element['label'] == visibility.value, + orElse: () => visibilityTypes.first, + ); + + if (selectedVisibility.containsKey('publicId')) { + return selectedVisibility['publicId'].toString(); + } else if (selectedVisibility.containsKey('privateId')) { + return selectedVisibility['privateId'].toString(); + } else if (selectedVisibility.containsKey('exclusiveId')) { + return selectedVisibility['exclusiveId'].toString(); + } + + return ApiEnum.publicPostVisibilityID.toString(); + } + + //.......................................................................................... + //.......................................................................................... + //.............Connection Fetch (Exclusive)................................................. + //.......................................................................................... + //.......................................................................................... + + final RxList> selectedConnections = + >[].obs; + final RxList selectedIds = [].obs; + RxString connectionSearchValue = ''.obs; + RxInt connectionCurrentPage = 1.obs; + final int connectionPageSize = 15; + final hasMoreDataConnection = true.obs; + final isConnectionPaginationLoading = false.obs; + TextEditingController connectionSearchController = TextEditingController(); + + ExclusiveConnectionResponseModel exclusiveConnections = + ExclusiveConnectionResponseModel(); + RxBool isConnectionsFetchLoading = false.obs; + + Future fetchExclusiveConnections({bool refresh = false}) async { + if (refresh) { + connectionCurrentPage.value = 1; + hasMoreDataConnection.value = true; + exclusiveConnections = ExclusiveConnectionResponseModel(); + } else { + if (isConnectionPaginationLoading.value || + hasMoreDataConnection.value == false) { + log("Pagination already loading or no more data"); + return false; + } + } + + log( + "Fetching connections: page ${connectionCurrentPage.value}, search: ${connectionSearchValue.value}", + ); + + isConnectionPaginationLoading(true); + if (refresh) isConnectionsFetchLoading(true); + + try { + final response = await ApiBase.getRequest( + extendedURL: + "${ApiUrl.fetchExclusiveConnections}?pageNumber=${connectionCurrentPage.value}&pagesize=$connectionPageSize&searchType=name&searchValue=${connectionSearchValue.value}", + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + final newData = exclusiveConnectionResponseModelFromJson(response.body); + + if (newData.isSuccess == true && newData.data != null) { + if (refresh) { + exclusiveConnections = newData; + } else { + // Append to existing items + final currentItems = exclusiveConnections.data?.items ?? []; + final newItems = newData.data?.items ?? []; + + exclusiveConnections.data?.items = [...currentItems, ...newItems]; + exclusiveConnections.data?.totalCount = newData.data?.totalCount; + } + + // Check if we've fetched all available items + final fetchedItemsCount = + exclusiveConnections.data?.items?.length ?? 0; + final totalItemsCount = newData.data?.totalCount ?? 0; + + // Update pagination status - if we have fewer items than total, there's more to load + hasMoreDataConnection.value = fetchedItemsCount < totalItemsCount; + + // Increment page for next fetch if this fetch was successful and had items + if (newData.data?.items?.isNotEmpty == true) { + connectionCurrentPage.value++; + } else { + // No more items to fetch + hasMoreDataConnection.value = false; + } + + return true; + } else { + customSnackbar( + title: "Error", + message: "Failed to fetch connection details", + ); + return false; + } + } else { + customSnackbar( + title: "Error", + message: "Failed to fetch connection details", + ); + return false; + } + } catch (e) { + log("Error fetching connections: $e"); + return false; + } finally { + isConnectionsFetchLoading(false); + isConnectionPaginationLoading(false); + } + } + + //.......................................................................................... + + void clearSearch() { + connectionSearchValue.value = ''; + connectionCurrentPage.value = 1; + connectionSearchController.clear(); + fetchExclusiveConnections(refresh: true); + } + + //.......................................................................................... + void exclusiveConnectionToggleSelection({ + required int? tribeId, + required String? connectedUserId, + }) { + final String id = + tribeId != null ? 'tribe_$tribeId' : 'user_$connectedUserId'; + + if (selectedIds.contains(id)) { + // Unselect..................... + selectedIds.remove(id); + selectedConnections.removeWhere((element) { + return (tribeId != null && element['TribeID'] == tribeId) || + (connectedUserId != null && + element['ConnectedUserID'] == connectedUserId); + }); + } else { + // Select........................ + selectedIds.add(id); + selectedConnections.add({ + "TribeID": tribeId, + "ConnectedUserID": connectedUserId, + }); + } + } + + //.......................................................................................... + //.......................................................................................... +} + +// Enum to track media type................................................................ +enum MediaType { none, image, video } + +//.......................................................................................... diff --git a/lib/screens/echoboard/controllers/like_comment_controller.dart b/lib/screens/echoboard/controllers/like_comment_controller.dart new file mode 100644 index 0000000..144de18 --- /dev/null +++ b/lib/screens/echoboard/controllers/like_comment_controller.dart @@ -0,0 +1,283 @@ +import 'dart:convert'; +import 'dart:developer' as developer; +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/screens/echoboard/controllers/echoboard_controller.dart'; +import 'package:onufitness/screens/echoboard/models/parent_comments_response_model.dart'; +import 'package:onufitness/screens/echoboard/models/post_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class LikeCommentController extends GetxController { + RxInt commentCurrentPage = 1.obs; + final int commentPageSize = 10; + final hasMoreComments = true.obs; + final isCommentPaginationLoading = false.obs; + RxString postId = "".obs; + final commentsResponseModel = ParentCommentResponseModel().obs; + RxBool isCommentsFetchLoading = false.obs; + RxBool isCommentSubmitting = false.obs; + + final Rx replyingTo = Rx(null); + final Rx parentOfReply = Rx(null); + final RxSet loadingSubCommentIds = RxSet(); + + void resetReplyState() { + replyingTo.value = null; + parentOfReply.value = null; + } + + void startReply(CommentItem comment, CommentItem? parentComment) { + replyingTo.value = comment; + parentOfReply.value = parentComment; + } + + Future fetchcomments({bool refresh = false}) async { + if (refresh) { + commentCurrentPage.value = 1; + hasMoreComments.value = true; + commentsResponseModel.value = ParentCommentResponseModel(); + } + + isCommentPaginationLoading(true); + if (refresh) isCommentsFetchLoading(true); + + try { + final response = await ApiBase.getRequest( + extendedURL: + "${ApiUrl.getParentCommentList}/${postId.value}?pageNumber=${commentCurrentPage.value}&pagesize=$commentPageSize", + ); + developer.log("Fetch comments status: ${response.statusCode}"); + + if (response.statusCode == 200 || response.statusCode == 201) { + final newData = parentCommentResponseModelFromJson(response.body); + + if (newData.isSuccess == true && newData.data != null) { + if (refresh) { + commentsResponseModel.value = newData; + } else { + final currentItems = commentsResponseModel.value.data?.items ?? []; + final newItems = newData.data?.items ?? []; + commentsResponseModel.value.data?.items = [ + ...currentItems, + ...newItems, + ]; + commentsResponseModel.value.data?.totalCount = + newData.data?.totalCount; + commentsResponseModel.refresh(); + } + + final fetchedItemsCount = + commentsResponseModel.value.data?.items?.length ?? 0; + final totalItemsCount = newData.data?.totalCount ?? 0; + + hasMoreComments.value = fetchedItemsCount < totalItemsCount; + + if (newData.data?.items?.isNotEmpty == true) { + commentCurrentPage.value++; + } else { + hasMoreComments.value = false; + } + + return true; + } else { + customSnackbar( + title: "Error", + message: newData.message ?? "Failed to fetch Comments", + duration: 1, + ); + return false; + } + } else { + customSnackbar( + title: "Error", + message: "Failed to fetch Comments", + duration: 1, + ); + return false; + } + } catch (e) { + developer.log("Error fetching comments: ${e.toString()}"); + customSnackbar( + title: "Error", + message: "Failed to load comments. Please try again.", + duration: 1, + ); + return false; + } finally { + isCommentsFetchLoading(false); + isCommentPaginationLoading(false); + } + } + + Future submitComment({ + required String postId, + required String commentText, + int? parentCommentId, + }) async { + isCommentSubmitting(true); + try { + final isReply = parentCommentId != null; + final Map requestBody = + isReply + ? { + "postID": postId, + "parentCommentID": parentCommentId, + "commentText": commentText, + } + : { + "postID": postId, + "parentCommentID": 0, + "commentText": commentText, + }; + + developer.log("Submitting comment: $requestBody"); + final response = await ApiBase.postRequest( + extendedURL: ApiUrl.addComment, + body: requestBody, + ); + + developer.log("Comment submission status: ${response.body}"); + if (response.statusCode == 200 || response.statusCode == 201) { + final responseData = jsonDecode(response.body); + return responseData['isSuccess'] == true; + } + return false; + } catch (e) { + developer.log("Error submitting comment: ${e.toString()}"); + return false; + } finally { + isCommentSubmitting(false); + } + } + + Future fetchSubComments(int parentCommentId) async { + loadingSubCommentIds.add(parentCommentId); + try { + final response = await ApiBase.getRequest( + extendedURL: + "${ApiUrl.getSubCommentList}/$parentCommentId?pageNumber=1&pagesize=1000", + ); + + developer.log("Fetch subcomments status: ${response.statusCode}"); + + if (response.statusCode == 200 || response.statusCode == 201) { + final responseData = jsonDecode(response.body); + + if (responseData['isSuccess'] == true && responseData['data'] != null) { + final items = commentsResponseModel.value.data?.items; + + if (items != null) { + for (int i = 0; i < items.length; i++) { + if (items[i].commentId == parentCommentId) { + final subComments = List.from( + responseData['data']['items'].map( + (x) => CommentItem.fromJson(x), + ), + ); + + items[i].subComments = subComments; + items[i].totalSubCommentCount = + responseData['data']['totalCount']; + commentsResponseModel.refresh(); + return true; + } + } + } + } + } + return false; + } catch (e) { + developer.log("Error fetching subcomments: ${e.toString()}"); + return false; + } finally { + loadingSubCommentIds.remove(parentCommentId); + } + } + + //...................................................................... + // Function to submit post reaction + //...................................................................... + Future submitPostReaction({ + required String postId, + required int reactionTypeId, + bool isDeleteReaction = false, + }) async { + try { + final response = await ApiBase.postRequest( + extendedURL: + "${ApiUrl.createUpdatePostReaction}?PostID=$postId&ReactionTypeID=$reactionTypeId&IsDeleteReaction=$isDeleteReaction", + body: {}, + ); + + developer.log("Reaction submission status: ${response.statusCode}"); + developer.log("Reaction API response body : ${response.body}"); + if (response.statusCode == 200 || response.statusCode == 201) { + updatePostReaction(postId.toString(), reactionTypeId, isDeleteReaction); + + final responseData = jsonDecode(response.body); + + if (responseData['isSuccess'] == true) { + return true; + } else { + return false; + } + } else { + return false; + } + } catch (e) { + developer.log("Error submitting reaction: ${e.toString()}"); + customSnackbar( + title: "Error", + message: "Something went wrong. Please try again.", + duration: 1, + ); + return false; + } + } + + //...................................................................... + //..........update Post Reaction......................................... + //...................................................................... + + void updatePostReaction(String postId, int reactionTypeId, bool isRemove) { + final echoBoardController = Get.find(); + + final int index = echoBoardController.posts.indexWhere( + (post) => post.postId.toString() == postId, + ); + + if (index == -1) return; + + final oldPost = echoBoardController.posts[index]; + final currentReactions = oldPost.totalPostReactions ?? 0; + final isAlreadyLiked = oldPost.postReactionTypeId != null; + + int updatedCount = currentReactions; + + if (isRemove && isAlreadyLiked) { + updatedCount = (currentReactions - 1).clamp(0, double.infinity).toInt(); + } else if (!isRemove && !isAlreadyLiked) { + updatedCount = currentReactions + 1; + } + + final updatedPost = SocialPostItem( + postId: oldPost.postId, + userId: oldPost.userId, + content: oldPost.content, + mediaFiles: oldPost.mediaFiles, + profilePicture: oldPost.profilePicture, + fullName: oldPost.fullName, + userTypeName: oldPost.userTypeName, + createdAt: oldPost.createdAt, + totalPostComments: oldPost.totalPostComments, + postReactionTypeId: isRemove ? null : reactionTypeId, + totalPostReactions: updatedCount, + poll: oldPost.poll, + ); + + echoBoardController.posts[index] = updatedPost; + echoBoardController.update(); + echoBoardController.posts.refresh(); + } +} diff --git a/lib/screens/echoboard/controllers/poll_controller.dart b/lib/screens/echoboard/controllers/poll_controller.dart new file mode 100644 index 0000000..f5e0838 --- /dev/null +++ b/lib/screens/echoboard/controllers/poll_controller.dart @@ -0,0 +1,218 @@ +import 'dart:convert'; +import 'dart:developer'; +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/constants/api_enum_constant.dart'; +import 'package:onufitness/screens/echoboard/controllers/echoboard_controller.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class PollController extends GetxController { + //........................................................ + final questionController = TextEditingController(); + final RxList optionControllers = + [ + TextEditingController(), + TextEditingController(), + ].obs; + + // State variables..................................................... + final RxBool isLoading = false.obs; + final RxString errorMessage = ''.obs; + final RxInt postTypeID = 1.obs; + final RxInt postVisibilityID = 1.obs; + + // Post visibility options............................................. + final List> visibilityOptions = [ + { + 'id': ApiEnum.publicPostVisibilityID, + 'name': 'Public', + 'icon': Icons.public, + 'description': 'Anyone can see', + }, + { + 'id': ApiEnum.privatePostVisibilityID, + 'name': 'Private', + 'icon': Icons.lock, + 'description': 'Share with me', + }, + { + 'id': 3, + 'name': 'Connections', + 'icon': Icons.people, + 'description': 'Selected Connections', + }, + ]; + + @override + void onClose() { + questionController.dispose(); + for (var controller in optionControllers) { + controller.dispose(); + } + super.onClose(); + } + + // Add a new option field.................................. + void addOptionField() { + if (optionControllers.length < 5) { + optionControllers.add(TextEditingController()); + } + } + + // Remove an option field..................................................... + void removeOptionField(int index) { + if (optionControllers.length > 2) { + final controller = optionControllers[index]; + optionControllers.removeAt(index); + controller.dispose(); + } + } + + // Set visibility ID..................................................... + void setVisibility(int id) { + postVisibilityID.value = id; + } + + // Reset the form..................................................... + void resetForm() { + questionController.clear(); + for (var controller in optionControllers) { + controller.clear(); + } + postVisibilityID.value = 1; + errorMessage.value = ''; + + // Reset options to default two...................................... + final currentLength = optionControllers.length; + if (currentLength > 2) { + for (int i = 2; i < currentLength; i++) { + optionControllers[i].dispose(); + } + optionControllers.value = [optionControllers[0], optionControllers[1]]; + } + } + + // Validate the form..................................................... + bool validateForm() { + if (questionController.text.trim().isEmpty) { + errorMessage.value = 'Please enter a question'; + return false; + } + + // Check options - we need at least 2 valid options + int validOptions = 0; + for (var controller in optionControllers) { + if (controller.text.trim().isNotEmpty) { + validOptions++; + } + } + + if (validOptions < 2) { + errorMessage.value = 'Please enter at least 2 options'; + return false; + } + + return true; + } + + //............................................................................ + // Create poll API call....................................................... + //............................................................................. + Future createPoll({int tribeIdForTribeEchoboard = 0}) async { + final echoBoardController = Get.find(); + bool ret = false; + if (!validateForm()) { + return false; + } + errorMessage.value = ''; + isLoading.value = true; + + try { + final Map requestBody = + tribeIdForTribeEchoboard == 0 + ? { + 'question': questionController.text.trim(), + 'postTypeID': ApiEnum.pollPostTypeID, + 'postVisibilityID': postVisibilityID.value, + + "deviceTypeID": + Platform.isAndroid + ? ApiEnum.androidDeviceTypeID + : ApiEnum.iosDeviceTypeID, + 'isTribe': false, // Hard code, key will remove in future + 'tribeID': 0, // Hard code, key will remove in future + 'options': + optionControllers + .where( + (controller) => controller.text.trim().isNotEmpty, + ) + .map((controller) => controller.text.trim()) + .toList(), + "ExclusiveConnectionsJson": jsonEncode( + echoBoardController.selectedConnections, + ), + } + : { + 'question': questionController.text.trim(), + 'postTypeID': ApiEnum.pollPostTypeID, + + "deviceTypeID": + Platform.isAndroid + ? ApiEnum.androidDeviceTypeID + : ApiEnum.iosDeviceTypeID, + + 'tribeID': tribeIdForTribeEchoboard, + 'options': + optionControllers + .where( + (controller) => controller.text.trim().isNotEmpty, + ) + .map((controller) => controller.text.trim()) + .toList(), + }; + + final url = + tribeIdForTribeEchoboard != 0 + ? ApiUrl.createTribePollPost + : ApiUrl.createPollPost; + + log("Creating poll with body: ${jsonEncode(requestBody)}"); + + var response = await ApiBase.postRequest( + extendedURL: url, + body: requestBody, + ); + + log("Response StatusCode ----->> ${response.statusCode.toString()}"); + + if (response.statusCode == 200 || response.statusCode == 201) { + ret = true; + customSnackbar( + title: "Success", + message: "Poll created successfully!", + duration: 1, + ); + resetForm(); + } else { + ret = false; + customSnackbar( + title: "Error", + message: "Failed to create poll. Please try again after sometime", + ); + } + } catch (e) { + ret = false; + log("Catch from createPoll: ${e.toString()}"); + customSnackbar( + title: "Error", + message: "Failed to create poll. Please try again after sometime", + ); + } finally { + isLoading.value = false; + } + return ret; + } +} diff --git a/lib/screens/echoboard/controllers/profile_controller.dart b/lib/screens/echoboard/controllers/profile_controller.dart new file mode 100644 index 0000000..d724c96 --- /dev/null +++ b/lib/screens/echoboard/controllers/profile_controller.dart @@ -0,0 +1,363 @@ +import 'dart:developer'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/screens/echoboard/models/goal_badges_response_model.dart'; +import 'package:onufitness/screens/echoboard/models/post_model.dart'; +import 'package:onufitness/screens/echoboard/models/user_social_profile_response_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class ProfileController extends GetxController { + RxBool isRecentAcrivityLoading = false.obs; + RxBool isLoadingMoreRecentActivity = false.obs; + RxBool isProfileLoading = false.obs; + RxString selectedUserId = "".obs; + + // Pagination variables for recent activities + RxInt currentRecentActivityPage = 1.obs; + RxInt recentActivityPageSize = 5.obs; + RxBool hasMoreRecentActivities = true.obs; + + // Response models + PostModel postModel = PostModel(); + Rx userSocialProfile = + UserSocialProfileResponseModel().obs; + + // Cache map for storing posts with their IDs as keys + final RxMap postsCache = + {}.obs; + final posts = [].obs; + + Future fetchRecentActivity({bool loadMore = false}) async { + if (loadMore) { + // If already loading more or no more posts to load, return + if (isLoadingMoreRecentActivity.value || !hasMoreRecentActivities.value) { + return false; + } + isLoadingMoreRecentActivity(true); + } else { + // First load + isRecentAcrivityLoading(true); + currentRecentActivityPage.value = 1; + postsCache.value = {}; + postModel = PostModel(); + posts.value = []; + } + + bool ret = false; + + try { + final url = + "${ApiUrl.getRecentActivity}-$selectedUserId?PageNumber=${currentRecentActivityPage.value}&PageSize=${recentActivityPageSize.value}"; + final response = await ApiBase.getRequest(extendedURL: url); + + log("Posts API Statuscode: ${response.statusCode}"); + final fetchedModel = postModelFromJson(response.body); + + if (response.statusCode == 200 && fetchedModel.isSuccess == true) { + final newItems = fetchedModel.data?.items ?? []; + + // Check if there are more items to load + if (newItems.length < recentActivityPageSize.value) { + hasMoreRecentActivities(false); + } + + if (newItems.isNotEmpty) { + for (var post in newItems) { + if (post.postId != null) { + postsCache[post.postId.toString()] = post; + } + } + + posts.addAll(newItems); + + // Update page number for next request + currentRecentActivityPage.value++; + } + + // Save the post model for pagination metadata + if (!loadMore) { + postModel = fetchedModel; + } + + ret = true; + } else { + ret = false; + } + } catch (e) { + log("Exception in fetchPosts: $e"); + customSnackbar(title: "Error", message: "Failed to fetch posts."); + ret = false; + } finally { + if (loadMore) { + isLoadingMoreRecentActivity(false); + } else { + isRecentAcrivityLoading(false); + } + } + + return ret; + } + + // Method to reset pagination + void resetRecentActivityPagination() { + currentRecentActivityPage.value = 1; + hasMoreRecentActivities.value = true; + } + + // Get Social Profile info + Future getUserSocialProfileInfo() async { + isProfileLoading(true); + bool result = false; + + try { + final response = await ApiBase.getRequest( + extendedURL: "${ApiUrl.getSocialProfileInfo}/$selectedUserId", + ); + + if (response.statusCode >= 200 && response.statusCode < 300) { + userSocialProfile.value = userSocialProfileResponseModelFromJson( + response.body, + ); + + if (userSocialProfile.value.isSuccess == true) { + log("User Social Profile fetched successfully"); + result = true; + } else { + log( + "User Social Profile API returned success=false: ${userSocialProfile.value.message}", + ); + result = false; + } + } else { + log( + "User Social Profile API failed with status: ${response.statusCode}", + ); + result = false; + } + } catch (e) { + log("Exception in getUserSocialProfileInfo: $e"); + customSnackbar(title: "Error", message: "Failed to fetch user profile."); + result = false; + } finally { + isProfileLoading(false); + } + + return result; + } + + // Update post reaction in ProfileController's posts + void updatePostReaction(String postId, int reactionTypeId, bool isRemove) { + log("🔄 ProfileController: Updating post reaction for postId: $postId"); + + final postIndex = posts.indexWhere( + (post) => post.postId.toString() == postId, + ); + + if (postIndex == -1) return; + final oldPost = posts[postIndex]; + final currentReactions = oldPost.totalPostReactions ?? 0; + final isAlreadyLiked = oldPost.postReactionTypeId != null; + + int updatedCount = currentReactions; + + if (isRemove && isAlreadyLiked) { + updatedCount = (currentReactions - 1).clamp(0, double.infinity).toInt(); + } else if (!isRemove && !isAlreadyLiked) { + updatedCount = currentReactions + 1; + } + + final updatedPost = SocialPostItem( + postId: oldPost.postId, + userId: oldPost.userId, + content: oldPost.content, + mediaFiles: oldPost.mediaFiles, + profilePicture: oldPost.profilePicture, + fullName: oldPost.fullName, + userTypeName: oldPost.userTypeName, + createdAt: oldPost.createdAt, + totalPostComments: oldPost.totalPostComments, + postReactionTypeId: isRemove ? null : reactionTypeId, + totalPostReactions: updatedCount, + poll: oldPost.poll, + ); + + posts[postIndex] = updatedPost; + update(); + posts.refresh(); + } // Update post comment count in ProfileController's posts + + void updatePostCommentCount(String postId, int increment) { + log( + "🔄 ProfileController: Updating comment count for postId: $postId by $increment", + ); + + final postIndex = posts.indexWhere( + (post) => post.postId.toString() == postId, + ); + + if (postIndex != -1) { + final currentPost = posts[postIndex]; + final currentComments = currentPost.totalPostComments ?? 0; + final updatedCount = + (currentComments + increment).clamp(0, double.infinity).toInt(); + + final updatedPost = currentPost.copyWith(totalPostComments: updatedCount); + + posts[postIndex] = updatedPost; + + // Also update in cache + postsCache[postId] = updatedPost; + + posts.refresh(); + update(); + + log("✅ ProfileController: Updated comment count to: $updatedCount"); + } + } + + void updatePostPollResults(dynamic voteResponse) { + log("🔄 ProfileController: Updating poll results"); + + final pollPostId = voteResponse['pollPostID']; + if (pollPostId == null) return; + + final postIndex = posts.indexWhere( + (post) => post.poll?.pollPostId == pollPostId, + ); + + if (postIndex != -1) { + final currentPost = posts[postIndex]; + if (currentPost.poll == null) return; + + final totalPollVotes = voteResponse['totalPollVotes'] as int? ?? 0; + final options = voteResponse['options'] as List? ?? []; + + // Create updated post with new poll data + final updatedPost = SocialPostItem( + postId: currentPost.postId, + userId: currentPost.userId, + firstName: currentPost.firstName, + lastName: currentPost.lastName, + fullName: currentPost.fullName, + profilePicture: currentPost.profilePicture, + userTypeId: currentPost.userTypeId, + userTypeName: currentPost.userTypeName, + coachTypeName: currentPost.coachTypeName, + coachRequestStatus: currentPost.coachRequestStatus, + content: currentPost.content, + postTypeId: currentPost.postTypeId, + postVisibilityId: currentPost.postVisibilityId, + deviceTypeId: currentPost.deviceTypeId, + isTribe: currentPost.isTribe, + tribeId: currentPost.tribeId, + createdAt: currentPost.createdAt, + updateAt: currentPost.updateAt, + mediaFiles: currentPost.mediaFiles, + comments: currentPost.comments, + totalPostComments: currentPost.totalPostComments, + totalPostReactions: currentPost.totalPostReactions, + postReactionTypeId: currentPost.postReactionTypeId, + ); + + // Update poll data + updatedPost.poll = Poll( + pollPostId: currentPost.poll!.pollPostId, + question: voteResponse['question'] ?? currentPost.poll!.question, + expiryDate: + voteResponse['expiryDate'] != null + ? DateTime.parse(voteResponse['expiryDate']) + : currentPost.poll!.expiryDate, + totalPollVotes: totalPollVotes, + options: [], + ); + + // Update poll options + for (var socketOption in options) { + final optionMap = socketOption as Map; + final originalOption = currentPost.poll!.options?.firstWhere( + (opt) => opt.optionId == optionMap['optionID'], + orElse: () => Option(), + ); + + updatedPost.poll!.options!.add( + Option( + optionId: optionMap['optionID'], + pollId: optionMap['pollID'], + userId: optionMap['userID'], + optionLabel: + optionMap['optionLabel'] ?? originalOption?.optionLabel, + totalOptionPollVotes: optionMap['totalOptionPollVotes'] ?? 0, + percentageOptionPollVotes: + optionMap['percentageOptionPollVotes'] ?? 0, + hasUserVoted: originalOption?.hasUserVoted ?? false, + ), + ); + } + + // Update in ProfileController + posts[postIndex] = updatedPost; + postsCache[updatedPost.postId.toString()] = updatedPost; + + posts.refresh(); + update(); + + log( + "✅ ProfileController: Updated poll results with total votes: $totalPollVotes", + ); + } + } + + void syncPostFromEchoBoard(SocialPostItem updatedPost) { + if (updatedPost.postId == null) return; + + final postId = updatedPost.postId.toString(); + + // Find and update in main posts list + final postIndex = posts.indexWhere( + (post) => post.postId.toString() == postId, + ); + + if (postIndex != -1) { + posts[postIndex] = updatedPost; + log( + "✅ ProfileController: Synced post at index $postIndex from EchoBoardController", + ); + } + + // Update in cache + postsCache[postId] = updatedPost; + + // Force UI update + posts.refresh(); + update(); + + log("✅ ProfileController: Post $postId synced from EchoBoardController"); + } + + //........................................................................................ + //......Completed Coal Badge api call.................................................................................. + //........................................................................................ + Future> fetchCompletedGoalsForBadges({ + required String userId, + }) async { + try { + final response = await ApiBase.getRequest( + extendedURL: "${ApiUrl.fetchCompletedGoalsForBadges}/$userId", + ); + + if (response.statusCode == 200) { + final result = completedGoalForBadgesResponseModelFromJson( + response.body, + ); + + return result.data ?? []; + } else { + return []; + } + } catch (e) { + log("Error fetching completed goals for badges: $e"); + return []; + } + } +} diff --git a/lib/screens/echoboard/controllers/rating_reviews.controller.dart b/lib/screens/echoboard/controllers/rating_reviews.controller.dart new file mode 100644 index 0000000..acf0a37 --- /dev/null +++ b/lib/screens/echoboard/controllers/rating_reviews.controller.dart @@ -0,0 +1,164 @@ +import 'dart:convert'; +import 'dart:developer'; + +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/screens/echoboard/models/coach_reviews_response_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class ReviewsController extends GetxController { + // Observable variables + RxBool isLoading = false.obs; + RxBool isLoadingMore = false.obs; + RxBool reachedEnd = false.obs; + RxString revieweeId = "".obs; + RxDouble averageRating = 0.0.obs; + RxInt totalReviews = 0.obs; + RxList reviews = [].obs; + + // Pagination variables + RxInt currentPage = 1.obs; + final int pageSize = 5; + + // Reset pagination when refreshing the screen + void resetPagination() { + currentPage.value = 1; + reachedEnd.value = false; + reviews.clear(); + } + + // Get user reviews with pagination + Future getUserReviews() async { + if (revieweeId.value.isEmpty) { + log("Reviewee ID is empty, skipping API call"); + return; + } + + if (currentPage.value == 1) { + isLoading(true); + } else { + isLoadingMore(true); + } + + try { + final url = + "${ApiUrl.fetchUserReviews}/${revieweeId.value}?PageNumber=${currentPage.value}&PageSize=$pageSize"; + final response = await ApiBase.getRequest(extendedURL: url); + + log("Get Reviews API Response Code: ${response.statusCode}"); + + if (response.statusCode == 200) { + final responseData = CoachReviewsResponseModel.fromJson( + jsonDecode(response.body), + ); + + if (responseData.isSuccess == true) { + log("Reviews fetched successfully"); + + // Update total reviews and average rating + if (responseData.data != null) { + averageRating.value = responseData.data!.userAvgReviewRating ?? 0.0; + totalReviews.value = responseData.data!.totalReviews ?? 0; + + final newReviews = responseData.data!.userReviewRatings ?? []; + + // If it's the first page, replace the list, otherwise append + if (currentPage.value == 1) { + reviews.value = newReviews; + } else { + reviews.addAll(newReviews); + } + + // Check if we've reached the end + if (newReviews.length < pageSize) { + reachedEnd.value = true; + } + + // Increment page number for next fetch + currentPage.value++; + } + } else { + log("Reviews API returned error: ${responseData.message}"); + customSnackbar( + title: "Error", + message: responseData.message ?? "Failed to load reviews", + ); + } + } else { + log("Reviews API failed with status: ${response.statusCode}"); + customSnackbar(title: "Error", message: "Failed to load reviews"); + } + } catch (e) { + log("Exception in getUserReviews: $e"); + customSnackbar(title: "Error", message: "Failed to load reviews"); + } finally { + isLoading(false); + isLoadingMore(false); + } + } + + // Load more reviews when scrolling + Future loadMoreReviews() async { + if (!reachedEnd.value && !isLoadingMore.value) { + await getUserReviews(); + } + } + + // Submit a new review + Future submitReview(int rating, String reviewDescription) async { + isLoading(true); + bool result = false; + + try { + final url = ApiUrl.createUserReview; + final body = { + "revieweeID": revieweeId.value, + "rating": rating, + "reviewDescription": reviewDescription, + }; + + final response = await ApiBase.postRequest(extendedURL: url, body: body); + + log("Submit Review API Response Code: ${response.statusCode}"); + + if (response.statusCode == 200 || response.statusCode == 201) { + final responseData = jsonDecode(response.body); + + if (responseData['isSuccess'] == true) { + log("Review submitted successfully"); + + // Refresh reviews + resetPagination(); + await getUserReviews(); + result = true; + } else { + log("Submit Review API returned error: ${responseData['message']}"); + customSnackbar( + title: "Error", + message: responseData['message'] ?? "Failed to submit review", + duration: 1, + ); + } + } else { + final responseData = jsonDecode(response.body); + log("Submit Review API failed with status: ${response.body}"); + customSnackbar( + title: "Error", + message: responseData['message'] ?? "Failed to submit review", + duration: 1, + ); + } + } catch (e) { + customSnackbar( + title: "Error", + message: "Failed to submit review", + duration: 1, + ); + } finally { + isLoading(false); + } + + return result; + } +} diff --git a/lib/screens/echoboard/controllers/tribe_member_controller.dart b/lib/screens/echoboard/controllers/tribe_member_controller.dart new file mode 100644 index 0000000..bf43b86 --- /dev/null +++ b/lib/screens/echoboard/controllers/tribe_member_controller.dart @@ -0,0 +1,367 @@ +import 'dart:convert'; +import 'dart:developer'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:onufitness/constants/api_endpoints.dart'; +import 'package:onufitness/screens/echoboard/models/tribe/get_all_connections_with_tribe_member_checked_response_model.dart'; +import 'package:onufitness/services/api_services/base_api_services.dart'; +import 'package:onufitness/utils/custom_sneakbar.dart'; + +class TribeMemberController extends GetxController { + RxBool isDeleteTribeLoading = false.obs; + RxBool isLoadingMembers = false.obs; + RxBool isLoadingMoreMembers = false.obs; + RxBool isAddingMembers = false.obs; + + Rx connectionsData = + Rx(null); + + // Keep track of selected members + RxSet selectedMemberIds = {}.obs; + + // Search controller + TextEditingController searchController = TextEditingController(); + RxString searchValue = ''.obs; + + // Pagination + RxInt currentPage = 1.obs; + RxInt pageSize = 20.obs; + RxBool hasMoreData = true.obs; + + // Scroll controller + ScrollController scrollController = ScrollController(); + + // Current tribe id + int? currentTribeId; + + @override + void onInit() { + super.onInit(); + _setupScrollListener(); + } + + @override + void onClose() { + searchController.dispose(); + scrollController.dispose(); + super.onClose(); + } + + void _setupScrollListener() { + scrollController.addListener(() { + if (scrollController.position.pixels >= + scrollController.position.maxScrollExtent - 200) { + if (!isLoadingMoreMembers.value && hasMoreData.value) { + loadMoreMembers(); + } + } + }); + } + + void onSearchSubmitted(String value) { + searchValue.value = value; + currentPage.value = 1; + hasMoreData.value = true; + fetchConnectedUsersWithMemberStatus( + tribeId: currentTribeId, + isRefresh: true, + ); + } + + void clearSearch() { + searchController.clear(); + searchValue.value = ''; + currentPage.value = 1; + hasMoreData.value = true; + fetchConnectedUsersWithMemberStatus( + tribeId: currentTribeId, + isRefresh: true, + ); + } + + void loadMoreMembers() { + if (!hasMoreData.value || isLoadingMoreMembers.value) return; + + currentPage.value++; + fetchConnectedUsersWithMemberStatus( + tribeId: currentTribeId, + isRefresh: false, + ); + } + + // Fetch connected users with member status for a tribe......................................................................... + Future fetchConnectedUsersWithMemberStatus({ + required int? tribeId, + bool isRefresh = true, + }) async { + if (tribeId == null) return; + + currentTribeId = tribeId; + + if (isRefresh) { + isLoadingMembers(true); + currentPage.value = 1; + hasMoreData.value = true; + } else { + isLoadingMoreMembers(true); + } + + try { + String url = + "${ApiUrl.getConnectedUsersWithMemberStatus}/$tribeId?PageNumber=${currentPage.value}&PageSize=${pageSize.value}"; + + // Add search query if exists + if (searchValue.value.isNotEmpty) { + url += "&SearchType=name&SearchValue=${searchValue.value}"; + } + + final response = await ApiBase.getRequest(extendedURL: url); + log(response.body.toString()); + if (response.statusCode == 200) { + final model = getConnectionsWithTribeMemberCheckedResponseModelFromJson( + response.body, + ); + + if (isRefresh) { + // Replace data on refresh + connectionsData.value = model; + + // Pre-select users who are already members + selectedMemberIds.clear(); + if (model.data?.items != null) { + for (var user in model.data!.items!) { + if (user.isMember == true && user.userId != null) { + selectedMemberIds.add(user.userId!); + } + } + } + } else { + // Append data for pagination + if (model.data?.items != null && model.data!.items!.isNotEmpty) { + final existingItems = connectionsData.value?.data?.items ?? []; + final newItems = model.data!.items!; + + // Merge items + final allItems = [...existingItems, ...newItems]; + + // Update connectionsData with merged items + connectionsData + .value = GetConnectionsWithTribeMemberCheckedResponseModel( + isSuccess: model.isSuccess, + statusCode: model.statusCode, + message: model.message, + data: Data(totalCount: model.data?.totalCount, items: allItems), + errors: model.errors, + ); + + // Pre-select new members + for (var user in newItems) { + if (user.isMember == true && user.userId != null) { + selectedMemberIds.add(user.userId!); + } + } + } else { + // No more data + hasMoreData.value = false; + } + } + + // Check if there's more data to load + final totalCount = model.data?.totalCount ?? 0; + final loadedCount = connectionsData.value?.data?.items?.length ?? 0; + hasMoreData.value = loadedCount < totalCount; + } else { + customSnackbar(title: "Error", message: "Failed to load users"); + } + } catch (e) { + customSnackbar( + title: "Error", + message: "An error occurred: ${e.toString()}", + ); + } finally { + if (isRefresh) { + isLoadingMembers(false); + } else { + isLoadingMoreMembers(false); + } + } + } + + void toggleMemberSelection(String userId) { + if (selectedMemberIds.contains(userId)) { + selectedMemberIds.remove(userId); + } else { + selectedMemberIds.add(userId); + } + } + + bool isMemberSelected(String userId) { + return selectedMemberIds.contains(userId); + } + + // Add selected members to tribe.................................................................................. + Future addTribeMembers({required int tribeId}) async { + if (selectedMemberIds.isEmpty) { + customSnackbar( + title: "Warning", + message: "Please select at least one member", + ); + return false; + } + + isAddingMembers(true); + try { + final body = { + "tribeID": tribeId, + "tribeMemberIDs": selectedMemberIds.toList(), + }; + + final response = await ApiBase.postRequest( + extendedURL: ApiUrl.addTribeMembers, + body: body, + sendHeaders: true, + ); + String message = "Something went wrong"; + + try { + final decoded = jsonDecode(response.body); + message = decoded["message"]?.toString() ?? message; + } catch (_) { + // if invalid JSON, keep default message + } + + if (response.statusCode == 200) { + Future.delayed(const Duration(milliseconds: 300), () { + customSnackbar(title: "Success", message: message, duration: 2); + }); + + // Refresh the list after adding members + await fetchConnectedUsersWithMemberStatus( + tribeId: tribeId, + isRefresh: true, + ); + + return true; + } else { + Future.delayed(const Duration(milliseconds: 300), () { + customSnackbar(title: "Error", message: message, duration: 2); + }); + return false; + } + } catch (e) { + Future.delayed(const Duration(milliseconds: 300), () { + customSnackbar( + title: "Failed", + message: "Failed to add members", + duration: 2, + ); + }); + return false; + } finally { + isAddingMembers(false); + } + } + + // Delete a member from tribe (Admin only)............................................................... + RxBool deleteTribeMemberLoading = false.obs; + + Future deleteTribeMember({ + required int tribeId, + required String memberId, + }) async { + deleteTribeMemberLoading(true); + try { + final body = {"tribeID": tribeId, "tribeMemberID": memberId}; + + final response = await ApiBase.deleteRequest( + extendedURL: ApiUrl.removeTribeMember, + body: body, + ); + + String message = "Something went wrong"; + + try { + final decoded = jsonDecode(response.body); + message = decoded["message"]?.toString() ?? message; + } catch (_) { + // if invalid JSON, keep default message + } + + if (response.statusCode == 200) { + Future.delayed(const Duration(milliseconds: 300), () { + customSnackbar( + title: "Success", + message: + message.isNotEmpty ? message : "Member removed successfully", + duration: 2, + ); + }); + return true; + } else { + Future.delayed(const Duration(milliseconds: 300), () { + customSnackbar( + title: "Error", + message: message.isNotEmpty ? message : "Failed to remove member", + duration: 2, + ); + }); + return false; + } + } catch (e) { + Future.delayed(const Duration(milliseconds: 300), () { + customSnackbar( + title: "Failed", + message: "Failed to remove member", + duration: 2, + ); + }); + return false; + } finally { + deleteTribeMemberLoading(false); + } + } + + // Delete tribe....................................................................................... + + Future deleteTribe({required int tribeID}) async { + isDeleteTribeLoading(true); + try { + final response = await ApiBase.deleteRequest( + extendedURL: "${ApiUrl.deleteTribe}/$tribeID", + body: {}, + ); + + String message = "Something went wrong"; + + try { + final decoded = jsonDecode(response.body); + message = decoded["message"]?.toString() ?? message; + } catch (_) { + // if invalid JSON, keep default message + } + + if (response.statusCode == 200) { + Future.delayed(const Duration(milliseconds: 300), () { + customSnackbar(title: "Success", message: message, duration: 2); + }); + return true; + } else { + Future.delayed(const Duration(milliseconds: 300), () { + customSnackbar(title: "Error", message: message, duration: 2); + }); + return false; + } + } catch (e) { + Future.delayed(const Duration(milliseconds: 300), () { + customSnackbar( + title: "Failed", + message: "Failed to delete tribe", + duration: 2, + ); + }); + return false; + } finally { + isDeleteTribeLoading(false); + } + } +} diff --git a/lib/screens/echoboard/models/coach_reviews_response_model.dart b/lib/screens/echoboard/models/coach_reviews_response_model.dart new file mode 100644 index 0000000..b875eca --- /dev/null +++ b/lib/screens/echoboard/models/coach_reviews_response_model.dart @@ -0,0 +1,122 @@ +import 'dart:convert'; + +CoachReviewsResponseModel coachReviewsResponseModelFromJson(String str) => + CoachReviewsResponseModel.fromJson(json.decode(str)); + +String coachReviewsResponseModelToJson(CoachReviewsResponseModel data) => + json.encode(data.toJson()); + +class CoachReviewsResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + RattingData? data; + dynamic errors; + + CoachReviewsResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory CoachReviewsResponseModel.fromJson(Map json) => + CoachReviewsResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : RattingData.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class RattingData { + List? userReviewRatings; + double? userAvgReviewRating; + int? totalReviews; + + RattingData({ + this.userReviewRatings, + this.userAvgReviewRating, + this.totalReviews, + }); + + factory RattingData.fromJson(Map json) => RattingData( + userReviewRatings: + json["userReviewRatings"] == null + ? [] + : List.from( + json["userReviewRatings"]!.map( + (x) => UserReviewRating.fromJson(x), + ), + ), + userAvgReviewRating: json["userAvgReviewRating"]?.toDouble(), + totalReviews: json["totalReviews"], + ); + + Map toJson() => { + "userReviewRatings": + userReviewRatings == null + ? [] + : List.from(userReviewRatings!.map((x) => x.toJson())), + "userAvgReviewRating": userAvgReviewRating, + "totalReviews": totalReviews, + }; +} + +class UserReviewRating { + String? userId; + String? firstName; + String? lastName; + String? fullName; + String? profilePicture; + int? rating; + String? reviewDescription; + DateTime? createdAt; + + UserReviewRating({ + this.userId, + this.firstName, + this.lastName, + this.fullName, + this.profilePicture, + this.rating, + this.reviewDescription, + this.createdAt, + }); + + factory UserReviewRating.fromJson(Map json) => + UserReviewRating( + userId: json["userID"], + firstName: json["firstName"], + lastName: json["lastName"], + fullName: json["fullName"], + profilePicture: json["profilePicture"], + rating: json["rating"], + reviewDescription: json["reviewDescription"], + createdAt: + json["createdAt"] == null + ? null + : DateTime.parse(json["createdAt"]), + ); + + Map toJson() => { + "userID": userId, + "firstName": firstName, + "lastName": lastName, + "fullName": fullName, + "profilePicture": profilePicture, + "rating": rating, + "reviewDescription": reviewDescription, + "createdAt": createdAt?.toIso8601String(), + }; +} diff --git a/lib/screens/echoboard/models/comment_screen.dart b/lib/screens/echoboard/models/comment_screen.dart new file mode 100644 index 0000000..70b14ca --- /dev/null +++ b/lib/screens/echoboard/models/comment_screen.dart @@ -0,0 +1,15 @@ +class CommentModel { + final String userId; + final String userName; + final String? userAvatar; + final String text; + final DateTime createdAt; + + CommentModel({ + required this.userId, + required this.userName, + this.userAvatar, + required this.text, + DateTime? createdAt, + }) : createdAt = createdAt ?? DateTime.now(); +} diff --git a/lib/screens/echoboard/models/get_all_tribr_list_with_members_response_model.dart b/lib/screens/echoboard/models/get_all_tribr_list_with_members_response_model.dart new file mode 100644 index 0000000..550259b --- /dev/null +++ b/lib/screens/echoboard/models/get_all_tribr_list_with_members_response_model.dart @@ -0,0 +1,156 @@ +import 'dart:convert'; + +TribeListWithMembersResponseModel tribeListWithMembersResponseModelFromJson( + String str, +) => TribeListWithMembersResponseModel.fromJson(json.decode(str)); + +String tribeListWithMembersResponseModelToJson( + TribeListWithMembersResponseModel data, +) => json.encode(data.toJson()); + +class TribeListWithMembersResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + TribeDetailsData? data; + dynamic errors; + + TribeListWithMembersResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory TribeListWithMembersResponseModel.fromJson( + Map json, + ) => TribeListWithMembersResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : TribeDetailsData.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class TribeDetailsData { + int? totalCount; + List? items; + + TribeDetailsData({this.totalCount, this.items}); + + factory TribeDetailsData.fromJson(Map json) => + TribeDetailsData( + totalCount: json["totalCount"], + items: + json["items"] == null + ? [] + : List.from( + json["items"]!.map((x) => TribeSingleItem.fromJson(x)), + ), + ); + + Map toJson() => { + "totalCount": totalCount, + "items": + items == null ? [] : List.from(items!.map((x) => x.toJson())), + }; +} + +class TribeSingleItem { + int? tribeId; + String? agoraGroupId; + String? adminUserId; + String? tribeName; + String? tribeImage; + int? totalMembers; + List? members; + + TribeSingleItem({ + this.tribeId, + this.agoraGroupId, + this.adminUserId, + this.tribeName, + this.tribeImage, + this.totalMembers, + this.members, + }); + + factory TribeSingleItem.fromJson(Map json) => + TribeSingleItem( + tribeId: json["tribeID"], + agoraGroupId: json["agoraGroupID"], + adminUserId: json["userID"], + tribeName: json["tribeName"], + tribeImage: json["tribeImage"], + totalMembers: json["totalMembers"], + members: + json["members"] == null + ? [] + : List.from( + json["members"]!.map((x) => TribeMembers.fromJson(x)), + ), + ); + + Map toJson() => { + "tribeID": tribeId, + "agoraGroupID": agoraGroupId, + "userID": adminUserId, + "tribeName": tribeName, + "tribeImage": tribeImage, + "totalMembers": totalMembers, + "members": + members == null + ? [] + : List.from(members!.map((x) => x.toJson())), + }; +} + +class TribeMembers { + String? memberId; + String? firstName; + String? lastName; + String? fullName; + String? profilePicture; + String? tribeMemberRole; + String? addedBy; + + TribeMembers({ + this.memberId, + this.firstName, + this.lastName, + this.fullName, + this.profilePicture, + this.tribeMemberRole, + this.addedBy, + }); + + factory TribeMembers.fromJson(Map json) => TribeMembers( + memberId: json["memberID"], + firstName: json["firstName"], + lastName: json["lastName"], + fullName: json["fullName"], + profilePicture: json["profilePicture"], + tribeMemberRole: json["tribeMemberRole"], + addedBy: json["addedBy"], + ); + + Map toJson() => { + "memberID": memberId, + "firstName": firstName, + "lastName": lastName, + "fullName": fullName, + "profilePicture": profilePicture, + "tribeMemberRole": tribeMemberRole, + "addedBy": addedBy, + }; +} diff --git a/lib/screens/echoboard/models/get_exclusive_connections_response_model.dart b/lib/screens/echoboard/models/get_exclusive_connections_response_model.dart new file mode 100644 index 0000000..651f0fc --- /dev/null +++ b/lib/screens/echoboard/models/get_exclusive_connections_response_model.dart @@ -0,0 +1,131 @@ +import 'dart:convert'; + +ExclusiveConnectionResponseModel exclusiveConnectionResponseModelFromJson( + String str, +) => ExclusiveConnectionResponseModel.fromJson(json.decode(str)); + +String exclusiveConnectionResponseModelToJson( + ExclusiveConnectionResponseModel data, +) => json.encode(data.toJson()); + +class ExclusiveConnectionResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + ExclusiveConnectionResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory ExclusiveConnectionResponseModel.fromJson( + Map json, + ) => ExclusiveConnectionResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + int? totalCount; + List? items; + + Data({this.totalCount, this.items}); + + factory Data.fromJson(Map json) => Data( + totalCount: json["totalCount"], + items: + json["items"] == null + ? [] + : List.from( + json["items"]!.map((x) => ExclusiveConnections.fromJson(x)), + ), + ); + + Map toJson() => { + "totalCount": totalCount, + "items": + items == null ? [] : List.from(items!.map((x) => x.toJson())), + }; +} + +class ExclusiveConnections { + int? tribeId; + String? tribeName; + String? tribeImage; + String? memberRole; + int? totalMemberCount; + String? adminProfilePicture; + String? connectedUserId; + String? firstName; + String? lastName; + String? fullName; + String? profilePicture; + String? agoraGroupID; + bool? isAdded; + + ExclusiveConnections({ + this.tribeId, + this.tribeName, + this.tribeImage, + this.memberRole, + this.totalMemberCount, + this.adminProfilePicture, + this.connectedUserId, + this.firstName, + this.lastName, + this.fullName, + this.profilePicture, + this.agoraGroupID, + this.isAdded, + }); + + factory ExclusiveConnections.fromJson(Map json) => + ExclusiveConnections( + tribeId: json["tribeID"], + tribeName: json["tribeName"], + tribeImage: json["tribeImage"], + memberRole: json["memberRole"], + totalMemberCount: json["totalMemberCount"], + adminProfilePicture: json["adminProfilePicture"], + connectedUserId: json["connectedUserID"], + firstName: json["firstName"], + lastName: json["lastName"], + fullName: json["fullName"], + profilePicture: json["profilePicture"], + agoraGroupID: json["agoraGroupID"], + isAdded: json["isAdded"], + ); + + Map toJson() => { + "tribeID": tribeId, + "tribeName": tribeName, + "tribeImage": tribeImage, + "memberRole": memberRole, + "totalMemberCount": totalMemberCount, + "adminProfilePicture": adminProfilePicture, + "connectedUserID": connectedUserId, + "firstName": firstName, + "lastName": lastName, + "fullName": fullName, + "profilePicture": profilePicture, + "agoraGroupID": agoraGroupID, + "isAdded": isAdded, + }; +} diff --git a/lib/screens/echoboard/models/get_user_list_for_connection_request_response_model.dart b/lib/screens/echoboard/models/get_user_list_for_connection_request_response_model.dart new file mode 100644 index 0000000..6637e73 --- /dev/null +++ b/lib/screens/echoboard/models/get_user_list_for_connection_request_response_model.dart @@ -0,0 +1,120 @@ +import 'dart:convert'; + +GetAllUsersForSendConnectionModel getAllUsersForSendConnectionModelFromJson( + String str, +) => GetAllUsersForSendConnectionModel.fromJson(json.decode(str)); + +String getAllUsersForSendConnectionModelToJson( + GetAllUsersForSendConnectionModel data, +) => json.encode(data.toJson()); + +class GetAllUsersForSendConnectionModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + GetAllUsersForSendConnectionModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory GetAllUsersForSendConnectionModel.fromJson( + Map json, + ) => GetAllUsersForSendConnectionModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + int? totalCount; + List? items; + + Data({this.totalCount, this.items}); + + factory Data.fromJson(Map json) => Data( + totalCount: json["totalCount"], + items: + json["items"] == null + ? [] + : List.from( + json["items"]!.map((x) => SocialUserInfo.fromJson(x)), + ), + ); + + Map toJson() => { + "totalCount": totalCount, + "items": + items == null ? [] : List.from(items!.map((x) => x.toJson())), + }; +} + +class SocialUserInfo { + String? userId; + String? email; + String? firstName; + String? lastName; + String? fullName; + String? userProfileImage; + String? userTypeName; + String? connectionStatus; + String? tribeMemberRole; + String? tribAdminUserId; + bool isSelected = false; + + SocialUserInfo({ + this.userId, + this.email, + this.firstName, + this.lastName, + this.fullName, + this.userProfileImage, + this.userTypeName, + this.connectionStatus, + this.tribeMemberRole, + this.tribAdminUserId, + this.isSelected = false, + }); + + factory SocialUserInfo.fromJson(Map json) => SocialUserInfo( + userId: json["userID"], + email: json["email"], + firstName: json["firstName"], + lastName: json["lastName"], + fullName: json["fullName"], + userProfileImage: json["userProfileImage"], + userTypeName: json["userTypeName"], + connectionStatus: json["connectionStatus"], + tribeMemberRole: json["tribeMemberRole"], + tribAdminUserId: json["addedBy"], + ); + + Map toJson() => { + "userID": userId, + "email": email, + "firstName": firstName, + "lastName": lastName, + "fullName": fullName, + "userProfileImage": userProfileImage, + "userTypeName": userTypeName, + "connectionStatus": connectionStatus, + "tribeMemberRole": tribeMemberRole, + "addedBy": tribAdminUserId, + }; +} diff --git a/lib/screens/echoboard/models/goal_badges_response_model.dart b/lib/screens/echoboard/models/goal_badges_response_model.dart new file mode 100644 index 0000000..594bc7d --- /dev/null +++ b/lib/screens/echoboard/models/goal_badges_response_model.dart @@ -0,0 +1,64 @@ +import 'dart:convert'; + +CompletedGoalForBadgesResponseModel completedGoalForBadgesResponseModelFromJson( + String str, +) => CompletedGoalForBadgesResponseModel.fromJson(json.decode(str)); + +String completedGoalForBadgesResponseModelToJson( + CompletedGoalForBadgesResponseModel data, +) => json.encode(data.toJson()); + +class CompletedGoalForBadgesResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + List? data; + dynamic errors; + + CompletedGoalForBadgesResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory CompletedGoalForBadgesResponseModel.fromJson( + Map json, + ) => CompletedGoalForBadgesResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: + json["data"] == null + ? [] + : List.from( + json["data"]!.map((x) => SingleGoalCompletedModel.fromJson(x)), + ), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": + data == null ? [] : List.from(data!.map((x) => x.toJson())), + "errors": errors, + }; +} + +class SingleGoalCompletedModel { + int? goalId; + String? goalTitle; + + SingleGoalCompletedModel({this.goalId, this.goalTitle}); + + factory SingleGoalCompletedModel.fromJson(Map json) => + SingleGoalCompletedModel( + goalId: json["goalID"], + goalTitle: json["goalTitle"], + ); + + Map toJson() => {"goalID": goalId, "goalTitle": goalTitle}; +} diff --git a/lib/screens/echoboard/models/parent_comments_response_model.dart b/lib/screens/echoboard/models/parent_comments_response_model.dart new file mode 100644 index 0000000..3a784ce --- /dev/null +++ b/lib/screens/echoboard/models/parent_comments_response_model.dart @@ -0,0 +1,124 @@ +import 'dart:convert'; + +ParentCommentResponseModel parentCommentResponseModelFromJson(String str) => + ParentCommentResponseModel.fromJson(json.decode(str)); + +String parentCommentResponseModelToJson(ParentCommentResponseModel data) => + json.encode(data.toJson()); + +class ParentCommentResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + CommentData? data; + dynamic errors; + + ParentCommentResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory ParentCommentResponseModel.fromJson(Map json) => + ParentCommentResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : CommentData.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class CommentData { + int? totalCount; + List? items; + + CommentData({this.totalCount, this.items}); + + factory CommentData.fromJson(Map json) => CommentData( + totalCount: json["totalCount"], + items: + json["items"] == null + ? [] + : List.from( + json["items"]!.map((x) => CommentItem.fromJson(x)), + ), + ); + + Map toJson() => { + "totalCount": totalCount, + "items": + items == null ? [] : List.from(items!.map((x) => x.toJson())), + }; +} + +class CommentItem { + List? subComments; + int? totalSubCommentCount; + String? firstName; + String? lastName; + String? fullName; + String? profilePicture; + int? commentId; + int? postId; + String? commentText; + DateTime? createdAt; + + CommentItem({ + this.subComments, + this.totalSubCommentCount, + this.firstName, + this.lastName, + this.fullName, + this.profilePicture, + this.commentId, + this.postId, + this.commentText, + this.createdAt, + }); + + factory CommentItem.fromJson(Map json) => CommentItem( + subComments: + json["subComments"] == null + ? [] + : List.from( + json["subComments"]!.map((x) => CommentItem.fromJson(x)), + ), + totalSubCommentCount: json["totalSubCommentCount"], + firstName: json["firstName"], + lastName: json["lastName"], + fullName: json["fullName"], + profilePicture: json["profilePicture"], + commentId: json["commentID"], + postId: json["postID"], + commentText: json["commentText"], + createdAt: + json["createdAt"] == null ? null : DateTime.parse(json["createdAt"]), + ); + + Map toJson() => { + "subComments": + subComments == null + ? [] + : List.from(subComments!.map((x) => x.toJson())), + "totalSubCommentCount": totalSubCommentCount, + "firstName": firstName, + "lastName": lastName, + "fullName": fullName, + "profilePicture": profilePicture, + "commentID": commentId, + "postID": postId, + "commentText": commentText, + "createdAt": createdAt?.toIso8601String(), + }; +} diff --git a/lib/screens/echoboard/models/poll_submit_response_model.dart b/lib/screens/echoboard/models/poll_submit_response_model.dart new file mode 100644 index 0000000..4cd5c3d --- /dev/null +++ b/lib/screens/echoboard/models/poll_submit_response_model.dart @@ -0,0 +1,123 @@ +import 'dart:convert'; + +PollSubmitResponseModel pollSubmitResponseModelFromJson(String str) => + PollSubmitResponseModel.fromJson(json.decode(str)); + +String pollSubmitResponseModelToJson(PollSubmitResponseModel data) => + json.encode(data.toJson()); + +class PollSubmitResponseModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + PollSubmitResponseModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory PollSubmitResponseModel.fromJson(Map json) => + PollSubmitResponseModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + int? pollPostId; + String? question; + DateTime? expiryDate; + List? options; + int? totalPollVotes; + + Data({ + this.pollPostId, + this.question, + this.expiryDate, + this.options, + this.totalPollVotes, + }); + + factory Data.fromJson(Map json) => Data( + pollPostId: json["pollPostID"], + question: json["question"], + expiryDate: + json["expiryDate"] == null ? null : DateTime.parse(json["expiryDate"]), + options: + json["options"] == null + ? [] + : List.from( + json["options"]!.map( + (x) => PollSubmitResponseOptions.fromJson(x), + ), + ), + totalPollVotes: json["totalPollVotes"], + ); + + Map toJson() => { + "pollPostID": pollPostId, + "question": question, + "expiryDate": expiryDate?.toIso8601String(), + "options": + options == null + ? [] + : List.from(options!.map((x) => x.toJson())), + "totalPollVotes": totalPollVotes, + }; +} + +class PollSubmitResponseOptions { + int? optionId; + int? pollId; + String? userId; + String? optionLabel; + int? totalOptionPollVotes; + int? percentageOptionPollVotes; + bool? hasUserVoted; + PollSubmitResponseOptions({ + this.optionId, + this.pollId, + this.userId, + this.optionLabel, + this.totalOptionPollVotes, + this.percentageOptionPollVotes, + this.hasUserVoted, + }); + + factory PollSubmitResponseOptions.fromJson(Map json) => + PollSubmitResponseOptions( + optionId: json["optionID"], + pollId: json["pollID"], + userId: json["userID"], + optionLabel: json["optionLabel"], + totalOptionPollVotes: json["totalOptionPollVotes"], + percentageOptionPollVotes: json["percentageOptionPollVotes"], + hasUserVoted: json["hasUserVoted"], + ); + + Map toJson() => { + "optionID": optionId, + "pollID": pollId, + "userID": userId, + "optionLabel": optionLabel, + "totalOptionPollVotes": totalOptionPollVotes, + "percentageOptionPollVotes": percentageOptionPollVotes, + "hasUserVoted": hasUserVoted, + }; +} diff --git a/lib/screens/echoboard/models/post_model.dart b/lib/screens/echoboard/models/post_model.dart new file mode 100644 index 0000000..99e4d9b --- /dev/null +++ b/lib/screens/echoboard/models/post_model.dart @@ -0,0 +1,337 @@ +import 'dart:convert'; + +PostModel postModelFromJson(String str) => PostModel.fromJson(json.decode(str)); + +String postModelToJson(PostModel data) => json.encode(data.toJson()); + +class PostModel { + bool? isSuccess; + int? statusCode; + String? message; + Data? data; + dynamic errors; + + PostModel({ + this.isSuccess, + this.statusCode, + this.message, + this.data, + this.errors, + }); + + factory PostModel.fromJson(Map json) => PostModel( + isSuccess: json["isSuccess"], + statusCode: json["statusCode"], + message: json["message"], + data: json["data"] == null ? null : Data.fromJson(json["data"]), + errors: json["errors"], + ); + + Map toJson() => { + "isSuccess": isSuccess, + "statusCode": statusCode, + "message": message, + "data": data?.toJson(), + "errors": errors, + }; +} + +class Data { + int? totalCount; + List? items; + + Data({this.totalCount, this.items}); + + factory Data.fromJson(Map json) => Data( + totalCount: json["totalCount"], + items: + json["items"] == null + ? [] + : List.from( + json["items"]!.map((x) => SocialPostItem.fromJson(x)), + ), + ); + + Map toJson() => { + "totalCount": totalCount, + "items": + items == null ? [] : List.from(items!.map((x) => x.toJson())), + }; +} + +class SocialPostItem { + int? postId; + String? userId; + String? firstName; + String? lastName; + String? fullName; + String? profilePicture; + int? userTypeId; + String? userTypeName; + String? coachTypeName; + int? coachRequestStatus; + String? content; + int? postTypeId; + int? postVisibilityId; + int? deviceTypeId; + bool? isTribe; + dynamic tribeId; + DateTime? createdAt; + DateTime? updateAt; + List? mediaFiles; + Poll? poll; + List? comments; + int? totalPostComments; + int? totalPostReactions; + dynamic postReactionTypeId; + + SocialPostItem({ + this.postId, + this.userId, + this.firstName, + this.lastName, + this.fullName, + this.profilePicture, + this.userTypeId, + this.userTypeName, + this.coachTypeName, + this.coachRequestStatus, + this.content, + this.postTypeId, + this.postVisibilityId, + this.deviceTypeId, + this.isTribe, + this.tribeId, + this.createdAt, + this.updateAt, + this.mediaFiles, + this.poll, + this.comments, + this.totalPostComments, + this.totalPostReactions, + this.postReactionTypeId, + }); + + factory SocialPostItem.fromJson(Map json) => SocialPostItem( + postId: json["postID"], + userId: json["userID"], + firstName: json["firstName"], + lastName: json["lastName"], + fullName: json["fullName"], + profilePicture: json["profilePicture"], + userTypeId: json["userTypeId"], + userTypeName: json["userTypeName"], + coachTypeName: json["coachTypeName"], + coachRequestStatus: json["coachRequestStatus"], + content: json["content"], + postTypeId: json["postTypeID"], + postVisibilityId: json["postVisibilityID"], + deviceTypeId: json["deviceTypeID"], + isTribe: json["isTribe"], + tribeId: json["tribeID"], + createdAt: + json["createdAt"] == null ? null : DateTime.parse(json["createdAt"]), + updateAt: + json["updateAt"] == null ? null : DateTime.parse(json["updateAt"]), + mediaFiles: + json["mediaFiles"] == null + ? [] + : List.from( + json["mediaFiles"]!.map((x) => MediaFile.fromJson(x)), + ), + poll: json["poll"] == null ? null : Poll.fromJson(json["poll"]), + comments: + json["comments"] == null + ? [] + : List.from(json["comments"]!.map((x) => x)), + totalPostComments: json["totalPostComments"], + totalPostReactions: json["totalPostReactions"], + postReactionTypeId: json["postReactionTypeID"], + ); + + Map toJson() => { + "postID": postId, + "userID": userId, + "firstName": firstName, + "lastName": lastName, + "fullName": fullName, + "profilePicture": profilePicture, + "userTypeId": userTypeId, + "userTypeName": userTypeName, + "coachTypeName": coachTypeName, + "coachRequestStatus": coachRequestStatus, + "content": content, + "postTypeID": postTypeId, + "postVisibilityID": postVisibilityId, + "deviceTypeID": deviceTypeId, + "isTribe": isTribe, + "tribeID": tribeId, + "createdAt": createdAt?.toIso8601String(), + "updateAt": updateAt?.toIso8601String(), + "mediaFiles": + mediaFiles == null + ? [] + : List.from(mediaFiles!.map((x) => x.toJson())), + "poll": poll?.toJson(), + "comments": + comments == null ? [] : List.from(comments!.map((x) => x)), + "totalPostComments": totalPostComments, + "totalPostReactions": totalPostReactions, + "postReactionTypeID": postReactionTypeId, + }; + + SocialPostItem copyWith({ + int? postId, + String? userId, + String? firstName, + String? lastName, + String? fullName, + String? profilePicture, + int? userTypeId, + String? userTypeName, + String? coachTypeName, + int? coachRequestStatus, + String? content, + int? postTypeId, + int? postVisibilityId, + int? deviceTypeId, + bool? isTribe, + dynamic tribeId, + DateTime? createdAt, + DateTime? updateAt, + List? mediaFiles, + Poll? poll, + List? comments, + int? totalPostComments, + int? totalPostReactions, + dynamic postReactionTypeId, + }) { + return SocialPostItem( + postId: postId ?? this.postId, + userId: userId ?? this.userId, + firstName: firstName ?? this.firstName, + lastName: lastName ?? this.lastName, + fullName: fullName ?? this.fullName, + profilePicture: profilePicture ?? this.profilePicture, + userTypeId: userTypeId ?? this.userTypeId, + userTypeName: userTypeName ?? this.userTypeName, + coachTypeName: coachTypeName ?? this.coachTypeName, + coachRequestStatus: coachRequestStatus ?? this.coachRequestStatus, + content: content ?? this.content, + postTypeId: postTypeId ?? this.postTypeId, + postVisibilityId: postVisibilityId ?? this.postVisibilityId, + deviceTypeId: deviceTypeId ?? this.deviceTypeId, + isTribe: isTribe ?? this.isTribe, + tribeId: tribeId ?? this.tribeId, + createdAt: createdAt ?? this.createdAt, + updateAt: updateAt ?? this.updateAt, + mediaFiles: mediaFiles ?? this.mediaFiles, + poll: poll ?? this.poll, + comments: comments ?? this.comments, + totalPostComments: totalPostComments ?? this.totalPostComments, + totalPostReactions: totalPostReactions ?? this.totalPostReactions, + postReactionTypeId: postReactionTypeId ?? this.postReactionTypeId, + ); + } +} + +class MediaFile { + String? mediaFile; + String? mediaType; + String? thumbnailFile; + + MediaFile({this.mediaFile, this.mediaType, this.thumbnailFile}); + + factory MediaFile.fromJson(Map json) => MediaFile( + mediaFile: json["mediaFile"], + mediaType: json["mediaType"], + thumbnailFile: json["thumbnailFile"], + ); + + Map toJson() => { + "mediaFile": mediaFile, + "mediaType": mediaType, + "thumbnailFile": thumbnailFile, + }; +} + +class Poll { + int? pollPostId; + String? question; + DateTime? expiryDate; + List