From 5c80f423bb52285379d304e0d635b30ca41873f2 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sat, 21 Sep 2019 02:59:11 +0300 Subject: [PATCH] Refactored PasscodeInputFieldNode --- .../buck-project.meta.json | 2 +- .../contents.xcworkspacedata | 2 +- .../xcschemes/Telegram_Buck.xcscheme | 14 + submodules/PasscodeInputFieldNode/BUCK | 17 + submodules/PasscodeInputFieldNode/Info.plist | 22 + .../project.pbxproj | 401 ++++++++++++++++++ .../xcschemes/PasscodeInputFieldNode.xcscheme | 1 + .../Sources/PasscodeInputFieldNode.h | 11 + .../Sources/PasscodeInputFieldNode.swift} | 42 +- submodules/PasscodeUI/BUCK | 1 + .../PasscodeUI.xcodeproj/project.pbxproj | 62 ++- .../Sources/PasscodeEntryControllerNode.swift | 9 +- .../Sources/PasscodeInputFieldNode.swift | 382 +++++++++++++++++ .../Sources/PasscodeSetupControllerNode.swift | 8 +- .../SettingsUI.xcodeproj/project.pbxproj | 22 + .../Settings/Test.imageset/Contents.json | 21 - .../Settings/Test.imageset/Test.png | Bin 109352 -> 0 bytes submodules/WalletUI/BUCK | 12 +- .../Sources/WalletPasscodeScreen.swift | 9 +- .../WalletUI/Sources/WalletQrScanScreen.swift | 83 +--- .../WalletUI.xcodeproj/project.pbxproj | 36 +- 21 files changed, 968 insertions(+), 189 deletions(-) create mode 100644 submodules/PasscodeInputFieldNode/BUCK create mode 100644 submodules/PasscodeInputFieldNode/Info.plist create mode 100644 submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/project.pbxproj create mode 100644 submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/xcshareddata/xcschemes/PasscodeInputFieldNode.xcscheme create mode 100644 submodules/PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.h rename submodules/{PasscodeUI/Sources/PasscodeEntryInputFieldNode.swift => PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.swift} (88%) create mode 100644 submodules/PasscodeUI/Sources/PasscodeInputFieldNode.swift delete mode 100644 submodules/TelegramUI/Images.xcassets/Settings/Test.imageset/Contents.json delete mode 100644 submodules/TelegramUI/Images.xcassets/Settings/Test.imageset/Test.png diff --git a/Telegram_Buck.xcworkspace/buck-project.meta.json b/Telegram_Buck.xcworkspace/buck-project.meta.json index 91edc129f0..ea47a3d535 100644 --- a/Telegram_Buck.xcworkspace/buck-project.meta.json +++ b/Telegram_Buck.xcworkspace/buck-project.meta.json @@ -1 +1 @@ -{"required-targets":["//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_ac3_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_adts_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avcodec.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avdct.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avfft.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_d3d11va.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dirac.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dv_profile.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dxva2.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_jni.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_mediacodec.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_qsv.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vaapi.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vdpau.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_videotoolbox.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vorbis_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_xvmc.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_avformat.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_avio.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_adler32.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_aes.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_aes_ctr.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_attributes.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_audio_fifo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avassert.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avconfig.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avstring.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avutil.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_base64.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_blowfish.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_bprint.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_bswap.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_buffer.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_camellia.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_cast5.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_channel_layout.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_common.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_cpu.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_crc.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_des.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_dict.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_display.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_downmix_info.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_encryption_info.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_error.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_eval.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_ffversion.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_fifo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_file.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_frame.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hash.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hmac.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_cuda.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_d3d11va.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_drm.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_dxva2.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_mediacodec.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_qsv.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_vaapi.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_vdpau.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_videotoolbox.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_imgutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_intfloat.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_intreadwrite.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_lfg.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_log.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_lzo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_macros.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mastering_display_metadata.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mathematics.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_md5.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mem.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_motion_vector.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_murmur3.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_opt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_parseutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixdesc.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixelutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixfmt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_random_seed.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_rational.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_rc4.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_replaygain.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_ripemd.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_samplefmt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_sha.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_sha512.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_spherical.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_stereo3d.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_tea.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_threadmessage.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_time.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_timecode.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_timestamp.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_tree.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_twofish.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_xtea.h","//submodules/FFMpeg:ffmpeg_header_libswresample_sub_swresample.h","//submodules/FFMpeg:ffmpeg_header_libswresample_sub_version.h","//submodules/FFMpeg:libffmpeg_build","//submodules/Opus:opus_lib_file","//submodules/WebP:WebP_lib_file","//submodules/openssl:openssl_build_merged","//submodules/openssl:openssl_header_openssl_sub_aes.h","//submodules/openssl:openssl_header_openssl_sub_asn1.h","//submodules/openssl:openssl_header_openssl_sub_asn1_mac.h","//submodules/openssl:openssl_header_openssl_sub_asn1err.h","//submodules/openssl:openssl_header_openssl_sub_asn1t.h","//submodules/openssl:openssl_header_openssl_sub_async.h","//submodules/openssl:openssl_header_openssl_sub_asyncerr.h","//submodules/openssl:openssl_header_openssl_sub_bio.h","//submodules/openssl:openssl_header_openssl_sub_bioerr.h","//submodules/openssl:openssl_header_openssl_sub_blowfish.h","//submodules/openssl:openssl_header_openssl_sub_bn.h","//submodules/openssl:openssl_header_openssl_sub_bnerr.h","//submodules/openssl:openssl_header_openssl_sub_buffer.h","//submodules/openssl:openssl_header_openssl_sub_buffererr.h","//submodules/openssl:openssl_header_openssl_sub_camellia.h","//submodules/openssl:openssl_header_openssl_sub_cast.h","//submodules/openssl:openssl_header_openssl_sub_cmac.h","//submodules/openssl:openssl_header_openssl_sub_cms.h","//submodules/openssl:openssl_header_openssl_sub_cmserr.h","//submodules/openssl:openssl_header_openssl_sub_comp.h","//submodules/openssl:openssl_header_openssl_sub_comperr.h","//submodules/openssl:openssl_header_openssl_sub_conf.h","//submodules/openssl:openssl_header_openssl_sub_conf_api.h","//submodules/openssl:openssl_header_openssl_sub_conferr.h","//submodules/openssl:openssl_header_openssl_sub_crypto.h","//submodules/openssl:openssl_header_openssl_sub_cryptoerr.h","//submodules/openssl:openssl_header_openssl_sub_ct.h","//submodules/openssl:openssl_header_openssl_sub_cterr.h","//submodules/openssl:openssl_header_openssl_sub_des.h","//submodules/openssl:openssl_header_openssl_sub_dh.h","//submodules/openssl:openssl_header_openssl_sub_dherr.h","//submodules/openssl:openssl_header_openssl_sub_dsa.h","//submodules/openssl:openssl_header_openssl_sub_dsaerr.h","//submodules/openssl:openssl_header_openssl_sub_dtls1.h","//submodules/openssl:openssl_header_openssl_sub_e_os2.h","//submodules/openssl:openssl_header_openssl_sub_ebcdic.h","//submodules/openssl:openssl_header_openssl_sub_ec.h","//submodules/openssl:openssl_header_openssl_sub_ecdh.h","//submodules/openssl:openssl_header_openssl_sub_ecdsa.h","//submodules/openssl:openssl_header_openssl_sub_ecerr.h","//submodules/openssl:openssl_header_openssl_sub_engine.h","//submodules/openssl:openssl_header_openssl_sub_engineerr.h","//submodules/openssl:openssl_header_openssl_sub_err.h","//submodules/openssl:openssl_header_openssl_sub_evp.h","//submodules/openssl:openssl_header_openssl_sub_evperr.h","//submodules/openssl:openssl_header_openssl_sub_hmac.h","//submodules/openssl:openssl_header_openssl_sub_idea.h","//submodules/openssl:openssl_header_openssl_sub_kdf.h","//submodules/openssl:openssl_header_openssl_sub_kdferr.h","//submodules/openssl:openssl_header_openssl_sub_lhash.h","//submodules/openssl:openssl_header_openssl_sub_md2.h","//submodules/openssl:openssl_header_openssl_sub_md4.h","//submodules/openssl:openssl_header_openssl_sub_md5.h","//submodules/openssl:openssl_header_openssl_sub_mdc2.h","//submodules/openssl:openssl_header_openssl_sub_modes.h","//submodules/openssl:openssl_header_openssl_sub_obj_mac.h","//submodules/openssl:openssl_header_openssl_sub_objects.h","//submodules/openssl:openssl_header_openssl_sub_objectserr.h","//submodules/openssl:openssl_header_openssl_sub_ocsp.h","//submodules/openssl:openssl_header_openssl_sub_ocsperr.h","//submodules/openssl:openssl_header_openssl_sub_opensslconf.h","//submodules/openssl:openssl_header_openssl_sub_opensslv.h","//submodules/openssl:openssl_header_openssl_sub_ossl_typ.h","//submodules/openssl:openssl_header_openssl_sub_pem.h","//submodules/openssl:openssl_header_openssl_sub_pem2.h","//submodules/openssl:openssl_header_openssl_sub_pemerr.h","//submodules/openssl:openssl_header_openssl_sub_pkcs12.h","//submodules/openssl:openssl_header_openssl_sub_pkcs12err.h","//submodules/openssl:openssl_header_openssl_sub_pkcs7.h","//submodules/openssl:openssl_header_openssl_sub_pkcs7err.h","//submodules/openssl:openssl_header_openssl_sub_rand.h","//submodules/openssl:openssl_header_openssl_sub_rand_drbg.h","//submodules/openssl:openssl_header_openssl_sub_randerr.h","//submodules/openssl:openssl_header_openssl_sub_rc2.h","//submodules/openssl:openssl_header_openssl_sub_rc4.h","//submodules/openssl:openssl_header_openssl_sub_rc5.h","//submodules/openssl:openssl_header_openssl_sub_ripemd.h","//submodules/openssl:openssl_header_openssl_sub_rsa.h","//submodules/openssl:openssl_header_openssl_sub_rsaerr.h","//submodules/openssl:openssl_header_openssl_sub_safestack.h","//submodules/openssl:openssl_header_openssl_sub_seed.h","//submodules/openssl:openssl_header_openssl_sub_sha.h","//submodules/openssl:openssl_header_openssl_sub_srp.h","//submodules/openssl:openssl_header_openssl_sub_srtp.h","//submodules/openssl:openssl_header_openssl_sub_ssl.h","//submodules/openssl:openssl_header_openssl_sub_ssl2.h","//submodules/openssl:openssl_header_openssl_sub_ssl3.h","//submodules/openssl:openssl_header_openssl_sub_sslerr.h","//submodules/openssl:openssl_header_openssl_sub_stack.h","//submodules/openssl:openssl_header_openssl_sub_store.h","//submodules/openssl:openssl_header_openssl_sub_storeerr.h","//submodules/openssl:openssl_header_openssl_sub_symhacks.h","//submodules/openssl:openssl_header_openssl_sub_tls1.h","//submodules/openssl:openssl_header_openssl_sub_ts.h","//submodules/openssl:openssl_header_openssl_sub_tserr.h","//submodules/openssl:openssl_header_openssl_sub_txt_db.h","//submodules/openssl:openssl_header_openssl_sub_ui.h","//submodules/openssl:openssl_header_openssl_sub_uierr.h","//submodules/openssl:openssl_header_openssl_sub_whrlpool.h","//submodules/openssl:openssl_header_openssl_sub_x509.h","//submodules/openssl:openssl_header_openssl_sub_x509_vfy.h","//submodules/openssl:openssl_header_openssl_sub_x509err.h","//submodules/openssl:openssl_header_openssl_sub_x509v3.h","//submodules/openssl:openssl_header_openssl_sub_x509v3err.h","//submodules/ton:ton_build","//submodules/ton:ton_header_auto_sub_tl_sub_tonlib_api.h","//submodules/ton:ton_header_td_sub_utils_sub_SharedSlice.h","//submodules/ton:ton_header_td_sub_utils_sub_Slice-decl.h","//submodules/ton:ton_header_td_sub_utils_sub_Slice.h","//submodules/ton:ton_header_td_sub_utils_sub_check.h","//submodules/ton:ton_header_td_sub_utils_sub_common.h","//submodules/ton:ton_header_td_sub_utils_sub_config.h","//submodules/ton:ton_header_td_sub_utils_sub_int_types.h","//submodules/ton:ton_header_td_sub_utils_sub_port_sub_platform.h","//submodules/ton:ton_header_td_sub_utils_sub_unique_ptr.h","//submodules/ton:ton_header_tl_sub_TlObject.h","//submodules/ton:ton_header_tonlib_sub_Client.h","//submodules/ton:ton_header_tonlib_sub_tonlib_client_json.h","//submodules/ton:ton_header_tonlib_sub_tonlibjson_export.h"],"xcconfig-paths":["buck-out/gen/AppLibrary-Debug.xcconfig","buck-out/gen/AppLibrary-Profile.xcconfig","buck-out/gen/AppLibrary-Release.xcconfig","buck-out/gen/IntentsExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/IntentsExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/IntentsExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/NotificationContentExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/NotificationContentExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/NotificationContentExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/NotificationServiceExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/NotificationServiceExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/NotificationServiceExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/ShareExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/ShareExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/ShareExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/Telegram-Debug.xcconfig","buck-out/gen/Telegram-Profile.xcconfig","buck-out/gen/Telegram-Release.xcconfig","buck-out/gen/WatchApp#watchsimulator-i386-Debug.xcconfig","buck-out/gen/WatchApp#watchsimulator-i386-Profile.xcconfig","buck-out/gen/WatchApp#watchsimulator-i386-Release.xcconfig","buck-out/gen/WatchAppExtension#watchsimulator-i386-Debug.xcconfig","buck-out/gen/WatchAppExtension#watchsimulator-i386-Profile.xcconfig","buck-out/gen/WatchAppExtension#watchsimulator-i386-Release.xcconfig","buck-out/gen/WidgetExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/WidgetExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/WidgetExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Debug.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Profile.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Release.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Debug.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Profile.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Release.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Debug.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Profile.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Release.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Debug.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Profile.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Release.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Debug.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Profile.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Release.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Debug.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Profile.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Release.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Debug.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Profile.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Release.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Debug.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Profile.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Release.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Debug.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Profile.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Release.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Debug.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Profile.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Release.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Debug.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Profile.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Release.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Debug.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Profile.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Release.xcconfig","buck-out/gen/submodules/Camera/Camera-Debug.xcconfig","buck-out/gen/submodules/Camera/Camera-Profile.xcconfig","buck-out/gen/submodules/Camera/Camera-Release.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Release.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Release.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Release.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Debug.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Profile.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Release.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Debug.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Profile.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Release.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Debug.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Profile.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Release.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Debug.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Profile.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Release.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Debug.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Profile.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Release.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Debug.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Profile.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Release.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Debug.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Profile.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Release.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Debug.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Profile.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Release.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Debug.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Profile.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Release.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Debug.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Profile.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Release.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Debug.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Profile.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Release.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Debug.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Profile.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Release.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Debug.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Profile.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Release.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Debug.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Profile.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Release.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Debug.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Profile.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Release.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Debug.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Profile.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Release.xcconfig","buck-out/gen/submodules/Display/Display#shared-Debug.xcconfig","buck-out/gen/submodules/Display/Display#shared-Profile.xcconfig","buck-out/gen/submodules/Display/Display#shared-Release.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Debug.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Profile.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Release.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Debug.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Profile.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Release.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Debug.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Profile.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Release.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Debug.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Profile.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Release.xcconfig","buck-out/gen/submodules/GZip/GZip-Debug.xcconfig","buck-out/gen/submodules/GZip/GZip-Profile.xcconfig","buck-out/gen/submodules/GZip/GZip-Release.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Debug.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Profile.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Release.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Debug.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Profile.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Release.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Debug.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Profile.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Release.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Debug.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Profile.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Release.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Debug.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Profile.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Release.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Debug.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Profile.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Release.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Debug.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Profile.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Release.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Debug.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Profile.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Release.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Debug.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Profile.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Release.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Debug.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Profile.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Release.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Debug.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Profile.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Release.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Debug.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Profile.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Release.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Debug.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Profile.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Release.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Debug.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Profile.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Release.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Debug.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Profile.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Release.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Debug.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Profile.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Release.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Debug.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Profile.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Release.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Debug.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Profile.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Release.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Debug.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Profile.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Release.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Debug.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Profile.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Release.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Debug.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Profile.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Release.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Debug.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Profile.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Release.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Debug.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Profile.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Release.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Debug.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Profile.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Release.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Debug.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Profile.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Release.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Debug.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Profile.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Release.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Debug.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Profile.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Release.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Debug.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Profile.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Release.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Debug.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Profile.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Release.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Debug.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Profile.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Release.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Debug.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Profile.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Release.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Debug.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Profile.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Release.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Debug.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Profile.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Release.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Debug.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Profile.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Release.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Debug.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Profile.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Release.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Debug.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Profile.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Release.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Debug.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Profile.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Release.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Debug.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Profile.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Release.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Debug.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Profile.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Release.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Debug.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Profile.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Release.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Debug.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Profile.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Release.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Debug.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Profile.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Release.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Debug.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Profile.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Release.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Debug.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Profile.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Release.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Debug.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Profile.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Release.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Debug.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Profile.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Release.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Debug.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Profile.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Release.xcconfig","buck-out/gen/submodules/Opus/opus-Debug.xcconfig","buck-out/gen/submodules/Opus/opus-Profile.xcconfig","buck-out/gen/submodules/Opus/opus-Release.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Debug.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Profile.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Release.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Debug.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Profile.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Release.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Debug.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Profile.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Release.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Debug.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Profile.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Release.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Debug.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Profile.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Release.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Debug.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Profile.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Release.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Debug.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Profile.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Release.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Debug.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Profile.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Release.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Debug.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Profile.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Release.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Debug.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Profile.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Release.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Debug.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Profile.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Release.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Debug.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Profile.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Release.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Debug.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Profile.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Release.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Debug.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Profile.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Release.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Debug.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Profile.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Release.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Debug.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Profile.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Release.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Debug.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Profile.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Release.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Debug.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Profile.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Release.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Debug.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Profile.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Release.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Debug.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Profile.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Release.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Debug.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Profile.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Release.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Debug.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Profile.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Release.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Debug.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Profile.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Release.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Debug.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Profile.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Release.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Debug.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Profile.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Release.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Debug.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Profile.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Release.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Debug.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Profile.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Release.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Debug.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Profile.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Release.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Debug.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Profile.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Release.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Debug.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Profile.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Release.xcconfig","buck-out/gen/submodules/SegmentedControlNode/SegmentedControlNode-Debug.xcconfig","buck-out/gen/submodules/SegmentedControlNode/SegmentedControlNode-Profile.xcconfig","buck-out/gen/submodules/SegmentedControlNode/SegmentedControlNode-Release.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Debug.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Profile.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Release.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Debug.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Profile.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Release.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Debug.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Profile.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Release.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Debug.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Profile.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Release.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Debug.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Profile.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Release.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Debug.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Profile.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Release.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Debug.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Profile.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Release.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Debug.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Profile.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Release.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Debug.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Profile.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Release.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Debug.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Profile.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Release.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Debug.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Profile.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Release.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Debug.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Profile.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Release.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Debug.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Profile.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Release.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Debug.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Profile.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Release.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Debug.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Profile.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Release.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Debug.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Profile.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Release.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Debug.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Profile.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Release.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Debug.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Profile.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Release.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Debug.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Profile.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Release.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Debug.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Profile.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Release.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Debug.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Profile.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Release.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Debug.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Profile.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Release.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Debug.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Profile.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Release.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Debug.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Profile.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Release.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Debug.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Profile.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Release.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Debug.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Profile.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Release.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Debug.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Profile.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Release.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Debug.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Profile.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Release.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Debug.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Profile.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Release.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Debug.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Profile.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Release.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Debug.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Profile.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Release.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Debug.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Profile.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Release.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Debug.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Profile.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Release.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Debug.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Profile.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Release.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Debug.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Profile.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Release.xcconfig","buck-out/gen/submodules/WalletUI/WalletUI-Debug.xcconfig","buck-out/gen/submodules/WalletUI/WalletUI-Profile.xcconfig","buck-out/gen/submodules/WalletUI/WalletUI-Release.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Debug.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Profile.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Release.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Debug.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Profile.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Release.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Debug.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Profile.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Release.xcconfig","buck-out/gen/submodules/WatchCommon/Host/WatchCommon-Debug.xcconfig","buck-out/gen/submodules/WatchCommon/Host/WatchCommon-Profile.xcconfig","buck-out/gen/submodules/WatchCommon/Host/WatchCommon-Release.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Debug.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Profile.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Release.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Debug.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Profile.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Release.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Debug.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Profile.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Release.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Debug.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Profile.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Release.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Debug.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Profile.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Release.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Debug.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Profile.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Release.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Debug.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Profile.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Release.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Debug.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Profile.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Release.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Debug.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Profile.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Release.xcconfig","buck-out/gen/submodules/openssl/openssl-Debug.xcconfig","buck-out/gen/submodules/openssl/openssl-Profile.xcconfig","buck-out/gen/submodules/openssl/openssl-Release.xcconfig","buck-out/gen/submodules/rlottie/RLottieBinding-Debug.xcconfig","buck-out/gen/submodules/rlottie/RLottieBinding-Profile.xcconfig","buck-out/gen/submodules/rlottie/RLottieBinding-Release.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Debug.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Profile.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Release.xcconfig","buck-out/gen/submodules/ton/ton-Debug.xcconfig","buck-out/gen/submodules/ton/ton-Profile.xcconfig","buck-out/gen/submodules/ton/ton-Release.xcconfig"],"copy-in-xcode":[]} \ No newline at end of file +{"required-targets":["//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_ac3_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_adts_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avcodec.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avdct.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avfft.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_d3d11va.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dirac.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dv_profile.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dxva2.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_jni.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_mediacodec.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_qsv.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vaapi.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vdpau.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_videotoolbox.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vorbis_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_xvmc.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_avformat.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_avio.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_adler32.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_aes.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_aes_ctr.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_attributes.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_audio_fifo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avassert.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avconfig.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avstring.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avutil.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_base64.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_blowfish.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_bprint.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_bswap.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_buffer.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_camellia.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_cast5.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_channel_layout.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_common.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_cpu.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_crc.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_des.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_dict.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_display.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_downmix_info.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_encryption_info.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_error.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_eval.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_ffversion.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_fifo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_file.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_frame.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hash.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hmac.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_cuda.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_d3d11va.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_drm.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_dxva2.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_mediacodec.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_qsv.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_vaapi.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_vdpau.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_videotoolbox.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_imgutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_intfloat.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_intreadwrite.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_lfg.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_log.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_lzo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_macros.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mastering_display_metadata.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mathematics.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_md5.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mem.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_motion_vector.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_murmur3.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_opt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_parseutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixdesc.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixelutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixfmt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_random_seed.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_rational.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_rc4.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_replaygain.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_ripemd.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_samplefmt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_sha.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_sha512.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_spherical.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_stereo3d.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_tea.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_threadmessage.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_time.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_timecode.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_timestamp.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_tree.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_twofish.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_xtea.h","//submodules/FFMpeg:ffmpeg_header_libswresample_sub_swresample.h","//submodules/FFMpeg:ffmpeg_header_libswresample_sub_version.h","//submodules/FFMpeg:libffmpeg_build","//submodules/Opus:opus_lib_file","//submodules/WebP:WebP_lib_file","//submodules/openssl:openssl_build_merged","//submodules/openssl:openssl_header_openssl_sub_aes.h","//submodules/openssl:openssl_header_openssl_sub_asn1.h","//submodules/openssl:openssl_header_openssl_sub_asn1_mac.h","//submodules/openssl:openssl_header_openssl_sub_asn1err.h","//submodules/openssl:openssl_header_openssl_sub_asn1t.h","//submodules/openssl:openssl_header_openssl_sub_async.h","//submodules/openssl:openssl_header_openssl_sub_asyncerr.h","//submodules/openssl:openssl_header_openssl_sub_bio.h","//submodules/openssl:openssl_header_openssl_sub_bioerr.h","//submodules/openssl:openssl_header_openssl_sub_blowfish.h","//submodules/openssl:openssl_header_openssl_sub_bn.h","//submodules/openssl:openssl_header_openssl_sub_bnerr.h","//submodules/openssl:openssl_header_openssl_sub_buffer.h","//submodules/openssl:openssl_header_openssl_sub_buffererr.h","//submodules/openssl:openssl_header_openssl_sub_camellia.h","//submodules/openssl:openssl_header_openssl_sub_cast.h","//submodules/openssl:openssl_header_openssl_sub_cmac.h","//submodules/openssl:openssl_header_openssl_sub_cms.h","//submodules/openssl:openssl_header_openssl_sub_cmserr.h","//submodules/openssl:openssl_header_openssl_sub_comp.h","//submodules/openssl:openssl_header_openssl_sub_comperr.h","//submodules/openssl:openssl_header_openssl_sub_conf.h","//submodules/openssl:openssl_header_openssl_sub_conf_api.h","//submodules/openssl:openssl_header_openssl_sub_conferr.h","//submodules/openssl:openssl_header_openssl_sub_crypto.h","//submodules/openssl:openssl_header_openssl_sub_cryptoerr.h","//submodules/openssl:openssl_header_openssl_sub_ct.h","//submodules/openssl:openssl_header_openssl_sub_cterr.h","//submodules/openssl:openssl_header_openssl_sub_des.h","//submodules/openssl:openssl_header_openssl_sub_dh.h","//submodules/openssl:openssl_header_openssl_sub_dherr.h","//submodules/openssl:openssl_header_openssl_sub_dsa.h","//submodules/openssl:openssl_header_openssl_sub_dsaerr.h","//submodules/openssl:openssl_header_openssl_sub_dtls1.h","//submodules/openssl:openssl_header_openssl_sub_e_os2.h","//submodules/openssl:openssl_header_openssl_sub_ebcdic.h","//submodules/openssl:openssl_header_openssl_sub_ec.h","//submodules/openssl:openssl_header_openssl_sub_ecdh.h","//submodules/openssl:openssl_header_openssl_sub_ecdsa.h","//submodules/openssl:openssl_header_openssl_sub_ecerr.h","//submodules/openssl:openssl_header_openssl_sub_engine.h","//submodules/openssl:openssl_header_openssl_sub_engineerr.h","//submodules/openssl:openssl_header_openssl_sub_err.h","//submodules/openssl:openssl_header_openssl_sub_evp.h","//submodules/openssl:openssl_header_openssl_sub_evperr.h","//submodules/openssl:openssl_header_openssl_sub_hmac.h","//submodules/openssl:openssl_header_openssl_sub_idea.h","//submodules/openssl:openssl_header_openssl_sub_kdf.h","//submodules/openssl:openssl_header_openssl_sub_kdferr.h","//submodules/openssl:openssl_header_openssl_sub_lhash.h","//submodules/openssl:openssl_header_openssl_sub_md2.h","//submodules/openssl:openssl_header_openssl_sub_md4.h","//submodules/openssl:openssl_header_openssl_sub_md5.h","//submodules/openssl:openssl_header_openssl_sub_mdc2.h","//submodules/openssl:openssl_header_openssl_sub_modes.h","//submodules/openssl:openssl_header_openssl_sub_obj_mac.h","//submodules/openssl:openssl_header_openssl_sub_objects.h","//submodules/openssl:openssl_header_openssl_sub_objectserr.h","//submodules/openssl:openssl_header_openssl_sub_ocsp.h","//submodules/openssl:openssl_header_openssl_sub_ocsperr.h","//submodules/openssl:openssl_header_openssl_sub_opensslconf.h","//submodules/openssl:openssl_header_openssl_sub_opensslv.h","//submodules/openssl:openssl_header_openssl_sub_ossl_typ.h","//submodules/openssl:openssl_header_openssl_sub_pem.h","//submodules/openssl:openssl_header_openssl_sub_pem2.h","//submodules/openssl:openssl_header_openssl_sub_pemerr.h","//submodules/openssl:openssl_header_openssl_sub_pkcs12.h","//submodules/openssl:openssl_header_openssl_sub_pkcs12err.h","//submodules/openssl:openssl_header_openssl_sub_pkcs7.h","//submodules/openssl:openssl_header_openssl_sub_pkcs7err.h","//submodules/openssl:openssl_header_openssl_sub_rand.h","//submodules/openssl:openssl_header_openssl_sub_rand_drbg.h","//submodules/openssl:openssl_header_openssl_sub_randerr.h","//submodules/openssl:openssl_header_openssl_sub_rc2.h","//submodules/openssl:openssl_header_openssl_sub_rc4.h","//submodules/openssl:openssl_header_openssl_sub_rc5.h","//submodules/openssl:openssl_header_openssl_sub_ripemd.h","//submodules/openssl:openssl_header_openssl_sub_rsa.h","//submodules/openssl:openssl_header_openssl_sub_rsaerr.h","//submodules/openssl:openssl_header_openssl_sub_safestack.h","//submodules/openssl:openssl_header_openssl_sub_seed.h","//submodules/openssl:openssl_header_openssl_sub_sha.h","//submodules/openssl:openssl_header_openssl_sub_srp.h","//submodules/openssl:openssl_header_openssl_sub_srtp.h","//submodules/openssl:openssl_header_openssl_sub_ssl.h","//submodules/openssl:openssl_header_openssl_sub_ssl2.h","//submodules/openssl:openssl_header_openssl_sub_ssl3.h","//submodules/openssl:openssl_header_openssl_sub_sslerr.h","//submodules/openssl:openssl_header_openssl_sub_stack.h","//submodules/openssl:openssl_header_openssl_sub_store.h","//submodules/openssl:openssl_header_openssl_sub_storeerr.h","//submodules/openssl:openssl_header_openssl_sub_symhacks.h","//submodules/openssl:openssl_header_openssl_sub_tls1.h","//submodules/openssl:openssl_header_openssl_sub_ts.h","//submodules/openssl:openssl_header_openssl_sub_tserr.h","//submodules/openssl:openssl_header_openssl_sub_txt_db.h","//submodules/openssl:openssl_header_openssl_sub_ui.h","//submodules/openssl:openssl_header_openssl_sub_uierr.h","//submodules/openssl:openssl_header_openssl_sub_whrlpool.h","//submodules/openssl:openssl_header_openssl_sub_x509.h","//submodules/openssl:openssl_header_openssl_sub_x509_vfy.h","//submodules/openssl:openssl_header_openssl_sub_x509err.h","//submodules/openssl:openssl_header_openssl_sub_x509v3.h","//submodules/openssl:openssl_header_openssl_sub_x509v3err.h","//submodules/ton:ton_build","//submodules/ton:ton_header_auto_sub_tl_sub_tonlib_api.h","//submodules/ton:ton_header_td_sub_utils_sub_SharedSlice.h","//submodules/ton:ton_header_td_sub_utils_sub_Slice-decl.h","//submodules/ton:ton_header_td_sub_utils_sub_Slice.h","//submodules/ton:ton_header_td_sub_utils_sub_check.h","//submodules/ton:ton_header_td_sub_utils_sub_common.h","//submodules/ton:ton_header_td_sub_utils_sub_config.h","//submodules/ton:ton_header_td_sub_utils_sub_int_types.h","//submodules/ton:ton_header_td_sub_utils_sub_port_sub_platform.h","//submodules/ton:ton_header_td_sub_utils_sub_unique_ptr.h","//submodules/ton:ton_header_tl_sub_TlObject.h","//submodules/ton:ton_header_tonlib_sub_Client.h","//submodules/ton:ton_header_tonlib_sub_tonlib_client_json.h","//submodules/ton:ton_header_tonlib_sub_tonlibjson_export.h"],"xcconfig-paths":["buck-out/gen/AppLibrary-Debug.xcconfig","buck-out/gen/AppLibrary-Profile.xcconfig","buck-out/gen/AppLibrary-Release.xcconfig","buck-out/gen/IntentsExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/IntentsExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/IntentsExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/NotificationContentExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/NotificationContentExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/NotificationContentExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/NotificationServiceExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/NotificationServiceExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/NotificationServiceExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/ShareExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/ShareExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/ShareExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/Telegram-Debug.xcconfig","buck-out/gen/Telegram-Profile.xcconfig","buck-out/gen/Telegram-Release.xcconfig","buck-out/gen/WatchApp#watchsimulator-i386-Debug.xcconfig","buck-out/gen/WatchApp#watchsimulator-i386-Profile.xcconfig","buck-out/gen/WatchApp#watchsimulator-i386-Release.xcconfig","buck-out/gen/WatchAppExtension#watchsimulator-i386-Debug.xcconfig","buck-out/gen/WatchAppExtension#watchsimulator-i386-Profile.xcconfig","buck-out/gen/WatchAppExtension#watchsimulator-i386-Release.xcconfig","buck-out/gen/WidgetExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/WidgetExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/WidgetExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Debug.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Profile.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Release.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Debug.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Profile.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Release.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Debug.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Profile.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Release.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Debug.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Profile.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Release.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Debug.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Profile.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Release.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Debug.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Profile.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Release.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Debug.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Profile.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Release.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Debug.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Profile.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Release.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Debug.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Profile.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Release.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Debug.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Profile.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Release.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Debug.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Profile.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Release.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Debug.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Profile.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Release.xcconfig","buck-out/gen/submodules/Camera/Camera-Debug.xcconfig","buck-out/gen/submodules/Camera/Camera-Profile.xcconfig","buck-out/gen/submodules/Camera/Camera-Release.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Release.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Release.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Release.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Debug.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Profile.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Release.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Debug.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Profile.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Release.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Debug.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Profile.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Release.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Debug.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Profile.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Release.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Debug.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Profile.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Release.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Debug.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Profile.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Release.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Debug.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Profile.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Release.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Debug.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Profile.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Release.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Debug.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Profile.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Release.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Debug.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Profile.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Release.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Debug.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Profile.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Release.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Debug.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Profile.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Release.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Debug.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Profile.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Release.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Debug.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Profile.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Release.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Debug.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Profile.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Release.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Debug.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Profile.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Release.xcconfig","buck-out/gen/submodules/Display/Display#shared-Debug.xcconfig","buck-out/gen/submodules/Display/Display#shared-Profile.xcconfig","buck-out/gen/submodules/Display/Display#shared-Release.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Debug.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Profile.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Release.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Debug.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Profile.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Release.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Debug.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Profile.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Release.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Debug.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Profile.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Release.xcconfig","buck-out/gen/submodules/GZip/GZip-Debug.xcconfig","buck-out/gen/submodules/GZip/GZip-Profile.xcconfig","buck-out/gen/submodules/GZip/GZip-Release.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Debug.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Profile.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Release.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Debug.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Profile.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Release.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Debug.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Profile.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Release.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Debug.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Profile.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Release.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Debug.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Profile.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Release.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Debug.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Profile.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Release.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Debug.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Profile.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Release.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Debug.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Profile.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Release.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Debug.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Profile.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Release.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Debug.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Profile.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Release.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Debug.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Profile.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Release.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Debug.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Profile.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Release.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Debug.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Profile.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Release.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Debug.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Profile.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Release.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Debug.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Profile.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Release.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Debug.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Profile.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Release.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Debug.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Profile.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Release.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Debug.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Profile.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Release.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Debug.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Profile.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Release.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Debug.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Profile.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Release.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Debug.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Profile.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Release.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Debug.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Profile.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Release.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Debug.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Profile.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Release.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Debug.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Profile.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Release.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Debug.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Profile.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Release.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Debug.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Profile.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Release.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Debug.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Profile.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Release.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Debug.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Profile.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Release.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Debug.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Profile.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Release.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Debug.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Profile.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Release.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Debug.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Profile.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Release.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Debug.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Profile.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Release.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Debug.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Profile.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Release.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Debug.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Profile.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Release.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Debug.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Profile.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Release.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Debug.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Profile.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Release.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Debug.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Profile.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Release.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Debug.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Profile.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Release.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Debug.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Profile.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Release.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Debug.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Profile.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Release.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Debug.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Profile.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Release.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Debug.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Profile.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Release.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Debug.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Profile.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Release.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Debug.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Profile.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Release.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Debug.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Profile.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Release.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Debug.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Profile.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Release.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Debug.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Profile.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Release.xcconfig","buck-out/gen/submodules/Opus/opus-Debug.xcconfig","buck-out/gen/submodules/Opus/opus-Profile.xcconfig","buck-out/gen/submodules/Opus/opus-Release.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Debug.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Profile.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Release.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Debug.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Profile.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Release.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Debug.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Profile.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Release.xcconfig","buck-out/gen/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode-Debug.xcconfig","buck-out/gen/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode-Profile.xcconfig","buck-out/gen/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode-Release.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Debug.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Profile.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Release.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Debug.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Profile.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Release.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Debug.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Profile.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Release.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Debug.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Profile.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Release.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Debug.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Profile.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Release.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Debug.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Profile.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Release.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Debug.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Profile.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Release.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Debug.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Profile.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Release.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Debug.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Profile.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Release.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Debug.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Profile.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Release.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Debug.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Profile.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Release.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Debug.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Profile.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Release.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Debug.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Profile.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Release.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Debug.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Profile.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Release.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Debug.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Profile.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Release.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Debug.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Profile.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Release.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Debug.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Profile.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Release.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Debug.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Profile.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Release.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Debug.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Profile.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Release.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Debug.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Profile.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Release.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Debug.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Profile.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Release.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Debug.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Profile.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Release.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Debug.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Profile.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Release.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Debug.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Profile.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Release.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Debug.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Profile.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Release.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Debug.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Profile.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Release.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Debug.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Profile.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Release.xcconfig","buck-out/gen/submodules/SegmentedControlNode/SegmentedControlNode-Debug.xcconfig","buck-out/gen/submodules/SegmentedControlNode/SegmentedControlNode-Profile.xcconfig","buck-out/gen/submodules/SegmentedControlNode/SegmentedControlNode-Release.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Debug.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Profile.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Release.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Debug.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Profile.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Release.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Debug.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Profile.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Release.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Debug.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Profile.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Release.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Debug.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Profile.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Release.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Debug.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Profile.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Release.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Debug.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Profile.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Release.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Debug.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Profile.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Release.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Debug.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Profile.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Release.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Debug.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Profile.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Release.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Debug.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Profile.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Release.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Debug.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Profile.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Release.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Debug.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Profile.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Release.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Debug.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Profile.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Release.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Debug.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Profile.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Release.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Debug.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Profile.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Release.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Debug.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Profile.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Release.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Debug.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Profile.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Release.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Debug.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Profile.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Release.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Debug.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Profile.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Release.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Debug.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Profile.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Release.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Debug.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Profile.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Release.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Debug.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Profile.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Release.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Debug.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Profile.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Release.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Debug.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Profile.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Release.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Debug.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Profile.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Release.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Debug.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Profile.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Release.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Debug.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Profile.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Release.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Debug.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Profile.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Release.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Debug.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Profile.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Release.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Debug.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Profile.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Release.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Debug.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Profile.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Release.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Debug.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Profile.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Release.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Debug.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Profile.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Release.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Debug.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Profile.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Release.xcconfig","buck-out/gen/submodules/WalletUI/WalletUI-Debug.xcconfig","buck-out/gen/submodules/WalletUI/WalletUI-Profile.xcconfig","buck-out/gen/submodules/WalletUI/WalletUI-Release.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Debug.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Profile.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Release.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Debug.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Profile.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Release.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Debug.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Profile.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Release.xcconfig","buck-out/gen/submodules/WatchCommon/Host/WatchCommon-Debug.xcconfig","buck-out/gen/submodules/WatchCommon/Host/WatchCommon-Profile.xcconfig","buck-out/gen/submodules/WatchCommon/Host/WatchCommon-Release.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Debug.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Profile.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Release.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Debug.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Profile.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Release.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Debug.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Profile.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Release.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Debug.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Profile.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Release.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Debug.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Profile.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Release.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Debug.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Profile.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Release.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Debug.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Profile.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Release.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Debug.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Profile.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Release.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Debug.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Profile.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Release.xcconfig","buck-out/gen/submodules/openssl/openssl-Debug.xcconfig","buck-out/gen/submodules/openssl/openssl-Profile.xcconfig","buck-out/gen/submodules/openssl/openssl-Release.xcconfig","buck-out/gen/submodules/rlottie/RLottieBinding-Debug.xcconfig","buck-out/gen/submodules/rlottie/RLottieBinding-Profile.xcconfig","buck-out/gen/submodules/rlottie/RLottieBinding-Release.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Debug.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Profile.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Release.xcconfig","buck-out/gen/submodules/ton/ton-Debug.xcconfig","buck-out/gen/submodules/ton/ton-Profile.xcconfig","buck-out/gen/submodules/ton/ton-Release.xcconfig"],"copy-in-xcode":[]} \ No newline at end of file diff --git a/Telegram_Buck.xcworkspace/contents.xcworkspacedata b/Telegram_Buck.xcworkspace/contents.xcworkspacedata index 56b76f1d96..149ca31975 100644 --- a/Telegram_Buck.xcworkspace/contents.xcworkspacedata +++ b/Telegram_Buck.xcworkspace/contents.xcworkspacedata @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/Telegram_Buck.xcworkspace/xcshareddata/xcschemes/Telegram_Buck.xcscheme b/Telegram_Buck.xcworkspace/xcshareddata/xcschemes/Telegram_Buck.xcscheme index 49314580e4..4a01a62522 100644 --- a/Telegram_Buck.xcworkspace/xcshareddata/xcschemes/Telegram_Buck.xcscheme +++ b/Telegram_Buck.xcworkspace/xcshareddata/xcschemes/Telegram_Buck.xcscheme @@ -1980,6 +1980,20 @@ ReferencedContainer = "container:submodules/OpusBinding/OpusBinding.xcodeproj"> + + + + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/project.pbxproj b/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..c4da1b46f9 --- /dev/null +++ b/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/project.pbxproj @@ -0,0 +1,401 @@ + + + + + archiveVersion + 1 + classes + + + objectVersion + 46 + objects + + 1DD70E2954723C0500000000 + + isa + PBXFileReference + name + PasscodeInputFieldNode-Debug.xcconfig + path + ../../buck-out/gen/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode-Debug.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + 1DD70E29E5F5E62F00000000 + + isa + PBXFileReference + name + PasscodeInputFieldNode-Profile.xcconfig + path + ../../buck-out/gen/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode-Profile.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + 1DD70E29598C919100000000 + + isa + PBXFileReference + name + PasscodeInputFieldNode-Release.xcconfig + path + ../../buck-out/gen/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode-Release.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + B401C9792F7F325000000000 + + isa + PBXGroup + name + Buck (Do Not Modify) + sourceTree + ]]> + children + + 1DD70E2954723C0500000000 + 1DD70E29E5F5E62F00000000 + 1DD70E29598C919100000000 + + + B401C979B781F65D00000000 + + isa + PBXGroup + name + Configurations + sourceTree + ]]> + children + + B401C9792F7F325000000000 + + + 1DD70E29FF334B1F00000000 + + isa + PBXFileReference + name + libDisplay.dylib + path + libDisplay.dylib + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + compiled.mach-o.dylib + + 1DD70E29D65BA68200000000 + + isa + PBXFileReference + name + libSwiftSignalKit.dylib + path + libSwiftSignalKit.dylib + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + compiled.mach-o.dylib + + B401C97968022A5500000000 + + isa + PBXGroup + name + Frameworks + sourceTree + ]]> + children + + 1DD70E29FF334B1F00000000 + 1DD70E29D65BA68200000000 + + + 1DD70E29001F47FB00000000 + + isa + PBXFileReference + name + BUCK + path + BUCK + sourceTree + SOURCE_ROOT + explicitFileType + text.script.python + + 1DD70E290BCAAD5500000000 + + isa + PBXFileReference + name + PasscodeInputFieldNode.swift + path + Sources/PasscodeInputFieldNode.swift + sourceTree + SOURCE_ROOT + + B401C979EAB5339800000000 + + isa + PBXGroup + name + Sources + sourceTree + ]]> + children + + 1DD70E290BCAAD5500000000 + + + B401C979928346B000000000 + + isa + PBXGroup + name + PasscodeInputFieldNode + sourceTree + ]]> + children + + 1DD70E29001F47FB00000000 + B401C979EAB5339800000000 + + + 1DD70E2989A0042800000000 + + isa + PBXFileReference + name + libPasscodeInputFieldNode.a + path + libPasscodeInputFieldNode.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + B401C979C806358400000000 + + isa + PBXGroup + name + Products + sourceTree + ]]> + children + + 1DD70E2989A0042800000000 + + + B401C979EFB6AC4600000000 + + isa + PBXGroup + name + mainGroup + sourceTree + ]]> + children + + B401C979B781F65D00000000 + B401C97968022A5500000000 + B401C979928346B000000000 + B401C979C806358400000000 + + + E7A30F040BCAAD5500000000 + + isa + PBXBuildFile + fileRef + 1DD70E290BCAAD5500000000 + + 1870857F0000000000000000 + + isa + PBXSourcesBuildPhase + files + + E7A30F040BCAAD5500000000 + + + E7A30F04FF334B1F00000000 + + isa + PBXBuildFile + fileRef + 1DD70E29FF334B1F00000000 + + E7A30F04D65BA68200000000 + + isa + PBXBuildFile + fileRef + 1DD70E29D65BA68200000000 + + FAF5FAC90000000000000000 + + isa + PBXCopyFilesBuildPhase + files + + E7A30F04FF334B1F00000000 + E7A30F04D65BA68200000000 + + name + Fake Swift Dependencies (Copy Files Phase) + runOnlyForDeploymentPostprocessing + 1 + dstSubfolderSpec + 16 + dstPath + + + 4952437303EDA63300000000 + + isa + XCBuildConfiguration + name + Debug + buildSettings + + + baseConfigurationReference + 1DD70E2954723C0500000000 + + 4952437350C7218900000000 + + isa + XCBuildConfiguration + name + Profile + buildSettings + + + baseConfigurationReference + 1DD70E29E5F5E62F00000000 + + 49524373A439BFE700000000 + + isa + XCBuildConfiguration + name + Release + buildSettings + + + baseConfigurationReference + 1DD70E29598C919100000000 + + 218C37090000000000000000 + + isa + XCConfigurationList + buildConfigurations + + 4952437303EDA63300000000 + 4952437350C7218900000000 + 49524373A439BFE700000000 + + defaultConfigurationIsVisible + + + E66DC04E928346B000000000 + + isa + PBXNativeTarget + name + PasscodeInputFieldNode + productName + PasscodeInputFieldNode + productReference + 1DD70E2989A0042800000000 + productType + com.apple.product-type.library.static + dependencies + + + buildPhases + + 1870857F0000000000000000 + FAF5FAC90000000000000000 + + buildConfigurationList + 218C37090000000000000000 + + 4952437303EDA63300000001 + + isa + XCBuildConfiguration + name + Debug + buildSettings + + + + 4952437350C7218900000001 + + isa + XCBuildConfiguration + name + Profile + buildSettings + + + + 49524373A439BFE700000001 + + isa + XCBuildConfiguration + name + Release + buildSettings + + + + 218C37090000000000000001 + + isa + XCConfigurationList + buildConfigurations + + 4952437303EDA63300000001 + 4952437350C7218900000001 + 49524373A439BFE700000001 + + defaultConfigurationIsVisible + + + 96C84793928346B000000000 + + isa + PBXProject + mainGroup + B401C979EFB6AC4600000000 + targets + + E66DC04E928346B000000000 + + buildConfigurationList + 218C37090000000000000001 + compatibilityVersion + Xcode 3.2 + attributes + + LastUpgradeCheck + 9999 + + + + rootObject + 96C84793928346B000000000 + + \ No newline at end of file diff --git a/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/xcshareddata/xcschemes/PasscodeInputFieldNode.xcscheme b/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/xcshareddata/xcschemes/PasscodeInputFieldNode.xcscheme new file mode 100644 index 0000000000..066bbb9dbf --- /dev/null +++ b/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/xcshareddata/xcschemes/PasscodeInputFieldNode.xcscheme @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/submodules/PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.h b/submodules/PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.h new file mode 100644 index 0000000000..62f02bccf8 --- /dev/null +++ b/submodules/PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.h @@ -0,0 +1,11 @@ +#import + +//! Project version number for PasscodeInputFieldNode. +FOUNDATION_EXPORT double PasscodeInputFieldNodeVersionNumber; + +//! Project version string for PasscodeInputFieldNode. +FOUNDATION_EXPORT const unsigned char PasscodeInputFieldNodeVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/submodules/PasscodeUI/Sources/PasscodeEntryInputFieldNode.swift b/submodules/PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.swift similarity index 88% rename from submodules/PasscodeUI/Sources/PasscodeEntryInputFieldNode.swift rename to submodules/PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.swift index 119811902c..8e899a6421 100644 --- a/submodules/PasscodeUI/Sources/PasscodeEntryInputFieldNode.swift +++ b/submodules/PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.swift @@ -24,19 +24,19 @@ private func generateDotImage(color: UIColor, filled: Bool) -> UIImage? { }) } -private func generateFieldBackgroundImage(background: PasscodeBackground, frame: CGRect) -> UIImage? { +private func generateFieldBackgroundImage(backgroundImage: UIImage, backgroundSize: CGSize, frame: CGRect) -> UIImage? { return generateImage(frame.size, contextGenerator: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) context.clear(bounds) - let relativeFrame = CGRect(x: -frame.minX, y: frame.minY - background.size.height + frame.size.height - , width: background.size.width, height: background.size.height) + let relativeFrame = CGRect(x: -frame.minX, y: frame.minY - backgroundSize.height + frame.size.height + , width: backgroundSize.width, height: backgroundSize.height) let path = UIBezierPath(roundedRect: CGRect(x: 0.0, y: 0.0, width: size.width, height: size.height), cornerRadius: 6.0) context.addPath(path.cgPath) context.clip() - context.draw(background.foregroundImage.cgImage!, in: relativeFrame) + context.draw(backgroundImage.cgImage!, in: relativeFrame) context.setBlendMode(.clear) context.setFillColor(UIColor.clear.cgColor) @@ -128,8 +128,8 @@ private class PasscodeEntryDotNode: ASImageNode { } } -public final class PasscodeEntryInputFieldNode: ASDisplayNode, UITextFieldDelegate { - private var background: PasscodeBackground? +public final class PasscodeInputFieldNode: ASDisplayNode, UITextFieldDelegate { + private var background: (UIImage, CGSize)? private var color: UIColor private var accentColor: UIColor private var fieldType: PasscodeEntryFieldType @@ -139,7 +139,7 @@ public final class PasscodeEntryInputFieldNode: ASDisplayNode, UITextFieldDelega private let borderNode: ASImageNode private let dotNodes: [PasscodeEntryDotNode] - private var validLayout: PasscodeLayout? + private var validLayout: (ContainerViewLayout, CGFloat)? public var complete: ((String) -> Void)? @@ -202,15 +202,15 @@ public final class PasscodeEntryInputFieldNode: ASDisplayNode, UITextFieldDelega self.textFieldNode.textField.keyboardType = self.fieldType.keyboardType - if let validLayout = self.validLayout { - let _ = self.updateLayout(layout: validLayout, transition: animated ? .animated(duration: 0.25, curve: .easeInOut) : .immediate) + if let (layout, topOffset) = self.validLayout { + let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: animated ? .animated(duration: 0.25, curve: .easeInOut) : .immediate) } } - func updateBackground(_ background: PasscodeBackground) { - self.background = background - if let validLayout = self.validLayout { - let _ = self.updateLayout(layout: validLayout, transition: .immediate) + func updateBackground(_ image: UIImage, size: CGSize) { + self.background = (image, size) + if let (layout, topOffset) = self.validLayout { + let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: .immediate) } } @@ -302,13 +302,13 @@ public final class PasscodeEntryInputFieldNode: ASDisplayNode, UITextFieldDelega self.textFieldNode.textField.text = "" } self.fieldType = fieldType - if let validLayout = self.validLayout { - let _ = self.updateLayout(layout: validLayout, transition: .immediate) + if let (layout, topOffset) = self.validLayout { + let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: .immediate) } } - public func updateLayout(layout: PasscodeLayout, transition: ContainedViewLayoutTransition) -> CGRect { - self.validLayout = layout + public func updateLayout(layout: ContainerViewLayout, topOffset: CGFloat, transition: ContainedViewLayoutTransition) -> CGRect { + self.validLayout = (layout, topOffset) let fieldAlpha: CGFloat switch self.fieldType { @@ -321,7 +321,7 @@ public final class PasscodeEntryInputFieldNode: ASDisplayNode, UITextFieldDelega transition.updateAlpha(node: self.textFieldNode, alpha: fieldAlpha) transition.updateAlpha(node: self.borderNode, alpha: fieldAlpha) - let origin = CGPoint(x: floor((layout.layout.size.width - dotDiameter * 6 - dotSpacing * 5) / 2.0), y: layout.inputFieldOffset) + let origin = CGPoint(x: floor((layout.size.width - dotDiameter * 6 - dotSpacing * 5) / 2.0), y: topOffset) for i in 0 ..< self.dotNodes.count { let node = self.dotNodes[i] let dotAlpha: CGFloat @@ -343,11 +343,11 @@ public final class PasscodeEntryInputFieldNode: ASDisplayNode, UITextFieldDelega if !self.useCustomNumpad { inset = 16.0 } - let fieldFrame = CGRect(x: inset, y: origin.y, width: layout.layout.size.width - inset * 2.0, height: fieldHeight) + let fieldFrame = CGRect(x: inset, y: origin.y, width: layout.size.width - inset * 2.0, height: fieldHeight) transition.updateFrame(node: self.borderNode, frame: fieldFrame) transition.updateFrame(node: self.textFieldNode, frame: fieldFrame.insetBy(dx: 13.0, dy: 0.0)) - if let background = self.background { - self.borderNode.image = generateFieldBackgroundImage(background: background, frame: fieldFrame) + if let (backgroundImage, backgroundSize) = self.background { + self.borderNode.image = generateFieldBackgroundImage(backgroundImage: backgroundImage, backgroundSize: backgroundSize, frame: fieldFrame) } return fieldFrame diff --git a/submodules/PasscodeUI/BUCK b/submodules/PasscodeUI/BUCK index 306511e065..5dd70b8987 100644 --- a/submodules/PasscodeUI/BUCK +++ b/submodules/PasscodeUI/BUCK @@ -19,6 +19,7 @@ static_library( "//submodules/TelegramStringFormatting:TelegramStringFormatting", "//submodules/ImageBlur:ImageBlur", "//submodules/AppBundle:AppBundle", + "//submodules/PasscodeInputFieldNode:PasscodeInputFieldNode", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/PasscodeUI/PasscodeUI.xcodeproj/project.pbxproj b/submodules/PasscodeUI/PasscodeUI.xcodeproj/project.pbxproj index 769fc9bc55..61d552d99e 100644 --- a/submodules/PasscodeUI/PasscodeUI.xcodeproj/project.pbxproj +++ b/submodules/PasscodeUI/PasscodeUI.xcodeproj/project.pbxproj @@ -169,6 +169,19 @@ explicitFileType archive.ar + 1DD70E2989A0042800000000 + + isa + PBXFileReference + name + libPasscodeInputFieldNode.a + path + libPasscodeInputFieldNode.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + 1DD70E290F1A3C6400000000 isa @@ -329,6 +342,7 @@ 1DD70E29A889192100000000 1DD70E29CE34063500000000 1DD70E2936DE2CF900000000 + 1DD70E2989A0042800000000 1DD70E290F1A3C6400000000 1DD70E29DB6520C800000000 1DD70E29D65BA68200000000 @@ -388,17 +402,6 @@ sourceTree SOURCE_ROOT - 1DD70E293E85462B00000000 - - isa - PBXFileReference - name - PasscodeEntryInputFieldNode.swift - path - Sources/PasscodeEntryInputFieldNode.swift - sourceTree - SOURCE_ROOT - 1DD70E293E99570200000000 isa @@ -421,6 +424,17 @@ sourceTree SOURCE_ROOT + 1DD70E290BCAAD5500000000 + + isa + PBXFileReference + name + PasscodeInputFieldNode.swift + path + Sources/PasscodeInputFieldNode.swift + sourceTree + SOURCE_ROOT + 1DD70E299AE87B0D00000000 isa @@ -478,9 +492,9 @@ 1DD70E2944FAB31100000000 1DD70E298C702AD500000000 1DD70E297F6C137700000000 - 1DD70E293E85462B00000000 1DD70E293E99570200000000 1DD70E29A75DC52700000000 + 1DD70E290BCAAD5500000000 1DD70E299AE87B0D00000000 1DD70E29E2D8E4C900000000 1DD70E298FD9E6E000000000 @@ -564,13 +578,6 @@ fileRef 1DD70E297F6C137700000000 - E7A30F043E85462B00000000 - - isa - PBXBuildFile - fileRef - 1DD70E293E85462B00000000 - E7A30F043E99570200000000 isa @@ -585,6 +592,13 @@ fileRef 1DD70E29A75DC52700000000 + E7A30F040BCAAD5500000000 + + isa + PBXBuildFile + fileRef + 1DD70E290BCAAD5500000000 + E7A30F049AE87B0D00000000 isa @@ -622,9 +636,9 @@ E7A30F0444FAB31100000000 E7A30F048C702AD500000000 E7A30F047F6C137700000000 - E7A30F043E85462B00000000 E7A30F043E99570200000000 E7A30F04A75DC52700000000 + E7A30F040BCAAD5500000000 E7A30F049AE87B0D00000000 E7A30F04E2D8E4C900000000 E7A30F048FD9E6E000000000 @@ -757,6 +771,13 @@ fileRef 1DD70E29A889192100000000 + E7A30F0489A0042800000000 + + isa + PBXBuildFile + fileRef + 1DD70E2989A0042800000000 + FAF5FAC90000000000000000 isa @@ -781,6 +802,7 @@ E7A30F049D2580DA00000000 E7A30F04D6F14E1000000000 E7A30F04A889192100000000 + E7A30F0489A0042800000000 name Fake Swift Dependencies (Copy Files Phase) diff --git a/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift b/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift index 964b471071..445a8ffbb3 100644 --- a/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift +++ b/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift @@ -9,6 +9,7 @@ import TelegramPresentationData import AccountContext import LocalAuth import AppBundle +import PasscodeInputFieldNode private let titleFont = Font.regular(20.0) private let subtitleFont = Font.regular(15.0) @@ -29,7 +30,7 @@ final class PasscodeEntryControllerNode: ASDisplayNode { private let backgroundNode: ASImageNode private let iconNode: PasscodeLockIconNode private let titleNode: PasscodeEntryLabelNode - private let inputFieldNode: PasscodeEntryInputFieldNode + private let inputFieldNode: PasscodeInputFieldNode private let subtitleNode: PasscodeEntryLabelNode private let keyboardNode: PasscodeEntryKeyboardNode private let cancelButtonNode: HighlightableButtonNode @@ -62,7 +63,7 @@ final class PasscodeEntryControllerNode: ASDisplayNode { self.iconNode = PasscodeLockIconNode() self.titleNode = PasscodeEntryLabelNode() - self.inputFieldNode = PasscodeEntryInputFieldNode(color: .white, accentColor: .white, fieldType: passcodeType, keyboardAppearance: .dark, useCustomNumpad: true) + self.inputFieldNode = PasscodeInputFieldNode(color: .white, accentColor: .white, fieldType: passcodeType, keyboardAppearance: .dark, useCustomNumpad: true) self.subtitleNode = PasscodeEntryLabelNode() self.keyboardNode = PasscodeEntryKeyboardNode() self.cancelButtonNode = HighlightableButtonNode() @@ -188,7 +189,7 @@ final class PasscodeEntryControllerNode: ASDisplayNode { if let background = self.background { self.backgroundNode.image = background.backgroundImage self.keyboardNode.updateBackground(background) - self.inputFieldNode.updateBackground(background) + self.inputFieldNode.updateBackground(background.foregroundImage, size: background.size) } } @@ -346,7 +347,7 @@ final class PasscodeEntryControllerNode: ASDisplayNode { let passcodeLayout = PasscodeLayout(layout: layout) - let inputFieldFrame = self.inputFieldNode.updateLayout(layout: passcodeLayout, transition: transition) + let inputFieldFrame = self.inputFieldNode.updateLayout(layout: passcodeLayout.layout, topOffset: passcodeLayout.inputFieldOffset, transition: transition) transition.updateFrame(node: self.inputFieldNode, frame: CGRect(origin: CGPoint(), size: layout.size)) let titleSize = self.titleNode.updateLayout(layout: layout, transition: transition) diff --git a/submodules/PasscodeUI/Sources/PasscodeInputFieldNode.swift b/submodules/PasscodeUI/Sources/PasscodeInputFieldNode.swift new file mode 100644 index 0000000000..8e899a6421 --- /dev/null +++ b/submodules/PasscodeUI/Sources/PasscodeInputFieldNode.swift @@ -0,0 +1,382 @@ +import Foundation +import UIKit +import AsyncDisplayKit +import Display +import SwiftSignalKit + +private let dotDiameter: CGFloat = 13.0 +private let dotSpacing: CGFloat = 24.0 +private let fieldHeight: CGFloat = 38.0 + +private func generateDotImage(color: UIColor, filled: Bool) -> UIImage? { + return generateImage(CGSize(width: dotDiameter, height: dotDiameter), contextGenerator: { size, context in + let bounds = CGRect(origin: CGPoint(), size: size) + context.clear(bounds) + + if filled { + context.setFillColor(color.cgColor) + context.fillEllipse(in: bounds) + } else { + context.setStrokeColor(color.cgColor) + context.setLineWidth(1.0) + context.strokeEllipse(in: bounds.insetBy(dx: 0.5, dy: 0.5)) + } + }) +} + +private func generateFieldBackgroundImage(backgroundImage: UIImage, backgroundSize: CGSize, frame: CGRect) -> UIImage? { + return generateImage(frame.size, contextGenerator: { size, context in + let bounds = CGRect(origin: CGPoint(), size: size) + context.clear(bounds) + + let relativeFrame = CGRect(x: -frame.minX, y: frame.minY - backgroundSize.height + frame.size.height + , width: backgroundSize.width, height: backgroundSize.height) + + let path = UIBezierPath(roundedRect: CGRect(x: 0.0, y: 0.0, width: size.width, height: size.height), cornerRadius: 6.0) + context.addPath(path.cgPath) + context.clip() + + context.draw(backgroundImage.cgImage!, in: relativeFrame) + + context.setBlendMode(.clear) + context.setFillColor(UIColor.clear.cgColor) + + let innerPath = UIBezierPath(roundedRect: CGRect(x: 1.0, y: 1.0, width: size.width - 2.0, height: size.height - 2.0), cornerRadius: 6.0) + context.addPath(innerPath.cgPath) + context.fillPath() + }) +} + +private let validDigitsSet: CharacterSet = { + return CharacterSet(charactersIn: "0".unicodeScalars.first! ... "9".unicodeScalars.first!) +}() + +public enum PasscodeEntryFieldType { + case digits6 + case digits4 + case alphanumeric + + public var maxLength: Int? { + switch self { + case .digits6: + return 6 + case .digits4: + return 4 + case .alphanumeric: + return nil + } + } + + public var allowedCharacters: CharacterSet? { + switch self { + case .digits6, .digits4: + return validDigitsSet + case .alphanumeric: + return nil + } + } + + public var keyboardType: UIKeyboardType { + switch self { + case .digits6, .digits4: + if #available(iOS 10.0, *) { + return .asciiCapableNumberPad + } else { + return .numberPad + } + case .alphanumeric: + return .default + } + } +} + +private class PasscodeEntryInputView: UIView { + +} + +private class PasscodeEntryDotNode: ASImageNode { + private let regularImage: UIImage + private let filledImage: UIImage + private var currentImage: UIImage + + init(color: UIColor) { + self.regularImage = generateDotImage(color: color, filled: false)! + self.filledImage = generateDotImage(color: color, filled: true)! + self.currentImage = self.regularImage + + super.init() + + self.image = self.currentImage + } + + func updateState(filled: Bool, animated: Bool = false, delay: Double = 0.0) { + let image = filled ? self.filledImage : self.regularImage + if self.currentImage !== image { + let currentContents = self.layer.contents + self.layer.removeAnimation(forKey: "contents") + if let currentContents = currentContents, animated { + self.layer.animate(from: currentContents as AnyObject, to: image.cgImage!, keyPath: "contents", timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, duration: image === self.regularImage ? 0.25 : 0.05, delay: delay, removeOnCompletion: false, completion: { finished in + if finished { + self.image = image + } + }) + } else { + self.image = image + } + self.currentImage = image + } + } +} + +public final class PasscodeInputFieldNode: ASDisplayNode, UITextFieldDelegate { + private var background: (UIImage, CGSize)? + private var color: UIColor + private var accentColor: UIColor + private var fieldType: PasscodeEntryFieldType + private let useCustomNumpad: Bool + + private let textFieldNode: TextFieldNode + private let borderNode: ASImageNode + private let dotNodes: [PasscodeEntryDotNode] + + private var validLayout: (ContainerViewLayout, CGFloat)? + + public var complete: ((String) -> Void)? + + public var text: String { + return self.textFieldNode.textField.text ?? "" + } + + public var keyboardAppearance: UIKeyboardAppearance { + didSet { + self.textFieldNode.textField.keyboardAppearance = self.keyboardAppearance + } + } + + public init(color: UIColor, accentColor: UIColor, fieldType: PasscodeEntryFieldType, keyboardAppearance: UIKeyboardAppearance, useCustomNumpad: Bool = false) { + self.color = color + self.accentColor = accentColor + self.fieldType = fieldType + self.keyboardAppearance = keyboardAppearance + self.useCustomNumpad = useCustomNumpad + + self.textFieldNode = TextFieldNode() + self.borderNode = ASImageNode() + self.dotNodes = (0 ..< 6).map { _ in PasscodeEntryDotNode(color: color) } + + super.init() + + self.isUserInteractionEnabled = false + + for node in self.dotNodes { + self.addSubnode(node) + } + self.addSubnode(self.textFieldNode) + self.addSubnode(self.borderNode) + } + + override public func didLoad() { + super.didLoad() + + self.textFieldNode.textField.isSecureTextEntry = true + self.textFieldNode.textField.textColor = self.color + self.textFieldNode.textField.delegate = self + self.textFieldNode.textField.returnKeyType = .done + self.textFieldNode.textField.tintColor = self.accentColor + self.textFieldNode.textField.keyboardAppearance = self.keyboardAppearance + self.textFieldNode.textField.keyboardType = self.fieldType.keyboardType + self.textFieldNode.textField.tintColor = self.accentColor + + if self.useCustomNumpad { + switch self.fieldType { + case .digits6, .digits4: + self.textFieldNode.textField.inputView = PasscodeEntryInputView() + case .alphanumeric: + break + } + } + } + + func updateFieldType(_ fieldType: PasscodeEntryFieldType, animated: Bool) { + self.fieldType = fieldType + + self.textFieldNode.textField.keyboardType = self.fieldType.keyboardType + + if let (layout, topOffset) = self.validLayout { + let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: animated ? .animated(duration: 0.25, curve: .easeInOut) : .immediate) + } + } + + func updateBackground(_ image: UIImage, size: CGSize) { + self.background = (image, size) + if let (layout, topOffset) = self.validLayout { + let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: .immediate) + } + } + + public func activateInput() { + self.textFieldNode.textField.becomeFirstResponder() + } + + func animateIn() { + switch self.fieldType { + case .digits6, .digits4: + for node in self.dotNodes { + node.layer.animateScale(from: 0.0001, to: 1.0, duration: 0.25, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue) + } + case .alphanumeric: + self.textFieldNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue) + self.borderNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue) + } + } + + func animateSuccess() { + switch self.fieldType { + case .digits6, .digits4: + var delay: Double = 0.0 + for node in self.dotNodes { + node.updateState(filled: true, animated: true, delay: delay) + delay += 0.01 + } + case .alphanumeric: + if (self.textFieldNode.textField.text ?? "").isEmpty { + self.textFieldNode.textField.text = "passwordpassword" + } + } + } + + public func reset(animated: Bool = true) { + var delay: Double = 0.0 + for node in self.dotNodes.reversed() { + if node.alpha < 1.0 { + continue + } + + node.updateState(filled: false, animated: animated, delay: delay) + delay += 0.05 + } + self.textFieldNode.textField.text = "" + } + + func append(_ string: String) { + var text = (self.textFieldNode.textField.text ?? "") + string + let maxLength = self.fieldType.maxLength + if let maxLength = maxLength, text.count > maxLength { + return + } + self.textFieldNode.textField.text = text + + text = self.textFieldNode.textField.text ?? "" + string + self.updateDots(count: text.count, animated: false) + + if let maxLength = maxLength, text.count == maxLength { + Queue.mainQueue().after(0.2) { + self.complete?(text) + } + } + } + + func delete() { + var text = self.textFieldNode.textField.text ?? "" + guard !text.isEmpty else { + return + } + text = String(text[text.startIndex ..< text.index(text.endIndex, offsetBy: -1)]) + self.textFieldNode.textField.text = text + self.updateDots(count: text.count, animated: true) + } + + func updateDots(count: Int, animated: Bool) { + var i = -1 + for node in self.dotNodes { + if node.alpha < 1.0 { + continue + } + i += 1 + node.updateState(filled: i < count, animated: animated) + } + } + + public func update(fieldType: PasscodeEntryFieldType) { + if fieldType != self.fieldType { + self.textFieldNode.textField.text = "" + } + self.fieldType = fieldType + if let (layout, topOffset) = self.validLayout { + let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: .immediate) + } + } + + public func updateLayout(layout: ContainerViewLayout, topOffset: CGFloat, transition: ContainedViewLayoutTransition) -> CGRect { + self.validLayout = (layout, topOffset) + + let fieldAlpha: CGFloat + switch self.fieldType { + case .digits6, .digits4: + fieldAlpha = 0.0 + case .alphanumeric: + fieldAlpha = 1.0 + } + + transition.updateAlpha(node: self.textFieldNode, alpha: fieldAlpha) + transition.updateAlpha(node: self.borderNode, alpha: fieldAlpha) + + let origin = CGPoint(x: floor((layout.size.width - dotDiameter * 6 - dotSpacing * 5) / 2.0), y: topOffset) + for i in 0 ..< self.dotNodes.count { + let node = self.dotNodes[i] + let dotAlpha: CGFloat + switch self.fieldType { + case .digits6: + dotAlpha = 1.0 + case .digits4: + dotAlpha = (i > 0 && i < self.dotNodes.count - 1) ? 1.0 : 0.0 + case .alphanumeric: + dotAlpha = 0.0 + } + transition.updateAlpha(node: node, alpha: dotAlpha) + + let dotFrame = CGRect(x: origin.x + CGFloat(i) * (dotDiameter + dotSpacing), y: origin.y, width: dotDiameter, height: dotDiameter) + transition.updateFrame(node: node, frame: dotFrame) + } + + var inset: CGFloat = 50.0 + if !self.useCustomNumpad { + inset = 16.0 + } + let fieldFrame = CGRect(x: inset, y: origin.y, width: layout.size.width - inset * 2.0, height: fieldHeight) + transition.updateFrame(node: self.borderNode, frame: fieldFrame) + transition.updateFrame(node: self.textFieldNode, frame: fieldFrame.insetBy(dx: 13.0, dy: 0.0)) + if let (backgroundImage, backgroundSize) = self.background { + self.borderNode.image = generateFieldBackgroundImage(backgroundImage: backgroundImage, backgroundSize: backgroundSize, frame: fieldFrame) + } + + return fieldFrame + } + + public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { + let currentText = textField.text ?? "" + let text = (currentText as NSString).replacingCharacters(in: range, with: string) + if let maxLength = self.fieldType.maxLength, text.count > maxLength { + return false + } + if let allowedCharacters = self.fieldType.allowedCharacters, let _ = text.rangeOfCharacter(from: allowedCharacters.inverted) { + return false + } + self.updateDots(count: text.count, animated: text.count < currentText.count) + + if string == "\n" { + Queue.mainQueue().after(0.2) { + self.complete?(currentText) + } + return false + } + + if let maxLength = self.fieldType.maxLength, text.count == maxLength { + Queue.mainQueue().after(0.2) { + self.complete?(text) + } + } + return true + } +} + diff --git a/submodules/PasscodeUI/Sources/PasscodeSetupControllerNode.swift b/submodules/PasscodeUI/Sources/PasscodeSetupControllerNode.swift index e59a0f9749..41ed465470 100644 --- a/submodules/PasscodeUI/Sources/PasscodeSetupControllerNode.swift +++ b/submodules/PasscodeUI/Sources/PasscodeSetupControllerNode.swift @@ -4,6 +4,7 @@ import AsyncDisplayKit import Display import TelegramCore import TelegramPresentationData +import PasscodeInputFieldNode enum PasscodeSetupInitialState { case createPasscode @@ -36,7 +37,7 @@ final class PasscodeSetupControllerNode: ASDisplayNode { private let titleNode: ASTextNode private let subtitleNode: ASTextNode - private let inputFieldNode: PasscodeEntryInputFieldNode + private let inputFieldNode: PasscodeInputFieldNode private let inputFieldBackgroundNode: ASImageNode private let modeButtonNode: HighlightableButtonNode @@ -82,7 +83,7 @@ final class PasscodeSetupControllerNode: ASDisplayNode { passcodeType = .digits6 } - self.inputFieldNode = PasscodeEntryInputFieldNode(color: self.presentationData.theme.list.itemPrimaryTextColor, accentColor: self.presentationData.theme.list.itemAccentColor, fieldType: passcodeType, keyboardAppearance: self.presentationData.theme.rootController.keyboardColor.keyboardAppearance) + self.inputFieldNode = PasscodeInputFieldNode(color: self.presentationData.theme.list.itemPrimaryTextColor, accentColor: self.presentationData.theme.list.itemAccentColor, fieldType: passcodeType, keyboardAppearance: self.presentationData.theme.rootController.keyboardColor.keyboardAppearance) self.inputFieldBackgroundNode = ASImageNode() self.inputFieldBackgroundNode.alpha = passcodeType == .alphanumeric ? 1.0 : 0.0 self.inputFieldBackgroundNode.contentMode = .scaleToFill @@ -145,8 +146,7 @@ final class PasscodeSetupControllerNode: ASDisplayNode { self.wrapperNode.frame = CGRect(x: 0.0, y: 0.0, width: layout.size.width, height: layout.size.height) - let passcodeLayout = PasscodeLayout(layout: layout, titleOffset: 0.0, subtitleOffset: 0.0, inputFieldOffset: floor(insets.top + navigationBarHeight + (layout.size.height - navigationBarHeight - insets.top - insets.bottom - 24.0) / 2.0)) - let inputFieldFrame = self.inputFieldNode.updateLayout(layout: passcodeLayout, transition: transition) + let inputFieldFrame = self.inputFieldNode.updateLayout(layout: layout, topOffset: floor(insets.top + navigationBarHeight + (layout.size.height - navigationBarHeight - insets.top - insets.bottom - 24.0) / 2.0), transition: transition) transition.updateFrame(node: self.inputFieldNode, frame: CGRect(origin: CGPoint(), size: layout.size)) transition.updateFrame(node: self.inputFieldBackgroundNode, frame: CGRect(x: 0.0, y: inputFieldFrame.minY - 6.0, width: layout.size.width, height: 48.0)) diff --git a/submodules/SettingsUI/SettingsUI.xcodeproj/project.pbxproj b/submodules/SettingsUI/SettingsUI.xcodeproj/project.pbxproj index dbbce2fb6b..4a3bb76ff3 100644 --- a/submodules/SettingsUI/SettingsUI.xcodeproj/project.pbxproj +++ b/submodules/SettingsUI/SettingsUI.xcodeproj/project.pbxproj @@ -832,6 +832,19 @@ explicitFileType archive.ar + 1DD70E2989A0042800000000 + + isa + PBXFileReference + name + libPasscodeInputFieldNode.a + path + libPasscodeInputFieldNode.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + 1DD70E29D0DBC52A00000000 isa @@ -1602,6 +1615,7 @@ 1DD70E2937C1167400000000 1DD70E29AF00DC4900000000 1DD70E29BBAF750C00000000 + 1DD70E2989A0042800000000 1DD70E29D0DBC52A00000000 1DD70E29300245BE00000000 1DD70E299856EB2400000000 @@ -4691,6 +4705,13 @@ fileRef 1DD70E2937C1167400000000 + E7A30F0489A0042800000000 + + isa + PBXBuildFile + fileRef + 1DD70E2989A0042800000000 + E7A30F04D0DBC52A00000000 isa @@ -4899,6 +4920,7 @@ E7A30F04A889192100000000 E7A30F04A3994F2C00000000 E7A30F0437C1167400000000 + E7A30F0489A0042800000000 E7A30F04D0DBC52A00000000 E7A30F0479E58A0000000000 E7A30F049856EB2400000000 diff --git a/submodules/TelegramUI/Images.xcassets/Settings/Test.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Settings/Test.imageset/Contents.json deleted file mode 100644 index 77b88f3827..0000000000 --- a/submodules/TelegramUI/Images.xcassets/Settings/Test.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "Test.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/submodules/TelegramUI/Images.xcassets/Settings/Test.imageset/Test.png b/submodules/TelegramUI/Images.xcassets/Settings/Test.imageset/Test.png deleted file mode 100644 index ef1d2a37101335fdac15758ef41bd6669a7ac579..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109352 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 (self.titleNode.frame.maxY - navigationHeight) ? 1.0 : 0.0 - if self.navigationBackgroundNode.alpha != alpha { - let transition: ContainedViewLayoutTransition = .animated(duration: 0.12, curve: .easeInOut) - transition.updateAlpha(node: self.navigationBackgroundNode, alpha: alpha, beginWithCurrentState: true) - } + self.addSubnode(self.titleNode) + self.addSubnode(self.textNode) } func containerLayoutUpdated(layout: ContainerViewLayout, navigationHeight: CGFloat, transition: ContainedViewLayoutTransition) { self.navigationHeight = navigationHeight let sideInset: CGFloat = 32.0 - let buttonSideInset: CGFloat = 48.0 - let iconSpacing: CGFloat = 5.0 let titleSpacing: CGFloat = 19.0 let textSpacing: CGFloat = 37.0 - let buttonHeight: CGFloat = 50.0 - let buttonSpacing: CGFloat = 45.0 - let wordSpacing: CGFloat = 12.0 - let indexSpacing: CGFloat = 4.0 - - transition.updateFrame(node: self.navigationBackgroundNode, frame: CGRect(origin: CGPoint(), size: CGSize(width: layout.size.width, height: navigationHeight))) - transition.updateFrame(node: self.navigationSeparatorNode, frame: CGRect(origin: CGPoint(x: 0.0, y: navigationHeight), size: CGSize(width: layout.size.width, height: UIScreenPixel))) - - transition.updateFrame(node: self.scrollNode, frame: CGRect(origin: CGPoint(), size: layout.size)) - - let iconSize = self.iconNode.image?.size ?? CGSize(width: 50.0, height: 50.0) let titleSize = self.titleNode.updateLayout(CGSize(width: layout.size.width - sideInset * 2.0, height: layout.size.height)) - let navigationTitleSize = self.navigationTitleNode.updateLayout(CGSize(width: layout.size.width - sideInset * 2.0, height: layout.size.height)) let textSize = self.textNode.updateLayout(CGSize(width: layout.size.width - sideInset * 2.0, height: layout.size.height)) var contentHeight: CGFloat = 0.0 let contentVerticalOrigin = navigationHeight + 10.0 - let iconFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - iconSize.width) / 2.0), y: contentVerticalOrigin), size: iconSize) - transition.updateFrameAdditive(node: self.iconNode, frame: iconFrame) - let titleFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - titleSize.width) / 2.0), y: iconFrame.maxY + iconSpacing), size: titleSize) + let titleFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - titleSize.width) / 2.0), y: contentVerticalOrigin), size: titleSize) transition.updateFrameAdditive(node: self.titleNode, frame: titleFrame) let textFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - textSize.width) / 2.0), y: titleFrame.maxY + titleSpacing), size: textSize) transition.updateFrameAdditive(node: self.textNode, frame: textFrame) - transition.updateFrameAdditive(node: self.navigationTitleNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - navigationTitleSize.width) / 2.0), y: navigationHeight - 44.0 + floor((44.0 - navigationTitleSize.height) / 2.0)), size: navigationTitleSize)) - contentHeight = textFrame.maxY + textSpacing } } diff --git a/submodules/WalletUI/WalletUI.xcodeproj/project.pbxproj b/submodules/WalletUI/WalletUI.xcodeproj/project.pbxproj index 554ce1660e..0bc91d1cfb 100644 --- a/submodules/WalletUI/WalletUI.xcodeproj/project.pbxproj +++ b/submodules/WalletUI/WalletUI.xcodeproj/project.pbxproj @@ -299,19 +299,6 @@ explicitFileType archive.ar - 1DD70E29A889192100000000 - - isa - PBXFileReference - name - libLocalAuth.a - path - libLocalAuth.a - sourceTree - BUILT_PRODUCTS_DIR - explicitFileType - archive.ar - 1DD70E29CE34063500000000 isa @@ -364,14 +351,14 @@ explicitFileType archive.ar - 1DD70E29D0DBC52A00000000 + 1DD70E2989A0042800000000 isa PBXFileReference name - libPasscodeUI.a + libPasscodeInputFieldNode.a path - libPasscodeUI.a + libPasscodeInputFieldNode.a sourceTree BUILT_PRODUCTS_DIR explicitFileType @@ -768,12 +755,11 @@ 1DD70E29D6F14E1000000000 1DD70E295A26607D00000000 1DD70E29AC43662400000000 - 1DD70E29A889192100000000 1DD70E29CE34063500000000 1DD70E2936DE2CF900000000 1DD70E29C37F741500000000 1DD70E29BBAF750C00000000 - 1DD70E29D0DBC52A00000000 + 1DD70E2989A0042800000000 1DD70E29928D142900000000 1DD70E29D233F68C00000000 1DD70E290F1A3C6400000000 @@ -1363,19 +1349,12 @@ fileRef 1DD70E29BBAF750C00000000 - E7A30F04A889192100000000 + E7A30F0489A0042800000000 isa PBXBuildFile fileRef - 1DD70E29A889192100000000 - - E7A30F04D0DBC52A00000000 - - isa - PBXBuildFile - fileRef - 1DD70E29D0DBC52A00000000 + 1DD70E2989A0042800000000 E7A30F04AA32BBC600000000 @@ -1546,8 +1525,7 @@ E7A30F0425BBFEEE00000000 E7A30F045A26607D00000000 E7A30F04BBAF750C00000000 - E7A30F04A889192100000000 - E7A30F04D0DBC52A00000000 + E7A30F0489A0042800000000 E7A30F04AA32BBC600000000 E7A30F04A54A195300000000 E7A30F041E16CC6C00000000