diff --git a/.gitignore b/.gitignore
index e02b12794f..573c6aad66 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,3 +34,15 @@ AppBundle.xcworkspace/*
tools/buck
*.xcodeproj
!*_Xcode.xcodeproj
+submodules/MtProtoKit/TON/macOS/lib/libtonlibjson.0.5.dylib
+submodules/MtProtoKit/TON/macOS/lib/libtonlibjson.dylib
+submodules/MtProtoKit/TON/macOS/lib/cmake/Tonlib/TonlibConfig.cmake
+submodules/MtProtoKit/TON/macOS/lib/cmake/Tonlib/TonlibConfigVersion.cmake
+submodules/MtProtoKit/TON/macOS/lib/cmake/Tonlib/TonlibTargets-release.cmake
+submodules/MtProtoKit/TON/macOS/lib/cmake/Tonlib/TonlibTargets.cmake
+submodules/MtProtoKit/TON/macOS/lib/fift/Asm.fif
+submodules/MtProtoKit/TON/macOS/lib/fift/Fift.fif
+submodules/MtProtoKit/TON/macOS/lib/fift/Lisp.fif
+submodules/MtProtoKit/TON/macOS/lib/fift/Lists.fif
+submodules/MtProtoKit/TON/macOS/lib/fift/Stack.fif
+submodules/MtProtoKit/TON/macOS/lib/fift/TonUtil.fif
diff --git a/.gitmodules b/.gitmodules
index e69de29bb2..f5ad8ccdfa 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "submodules/rlottie/rlottie"]
+ path = submodules/rlottie/rlottie
+url=https://github.com/peter-iakovlev/rlottie.git
diff --git a/BUCK b/BUCK
index 83d0e06861..718bbaa7bf 100644
--- a/BUCK
+++ b/BUCK
@@ -509,4 +509,4 @@ xcode_workspace_config(
name = "workspace",
workspace_name = "Telegram_Buck",
src_target = ":Telegram",
-)
\ No newline at end of file
+)
diff --git a/Config/buck_rule_macros.bzl b/Config/buck_rule_macros.bzl
index c00d4a7bff..609946e1f9 100644
--- a/Config/buck_rule_macros.bzl
+++ b/Config/buck_rule_macros.bzl
@@ -11,6 +11,7 @@ def apple_lib(
exported_deps = [],
additional_linker_flags = None,
frameworks = [],
+ weak_frameworks = [],
swift_version = None,
modular = True,
compiler_flags = None,
@@ -23,6 +24,8 @@ def apple_lib(
swift_version = swift_version or native.read_config('swift', 'version')
swift_compiler_flags = swift_compiler_flags or []
+ resolved_frameworks = frameworks
+
if native.read_config("xcode", "beta") == "True":
warning_as_error = False
@@ -59,8 +62,12 @@ def apple_lib(
if native.read_config("custom", "mode") == "project":
resolved_linker_flags = linker_flags + additional_linker_flags + ["-Wl,-install_name,@rpath/lib%s.dylib" % (name)]
+ resolved_frameworks = resolved_frameworks + ["$SDKROOT/System/Library/Frameworks/%s.framework" % x for x in weak_frameworks]
else:
resolved_linker_flags = linker_flags + additional_linker_flags + ["-Wl,-install_name,@rpath/%s.framework/%s" % (name, name)]
+ for framework in weak_frameworks:
+ resolved_linker_flags = resolved_linker_flags + ["-Wl,-weak_framework,%s" % framework]
+
native.apple_library(
name = name + "",
srcs = srcs,
@@ -72,7 +79,7 @@ def apple_lib(
deps = deps,
exported_deps = exported_deps,
extra_xcode_files = extra_xcode_files,
- frameworks = frameworks,
+ frameworks = resolved_frameworks,
visibility = visibility,
swift_version = swift_version,
configs = dynamic_library_configs(),
@@ -95,6 +102,13 @@ def apple_lib(
linker_flags = []
resolved_exported_linker_flags = linker_flags + additional_linker_flags
+
+ if native.read_config("custom", "mode") == "project":
+ resolved_frameworks = resolved_frameworks + ["$SDKROOT/System/Library/Frameworks/%s.framework" % x for x in weak_frameworks]
+ else:
+ for framework in weak_frameworks:
+ resolved_exported_linker_flags = resolved_exported_linker_flags + ["-Wl,-weak_framework,%s" % framework]
+
native.apple_library(
name = name,
srcs = srcs,
@@ -104,7 +118,7 @@ def apple_lib(
exported_deps = exported_deps,
exported_linker_flags = resolved_exported_linker_flags,
extra_xcode_files = extra_xcode_files,
- frameworks = frameworks,
+ frameworks = resolved_frameworks,
visibility = visibility,
swift_version = swift_version,
configs = library_configs(),
@@ -126,6 +140,7 @@ def static_library(
deps = [],
additional_linker_flags = None,
frameworks = [],
+ weak_frameworks = [],
info_plist = None,
info_plist_substitutions = {},
modular = True,
@@ -148,6 +163,7 @@ def static_library(
deps = deps,
additional_linker_flags = additional_linker_flags,
frameworks = frameworks,
+ weak_frameworks = weak_frameworks,
warning_as_error = warning_as_error,
suppress_warnings = suppress_warnings
)
@@ -164,6 +180,7 @@ def framework(
exported_deps = [],
additional_linker_flags = None,
frameworks = [],
+ weak_frameworks = [],
info_plist = None,
info_plist_substitutions = {},
modular = True,
@@ -187,6 +204,7 @@ def framework(
exported_deps = exported_deps,
additional_linker_flags = additional_linker_flags,
frameworks = frameworks,
+ weak_frameworks = weak_frameworks,
warning_as_error = warning_as_error,
suppress_warnings = suppress_warnings,
framework = True
diff --git a/Config/configs.bzl b/Config/configs.bzl
index 9b5a6ba2ff..b52954d5c3 100644
--- a/Config/configs.bzl
+++ b/Config/configs.bzl
@@ -1,3 +1,4 @@
+
load("//Config:utils.bzl", "config_with_updated_linker_flags", "configs_with_config")
load("//Config:app_configuration.bzl", "appConfig")
@@ -403,6 +404,7 @@ def widget_extension_info_plist_substitutions():
"APP_SPECIFIC_URL_SCHEME": appConfig()["appSpecificUrlScheme"],
"BUILD_NUMBER": get_build_number(),
"PRODUCT_BUNDLE_SHORT_VERSION": get_short_version(),
+ "MinimumOSVersion": "9.0",
}
return substitutions
@@ -416,6 +418,7 @@ def notification_content_extension_info_plist_substitutions():
"CURRENT_PROJECT_VERSION": "1",
"BUILD_NUMBER": get_build_number(),
"PRODUCT_BUNDLE_SHORT_VERSION": get_short_version(),
+ "MinimumOSVersion": "10.0",
}
return substitutions
@@ -429,6 +432,7 @@ def notification_service_extension_info_plist_substitutions():
"CURRENT_PROJECT_VERSION": "1",
"BUILD_NUMBER": get_build_number(),
"PRODUCT_BUNDLE_SHORT_VERSION": get_short_version(),
+ "MinimumOSVersion": "10.0",
}
return substitutions
@@ -444,6 +448,7 @@ def intents_extension_info_plist_substitutions():
"BUILD_NUMBER": get_build_number(),
"PRODUCT_BUNDLE_SHORT_VERSION": get_short_version(),
"PRODUCT_MODULE_NAME": "SiriIntents",
+ "MinimumOSVersion": "10.0",
}
return substitutions
diff --git a/Makefile b/Makefile
index 207d6fc680..1d46ca4e7a 100644
--- a/Makefile
+++ b/Makefile
@@ -140,6 +140,32 @@ build_wallet_debug_arm64: check_env
//submodules/Display:Display#shared,iphoneos-arm64 \
${BUCK_OPTIONS} ${BUCK_DEBUG_OPTIONS} ${BUCK_THREADS_OPTIONS} ${BUCK_CACHE_OPTIONS}
+build_debug_armv7: check_env
+ $(BUCK) build \
+ //:AppPackage#iphoneos-armv7 \
+ //:Telegram#dwarf-and-dsym,iphoneos-armv7 \
+ //submodules/MtProtoKit:MtProtoKit#dwarf-and-dsym,shared,iphoneos-armv7 \
+ //submodules/MtProtoKit:MtProtoKit#shared,iphoneos-armv7 \
+ //submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit#dwarf-and-dsym,shared,iphoneos-armv7 \
+ //submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit#shared,iphoneos-armv7 \
+ //submodules/Postbox:Postbox#dwarf-and-dsym,shared,iphoneos-armv7 \
+ //submodules/Postbox:Postbox#shared,iphoneos-armv7 \
+ //submodules/TelegramCore:TelegramCore#dwarf-and-dsym,shared,iphoneos-armv7 \
+ //submodules/TelegramCore:TelegramCore#shared,iphoneos-armv7 \
+ //submodules/AsyncDisplayKit:AsyncDisplayKit#dwarf-and-dsym,shared,iphoneos-armv7 \
+ //submodules/AsyncDisplayKit:AsyncDisplayKit#shared,iphoneos-armv7 \
+ //submodules/Display:Display#dwarf-and-dsym,shared,iphoneos-armv7 \
+ //submodules/Display:Display#shared,iphoneos-armv7 \
+ //submodules/TelegramUI:TelegramUI#dwarf-and-dsym,shared,iphoneos-armv7 \
+ //submodules/TelegramUI:TelegramUI#shared,iphoneos-armv7 \
+ //:WatchAppExtension#dwarf-and-dsym,watchos-armv7_32,watchos-armv7k \
+ //:ShareExtension#dwarf-and-dsym,iphoneos-armv7 \
+ //:WidgetExtension#dwarf-and-dsym,iphoneos-armv7 \
+ //:NotificationContentExtension#dwarf-and-dsym,iphoneos-armv7 \
+ //:NotificationServiceExtension#dwarf-and-dsym,iphoneos-armv7 \
+ //:IntentsExtension#dwarf-and-dsym,iphoneos-armv7 \
+ ${BUCK_OPTIONS} ${BUCK_DEBUG_OPTIONS} ${BUCK_THREADS_OPTIONS} ${BUCK_CACHE_OPTIONS}
+
build: check_env
$(BUCK) build \
//:AppPackage#iphoneos-arm64,iphoneos-armv7 \
@@ -186,6 +212,26 @@ package_arm64:
PACKAGE_BUNDLE_ID="${BUNDLE_ID}" \
sh package_app.sh iphoneos-arm64 $(BUCK) $(BUCK_OPTIONS) ${BUCK_RELEASE_OPTIONS}
+package_armv7:
+ PACKAGE_DEVELOPMENT_TEAM="${DEVELOPMENT_TEAM}" \
+ PACKAGE_CODE_SIGN_IDENTITY="${DISTRIBUTION_CODE_SIGN_IDENTITY}" \
+ PACKAGE_PROVISIONING_PROFILE_APP="${DISTRIBUTION_PROVISIONING_PROFILE_APP}" \
+ PACKAGE_ENTITLEMENTS_APP="${ENTITLEMENTS_APP}" \
+ PACKAGE_PROVISIONING_PROFILE_EXTENSION_Share="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_SHARE}" \
+ PACKAGE_ENTITLEMENTS_EXTENSION_Share="${ENTITLEMENTS_EXTENSION_SHARE}" \
+ PACKAGE_PROVISIONING_PROFILE_EXTENSION_Widget="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_WIDGET}" \
+ PACKAGE_ENTITLEMENTS_EXTENSION_Widget="${ENTITLEMENTS_EXTENSION_WIDGET}" \
+ PACKAGE_PROVISIONING_PROFILE_EXTENSION_NotificationService="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_NOTIFICATIONSERVICE}" \
+ PACKAGE_ENTITLEMENTS_EXTENSION_NotificationService="${ENTITLEMENTS_EXTENSION_NOTIFICATIONSERVICE}" \
+ PACKAGE_PROVISIONING_PROFILE_EXTENSION_NotificationContent="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_NOTIFICATIONCONTENT}" \
+ PACKAGE_ENTITLEMENTS_EXTENSION_NotificationContent="${ENTITLEMENTS_EXTENSION_NOTIFICATIONCONTENT}" \
+ PACKAGE_PROVISIONING_PROFILE_EXTENSION_Intents="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_INTENTS}" \
+ PACKAGE_ENTITLEMENTS_EXTENSION_Intents="${ENTITLEMENTS_EXTENSION_INTENTS}" \
+ PACKAGE_PROVISIONING_PROFILE_WATCH_APP="${DISTRIBUTION_PROVISIONING_PROFILE_WATCH_APP}" \
+ PACKAGE_PROVISIONING_PROFILE_WATCH_EXTENSION="${DISTRIBUTION_PROVISIONING_PROFILE_WATCH_EXTENSION}" \
+ PACKAGE_BUNDLE_ID="${BUNDLE_ID}" \
+ sh package_app.sh iphoneos-armv7 $(BUCK) $(BUCK_OPTIONS) ${BUCK_RELEASE_OPTIONS}
+
package_debug_arm64:
PACKAGE_DEVELOPMENT_TEAM="${DEVELOPMENT_TEAM}" \
PACKAGE_CODE_SIGN_IDENTITY="${DEVELOPMENT_CODE_SIGN_IDENTITY}" \
@@ -202,12 +248,34 @@ package_debug_arm64:
PACKAGE_PROVISIONING_PROFILE_EXTENSION_Intents="${DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_INTENTS}" \
PACKAGE_ENTITLEMENTS_EXTENSION_Intents="${ENTITLEMENTS_EXTENSION_INTENTS}" \
PACKAGE_PROVISIONING_PROFILE_WATCH_APP="${DEVELOPMENT_PROVISIONING_PROFILE_WATCH_APP}" \
- PACKAGE_PROVISIONING_PROFILE_WATCH_EXTENSION="${DISTRIBUTION_PROVISIONING_PROFILE_WATCH_EXTENSION}" \
+ PACKAGE_PROVISIONING_PROFILE_WATCH_EXTENSION="${DEVELOPMENT_PROVISIONING_PROFILE_WATCH_EXTENSION}" \
PACKAGE_BUNDLE_ID="${BUNDLE_ID}" \
- ENABLE_GET_TASK_ALLOW=1 \
+ ENABLE_GET_TASK_ALLOW=0 \
CODESIGNING_PROFILES_VARIANT="development" \
sh package_app.sh iphoneos-arm64 $(BUCK) $(BUCK_OPTIONS) ${BUCK_RELEASE_OPTIONS}
+package_debug_armv7:
+ PACKAGE_DEVELOPMENT_TEAM="${DEVELOPMENT_TEAM}" \
+ PACKAGE_CODE_SIGN_IDENTITY="${DEVELOPMENT_CODE_SIGN_IDENTITY}" \
+ PACKAGE_PROVISIONING_PROFILE_APP="${DEVELOPMENT_PROVISIONING_PROFILE_APP}" \
+ PACKAGE_ENTITLEMENTS_APP="${ENTITLEMENTS_APP}" \
+ PACKAGE_PROVISIONING_PROFILE_EXTENSION_Share="${DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_SHARE}" \
+ PACKAGE_ENTITLEMENTS_EXTENSION_Share="${ENTITLEMENTS_EXTENSION_SHARE}" \
+ PACKAGE_PROVISIONING_PROFILE_EXTENSION_Widget="${DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_WIDGET}" \
+ PACKAGE_ENTITLEMENTS_EXTENSION_Widget="${ENTITLEMENTS_EXTENSION_WIDGET}" \
+ PACKAGE_PROVISIONING_PROFILE_EXTENSION_NotificationService="${DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_NOTIFICATIONSERVICE}" \
+ PACKAGE_ENTITLEMENTS_EXTENSION_NotificationService="${ENTITLEMENTS_EXTENSION_NOTIFICATIONSERVICE}" \
+ PACKAGE_PROVISIONING_PROFILE_EXTENSION_NotificationContent="${DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_NOTIFICATIONCONTENT}" \
+ PACKAGE_ENTITLEMENTS_EXTENSION_NotificationContent="${ENTITLEMENTS_EXTENSION_NOTIFICATIONCONTENT}" \
+ PACKAGE_PROVISIONING_PROFILE_EXTENSION_Intents="${DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_INTENTS}" \
+ PACKAGE_ENTITLEMENTS_EXTENSION_Intents="${ENTITLEMENTS_EXTENSION_INTENTS}" \
+ PACKAGE_PROVISIONING_PROFILE_WATCH_APP="${DEVELOPMENT_PROVISIONING_PROFILE_WATCH_APP}" \
+ PACKAGE_PROVISIONING_PROFILE_WATCH_EXTENSION="${DEVELOPMENT_PROVISIONING_PROFILE_WATCH_EXTENSION}" \
+ PACKAGE_BUNDLE_ID="${BUNDLE_ID}" \
+ ENABLE_GET_TASK_ALLOW=0 \
+ CODESIGNING_PROFILES_VARIANT="development" \
+ sh package_app.sh iphoneos-armv7 $(BUCK) $(BUCK_OPTIONS) ${BUCK_RELEASE_OPTIONS}
+
package:
PACKAGE_DEVELOPMENT_TEAM="${DEVELOPMENT_TEAM}" \
PACKAGE_CODE_SIGN_IDENTITY="${DISTRIBUTION_CODE_SIGN_IDENTITY}" \
@@ -236,6 +304,8 @@ app_debug_arm64: build_debug_arm64 package_debug_arm64
wallet_debug_arm64: build_wallet_debug_arm64
+app_debug_armv7: build_debug_armv7 package_debug_armv7
+
build_buckdebug: check_env
BUCK_DEBUG_MODE=1 $(BUCK) build \
//:AppPackage#iphoneos-arm64 \
@@ -326,6 +396,10 @@ wallet_project: check_env kill_xcode
$(BUCK) project //Wallet:workspace --config custom.mode=project ${BUCK_OPTIONS} ${BUCK_DEBUG_OPTIONS}
open Wallet/WalletWorkspace.xcworkspace
+project_opt: check_env kill_xcode
+ $(BUCK) project //:workspace --config custom.mode=project ${BUCK_OPTIONS} ${BUCK_RELEASE_OPTIONS}
+ open Telegram_Buck.xcworkspace
+
project_buckdebug: check_env kill_xcode
BUCK_DEBUG_MODE=1 $(BUCK) project //:workspace --config custom.mode=project ${BUCK_OPTIONS} ${BUCK_DEBUG_OPTIONS}
open Telegram_Buck.xcworkspace
diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings
index 51b998d1cd..4cb008ec4b 100644
--- a/Telegram-iOS/en.lproj/Localizable.strings
+++ b/Telegram-iOS/en.lproj/Localizable.strings
@@ -4786,8 +4786,7 @@ Any member of this group will be able to see messages in the channel.";
"Wallet.Info.TransactionTo" = "to";
"Wallet.Info.TransactionFrom" = "from";
"Wallet.Info.Updating" = "updating";
-"Wallet.Info.TransactionStorageFee" = "%@ storage fee";
-"Wallet.Info.TransactionOtherFee" = "%@ transaction fee";
+"Wallet.Info.TransactionBlockchainFee" = "%@ blockchain fee";
"Wallet.Info.TransactionPendingHeader" = "Pending";
"Wallet.Qr.ScanCode" = "Scan QR Code";
"Wallet.Qr.Title" = "QR Code";
@@ -4867,6 +4866,9 @@ Any member of this group will be able to see messages in the channel.";
"Wallet.TransactionInfo.CommentHeader" = "COMMENT";
"Wallet.TransactionInfo.StorageFeeHeader" = "STORAGE FEE";
"Wallet.TransactionInfo.OtherFeeHeader" = "TRANSACTION FEE";
+"Wallet.TransactionInfo.StorageFeeInfo" = "Blockchain validators collect a tiny fee for storing information about your decentralized wallet. [More info]()";
+"Wallet.TransactionInfo.OtherFeeInfo" = "Blockchain validators collect a tiny fee for processing your decentralized transactions. [More info]()";
+"Wallet.TransactionInfo.FeeInfoURL" = "https://telegram.org/wallet/fee";
"Wallet.WordCheck.Title" = "Test Time!";
"Wallet.WordCheck.Text" = "Let’s check that you wrote them down correctly. Please enter words\n**%1$@**, **%2$@** and **%3$@** below:";
"Wallet.WordCheck.Continue" = "Continue";
diff --git a/buildbox/guest-build-telegram.sh b/buildbox/guest-build-telegram.sh
index 6df83bb603..b094f67104 100644
--- a/buildbox/guest-build-telegram.sh
+++ b/buildbox/guest-build-telegram.sh
@@ -130,6 +130,7 @@ else
export DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS="-t DAV"
if [ "$1" == "appstore" ]; then
FASTLANE_PASSWORD="$FASTLANE_PASSWORD" xcrun altool --upload-app --type ios --file "$RESULT_IPA_NAME" --username "$FASTLANE_ITC_USERNAME" --password "@env:FASTLANE_PASSWORD"
+ FASTLANE_PASSWORD="$FASTLANE_PASSWORD" FASTLANE_ITC_TEAM_NAME="$FASTLANE_ITC_TEAM_NAME" fastlane "$FASTLANE_BUILD_CONFIGURATION" build_number:"$BUILD_NUMBER" commit_hash:"$COMMIT_ID" commit_author:"$COMMIT_AUTHOR" skip_build:1 skip_pilot:1
else
FASTLANE_PASSWORD="$FASTLANE_PASSWORD" FASTLANE_ITC_TEAM_NAME="$FASTLANE_ITC_TEAM_NAME" fastlane "$FASTLANE_BUILD_CONFIGURATION" build_number:"$BUILD_NUMBER" commit_hash:"$COMMIT_ID" commit_author:"$COMMIT_AUTHOR" skip_build:1
fi
diff --git a/package_app.sh b/package_app.sh
index c6b602e9d9..f33b70dcaa 100644
--- a/package_app.sh
+++ b/package_app.sh
@@ -187,7 +187,7 @@ for ITEM in $APP_ITEMS_WITH_PROVISIONING_PROFILE; do
if [ "$ENABLE_GET_TASK_ALLOW" == "1" ]; then
KEY="com.apple.security.get-task-allow"
PLUTIL_KEY=$(echo "$KEY" | sed 's/\./\\\./g')
- plutil -insert "$PLUTIL_KEY" -xml "" "$PROFILE_ENTITLEMENTS_PATH"
+ plutil -insert "$PLUTIL_KEY" -xml "" "$PROFILE_ENTITLEMENTS_PATH"
fi
ENTITLEMENTS_VAR=PACKAGE_ENTITLEMENTS_$ITEM
diff --git a/submodules/AccountContext/BUCK b/submodules/AccountContext/BUCK
index 6e3d486461..255438a28a 100644
--- a/submodules/AccountContext/BUCK
+++ b/submodules/AccountContext/BUCK
@@ -18,6 +18,8 @@ static_library(
],
frameworks = [
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
- "$SDKROOT/System/Library/Frameworks/Contacts.framework",
+ ],
+ weak_frameworks = [
+ "Contacts",
],
)
diff --git a/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift b/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift
index 50dbf9cfd9..554afe1041 100644
--- a/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift
+++ b/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift
@@ -159,7 +159,8 @@ enum BotCheckoutEntry: ItemListNodeEntry {
return lhs.stableId < rhs.stableId
}
- func item(_ arguments: BotCheckoutControllerArguments) -> ListViewItem {
+ func item(_ arguments: Any) -> ListViewItem {
+ let arguments = arguments as! BotCheckoutControllerArguments
switch self {
case let .header(theme, invoice, botName):
return BotCheckoutHeaderItem(account: arguments.account, theme: theme, invoice: invoice, botName: botName, sectionId: self.section)
@@ -366,7 +367,7 @@ private func availablePaymentMethods(form: BotPaymentForm, current: BotCheckoutP
return methods
}
-final class BotCheckoutControllerNode: ItemListControllerNode, PKPaymentAuthorizationViewControllerDelegate {
+final class BotCheckoutControllerNode: ItemListControllerNode, PKPaymentAuthorizationViewControllerDelegate {
private let context: AccountContext
private let messageId: MessageId
private let present: (ViewController, Any?) -> Void
@@ -394,7 +395,7 @@ final class BotCheckoutControllerNode: ItemListControllerNode,
private var applePayAuthrorizationCompletion: ((PKPaymentAuthorizationStatus) -> Void)?
private var applePayController: PKPaymentAuthorizationViewController?
- init(controller: ItemListController?, navigationBar: NavigationBar, updateNavigationOffset: @escaping (CGFloat) -> Void, context: AccountContext, invoice: TelegramMediaInvoice, messageId: MessageId, present: @escaping (ViewController, Any?) -> Void, dismissAnimated: @escaping () -> Void) {
+ init(controller: ItemListController?, navigationBar: NavigationBar, updateNavigationOffset: @escaping (CGFloat) -> Void, context: AccountContext, invoice: TelegramMediaInvoice, messageId: MessageId, present: @escaping (ViewController, Any?) -> Void, dismissAnimated: @escaping () -> Void) {
self.context = context
self.messageId = messageId
self.present = present
@@ -414,8 +415,8 @@ final class BotCheckoutControllerNode: ItemListControllerNode,
openShippingMethodImpl?()
})
- let signal: Signal<(PresentationTheme, (ItemListNodeState, BotCheckoutEntry.ItemGenerationArguments)), NoError> = combineLatest(context.sharedContext.presentationData, self.state.get(), paymentFormAndInfo.get(), context.account.postbox.loadedPeerWithId(messageId.peerId))
- |> map { presentationData, state, paymentFormAndInfo, botPeer -> (PresentationTheme, (ItemListNodeState, BotCheckoutEntry.ItemGenerationArguments)) in
+ let signal: Signal<(PresentationTheme, (ItemListNodeState, Any)), NoError> = combineLatest(context.sharedContext.presentationData, self.state.get(), paymentFormAndInfo.get(), context.account.postbox.loadedPeerWithId(messageId.peerId))
+ |> map { presentationData, state, paymentFormAndInfo, botPeer -> (PresentationTheme, (ItemListNodeState, Any)) in
let nodeState = ItemListNodeState(entries: botCheckoutControllerEntries(presentationData: presentationData, state: state, invoice: invoice, paymentForm: paymentFormAndInfo?.0, formInfo: paymentFormAndInfo?.1, validatedFormInfo: paymentFormAndInfo?.2, currentShippingOptionId: paymentFormAndInfo?.3, currentPaymentMethod: paymentFormAndInfo?.4, botPeer: botPeer), style: .plain, focusItemTag: nil, emptyStateItem: nil, animateChanges: false)
return (presentationData.theme, (nodeState, arguments))
diff --git a/submodules/BotPaymentsUI/Sources/BotReceiptControllerNode.swift b/submodules/BotPaymentsUI/Sources/BotReceiptControllerNode.swift
index b1acd3946a..af19356d93 100644
--- a/submodules/BotPaymentsUI/Sources/BotReceiptControllerNode.swift
+++ b/submodules/BotPaymentsUI/Sources/BotReceiptControllerNode.swift
@@ -147,7 +147,8 @@ enum BotReceiptEntry: ItemListNodeEntry {
return lhs.stableId < rhs.stableId
}
- func item(_ arguments: BotReceiptControllerArguments) -> ListViewItem {
+ func item(_ arguments: Any) -> ListViewItem {
+ let arguments = arguments as! BotReceiptControllerArguments
switch self {
case let .header(theme, invoice, botName):
return BotCheckoutHeaderItem(account: arguments.account, theme: theme, invoice: invoice, botName: botName, sectionId: self.section)
@@ -253,7 +254,7 @@ private func availablePaymentMethods(current: BotCheckoutPaymentMethod?) -> [Bot
return []
}
-final class BotReceiptControllerNode: ItemListControllerNode {
+final class BotReceiptControllerNode: ItemListControllerNode {
private let context: AccountContext
private let dismissAnimated: () -> Void
@@ -264,7 +265,7 @@ final class BotReceiptControllerNode: ItemListControllerNode {
private let actionButton: BotCheckoutActionButton
- init(controller: ItemListController?, navigationBar: NavigationBar, updateNavigationOffset: @escaping (CGFloat) -> Void, context: AccountContext, invoice: TelegramMediaInvoice, messageId: MessageId, dismissAnimated: @escaping () -> Void) {
+ init(controller: ItemListController?, navigationBar: NavigationBar, updateNavigationOffset: @escaping (CGFloat) -> Void, context: AccountContext, invoice: TelegramMediaInvoice, messageId: MessageId, dismissAnimated: @escaping () -> Void) {
self.context = context
self.dismissAnimated = dismissAnimated
@@ -272,8 +273,8 @@ final class BotReceiptControllerNode: ItemListControllerNode {
let arguments = BotReceiptControllerArguments(account: context.account)
- let signal: Signal<(PresentationTheme, (ItemListNodeState, BotReceiptEntry.ItemGenerationArguments)), NoError> = combineLatest(context.sharedContext.presentationData, receiptData.get(), context.account.postbox.loadedPeerWithId(messageId.peerId))
- |> map { presentationData, receiptData, botPeer -> (PresentationTheme, (ItemListNodeState, BotReceiptEntry.ItemGenerationArguments)) in
+ let signal: Signal<(PresentationTheme, (ItemListNodeState, Any)), NoError> = combineLatest(context.sharedContext.presentationData, receiptData.get(), context.account.postbox.loadedPeerWithId(messageId.peerId))
+ |> map { presentationData, receiptData, botPeer -> (PresentationTheme, (ItemListNodeState, Any)) in
let nodeState = ItemListNodeState(entries: botReceiptControllerEntries(presentationData: presentationData, invoice: invoice, formInvoice: receiptData?.0, formInfo: receiptData?.1, shippingOption: receiptData?.2, paymentMethodTitle: receiptData?.3, botPeer: botPeer), style: .plain, focusItemTag: nil, emptyStateItem: nil, animateChanges: false)
return (presentationData.theme, (nodeState, arguments))
diff --git a/submodules/CloudData/BUCK b/submodules/CloudData/BUCK
index 749eb6f2c7..dbe59042fe 100644
--- a/submodules/CloudData/BUCK
+++ b/submodules/CloudData/BUCK
@@ -12,6 +12,8 @@ static_library(
],
frameworks = [
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
- "$SDKROOT/System/Library/Frameworks/CloudKit.framework",
+ ],
+ weak_frameworks = [
+ "CloudKit",
],
)
diff --git a/submodules/ComposePollUI/Sources/CreatePollController.swift b/submodules/ComposePollUI/Sources/CreatePollController.swift
index 59df335199..ff84146754 100644
--- a/submodules/ComposePollUI/Sources/CreatePollController.swift
+++ b/submodules/ComposePollUI/Sources/CreatePollController.swift
@@ -128,7 +128,8 @@ private enum CreatePollEntry: ItemListNodeEntry {
return lhs.sortId < rhs.sortId
}
- func item(_ arguments: CreatePollControllerArguments) -> ListViewItem {
+ func item(_ arguments: Any) -> ListViewItem {
+ let arguments = arguments as! CreatePollControllerArguments
switch self {
case let .textHeader(theme, text, accessoryText):
return ItemListSectionHeaderItem(theme: theme, text: text, accessoryText: accessoryText, sectionId: self.section)
@@ -305,7 +306,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple
let limitsKey = PostboxViewKey.preferences(keys: Set([PreferencesKeys.limitsConfiguration]))
let signal = combineLatest(context.sharedContext.presentationData, statePromise.get() |> deliverOnMainQueue, context.account.postbox.combinedView(keys: [limitsKey]))
- |> map { presentationData, state, combinedView -> (ItemListControllerState, (ItemListNodeState, CreatePollEntry.ItemGenerationArguments)) in
+ |> map { presentationData, state, combinedView -> (ItemListControllerState, (ItemListNodeState, Any)) in
let limitsConfiguration: LimitsConfiguration = (combinedView.views[limitsKey] as? PreferencesView)?.values[PreferencesKeys.limitsConfiguration] as? LimitsConfiguration ?? LimitsConfiguration.defaultValue
var enabled = true
@@ -453,7 +454,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple
})
}
- controller.reorderEntry = { fromIndex, toIndex, entries in
+ controller.setReorderEntry({ (fromIndex: Int, toIndex: Int, entries: [CreatePollEntry]) -> Void in
let fromEntry = entries[fromIndex]
guard case let .option(_, _, id, _, _, _, _, _) = fromEntry else {
return
@@ -512,7 +513,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple
}
return state
}
- }
+ })
controller.isOpaqueWhenInOverlay = true
controller.blocksBackgroundWhenInOverlay = true
controller.experimentalSnapScrollToItem = true
diff --git a/submodules/Crc32/Crc32_Xcode.xcodeproj/project.pbxproj b/submodules/Crc32/Crc32_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..ac6072ee0a
--- /dev/null
+++ b/submodules/Crc32/Crc32_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,1595 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D03E45692305CC310049C28B /* Crc32.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45672305CC310049C28B /* Crc32.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D03E45742305CCD20049C28B /* Crc32.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45732305CCD20049C28B /* Crc32.m */; };
+ D03E45772305CCEC0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45762305CCEB0049C28B /* Foundation.framework */; };
+ D03E45792305CCF00049C28B /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45782305CCF00049C28B /* libz.tbd */; };
+ D03E46362306E0BB0049C28B /* crc32mac.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E46342306E0BB0049C28B /* crc32mac.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D03E463E2306E22E0049C28B /* Crc32.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45732305CCD20049C28B /* Crc32.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D03E45642305CC310049C28B /* Crc32.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Crc32.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D03E45672305CC310049C28B /* Crc32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Crc32.h; sourceTree = ""; };
+ D03E45682305CC310049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D03E45732305CCD20049C28B /* Crc32.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Crc32.m; sourceTree = ""; };
+ D03E45762305CCEB0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D03E45782305CCF00049C28B /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
+ D03E46322306E0BB0049C28B /* crc32mac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = crc32mac.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D03E46342306E0BB0049C28B /* crc32mac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = crc32mac.h; sourceTree = ""; };
+ D03E46352306E0BB0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D03E45612305CC310049C28B /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D03E45792305CCF00049C28B /* libz.tbd in Frameworks */,
+ D03E45772305CCEC0049C28B /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D03E462F2306E0BB0049C28B /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D03E455A2305CC310049C28B = {
+ isa = PBXGroup;
+ children = (
+ D03E45682305CC310049C28B /* Info.plist */,
+ D03E45662305CC310049C28B /* Sources */,
+ D03E46332306E0BB0049C28B /* crc32mac */,
+ D03E45652305CC310049C28B /* Products */,
+ D03E45752305CCEB0049C28B /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ D03E45652305CC310049C28B /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D03E45642305CC310049C28B /* Crc32.framework */,
+ D03E46322306E0BB0049C28B /* crc32mac.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ D03E45662305CC310049C28B /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D03E45732305CCD20049C28B /* Crc32.m */,
+ D03E45672305CC310049C28B /* Crc32.h */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ D03E45752305CCEB0049C28B /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D03E45782305CCF00049C28B /* libz.tbd */,
+ D03E45762305CCEB0049C28B /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ D03E46332306E0BB0049C28B /* crc32mac */ = {
+ isa = PBXGroup;
+ children = (
+ D03E46342306E0BB0049C28B /* crc32mac.h */,
+ D03E46352306E0BB0049C28B /* Info.plist */,
+ );
+ path = crc32mac;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D03E455F2305CC310049C28B /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D03E45692305CC310049C28B /* Crc32.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D03E462D2306E0BB0049C28B /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D03E46362306E0BB0049C28B /* crc32mac.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D03E45632305CC310049C28B /* Crc32 */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D03E456C2305CC310049C28B /* Build configuration list for PBXNativeTarget "Crc32" */;
+ buildPhases = (
+ D03E455F2305CC310049C28B /* Headers */,
+ D03E45602305CC310049C28B /* Sources */,
+ D03E45612305CC310049C28B /* Frameworks */,
+ D03E45622305CC310049C28B /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = Crc32;
+ productName = Crc32;
+ productReference = D03E45642305CC310049C28B /* Crc32.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+ D03E46312306E0BB0049C28B /* crc32mac */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D03E463B2306E0BB0049C28B /* Build configuration list for PBXNativeTarget "crc32mac" */;
+ buildPhases = (
+ D03E462D2306E0BB0049C28B /* Headers */,
+ D03E462E2306E0BB0049C28B /* Sources */,
+ D03E462F2306E0BB0049C28B /* Frameworks */,
+ D03E46302306E0BB0049C28B /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = crc32mac;
+ productName = crc32mac;
+ productReference = D03E46322306E0BB0049C28B /* crc32mac.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D03E455B2305CC310049C28B /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ DefaultBuildSystemTypeForWorkspace = Latest;
+ LastUpgradeCheck = 1030;
+ ORGANIZATIONNAME = "Telegram Messenger LLP";
+ TargetAttributes = {
+ D03E45632305CC310049C28B = {
+ CreatedOnToolsVersion = 10.3;
+ };
+ D03E46312306E0BB0049C28B = {
+ CreatedOnToolsVersion = 10.3;
+ };
+ };
+ };
+ buildConfigurationList = D03E455E2305CC310049C28B /* Build configuration list for PBXProject "Crc32_Xcode" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D03E455A2305CC310049C28B;
+ productRefGroup = D03E45652305CC310049C28B /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D03E45632305CC310049C28B /* Crc32 */,
+ D03E46312306E0BB0049C28B /* crc32mac */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D03E45622305CC310049C28B /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D03E46302306E0BB0049C28B /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D03E45602305CC310049C28B /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D03E45742305CCD20049C28B /* Crc32.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D03E462E2306E0BB0049C28B /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D03E463E2306E22E0049C28B /* Crc32.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ D0208AAC2306E7EB00A23503 /* HockeyappMacAlpha */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = HockeyappMacAlpha;
+ };
+ D0208AAD2306E7EB00A23503 /* HockeyappMacAlpha */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CODE_SIGN_IDENTITY = "";
+ CODE_SIGN_STYLE = Manual;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = HockeyappMacAlpha;
+ };
+ D0208AAE2306E7EB00A23503 /* HockeyappMacAlpha */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "Mac Developer";
+ CODE_SIGN_STYLE = Manual;
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ FRAMEWORK_VERSION = A;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = crc32mac/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = HockeyappMacAlpha;
+ };
+ D0208AAF2306E7F700A23503 /* DebugAppStore */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = DebugAppStore;
+ };
+ D0208AB02306E7F700A23503 /* DebugAppStore */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CODE_SIGN_IDENTITY = "";
+ CODE_SIGN_STYLE = Manual;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = DebugAppStore;
+ };
+ D0208AB12306E7F700A23503 /* DebugAppStore */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "Mac Developer";
+ CODE_SIGN_STYLE = Manual;
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ FRAMEWORK_VERSION = A;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = crc32mac/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = DebugAppStore;
+ };
+ D0208AB22306E7FD00A23503 /* ReleaseAppStore */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ SDKROOT = iphoneos;
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = ReleaseAppStore;
+ };
+ D0208AB32306E7FD00A23503 /* ReleaseAppStore */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CODE_SIGN_IDENTITY = "";
+ CODE_SIGN_STYLE = Manual;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStore;
+ };
+ D0208AB42306E7FD00A23503 /* ReleaseAppStore */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "Mac Developer";
+ CODE_SIGN_STYLE = Manual;
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ FRAMEWORK_VERSION = A;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = crc32mac/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = ReleaseAppStore;
+ };
+ D0208AB52306E80300A23503 /* ReleaseHockeyapp */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ SDKROOT = iphoneos;
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = ReleaseHockeyapp;
+ };
+ D0208AB62306E80300A23503 /* ReleaseHockeyapp */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CODE_SIGN_IDENTITY = "";
+ CODE_SIGN_STYLE = Manual;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseHockeyapp;
+ };
+ D0208AB72306E80300A23503 /* ReleaseHockeyapp */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "Mac Developer";
+ CODE_SIGN_STYLE = Manual;
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ FRAMEWORK_VERSION = A;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = crc32mac/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = ReleaseHockeyapp;
+ };
+ D03E456A2305CC310049C28B /* DebugAppStoreLLC */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = DebugAppStoreLLC;
+ };
+ D03E456B2305CC310049C28B /* ReleaseAppStoreLLC */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ SDKROOT = iphoneos;
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D03E456D2305CC310049C28B /* DebugAppStoreLLC */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CODE_SIGN_IDENTITY = "";
+ CODE_SIGN_STYLE = Manual;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = DebugAppStoreLLC;
+ };
+ D03E456E2305CC310049C28B /* ReleaseAppStoreLLC */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CODE_SIGN_IDENTITY = "";
+ CODE_SIGN_STYLE = Manual;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D03E456F2305CC4E0049C28B /* DebugHockeyapp */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = DebugHockeyapp;
+ };
+ D03E45702305CC4E0049C28B /* DebugHockeyapp */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CODE_SIGN_IDENTITY = "";
+ CODE_SIGN_STYLE = Manual;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = DebugHockeyapp;
+ };
+ D03E45712305CC590049C28B /* ReleaseHockeyappInternal */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ SDKROOT = iphoneos;
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = ReleaseHockeyappInternal;
+ };
+ D03E45722305CC590049C28B /* ReleaseHockeyappInternal */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CODE_SIGN_IDENTITY = "";
+ CODE_SIGN_STYLE = Manual;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = ReleaseHockeyappInternal;
+ };
+ D03E46372306E0BB0049C28B /* DebugAppStoreLLC */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "Mac Developer";
+ CODE_SIGN_STYLE = Manual;
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ FRAMEWORK_VERSION = A;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = crc32mac/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = DebugAppStoreLLC;
+ };
+ D03E46382306E0BB0049C28B /* DebugHockeyapp */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "Mac Developer";
+ CODE_SIGN_STYLE = Manual;
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ FRAMEWORK_VERSION = A;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = crc32mac/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = DebugHockeyapp;
+ };
+ D03E46392306E0BB0049C28B /* ReleaseAppStoreLLC */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "Mac Developer";
+ CODE_SIGN_STYLE = Manual;
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ FRAMEWORK_VERSION = A;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = crc32mac/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = ReleaseAppStoreLLC;
+ };
+ D03E463A2306E0BB0049C28B /* ReleaseHockeyappInternal */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "Mac Developer";
+ CODE_SIGN_STYLE = Manual;
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ FRAMEWORK_VERSION = A;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = crc32mac/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ "@loader_path/Frameworks",
+ );
+ MACH_O_TYPE = staticlib;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = ReleaseHockeyappInternal;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ D03E455E2305CC310049C28B /* Build configuration list for PBXProject "Crc32_Xcode" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D03E456A2305CC310049C28B /* DebugAppStoreLLC */,
+ D03E456F2305CC4E0049C28B /* DebugHockeyapp */,
+ D0208AAF2306E7F700A23503 /* DebugAppStore */,
+ D0208AAC2306E7EB00A23503 /* HockeyappMacAlpha */,
+ D03E456B2305CC310049C28B /* ReleaseAppStoreLLC */,
+ D0208AB22306E7FD00A23503 /* ReleaseAppStore */,
+ D0208AB52306E80300A23503 /* ReleaseHockeyapp */,
+ D03E45712305CC590049C28B /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D03E456C2305CC310049C28B /* Build configuration list for PBXNativeTarget "Crc32" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D03E456D2305CC310049C28B /* DebugAppStoreLLC */,
+ D03E45702305CC4E0049C28B /* DebugHockeyapp */,
+ D0208AB02306E7F700A23503 /* DebugAppStore */,
+ D0208AAD2306E7EB00A23503 /* HockeyappMacAlpha */,
+ D03E456E2305CC310049C28B /* ReleaseAppStoreLLC */,
+ D0208AB32306E7FD00A23503 /* ReleaseAppStore */,
+ D0208AB62306E80300A23503 /* ReleaseHockeyapp */,
+ D03E45722305CC590049C28B /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+ D03E463B2306E0BB0049C28B /* Build configuration list for PBXNativeTarget "crc32mac" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D03E46372306E0BB0049C28B /* DebugAppStoreLLC */,
+ D03E46382306E0BB0049C28B /* DebugHockeyapp */,
+ D0208AB12306E7F700A23503 /* DebugAppStore */,
+ D0208AAE2306E7EB00A23503 /* HockeyappMacAlpha */,
+ D03E46392306E0BB0049C28B /* ReleaseAppStoreLLC */,
+ D0208AB42306E7FD00A23503 /* ReleaseAppStore */,
+ D0208AB72306E80300A23503 /* ReleaseHockeyapp */,
+ D03E463A2306E0BB0049C28B /* ReleaseHockeyappInternal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = ReleaseAppStoreLLC;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D03E455B2305CC310049C28B /* Project object */;
+}
diff --git a/submodules/Display/Display/Navigation/NavigationController.swift b/submodules/Display/Display/Navigation/NavigationController.swift
index 3f46605193..e8f48eef76 100644
--- a/submodules/Display/Display/Navigation/NavigationController.swift
+++ b/submodules/Display/Display/Navigation/NavigationController.swift
@@ -228,7 +228,16 @@ open class NavigationController: UINavigationController, ContainableController,
supportedOrientations = supportedOrientations.intersection(modalContainer.container.combinedSupportedOrientations(currentOrientationToLock: currentOrientationToLock))
}
for overlayContrainer in self.overlayContainers {
- supportedOrientations = supportedOrientations.intersection(overlayContrainer.controller.combinedSupportedOrientations(currentOrientationToLock: currentOrientationToLock))
+ let controller = overlayContrainer.controller
+ if controller.lockOrientation {
+ if let lockedOrientation = controller.lockedOrientation {
+ supportedOrientations = supportedOrientations.intersection(ViewControllerSupportedOrientations(regularSize: lockedOrientation, compactSize: lockedOrientation))
+ } else {
+ supportedOrientations = supportedOrientations.intersection(ViewControllerSupportedOrientations(regularSize: currentOrientationToLock, compactSize: currentOrientationToLock))
+ }
+ } else {
+ supportedOrientations = supportedOrientations.intersection(controller.supportedOrientations)
+ }
}
return supportedOrientations
}
diff --git a/submodules/Display/Display/Navigation/NavigationModalContainer.swift b/submodules/Display/Display/Navigation/NavigationModalContainer.swift
index ab2e1567b4..835cb2293f 100644
--- a/submodules/Display/Display/Navigation/NavigationModalContainer.swift
+++ b/submodules/Display/Display/Navigation/NavigationModalContainer.swift
@@ -339,7 +339,8 @@ final class NavigationModalContainer: ASDisplayNode, UIScrollViewDelegate, UIGes
let verticalInset: CGFloat = 44.0
let maxSide = max(layout.size.width, layout.size.height)
- let containerSize = CGSize(width: min(layout.size.width - 20.0, floor(maxSide / 2.0)), height: layout.size.height - verticalInset * 2.0)
+ let minSide = min(layout.size.width, layout.size.height)
+ let containerSize = CGSize(width: min(layout.size.width - 20.0, floor(maxSide / 2.0)), height: min(layout.size.height, minSide) - verticalInset * 2.0)
containerFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - containerSize.width) / 2.0), y: floor((layout.size.height - containerSize.height) / 2.0)), size: containerSize)
containerScale = 1.0
@@ -407,7 +408,7 @@ final class NavigationModalContainer: ASDisplayNode, UIScrollViewDelegate, UIGes
enableScrolling = false
break
} else {
- if scrollView.isDecelerating && scrollView.contentOffset.y < scrollView.contentInset.top {
+ if scrollView.isDecelerating && scrollView.contentOffset.y < -scrollView.contentInset.top {
return self.scrollNode.view
}
}
diff --git a/submodules/Display/Display/Navigation/NavigationOverlayContainer.swift b/submodules/Display/Display/Navigation/NavigationOverlayContainer.swift
index 4689df4688..55609d2f15 100644
--- a/submodules/Display/Display/Navigation/NavigationOverlayContainer.swift
+++ b/submodules/Display/Display/Navigation/NavigationOverlayContainer.swift
@@ -83,4 +83,11 @@ final class NavigationOverlayContainer: ASDisplayNode {
self.controller.setIgnoreAppearanceMethodInvocations(false)
self.controller.viewDidAppear(false)
}
+
+ override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
+ if let result = self.controller.displayNode.hitTest(point, with: event) {
+ return result
+ }
+ return nil
+ }
}
diff --git a/submodules/Display/Display/TooltipController.swift b/submodules/Display/Display/TooltipController.swift
index 84dcab6b94..515544b466 100644
--- a/submodules/Display/Display/TooltipController.swift
+++ b/submodules/Display/Display/TooltipController.swift
@@ -92,6 +92,8 @@ open class TooltipController: ViewController, StandalonePresentableController {
self.dismissImmediatelyOnLayoutUpdate = dismissImmediatelyOnLayoutUpdate
super.init(navigationBarPresentationData: nil)
+
+ self.statusBar.statusBarStyle = .Ignore
}
required public init(coder aDecoder: NSCoder) {
diff --git a/submodules/GalleryUI/Sources/ChatVideoGalleryItemScrubberView.swift b/submodules/GalleryUI/Sources/ChatVideoGalleryItemScrubberView.swift
index d890460689..98bcebc3cf 100644
--- a/submodules/GalleryUI/Sources/ChatVideoGalleryItemScrubberView.swift
+++ b/submodules/GalleryUI/Sources/ChatVideoGalleryItemScrubberView.swift
@@ -52,7 +52,7 @@ final class ChatVideoGalleryItemScrubberView: UIView {
var seek: (Double) -> Void = { _ in }
override init(frame: CGRect) {
- self.scrubberNode = MediaPlayerScrubbingNode(content: .standard(lineHeight: 5.0, lineCap: .round, scrubberHandle: .circle, backgroundColor: UIColor(white: 1.0, alpha: 0.42), foregroundColor: .white))
+ self.scrubberNode = MediaPlayerScrubbingNode(content: .standard(lineHeight: 5.0, lineCap: .round, scrubberHandle: .circle, backgroundColor: UIColor(white: 1.0, alpha: 0.42), foregroundColor: .white, bufferingColor: UIColor(rgb: 0xffffff, alpha: 0.5)))
self.leftTimestampNode = MediaPlayerTimeTextNode(textColor: .white)
self.rightTimestampNode = MediaPlayerTimeTextNode(textColor: .white)
diff --git a/submodules/InstantPageUI/Sources/InstantPageAudioNode.swift b/submodules/InstantPageUI/Sources/InstantPageAudioNode.swift
index 47257e0f98..e81b89878a 100644
--- a/submodules/InstantPageUI/Sources/InstantPageAudioNode.swift
+++ b/submodules/InstantPageUI/Sources/InstantPageAudioNode.swift
@@ -98,7 +98,7 @@ final class InstantPageAudioNode: ASDisplayNode, InstantPageNode {
if brightness > 0.5 {
backgroundAlpha = 0.4
}
- self.scrubbingNode = MediaPlayerScrubbingNode(content: .standard(lineHeight: 3.0, lineCap: .round, scrubberHandle: .line, backgroundColor: theme.textCategories.paragraph.color.withAlphaComponent(backgroundAlpha), foregroundColor: theme.textCategories.paragraph.color))
+ self.scrubbingNode = MediaPlayerScrubbingNode(content: .standard(lineHeight: 3.0, lineCap: .round, scrubberHandle: .line, backgroundColor: theme.textCategories.paragraph.color.withAlphaComponent(backgroundAlpha), foregroundColor: theme.textCategories.paragraph.color, bufferingColor: theme.textCategories.paragraph.color.withAlphaComponent(0.5)))
let playlistType: MediaManagerPlayerType
if let file = self.media.media as? TelegramMediaFile {
diff --git a/submodules/ItemListUI/Sources/ItemListController.swift b/submodules/ItemListUI/Sources/ItemListController.swift
index 12f2d1dad0..b71842e2d4 100644
--- a/submodules/ItemListUI/Sources/ItemListController.swift
+++ b/submodules/ItemListUI/Sources/ItemListController.swift
@@ -103,8 +103,8 @@ public struct ItemListControllerState {
}
}
-open class ItemListController: ViewController, KeyShortcutResponder, PresentableController {
- private let state: Signal<(ItemListControllerState, (ItemListNodeState, Entry.ItemGenerationArguments)), NoError>
+open class ItemListController: ViewController, KeyShortcutResponder, PresentableController {
+ private let state: Signal<(ItemListControllerState, (ItemListNodeState, Any)), NoError>
private var leftNavigationButtonTitleAndStyle: (ItemListNavigationButtonContent, ItemListNavigationButtonStyle)?
private var rightNavigationButtonTitleAndStyle: [(ItemListNavigationButtonContent, ItemListNavigationButtonStyle)] = []
@@ -135,7 +135,7 @@ open class ItemListController: ViewController, KeyShor
public var experimentalSnapScrollToItem: Bool = false {
didSet {
if self.isNodeLoaded {
- (self.displayNode as! ItemListControllerNode).listNode.experimentalSnapScrollToItem = self.experimentalSnapScrollToItem
+ (self.displayNode as! ItemListControllerNode).listNode.experimentalSnapScrollToItem = self.experimentalSnapScrollToItem
}
}
}
@@ -143,7 +143,7 @@ open class ItemListController: ViewController, KeyShor
public var enableInteractiveDismiss = false {
didSet {
if self.isNodeLoaded {
- (self.displayNode as! ItemListControllerNode).enableInteractiveDismiss = self.enableInteractiveDismiss
+ (self.displayNode as! ItemListControllerNode).enableInteractiveDismiss = self.enableInteractiveDismiss
}
}
}
@@ -151,15 +151,15 @@ open class ItemListController: ViewController, KeyShor
public var alwaysSynchronous = false {
didSet {
if self.isNodeLoaded {
- (self.displayNode as! ItemListControllerNode).alwaysSynchronous = self.alwaysSynchronous
+ (self.displayNode as! ItemListControllerNode).alwaysSynchronous = self.alwaysSynchronous
}
}
}
- public var visibleEntriesUpdated: ((ItemListNodeVisibleEntries) -> Void)? {
+ public var visibleEntriesUpdated: ((ItemListNodeVisibleEntries) -> Void)? {
didSet {
if self.isNodeLoaded {
- (self.displayNode as! ItemListControllerNode).visibleEntriesUpdated = self.visibleEntriesUpdated
+ (self.displayNode as! ItemListControllerNode).visibleEntriesUpdated = self.visibleEntriesUpdated
}
}
}
@@ -167,7 +167,7 @@ open class ItemListController: ViewController, KeyShor
public var visibleBottomContentOffsetChanged: ((ListViewVisibleContentOffset) -> Void)? {
didSet {
if self.isNodeLoaded {
- (self.displayNode as! ItemListControllerNode).visibleBottomContentOffsetChanged = self.visibleBottomContentOffsetChanged
+ (self.displayNode as! ItemListControllerNode).visibleBottomContentOffsetChanged = self.visibleBottomContentOffsetChanged
}
}
}
@@ -175,7 +175,7 @@ open class ItemListController: ViewController, KeyShor
public var contentOffsetChanged: ((ListViewVisibleContentOffset, Bool) -> Void)? {
didSet {
if self.isNodeLoaded {
- (self.displayNode as! ItemListControllerNode).contentOffsetChanged = self.contentOffsetChanged
+ (self.displayNode as! ItemListControllerNode).contentOffsetChanged = self.contentOffsetChanged
}
}
}
@@ -183,7 +183,7 @@ open class ItemListController: ViewController, KeyShor
public var contentScrollingEnded: ((ListView) -> Bool)? {
didSet {
if self.isNodeLoaded {
- (self.displayNode as! ItemListControllerNode).contentScrollingEnded = self.contentScrollingEnded
+ (self.displayNode as! ItemListControllerNode).contentScrollingEnded = self.contentScrollingEnded
}
}
}
@@ -191,17 +191,22 @@ open class ItemListController: ViewController, KeyShor
public var searchActivated: ((Bool) -> Void)? {
didSet {
if self.isNodeLoaded {
- (self.displayNode as! ItemListControllerNode).searchActivated = self.searchActivated
+ (self.displayNode as! ItemListControllerNode).searchActivated = self.searchActivated
}
}
}
public var willScrollToTop: (() -> Void)?
- public var reorderEntry: ((Int, Int, [Entry]) -> Void)? {
+ public func setReorderEntry(_ f: @escaping (Int, Int, [T]) -> Void) {
+ self.reorderEntry = { a, b, list in
+ f(a, b, list.map { $0 as! T })
+ }
+ }
+ private var reorderEntry: ((Int, Int, [ItemListNodeAnyEntry]) -> Void)? {
didSet {
if self.isNodeLoaded {
- (self.displayNode as! ItemListControllerNode).reorderEntry = self.reorderEntry
+ (self.displayNode as! ItemListControllerNode).reorderEntry = self.reorderEntry
}
}
}
@@ -212,17 +217,20 @@ open class ItemListController: ViewController, KeyShor
public var willDisappear: ((Bool) -> Void)?
public var didDisappear: ((Bool) -> Void)?
- convenience public init(context: AccountContext, state: Signal<(ItemListControllerState, (ItemListNodeState, Entry.ItemGenerationArguments)), NoError>, tabBarItem: Signal? = nil) {
+ convenience public init(context: AccountContext, state: Signal<(ItemListControllerState, (ItemListNodeState, ItemGenerationArguments)), NoError>, tabBarItem: Signal? = nil) {
self.init(sharedContext: context.sharedContext, state: state, tabBarItem: tabBarItem)
}
- convenience public init(sharedContext: SharedAccountContext, state: Signal<(ItemListControllerState, (ItemListNodeState, Entry.ItemGenerationArguments)), NoError>, tabBarItem: Signal? = nil) {
+ convenience public init(sharedContext: SharedAccountContext, state: Signal<(ItemListControllerState, (ItemListNodeState, ItemGenerationArguments)), NoError>, tabBarItem: Signal? = nil) {
let presentationData = sharedContext.currentPresentationData.with { $0 }
self.init(theme: presentationData.theme, strings: presentationData.strings, updatedPresentationData: sharedContext.presentationData |> map { ($0.theme, $0.strings) }, state: state, tabBarItem: tabBarItem)
}
- public init(theme: PresentationTheme, strings: PresentationStrings, updatedPresentationData: Signal<(theme: PresentationTheme, strings: PresentationStrings), NoError>, state: Signal<(ItemListControllerState, (ItemListNodeState, Entry.ItemGenerationArguments)), NoError>, tabBarItem: Signal?) {
+ public init(theme: PresentationTheme, strings: PresentationStrings, updatedPresentationData: Signal<(theme: PresentationTheme, strings: PresentationStrings), NoError>, state: Signal<(ItemListControllerState, (ItemListNodeState, ItemGenerationArguments)), NoError>, tabBarItem: Signal?) {
self.state = state
+ |> map { controllerState, nodeStateAndArgument -> (ItemListControllerState, (ItemListNodeState, Any)) in
+ return (controllerState, (nodeStateAndArgument.0, nodeStateAndArgument.1))
+ }
self.theme = theme
self.strings = strings
@@ -236,7 +244,7 @@ open class ItemListController: ViewController, KeyShor
self.scrollToTop = { [weak self] in
self?.willScrollToTop?()
- (self?.displayNode as! ItemListControllerNode).scrollToTop()
+ (self?.displayNode as! ItemListControllerNode).scrollToTop()
}
if let tabBarItem = tabBarItem {
@@ -418,7 +426,7 @@ open class ItemListController: ViewController, KeyShor
}
}
} |> map { ($0.theme, $1) }
- let displayNode = ItemListControllerNode(controller: self, navigationBar: self.navigationBar!, updateNavigationOffset: { [weak self] offset in
+ let displayNode = ItemListControllerNode(controller: self, navigationBar: self.navigationBar!, updateNavigationOffset: { [weak self] offset in
if let strongSelf = self {
strongSelf.navigationOffset = offset
}
@@ -440,7 +448,7 @@ open class ItemListController: ViewController, KeyShor
}
self.displayNode = displayNode
super.displayNodeDidLoad()
- self._ready.set((self.displayNode as! ItemListControllerNode).ready)
+ self._ready.set((self.displayNode as! ItemListControllerNode).ready)
}
override open func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
@@ -448,7 +456,7 @@ open class ItemListController: ViewController, KeyShor
self.validLayout = layout
- (self.displayNode as! ItemListControllerNode).containerLayoutUpdated(layout, navigationBarHeight: self.navigationInsetHeight, transition: transition)
+ (self.displayNode as! ItemListControllerNode).containerLayoutUpdated(layout, navigationBarHeight: self.navigationInsetHeight, transition: transition)
}
@objc func leftNavigationButtonPressed() {
@@ -470,12 +478,12 @@ open class ItemListController: ViewController, KeyShor
}
public func viewDidAppear(completion: @escaping () -> Void) {
- (self.displayNode as! ItemListControllerNode).listNode.preloadPages = true
+ (self.displayNode as! ItemListControllerNode).listNode.preloadPages = true
if let presentationArguments = self.presentationArguments as? ViewControllerPresentationArguments, !self.didPlayPresentationAnimation {
self.didPlayPresentationAnimation = true
if case .modalSheet = presentationArguments.presentationAnimation {
- (self.displayNode as! ItemListControllerNode).animateIn(completion: {
+ (self.displayNode as! ItemListControllerNode).animateIn(completion: {
presentationArguments.completion?()
completion()
})
@@ -506,7 +514,7 @@ open class ItemListController: ViewController, KeyShor
public func frameForItemNode(_ predicate: (ListViewItemNode) -> Bool) -> CGRect? {
var result: CGRect?
- (self.displayNode as! ItemListControllerNode).listNode.forEachItemNode { itemNode in
+ (self.displayNode as! ItemListControllerNode).listNode.forEachItemNode { itemNode in
if let itemNode = itemNode as? ListViewItemNode {
if predicate(itemNode) {
result = itemNode.convert(itemNode.bounds, to: self.displayNode)
@@ -517,7 +525,7 @@ open class ItemListController: ViewController, KeyShor
}
public func forEachItemNode(_ f: (ListViewItemNode) -> Void) {
- (self.displayNode as! ItemListControllerNode).listNode.forEachItemNode { itemNode in
+ (self.displayNode as! ItemListControllerNode).listNode.forEachItemNode { itemNode in
if let itemNode = itemNode as? ListViewItemNode {
f(itemNode)
}
@@ -525,11 +533,11 @@ open class ItemListController: ViewController, KeyShor
}
public func ensureItemNodeVisible(_ itemNode: ListViewItemNode, animated: Bool = true) {
- (self.displayNode as! ItemListControllerNode).listNode.ensureItemNodeVisible(itemNode, animated: animated)
+ (self.displayNode as! ItemListControllerNode).listNode.ensureItemNodeVisible(itemNode, animated: animated)
}
public func afterLayout(_ f: @escaping () -> Void) {
- (self.displayNode as! ItemListControllerNode).afterLayout(f)
+ (self.displayNode as! ItemListControllerNode).afterLayout(f)
}
public func previewingController(from sourceView: UIView, for location: CGPoint) -> (UIViewController, CGRect)? {
@@ -546,8 +554,8 @@ open class ItemListController: ViewController, KeyShor
}
var selectedNode: ItemListItemNode?
- let listLocation = self.view.convert(location, to: (self.displayNode as! ItemListControllerNode).listNode.view)
- (self.displayNode as! ItemListControllerNode).listNode.forEachItemNode { itemNode in
+ let listLocation = self.view.convert(location, to: (self.displayNode as! ItemListControllerNode).listNode.view)
+ (self.displayNode as! ItemListControllerNode).listNode.forEachItemNode { itemNode in
if itemNode.frame.contains(listLocation), let itemNode = itemNode as? ItemListItemNode {
selectedNode = itemNode
}
@@ -570,7 +578,7 @@ open class ItemListController: ViewController, KeyShor
}
public func clearItemNodesHighlight(animated: Bool = false) {
- (self.displayNode as! ItemListControllerNode).listNode.clearHighlightAnimated(animated)
+ (self.displayNode as! ItemListControllerNode).listNode.clearHighlightAnimated(animated)
}
public func previewingCommit(_ viewControllerToCommit: UIViewController) {
diff --git a/submodules/ItemListUI/Sources/ItemListControllerNode.swift b/submodules/ItemListUI/Sources/ItemListControllerNode.swift
index 035597133f..3d31f6615e 100644
--- a/submodules/ItemListUI/Sources/ItemListControllerNode.swift
+++ b/submodules/ItemListUI/Sources/ItemListControllerNode.swift
@@ -9,13 +9,30 @@ import MergeLists
public typealias ItemListSectionId = Int32
-public protocol ItemListNodeEntry: Comparable, Identifiable {
- associatedtype ItemGenerationArguments
-
- var section: ItemListSectionId { get }
+public protocol ItemListNodeAnyEntry {
+ var anyId: AnyHashable { get }
var tag: ItemListItemTag? { get }
+ func isLessThan(_ rhs: ItemListNodeAnyEntry) -> Bool
+ func isEqual(_ rhs: ItemListNodeAnyEntry) -> Bool
+ func item(_ arguments: Any) -> ListViewItem
+}
+
+public protocol ItemListNodeEntry: Comparable, Identifiable, ItemListNodeAnyEntry {
+ var section: ItemListSectionId { get }
+}
+
+public extension ItemListNodeEntry {
+ var anyId: AnyHashable {
+ return self.stableId
+ }
- func item(_ arguments: ItemGenerationArguments) -> ListViewItem
+ func isLessThan(_ rhs: ItemListNodeAnyEntry) -> Bool {
+ return self < (rhs as! Self)
+ }
+
+ func isEqual(_ rhs: ItemListNodeAnyEntry) -> Bool {
+ return self == (rhs as! Self)
+ }
}
public extension ItemListNodeEntry {
@@ -28,8 +45,14 @@ private struct ItemListNodeEntryTransition {
let updates: [ListViewUpdateItem]
}
-private func preparedItemListNodeEntryTransition(from fromEntries: [Entry], to toEntries: [Entry], arguments: Entry.ItemGenerationArguments) -> ItemListNodeEntryTransition {
- let (deleteIndices, indicesAndItems, updateIndices) = mergeListsStableWithUpdates(leftList: fromEntries, rightList: toEntries)
+private func preparedItemListNodeEntryTransition(from fromEntries: [ItemListNodeAnyEntry], to toEntries: [ItemListNodeAnyEntry], arguments: Any) -> ItemListNodeEntryTransition {
+ let (deleteIndices, indicesAndItems, updateIndices) = mergeListsStableWithUpdates(leftList: fromEntries, rightList: toEntries, isLess: { lhs, rhs in
+ return lhs.isLessThan(rhs)
+ }, isEqual: { lhs, rhs in
+ return lhs.isEqual(rhs)
+ }, getId: { value in
+ return value.anyId
+ })
let deletions = deleteIndices.map { ListViewDeleteItem(index: $0, directionHint: nil) }
let insertions = indicesAndItems.map { ListViewInsertItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(arguments), directionHint: nil) }
@@ -43,7 +66,7 @@ public enum ItemListStyle {
case blocks
}
-private struct ItemListNodeTransition {
+private struct ItemListNodeTransition {
let theme: PresentationTheme
let entries: ItemListNodeEntryTransition
let updateStyle: ItemListStyle?
@@ -56,12 +79,12 @@ private struct ItemListNodeTransition {
let animated: Bool
let animateAlpha: Bool
let crossfade: Bool
- let mergedEntries: [Entry]
+ let mergedEntries: [ItemListNodeAnyEntry]
let scrollEnabled: Bool
}
-public struct ItemListNodeState {
- let entries: [Entry]
+public final class ItemListNodeState {
+ let entries: [ItemListNodeAnyEntry]
let style: ItemListStyle
let emptyStateItem: ItemListControllerEmptyStateItem?
let searchItem: ItemListControllerSearch?
@@ -72,8 +95,8 @@ public struct ItemListNodeState {
let ensureVisibleItemTag: ItemListItemTag?
let initialScrollToItem: ListViewScrollToItem?
- public init(entries: [Entry], style: ItemListStyle, focusItemTag: ItemListItemTag? = nil, ensureVisibleItemTag: ItemListItemTag? = nil, emptyStateItem: ItemListControllerEmptyStateItem? = nil, searchItem: ItemListControllerSearch? = nil, initialScrollToItem: ListViewScrollToItem? = nil, crossfadeState: Bool = false, animateChanges: Bool = true, scrollEnabled: Bool = true) {
- self.entries = entries
+ public init(entries: [T], style: ItemListStyle, focusItemTag: ItemListItemTag? = nil, ensureVisibleItemTag: ItemListItemTag? = nil, emptyStateItem: ItemListControllerEmptyStateItem? = nil, searchItem: ItemListControllerSearch? = nil, initialScrollToItem: ListViewScrollToItem? = nil, crossfadeState: Bool = false, animateChanges: Bool = true, scrollEnabled: Bool = true) {
+ self.entries = entries.map { $0 }
self.style = style
self.emptyStateItem = emptyStateItem
self.searchItem = searchItem
@@ -86,32 +109,32 @@ public struct ItemListNodeState {
}
}
-private final class ItemListNodeOpaqueState {
- let mergedEntries: [Entry]
+private final class ItemListNodeOpaqueState {
+ let mergedEntries: [ItemListNodeAnyEntry]
- init(mergedEntries: [Entry]) {
+ init(mergedEntries: [ItemListNodeAnyEntry]) {
self.mergedEntries = mergedEntries
}
}
-public final class ItemListNodeVisibleEntries: Sequence {
- let iterate: () -> Entry?
+public final class ItemListNodeVisibleEntries: Sequence {
+ let iterate: () -> ItemListNodeAnyEntry?
- init(iterate: @escaping () -> Entry?) {
+ init(iterate: @escaping () -> ItemListNodeAnyEntry?) {
self.iterate = iterate
}
- public func makeIterator() -> AnyIterator {
- return AnyIterator { () -> Entry? in
+ public func makeIterator() -> AnyIterator {
+ return AnyIterator { () -> ItemListNodeAnyEntry? in
return self.iterate()
}
}
}
-public final class ItemListControllerNodeView: UITracingLayerView, PreviewingHostView {
+public final class ItemListControllerNodeView: UITracingLayerView, PreviewingHostView {
var onLayout: (() -> Void)?
- init(controller: ItemListController?) {
+ init(controller: ItemListController?) {
self.controller = controller
super.init(frame: CGRect())
@@ -149,10 +172,10 @@ public final class ItemListControllerNodeView: UITraci
})
}
- weak var controller: ItemListController?
+ weak var controller: ItemListController?
}
-open class ItemListControllerNode: ASDisplayNode, UIScrollViewDelegate {
+open class ItemListControllerNode: ASDisplayNode, UIScrollViewDelegate {
private var _ready = ValuePromise()
open var ready: Signal {
return self._ready.get()
@@ -172,7 +195,7 @@ open class ItemListControllerNode: ASDisplayNode, UISc
private let transitionDisposable = MetaDisposable()
- private var enqueuedTransitions: [ItemListNodeTransition] = []
+ private var enqueuedTransitions: [ItemListNodeTransition] = []
private var validLayout: (ContainerViewLayout, CGFloat)?
private var theme: PresentationTheme?
@@ -186,12 +209,12 @@ open class ItemListControllerNode: ASDisplayNode, UISc
public let updateNavigationOffset: (CGFloat) -> Void
public var dismiss: (() -> Void)?
- public var visibleEntriesUpdated: ((ItemListNodeVisibleEntries) -> Void)?
+ public var visibleEntriesUpdated: ((ItemListNodeVisibleEntries) -> Void)?
public var visibleBottomContentOffsetChanged: ((ListViewVisibleContentOffset) -> Void)?
public var contentOffsetChanged: ((ListViewVisibleContentOffset, Bool) -> Void)?
public var contentScrollingEnded: ((ListView) -> Bool)?
public var searchActivated: ((Bool) -> Void)?
- public var reorderEntry: ((Int, Int, [Entry]) -> Void)?
+ public var reorderEntry: ((Int, Int, [ItemListNodeAnyEntry]) -> Void)?
public var requestLayout: ((ContainedViewLayoutTransition) -> Void)?
public var enableInteractiveDismiss = false {
@@ -201,7 +224,7 @@ open class ItemListControllerNode: ASDisplayNode, UISc
var alwaysSynchronous = false
- public init(controller: ItemListController?, navigationBar: NavigationBar, updateNavigationOffset: @escaping (CGFloat) -> Void, state: Signal<(PresentationTheme, (ItemListNodeState, Entry.ItemGenerationArguments)), NoError>) {
+ public init(controller: ItemListController?, navigationBar: NavigationBar, updateNavigationOffset: @escaping (CGFloat) -> Void, state: Signal<(PresentationTheme, (ItemListNodeState, Any)), NoError>) {
self.navigationBar = navigationBar
self.updateNavigationOffset = updateNavigationOffset
@@ -212,7 +235,7 @@ open class ItemListControllerNode: ASDisplayNode, UISc
super.init()
self.setViewBlock({ [weak controller] in
- return ItemListControllerNodeView(controller: controller)
+ return ItemListControllerNodeView(controller: controller)
})
self.backgroundColor = nil
@@ -221,13 +244,13 @@ open class ItemListControllerNode: ASDisplayNode, UISc
self.addSubnode(self.listNode)
self.listNode.displayedItemRangeChanged = { [weak self] displayedRange, opaqueTransactionState in
- if let strongSelf = self, let visibleEntriesUpdated = strongSelf.visibleEntriesUpdated, let mergedEntries = (opaqueTransactionState as? ItemListNodeOpaqueState)?.mergedEntries {
+ if let strongSelf = self, let visibleEntriesUpdated = strongSelf.visibleEntriesUpdated, let mergedEntries = (opaqueTransactionState as? ItemListNodeOpaqueState)?.mergedEntries {
if let visible = displayedRange.visibleRange {
let indexRange = (visible.firstIndex, visible.lastIndex)
var index = indexRange.0
- let iterator = ItemListNodeVisibleEntries(iterate: {
- var item: Entry?
+ let iterator = ItemListNodeVisibleEntries(iterate: {
+ var item: ItemListNodeAnyEntry?
if index <= indexRange.1 {
item = mergedEntries[index]
}
@@ -240,7 +263,7 @@ open class ItemListControllerNode: ASDisplayNode, UISc
}
self.listNode.reorderItem = { [weak self] fromIndex, toIndex, opaqueTransactionState in
- if let strongSelf = self, let reorderEntry = strongSelf.reorderEntry, let mergedEntries = (opaqueTransactionState as? ItemListNodeOpaqueState)?.mergedEntries {
+ if let strongSelf = self, let reorderEntry = strongSelf.reorderEntry, let mergedEntries = (opaqueTransactionState as? ItemListNodeOpaqueState)?.mergedEntries {
if fromIndex >= 0 && fromIndex < mergedEntries.count && toIndex >= 0 && toIndex < mergedEntries.count {
reorderEntry(fromIndex, toIndex, mergedEntries)
}
@@ -266,10 +289,14 @@ open class ItemListControllerNode: ASDisplayNode, UISc
}
}
- let previousState = Atomic?>(value: nil)
- self.transitionDisposable.set(((state |> map { theme, stateAndArguments -> ItemListNodeTransition in
+ let previousState = Atomic(value: nil)
+ self.transitionDisposable.set(((state |> map { theme, stateAndArguments -> ItemListNodeTransition in
let (state, arguments) = stateAndArguments
- assert(state.entries == state.entries.sorted())
+ if state.entries.count > 1 {
+ for i in 1 ..< state.entries.count {
+ assert(state.entries[i - 1].isLessThan(state.entries[i]))
+ }
+ }
let previous = previousState.swap(state)
let transition = preparedItemListNodeEntryTransition(from: previous?.entries ?? [], to: state.entries, arguments: arguments)
var updatedStyle: ItemListStyle?
@@ -297,7 +324,7 @@ open class ItemListControllerNode: ASDisplayNode, UISc
override open func didLoad() {
super.didLoad()
- (self.view as? ItemListControllerNodeView)?.onLayout = { [weak self] in
+ (self.view as? ItemListControllerNodeView)?.onLayout = { [weak self] in
guard let strongSelf = self else {
return
}
@@ -310,7 +337,7 @@ open class ItemListControllerNode: ASDisplayNode, UISc
}
}
- (self.view as? ItemListControllerNodeView)?.hitTestImpl = { [weak self] point, event in
+ (self.view as? ItemListControllerNodeView)?.hitTestImpl = { [weak self] point, event in
return self?.hitTest(point, with: event)
}
}
@@ -416,7 +443,7 @@ open class ItemListControllerNode: ASDisplayNode, UISc
}
}
- private func enqueueTransition(_ transition: ItemListNodeTransition) {
+ private func enqueueTransition(_ transition: ItemListNodeTransition) {
self.enqueuedTransitions.append(transition)
if self.validLayout != nil {
self.dequeueTransitions()
diff --git a/submodules/LegacyComponents/BUCK b/submodules/LegacyComponents/BUCK
index d07844597c..ae6862d664 100644
--- a/submodules/LegacyComponents/BUCK
+++ b/submodules/LegacyComponents/BUCK
@@ -364,6 +364,8 @@ static_library(
frameworks = [
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
"$SDKROOT/System/Library/Frameworks/UIKit.framework",
- "$SDKROOT/System/Library/Frameworks/Vision.framework",
+ ],
+ weak_frameworks = [
+ "Vision",
],
)
diff --git a/submodules/LegacyComponents/LegacyComponents/TGLocationPickerController.m b/submodules/LegacyComponents/LegacyComponents/TGLocationPickerController.m
index b117413519..5f308e5118 100644
--- a/submodules/LegacyComponents/LegacyComponents/TGLocationPickerController.m
+++ b/submodules/LegacyComponents/LegacyComponents/TGLocationPickerController.m
@@ -171,14 +171,14 @@ const CGPoint TGLocationPickerPinOffset = { 0.0f, 33.0f };
[strongSelf switchToFullscreen];
};
- _searchBarOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.navigationController.view.frame.size.width, 64)];
+ _searchBarOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.navigationController.view.frame.size.width, 44.0f)];
_searchBarOverlay.alpha = 0.0f;
_searchBarOverlay.autoresizingMask = UIViewAutoresizingFlexibleWidth;
_searchBarOverlay.backgroundColor = self.pallete != nil ? self.pallete.sectionHeaderBackgroundColor : UIColorRGB(0xf7f7f7);
_searchBarOverlay.userInteractionEnabled = false;
[self.navigationController.view addSubview:_searchBarOverlay];
- CGFloat safeAreaInset = self.controllerSafeAreaInset.top > FLT_EPSILON ? self.controllerSafeAreaInset.top : 20;
+ CGFloat safeAreaInset = self.controllerSafeAreaInset.top > FLT_EPSILON ? self.controllerSafeAreaInset.top : 0.0f;
_searchBarWrapper = [[UIView alloc] initWithFrame:CGRectMake(0, -44 - safeAreaInset, self.navigationController.view.frame.size.width, 44 + safeAreaInset)];
_searchBarWrapper.autoresizingMask = UIViewAutoresizingFlexibleWidth;
_searchBarWrapper.backgroundColor = self.pallete != nil ? self.pallete.backgroundColor : [UIColor whiteColor];
diff --git a/submodules/LegacyComponents/LegacyComponents/TGMediaPickerController.m b/submodules/LegacyComponents/LegacyComponents/TGMediaPickerController.m
index c52a9f7d76..87e86ed97a 100644
--- a/submodules/LegacyComponents/LegacyComponents/TGMediaPickerController.m
+++ b/submodules/LegacyComponents/LegacyComponents/TGMediaPickerController.m
@@ -51,6 +51,10 @@
{
[super loadView];
+ if (self.intrinsicSize.width > FLT_EPSILON) {
+ self.view.frame = CGRectMake(0.0f, 0.0f, self.intrinsicSize.width, self.intrinsicSize.height);
+ }
+
self.view.backgroundColor = self.pallete != nil ? self.pallete.backgroundColor : [UIColor whiteColor];
_wrapperView = [[UIView alloc] initWithFrame:self.view.bounds];
@@ -262,6 +266,10 @@
{
UIEdgeInsets contentInset = [self controllerInsetForInterfaceOrientation:self.interfaceOrientation];
+ bool hasOnScreenNavigation = false;
+ if (iosMajorVersion() >= 11)
+ hasOnScreenNavigation = (self.viewLoaded && self.view.safeAreaInsets.bottom > FLT_EPSILON) || self.context.safeAreaInset.bottom > FLT_EPSILON;
+
CGPoint contentOffset = CGPointMake(0, _collectionView.contentSize.height - _collectionView.frame.size.height + contentInset.bottom);
if (contentOffset.y < -contentInset.top)
contentOffset.y = -contentInset.top;
@@ -300,7 +308,7 @@
_collectionViewWidth = frame.size.width;
_collectionView.frame = frame;
- if (lastInverseOffset < 2)
+ if (lastInverseOffset < 45)
{
[self _adjustContentOffsetToBottom];
}
diff --git a/submodules/LegacyComponents/LegacyComponents/TGViewController.h b/submodules/LegacyComponents/LegacyComponents/TGViewController.h
index 05909b4407..28b2067af7 100644
--- a/submodules/LegacyComponents/LegacyComponents/TGViewController.h
+++ b/submodules/LegacyComponents/LegacyComponents/TGViewController.h
@@ -108,6 +108,8 @@ typedef enum {
@property (nonatomic, readonly) UIUserInterfaceSizeClass currentSizeClass;
+@property (nonatomic) CGSize intrinsicSize;
+
@property (nonatomic, copy) NSArray> *(^externalPreviewActionItems)(void);
@property (nonatomic, copy) void (^customRemoveFromParentViewController)(void);
@property (nonatomic, copy) void (^customDismissSelf)(void);
diff --git a/submodules/LegacyComponents/LegacyComponents/TGViewController.mm b/submodules/LegacyComponents/LegacyComponents/TGViewController.mm
index 8be15956c1..3c0ce42602 100644
--- a/submodules/LegacyComponents/LegacyComponents/TGViewController.mm
+++ b/submodules/LegacyComponents/LegacyComponents/TGViewController.mm
@@ -732,7 +732,7 @@ static id _defaultContext = nil;
- (UIEdgeInsets)controllerInsetForInterfaceOrientation:(UIInterfaceOrientation)orientation
{
UIEdgeInsets safeAreaInset = _context.safeAreaInset;
- CGFloat statusBarHeight = safeAreaInset.top > FLT_EPSILON ? safeAreaInset.top : [TGHacks statusBarHeightForOrientation:orientation];
+ CGFloat statusBarHeight = safeAreaInset.top > FLT_EPSILON ? safeAreaInset.top : 0.0;
CGFloat keyboardHeight = [self _currentKeyboardHeight:orientation];
CGFloat navigationBarHeight = ([self navigationBarShouldBeHidden] || [self shouldIgnoreNavigationBar]) ? 0 : [self navigationBarHeightForInterfaceOrientation:orientation];
diff --git a/submodules/LegacyUI/Sources/LegacyController.swift b/submodules/LegacyUI/Sources/LegacyController.swift
index 406f5e5581..c2c41c8c21 100644
--- a/submodules/LegacyUI/Sources/LegacyController.swift
+++ b/submodules/LegacyUI/Sources/LegacyController.swift
@@ -281,6 +281,8 @@ public final class LegacyControllerContext: NSObject, LegacyComponentsContext {
}
if validLayout.intrinsicInsets.bottom.isEqual(to: 21.0) {
safeInsets.bottom = 21.0
+ } else if validLayout.intrinsicInsets.bottom.isEqual(to: 34.0) {
+ safeInsets.bottom = 34.0
}
if controller.navigationPresentation == .modal {
safeInsets.top = 0.0
@@ -485,6 +487,7 @@ open class LegacyController: ViewController, PresentableController {
orientation = .landscapeRight
}
+ legacyTelegramController.intrinsicSize = layout.size
legacyTelegramController._updateInset(for: orientation, force: false, notify: true)
if self.enableContainerLayoutUpdates {
legacyTelegramController.layoutController(for: layout.size, duration: duration)
diff --git a/submodules/LocationUI/Sources/LegacyLocationController.swift b/submodules/LocationUI/Sources/LegacyLocationController.swift
index f4b1126ba7..38b38de4fb 100644
--- a/submodules/LocationUI/Sources/LegacyLocationController.swift
+++ b/submodules/LocationUI/Sources/LegacyLocationController.swift
@@ -251,6 +251,8 @@ public func legacyLocationController(message: Message?, mapMedia: TelegramMediaM
controller.onViewDidAppear = { [weak controller] in
if let strongController = controller {
+ strongController.view.disablesInteractiveModalDismiss = true
+ strongController.view.disablesInteractiveTransitionGestureRecognizer = true
strongController.locationMapView.interactiveTransitionGestureRecognizerTest = { point -> Bool in
return point.x > 30.0
}
diff --git a/submodules/LocationUI/Sources/LegacyLocationPicker.swift b/submodules/LocationUI/Sources/LegacyLocationPicker.swift
index 46b8d573aa..7534fdcf8f 100644
--- a/submodules/LocationUI/Sources/LegacyLocationPicker.swift
+++ b/submodules/LocationUI/Sources/LegacyLocationPicker.swift
@@ -17,10 +17,13 @@ private func generateClearIcon(color: UIColor) -> UIImage? {
public func legacyLocationPickerController(context: AccountContext, selfPeer: Peer, peer: Peer, sendLocation: @escaping (CLLocationCoordinate2D, MapVenue?, String?) -> Void, sendLiveLocation: @escaping (CLLocationCoordinate2D, Int32) -> Void, theme: PresentationTheme, customLocationPicker: Bool = false, hasLiveLocation: Bool = true, presentationCompleted: @escaping () -> Void = {}) -> ViewController {
let legacyController = LegacyController(presentation: .navigation, theme: theme)
legacyController.navigationPresentation = .modal
- legacyController.presentationCompleted = {
- presentationCompleted()
- }
let controller = TGLocationPickerController(context: legacyController.context, intent: customLocationPicker ? TGLocationPickerControllerCustomLocationIntent : TGLocationPickerControllerDefaultIntent)!
+ legacyController.presentationCompleted = { [weak controller] in
+ presentationCompleted()
+
+ controller?.view.disablesInteractiveModalDismiss = true
+ controller?.view.disablesInteractiveTransitionGestureRecognizer = true
+ }
controller.peer = makeLegacyPeer(selfPeer)
controller.receivingPeer = makeLegacyPeer(peer)
controller.pallete = legacyLocationPalette(from: theme)
diff --git a/submodules/MediaPlayer/Sources/MediaPlayerAudioRenderer.swift b/submodules/MediaPlayer/Sources/MediaPlayerAudioRenderer.swift
index 6d972fed1e..6907a27417 100644
--- a/submodules/MediaPlayer/Sources/MediaPlayerAudioRenderer.swift
+++ b/submodules/MediaPlayer/Sources/MediaPlayerAudioRenderer.swift
@@ -703,6 +703,9 @@ public final class MediaPlayerAudioRenderer {
public init(audioSession: MediaPlayerAudioSessionControl, playAndRecord: Bool, forceAudioToSpeaker: Bool, baseRate: Double, updatedRate: @escaping () -> Void, audioPaused: @escaping () -> Void) {
var audioClock: CMClock?
CMAudioClockCreate(allocator: nil, clockOut: &audioClock)
+ if audioClock == nil {
+ audioClock = CMClockGetHostTimeClock()
+ }
self.audioClock = audioClock!
var audioTimebase: CMTimebase?
diff --git a/submodules/MediaPlayer/Sources/MediaPlayerScrubbingNode.swift b/submodules/MediaPlayer/Sources/MediaPlayerScrubbingNode.swift
index 29e1a9d966..695c50bdf5 100644
--- a/submodules/MediaPlayer/Sources/MediaPlayerScrubbingNode.swift
+++ b/submodules/MediaPlayer/Sources/MediaPlayerScrubbingNode.swift
@@ -18,20 +18,40 @@ private func generateHandleBackground(color: UIColor) -> UIImage? {
})?.stretchableImage(withLeftCapWidth: 0, topCapHeight: 2)
}
-private final class MediaPlayerScrubbingNodeButton: ASDisplayNode {
+private final class MediaPlayerScrubbingNodeButton: ASDisplayNode, UIGestureRecognizerDelegate {
var beginScrubbing: (() -> Void)?
var endScrubbing: ((Bool) -> Void)?
- var updateScrubbing: ((CGFloat) -> Void)?
+ var updateScrubbing: ((CGFloat, Double) -> Void)?
+ var updateMultiplier: ((Double) -> Void)?
var highlighted: ((Bool) -> Void)?
+ var verticalPanEnabled = false
+ var hapticFeedback = HapticFeedback()
+
+ private var scrubbingMultiplier: Double = 1.0
private var scrubbingStartLocation: CGPoint?
override func didLoad() {
super.didLoad()
self.view.disablesInteractiveTransitionGestureRecognizer = true
- self.view.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.panGesture(_:))))
+
+ let gestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(self.panGesture(_:)))
+ gestureRecognizer.delegate = self
+ self.view.addGestureRecognizer(gestureRecognizer)
+ }
+
+ override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
+ guard let gestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer else {
+ return !self.verticalPanEnabled
+ }
+ let translation = gestureRecognizer.translation(in: gestureRecognizer.view)
+ if self.verticalPanEnabled {
+ return abs(translation.x) > abs(translation.y) || translation.y > 0.0
+ } else {
+ return abs(translation.x) > abs(translation.y)
+ }
}
override func touchesBegan(_ touches: Set, with event: UIEvent?) {
@@ -66,15 +86,38 @@ private final class MediaPlayerScrubbingNodeButton: ASDisplayNode {
case .changed:
if let scrubbingStartLocation = self.scrubbingStartLocation {
let delta = location.x - scrubbingStartLocation.x
- self.updateScrubbing?(delta / self.bounds.size.width)
+ var multiplier: Double = 1.0
+ var skipUpdate = false
+ if self.verticalPanEnabled, location.y > scrubbingStartLocation.y {
+ let verticalDelta = abs(location.y - scrubbingStartLocation.y)
+ if verticalDelta > 150.0 {
+ multiplier = 0.01
+ } else if verticalDelta > 100.0 {
+ multiplier = 0.25
+ } else if verticalDelta > 50.0 {
+ multiplier = 0.5
+ }
+ if multiplier != self.scrubbingMultiplier {
+ skipUpdate = true
+ self.scrubbingMultiplier = multiplier
+ self.scrubbingStartLocation = CGPoint(x: location.x, y: scrubbingStartLocation.y)
+ self.updateMultiplier?(multiplier)
+
+ self.hapticFeedback.impact()
+ }
+ }
+ if !skipUpdate {
+ self.updateScrubbing?(delta / self.bounds.size.width, multiplier)
+ }
}
case .ended, .cancelled:
if let scrubbingStartLocation = self.scrubbingStartLocation {
self.scrubbingStartLocation = nil
let delta = location.x - scrubbingStartLocation.x
- self.updateScrubbing?(delta / self.bounds.size.width)
+ self.updateScrubbing?(delta / self.bounds.size.width, self.scrubbingMultiplier)
self.endScrubbing?(recognizer.state == .ended)
self.highlighted?(false)
+ self.scrubbingMultiplier = 1.0
}
default:
break
@@ -106,7 +149,7 @@ public enum MediaPlayerScrubbingNodeHandle {
}
public enum MediaPlayerScrubbingNodeContent {
- case standard(lineHeight: CGFloat, lineCap: MediaPlayerScrubbingNodeCap, scrubberHandle: MediaPlayerScrubbingNodeHandle, backgroundColor: UIColor, foregroundColor: UIColor)
+ case standard(lineHeight: CGFloat, lineCap: MediaPlayerScrubbingNodeCap, scrubberHandle: MediaPlayerScrubbingNodeHandle, backgroundColor: UIColor, foregroundColor: UIColor, bufferingColor: UIColor)
case custom(backgroundNode: ASDisplayNode, foregroundContentNode: ASDisplayNode)
}
@@ -194,10 +237,12 @@ private final class MediaPlayerScrubbingBufferingNode: ASDisplayNode {
for range in ranges.0.rangeView {
let rangeWidth = min(size.width, (CGFloat(range.count) / CGFloat(ranges.1)) * size.width)
transition.updateFrame(node: self.containerNode, frame: CGRect(origin: CGPoint(), size: CGSize(width: rangeWidth, height: size.height)))
+ transition.updateAlpha(node: self.foregroundNode, alpha: abs(size.width - rangeWidth) < 1.0 ? 0.0 : 1.0)
break
}
} else {
transition.updateFrame(node: self.containerNode, frame: CGRect(origin: CGPoint(), size: CGSize(width: 0.0, height: size.height)))
+ transition.updateAlpha(node: self.foregroundNode, alpha: 0.0)
}
}
}
@@ -240,6 +285,17 @@ public final class MediaPlayerScrubbingNode: ASDisplayNode {
}
}
+ public var enableFineScrubbing: Bool = false {
+ didSet {
+ switch self.contentNodes {
+ case let .standard(node):
+ node.handleNodeContainer?.verticalPanEnabled = self.enableFineScrubbing
+ case let .custom(node):
+ node.handleNodeContainer?.verticalPanEnabled = self.enableFineScrubbing
+ }
+ }
+ }
+
private var _statusValue: MediaPlayerStatus?
private var statusValue: MediaPlayerStatus? {
get {
@@ -293,13 +349,13 @@ public final class MediaPlayerScrubbingNode: ASDisplayNode {
private static func contentNodesFromContent(_ content: MediaPlayerScrubbingNodeContent, enableScrubbing: Bool) -> MediaPlayerScrubbingNodeContentNodes {
switch content {
- case let .standard(lineHeight, lineCap, scrubberHandle, backgroundColor, foregroundColor):
+ case let .standard(lineHeight, lineCap, scrubberHandle, backgroundColor, foregroundColor, bufferingColor):
let backgroundNode = ASImageNode()
backgroundNode.isLayerBacked = true
backgroundNode.displaysAsynchronously = false
backgroundNode.displayWithoutProcessing = true
- let bufferingNode = MediaPlayerScrubbingBufferingNode(color: foregroundColor.withAlphaComponent(0.5), lineCap: lineCap, lineHeight: lineHeight)
+ let bufferingNode = MediaPlayerScrubbingBufferingNode(color: bufferingColor, lineCap: lineCap, lineHeight: lineHeight)
let foregroundContentNode = ASImageNode()
foregroundContentNode.isLayerBacked = true
@@ -421,7 +477,7 @@ public final class MediaPlayerScrubbingNode: ASDisplayNode {
strongSelf.displayLink?.isPaused = true
var timestamp = statusValue.timestamp
- if statusValue.generationTimestamp > 0 {
+ if statusValue.generationTimestamp > 0 && statusValue.status == .playing {
let currentTimestamp = CACurrentMediaTime()
timestamp = timestamp + (currentTimestamp - statusValue.generationTimestamp) * statusValue.baseRate
}
@@ -437,7 +493,6 @@ public final class MediaPlayerScrubbingNode: ASDisplayNode {
strongSelf.updateProgressAnimations()
highlightedHandleNode.layer.animateSpring(from: 1.0 as NSNumber, to: 0.1875 as NSNumber, keyPath: "transform.scale", duration: 0.65, initialVelocity: 0.0, damping: 120.0, removeOnCompletion: false)
-
}
}
}
@@ -453,10 +508,11 @@ public final class MediaPlayerScrubbingNode: ASDisplayNode {
}
}
}
- handleNodeContainer.updateScrubbing = { [weak self] addedFraction in
+ handleNodeContainer.updateScrubbing = { [weak self] addedFraction, multiplier in
if let strongSelf = self {
if let statusValue = strongSelf.statusValue, let scrubbingBeginTimestamp = strongSelf.scrubbingBeginTimestamp, Double(0.0).isLess(than: statusValue.duration) {
- let timestampValue = max(0.0, min(statusValue.duration, scrubbingBeginTimestamp + statusValue.duration * Double(addedFraction)))
+ let delta: Double = (statusValue.duration * Double(addedFraction)) * multiplier
+ let timestampValue = max(0.0, min(statusValue.duration, scrubbingBeginTimestamp + delta))
strongSelf.scrubbingTimestampValue = timestampValue
strongSelf._scrubbingTimestamp.set(.single(strongSelf.scrubbingTimestampValue))
strongSelf._scrubbingPosition.set(.single(strongSelf.scrubbingTimestampValue.flatMap { $0 / statusValue.duration }))
@@ -465,6 +521,13 @@ public final class MediaPlayerScrubbingNode: ASDisplayNode {
}
}
}
+ handleNodeContainer.updateMultiplier = { [weak self] multiplier in
+ if let strongSelf = self {
+ if let statusValue = strongSelf.statusValue, let scrubbingBeginTimestamp = strongSelf.scrubbingBeginTimestamp, Double(0.0).isLess(than: statusValue.duration) {
+ strongSelf.scrubbingBeginTimestamp = strongSelf.scrubbingTimestampValue
+ }
+ }
+ }
handleNodeContainer.endScrubbing = { [weak self] apply in
if let strongSelf = self {
strongSelf.scrubbingBeginTimestamp = nil
@@ -513,14 +576,21 @@ public final class MediaPlayerScrubbingNode: ASDisplayNode {
}
}
}
- handleNodeContainer.updateScrubbing = { [weak self] addedFraction in
+ handleNodeContainer.updateScrubbing = { [weak self] addedFraction, multiplier in
if let strongSelf = self {
if let statusValue = strongSelf.statusValue, let scrubbingBeginTimestamp = strongSelf.scrubbingBeginTimestamp, Double(0.0).isLess(than: statusValue.duration) {
- strongSelf.scrubbingTimestampValue = scrubbingBeginTimestamp + statusValue.duration * Double(addedFraction)
+ strongSelf.scrubbingTimestampValue = scrubbingBeginTimestamp + (statusValue.duration * Double(addedFraction)) * multiplier
strongSelf.updateProgressAnimations()
}
}
}
+ handleNodeContainer.updateMultiplier = { [weak self] multiplier in
+ if let strongSelf = self {
+ if let statusValue = strongSelf.statusValue, let scrubbingBeginTimestamp = strongSelf.scrubbingBeginTimestamp, Double(0.0).isLess(than: statusValue.duration) {
+ strongSelf.scrubbingBeginTimestamp = strongSelf.scrubbingTimestampValue
+ }
+ }
+ }
handleNodeContainer.endScrubbing = { [weak self] apply in
if let strongSelf = self {
strongSelf.scrubbingBeginTimestamp = nil
diff --git a/submodules/MediaPlayer/Sources/MediaPlayerTimeTextNode.swift b/submodules/MediaPlayer/Sources/MediaPlayerTimeTextNode.swift
index e69b7de216..ef3381062f 100644
--- a/submodules/MediaPlayer/Sources/MediaPlayerTimeTextNode.swift
+++ b/submodules/MediaPlayer/Sources/MediaPlayerTimeTextNode.swift
@@ -35,6 +35,20 @@ private struct MediaPlayerTimeTextNodeState: Equatable {
}
}
+private extension MediaPlayerTimeTextNodeState {
+ var string: String {
+ if let hours = self.hours, let minutes = self.minutes, let seconds = self.seconds {
+ if hours != 0 {
+ return String(format: "%d:%02d:%02d", hours, minutes, seconds)
+ } else {
+ return String(format: "%d:%02d", minutes, seconds)
+ }
+ } else {
+ return "-:--"
+ }
+ }
+}
+
private final class MediaPlayerTimeTextNodeParameters: NSObject {
let state: MediaPlayerTimeTextNodeState
let alignment: NSTextAlignment
@@ -160,6 +174,14 @@ public final class MediaPlayerTimeTextNode: ASDisplayNode {
}
}
+ private let digitsSet = CharacterSet(charactersIn: "0123456789")
+ private func widthForString(_ string: String) -> CGFloat {
+ let convertedString = string.components(separatedBy: digitsSet).joined(separator: "8")
+ let text = NSAttributedString(string: convertedString, font: textFont, textColor: .black)
+ let size = text.boundingRect(with: CGSize(width: 200.0, height: 100.0), options: NSStringDrawingOptions.usesLineFragmentOrigin, context: nil).size
+ return size.width
+ }
+
override public func drawParameters(forAsyncLayer layer: _ASDisplayLayer) -> NSObjectProtocol? {
return MediaPlayerTimeTextNodeParameters(state: self.state, alignment: self.alignment, mode: self.mode, textColor: self.textColor)
}
@@ -174,19 +196,8 @@ public final class MediaPlayerTimeTextNode: ASDisplayNode {
}
if let parameters = parameters as? MediaPlayerTimeTextNodeParameters {
- let text: String
- if let hours = parameters.state.hours, let minutes = parameters.state.minutes, let seconds = parameters.state.seconds {
- if hours != 0 {
- text = String(format: "%d:%02d:%02d", hours, minutes, seconds)
- } else {
- text = String(format: "%d:%02d", minutes, seconds)
- }
- } else {
- text = "-:--"
- }
- let string = NSAttributedString(string: text, font: textFont, textColor: parameters.textColor)
+ let string = NSAttributedString(string: parameters.state.string, font: textFont, textColor: parameters.textColor)
let size = string.boundingRect(with: CGSize(width: 200.0, height: 100.0), options: NSStringDrawingOptions.usesLineFragmentOrigin, context: nil).size
-
if parameters.alignment == .left {
string.draw(at: CGPoint())
} else {
diff --git a/submodules/MergeLists/Sources/Identifiable.swift b/submodules/MergeLists/Sources/Identifiable.swift
index 0ada7637ed..f45912c178 100644
--- a/submodules/MergeLists/Sources/Identifiable.swift
+++ b/submodules/MergeLists/Sources/Identifiable.swift
@@ -4,3 +4,11 @@ public protocol Identifiable {
associatedtype T: Hashable
var stableId: T { get }
}
+
+public struct AnyIdentifiable {
+ var stableId: AnyHashable
+
+ public init(_ value: T) where T : Identifiable {
+ self.stableId = value.stableId
+ }
+}
diff --git a/submodules/MergeLists/Sources/MergeLists.swift b/submodules/MergeLists/Sources/MergeLists.swift
index f5f5c5bb8e..8b2780082e 100644
--- a/submodules/MergeLists/Sources/MergeLists.swift
+++ b/submodules/MergeLists/Sources/MergeLists.swift
@@ -181,6 +181,190 @@ public func mergeListsStableWithUpdates(leftList: [T], rightList: [T], allUpd
return (removeIndices, insertItems, updatedIndices)
}
+@inlinable
+public func mergeListsStableWithUpdates(leftList: [T], rightList: [T], isLess: (T, T) -> Bool, isEqual: (T, T) -> Bool, getId: (T) -> AnyHashable, allUpdated: Bool = false) -> ([Int], [(Int, T, Int?)], [(Int, T, Int)]) {
+ var removeIndices: [Int] = []
+ var insertItems: [(Int, T, Int?)] = []
+ var updatedIndices: [(Int, T, Int)] = []
+
+ #if DEBUG
+ var existingStableIds: [AnyHashable: T] = [:]
+ for item in leftList {
+ if let _ = existingStableIds[getId(item)] {
+ assertionFailure()
+ } else {
+ existingStableIds[getId(item)] = item
+ }
+ }
+ existingStableIds.removeAll()
+ for item in rightList {
+ if let other = existingStableIds[getId(item)] {
+ print("\(other) has the same stableId as \(item): \(getId(item))")
+ assertionFailure()
+ } else {
+ existingStableIds[getId(item)] = item
+ }
+ }
+ #endif
+
+ var currentList = leftList
+
+ var i = 0
+ var previousIndices: [AnyHashable: Int] = [:]
+ for left in leftList {
+ previousIndices[getId(left)] = i
+ i += 1
+ }
+
+ i = 0
+ var j = 0
+ while true {
+ let left: T? = i < currentList.count ? currentList[i] : nil
+ let right: T? = j < rightList.count ? rightList[j] : nil
+
+ if let left = left, let right = right {
+ if getId(left) == getId(right) && (!isEqual(left, right) || allUpdated) {
+ updatedIndices.append((i, right, previousIndices[getId(left)]!))
+ i += 1
+ j += 1
+ } else {
+ if isEqual(left, right) && !allUpdated {
+ i += 1
+ j += 1
+ } else if isLess(left, right) {
+ removeIndices.append(i)
+ i += 1
+ } else {
+ j += 1
+ }
+ }
+ } else if let _ = left {
+ removeIndices.append(i)
+ i += 1
+ } else if let _ = right {
+ j += 1
+ } else {
+ break
+ }
+ }
+
+ //print("remove:\n\(removeIndices)")
+
+ for index in removeIndices.reversed() {
+ currentList.remove(at: index)
+ for i in 0 ..< updatedIndices.count {
+ if updatedIndices[i].0 >= index {
+ updatedIndices[i].0 -= 1
+ }
+ }
+ }
+
+ /*print("\n current after removes:\n")
+ m = 0
+ for right in currentList {
+ print("\(m): \(right.stableId)")
+ m += 1
+ }
+
+ print("update:\n\(updatedIndices.map({ "\($0.0), \($0.1.stableId) (was \($0.2)))" }))")*/
+
+ i = 0
+ j = 0
+ var k = 0
+ while true {
+ let left: T?
+
+ //print("i=\(i), j=\(j), k=\(k)")
+
+ if k < updatedIndices.count && updatedIndices[k].0 < i {
+ //print("updated[k=\(k)]=\(updatedIndices[k].0)\(right.stableId)")
+ //print("insert \(right.stableId) at \(i)")
+ //print("i++, j++")
+ let previousIndex = previousIndices[getId(right)]
+ insertItems.append((i, right, previousIndex))
+ currentList.insert(right, at: i)
+ if k < updatedIndices.count {
+ for l in k ..< updatedIndices.count {
+ updatedIndices[l] = (updatedIndices[l].0 + 1, updatedIndices[l].1, updatedIndices[l].2)
+ }
+ }
+
+ i += 1
+ j += 1
+ } else {
+ //print("\(left.stableId)<\(right.stableId)")
+ //print("i++")
+ i += 1
+ }
+ } else if let _ = left {
+ //print("\(left!.stableId)>nil")
+ //print("i++")
+ i += 1
+ } else if let right = right {
+ //print("nil<\(right.stableId)")
+ //print("insert \(right.stableId) at \(i)")
+ //print("i++")
+ //print("j++")
+ let previousIndex = previousIndices[getId(right)]
+ insertItems.append((i, right, previousIndex))
+ currentList.insert(right, at: i)
+
+ if k < updatedIndices.count {
+ for l in k ..< updatedIndices.count {
+ updatedIndices[l] = (updatedIndices[l].0 + 1, updatedIndices[l].1, updatedIndices[l].2)
+ }
+ }
+
+ i += 1
+ j += 1
+ } else {
+ break
+ }
+ }
+
+ for (index, item, _) in updatedIndices {
+ currentList[index] = item
+ }
+
+ #if DEBUG
+ if currentList.count != rightList.count {
+ precondition(false)
+ } else {
+ for i in 0 ..< currentList.count {
+ if !isEqual(currentList[i], rightList[i]) {
+ precondition(false)
+ }
+ }
+ }
+ #endif
+
+ return (removeIndices, insertItems, updatedIndices)
+}
+
@inlinable
public func mergeListsStableWithUpdatesReversed(leftList: [T], rightList: [T], allUpdated: Bool = false) -> ([Int], [(Int, T, Int?)], [(Int, T, Int)]) where T: Comparable, T: Identifiable {
var removeIndices: [Int] = []
diff --git a/submodules/MtProtoKit/MTPKCS.m b/submodules/MtProtoKit/MTPKCS.m
index 3a8bf01e48..100010aa04 100644
--- a/submodules/MtProtoKit/MTPKCS.m
+++ b/submodules/MtProtoKit/MTPKCS.m
@@ -37,6 +37,7 @@ static NSData * _Nullable readPublicKey(EVP_PKEY *subject) {
}
+ (MTPKCS * _Nullable)parse:(const unsigned char *)buffer size:(int)size {
+#if TARGET_OS_IOS
MTPKCS * _Nullable result = nil;
PKCS7 *pkcs7 = NULL;
STACK_OF(X509) *signers = NULL;
@@ -85,6 +86,10 @@ static NSData * _Nullable readPublicKey(EVP_PKEY *subject) {
result = [[MTPKCS alloc] initWithIssuerName:issuerNameString subjectName:subjectNameString data:data];
return result;
+#else
+ return nil;
+#endif
+
}
@end
diff --git a/submodules/MtProtoKit/MTProtoKit/MTEncryption.m b/submodules/MtProtoKit/MTProtoKit/MTEncryption.m
index 0d8e1ff568..9bb3de695c 100644
--- a/submodules/MtProtoKit/MTProtoKit/MTEncryption.m
+++ b/submodules/MtProtoKit/MTProtoKit/MTEncryption.m
@@ -321,7 +321,9 @@ NSData *MTRsaEncrypt(NSString *publicKey, NSData *data)
BIGNUM *a = BN_bin2bn(data.bytes, (int)data.length, NULL);
BIGNUM *r = BN_new();
- BN_mod_exp(r, a, rsaKey->e, rsaKey->n, ctx);
+
+
+ BN_mod_exp(r, a, RSA_get0_e(rsaKey), RSA_get0_n(rsaKey), ctx);
unsigned char *res = malloc((size_t)BN_num_bytes(r));
int resLen = BN_bn2bin(r, res);
diff --git a/submodules/MtProtoKit/MtProtoKitMac/MtProtoKitMac.h b/submodules/MtProtoKit/MtProtoKitMac/MtProtoKitMac.h
index d3b518a1d9..bc5d0d3ba7 100644
--- a/submodules/MtProtoKit/MtProtoKitMac/MtProtoKitMac.h
+++ b/submodules/MtProtoKit/MtProtoKitMac/MtProtoKitMac.h
@@ -75,3 +75,4 @@ FOUNDATION_EXPORT const unsigned char MtProtoKitMacVersionString[];
#import
#import
#import
+#import
diff --git a/submodules/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj b/submodules/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..0957229225
--- /dev/null
+++ b/submodules/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj
@@ -0,0 +1,6411 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D00083C922DD33E500EC418C /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D00083C822DD33E500EC418C /* libc++.tbd */; };
+ D00354681C173BF0006610DA /* MtProtoKitStabilityTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D00354671C173BF0006610DA /* MtProtoKitStabilityTests.m */; };
+ D003546A1C173BF0006610DA /* MtProtoKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CB05F71ADC4483005E298F /* MtProtoKit.framework */; };
+ D00354701C173CB9006610DA /* SSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0580ABE1B0F3E7100E8235B /* SSignalKit.framework */; };
+ D00354721C173CD0006610DA /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D00354711C173CD0006610DA /* libz.tbd */; };
+ D00354741C173CD9006610DA /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00354731C173CD9006610DA /* SystemConfiguration.framework */; };
+ D010DB7D1D70ABEE0012AD96 /* MTRsa.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7B1D70ABEE0012AD96 /* MTRsa.h */; };
+ D010DB7E1D70ABEE0012AD96 /* MTRsa.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB7C1D70ABEE0012AD96 /* MTRsa.m */; };
+ D010DB811D70B3B90012AD96 /* MTAes.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7F1D70B3B90012AD96 /* MTAes.h */; };
+ D010DB821D70B3B90012AD96 /* MTAes.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB801D70B3B90012AD96 /* MTAes.m */; };
+ D0119CC120CAD34800895300 /* MTConnectionProbing.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CBF20CAD34800895300 /* MTConnectionProbing.h */; };
+ D0119CC220CAD34800895300 /* MTConnectionProbing.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CBF20CAD34800895300 /* MTConnectionProbing.h */; };
+ D0119CC320CAD34800895300 /* MTConnectionProbing.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CBF20CAD34800895300 /* MTConnectionProbing.h */; };
+ D0119CC420CAD34800895300 /* MTConnectionProbing.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC020CAD34800895300 /* MTConnectionProbing.m */; };
+ D0119CC520CAD34800895300 /* MTConnectionProbing.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC020CAD34800895300 /* MTConnectionProbing.m */; };
+ D0119CC620CAD34800895300 /* MTConnectionProbing.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC020CAD34800895300 /* MTConnectionProbing.m */; };
+ D0119CC920CAD65D00895300 /* PingFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CC720CAD65D00895300 /* PingFoundation.h */; };
+ D0119CCA20CAD65D00895300 /* PingFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CC720CAD65D00895300 /* PingFoundation.h */; };
+ D0119CCB20CAD65D00895300 /* PingFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CC720CAD65D00895300 /* PingFoundation.h */; };
+ D0119CCC20CAD65D00895300 /* PingFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC820CAD65D00895300 /* PingFoundation.m */; };
+ D0119CCD20CAD65D00895300 /* PingFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC820CAD65D00895300 /* PingFoundation.m */; };
+ D0119CCE20CAD65D00895300 /* PingFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC820CAD65D00895300 /* PingFoundation.m */; };
+ D015E018225CD19E00CB9E8A /* MTGzip.h in Headers */ = {isa = PBXBuildFile; fileRef = D015E016225CD19E00CB9E8A /* MTGzip.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D015E019225CD19E00CB9E8A /* MTGzip.h in Headers */ = {isa = PBXBuildFile; fileRef = D015E016225CD19E00CB9E8A /* MTGzip.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D015E01A225CD19E00CB9E8A /* MTGzip.h in Headers */ = {isa = PBXBuildFile; fileRef = D015E016225CD19E00CB9E8A /* MTGzip.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D015E01B225CD19E00CB9E8A /* MTGzip.m in Sources */ = {isa = PBXBuildFile; fileRef = D015E017225CD19E00CB9E8A /* MTGzip.m */; };
+ D015E01C225CD19E00CB9E8A /* MTGzip.m in Sources */ = {isa = PBXBuildFile; fileRef = D015E017225CD19E00CB9E8A /* MTGzip.m */; };
+ D015E01D225CD19E00CB9E8A /* MTGzip.m in Sources */ = {isa = PBXBuildFile; fileRef = D015E017225CD19E00CB9E8A /* MTGzip.m */; };
+ D018559022DDD36C00AC458A /* Client.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558A22DDD36C00AC458A /* Client.h */; };
+ D018559122DDD36C00AC458A /* TlObject.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558B22DDD36C00AC458A /* TlObject.h */; };
+ D018559222DDD36C00AC458A /* tonlib_api.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558C22DDD36C00AC458A /* tonlib_api.h */; };
+ D018559322DDD36C00AC458A /* int_types.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558D22DDD36C00AC458A /* int_types.h */; };
+ D018559422DDD36C00AC458A /* TonlibCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558E22DDD36C00AC458A /* TonlibCallback.h */; };
+ D018559522DDD36C00AC458A /* platform.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558F22DDD36C00AC458A /* platform.h */; };
+ D018559622DDD37300AC458A /* Client.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558A22DDD36C00AC458A /* Client.h */; };
+ D018559722DDD37300AC458A /* TlObject.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558B22DDD36C00AC458A /* TlObject.h */; };
+ D018559822DDD37300AC458A /* tonlib_api.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558C22DDD36C00AC458A /* tonlib_api.h */; };
+ D018559922DDD37300AC458A /* int_types.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558D22DDD36C00AC458A /* int_types.h */; };
+ D018559A22DDD37300AC458A /* TonlibCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558E22DDD36C00AC458A /* TonlibCallback.h */; };
+ D018559B22DDD37300AC458A /* platform.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558F22DDD36C00AC458A /* platform.h */; };
+ D0185E722089D265005E1A6C /* MTProxyConnectivity.h in Headers */ = {isa = PBXBuildFile; fileRef = D0185E702089D265005E1A6C /* MTProxyConnectivity.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0185E732089D265005E1A6C /* MTProxyConnectivity.h in Headers */ = {isa = PBXBuildFile; fileRef = D0185E702089D265005E1A6C /* MTProxyConnectivity.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0185E742089D265005E1A6C /* MTProxyConnectivity.h in Headers */ = {isa = PBXBuildFile; fileRef = D0185E702089D265005E1A6C /* MTProxyConnectivity.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0185E752089D265005E1A6C /* MTProxyConnectivity.m in Sources */ = {isa = PBXBuildFile; fileRef = D0185E712089D265005E1A6C /* MTProxyConnectivity.m */; };
+ D0185E762089D265005E1A6C /* MTProxyConnectivity.m in Sources */ = {isa = PBXBuildFile; fileRef = D0185E712089D265005E1A6C /* MTProxyConnectivity.m */; };
+ D0185E772089D265005E1A6C /* MTProxyConnectivity.m in Sources */ = {isa = PBXBuildFile; fileRef = D0185E712089D265005E1A6C /* MTProxyConnectivity.m */; };
+ D020FAFA1D994E3100F279AA /* MTHttpRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D020FAF81D994E3100F279AA /* MTHttpRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D020FAFB1D994E3100F279AA /* MTHttpRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D020FAF81D994E3100F279AA /* MTHttpRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D020FAFC1D994E3100F279AA /* MTHttpRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D020FAF81D994E3100F279AA /* MTHttpRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D020FAFD1D994E3100F279AA /* MTHttpRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D020FAF91D994E3100F279AA /* MTHttpRequestOperation.m */; };
+ D020FAFE1D994E3100F279AA /* MTHttpRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D020FAF91D994E3100F279AA /* MTHttpRequestOperation.m */; };
+ D020FAFF1D994E3100F279AA /* MTHttpRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D020FAF91D994E3100F279AA /* MTHttpRequestOperation.m */; };
+ D0338739223BC115007A2CE4 /* MTPKCS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0338737223BC115007A2CE4 /* MTPKCS.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D033873A223BC115007A2CE4 /* MTPKCS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0338737223BC115007A2CE4 /* MTPKCS.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D033873B223BC115007A2CE4 /* MTPKCS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0338737223BC115007A2CE4 /* MTPKCS.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D033873C223BC115007A2CE4 /* MTPKCS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0338738223BC115007A2CE4 /* MTPKCS.m */; };
+ D033873D223BC115007A2CE4 /* MTPKCS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0338738223BC115007A2CE4 /* MTPKCS.m */; };
+ D033873E223BC115007A2CE4 /* MTPKCS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0338738223BC115007A2CE4 /* MTPKCS.m */; };
+ D038789E2332500A00DB441C /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D038789D2332500A00DB441C /* libc++.tbd */; };
+ D03878A02332503300DB441C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038789F2332503300DB441C /* Security.framework */; };
+ D03878A22332503E00DB441C /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A12332503E00DB441C /* SystemConfiguration.framework */; };
+ D03878A42332504600DB441C /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A32332504600DB441C /* CFNetwork.framework */; };
+ D03878BC2332506800DB441C /* libton_crypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A52332506700DB441C /* libton_crypto.a */; };
+ D03878BD2332506800DB441C /* libmemprof.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A62332506700DB441C /* libmemprof.a */; };
+ D03878BE2332506800DB441C /* libtonlib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A72332506700DB441C /* libtonlib.a */; };
+ D03878BF2332506800DB441C /* libtonlibjson_private.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A82332506700DB441C /* libtonlibjson_private.a */; };
+ D03878C02332506800DB441C /* libtdtl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A92332506700DB441C /* libtdtl.a */; };
+ D03878C12332506800DB441C /* libkeys.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878AA2332506700DB441C /* libkeys.a */; };
+ D03878C22332506800DB441C /* libtdnet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878AB2332506700DB441C /* libtdnet.a */; };
+ D03878C32332506800DB441C /* libtonlibjson_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878AC2332506700DB441C /* libtonlibjson_static.a */; };
+ D03878C42332506800DB441C /* libfift.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878AD2332506700DB441C /* libfift.a */; };
+ D03878C52332506800DB441C /* libtl_tonlib_api_json.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878AE2332506800DB441C /* libtl_tonlib_api_json.a */; };
+ D03878C62332506800DB441C /* libtl-utils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878AF2332506800DB441C /* libtl-utils.a */; };
+ D03878C72332506800DB441C /* libadnllite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B02332506800DB441C /* libadnllite.a */; };
+ D03878C82332506800DB441C /* libtl_tonlib_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B12332506800DB441C /* libtl_tonlib_api.a */; };
+ D03878C92332506800DB441C /* libtdutils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B22332506800DB441C /* libtdutils.a */; };
+ D03878CA2332506800DB441C /* libterminal.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B32332506800DB441C /* libterminal.a */; };
+ D03878CB2332506800DB441C /* libtl_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B42332506800DB441C /* libtl_api.a */; };
+ D03878CC2332506800DB441C /* libcrc32c.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B52332506800DB441C /* libcrc32c.a */; };
+ D03878CD2332506800DB441C /* libtl-lite-utils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B62332506800DB441C /* libtl-lite-utils.a */; };
+ D03878CE2332506800DB441C /* libtddb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B72332506800DB441C /* libtddb.a */; };
+ D03878CF2332506800DB441C /* libtl_lite_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B82332506800DB441C /* libtl_lite_api.a */; };
+ D03878D02332506800DB441C /* libton_block.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B92332506800DB441C /* libton_block.a */; };
+ D03878D12332506800DB441C /* libton_db.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878BA2332506800DB441C /* libton_db.a */; };
+ D03878D22332506800DB441C /* libtdactor.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878BB2332506800DB441C /* libtdactor.a */; };
+ D0529D2B21A434BF00D7C3C4 /* MTTransportSchemeStats.h in Headers */ = {isa = PBXBuildFile; fileRef = D0529D2921A434BF00D7C3C4 /* MTTransportSchemeStats.h */; };
+ D0529D2C21A434BF00D7C3C4 /* MTTransportSchemeStats.h in Headers */ = {isa = PBXBuildFile; fileRef = D0529D2921A434BF00D7C3C4 /* MTTransportSchemeStats.h */; };
+ D0529D2D21A434BF00D7C3C4 /* MTTransportSchemeStats.h in Headers */ = {isa = PBXBuildFile; fileRef = D0529D2921A434BF00D7C3C4 /* MTTransportSchemeStats.h */; };
+ D0529D2E21A434BF00D7C3C4 /* MTTransportSchemeStats.m in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2A21A434BF00D7C3C4 /* MTTransportSchemeStats.m */; };
+ D0529D2F21A434BF00D7C3C4 /* MTTransportSchemeStats.m in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2A21A434BF00D7C3C4 /* MTTransportSchemeStats.m */; };
+ D0529D3021A434BF00D7C3C4 /* MTTransportSchemeStats.m in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2A21A434BF00D7C3C4 /* MTTransportSchemeStats.m */; };
+ D0580AC21B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0580AC01B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h */; };
+ D0580AC31B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0580AC11B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m */; };
+ D073D2D81FB5E493009E1DA2 /* MTBindingTempAuthKeyContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C0EAE51FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m */; };
+ D073D2D91FB5E494009E1DA2 /* MTBindingTempAuthKeyContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C0EAE51FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m */; };
+ D079AB9C1AF39B8000076F59 /* MtProtoKitMac.h in Headers */ = {isa = PBXBuildFile; fileRef = D079AB9B1AF39B8000076F59 /* MtProtoKitMac.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D08A159122DD32B40073B508 /* tonlibjson_export.h in Headers */ = {isa = PBXBuildFile; fileRef = D08A158F22DD32B40073B508 /* tonlibjson_export.h */; };
+ D08A159222DD32B40073B508 /* tonlib_client_json.h in Headers */ = {isa = PBXBuildFile; fileRef = D08A159022DD32B40073B508 /* tonlib_client_json.h */; };
+ D08A159D22DD32F20073B508 /* TON.h in Headers */ = {isa = PBXBuildFile; fileRef = D08A159B22DD32F20073B508 /* TON.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D08A159E22DD32F20073B508 /* TON.mm in Sources */ = {isa = PBXBuildFile; fileRef = D08A159C22DD32F20073B508 /* TON.mm */; };
+ D09A59581B582EFF00FC3724 /* MTFileBasedKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D09A59561B582EFF00FC3724 /* MTFileBasedKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D09A59591B582EFF00FC3724 /* MTFileBasedKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D09A59571B582EFF00FC3724 /* MTFileBasedKeychain.m */; };
+ D0B0DF5D1DD7E75B003BA12D /* MTBag.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B0DF5C1DD7E75B003BA12D /* MTBag.m */; };
+ D0B0DF5E1DD7E75B003BA12D /* MTBag.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B0DF5C1DD7E75B003BA12D /* MTBag.m */; };
+ D0B0DF5F1DD7E75B003BA12D /* MTBag.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B0DF5C1DD7E75B003BA12D /* MTBag.m */; };
+ D0B0DF611DD7E7A2003BA12D /* MTBag.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B0DF601DD7E768003BA12D /* MTBag.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0B0DF621DD7E7A3003BA12D /* MTBag.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B0DF601DD7E768003BA12D /* MTBag.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0B0DF631DD7E7A4003BA12D /* MTBag.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B0DF601DD7E768003BA12D /* MTBag.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0B4187B1D7E04CF004562A4 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B4187A1D7E04CF004562A4 /* libz.tbd */; };
+ D0B4187D1D7E04EB004562A4 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B4187C1D7E04EB004562A4 /* libcrypto.a */; };
+ D0BFAE6020AB504600793CF2 /* MTDatacenterVerificationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BFAE5E20AB504600793CF2 /* MTDatacenterVerificationData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0BFAE6120AB504600793CF2 /* MTDatacenterVerificationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE5F20AB504600793CF2 /* MTDatacenterVerificationData.m */; };
+ D0BFAE6220AB505400793CF2 /* MTDatacenterVerificationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BFAE5E20AB504600793CF2 /* MTDatacenterVerificationData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0BFAE6320AB505400793CF2 /* MTDatacenterVerificationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BFAE5E20AB504600793CF2 /* MTDatacenterVerificationData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0BFAE6420AB505700793CF2 /* MTDatacenterVerificationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE5F20AB504600793CF2 /* MTDatacenterVerificationData.m */; };
+ D0BFAE6520AB505800793CF2 /* MTDatacenterVerificationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE5F20AB504600793CF2 /* MTDatacenterVerificationData.m */; };
+ D0C0EAE61FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C0EAE41FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.h */; };
+ D0C0EAE71FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C0EAE51FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m */; };
+ D0C932231E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932211E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0C932241E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932211E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0C932251E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932211E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0C932261E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C932221E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m */; };
+ D0C932271E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C932221E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m */; };
+ D0C932281E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C932221E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m */; };
+ D0C9322B1E095E280074F044 /* MTNetworkUsageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932291E095E280074F044 /* MTNetworkUsageManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0C9322C1E095E280074F044 /* MTNetworkUsageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932291E095E280074F044 /* MTNetworkUsageManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0C9322D1E095E280074F044 /* MTNetworkUsageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932291E095E280074F044 /* MTNetworkUsageManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0C9322E1E095E280074F044 /* MTNetworkUsageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C9322A1E095E280074F044 /* MTNetworkUsageManager.m */; };
+ D0C9322F1E095E280074F044 /* MTNetworkUsageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C9322A1E095E280074F044 /* MTNetworkUsageManager.m */; };
+ D0C932301E095E280074F044 /* MTNetworkUsageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C9322A1E095E280074F044 /* MTNetworkUsageManager.m */; };
+ D0CAF2CB1D75E24C0011F558 /* MTSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2C91D75E24C0011F558 /* MTSignal.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CAF2CC1D75E24C0011F558 /* MTSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2CA1D75E24C0011F558 /* MTSignal.m */; };
+ D0CAF2CD1D75E2570011F558 /* MTSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2C91D75E24C0011F558 /* MTSignal.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CAF2CE1D75E2580011F558 /* MTSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2C91D75E24C0011F558 /* MTSignal.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CAF2CF1D75E25B0011F558 /* MTSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2CA1D75E24C0011F558 /* MTSignal.m */; };
+ D0CAF2D01D75E25B0011F558 /* MTSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2CA1D75E24C0011F558 /* MTSignal.m */; };
+ D0CAF2D31D75E26D0011F558 /* MTSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D11D75E26D0011F558 /* MTSubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CAF2D41D75E26D0011F558 /* MTSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D21D75E26D0011F558 /* MTSubscriber.m */; };
+ D0CAF2D71D75E2840011F558 /* MTDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D51D75E2840011F558 /* MTDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CAF2D81D75E2840011F558 /* MTDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D61D75E2840011F558 /* MTDisposable.m */; };
+ D0CAF2D91D75E3160011F558 /* MTSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D11D75E26D0011F558 /* MTSubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CAF2DA1D75E3160011F558 /* MTSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D11D75E26D0011F558 /* MTSubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CAF2DB1D75E31A0011F558 /* MTDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D51D75E2840011F558 /* MTDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CAF2DC1D75E31B0011F558 /* MTDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D51D75E2840011F558 /* MTDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CAF2DD1D75E31E0011F558 /* MTDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D61D75E2840011F558 /* MTDisposable.m */; };
+ D0CAF2DE1D75E31E0011F558 /* MTSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D21D75E26D0011F558 /* MTSubscriber.m */; };
+ D0CAF2DF1D75E31F0011F558 /* MTDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D61D75E2840011F558 /* MTDisposable.m */; };
+ D0CAF2E01D75E31F0011F558 /* MTSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D21D75E26D0011F558 /* MTSubscriber.m */; };
+ D0CAF2E31D75E7F30011F558 /* MTAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2E11D75E7F30011F558 /* MTAtomic.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CAF2E41D75E7F30011F558 /* MTAtomic.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2E21D75E7F30011F558 /* MTAtomic.m */; };
+ D0CAF2E51D75EA790011F558 /* MTAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2E11D75E7F30011F558 /* MTAtomic.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CAF2E61D75EA7A0011F558 /* MTAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2E11D75E7F30011F558 /* MTAtomic.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CAF2E71D75EA7E0011F558 /* MTAtomic.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2E21D75E7F30011F558 /* MTAtomic.m */; };
+ D0CAF2E81D75EA7E0011F558 /* MTAtomic.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2E21D75E7F30011F558 /* MTAtomic.m */; };
+ D0CAF2EC1D75F4520011F558 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CAF2EB1D75F4520011F558 /* Security.framework */; };
+ D0CAF2ED1D75F4570011F558 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00354731C173CD9006610DA /* SystemConfiguration.framework */; };
+ D0CAF2EF1D75F4E20011F558 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CAF2EE1D75F4E20011F558 /* UIKit.framework */; };
+ D0CAF2F11D75F4EA0011F558 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CAF2F01D75F4EA0011F558 /* CFNetwork.framework */; };
+ D0CAF2FD1D7628FD0011F558 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CD990F1D75C16100F41187 /* libcrypto.a */; };
+ D0CB05FC1ADC4483005E298F /* MtProtoKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CB05FB1ADC4483005E298F /* MtProtoKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06101ADC44B7005E298F /* MTTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23418B2DA1E00631ADC /* MTTime.m */; };
+ D0CB06111ADC44B7005E298F /* MTTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84D818AFE81C007F1076 /* MTTimer.m */; };
+ D0CB06121ADC44B7005E298F /* MTLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DB18AFE81D007F1076 /* MTLogging.m */; };
+ D0CB06131ADC44B7005E298F /* MTEncryption.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DC18AFE81D007F1076 /* MTEncryption.m */; };
+ D0CB06141ADC44B7005E298F /* MTQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84A018AFCF8E007F1076 /* MTQueue.m */; };
+ D0CB06151ADC44B7005E298F /* MTOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503AD918B027F80074C3FE /* MTOutputStream.m */; };
+ D0CB06161ADC44B7005E298F /* MTInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503ADD18B029480074C3FE /* MTInputStream.m */; };
+ D0CB06171ADC4536005E298F /* MTProtoKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A31D18B158AE00C65116 /* MTProtoKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06181ADC4541005E298F /* MTTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD23318B2D9AA00631ADC /* MTTime.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06191ADC4541005E298F /* MTTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84D918AFE81D007F1076 /* MTTimer.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB061A1ADC4541005E298F /* MTLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84DA18AFE81D007F1076 /* MTLogging.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB061B1ADC4541005E298F /* MTEncryption.h in Headers */ = {isa = PBXBuildFile; fileRef = D0254CC518B10404009452AA /* MTEncryption.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB061C1ADC4541005E298F /* MTInternalId.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D118AFB75B007F1076 /* MTInternalId.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB061D1ADC4541005E298F /* MTQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A849F18AFCF8E007F1076 /* MTQueue.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB061E1ADC4541005E298F /* MTOutputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503AD818B027F80074C3FE /* MTOutputStream.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB061F1ADC4541005E298F /* MTInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503ADC18B029480074C3FE /* MTInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06201ADC454C005E298F /* MTSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83B518AFB75B007F1076 /* MTSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06211ADC454C005E298F /* MTKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C018AFB75B007F1076 /* MTKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06221ADC4551005E298F /* MTKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83A318AFB75B007F1076 /* MTKeychain.m */; };
+ D0CB06231ADC4558005E298F /* MTContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839E18AFB75B007F1076 /* MTContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06241ADC455C005E298F /* MTContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839C18AFB75B007F1076 /* MTContext.m */; };
+ D0CB06251ADC4562005E298F /* MTTransportScheme.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33418B161B600C65116 /* MTTransportScheme.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06281ADC456A005E298F /* MTDiscoverDatacenterAddressAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D518AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.h */; };
+ D0CB06291ADC456E005E298F /* MTDiscoverDatacenterAddressAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83D418AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.m */; };
+ D0CB062A1ADC4575005E298F /* MTDatacenterTransferAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839F18AFB75B007F1076 /* MTDatacenterTransferAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB062B1ADC4575005E298F /* MTDatacenterAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83A018AFB75B007F1076 /* MTDatacenterAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB062C1ADC4575005E298F /* MTDatacenterAuthMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D918AFB75B007F1076 /* MTDatacenterAuthMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB062D1ADC457B005E298F /* MTDatacenterTransferAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839D18AFB75B007F1076 /* MTDatacenterTransferAuthAction.m */; };
+ D0CB062E1ADC457B005E298F /* MTDatacenterAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CE18AFB75B007F1076 /* MTDatacenterAuthAction.m */; };
+ D0CB062F1ADC457B005E298F /* MTDatacenterAuthMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83B018AFB75B007F1076 /* MTDatacenterAuthMessageService.m */; };
+ D0CB06301ADC4583005E298F /* MTDatacenterAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CB18AFB75B007F1076 /* MTDatacenterAddress.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06311ADC4583005E298F /* MTDatacenterAddressSet.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CD18AFB75B007F1076 /* MTDatacenterAddressSet.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06321ADC4583005E298F /* MTDatacenterAuthInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C918AFB75B007F1076 /* MTDatacenterAuthInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06331ADC4583005E298F /* MTDatacenterSaltInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C718AFB75B007F1076 /* MTDatacenterSaltInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06341ADC4588005E298F /* MTDatacenterAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CA18AFB75B007F1076 /* MTDatacenterAddress.m */; };
+ D0CB06351ADC4588005E298F /* MTDatacenterAddressSet.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CC18AFB75B007F1076 /* MTDatacenterAddressSet.m */; };
+ D0CB06361ADC4588005E298F /* MTDatacenterAuthInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C818AFB75B007F1076 /* MTDatacenterAuthInfo.m */; };
+ D0CB06371ADC4588005E298F /* MTDatacenterSaltInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C618AFB75B007F1076 /* MTDatacenterSaltInfo.m */; };
+ D0CB06381ADC4591005E298F /* MTProto.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32418B1618D00C65116 /* MTProto.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06391ADC4591005E298F /* MTSessionInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32618B1618D00C65116 /* MTSessionInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB063A1ADC4591005E298F /* MTTimeFixContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32818B1618D00C65116 /* MTTimeFixContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB063B1ADC4591005E298F /* MTPreparedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32218B1618D00C65116 /* MTPreparedMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB063C1ADC4591005E298F /* MTOutgoingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32018B1618D00C65116 /* MTOutgoingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB063D1ADC4591005E298F /* MTIncomingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33618B161B600C65116 /* MTIncomingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB063E1ADC4591005E298F /* MTMessageEncryptionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33818B161B600C65116 /* MTMessageEncryptionKey.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB063F1ADC4599005E298F /* MTProto.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32518B1618D00C65116 /* MTProto.m */; };
+ D0CB06401ADC4599005E298F /* MTSessionInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32718B1618D00C65116 /* MTSessionInfo.m */; };
+ D0CB06411ADC4599005E298F /* MTTimeFixContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32918B1618D00C65116 /* MTTimeFixContext.m */; };
+ D0CB06421ADC4599005E298F /* MTPreparedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32318B1618D00C65116 /* MTPreparedMessage.m */; };
+ D0CB06431ADC4599005E298F /* MTOutgoingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32118B1618D00C65116 /* MTOutgoingMessage.m */; };
+ D0CB06441ADC4599005E298F /* MTIncomingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33718B161B600C65116 /* MTIncomingMessage.m */; };
+ D0CB06451ADC4599005E298F /* MTMessageEncryptionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33918B161B600C65116 /* MTMessageEncryptionKey.m */; };
+ D0CB06461ADC45A2005E298F /* MTMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35018B1631900C65116 /* MTMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06471ADC45A2005E298F /* MTMessageTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35118B1631900C65116 /* MTMessageTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06481ADC45A6005E298F /* MTMessageTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35218B1631900C65116 /* MTMessageTransaction.m */; };
+ D0CB06491ADC45B1005E298F /* MTTimeSyncMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35918B164BA00C65116 /* MTTimeSyncMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB064A1ADC45B1005E298F /* MTRequestMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36718B164D600C65116 /* MTRequestMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB064B1ADC45B1005E298F /* MTRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36318B164D600C65116 /* MTRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB064C1ADC45B1005E298F /* MTRequestContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36518B164D600C65116 /* MTRequestContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB064D1ADC45B1005E298F /* MTRequestErrorContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD22F18B2D72800631ADC /* MTRequestErrorContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB064E1ADC45B1005E298F /* MTDropResponseContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36118B164D600C65116 /* MTDropResponseContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB064F1ADC45B1005E298F /* MTApiEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35F18B164D600C65116 /* MTApiEnvironment.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06501ADC45BA005E298F /* MTTimeSyncMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35A18B164BA00C65116 /* MTTimeSyncMessageService.m */; };
+ D0CB06511ADC45BA005E298F /* MTRequestMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36818B164D600C65116 /* MTRequestMessageService.m */; };
+ D0CB06521ADC45BA005E298F /* MTRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36418B164D600C65116 /* MTRequest.m */; };
+ D0CB06531ADC45BA005E298F /* MTRequestContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36618B164D600C65116 /* MTRequestContext.m */; };
+ D0CB06541ADC45BA005E298F /* MTRequestErrorContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23018B2D72800631ADC /* MTRequestErrorContext.m */; };
+ D0CB06551ADC45BA005E298F /* MTDropResponseContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36218B164D600C65116 /* MTDropResponseContext.m */; };
+ D0CB06561ADC45BA005E298F /* MTApiEnvironment.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36018B164D600C65116 /* MTApiEnvironment.m */; };
+ D0CB06571ADC45BA005E298F /* MTResendMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A37E18B164E600C65116 /* MTResendMessageService.m */; };
+ D0CB06581ADC45CE005E298F /* MTNetworkAvailability.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38318B164F800C65116 /* MTNetworkAvailability.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB06591ADC45CE005E298F /* MTTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38518B164F800C65116 /* MTTransport.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB065A1ADC45CE005E298F /* MTTransportTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38718B164F800C65116 /* MTTransportTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB065B1ADC45CE005E298F /* MTTcpTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39918B1650400C65116 /* MTTcpTransport.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB065C1ADC45CE005E298F /* MTTcpConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39518B1650400C65116 /* MTTcpConnection.h */; };
+ D0CB065D1ADC45CE005E298F /* MTTcpConnectionBehaviour.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39718B1650400C65116 /* MTTcpConnectionBehaviour.h */; };
+ D0CB06611ADC45DA005E298F /* MTNetworkAvailability.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38418B164F800C65116 /* MTNetworkAvailability.m */; };
+ D0CB06621ADC45DA005E298F /* MTTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38618B164F800C65116 /* MTTransport.m */; };
+ D0CB06631ADC45DA005E298F /* MTTransportTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38818B164F800C65116 /* MTTransportTransaction.m */; };
+ D0CB06641ADC45DA005E298F /* MTTcpTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39A18B1650400C65116 /* MTTcpTransport.m */; };
+ D0CB06651ADC45DA005E298F /* MTTcpConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39618B1650400C65116 /* MTTcpConnection.m */; };
+ D0CB06661ADC45DA005E298F /* MTTcpConnectionBehaviour.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39818B1650400C65116 /* MTTcpConnectionBehaviour.m */; };
+ D0CB066A1ADC4846005E298F /* MTResendMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A37D18B164E600C65116 /* MTResendMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CB066C1ADC49FA005E298F /* GCDAsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F818AFF259007F1076 /* GCDAsyncSocket.m */; };
+ D0CB066F1ADC49FF005E298F /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */; };
+ D0CB06701ADC49FF005E298F /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */; };
+ D0CB06711ADC4A50005E298F /* MTTransportScheme.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33518B161B600C65116 /* MTTransportScheme.m */; };
+ D0CD97D21D74B91400F41187 /* MTTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD23318B2D9AA00631ADC /* MTTime.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97D31D74B91700F41187 /* MTTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD23318B2D9AA00631ADC /* MTTime.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97D41D74B91B00F41187 /* MTTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23418B2DA1E00631ADC /* MTTime.m */; };
+ D0CD97D51D74B91C00F41187 /* MTTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23418B2DA1E00631ADC /* MTTime.m */; };
+ D0CD97D61D74B91E00F41187 /* MTTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84D918AFE81D007F1076 /* MTTimer.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97D71D74B92000F41187 /* MTTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84D918AFE81D007F1076 /* MTTimer.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97D81D74B93100F41187 /* MTTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84D818AFE81C007F1076 /* MTTimer.m */; };
+ D0CD97D91D74B93100F41187 /* MTLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DB18AFE81D007F1076 /* MTLogging.m */; };
+ D0CD97DA1D74B93100F41187 /* MTEncryption.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DC18AFE81D007F1076 /* MTEncryption.m */; };
+ D0CD97DB1D74B93100F41187 /* MTQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84A018AFCF8E007F1076 /* MTQueue.m */; };
+ D0CD97DC1D74B93100F41187 /* MTOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503AD918B027F80074C3FE /* MTOutputStream.m */; };
+ D0CD97DD1D74B93100F41187 /* MTInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503ADD18B029480074C3FE /* MTInputStream.m */; };
+ D0CD97DE1D74B93100F41187 /* MTRsa.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB7C1D70ABEE0012AD96 /* MTRsa.m */; };
+ D0CD97DF1D74B93100F41187 /* MTAes.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB801D70B3B90012AD96 /* MTAes.m */; };
+ D0CD97E01D74B93300F41187 /* MTTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84D818AFE81C007F1076 /* MTTimer.m */; };
+ D0CD97E11D74B93300F41187 /* MTLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DB18AFE81D007F1076 /* MTLogging.m */; };
+ D0CD97E21D74B93300F41187 /* MTEncryption.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DC18AFE81D007F1076 /* MTEncryption.m */; };
+ D0CD97E31D74B93300F41187 /* MTQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84A018AFCF8E007F1076 /* MTQueue.m */; };
+ D0CD97E41D74B93300F41187 /* MTOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503AD918B027F80074C3FE /* MTOutputStream.m */; };
+ D0CD97E51D74B93300F41187 /* MTInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503ADD18B029480074C3FE /* MTInputStream.m */; };
+ D0CD97E61D74B93300F41187 /* MTRsa.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB7C1D70ABEE0012AD96 /* MTRsa.m */; };
+ D0CD97E71D74B93300F41187 /* MTAes.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB801D70B3B90012AD96 /* MTAes.m */; };
+ D0CD97E81D74B94300F41187 /* MTLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84DA18AFE81D007F1076 /* MTLogging.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97E91D74B94300F41187 /* MTEncryption.h in Headers */ = {isa = PBXBuildFile; fileRef = D0254CC518B10404009452AA /* MTEncryption.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97EA1D74B94300F41187 /* MTInternalId.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D118AFB75B007F1076 /* MTInternalId.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97EB1D74B94300F41187 /* MTQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A849F18AFCF8E007F1076 /* MTQueue.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97EC1D74B94300F41187 /* MTOutputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503AD818B027F80074C3FE /* MTOutputStream.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97ED1D74B94300F41187 /* MTInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503ADC18B029480074C3FE /* MTInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97EE1D74B94300F41187 /* MTLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84DA18AFE81D007F1076 /* MTLogging.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97EF1D74B94300F41187 /* MTEncryption.h in Headers */ = {isa = PBXBuildFile; fileRef = D0254CC518B10404009452AA /* MTEncryption.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97F01D74B94300F41187 /* MTInternalId.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D118AFB75B007F1076 /* MTInternalId.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97F11D74B94300F41187 /* MTQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A849F18AFCF8E007F1076 /* MTQueue.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97F21D74B94300F41187 /* MTOutputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503AD818B027F80074C3FE /* MTOutputStream.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97F31D74B94300F41187 /* MTInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503ADC18B029480074C3FE /* MTInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97F61D74B94B00F41187 /* MTRsa.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7B1D70ABEE0012AD96 /* MTRsa.h */; };
+ D0CD97F71D74B94B00F41187 /* MTAes.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7F1D70B3B90012AD96 /* MTAes.h */; };
+ D0CD97F81D74B94B00F41187 /* MTRsa.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7B1D70ABEE0012AD96 /* MTRsa.h */; };
+ D0CD97F91D74B94B00F41187 /* MTAes.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7F1D70B3B90012AD96 /* MTAes.h */; };
+ D0CD97FA1D74B95000F41187 /* MTSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83B518AFB75B007F1076 /* MTSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97FB1D74B95100F41187 /* MTSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83B518AFB75B007F1076 /* MTSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD97FC1D74B96300F41187 /* MTBadMsgNotificationMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0041ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h */; };
+ D0CD97FD1D74B96300F41187 /* MTBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0061ADD983C007D9ED6 /* MTBuffer.h */; };
+ D0CD97FE1D74B96300F41187 /* MTBufferReader.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0081ADD983C007D9ED6 /* MTBufferReader.h */; };
+ D0CD97FF1D74B96300F41187 /* MTDestroySessionResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00A1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h */; };
+ D0CD98001D74B96300F41187 /* MTDropRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00C1ADD983C007D9ED6 /* MTDropRpcResultMessage.h */; };
+ D0CD98011D74B96400F41187 /* MTBadMsgNotificationMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0041ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h */; };
+ D0CD98021D74B96400F41187 /* MTBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0061ADD983C007D9ED6 /* MTBuffer.h */; };
+ D0CD98031D74B96400F41187 /* MTBufferReader.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0081ADD983C007D9ED6 /* MTBufferReader.h */; };
+ D0CD98041D74B96400F41187 /* MTDestroySessionResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00A1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h */; };
+ D0CD98051D74B96400F41187 /* MTDropRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00C1ADD983C007D9ED6 /* MTDropRpcResultMessage.h */; };
+ D0CD98061D74B96C00F41187 /* MTBadMsgNotificationMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0051ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m */; };
+ D0CD98071D74B96C00F41187 /* MTBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0071ADD983C007D9ED6 /* MTBuffer.m */; };
+ D0CD98081D74B96C00F41187 /* MTBufferReader.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0091ADD983C007D9ED6 /* MTBufferReader.m */; };
+ D0CD98091D74B96C00F41187 /* MTDestroySessionResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00B1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m */; };
+ D0CD980A1D74B96C00F41187 /* MTDropRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00D1ADD983C007D9ED6 /* MTDropRpcResultMessage.m */; };
+ D0CD980B1D74B96C00F41187 /* MTBadMsgNotificationMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0051ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m */; };
+ D0CD980C1D74B96C00F41187 /* MTBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0071ADD983C007D9ED6 /* MTBuffer.m */; };
+ D0CD980D1D74B96C00F41187 /* MTBufferReader.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0091ADD983C007D9ED6 /* MTBufferReader.m */; };
+ D0CD980E1D74B96C00F41187 /* MTDestroySessionResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00B1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m */; };
+ D0CD980F1D74B96C00F41187 /* MTDropRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00D1ADD983C007D9ED6 /* MTDropRpcResultMessage.m */; };
+ D0CD98101D74B96F00F41187 /* MTExportedAuthorizationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00E1ADD983C007D9ED6 /* MTExportedAuthorizationData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98111D74B97000F41187 /* MTExportedAuthorizationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00E1ADD983C007D9ED6 /* MTExportedAuthorizationData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98121D74B99400F41187 /* MTFutureSaltsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0101ADD983C007D9ED6 /* MTFutureSaltsMessage.h */; };
+ D0CD98131D74B99400F41187 /* MTInternalMessageParser.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0121ADD983C007D9ED6 /* MTInternalMessageParser.h */; };
+ D0CD98141D74B99400F41187 /* MTMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0141ADD983C007D9ED6 /* MTMessage.h */; };
+ D0CD98151D74B99400F41187 /* MTMsgAllInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0161ADD983C007D9ED6 /* MTMsgAllInfoMessage.h */; };
+ D0CD98161D74B99400F41187 /* MTMsgContainerMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0181ADD983C007D9ED6 /* MTMsgContainerMessage.h */; };
+ D0CD98171D74B99400F41187 /* MTMsgDetailedInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01A1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h */; };
+ D0CD98181D74B99400F41187 /* MTMsgResendReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01C1ADD983C007D9ED6 /* MTMsgResendReqMessage.h */; };
+ D0CD98191D74B99400F41187 /* MTMsgsAckMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01E1ADD983C007D9ED6 /* MTMsgsAckMessage.h */; };
+ D0CD981A1D74B99400F41187 /* MTMsgsStateInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0201ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h */; };
+ D0CD981B1D74B99400F41187 /* MTMsgsStateReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0221ADD983C007D9ED6 /* MTMsgsStateReqMessage.h */; };
+ D0CD981C1D74B99400F41187 /* MTNewSessionCreatedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0241ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h */; };
+ D0CD981D1D74B99400F41187 /* MTPingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0261ADD983C007D9ED6 /* MTPingMessage.h */; };
+ D0CD981E1D74B99400F41187 /* MTPongMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0281ADD983C007D9ED6 /* MTPongMessage.h */; };
+ D0CD981F1D74B99400F41187 /* MTResPqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02A1ADD983C007D9ED6 /* MTResPqMessage.h */; };
+ D0CD98201D74B99500F41187 /* MTFutureSaltsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0101ADD983C007D9ED6 /* MTFutureSaltsMessage.h */; };
+ D0CD98211D74B99500F41187 /* MTInternalMessageParser.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0121ADD983C007D9ED6 /* MTInternalMessageParser.h */; };
+ D0CD98221D74B99500F41187 /* MTMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0141ADD983C007D9ED6 /* MTMessage.h */; };
+ D0CD98231D74B99500F41187 /* MTMsgAllInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0161ADD983C007D9ED6 /* MTMsgAllInfoMessage.h */; };
+ D0CD98241D74B99500F41187 /* MTMsgContainerMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0181ADD983C007D9ED6 /* MTMsgContainerMessage.h */; };
+ D0CD98251D74B99500F41187 /* MTMsgDetailedInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01A1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h */; };
+ D0CD98261D74B99500F41187 /* MTMsgResendReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01C1ADD983C007D9ED6 /* MTMsgResendReqMessage.h */; };
+ D0CD98271D74B99500F41187 /* MTMsgsAckMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01E1ADD983C007D9ED6 /* MTMsgsAckMessage.h */; };
+ D0CD98281D74B99500F41187 /* MTMsgsStateInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0201ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h */; };
+ D0CD98291D74B99500F41187 /* MTMsgsStateReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0221ADD983C007D9ED6 /* MTMsgsStateReqMessage.h */; };
+ D0CD982A1D74B99500F41187 /* MTNewSessionCreatedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0241ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h */; };
+ D0CD982B1D74B99500F41187 /* MTPingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0261ADD983C007D9ED6 /* MTPingMessage.h */; };
+ D0CD982C1D74B99500F41187 /* MTPongMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0281ADD983C007D9ED6 /* MTPongMessage.h */; };
+ D0CD982D1D74B99500F41187 /* MTResPqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02A1ADD983C007D9ED6 /* MTResPqMessage.h */; };
+ D0CD982E1D74B9AA00F41187 /* MTExportedAuthorizationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00F1ADD983C007D9ED6 /* MTExportedAuthorizationData.m */; };
+ D0CD982F1D74B9AA00F41187 /* MTFutureSaltsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0111ADD983C007D9ED6 /* MTFutureSaltsMessage.m */; };
+ D0CD98301D74B9AA00F41187 /* MTInternalMessageParser.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0131ADD983C007D9ED6 /* MTInternalMessageParser.m */; };
+ D0CD98311D74B9AA00F41187 /* MTMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0151ADD983C007D9ED6 /* MTMessage.m */; };
+ D0CD98321D74B9AA00F41187 /* MTMsgAllInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0171ADD983C007D9ED6 /* MTMsgAllInfoMessage.m */; };
+ D0CD98331D74B9AA00F41187 /* MTMsgContainerMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0191ADD983C007D9ED6 /* MTMsgContainerMessage.m */; };
+ D0CD98341D74B9AA00F41187 /* MTMsgDetailedInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01B1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m */; };
+ D0CD98351D74B9AA00F41187 /* MTMsgResendReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01D1ADD983C007D9ED6 /* MTMsgResendReqMessage.m */; };
+ D0CD98361D74B9AA00F41187 /* MTMsgsAckMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01F1ADD983C007D9ED6 /* MTMsgsAckMessage.m */; };
+ D0CD98371D74B9AA00F41187 /* MTMsgsStateInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0211ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m */; };
+ D0CD98381D74B9AA00F41187 /* MTMsgsStateReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0231ADD983C007D9ED6 /* MTMsgsStateReqMessage.m */; };
+ D0CD98391D74B9AA00F41187 /* MTNewSessionCreatedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0251ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m */; };
+ D0CD983A1D74B9AA00F41187 /* MTPingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0271ADD983C007D9ED6 /* MTPingMessage.m */; };
+ D0CD983B1D74B9AA00F41187 /* MTPongMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0291ADD983C007D9ED6 /* MTPongMessage.m */; };
+ D0CD983C1D74B9AA00F41187 /* MTResPqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02B1ADD983C007D9ED6 /* MTResPqMessage.m */; };
+ D0CD983D1D74B9AA00F41187 /* MTExportedAuthorizationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00F1ADD983C007D9ED6 /* MTExportedAuthorizationData.m */; };
+ D0CD983E1D74B9AA00F41187 /* MTFutureSaltsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0111ADD983C007D9ED6 /* MTFutureSaltsMessage.m */; };
+ D0CD983F1D74B9AA00F41187 /* MTInternalMessageParser.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0131ADD983C007D9ED6 /* MTInternalMessageParser.m */; };
+ D0CD98401D74B9AA00F41187 /* MTMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0151ADD983C007D9ED6 /* MTMessage.m */; };
+ D0CD98411D74B9AA00F41187 /* MTMsgAllInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0171ADD983C007D9ED6 /* MTMsgAllInfoMessage.m */; };
+ D0CD98421D74B9AA00F41187 /* MTMsgContainerMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0191ADD983C007D9ED6 /* MTMsgContainerMessage.m */; };
+ D0CD98431D74B9AA00F41187 /* MTMsgDetailedInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01B1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m */; };
+ D0CD98441D74B9AA00F41187 /* MTMsgResendReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01D1ADD983C007D9ED6 /* MTMsgResendReqMessage.m */; };
+ D0CD98451D74B9AA00F41187 /* MTMsgsAckMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01F1ADD983C007D9ED6 /* MTMsgsAckMessage.m */; };
+ D0CD98461D74B9AA00F41187 /* MTMsgsStateInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0211ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m */; };
+ D0CD98471D74B9AA00F41187 /* MTMsgsStateReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0231ADD983C007D9ED6 /* MTMsgsStateReqMessage.m */; };
+ D0CD98481D74B9AA00F41187 /* MTNewSessionCreatedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0251ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m */; };
+ D0CD98491D74B9AA00F41187 /* MTPingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0271ADD983C007D9ED6 /* MTPingMessage.m */; };
+ D0CD984A1D74B9AA00F41187 /* MTPongMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0291ADD983C007D9ED6 /* MTPongMessage.m */; };
+ D0CD984B1D74B9AA00F41187 /* MTResPqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02B1ADD983C007D9ED6 /* MTResPqMessage.m */; };
+ D0CD984C1D74B9AD00F41187 /* MTRpcError.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02C1ADD983C007D9ED6 /* MTRpcError.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD984D1D74B9AE00F41187 /* MTRpcError.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02C1ADD983C007D9ED6 /* MTRpcError.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD984E1D74B9B700F41187 /* MTRpcError.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02D1ADD983C007D9ED6 /* MTRpcError.m */; };
+ D0CD984F1D74B9B700F41187 /* MTRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02F1ADD983C007D9ED6 /* MTRpcResultMessage.m */; };
+ D0CD98501D74B9B700F41187 /* MTServerDhInnerDataMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0311ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m */; };
+ D0CD98511D74B9B700F41187 /* MTServerDhParamsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0331ADD983C007D9ED6 /* MTServerDhParamsMessage.m */; };
+ D0CD98521D74B9B700F41187 /* MTSetClientDhParamsResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0351ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m */; };
+ D0CD98531D74B9B700F41187 /* MTRpcError.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02D1ADD983C007D9ED6 /* MTRpcError.m */; };
+ D0CD98541D74B9B700F41187 /* MTRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02F1ADD983C007D9ED6 /* MTRpcResultMessage.m */; };
+ D0CD98551D74B9B700F41187 /* MTServerDhInnerDataMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0311ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m */; };
+ D0CD98561D74B9B700F41187 /* MTServerDhParamsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0331ADD983C007D9ED6 /* MTServerDhParamsMessage.m */; };
+ D0CD98571D74B9B700F41187 /* MTSetClientDhParamsResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0351ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m */; };
+ D0CD98581D74B9BF00F41187 /* MTRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02E1ADD983C007D9ED6 /* MTRpcResultMessage.h */; };
+ D0CD98591D74B9BF00F41187 /* MTServerDhInnerDataMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0301ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h */; };
+ D0CD985A1D74B9BF00F41187 /* MTServerDhParamsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0321ADD983C007D9ED6 /* MTServerDhParamsMessage.h */; };
+ D0CD985B1D74B9BF00F41187 /* MTSetClientDhParamsResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0341ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h */; };
+ D0CD985C1D74B9BF00F41187 /* MTRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02E1ADD983C007D9ED6 /* MTRpcResultMessage.h */; };
+ D0CD985D1D74B9BF00F41187 /* MTServerDhInnerDataMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0301ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h */; };
+ D0CD985E1D74B9BF00F41187 /* MTServerDhParamsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0321ADD983C007D9ED6 /* MTServerDhParamsMessage.h */; };
+ D0CD985F1D74B9BF00F41187 /* MTSetClientDhParamsResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0341ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h */; };
+ D0CD98601D74B9D000F41187 /* MTKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C018AFB75B007F1076 /* MTKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98611D74B9D000F41187 /* MTKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C018AFB75B007F1076 /* MTKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98621D74B9D500F41187 /* MTKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83A318AFB75B007F1076 /* MTKeychain.m */; };
+ D0CD98631D74B9D500F41187 /* MTKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83A318AFB75B007F1076 /* MTKeychain.m */; };
+ D0CD98641D74B9D700F41187 /* MTFileBasedKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D09A59561B582EFF00FC3724 /* MTFileBasedKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98651D74B9D800F41187 /* MTFileBasedKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D09A59561B582EFF00FC3724 /* MTFileBasedKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98661D74B9DD00F41187 /* MTFileBasedKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D09A59571B582EFF00FC3724 /* MTFileBasedKeychain.m */; };
+ D0CD98671D74B9DD00F41187 /* MTFileBasedKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D09A59571B582EFF00FC3724 /* MTFileBasedKeychain.m */; };
+ D0CD98681D74B9E200F41187 /* MTContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839E18AFB75B007F1076 /* MTContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98691D74B9E300F41187 /* MTContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839E18AFB75B007F1076 /* MTContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD986A1D74B9E900F41187 /* MTContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839C18AFB75B007F1076 /* MTContext.m */; };
+ D0CD986B1D74B9E900F41187 /* MTContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839C18AFB75B007F1076 /* MTContext.m */; };
+ D0CD986C1D74B9EF00F41187 /* MTTransportScheme.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33418B161B600C65116 /* MTTransportScheme.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD986D1D74B9F000F41187 /* MTTransportScheme.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33418B161B600C65116 /* MTTransportScheme.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD986E1D74B9F400F41187 /* MTTransportScheme.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33518B161B600C65116 /* MTTransportScheme.m */; };
+ D0CD986F1D74B9F500F41187 /* MTTransportScheme.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33518B161B600C65116 /* MTTransportScheme.m */; };
+ D0CD98701D74B9F700F41187 /* MTDiscoverConnectionSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0580AC01B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h */; };
+ D0CD98711D74B9F700F41187 /* MTDiscoverConnectionSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0580AC01B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h */; };
+ D0CD98721D74B9F900F41187 /* MTDiscoverConnectionSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0580AC11B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m */; };
+ D0CD98731D74B9F900F41187 /* MTDiscoverConnectionSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0580AC11B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m */; };
+ D0CD98741D74BA0100F41187 /* MTDiscoverDatacenterAddressAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D518AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.h */; };
+ D0CD98751D74BA0100F41187 /* MTDiscoverDatacenterAddressAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D518AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.h */; };
+ D0CD98761D74BA0700F41187 /* MTDiscoverDatacenterAddressAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83D418AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.m */; };
+ D0CD98771D74BA0700F41187 /* MTDiscoverDatacenterAddressAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83D418AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.m */; };
+ D0CD98781D74BA4100F41187 /* MTDatacenterTransferAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839F18AFB75B007F1076 /* MTDatacenterTransferAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98791D74BA4100F41187 /* MTDatacenterAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83A018AFB75B007F1076 /* MTDatacenterAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD987A1D74BA4100F41187 /* MTDatacenterAuthMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D918AFB75B007F1076 /* MTDatacenterAuthMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD987B1D74BA4100F41187 /* MTDatacenterTransferAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839F18AFB75B007F1076 /* MTDatacenterTransferAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD987C1D74BA4100F41187 /* MTDatacenterAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83A018AFB75B007F1076 /* MTDatacenterAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD987D1D74BA4100F41187 /* MTDatacenterAuthMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D918AFB75B007F1076 /* MTDatacenterAuthMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD987E1D74BA4900F41187 /* MTDatacenterTransferAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839D18AFB75B007F1076 /* MTDatacenterTransferAuthAction.m */; };
+ D0CD987F1D74BA4900F41187 /* MTDatacenterAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CE18AFB75B007F1076 /* MTDatacenterAuthAction.m */; };
+ D0CD98801D74BA4900F41187 /* MTDatacenterAuthMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83B018AFB75B007F1076 /* MTDatacenterAuthMessageService.m */; };
+ D0CD98811D74BA4900F41187 /* MTDatacenterTransferAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839D18AFB75B007F1076 /* MTDatacenterTransferAuthAction.m */; };
+ D0CD98821D74BA4900F41187 /* MTDatacenterAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CE18AFB75B007F1076 /* MTDatacenterAuthAction.m */; };
+ D0CD98831D74BA4900F41187 /* MTDatacenterAuthMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83B018AFB75B007F1076 /* MTDatacenterAuthMessageService.m */; };
+ D0CD98841D74BA5100F41187 /* MTDatacenterAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CB18AFB75B007F1076 /* MTDatacenterAddress.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98851D74BA5100F41187 /* MTDatacenterAddressSet.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CD18AFB75B007F1076 /* MTDatacenterAddressSet.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98861D74BA5100F41187 /* MTDatacenterAuthInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C918AFB75B007F1076 /* MTDatacenterAuthInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98871D74BA5100F41187 /* MTDatacenterSaltInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C718AFB75B007F1076 /* MTDatacenterSaltInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98881D74BA5100F41187 /* MTDatacenterAddressListData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0691ADD987A007D9ED6 /* MTDatacenterAddressListData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98891D74BA5200F41187 /* MTDatacenterAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CB18AFB75B007F1076 /* MTDatacenterAddress.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD988A1D74BA5200F41187 /* MTDatacenterAddressSet.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CD18AFB75B007F1076 /* MTDatacenterAddressSet.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD988B1D74BA5200F41187 /* MTDatacenterAuthInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C918AFB75B007F1076 /* MTDatacenterAuthInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD988C1D74BA5200F41187 /* MTDatacenterSaltInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C718AFB75B007F1076 /* MTDatacenterSaltInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD988D1D74BA5200F41187 /* MTDatacenterAddressListData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0691ADD987A007D9ED6 /* MTDatacenterAddressListData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD988E1D74BA5900F41187 /* MTDatacenterAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CA18AFB75B007F1076 /* MTDatacenterAddress.m */; };
+ D0CD988F1D74BA5900F41187 /* MTDatacenterAddressSet.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CC18AFB75B007F1076 /* MTDatacenterAddressSet.m */; };
+ D0CD98901D74BA5900F41187 /* MTDatacenterAuthInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C818AFB75B007F1076 /* MTDatacenterAuthInfo.m */; };
+ D0CD98911D74BA5900F41187 /* MTDatacenterSaltInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C618AFB75B007F1076 /* MTDatacenterSaltInfo.m */; };
+ D0CD98921D74BA5900F41187 /* MTDatacenterAddressListData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A06A1ADD987A007D9ED6 /* MTDatacenterAddressListData.m */; };
+ D0CD98931D74BA5A00F41187 /* MTDatacenterAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CA18AFB75B007F1076 /* MTDatacenterAddress.m */; };
+ D0CD98941D74BA5A00F41187 /* MTDatacenterAddressSet.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CC18AFB75B007F1076 /* MTDatacenterAddressSet.m */; };
+ D0CD98951D74BA5A00F41187 /* MTDatacenterAuthInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C818AFB75B007F1076 /* MTDatacenterAuthInfo.m */; };
+ D0CD98961D74BA5A00F41187 /* MTDatacenterSaltInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C618AFB75B007F1076 /* MTDatacenterSaltInfo.m */; };
+ D0CD98971D74BA5A00F41187 /* MTDatacenterAddressListData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A06A1ADD987A007D9ED6 /* MTDatacenterAddressListData.m */; };
+ D0CD98981D74BA6500F41187 /* MTProto.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32418B1618D00C65116 /* MTProto.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98991D74BA6500F41187 /* MTSessionInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32618B1618D00C65116 /* MTSessionInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD989A1D74BA6500F41187 /* MTTimeFixContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32818B1618D00C65116 /* MTTimeFixContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD989B1D74BA6500F41187 /* MTPreparedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32218B1618D00C65116 /* MTPreparedMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD989C1D74BA6500F41187 /* MTOutgoingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32018B1618D00C65116 /* MTOutgoingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD989D1D74BA6500F41187 /* MTIncomingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33618B161B600C65116 /* MTIncomingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD989E1D74BA6500F41187 /* MTMessageEncryptionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33818B161B600C65116 /* MTMessageEncryptionKey.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD989F1D74BA6500F41187 /* MTProto.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32418B1618D00C65116 /* MTProto.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98A01D74BA6500F41187 /* MTSessionInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32618B1618D00C65116 /* MTSessionInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98A11D74BA6500F41187 /* MTTimeFixContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32818B1618D00C65116 /* MTTimeFixContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98A21D74BA6500F41187 /* MTPreparedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32218B1618D00C65116 /* MTPreparedMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98A31D74BA6500F41187 /* MTOutgoingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32018B1618D00C65116 /* MTOutgoingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98A41D74BA6500F41187 /* MTIncomingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33618B161B600C65116 /* MTIncomingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98A51D74BA6500F41187 /* MTMessageEncryptionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33818B161B600C65116 /* MTMessageEncryptionKey.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98A61D74BA6E00F41187 /* MTProto.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32518B1618D00C65116 /* MTProto.m */; };
+ D0CD98A71D74BA6E00F41187 /* MTSessionInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32718B1618D00C65116 /* MTSessionInfo.m */; };
+ D0CD98A81D74BA6E00F41187 /* MTTimeFixContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32918B1618D00C65116 /* MTTimeFixContext.m */; };
+ D0CD98A91D74BA6F00F41187 /* MTPreparedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32318B1618D00C65116 /* MTPreparedMessage.m */; };
+ D0CD98AA1D74BA6F00F41187 /* MTOutgoingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32118B1618D00C65116 /* MTOutgoingMessage.m */; };
+ D0CD98AB1D74BA6F00F41187 /* MTIncomingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33718B161B600C65116 /* MTIncomingMessage.m */; };
+ D0CD98AC1D74BA6F00F41187 /* MTMessageEncryptionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33918B161B600C65116 /* MTMessageEncryptionKey.m */; };
+ D0CD98AD1D74BA6F00F41187 /* MTProto.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32518B1618D00C65116 /* MTProto.m */; };
+ D0CD98AE1D74BA6F00F41187 /* MTSessionInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32718B1618D00C65116 /* MTSessionInfo.m */; };
+ D0CD98AF1D74BA6F00F41187 /* MTTimeFixContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32918B1618D00C65116 /* MTTimeFixContext.m */; };
+ D0CD98B01D74BA6F00F41187 /* MTPreparedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32318B1618D00C65116 /* MTPreparedMessage.m */; };
+ D0CD98B11D74BA6F00F41187 /* MTOutgoingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32118B1618D00C65116 /* MTOutgoingMessage.m */; };
+ D0CD98B21D74BA6F00F41187 /* MTIncomingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33718B161B600C65116 /* MTIncomingMessage.m */; };
+ D0CD98B31D74BA6F00F41187 /* MTMessageEncryptionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33918B161B600C65116 /* MTMessageEncryptionKey.m */; };
+ D0CD98B41D74BA7500F41187 /* MTNetworkAvailability.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38318B164F800C65116 /* MTNetworkAvailability.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98B51D74BA7500F41187 /* MTTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38518B164F800C65116 /* MTTransport.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98B61D74BA7500F41187 /* MTTransportTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38718B164F800C65116 /* MTTransportTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98B71D74BA7500F41187 /* MTNetworkAvailability.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38318B164F800C65116 /* MTNetworkAvailability.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98B81D74BA7500F41187 /* MTTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38518B164F800C65116 /* MTTransport.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98B91D74BA7500F41187 /* MTTransportTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38718B164F800C65116 /* MTTransportTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98BA1D74BA7C00F41187 /* MTNetworkAvailability.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38418B164F800C65116 /* MTNetworkAvailability.m */; };
+ D0CD98BB1D74BA7C00F41187 /* MTTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38618B164F800C65116 /* MTTransport.m */; };
+ D0CD98BC1D74BA7C00F41187 /* MTTransportTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38818B164F800C65116 /* MTTransportTransaction.m */; };
+ D0CD98BD1D74BA7C00F41187 /* MTNetworkAvailability.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38418B164F800C65116 /* MTNetworkAvailability.m */; };
+ D0CD98BE1D74BA7C00F41187 /* MTTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38618B164F800C65116 /* MTTransport.m */; };
+ D0CD98BF1D74BA7C00F41187 /* MTTransportTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38818B164F800C65116 /* MTTransportTransaction.m */; };
+ D0CD98C01D74BA8200F41187 /* MTTcpTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39918B1650400C65116 /* MTTcpTransport.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98C11D74BA8300F41187 /* MTTcpTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39918B1650400C65116 /* MTTcpTransport.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98C31D74BA8A00F41187 /* MTTcpTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39A18B1650400C65116 /* MTTcpTransport.m */; };
+ D0CD98C41D74BA8A00F41187 /* MTTcpTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39A18B1650400C65116 /* MTTcpTransport.m */; };
+ D0CD98C51D74BA8D00F41187 /* MTTcpConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39518B1650400C65116 /* MTTcpConnection.h */; };
+ D0CD98C61D74BA8D00F41187 /* MTTcpConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39518B1650400C65116 /* MTTcpConnection.h */; };
+ D0CD98C71D74BA9000F41187 /* MTTcpConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39618B1650400C65116 /* MTTcpConnection.m */; };
+ D0CD98C81D74BA9100F41187 /* MTTcpConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39618B1650400C65116 /* MTTcpConnection.m */; };
+ D0CD98CA1D74BA9400F41187 /* MTTcpConnectionBehaviour.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39718B1650400C65116 /* MTTcpConnectionBehaviour.h */; };
+ D0CD98CB1D74BA9500F41187 /* MTTcpConnectionBehaviour.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39718B1650400C65116 /* MTTcpConnectionBehaviour.h */; };
+ D0CD98CC1D74BA9700F41187 /* MTTcpConnectionBehaviour.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39818B1650400C65116 /* MTTcpConnectionBehaviour.m */; };
+ D0CD98CD1D74BA9700F41187 /* MTTcpConnectionBehaviour.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39818B1650400C65116 /* MTTcpConnectionBehaviour.m */; };
+ D0CD98DE1D74BAEA00F41187 /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */; };
+ D0CD98DF1D74BAEA00F41187 /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */; };
+ D0CD98E21D74BAEB00F41187 /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */; };
+ D0CD98E31D74BAEB00F41187 /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */; };
+ D0CD98E41D74BAF400F41187 /* GCDAsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F818AFF259007F1076 /* GCDAsyncSocket.m */; };
+ D0CD98E51D74BAF400F41187 /* GCDAsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F818AFF259007F1076 /* GCDAsyncSocket.m */; };
+ D0CD98E81D75C0BB00F41187 /* MTMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35018B1631900C65116 /* MTMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98E91D75C0BB00F41187 /* MTMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35018B1631900C65116 /* MTMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98EA1D75C0C100F41187 /* MTMessageTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35118B1631900C65116 /* MTMessageTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98EB1D75C0C100F41187 /* MTMessageTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35118B1631900C65116 /* MTMessageTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98EC1D75C0C500F41187 /* MTMessageTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35218B1631900C65116 /* MTMessageTransaction.m */; };
+ D0CD98ED1D75C0C500F41187 /* MTMessageTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35218B1631900C65116 /* MTMessageTransaction.m */; };
+ D0CD98EE1D75C0C900F41187 /* MTTimeSyncMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35918B164BA00C65116 /* MTTimeSyncMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98EF1D75C0CA00F41187 /* MTTimeSyncMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35918B164BA00C65116 /* MTTimeSyncMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98F01D75C0D200F41187 /* MTTimeSyncMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35A18B164BA00C65116 /* MTTimeSyncMessageService.m */; };
+ D0CD98F11D75C0D300F41187 /* MTTimeSyncMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35A18B164BA00C65116 /* MTTimeSyncMessageService.m */; };
+ D0CD98F21D75C0D700F41187 /* MTRequestMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36718B164D600C65116 /* MTRequestMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98F31D75C0D700F41187 /* MTRequestMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36718B164D600C65116 /* MTRequestMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98F41D75C0DD00F41187 /* MTRequestMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36818B164D600C65116 /* MTRequestMessageService.m */; };
+ D0CD98F51D75C0DD00F41187 /* MTRequestMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36818B164D600C65116 /* MTRequestMessageService.m */; };
+ D0CD98F61D75C0E400F41187 /* MTRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36318B164D600C65116 /* MTRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98F71D75C0E400F41187 /* MTRequestContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36518B164D600C65116 /* MTRequestContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98F81D75C0E400F41187 /* MTRequestErrorContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD22F18B2D72800631ADC /* MTRequestErrorContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98F91D75C0E400F41187 /* MTDropResponseContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36118B164D600C65116 /* MTDropResponseContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98FA1D75C0E400F41187 /* MTApiEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35F18B164D600C65116 /* MTApiEnvironment.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98FB1D75C0E500F41187 /* MTRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36318B164D600C65116 /* MTRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98FC1D75C0E500F41187 /* MTRequestContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36518B164D600C65116 /* MTRequestContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98FD1D75C0E500F41187 /* MTRequestErrorContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD22F18B2D72800631ADC /* MTRequestErrorContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98FE1D75C0E500F41187 /* MTDropResponseContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36118B164D600C65116 /* MTDropResponseContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD98FF1D75C0E500F41187 /* MTApiEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35F18B164D600C65116 /* MTApiEnvironment.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD99001D75C0ED00F41187 /* MTRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36418B164D600C65116 /* MTRequest.m */; };
+ D0CD99011D75C0ED00F41187 /* MTRequestContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36618B164D600C65116 /* MTRequestContext.m */; };
+ D0CD99021D75C0ED00F41187 /* MTRequestErrorContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23018B2D72800631ADC /* MTRequestErrorContext.m */; };
+ D0CD99031D75C0ED00F41187 /* MTDropResponseContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36218B164D600C65116 /* MTDropResponseContext.m */; };
+ D0CD99041D75C0ED00F41187 /* MTApiEnvironment.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36018B164D600C65116 /* MTApiEnvironment.m */; };
+ D0CD99051D75C0ED00F41187 /* MTRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36418B164D600C65116 /* MTRequest.m */; };
+ D0CD99061D75C0ED00F41187 /* MTRequestContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36618B164D600C65116 /* MTRequestContext.m */; };
+ D0CD99071D75C0ED00F41187 /* MTRequestErrorContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23018B2D72800631ADC /* MTRequestErrorContext.m */; };
+ D0CD99081D75C0ED00F41187 /* MTDropResponseContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36218B164D600C65116 /* MTDropResponseContext.m */; };
+ D0CD99091D75C0ED00F41187 /* MTApiEnvironment.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36018B164D600C65116 /* MTApiEnvironment.m */; };
+ D0CD990A1D75C0F300F41187 /* MTResendMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A37D18B164E600C65116 /* MTResendMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD990B1D75C0F400F41187 /* MTResendMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A37D18B164E600C65116 /* MTResendMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CD990C1D75C0F900F41187 /* MTResendMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A37E18B164E600C65116 /* MTResendMessageService.m */; };
+ D0CD990D1D75C0F900F41187 /* MTResendMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A37E18B164E600C65116 /* MTResendMessageService.m */; };
+ D0CD990E1D75C12C00F41187 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D00354711C173CD0006610DA /* libz.tbd */; };
+ D0CFBB871FD7188200B65C0D /* AFURLConnectionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84F418AFF259007F1076 /* AFURLConnectionOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CFBB881FD7188200B65C0D /* AFURLConnectionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84F418AFF259007F1076 /* AFURLConnectionOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CFBB891FD7188200B65C0D /* AFURLConnectionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84F418AFF259007F1076 /* AFURLConnectionOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CFBB8A1FD718C500B65C0D /* AFHTTPRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84EB18AFF259007F1076 /* AFHTTPRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CFBB8B1FD718C500B65C0D /* AFHTTPRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84EB18AFF259007F1076 /* AFHTTPRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0CFBB8C1FD718C600B65C0D /* AFHTTPRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84EB18AFF259007F1076 /* AFHTTPRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0D1A0361ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0041ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h */; };
+ D0D1A0371ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0051ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m */; };
+ D0D1A0381ADD983C007D9ED6 /* MTBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0061ADD983C007D9ED6 /* MTBuffer.h */; };
+ D0D1A0391ADD983C007D9ED6 /* MTBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0071ADD983C007D9ED6 /* MTBuffer.m */; };
+ D0D1A03A1ADD983C007D9ED6 /* MTBufferReader.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0081ADD983C007D9ED6 /* MTBufferReader.h */; };
+ D0D1A03B1ADD983C007D9ED6 /* MTBufferReader.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0091ADD983C007D9ED6 /* MTBufferReader.m */; };
+ D0D1A03C1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00A1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h */; };
+ D0D1A03D1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00B1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m */; };
+ D0D1A03E1ADD983C007D9ED6 /* MTDropRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00C1ADD983C007D9ED6 /* MTDropRpcResultMessage.h */; };
+ D0D1A03F1ADD983C007D9ED6 /* MTDropRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00D1ADD983C007D9ED6 /* MTDropRpcResultMessage.m */; };
+ D0D1A0401ADD983C007D9ED6 /* MTExportedAuthorizationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00E1ADD983C007D9ED6 /* MTExportedAuthorizationData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0D1A0411ADD983C007D9ED6 /* MTExportedAuthorizationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00F1ADD983C007D9ED6 /* MTExportedAuthorizationData.m */; };
+ D0D1A0421ADD983C007D9ED6 /* MTFutureSaltsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0101ADD983C007D9ED6 /* MTFutureSaltsMessage.h */; };
+ D0D1A0431ADD983C007D9ED6 /* MTFutureSaltsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0111ADD983C007D9ED6 /* MTFutureSaltsMessage.m */; };
+ D0D1A0441ADD983C007D9ED6 /* MTInternalMessageParser.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0121ADD983C007D9ED6 /* MTInternalMessageParser.h */; };
+ D0D1A0451ADD983C007D9ED6 /* MTInternalMessageParser.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0131ADD983C007D9ED6 /* MTInternalMessageParser.m */; };
+ D0D1A0461ADD983C007D9ED6 /* MTMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0141ADD983C007D9ED6 /* MTMessage.h */; };
+ D0D1A0471ADD983C007D9ED6 /* MTMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0151ADD983C007D9ED6 /* MTMessage.m */; };
+ D0D1A0481ADD983C007D9ED6 /* MTMsgAllInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0161ADD983C007D9ED6 /* MTMsgAllInfoMessage.h */; };
+ D0D1A0491ADD983C007D9ED6 /* MTMsgAllInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0171ADD983C007D9ED6 /* MTMsgAllInfoMessage.m */; };
+ D0D1A04A1ADD983C007D9ED6 /* MTMsgContainerMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0181ADD983C007D9ED6 /* MTMsgContainerMessage.h */; };
+ D0D1A04B1ADD983C007D9ED6 /* MTMsgContainerMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0191ADD983C007D9ED6 /* MTMsgContainerMessage.m */; };
+ D0D1A04C1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01A1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h */; };
+ D0D1A04D1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01B1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m */; };
+ D0D1A04E1ADD983C007D9ED6 /* MTMsgResendReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01C1ADD983C007D9ED6 /* MTMsgResendReqMessage.h */; };
+ D0D1A04F1ADD983C007D9ED6 /* MTMsgResendReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01D1ADD983C007D9ED6 /* MTMsgResendReqMessage.m */; };
+ D0D1A0501ADD983C007D9ED6 /* MTMsgsAckMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01E1ADD983C007D9ED6 /* MTMsgsAckMessage.h */; };
+ D0D1A0511ADD983C007D9ED6 /* MTMsgsAckMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01F1ADD983C007D9ED6 /* MTMsgsAckMessage.m */; };
+ D0D1A0521ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0201ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h */; };
+ D0D1A0531ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0211ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m */; };
+ D0D1A0541ADD983C007D9ED6 /* MTMsgsStateReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0221ADD983C007D9ED6 /* MTMsgsStateReqMessage.h */; };
+ D0D1A0551ADD983C007D9ED6 /* MTMsgsStateReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0231ADD983C007D9ED6 /* MTMsgsStateReqMessage.m */; };
+ D0D1A0561ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0241ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h */; };
+ D0D1A0571ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0251ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m */; };
+ D0D1A0581ADD983C007D9ED6 /* MTPingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0261ADD983C007D9ED6 /* MTPingMessage.h */; };
+ D0D1A0591ADD983C007D9ED6 /* MTPingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0271ADD983C007D9ED6 /* MTPingMessage.m */; };
+ D0D1A05A1ADD983C007D9ED6 /* MTPongMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0281ADD983C007D9ED6 /* MTPongMessage.h */; };
+ D0D1A05B1ADD983C007D9ED6 /* MTPongMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0291ADD983C007D9ED6 /* MTPongMessage.m */; };
+ D0D1A05C1ADD983C007D9ED6 /* MTResPqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02A1ADD983C007D9ED6 /* MTResPqMessage.h */; };
+ D0D1A05D1ADD983C007D9ED6 /* MTResPqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02B1ADD983C007D9ED6 /* MTResPqMessage.m */; };
+ D0D1A05E1ADD983C007D9ED6 /* MTRpcError.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02C1ADD983C007D9ED6 /* MTRpcError.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0D1A05F1ADD983C007D9ED6 /* MTRpcError.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02D1ADD983C007D9ED6 /* MTRpcError.m */; };
+ D0D1A0601ADD983C007D9ED6 /* MTRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02E1ADD983C007D9ED6 /* MTRpcResultMessage.h */; };
+ D0D1A0611ADD983C007D9ED6 /* MTRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02F1ADD983C007D9ED6 /* MTRpcResultMessage.m */; };
+ D0D1A0621ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0301ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h */; };
+ D0D1A0631ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0311ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m */; };
+ D0D1A0641ADD983C007D9ED6 /* MTServerDhParamsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0321ADD983C007D9ED6 /* MTServerDhParamsMessage.h */; };
+ D0D1A0651ADD983C007D9ED6 /* MTServerDhParamsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0331ADD983C007D9ED6 /* MTServerDhParamsMessage.m */; };
+ D0D1A0661ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0341ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h */; };
+ D0D1A0671ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0351ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m */; };
+ D0D1A06B1ADD987A007D9ED6 /* MTDatacenterAddressListData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0691ADD987A007D9ED6 /* MTDatacenterAddressListData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0D1A06C1ADD987A007D9ED6 /* MTDatacenterAddressListData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A06A1ADD987A007D9ED6 /* MTDatacenterAddressListData.m */; };
+ D0D225101B4D817B0085E26D /* MtProtoKitDynamic.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D2250F1B4D817B0085E26D /* MtProtoKitDynamic.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0D225161B4D817B0085E26D /* MtProtoKitDynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D2250B1B4D817B0085E26D /* MtProtoKitDynamic.framework */; };
+ D0D2251D1B4D817B0085E26D /* MtProtoKitDynamicTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D2251C1B4D817B0085E26D /* MtProtoKitDynamicTests.m */; };
+ D0D2689E1D7A055400C422DA /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CD990F1D75C16100F41187 /* libcrypto.a */; };
+ D0D58B282347E5F000CF7782 /* tonlib_api.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AF52347E5F000CF7782 /* tonlib_api.h */; };
+ D0D58B292347E5F000CF7782 /* TlObject.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AF72347E5F000CF7782 /* TlObject.h */; };
+ D0D58B2A2347E5F000CF7782 /* tonlib_client_json.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AF92347E5F000CF7782 /* tonlib_client_json.h */; };
+ D0D58B2B2347E5F000CF7782 /* tonlibjson_export.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AFA2347E5F000CF7782 /* tonlibjson_export.h */; };
+ D0D58B2C2347E5F000CF7782 /* Client.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AFB2347E5F000CF7782 /* Client.h */; };
+ D0D58B2D2347E5F000CF7782 /* Slice-decl.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AFE2347E5F000CF7782 /* Slice-decl.h */; };
+ D0D58B2E2347E5F000CF7782 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AFF2347E5F000CF7782 /* config.h */; };
+ D0D58B2F2347E5F000CF7782 /* SharedSlice.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B002347E5F000CF7782 /* SharedSlice.h */; };
+ D0D58B302347E5F000CF7782 /* Slice.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B012347E5F000CF7782 /* Slice.h */; };
+ D0D58B312347E5F000CF7782 /* int_types.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B022347E5F000CF7782 /* int_types.h */; };
+ D0D58B322347E5F000CF7782 /* common.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B032347E5F000CF7782 /* common.h */; };
+ D0D58B332347E5F000CF7782 /* check.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B042347E5F000CF7782 /* check.h */; };
+ D0D58B342347E5F000CF7782 /* unique_ptr.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B052347E5F000CF7782 /* unique_ptr.h */; };
+ D0D58B352347E5F000CF7782 /* platform.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B072347E5F000CF7782 /* platform.h */; };
+ D0D58B362347E5F000CF7782 /* libtl-lite-utils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B092347E5F000CF7782 /* libtl-lite-utils.a */; };
+ D0D58B372347E5F000CF7782 /* libtdactor.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B0A2347E5F000CF7782 /* libtdactor.a */; };
+ D0D58B3D2347E5F000CF7782 /* libton_block.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B122347E5F000CF7782 /* libton_block.a */; };
+ D0D58B3E2347E5F000CF7782 /* libadnllite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B132347E5F000CF7782 /* libadnllite.a */; };
+ D0D58B402347E5F000CF7782 /* libtddb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B152347E5F000CF7782 /* libtddb.a */; };
+ D0D58B412347E5F000CF7782 /* libkeys.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B162347E5F000CF7782 /* libkeys.a */; };
+ D0D58B422347E5F000CF7782 /* libtdnet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B172347E5F000CF7782 /* libtdnet.a */; };
+ D0D58B432347E5F000CF7782 /* libtdutils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B182347E5F000CF7782 /* libtdutils.a */; };
+ D0D58B442347E5F000CF7782 /* libton_crypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B192347E5F000CF7782 /* libton_crypto.a */; };
+ D0D58B4B2347E5F000CF7782 /* libtl-utils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B212347E5F000CF7782 /* libtl-utils.a */; };
+ D0D58B4C2347E5F000CF7782 /* libtl_lite_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B222347E5F000CF7782 /* libtl_lite_api.a */; };
+ D0D58B4D2347E5F000CF7782 /* libcrc32c.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B232347E5F000CF7782 /* libcrc32c.a */; };
+ D0D58B4E2347E5F000CF7782 /* libtl_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B242347E5F000CF7782 /* libtl_api.a */; };
+ D0D58B4F2347E5F000CF7782 /* libtonlib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B252347E5F000CF7782 /* libtonlib.a */; };
+ D0D58B502347E5F000CF7782 /* liblite-client-common.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B262347E5F000CF7782 /* liblite-client-common.a */; };
+ D0D58B512347E5F000CF7782 /* libtl_tonlib_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B272347E5F000CF7782 /* libtl_tonlib_api.a */; };
+ D0D58B522347E64000CF7782 /* TON.h in Headers */ = {isa = PBXBuildFile; fileRef = D08A159B22DD32F20073B508 /* TON.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0D58B532347E6A100CF7782 /* TON.mm in Sources */ = {isa = PBXBuildFile; fileRef = D08A159C22DD32F20073B508 /* TON.mm */; };
+ D0E2E17720866780005737E8 /* MTDNS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E2E17520866780005737E8 /* MTDNS.h */; };
+ D0E2E17820866780005737E8 /* MTDNS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E2E17520866780005737E8 /* MTDNS.h */; };
+ D0E2E17920866780005737E8 /* MTDNS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E2E17520866780005737E8 /* MTDNS.h */; };
+ D0E2E17A20866780005737E8 /* MTDNS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E2E17620866780005737E8 /* MTDNS.m */; };
+ D0E2E17B20866780005737E8 /* MTDNS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E2E17620866780005737E8 /* MTDNS.m */; };
+ D0E2E17C20866780005737E8 /* MTDNS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E2E17620866780005737E8 /* MTDNS.m */; };
+ D0E9B9ED1F0176DA00F079A4 /* MTBackupAddressSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E9B9EB1F0176DA00F079A4 /* MTBackupAddressSignals.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0E9B9EE1F0176DA00F079A4 /* MTBackupAddressSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E9B9EB1F0176DA00F079A4 /* MTBackupAddressSignals.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0E9B9EF1F0176DA00F079A4 /* MTBackupAddressSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E9B9EB1F0176DA00F079A4 /* MTBackupAddressSignals.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D0E9B9F01F0176DA00F079A4 /* MTBackupAddressSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E9B9EC1F0176DA00F079A4 /* MTBackupAddressSignals.m */; };
+ D0E9B9F11F0176DA00F079A4 /* MTBackupAddressSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E9B9EC1F0176DA00F079A4 /* MTBackupAddressSignals.m */; };
+ D0E9B9F21F0176DA00F079A4 /* MTBackupAddressSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E9B9EC1F0176DA00F079A4 /* MTBackupAddressSignals.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ D003546B1C173BF0006610DA /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D05A830A18AFB3F9007F1076 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D0CB05F61ADC4483005E298F;
+ remoteInfo = MtProtoKit;
+ };
+ D0D225171B4D817B0085E26D /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D05A830A18AFB3F9007F1076 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D0D2250A1B4D817B0085E26D;
+ remoteInfo = MtProtoKitDynamic;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 93DBD22F18B2D72800631ADC /* MTRequestErrorContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTRequestErrorContext.h; path = MtProtoKit/MTRequestErrorContext.h; sourceTree = ""; };
+ 93DBD23018B2D72800631ADC /* MTRequestErrorContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTRequestErrorContext.m; path = MtProtoKit/MTRequestErrorContext.m; sourceTree = ""; };
+ 93DBD23318B2D9AA00631ADC /* MTTime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MTTime.h; path = MtProtoKit/MTTime.h; sourceTree = ""; };
+ 93DBD23418B2DA1E00631ADC /* MTTime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTime.m; path = MtProtoKit/MTTime.m; sourceTree = ""; };
+ D00083C822DD33E500EC418C /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
+ D00083CA22DD42F600EC418C /* libtonlibjson.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtonlibjson.dylib; path = TON/libtonlibjson.dylib; sourceTree = ""; };
+ D00083D722DD467100EC418C /* libtdjson.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtdjson.dylib; path = TON/libtdjson.dylib; sourceTree = ""; };
+ D00354651C173BF0006610DA /* MtProtoKitStabilityTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MtProtoKitStabilityTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ D00354671C173BF0006610DA /* MtProtoKitStabilityTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MtProtoKitStabilityTests.m; sourceTree = ""; };
+ D00354691C173BF0006610DA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D00354711C173CD0006610DA /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
+ D00354731C173CD9006610DA /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
+ D010DB7B1D70ABEE0012AD96 /* MTRsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTRsa.h; sourceTree = ""; };
+ D010DB7C1D70ABEE0012AD96 /* MTRsa.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTRsa.m; sourceTree = ""; };
+ D010DB7F1D70B3B90012AD96 /* MTAes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTAes.h; sourceTree = ""; };
+ D010DB801D70B3B90012AD96 /* MTAes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTAes.m; sourceTree = ""; };
+ D0119CBF20CAD34800895300 /* MTConnectionProbing.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTConnectionProbing.h; sourceTree = ""; };
+ D0119CC020CAD34800895300 /* MTConnectionProbing.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTConnectionProbing.m; sourceTree = ""; };
+ D0119CC720CAD65D00895300 /* PingFoundation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PingFoundation.h; sourceTree = ""; };
+ D0119CC820CAD65D00895300 /* PingFoundation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PingFoundation.m; sourceTree = ""; };
+ D015E016225CD19E00CB9E8A /* MTGzip.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTGzip.h; sourceTree = ""; };
+ D015E017225CD19E00CB9E8A /* MTGzip.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTGzip.m; sourceTree = ""; };
+ D018558A22DDD36C00AC458A /* Client.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Client.h; sourceTree = ""; };
+ D018558B22DDD36C00AC458A /* TlObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlObject.h; sourceTree = ""; };
+ D018558C22DDD36C00AC458A /* tonlib_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tonlib_api.h; sourceTree = ""; };
+ D018558D22DDD36C00AC458A /* int_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = int_types.h; sourceTree = ""; };
+ D018558E22DDD36C00AC458A /* TonlibCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TonlibCallback.h; sourceTree = ""; };
+ D018558F22DDD36C00AC458A /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = ""; };
+ D018559F22DDD38B00AC458A /* libtl_lite_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_lite_api.a; path = TON/libtl_lite_api.a; sourceTree = ""; };
+ D01855A022DDD38C00AC458A /* libadnllite.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libadnllite.a; path = TON/libadnllite.a; sourceTree = ""; };
+ D01855A122DDD38C00AC458A /* libfift.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfift.a; path = TON/libfift.a; sourceTree = ""; };
+ D01855A222DDD38C00AC458A /* libkeys.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libkeys.a; path = TON/libkeys.a; sourceTree = ""; };
+ D01855A322DDD38C00AC458A /* libtl-lite-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-lite-utils.a"; path = "TON/libtl-lite-utils.a"; sourceTree = ""; };
+ D01855A422DDD38C00AC458A /* libtl-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-utils.a"; path = "TON/libtl-utils.a"; sourceTree = ""; };
+ D01855A522DDD38C00AC458A /* libton_db.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_db.a; path = TON/libton_db.a; sourceTree = ""; };
+ D01855A622DDD38C00AC458A /* libtonlib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlib.a; path = TON/libtonlib.a; sourceTree = ""; };
+ D01855A722DDD38C00AC458A /* libterminal.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libterminal.a; path = TON/libterminal.a; sourceTree = ""; };
+ D01855A822DDD38C00AC458A /* libtonlibjson_private.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlibjson_private.a; path = TON/libtonlibjson_private.a; sourceTree = ""; };
+ D01855A922DDD38C00AC458A /* libton_crypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_crypto.a; path = TON/libton_crypto.a; sourceTree = ""; };
+ D01855AA22DDD38C00AC458A /* libtl_tonlib_api_json.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_tonlib_api_json.a; path = TON/libtl_tonlib_api_json.a; sourceTree = ""; };
+ D01855AB22DDD38C00AC458A /* libtdnet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdnet.a; path = TON/libtdnet.a; sourceTree = ""; };
+ D01855AC22DDD38C00AC458A /* libtl_tonlib_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_tonlib_api.a; path = TON/libtl_tonlib_api.a; sourceTree = ""; };
+ D01855AD22DDD38C00AC458A /* libtonlibjson_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlibjson_static.a; path = TON/libtonlibjson_static.a; sourceTree = ""; };
+ D01855AE22DDD38D00AC458A /* libton_block.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_block.a; path = TON/libton_block.a; sourceTree = ""; };
+ D01855AF22DDD38D00AC458A /* libtl_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_api.a; path = TON/libtl_api.a; sourceTree = ""; };
+ D01855B022DDD38D00AC458A /* libcrc32c.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrc32c.a; path = TON/libcrc32c.a; sourceTree = ""; };
+ D01855B122DDD38D00AC458A /* libtdtl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdtl.a; path = TON/libtdtl.a; sourceTree = ""; };
+ D01855B222DDD38D00AC458A /* libmemprof.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmemprof.a; path = TON/libmemprof.a; sourceTree = ""; };
+ D0185E702089D265005E1A6C /* MTProxyConnectivity.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTProxyConnectivity.h; sourceTree = ""; };
+ D0185E712089D265005E1A6C /* MTProxyConnectivity.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTProxyConnectivity.m; sourceTree = ""; };
+ D01B262623324B8F00A6448B /* libtdnet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdnet.a; path = TON/lib/macos/libtdnet.a; sourceTree = ""; };
+ D01B262723324B9000A6448B /* libtl_tonlib_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_tonlib_api.a; path = TON/lib/macos/libtl_tonlib_api.a; sourceTree = ""; };
+ D01B262823324B9000A6448B /* libtdutils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdutils.a; path = TON/lib/macos/libtdutils.a; sourceTree = ""; };
+ D01B262923324B9000A6448B /* libtl_lite_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_lite_api.a; path = TON/lib/macos/libtl_lite_api.a; sourceTree = ""; };
+ D01B262A23324B9000A6448B /* libtl-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-utils.a"; path = "TON/lib/macos/libtl-utils.a"; sourceTree = ""; };
+ D01B262B23324B9000A6448B /* libton_block.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_block.a; path = TON/lib/macos/libton_block.a; sourceTree = ""; };
+ D01B262C23324B9000A6448B /* libtonlib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlib.a; path = TON/lib/macos/libtonlib.a; sourceTree = ""; };
+ D01B262D23324B9000A6448B /* liblite-client-common.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "liblite-client-common.a"; path = "TON/lib/macos/liblite-client-common.a"; sourceTree = ""; };
+ D01B262E23324B9000A6448B /* libtddb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtddb.a; path = TON/lib/macos/libtddb.a; sourceTree = ""; };
+ D01B262F23324B9000A6448B /* libadnllite.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libadnllite.a; path = TON/lib/macos/libadnllite.a; sourceTree = ""; };
+ D01B263023324B9000A6448B /* libton_crypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_crypto.a; path = TON/lib/macos/libton_crypto.a; sourceTree = ""; };
+ D01B263123324B9000A6448B /* libtdactor.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdactor.a; path = TON/lib/macos/libtdactor.a; sourceTree = ""; };
+ D01B263223324B9000A6448B /* libtl-lite-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-lite-utils.a"; path = "TON/lib/macos/libtl-lite-utils.a"; sourceTree = ""; };
+ D01B263323324B9000A6448B /* libkeys.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libkeys.a; path = TON/lib/macos/libkeys.a; sourceTree = ""; };
+ D01B263423324B9000A6448B /* libtl_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_api.a; path = TON/lib/macos/libtl_api.a; sourceTree = ""; };
+ D01B263523324B9000A6448B /* libcrc32c.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrc32c.a; path = TON/lib/macos/libcrc32c.a; sourceTree = ""; };
+ D020FAF81D994E3100F279AA /* MTHttpRequestOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTHttpRequestOperation.h; path = MTProtoKit/MTHttpRequestOperation.h; sourceTree = ""; };
+ D020FAF91D994E3100F279AA /* MTHttpRequestOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTHttpRequestOperation.m; path = MTProtoKit/MTHttpRequestOperation.m; sourceTree = ""; };
+ D0254CC518B10404009452AA /* MTEncryption.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTEncryption.h; path = MTProtoKit/MTEncryption.h; sourceTree = ""; };
+ D0338737223BC115007A2CE4 /* MTPKCS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTPKCS.h; sourceTree = ""; };
+ D0338738223BC115007A2CE4 /* MTPKCS.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTPKCS.m; sourceTree = ""; };
+ D038789D2332500A00DB441C /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libc++.tbd"; sourceTree = DEVELOPER_DIR; };
+ D038789F2332503300DB441C /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; };
+ D03878A12332503E00DB441C /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; };
+ D03878A32332504600DB441C /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; };
+ D03878A52332506700DB441C /* libton_crypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_crypto.a; path = TON/lib/ios/libton_crypto.a; sourceTree = ""; };
+ D03878A62332506700DB441C /* libmemprof.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmemprof.a; path = TON/lib/ios/libmemprof.a; sourceTree = ""; };
+ D03878A72332506700DB441C /* libtonlib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlib.a; path = TON/lib/ios/libtonlib.a; sourceTree = ""; };
+ D03878A82332506700DB441C /* libtonlibjson_private.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlibjson_private.a; path = TON/lib/ios/libtonlibjson_private.a; sourceTree = ""; };
+ D03878A92332506700DB441C /* libtdtl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdtl.a; path = TON/lib/ios/libtdtl.a; sourceTree = ""; };
+ D03878AA2332506700DB441C /* libkeys.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libkeys.a; path = TON/lib/ios/libkeys.a; sourceTree = ""; };
+ D03878AB2332506700DB441C /* libtdnet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdnet.a; path = TON/lib/ios/libtdnet.a; sourceTree = ""; };
+ D03878AC2332506700DB441C /* libtonlibjson_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlibjson_static.a; path = TON/lib/ios/libtonlibjson_static.a; sourceTree = ""; };
+ D03878AD2332506700DB441C /* libfift.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfift.a; path = TON/lib/ios/libfift.a; sourceTree = ""; };
+ D03878AE2332506800DB441C /* libtl_tonlib_api_json.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_tonlib_api_json.a; path = TON/lib/ios/libtl_tonlib_api_json.a; sourceTree = ""; };
+ D03878AF2332506800DB441C /* libtl-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-utils.a"; path = "TON/lib/ios/libtl-utils.a"; sourceTree = ""; };
+ D03878B02332506800DB441C /* libadnllite.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libadnllite.a; path = TON/lib/ios/libadnllite.a; sourceTree = ""; };
+ D03878B12332506800DB441C /* libtl_tonlib_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_tonlib_api.a; path = TON/lib/ios/libtl_tonlib_api.a; sourceTree = ""; };
+ D03878B22332506800DB441C /* libtdutils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdutils.a; path = TON/lib/ios/libtdutils.a; sourceTree = ""; };
+ D03878B32332506800DB441C /* libterminal.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libterminal.a; path = TON/lib/ios/libterminal.a; sourceTree = ""; };
+ D03878B42332506800DB441C /* libtl_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_api.a; path = TON/lib/ios/libtl_api.a; sourceTree = ""; };
+ D03878B52332506800DB441C /* libcrc32c.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrc32c.a; path = TON/lib/ios/libcrc32c.a; sourceTree = ""; };
+ D03878B62332506800DB441C /* libtl-lite-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-lite-utils.a"; path = "TON/lib/ios/libtl-lite-utils.a"; sourceTree = ""; };
+ D03878B72332506800DB441C /* libtddb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtddb.a; path = TON/lib/ios/libtddb.a; sourceTree = ""; };
+ D03878B82332506800DB441C /* libtl_lite_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_lite_api.a; path = TON/lib/ios/libtl_lite_api.a; sourceTree = ""; };
+ D03878B92332506800DB441C /* libton_block.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_block.a; path = TON/lib/ios/libton_block.a; sourceTree = ""; };
+ D03878BA2332506800DB441C /* libton_db.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_db.a; path = TON/lib/ios/libton_db.a; sourceTree = ""; };
+ D03878BB2332506800DB441C /* libtdactor.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdactor.a; path = TON/lib/ios/libtdactor.a; sourceTree = ""; };
+ D03878D3233250CF00DB441C /* libtonlibjson.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtonlibjson.dylib; path = TON/lib/macos/libtonlibjson.dylib; sourceTree = ""; };
+ D03878D4233250CF00DB441C /* libtonlibjson.0.5.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtonlibjson.0.5.dylib; path = TON/lib/macos/libtonlibjson.0.5.dylib; sourceTree = ""; };
+ D0503AD818B027F80074C3FE /* MTOutputStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTOutputStream.h; path = MTProtoKit/MTOutputStream.h; sourceTree = ""; };
+ D0503AD918B027F80074C3FE /* MTOutputStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTOutputStream.m; path = MTProtoKit/MTOutputStream.m; sourceTree = ""; };
+ D0503ADC18B029480074C3FE /* MTInputStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTInputStream.h; path = MTProtoKit/MTInputStream.h; sourceTree = ""; };
+ D0503ADD18B029480074C3FE /* MTInputStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTInputStream.m; path = MTProtoKit/MTInputStream.m; sourceTree = ""; };
+ D0529D2921A434BF00D7C3C4 /* MTTransportSchemeStats.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTTransportSchemeStats.h; sourceTree = ""; };
+ D0529D2A21A434BF00D7C3C4 /* MTTransportSchemeStats.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTTransportSchemeStats.m; sourceTree = ""; };
+ D0580ABE1B0F3E7100E8235B /* SSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SSignalKit.framework; path = "../../../../Library/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos/SSignalKit.framework"; sourceTree = ""; };
+ D0580AC01B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTDiscoverConnectionSignals.h; sourceTree = ""; };
+ D0580AC11B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTDiscoverConnectionSignals.m; sourceTree = ""; };
+ D05A831718AFB3F9007F1076 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D05A832818AFB3F9007F1076 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
+ D05A832B18AFB3F9007F1076 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
+ D05A833418AFB3F9007F1076 /* MtProtoKitTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MtProtoKitTests-Info.plist"; sourceTree = ""; };
+ D05A833618AFB3F9007F1076 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
+ D05A833818AFB3F9007F1076 /* MtProtoKitTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MtProtoKitTests.m; sourceTree = ""; };
+ D05A834818AFB40C007F1076 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; };
+ D05A834B18AFB40C007F1076 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D05A834C18AFB40C007F1076 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
+ D05A834D18AFB40C007F1076 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
+ D05A835018AFB40C007F1076 /* MtProtoKitOSX-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MtProtoKitOSX-Info.plist"; sourceTree = ""; };
+ D05A835218AFB40C007F1076 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
+ D05A835418AFB40C007F1076 /* MtProtoKitOSX-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MtProtoKitOSX-Prefix.pch"; sourceTree = ""; };
+ D05A839C18AFB75B007F1076 /* MTContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTContext.m; path = MTProtoKit/MTContext.m; sourceTree = ""; };
+ D05A839D18AFB75B007F1076 /* MTDatacenterTransferAuthAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterTransferAuthAction.m; path = MTProtoKit/MTDatacenterTransferAuthAction.m; sourceTree = ""; };
+ D05A839E18AFB75B007F1076 /* MTContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTContext.h; path = MTProtoKit/MTContext.h; sourceTree = ""; };
+ D05A839F18AFB75B007F1076 /* MTDatacenterTransferAuthAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterTransferAuthAction.h; path = MTProtoKit/MTDatacenterTransferAuthAction.h; sourceTree = ""; };
+ D05A83A018AFB75B007F1076 /* MTDatacenterAuthAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAuthAction.h; path = MTProtoKit/MTDatacenterAuthAction.h; sourceTree = ""; };
+ D05A83A318AFB75B007F1076 /* MTKeychain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTKeychain.m; path = MTProtoKit/MTKeychain.m; sourceTree = ""; };
+ D05A83B018AFB75B007F1076 /* MTDatacenterAuthMessageService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAuthMessageService.m; path = MTProtoKit/MTDatacenterAuthMessageService.m; sourceTree = ""; };
+ D05A83B518AFB75B007F1076 /* MTSerialization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTSerialization.h; path = MTProtoKit/MTSerialization.h; sourceTree = ""; };
+ D05A83C018AFB75B007F1076 /* MTKeychain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTKeychain.h; path = MTProtoKit/MTKeychain.h; sourceTree = ""; };
+ D05A83C618AFB75B007F1076 /* MTDatacenterSaltInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterSaltInfo.m; path = MTProtoKit/MTDatacenterSaltInfo.m; sourceTree = ""; };
+ D05A83C718AFB75B007F1076 /* MTDatacenterSaltInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterSaltInfo.h; path = MTProtoKit/MTDatacenterSaltInfo.h; sourceTree = ""; };
+ D05A83C818AFB75B007F1076 /* MTDatacenterAuthInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAuthInfo.m; path = MTProtoKit/MTDatacenterAuthInfo.m; sourceTree = ""; };
+ D05A83C918AFB75B007F1076 /* MTDatacenterAuthInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAuthInfo.h; path = MTProtoKit/MTDatacenterAuthInfo.h; sourceTree = ""; };
+ D05A83CA18AFB75B007F1076 /* MTDatacenterAddress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAddress.m; path = MTProtoKit/MTDatacenterAddress.m; sourceTree = ""; };
+ D05A83CB18AFB75B007F1076 /* MTDatacenterAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAddress.h; path = MTProtoKit/MTDatacenterAddress.h; sourceTree = "