From 00a224aecb8eb2ad7bff0b4eb028dcf65c108be5 Mon Sep 17 00:00:00 2001 From: overtake Date: Wed, 30 Jun 2021 22:55:53 +0300 Subject: [PATCH 01/26] no message --- .../Sources/GroupCallContext.swift | 43 +++---------------- .../OngoingCallThreadLocalContext.h | 2 + .../Sources/OngoingCallThreadLocalContext.mm | 4 +- 3 files changed, 11 insertions(+), 38 deletions(-) diff --git a/submodules/TelegramVoip/Sources/GroupCallContext.swift b/submodules/TelegramVoip/Sources/GroupCallContext.swift index 98f829d5e3..68e4900a64 100644 --- a/submodules/TelegramVoip/Sources/GroupCallContext.swift +++ b/submodules/TelegramVoip/Sources/GroupCallContext.swift @@ -601,44 +601,15 @@ public final class OngoingGroupCallContext { mainView?.setOnIsMirroredUpdated { value in f?(value) } + }, + setIsPaused: { [weak mainView] paused in + mainView?.setIsPaused(paused) + }, + renderToSize: { [weak mainView] size, animated in + mainView?.render(to: size, animated: animated) } ) - var cloneVideoView: OngoingCallContextPresentationCallVideoView? - if let cloneView = cloneView { - cloneVideoView = OngoingCallContextPresentationCallVideoView( - view: cloneView, - setOnFirstFrameReceived: { [weak cloneView] f in - cloneView?.setOnFirstFrameReceived(f) - }, - getOrientation: { [weak cloneView] in - if let cloneView = cloneView { - return OngoingCallVideoOrientation(cloneView.orientation) - } else { - return .rotation0 - } - }, - getAspect: { [weak cloneView] in - if let cloneView = cloneView { - return cloneView.aspect - } else { - return 0.0 - } - }, - setOnOrientationUpdated: { [weak cloneView] f in - cloneView?.setOnOrientationUpdated { value, aspect in - f?(OngoingCallVideoOrientation(value), aspect) - } - }, setVideoContentMode: { [weak cloneView] mode in - cloneView?.setVideoContentMode(mode) - }, - setOnIsMirroredUpdated: { [weak cloneView] f in - cloneView?.setOnIsMirroredUpdated { value in - f?(value) - } - } - ) - } - completion(mainVideoView, cloneVideoView) + completion(mainVideoView, nil) #endif } else { completion(nil, nil) diff --git a/submodules/TgVoipWebrtc/PublicHeaders/TgVoipWebrtc/OngoingCallThreadLocalContext.h b/submodules/TgVoipWebrtc/PublicHeaders/TgVoipWebrtc/OngoingCallThreadLocalContext.h index 6e8ca83fb0..35dbb76c1f 100644 --- a/submodules/TgVoipWebrtc/PublicHeaders/TgVoipWebrtc/OngoingCallThreadLocalContext.h +++ b/submodules/TgVoipWebrtc/PublicHeaders/TgVoipWebrtc/OngoingCallThreadLocalContext.h @@ -105,6 +105,8 @@ typedef NS_ENUM(int32_t, OngoingCallDataSavingWebrtc) { #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) - (void)setVideoContentMode:(CALayerContentsGravity _Nonnull )mode; - (void)setForceMirrored:(bool)forceMirrored; +- (void)setIsPaused:(bool)paused; +- (void)renderToSize:(NSSize)size animated: (bool)animated; #endif @end diff --git a/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm b/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm index 7f76974a47..677c41ef41 100644 --- a/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm +++ b/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm @@ -1110,8 +1110,8 @@ private: } std::vector videoCodecPreferences; - videoCodecPreferences.push_back(tgcalls::VideoCodecName::VP8); - //videoCodecPreferences.push_back(tgcalls::VideoCodecName::VP9); + videoCodecPreferences.push_back(tgcalls::VideoCodecName::H264); + //videoCodecPreferences.push_back(tgcalls::VideoCodecName::VP9);/ int minOutgoingVideoBitrateKbit = 500; From a6955ea613929eb564e93c63833d798c0ec77634 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 2 Jul 2021 16:16:36 +0400 Subject: [PATCH 02/26] Fix loading foreign channels --- .../Postbox/Sources/MessageHistoryView.swift | 6 +- submodules/Postbox/Sources/Postbox.swift | 2 +- .../State/AccountStateManagementUtils.swift | 80 +++++++++---------- .../Sources/State/AccountViewTracker.swift | 68 +++++++++++++--- .../Sources/ChatHistoryListNode.swift | 6 +- .../Sources/ChatHistoryViewForLocation.swift | 13 ++- 6 files changed, 114 insertions(+), 61 deletions(-) diff --git a/submodules/Postbox/Sources/MessageHistoryView.swift b/submodules/Postbox/Sources/MessageHistoryView.swift index 277598ec9e..4966a9dea8 100644 --- a/submodules/Postbox/Sources/MessageHistoryView.swift +++ b/submodules/Postbox/Sources/MessageHistoryView.swift @@ -904,20 +904,20 @@ public final class MessageHistoryView { public let isLoading: Bool public let isAddedToChatList: Bool - public init(tagMask: MessageTags?, namespaces: MessageIdNamespaces, entries: [MessageHistoryEntry], holeEarlier: Bool) { + public init(tagMask: MessageTags?, namespaces: MessageIdNamespaces, entries: [MessageHistoryEntry], holeEarlier: Bool, holeLater: Bool, isLoading: Bool) { self.tagMask = tagMask self.namespaces = namespaces self.anchorIndex = .lowerBound self.earlierId = nil self.laterId = nil self.holeEarlier = holeEarlier - self.holeLater = false + self.holeLater = holeLater self.entries = entries self.maxReadIndex = nil self.fixedReadStates = nil self.topTaggedMessages = [] self.additionalData = [] - self.isLoading = false + self.isLoading = isLoading self.isAddedToChatList = false } diff --git a/submodules/Postbox/Sources/Postbox.swift b/submodules/Postbox/Sources/Postbox.swift index 1a93b8aee3..b521ede4be 100644 --- a/submodules/Postbox/Sources/Postbox.swift +++ b/submodules/Postbox/Sources/Postbox.swift @@ -1172,7 +1172,7 @@ public func openPostbox(basePath: String, seedConfiguration: SeedConfiguration, #if DEBUG //debugSaveState(basePath: basePath, name: "previous1") - //debugRestoreState(basePath: basePath, name: "previous1") + debugRestoreState(basePath: basePath, name: "previous1") #endif let startTime = CFAbsoluteTimeGetCurrent() diff --git a/submodules/TelegramCore/Sources/State/AccountStateManagementUtils.swift b/submodules/TelegramCore/Sources/State/AccountStateManagementUtils.swift index b604c6b532..da360a888a 100644 --- a/submodules/TelegramCore/Sources/State/AccountStateManagementUtils.swift +++ b/submodules/TelegramCore/Sources/State/AccountStateManagementUtils.swift @@ -1676,49 +1676,49 @@ private func resolveMissingPeerChatInfos(network: Network, state: AccountMutable } } -func keepPollingChannel(postbox: Postbox, network: Network, peerId: PeerId, stateManager: AccountStateManager) -> Signal { - let signal: Signal = postbox.transaction { transaction -> Signal in - if let accountState = (transaction.getState() as? AuthorizedAccountState)?.state, let peer = transaction.getPeer(peerId) { - var channelStates: [PeerId: AccountStateChannelState] = [:] - if let channelState = transaction.getPeerChatState(peerId) as? ChannelState { - channelStates[peerId] = AccountStateChannelState(pts: channelState.pts) - } - let initialPeers: [PeerId: Peer] = [peerId: peer] - var peerChatInfos: [PeerId: PeerChatInfo] = [:] - let inclusion = transaction.getPeerChatListInclusion(peerId) - var hasValidInclusion = false - switch inclusion { - case .ifHasMessagesOrOneOf: - hasValidInclusion = true - case .notIncluded: - hasValidInclusion = false - } - if hasValidInclusion { - if let notificationSettings = transaction.getPeerNotificationSettings(peerId) as? TelegramPeerNotificationSettings { - peerChatInfos[peerId] = PeerChatInfo(notificationSettings: notificationSettings) - } - } - let initialState = AccountMutableState(initialState: AccountInitialState(state: accountState, peerIds: Set(), peerIdsRequiringLocalChatState: Set(), channelStates: channelStates, peerChatInfos: peerChatInfos, locallyGeneratedMessageTimestamps: [:], cloudReadStates: [:], channelsToPollExplicitely: Set()), initialPeers: initialPeers, initialReferencedMessageIds: Set(), initialStoredMessages: Set(), initialReadInboxMaxIds: [:], storedMessagesByPeerIdAndTimestamp: [:]) - return pollChannel(network: network, peer: peer, state: initialState) - |> mapToSignal { (finalState, _, timeout) -> Signal in - return resolveAssociatedMessages(network: network, state: finalState) - |> mapToSignal { resultingState -> Signal in - return resolveMissingPeerChatInfos(network: network, state: resultingState) - |> map { resultingState, _ -> AccountFinalState in - return AccountFinalState(state: resultingState, shouldPoll: false, incomplete: false, missingUpdatesFromChannels: Set(), discard: false) - } - } - |> mapToSignal { finalState -> Signal in - return stateManager.addReplayAsynchronouslyBuiltFinalState(finalState) - |> mapToSignal { _ -> Signal in - return .complete() |> delay(Double(timeout ?? 30), queue: Queue.concurrentDefaultQueue()) - } - } - } - } else { +func keepPollingChannel(postbox: Postbox, network: Network, peerId: PeerId, stateManager: AccountStateManager) -> Signal { + let signal: Signal = postbox.transaction { transaction -> Signal in + guard let accountState = (transaction.getState() as? AuthorizedAccountState)?.state, let peer = transaction.getPeer(peerId) else { return .complete() |> delay(30.0, queue: Queue.concurrentDefaultQueue()) } + + var channelStates: [PeerId: AccountStateChannelState] = [:] + if let channelState = transaction.getPeerChatState(peerId) as? ChannelState { + channelStates[peerId] = AccountStateChannelState(pts: channelState.pts) + } + let initialPeers: [PeerId: Peer] = [peerId: peer] + var peerChatInfos: [PeerId: PeerChatInfo] = [:] + let inclusion = transaction.getPeerChatListInclusion(peerId) + var hasValidInclusion = false + switch inclusion { + case .ifHasMessagesOrOneOf: + hasValidInclusion = true + case .notIncluded: + hasValidInclusion = false + } + if hasValidInclusion { + if let notificationSettings = transaction.getPeerNotificationSettings(peerId) as? TelegramPeerNotificationSettings { + peerChatInfos[peerId] = PeerChatInfo(notificationSettings: notificationSettings) + } + } + let initialState = AccountMutableState(initialState: AccountInitialState(state: accountState, peerIds: Set(), peerIdsRequiringLocalChatState: Set(), channelStates: channelStates, peerChatInfos: peerChatInfos, locallyGeneratedMessageTimestamps: [:], cloudReadStates: [:], channelsToPollExplicitely: Set()), initialPeers: initialPeers, initialReferencedMessageIds: Set(), initialStoredMessages: Set(), initialReadInboxMaxIds: [:], storedMessagesByPeerIdAndTimestamp: [:]) + return pollChannel(network: network, peer: peer, state: initialState) + |> mapToSignal { (finalState, _, timeout) -> Signal in + return resolveAssociatedMessages(network: network, state: finalState) + |> mapToSignal { resultingState -> Signal in + return resolveMissingPeerChatInfos(network: network, state: resultingState) + |> map { resultingState, _ -> AccountFinalState in + return AccountFinalState(state: resultingState, shouldPoll: false, incomplete: false, missingUpdatesFromChannels: Set(), discard: false) + } + } + |> mapToSignal { finalState -> Signal in + return stateManager.addReplayAsynchronouslyBuiltFinalState(finalState) + |> mapToSignal { _ -> Signal in + return .single(timeout ?? 30) |> then(.complete() |> delay(Double(timeout ?? 30), queue: Queue.concurrentDefaultQueue())) + } + } + } } |> switchToLatest |> restart diff --git a/submodules/TelegramCore/Sources/State/AccountViewTracker.swift b/submodules/TelegramCore/Sources/State/AccountViewTracker.swift index 9a91e1f4bd..5374bffdcd 100644 --- a/submodules/TelegramCore/Sources/State/AccountViewTracker.swift +++ b/submodules/TelegramCore/Sources/State/AccountViewTracker.swift @@ -224,9 +224,21 @@ private final class CachedChannelParticipantsContext { private final class ChannelPollingContext { var subscribers = Bag() let disposable = MetaDisposable() + let isUpdated = Promise(false) + + private(set) var isUpdatedValue: Bool = false + private var isUpdatedDisposable: Disposable? + + init(queue: Queue) { + self.isUpdatedDisposable = (self.isUpdated.get() + |> deliverOn(queue)).start(next: { [weak self] value in + self?.isUpdatedValue = value + }) + } deinit { self.disposable.dispose() + self.isUpdatedDisposable?.dispose() } } @@ -1302,13 +1314,27 @@ public final class AccountViewTracker { if let current = self.channelPollingContexts[peerId] { context = current } else { - context = ChannelPollingContext() + context = ChannelPollingContext(queue: self.queue) self.channelPollingContexts[peerId] = context } if context.subscribers.isEmpty { if let account = self.account { - context.disposable.set(keepPollingChannel(postbox: account.postbox, network: account.network, peerId: peerId, stateManager: account.stateManager).start()) + let queue = self.queue + context.disposable.set(keepPollingChannel(postbox: account.postbox, network: account.network, peerId: peerId, stateManager: account.stateManager).start(next: { [weak context] isValidForTimeout in + queue.async { + guard let context = context else { + return + } + context.isUpdated.set( + .single(true) + |> then( + .single(false) + |> delay(Double(isValidForTimeout), queue: queue) + ) + ) + } + })) } } @@ -1378,34 +1404,54 @@ public final class AccountViewTracker { peerId = peerIdValue } if peerId.namespace == Namespaces.Peer.CloudChannel { - return Signal { subscriber in + return Signal<(MessageHistoryView, ViewUpdateType, InitialMessageHistoryData?), NoError> { subscriber in let combinedDisposable = MetaDisposable() self.queue.async { + let polled = self.polledChannel(peerId: peerId).start() + var addHole = false + let historyIsValid: Signal if let context = self.channelPollingContexts[peerId] { - if context.subscribers.isEmpty { + if !context.isUpdatedValue { addHole = true } + historyIsValid = context.isUpdated.get() } else { addHole = true + historyIsValid = .single(true) } if addHole { let _ = self.account?.postbox.transaction({ transaction -> Void in if transaction.getPeerChatListIndex(peerId) == nil { - if let message = transaction.getTopPeerMessageId(peerId: peerId, namespace: Namespaces.Message.Cloud) { - //transaction.addHole(peerId: peerId, namespace: Namespaces.Message.Cloud, space: .everywhere, range: message.id + 1 ... (Int32.max - 1)) - } + transaction.addHole(peerId: peerId, namespace: Namespaces.Message.Cloud, space: .everywhere, range: 1 ... (Int32.max - 1)) } }).start() } - let disposable = history.start(next: { next in + + let validHistory = historyIsValid + |> distinctUntilChanged + |> take(until: { next in + if next { + return SignalTakeAction(passthrough: true, complete: true) + } else { + return SignalTakeAction(passthrough: true, complete: false) + } + }) + |> mapToSignal { isValid -> Signal<(MessageHistoryView, ViewUpdateType, InitialMessageHistoryData?), NoError> in + if isValid { + return history + } else { + let view = MessageHistoryView(tagMask: nil, namespaces: .all, entries: [], holeEarlier: true, holeLater: true, isLoading: true) + return .single((view, .Initial, nil)) + } + } + + let disposable = validHistory.start(next: { next in subscriber.putNext(next) - }, error: { error in - subscriber.putError(error) }, completed: { subscriber.putCompletion() }) - let polled = self.polledChannel(peerId: peerId).start() + combinedDisposable.set(ActionDisposable { disposable.dispose() polled.dispose() diff --git a/submodules/TelegramUI/Sources/ChatHistoryListNode.swift b/submodules/TelegramUI/Sources/ChatHistoryListNode.swift index 2954278e19..f99b7b35fc 100644 --- a/submodules/TelegramUI/Sources/ChatHistoryListNode.swift +++ b/submodules/TelegramUI/Sources/ChatHistoryListNode.swift @@ -750,7 +750,7 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode { scrollPosition = nil } - return (ChatHistoryViewUpdate.HistoryView(view: MessageHistoryView(tagMask: nil, namespaces: .all, entries: messages.reversed().map { MessageHistoryEntry(message: $0, isRead: false, location: nil, monthLocation: nil, attributes: MutableMessageHistoryEntryAttributes(authorIsContact: false)) }, holeEarlier: hasMore), type: .Generic(type: ViewUpdateType.Initial), scrollPosition: scrollPosition, flashIndicators: false, originalScrollPosition: nil, initialData: ChatHistoryCombinedInitialData(initialData: nil, buttonKeyboardMessage: nil, cachedData: nil, cachedDataMessages: nil, readStateData: nil), id: 0), version, nil) + return (ChatHistoryViewUpdate.HistoryView(view: MessageHistoryView(tagMask: nil, namespaces: .all, entries: messages.reversed().map { MessageHistoryEntry(message: $0, isRead: false, location: nil, monthLocation: nil, attributes: MutableMessageHistoryEntryAttributes(authorIsContact: false)) }, holeEarlier: hasMore, holeLater: false, isLoading: false), type: .Generic(type: ViewUpdateType.Initial), scrollPosition: scrollPosition, flashIndicators: false, originalScrollPosition: nil, initialData: ChatHistoryCombinedInitialData(initialData: nil, buttonKeyboardMessage: nil, cachedData: nil, cachedDataMessages: nil, readStateData: nil), id: 0), version, nil) } } else { historyViewUpdate = self.chatHistoryLocationPromise.get() @@ -906,9 +906,9 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode { let historyView = (strongSelf.opaqueTransactionState as? ChatHistoryTransactionOpaqueState)?.historyView let displayRange = strongSelf.displayedItemRange if let filteredEntries = historyView?.filteredEntries, let visibleRange = displayRange.visibleRange { - let lastEntry = filteredEntries[filteredEntries.count - 1 - visibleRange.lastIndex] + let firstEntry = filteredEntries[filteredEntries.count - 1 - visibleRange.firstIndex] - strongSelf.chatHistoryLocationValue = ChatHistoryLocationInput(content: .Navigation(index: .message(lastEntry.index), anchorIndex: .message(lastEntry.index), count: historyMessageCount, highlight: false), id: (strongSelf.chatHistoryLocationValue?.id).flatMap({ $0 + 1 }) ?? 0) + strongSelf.chatHistoryLocationValue = ChatHistoryLocationInput(content: .Navigation(index: .message(firstEntry.index), anchorIndex: .message(firstEntry.index), count: historyMessageCount, highlight: false), id: (strongSelf.chatHistoryLocationValue?.id).flatMap({ $0 + 1 }) ?? 0) } else { if let subject = subject, case let .message(messageId, highlight) = subject { strongSelf.chatHistoryLocationValue = ChatHistoryLocationInput(content: .InitialSearch(location: .id(messageId), count: 60, highlight: highlight), id: (strongSelf.chatHistoryLocationValue?.id).flatMap({ $0 + 1 }) ?? 0) diff --git a/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift b/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift index 85e1547ae8..6a60a30845 100644 --- a/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift +++ b/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift @@ -93,13 +93,15 @@ func chatHistoryViewForLocation(_ location: ChatHistoryLocationInput, context: A let (cachedData, cachedDataMessages, readStateData) = extractAdditionalData(view: view, chatLocation: chatLocation) let combinedInitialData = ChatHistoryCombinedInitialData(initialData: initialData, buttonKeyboardMessage: view.topTaggedMessages.first, cachedData: cachedData, cachedDataMessages: cachedDataMessages, readStateData: readStateData) + + if view.isLoading { + preloaded = false + return .Loading(initialData: combinedInitialData, type: .Generic(type: updateType)) + } if preloaded { return .HistoryView(view: view, type: .Generic(type: updateType), scrollPosition: nil, flashIndicators: false, originalScrollPosition: nil, initialData: combinedInitialData, id: location.id) } else { - if view.isLoading { - return .Loading(initialData: combinedInitialData, type: .Generic(type: updateType)) - } var scrollPosition: ChatHistoryViewScrollPosition? let canScrollToRead: Bool @@ -179,6 +181,11 @@ func chatHistoryViewForLocation(_ location: ChatHistoryLocationInput, context: A let (cachedData, cachedDataMessages, readStateData) = extractAdditionalData(view: view, chatLocation: chatLocation) let combinedInitialData = ChatHistoryCombinedInitialData(initialData: initialData, buttonKeyboardMessage: view.topTaggedMessages.first, cachedData: cachedData, cachedDataMessages: cachedDataMessages, readStateData: readStateData) + + if view.isLoading { + preloaded = false + return .Loading(initialData: combinedInitialData, type: .Generic(type: updateType)) + } if preloaded { return .HistoryView(view: view, type: .Generic(type: updateType), scrollPosition: nil, flashIndicators: false, originalScrollPosition: nil, initialData: combinedInitialData, id: location.id) From 0bf8d268ea3971af4631b13767652e70467660cc Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 2 Jul 2021 16:16:57 +0400 Subject: [PATCH 03/26] Update tgcalls --- submodules/TgVoipWebrtc/tgcalls | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/TgVoipWebrtc/tgcalls b/submodules/TgVoipWebrtc/tgcalls index f6251ca48d..76d781c09c 160000 --- a/submodules/TgVoipWebrtc/tgcalls +++ b/submodules/TgVoipWebrtc/tgcalls @@ -1 +1 @@ -Subproject commit f6251ca48df94296d63272ee9b155eec2d7964b2 +Subproject commit 76d781c09cd4d827e417a56cc7bc39b0d2217e78 From a4b40dd216c4dfb389ae093274a755bf634a9164 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 2 Jul 2021 16:35:53 +0400 Subject: [PATCH 04/26] Update API --- submodules/TelegramApi/Sources/Api0.swift | 8 +- submodules/TelegramApi/Sources/Api2.swift | 36 +++++ submodules/TelegramApi/Sources/Api4.swift | 134 ++++++++++++++++-- submodules/TelegramCore/Sources/Account.swift | 3 +- .../TelegramCore/Sources/Authorization.swift | 38 +---- .../Sources/TwoStepVerification.swift | 8 +- .../AuthorizationSequenceController.swift | 26 +--- 7 files changed, 175 insertions(+), 78 deletions(-) diff --git a/submodules/TelegramApi/Sources/Api0.swift b/submodules/TelegramApi/Sources/Api0.swift index 3c9df65cf7..57f1f4c9d9 100644 --- a/submodules/TelegramApi/Sources/Api0.swift +++ b/submodules/TelegramApi/Sources/Api0.swift @@ -281,6 +281,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[2146218476] = { return Api.Update.parse_updateChannelParticipant($0) } dict[133777546] = { return Api.Update.parse_updateBotStopped($0) } dict[192428418] = { return Api.Update.parse_updateGroupCallConnection($0) } + dict[-813823885] = { return Api.Update.parse_updateBotCommands($0) } dict[136574537] = { return Api.messages.VotesList.parse_votesList($0) } dict[1558266229] = { return Api.PopularContact.parse_popularContact($0) } dict[-592373577] = { return Api.GroupCallParticipantVideoSourceGroup.parse_groupCallParticipantVideoSourceGroup($0) } @@ -557,6 +558,9 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[182649427] = { return Api.MessageRange.parse_messageRange($0) } dict[946083368] = { return Api.messages.StickerSetInstallResult.parse_stickerSetInstallResultSuccess($0) } dict[904138920] = { return Api.messages.StickerSetInstallResult.parse_stickerSetInstallResultArchive($0) } + dict[-478701471] = { return Api.account.ResetPasswordResult.parse_resetPasswordFailedWait($0) } + dict[-370148227] = { return Api.account.ResetPasswordResult.parse_resetPasswordRequestedWait($0) } + dict[-383330754] = { return Api.account.ResetPasswordResult.parse_resetPasswordOk($0) } dict[856375399] = { return Api.Config.parse_config($0) } dict[-75283823] = { return Api.TopPeerCategoryPeers.parse_topPeerCategoryPeers($0) } dict[-1107729093] = { return Api.Game.parse_game($0) } @@ -795,7 +799,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[-1908627474] = { return Api.SecureValueType.parse_secureValueTypeEmail($0) } dict[-732254058] = { return Api.PasswordKdfAlgo.parse_passwordKdfAlgoUnknown($0) } dict[982592842] = { return Api.PasswordKdfAlgo.parse_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow($0) } - dict[-1390001672] = { return Api.account.Password.parse_password($0) } + dict[408623183] = { return Api.account.Password.parse_password($0) } dict[-2000710887] = { return Api.InputBotInlineResult.parse_inputBotInlineResult($0) } dict[-1462213465] = { return Api.InputBotInlineResult.parse_inputBotInlineResultPhoto($0) } dict[-459324] = { return Api.InputBotInlineResult.parse_inputBotInlineResultDocument($0) } @@ -1313,6 +1317,8 @@ public struct Api { _1.serialize(buffer, boxed) case let _1 as Api.messages.StickerSetInstallResult: _1.serialize(buffer, boxed) + case let _1 as Api.account.ResetPasswordResult: + _1.serialize(buffer, boxed) case let _1 as Api.Config: _1.serialize(buffer, boxed) case let _1 as Api.TopPeerCategoryPeers: diff --git a/submodules/TelegramApi/Sources/Api2.swift b/submodules/TelegramApi/Sources/Api2.swift index 6c382b818b..597f5d0fe5 100644 --- a/submodules/TelegramApi/Sources/Api2.swift +++ b/submodules/TelegramApi/Sources/Api2.swift @@ -4690,6 +4690,7 @@ public extension Api { case updateChannelParticipant(flags: Int32, channelId: Int32, date: Int32, actorId: Int32, userId: Int32, prevParticipant: Api.ChannelParticipant?, newParticipant: Api.ChannelParticipant?, invite: Api.ExportedChatInvite?, qts: Int32) case updateBotStopped(userId: Int32, date: Int32, stopped: Api.Bool, qts: Int32) case updateGroupCallConnection(flags: Int32, params: Api.DataJSON) + case updateBotCommands(peer: Api.Peer, botId: Int32, commands: [Api.BotCommand]) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { switch self { @@ -5492,6 +5493,18 @@ public extension Api { serializeInt32(flags, buffer: buffer, boxed: false) params.serialize(buffer, true) break + case .updateBotCommands(let peer, let botId, let commands): + if boxed { + buffer.appendInt32(-813823885) + } + peer.serialize(buffer, true) + serializeInt32(botId, buffer: buffer, boxed: false) + buffer.appendInt32(481674261) + buffer.appendInt32(Int32(commands.count)) + for item in commands { + item.serialize(buffer, true) + } + break } } @@ -5681,6 +5694,8 @@ public extension Api { return ("updateBotStopped", [("userId", userId), ("date", date), ("stopped", stopped), ("qts", qts)]) case .updateGroupCallConnection(let flags, let params): return ("updateGroupCallConnection", [("flags", flags), ("params", params)]) + case .updateBotCommands(let peer, let botId, let commands): + return ("updateBotCommands", [("peer", peer), ("botId", botId), ("commands", commands)]) } } @@ -7319,6 +7334,27 @@ public extension Api { return nil } } + public static func parse_updateBotCommands(_ reader: BufferReader) -> Update? { + var _1: Api.Peer? + if let signature = reader.readInt32() { + _1 = Api.parse(reader, signature: signature) as? Api.Peer + } + var _2: Int32? + _2 = reader.readInt32() + var _3: [Api.BotCommand]? + if let _ = reader.readInt32() { + _3 = Api.parseVector(reader, elementSignature: 0, elementType: Api.BotCommand.self) + } + let _c1 = _1 != nil + let _c2 = _2 != nil + let _c3 = _3 != nil + if _c1 && _c2 && _c3 { + return Api.Update.updateBotCommands(peer: _1!, botId: _2!, commands: _3!) + } + else { + return nil + } + } } public enum PopularContact: TypeConstructorDescription { diff --git a/submodules/TelegramApi/Sources/Api4.swift b/submodules/TelegramApi/Sources/Api4.swift index 3e7bdcfd25..fbbd0ce0df 100644 --- a/submodules/TelegramApi/Sources/Api4.swift +++ b/submodules/TelegramApi/Sources/Api4.swift @@ -1171,6 +1171,72 @@ public struct account { } } + } + public enum ResetPasswordResult: TypeConstructorDescription { + case resetPasswordFailedWait(retryDate: Int32) + case resetPasswordRequestedWait(untilDate: Int32) + case resetPasswordOk + + public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { + switch self { + case .resetPasswordFailedWait(let retryDate): + if boxed { + buffer.appendInt32(-478701471) + } + serializeInt32(retryDate, buffer: buffer, boxed: false) + break + case .resetPasswordRequestedWait(let untilDate): + if boxed { + buffer.appendInt32(-370148227) + } + serializeInt32(untilDate, buffer: buffer, boxed: false) + break + case .resetPasswordOk: + if boxed { + buffer.appendInt32(-383330754) + } + + break + } + } + + public func descriptionFields() -> (String, [(String, Any)]) { + switch self { + case .resetPasswordFailedWait(let retryDate): + return ("resetPasswordFailedWait", [("retryDate", retryDate)]) + case .resetPasswordRequestedWait(let untilDate): + return ("resetPasswordRequestedWait", [("untilDate", untilDate)]) + case .resetPasswordOk: + return ("resetPasswordOk", []) + } + } + + public static func parse_resetPasswordFailedWait(_ reader: BufferReader) -> ResetPasswordResult? { + var _1: Int32? + _1 = reader.readInt32() + let _c1 = _1 != nil + if _c1 { + return Api.account.ResetPasswordResult.resetPasswordFailedWait(retryDate: _1!) + } + else { + return nil + } + } + public static func parse_resetPasswordRequestedWait(_ reader: BufferReader) -> ResetPasswordResult? { + var _1: Int32? + _1 = reader.readInt32() + let _c1 = _1 != nil + if _c1 { + return Api.account.ResetPasswordResult.resetPasswordRequestedWait(untilDate: _1!) + } + else { + return nil + } + } + public static func parse_resetPasswordOk(_ reader: BufferReader) -> ResetPasswordResult? { + return Api.account.ResetPasswordResult.resetPasswordOk + } + } public enum ContentSettings: TypeConstructorDescription { case contentSettings(flags: Int32) @@ -1325,13 +1391,13 @@ public struct account { } public enum Password: TypeConstructorDescription { - case password(flags: Int32, currentAlgo: Api.PasswordKdfAlgo?, srpB: Buffer?, srpId: Int64?, hint: String?, emailUnconfirmedPattern: String?, newAlgo: Api.PasswordKdfAlgo, newSecureAlgo: Api.SecurePasswordKdfAlgo, secureRandom: Buffer) + case password(flags: Int32, currentAlgo: Api.PasswordKdfAlgo?, srpB: Buffer?, srpId: Int64?, hint: String?, emailUnconfirmedPattern: String?, newAlgo: Api.PasswordKdfAlgo, newSecureAlgo: Api.SecurePasswordKdfAlgo, secureRandom: Buffer, pendingResetDate: Int32?) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { switch self { - case .password(let flags, let currentAlgo, let srpB, let srpId, let hint, let emailUnconfirmedPattern, let newAlgo, let newSecureAlgo, let secureRandom): + case .password(let flags, let currentAlgo, let srpB, let srpId, let hint, let emailUnconfirmedPattern, let newAlgo, let newSecureAlgo, let secureRandom, let pendingResetDate): if boxed { - buffer.appendInt32(-1390001672) + buffer.appendInt32(408623183) } serializeInt32(flags, buffer: buffer, boxed: false) if Int(flags) & Int(1 << 2) != 0 {currentAlgo!.serialize(buffer, true)} @@ -1342,14 +1408,15 @@ public struct account { newAlgo.serialize(buffer, true) newSecureAlgo.serialize(buffer, true) serializeBytes(secureRandom, buffer: buffer, boxed: false) + if Int(flags) & Int(1 << 5) != 0 {serializeInt32(pendingResetDate!, buffer: buffer, boxed: false)} break } } public func descriptionFields() -> (String, [(String, Any)]) { switch self { - case .password(let flags, let currentAlgo, let srpB, let srpId, let hint, let emailUnconfirmedPattern, let newAlgo, let newSecureAlgo, let secureRandom): - return ("password", [("flags", flags), ("currentAlgo", currentAlgo), ("srpB", srpB), ("srpId", srpId), ("hint", hint), ("emailUnconfirmedPattern", emailUnconfirmedPattern), ("newAlgo", newAlgo), ("newSecureAlgo", newSecureAlgo), ("secureRandom", secureRandom)]) + case .password(let flags, let currentAlgo, let srpB, let srpId, let hint, let emailUnconfirmedPattern, let newAlgo, let newSecureAlgo, let secureRandom, let pendingResetDate): + return ("password", [("flags", flags), ("currentAlgo", currentAlgo), ("srpB", srpB), ("srpId", srpId), ("hint", hint), ("emailUnconfirmedPattern", emailUnconfirmedPattern), ("newAlgo", newAlgo), ("newSecureAlgo", newSecureAlgo), ("secureRandom", secureRandom), ("pendingResetDate", pendingResetDate)]) } } @@ -1378,6 +1445,8 @@ public struct account { } var _9: Buffer? _9 = parseBytes(reader) + var _10: Int32? + if Int(_1!) & Int(1 << 5) != 0 {_10 = reader.readInt32() } let _c1 = _1 != nil let _c2 = (Int(_1!) & Int(1 << 2) == 0) || _2 != nil let _c3 = (Int(_1!) & Int(1 << 2) == 0) || _3 != nil @@ -1387,8 +1456,9 @@ public struct account { let _c7 = _7 != nil let _c8 = _8 != nil let _c9 = _9 != nil - if _c1 && _c2 && _c3 && _c4 && _c5 && _c6 && _c7 && _c8 && _c9 { - return Api.account.Password.password(flags: _1!, currentAlgo: _2, srpB: _3, srpId: _4, hint: _5, emailUnconfirmedPattern: _6, newAlgo: _7!, newSecureAlgo: _8!, secureRandom: _9!) + let _c10 = (Int(_1!) & Int(1 << 5) == 0) || _10 != nil + if _c1 && _c2 && _c3 && _c4 && _c5 && _c6 && _c7 && _c8 && _c9 && _c10 { + return Api.account.Password.password(flags: _1!, currentAlgo: _2, srpB: _3, srpId: _4, hint: _5, emailUnconfirmedPattern: _6, newAlgo: _7!, newSecureAlgo: _8!, secureRandom: _9!, pendingResetDate: _10) } else { return nil @@ -5250,11 +5320,13 @@ public extension Api { }) } - public static func recoverPassword(code: String) -> (FunctionDescription, Buffer, DeserializeFunctionResponse) { + public static func recoverPassword(flags: Int32, code: String, newSettings: Api.account.PasswordInputSettings?) -> (FunctionDescription, Buffer, DeserializeFunctionResponse) { let buffer = Buffer() - buffer.appendInt32(1319464594) + buffer.appendInt32(923364464) + serializeInt32(flags, buffer: buffer, boxed: false) serializeString(code, buffer: buffer, boxed: false) - return (FunctionDescription(name: "auth.recoverPassword", parameters: [("code", code)]), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.auth.Authorization? in + if Int(flags) & Int(1 << 0) != 0 {newSettings!.serialize(buffer, true)} + return (FunctionDescription(name: "auth.recoverPassword", parameters: [("flags", flags), ("code", code), ("newSettings", newSettings)]), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.auth.Authorization? in let reader = BufferReader(buffer) var result: Api.auth.Authorization? if let signature = reader.readInt32() { @@ -5359,6 +5431,20 @@ public extension Api { return result }) } + + public static func checkRecoveryPassword(code: String) -> (FunctionDescription, Buffer, DeserializeFunctionResponse) { + let buffer = Buffer() + buffer.appendInt32(221691769) + serializeString(code, buffer: buffer, boxed: false) + return (FunctionDescription(name: "auth.checkRecoveryPassword", parameters: [("code", code)]), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.Bool? in + let reader = BufferReader(buffer) + var result: Api.Bool? + if let signature = reader.readInt32() { + result = Api.parse(reader, signature: signature) as? Api.Bool + } + return result + }) + } } public struct bots { public static func sendCustomRequest(customMethod: String, params: Api.DataJSON) -> (FunctionDescription, Buffer, DeserializeFunctionResponse) { @@ -7502,6 +7588,34 @@ public extension Api { return result }) } + + public static func resetPassword() -> (FunctionDescription, Buffer, DeserializeFunctionResponse) { + let buffer = Buffer() + buffer.appendInt32(-1828139493) + + return (FunctionDescription(name: "account.resetPassword", parameters: []), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.account.ResetPasswordResult? in + let reader = BufferReader(buffer) + var result: Api.account.ResetPasswordResult? + if let signature = reader.readInt32() { + result = Api.parse(reader, signature: signature) as? Api.account.ResetPasswordResult + } + return result + }) + } + + public static func declinePasswordReset() -> (FunctionDescription, Buffer, DeserializeFunctionResponse) { + let buffer = Buffer() + buffer.appendInt32(1284770294) + + return (FunctionDescription(name: "account.declinePasswordReset", parameters: []), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.Bool? in + let reader = BufferReader(buffer) + var result: Api.Bool? + if let signature = reader.readInt32() { + result = Api.parse(reader, signature: signature) as? Api.Bool + } + return result + }) + } } public struct langpack { public static func getLangPack(langPack: String, langCode: String) -> (FunctionDescription, Buffer, DeserializeFunctionResponse) { diff --git a/submodules/TelegramCore/Sources/Account.swift b/submodules/TelegramCore/Sources/Account.swift index 2782aec531..808361feb3 100644 --- a/submodules/TelegramCore/Sources/Account.swift +++ b/submodules/TelegramCore/Sources/Account.swift @@ -377,8 +377,7 @@ public func twoStepAuthData(_ network: Network) -> Signal map { config -> TwoStepAuthData in switch config { - case let .password(flags, currentAlgo, srpB, srpId, hint, emailUnconfirmedPattern, newAlgo, newSecureAlgo, secureRandom/*, pendingResetDate*/): - let pendingResetDate: Int32? = nil + case let .password(flags, currentAlgo, srpB, srpId, hint, emailUnconfirmedPattern, newAlgo, newSecureAlgo, secureRandom, pendingResetDate): let hasRecovery = (flags & (1 << 0)) != 0 let hasSecureValues = (flags & (1 << 1)) != 0 diff --git a/submodules/TelegramCore/Sources/Authorization.swift b/submodules/TelegramCore/Sources/Authorization.swift index 834810a6f1..ccc03759c8 100644 --- a/submodules/TelegramCore/Sources/Authorization.swift +++ b/submodules/TelegramCore/Sources/Authorization.swift @@ -373,41 +373,7 @@ public enum PasswordRecoveryError { case generic } -public func performPasswordRecovery(accountManager: AccountManager, account: UnauthorizedAccount, code: String, syncContacts: Bool) -> Signal { - return account.network.request(Api.functions.auth.recoverPassword(code: code)) - |> mapError { error -> PasswordRecoveryError in - if error.errorDescription.hasPrefix("FLOOD_WAIT") { - return .limitExceeded - } else if error.errorDescription.hasPrefix("PASSWORD_RECOVERY_EXPIRED") { - return .expired - } else { - return .invalidCode - } - } - |> mapToSignal { result -> Signal in - return account.postbox.transaction { transaction -> Signal in - switch result { - case let .authorization(_, _, user): - let user = TelegramUser(user: user) - let state = AuthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, peerId: user.id, state: nil) - /*transaction.updatePeersInternal([user], update: { current, peer -> Peer? in - return peer - })*/ - initializedAppSettingsAfterLogin(transaction: transaction, appVersion: account.networkArguments.appVersion, syncContacts: syncContacts) - transaction.setState(state) - return accountManager.transaction { transaction -> Void in - switchToAuthorizedAccount(transaction: transaction, account: account) - } - case .authorizationSignUpRequired: - return .complete() - } - } - |> switchToLatest - |> mapError { _ -> PasswordRecoveryError in } - } -} - -/*public func checkPasswordRecoveryCode(network: Network, code: String) -> Signal { +public func checkPasswordRecoveryCode(network: Network, code: String) -> Signal { return network.request(Api.functions.auth.checkRecoveryPassword(code: code), automaticFloodWait: false) |> mapError { error -> PasswordRecoveryError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { @@ -480,7 +446,7 @@ public func performPasswordRecovery(accountManager: AccountManager, account: Una |> mapError { _ -> PasswordRecoveryError in } } } -}*/ +} public enum AccountResetError { case generic diff --git a/submodules/TelegramCore/Sources/TwoStepVerification.swift b/submodules/TelegramCore/Sources/TwoStepVerification.swift index 9348a21714..08bcc49353 100644 --- a/submodules/TelegramCore/Sources/TwoStepVerification.swift +++ b/submodules/TelegramCore/Sources/TwoStepVerification.swift @@ -18,7 +18,7 @@ public func twoStepVerificationConfiguration(account: Account) -> Signal mapError { error -> RecoverTwoStepVerificationPasswordError in if error.errorDescription.hasPrefix("FLOOD_WAIT_") { return .limitExceeded @@ -426,7 +426,7 @@ public enum RequestTwoStepPasswordResetResult { case error(reason: ErrorReason) } -/*public func requestTwoStepPasswordReset(network: Network) -> Signal { +public func requestTwoStepPasswordReset(network: Network) -> Signal { return network.request(Api.functions.account.resetPassword(), automaticFloodWait: false) |> map { _ -> RequestTwoStepPasswordResetResult in return .done @@ -462,4 +462,4 @@ public func declineTwoStepPasswordReset(network: Network) -> Signal ignoreValues -}*/ +} diff --git a/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift b/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift index a68038b33a..30c410b7dd 100644 --- a/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift +++ b/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift @@ -571,30 +571,6 @@ public final class AuthorizationSequenceController: NavigationController, MFMail controller?.inProgress = true - strongSelf.actionDisposable.set((performPasswordRecovery(accountManager: strongSelf.sharedContext.accountManager, account: strongSelf.account, code: code, syncContacts: syncContacts) |> deliverOnMainQueue).start(error: { error in - Queue.mainQueue().async { - if let strongSelf = self, let controller = controller { - controller.inProgress = false - - let text: String - switch error { - case .limitExceeded: - text = strongSelf.presentationData.strings.LoginPassword_FloodError - case .invalidCode: - text = strongSelf.presentationData.strings.Login_InvalidCodeError - case .expired: - text = strongSelf.presentationData.strings.Login_CodeExpiredError - case .generic: - text = strongSelf.presentationData.strings.Login_UnknownError - } - - controller.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: strongSelf.presentationData), title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) - } - } - })) - - /*controller?.inProgress = true - strongSelf.actionDisposable.set((checkPasswordRecoveryCode(network: strongSelf.account.network, code: code) |> deliverOnMainQueue).start(error: { error in guard let strongSelf = self, let controller = controller else { @@ -627,7 +603,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail } }) strongSelf.setViewControllers(strongSelf.viewControllers + [setupController], animated: true) - }))*/ + })) } controller.noAccess = { [weak self, weak controller] in if let strongSelf = self, let controller = controller { From 10bf97e9e01b8d3b2e744c6a3086bcb72b51b1fb Mon Sep 17 00:00:00 2001 From: overtake Date: Fri, 2 Jul 2021 15:49:51 +0300 Subject: [PATCH 05/26] metal drawing improvements --- .../TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm b/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm index 677c41ef41..33eb99070e 100644 --- a/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm +++ b/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm @@ -1110,7 +1110,7 @@ private: } std::vector videoCodecPreferences; - videoCodecPreferences.push_back(tgcalls::VideoCodecName::H264); +// videoCodecPreferences.push_back(tgcalls::VideoCodecName::H264); //videoCodecPreferences.push_back(tgcalls::VideoCodecName::VP9);/ int minOutgoingVideoBitrateKbit = 500; From 9e9af9659419ae1fed1cbec1db58843befbdf7ef Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 2 Jul 2021 17:58:30 +0400 Subject: [PATCH 06/26] Support MSG_WAIT_TIMEOUT --- .../Sources/Serialization.m | 2 +- .../MtProtoKit/MTRequestErrorContext.h | 1 + .../Sources/MTRequestMessageService.m | 45 ++++++++++++++++++- .../Sources/State/AccountViewTracker.swift | 25 ++++++++--- .../Sources/State/Serialization.swift | 2 +- .../Sources/ChatControllerNode.swift | 12 +++-- .../Sources/ChatHistoryViewForLocation.swift | 19 ++++---- 7 files changed, 84 insertions(+), 22 deletions(-) diff --git a/Telegram/NotificationService/NotificationServiceObjC/Sources/Serialization.m b/Telegram/NotificationService/NotificationServiceObjC/Sources/Serialization.m index 882de632f3..05d22b5f91 100644 --- a/Telegram/NotificationService/NotificationServiceObjC/Sources/Serialization.m +++ b/Telegram/NotificationService/NotificationServiceObjC/Sources/Serialization.m @@ -3,7 +3,7 @@ @implementation Serialization - (NSUInteger)currentLayer { - return 129; + return 131; } - (id _Nullable)parseMessage:(NSData * _Nullable)data { diff --git a/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MTRequestErrorContext.h b/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MTRequestErrorContext.h index fc190383be..b1e9361e08 100644 --- a/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MTRequestErrorContext.h +++ b/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MTRequestErrorContext.h @@ -10,5 +10,6 @@ @property (nonatomic) NSUInteger floodWaitSeconds; @property (nonatomic) bool waitingForTokenExport; +@property (nonatomic, strong) id waitingForRequestToComplete; @end diff --git a/submodules/MtProtoKit/Sources/MTRequestMessageService.m b/submodules/MtProtoKit/Sources/MTRequestMessageService.m index 2a3d4963d6..2420074e9f 100644 --- a/submodules/MtProtoKit/Sources/MTRequestMessageService.m +++ b/submodules/MtProtoKit/Sources/MTRequestMessageService.m @@ -196,6 +196,20 @@ { if (request.errorContext != nil) { + if (request.errorContext.waitingForRequestToComplete != nil) { + bool foundDependency = false; + for (MTRequest *anotherRequest in _requests) { + if (request.errorContext.waitingForRequestToComplete == anotherRequest.internalId) { + foundDependency = true; + break; + } + } + + if (!foundDependency) { + needTransaction = true; + } + } + if (request.requestContext == nil) { if (request.errorContext.minimalExecuteTime > currentTime + DBL_EPSILON) @@ -407,10 +421,23 @@ if (request.errorContext != nil) { - if (request.errorContext.minimalExecuteTime > currentTime) + if (request.errorContext.minimalExecuteTime > currentTime) { continue; - if (request.errorContext.waitingForTokenExport) + } + if (request.errorContext.waitingForTokenExport) { continue; + } + + bool foundDependency = false; + for (MTRequest *anotherRequest in _requests) { + if (request.errorContext.waitingForRequestToComplete == anotherRequest.internalId) { + foundDependency = true; + break; + } + } + if (foundDependency) { + continue; + } } if (request.requestContext == nil || (!request.requestContext.waitingForMessageId && !request.requestContext.delivered && request.requestContext.transactionId == nil)) @@ -690,6 +717,20 @@ request.errorContext.minimalExecuteTime = MAX(request.errorContext.minimalExecuteTime, MTAbsoluteSystemTime() + 2.0); } } + else if (rpcError.errorCode == 400 || [rpcError.errorDescription isEqualToString:@"MSG_WAIT_TIMEOUT"]) + { + if (request.errorContext == nil) { + request.errorContext = [[MTRequestErrorContext alloc] init]; + } + + for (MTRequest *anotherRequest in _requests) { + if (request.shouldDependOnRequest != nil && request.shouldDependOnRequest(anotherRequest)) { + request.errorContext.waitingForRequestToComplete = anotherRequest.internalId; + break; + } + } + restartRequest = true; + } else if (rpcError.errorCode == 420 || [rpcError.errorDescription rangeOfString:@"FLOOD_WAIT_"].location != NSNotFound) { if (request.errorContext == nil) diff --git a/submodules/TelegramCore/Sources/State/AccountViewTracker.swift b/submodules/TelegramCore/Sources/State/AccountViewTracker.swift index 5374bffdcd..8d32c69bee 100644 --- a/submodules/TelegramCore/Sources/State/AccountViewTracker.swift +++ b/submodules/TelegramCore/Sources/State/AccountViewTracker.swift @@ -1410,22 +1410,37 @@ public final class AccountViewTracker { let polled = self.polledChannel(peerId: peerId).start() var addHole = false - let historyIsValid: Signal + let pollingCompleted: Signal if let context = self.channelPollingContexts[peerId] { if !context.isUpdatedValue { addHole = true } - historyIsValid = context.isUpdated.get() + pollingCompleted = context.isUpdated.get() } else { addHole = true - historyIsValid = .single(true) + pollingCompleted = .single(true) } + let isAutomaticallyTracked = Promise(false) if addHole { - let _ = self.account?.postbox.transaction({ transaction -> Void in + let _ = (self.account!.postbox.transaction { transaction -> Bool in if transaction.getPeerChatListIndex(peerId) == nil { transaction.addHole(peerId: peerId, namespace: Namespaces.Message.Cloud, space: .everywhere, range: 1 ... (Int32.max - 1)) + return false + } else { + return true } - }).start() + } + |> deliverOn(self.queue)).start(next: { isTracked in + isAutomaticallyTracked.set(.single(isTracked)) + }) + } + + let historyIsValid = combineLatest(queue: self.queue, + pollingCompleted, + isAutomaticallyTracked.get() + ) + |> map { lhs, rhs -> Bool in + return lhs || rhs } let validHistory = historyIsValid diff --git a/submodules/TelegramCore/Sources/State/Serialization.swift b/submodules/TelegramCore/Sources/State/Serialization.swift index 2d992c7f59..96684c4e81 100644 --- a/submodules/TelegramCore/Sources/State/Serialization.swift +++ b/submodules/TelegramCore/Sources/State/Serialization.swift @@ -210,7 +210,7 @@ public class BoxedMessage: NSObject { public class Serialization: NSObject, MTSerialization { public func currentLayer() -> UInt { - return 130 + return 131 } public func parseMessage(_ data: Data!) -> Any! { diff --git a/submodules/TelegramUI/Sources/ChatControllerNode.swift b/submodules/TelegramUI/Sources/ChatControllerNode.swift index 4c22d96741..b49f29d649 100644 --- a/submodules/TelegramUI/Sources/ChatControllerNode.swift +++ b/submodules/TelegramUI/Sources/ChatControllerNode.swift @@ -2331,10 +2331,16 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { } else { webpage = self.chatPresentationInterfaceState.urlPreview?.1 } - #if DEBUG - //webpage = nil - #endif + messages.append(.message(text: text.string, attributes: attributes, mediaReference: webpage.flatMap(AnyMediaReference.standalone), replyToMessageId: self.chatPresentationInterfaceState.interfaceState.replyMessageId, localGroupingKey: nil, correlationId: nil)) + + #if DEBUG + if text.string == "sleep" { + messages.append(messages[0]) + messages.append(messages[0]) + messages.append(messages[0]) + } + #endif } } diff --git a/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift b/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift index 6a60a30845..7f42d9f06b 100644 --- a/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift +++ b/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift @@ -93,15 +93,13 @@ func chatHistoryViewForLocation(_ location: ChatHistoryLocationInput, context: A let (cachedData, cachedDataMessages, readStateData) = extractAdditionalData(view: view, chatLocation: chatLocation) let combinedInitialData = ChatHistoryCombinedInitialData(initialData: initialData, buttonKeyboardMessage: view.topTaggedMessages.first, cachedData: cachedData, cachedDataMessages: cachedDataMessages, readStateData: readStateData) - - if view.isLoading { - preloaded = false - return .Loading(initialData: combinedInitialData, type: .Generic(type: updateType)) - } if preloaded { return .HistoryView(view: view, type: .Generic(type: updateType), scrollPosition: nil, flashIndicators: false, originalScrollPosition: nil, initialData: combinedInitialData, id: location.id) } else { + if view.isLoading { + return .Loading(initialData: combinedInitialData, type: .Generic(type: updateType)) + } var scrollPosition: ChatHistoryViewScrollPosition? let canScrollToRead: Bool @@ -155,6 +153,12 @@ func chatHistoryViewForLocation(_ location: ChatHistoryLocationInput, context: A } else if view.isAddedToChatList, let historyScrollState = (initialData?.chatInterfaceState as? ChatInterfaceState)?.historyScrollState, tagMask == nil { scrollPosition = .positionRestoration(index: historyScrollState.messageIndex, relativeOffset: CGFloat(historyScrollState.relativeOffset)) } else { + if case .peer = chatLocation, !view.isAddedToChatList { + if view.holeEarlier && view.entries.count <= 2 { + fadeIn = true + return .Loading(initialData: combinedInitialData, type: .Generic(type: updateType)) + } + } if view.entries.isEmpty && (view.holeEarlier || view.holeLater) { fadeIn = true return .Loading(initialData: combinedInitialData, type: .Generic(type: updateType)) @@ -181,11 +185,6 @@ func chatHistoryViewForLocation(_ location: ChatHistoryLocationInput, context: A let (cachedData, cachedDataMessages, readStateData) = extractAdditionalData(view: view, chatLocation: chatLocation) let combinedInitialData = ChatHistoryCombinedInitialData(initialData: initialData, buttonKeyboardMessage: view.topTaggedMessages.first, cachedData: cachedData, cachedDataMessages: cachedDataMessages, readStateData: readStateData) - - if view.isLoading { - preloaded = false - return .Loading(initialData: combinedInitialData, type: .Generic(type: updateType)) - } if preloaded { return .HistoryView(view: view, type: .Generic(type: updateType), scrollPosition: nil, flashIndicators: false, originalScrollPosition: nil, initialData: combinedInitialData, id: location.id) From 33e1cb4f0b87d56a05302a2790ff2646ba8c25e9 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 2 Jul 2021 18:29:29 +0400 Subject: [PATCH 07/26] Fix typo --- submodules/MtProtoKit/Sources/MTRequestMessageService.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/MtProtoKit/Sources/MTRequestMessageService.m b/submodules/MtProtoKit/Sources/MTRequestMessageService.m index 2420074e9f..150b7dfc4f 100644 --- a/submodules/MtProtoKit/Sources/MTRequestMessageService.m +++ b/submodules/MtProtoKit/Sources/MTRequestMessageService.m @@ -717,7 +717,7 @@ request.errorContext.minimalExecuteTime = MAX(request.errorContext.minimalExecuteTime, MTAbsoluteSystemTime() + 2.0); } } - else if (rpcError.errorCode == 400 || [rpcError.errorDescription isEqualToString:@"MSG_WAIT_TIMEOUT"]) + else if (rpcError.errorCode == 400 && [rpcError.errorDescription isEqualToString:@"MSG_WAIT_TIMEOUT"]) { if (request.errorContext == nil) { request.errorContext = [[MTRequestErrorContext alloc] init]; From ea444a2f2df85c6508ee2380518332da974eaabd Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 2 Jul 2021 22:34:31 +0400 Subject: [PATCH 08/26] Fix chat history loading --- .../Sources/State/AccountViewTracker.swift | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/submodules/TelegramCore/Sources/State/AccountViewTracker.swift b/submodules/TelegramCore/Sources/State/AccountViewTracker.swift index 8d32c69bee..929893732b 100644 --- a/submodules/TelegramCore/Sources/State/AccountViewTracker.swift +++ b/submodules/TelegramCore/Sources/State/AccountViewTracker.swift @@ -1420,29 +1420,26 @@ public final class AccountViewTracker { addHole = true pollingCompleted = .single(true) } - let isAutomaticallyTracked = Promise(false) - if addHole { - let _ = (self.account!.postbox.transaction { transaction -> Bool in - if transaction.getPeerChatListIndex(peerId) == nil { + let isAutomaticallyTracked = self.account!.postbox.transaction { transaction -> Bool in + if transaction.getPeerChatListIndex(peerId) == nil { + if addHole { transaction.addHole(peerId: peerId, namespace: Namespaces.Message.Cloud, space: .everywhere, range: 1 ... (Int32.max - 1)) - return false - } else { - return true } + return false + } else { + return true } - |> deliverOn(self.queue)).start(next: { isTracked in - isAutomaticallyTracked.set(.single(isTracked)) - }) } let historyIsValid = combineLatest(queue: self.queue, pollingCompleted, - isAutomaticallyTracked.get() + isAutomaticallyTracked ) |> map { lhs, rhs -> Bool in return lhs || rhs } + var loaded = false let validHistory = historyIsValid |> distinctUntilChanged |> take(until: { next in @@ -1454,6 +1451,8 @@ public final class AccountViewTracker { }) |> mapToSignal { isValid -> Signal<(MessageHistoryView, ViewUpdateType, InitialMessageHistoryData?), NoError> in if isValid { + assert(!loaded) + loaded = true return history } else { let view = MessageHistoryView(tagMask: nil, namespaces: .all, entries: [], holeEarlier: true, holeLater: true, isLoading: true) From bdfd37c0521cf2f90701c091238c02e93b442e9d Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 2 Jul 2021 22:42:59 +0400 Subject: [PATCH 09/26] Remove debugging --- submodules/Postbox/Sources/Postbox.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/Postbox/Sources/Postbox.swift b/submodules/Postbox/Sources/Postbox.swift index b521ede4be..1a93b8aee3 100644 --- a/submodules/Postbox/Sources/Postbox.swift +++ b/submodules/Postbox/Sources/Postbox.swift @@ -1172,7 +1172,7 @@ public func openPostbox(basePath: String, seedConfiguration: SeedConfiguration, #if DEBUG //debugSaveState(basePath: basePath, name: "previous1") - debugRestoreState(basePath: basePath, name: "previous1") + //debugRestoreState(basePath: basePath, name: "previous1") #endif let startTime = CFAbsoluteTimeGetCurrent() From 81c33b761f605b710bad6f9043a170bbd552ec6c Mon Sep 17 00:00:00 2001 From: Ali <> Date: Sat, 3 Jul 2021 00:16:41 +0400 Subject: [PATCH 10/26] Update password reset --- .../Telegram-iOS/en.lproj/Localizable.strings | 9 + .../Sources/SecureIdAuthController.swift | 2 +- .../Sources/ResetPasswordController.swift | 19 +- .../TwoFactorAuthDataInputScreen.swift | 8 +- .../TwoStepVerificationResetController.swift | 17 +- .../TwoStepVerificationUnlockController.swift | 187 +- .../Sources/PresentationStrings.swift | 8584 +++++++++-------- .../Resources/PresentationStrings.mapping | Bin 174466 -> 174825 bytes 8 files changed, 4493 insertions(+), 4333 deletions(-) diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index 0250e2bbd8..a148cede8d 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -6540,3 +6540,12 @@ Sorry for the inconvenience."; "TwoFactorSetup.PasswordRecovery.SkipAlertTitle" = "Attention!"; "TwoFactorSetup.PasswordRecovery.SkipAlertText" = "Skipping this step will disable 2-step verification for your account. Are you sure you want to skip?"; "TwoFactorSetup.PasswordRecovery.SkipAlertAction" = "Skip"; + +"TwoStepAuth.RecoveryUnavailableResetTitle" = "Reset Password"; +"TwoStepAuth.RecoveryUnavailableResetText" = "Since you haven't provided a recovery e-mail when setting up your password, your remaining options are either to remember your password or wait 7 days until your password is reset."; +"TwoStepAuth.RecoveryEmailResetText" = "If you don't have access to your recovery email, your remaining options are either to remember your password or wait 7 days until your password resets."; +"TwoStepAuth.RecoveryUnavailableResetAction" = "Reset"; +"TwoStepAuth.ResetPendingText" = "You can reset your password in %@."; +"TwoStepAuth.CancelResetTitle" = "Cancel Reset"; +"TwoStepAuth.ResetAction" = "Reset Password"; +"TwoStepAuth.CancelResetText" = "Cancel the password resetting process? If you proceed, the expired part of the 7-day delay will be lost."; diff --git a/submodules/PassportUI/Sources/SecureIdAuthController.swift b/submodules/PassportUI/Sources/SecureIdAuthController.swift index 544912daef..4396f704cd 100644 --- a/submodules/PassportUI/Sources/SecureIdAuthController.swift +++ b/submodules/PassportUI/Sources/SecureIdAuthController.swift @@ -518,7 +518,7 @@ public final class SecureIdAuthController: ViewController, StandalonePresentable return } var completionImpl: (() -> Void)? - let controller = resetPasswordController(context: strongSelf.context, emailPattern: emailPattern, completion: { + let controller = resetPasswordController(context: strongSelf.context, emailPattern: emailPattern, completion: { _ in completionImpl?() }) completionImpl = { [weak controller] in diff --git a/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift b/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift index db3835105c..a751dc16da 100644 --- a/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift +++ b/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift @@ -115,7 +115,7 @@ public enum ResetPasswordState: Equatable { case pendingVerification(emailPattern: String) } -public func resetPasswordController(context: AccountContext, emailPattern: String, completion: @escaping () -> Void) -> ViewController { +public func resetPasswordController(context: AccountContext, emailPattern: String, completion: @escaping (Bool) -> Void) -> ViewController { let statePromise = ValuePromise(ResetPasswordControllerState(), ignoreRepeated: true) let stateValue = Atomic(value: ResetPasswordControllerState()) let updateState: ((ResetPasswordControllerState) -> ResetPasswordControllerState) -> Void = { f in @@ -138,7 +138,20 @@ public func resetPasswordController(context: AccountContext, emailPattern: Strin } }, openHelp: { let presentationData = context.sharedContext.currentPresentationData.with { $0 } - presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.TwoStepAuth_RecoveryFailed, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), nil) + + presentControllerImpl?(textAlertController(context: context, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetTitle, text: presentationData.strings.TwoStepAuth_RecoveryEmailResetText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetAction, action: { + let _ = (requestTwoStepPasswordReset(network: context.account.network) + |> deliverOnMainQueue).start(next: { result in + switch result { + case .done, .waitingForReset: + completion(false) + case .declined: + break + case let .error(reason): + break + } + }) + })]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }) var initialFocusImpl: (() -> Void)? @@ -187,7 +200,7 @@ public func resetPasswordController(context: AccountContext, emailPattern: Strin let presentationData = context.sharedContext.currentPresentationData.with { $0 } presentControllerImpl?(textAlertController(context: context, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), nil) }, completed: { - completion() + completion(true) })) } }) diff --git a/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift b/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift index bfb96a896e..acb463f6e4 100644 --- a/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift +++ b/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift @@ -475,7 +475,7 @@ public final class TwoFactorDataInputScreen: ViewController { } private func performRecovery(recovery: TwoFactorDataInputMode.Recovery, password: String, hint: String) { - /*let statusController = OverlayStatusController(theme: self.presentationData.theme, type: .loading(cancelled: nil)) + let statusController = OverlayStatusController(theme: self.presentationData.theme, type: .loading(cancelled: nil)) self.present(statusController, in: .window(.root)) let _ = (performPasswordRecovery(accountManager: self.sharedContext.accountManager, account: recovery.account, code: recovery.code, syncContacts: recovery.syncContacts, updatedPassword: password.isEmpty ? .none : .password(password: password, hint: hint, email: nil)) @@ -507,7 +507,7 @@ public final class TwoFactorDataInputScreen: ViewController { } strongSelf.dismiss() - })*/ + }) } } @@ -1126,7 +1126,7 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS return } switch strongSelf.mode { - case .emailAddress, .updateEmailAddress: + case .emailAddress, .updateEmailAddress, .passwordRecovery: let hasText = strongSelf.inputNodes.contains(where: { !$0.text.isEmpty }) strongSelf.buttonNode.isHidden = !hasText strongSelf.skipActionTitleNode.isHidden = hasText @@ -1148,7 +1148,7 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS strongSelf.buttonNode.isHidden = !hasText strongSelf.skipActionTitleNode.isHidden = hasText strongSelf.skipActionButtonNode.isHidden = hasText - case .password, .passwordRecovery: + case .password: break } updateAnimations() diff --git a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift index 2f6091ea8e..acbd02cbe2 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift @@ -140,7 +140,7 @@ private func twoStepVerificationResetControllerEntries(presentationData: Present return entries } -func twoStepVerificationResetController(context: AccountContext, emailPattern: String, result: Promise) -> ViewController { +func twoStepVerificationResetController(context: AccountContext, emailPattern: String, result: Promise, requestedRecoveryReset: @escaping () -> Void) -> ViewController { let initialState = TwoStepVerificationResetControllerState(codeText: "", checking: false) let statePromise = ValuePromise(initialState, ignoreRepeated: true) @@ -202,7 +202,20 @@ func twoStepVerificationResetController(context: AccountContext, emailPattern: S checkCode() }, openEmailInaccessible: { let presentationData = context.sharedContext.currentPresentationData.with { $0 } - presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.TwoStepAuth_RecoveryFailed, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + + presentControllerImpl?(textAlertController(context: context, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetTitle, text: presentationData.strings.TwoStepAuth_RecoveryEmailResetText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetAction, action: { + let _ = (requestTwoStepPasswordReset(network: context.account.network) + |> deliverOnMainQueue).start(next: { result in + switch result { + case .done, .waitingForReset: + requestedRecoveryReset() + case .declined: + break + case let .error(reason): + break + } + }) + })]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }) let signal = combineLatest(context.sharedContext.presentationData, statePromise.get()) |> deliverOnMainQueue diff --git a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift index 3300fc404a..33c4fa6996 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift @@ -26,8 +26,10 @@ private final class TwoStepVerificationUnlockSettingsControllerArguments { let openResetPendingEmail: () -> Void let updateEmailCode: (String) -> Void let openConfirmEmail: () -> Void + let declinePasswordReset: () -> Void + let resetPassword: () -> Void - init(updatePasswordText: @escaping (String) -> Void, checkPassword: @escaping () -> Void, openForgotPassword: @escaping () -> Void, openSetupPassword: @escaping () -> Void, openDisablePassword: @escaping () -> Void, openSetupEmail: @escaping () -> Void, openResetPendingEmail: @escaping () -> Void, updateEmailCode: @escaping (String) -> Void, openConfirmEmail: @escaping () -> Void) { + init(updatePasswordText: @escaping (String) -> Void, checkPassword: @escaping () -> Void, openForgotPassword: @escaping () -> Void, openSetupPassword: @escaping () -> Void, openDisablePassword: @escaping () -> Void, openSetupEmail: @escaping () -> Void, openResetPendingEmail: @escaping () -> Void, updateEmailCode: @escaping (String) -> Void, openConfirmEmail: @escaping () -> Void, declinePasswordReset: @escaping () -> Void, resetPassword: @escaping () -> Void) { self.updatePasswordText = updatePasswordText self.checkPassword = checkPassword self.openForgotPassword = openForgotPassword @@ -37,6 +39,8 @@ private final class TwoStepVerificationUnlockSettingsControllerArguments { self.openResetPendingEmail = openResetPendingEmail self.updateEmailCode = updateEmailCode self.openConfirmEmail = openConfirmEmail + self.declinePasswordReset = declinePasswordReset + self.resetPassword = resetPassword } } @@ -132,47 +136,53 @@ private enum TwoStepVerificationUnlockSettingsEntry: ItemListNodeEntry { }, action: { arguments.checkPassword() }) - case let .passwordEntryInfo(theme, text): + case let .passwordEntryInfo(_, text): return ItemListTextItem(presentationData: presentationData, text: .markdown(text), sectionId: self.section, linkAction: { action in switch action { - case .tap: - arguments.openForgotPassword() + case let .tap(item): + if item == "forgot" { + arguments.openForgotPassword() + } else if item == "declineReset" { + arguments.declinePasswordReset() + } else if item == "reset" { + arguments.resetPassword() + } } }) - case let .passwordSetup(theme, text): + case let .passwordSetup(_, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.openSetupPassword() }) - case let .passwordSetupInfo(theme, text): + case let .passwordSetupInfo(_, text): return ItemListTextItem(presentationData: presentationData, text: .markdown(text), sectionId: self.section) - case let .changePassword(theme, text): + case let .changePassword(_, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.openSetupPassword() }) - case let .turnPasswordOff(theme, text): + case let .turnPasswordOff(_, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.openDisablePassword() }) - case let .setupRecoveryEmail(theme, text): + case let .setupRecoveryEmail(_, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.openSetupEmail() }) - case let .passwordInfo(theme, text): + case let .passwordInfo(_, text): return ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: self.section) - case let .pendingEmailConfirmInfo(theme, text): + case let .pendingEmailConfirmInfo(_, text): return ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: self.section) - case let .pendingEmailConfirmCode(theme, strings, title, text): + case let .pendingEmailConfirmCode(_, _, title, text): return ItemListSingleLineInputItem(presentationData: presentationData, title: NSAttributedString(string: ""), text: text, placeholder: title, type: .number, sectionId: self.section, textUpdated: { value in arguments.updateEmailCode(value) }, action: {}) - case let .pendingEmailInfo(theme, text): + case let .pendingEmailInfo(_, text): return ItemListTextItem(presentationData: presentationData, text: .markdown(text), sectionId: self.section, linkAction: { action in switch action { case .tap: arguments.openResetPendingEmail() } }) - case let .pendingEmailOpenConfirm(theme, text): + case let .pendingEmailOpenConfirm(_, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.openConfirmEmail() }) @@ -204,13 +214,28 @@ private func twoStepVerificationUnlockSettingsControllerEntries(presentationData entries.append(.passwordSetup(presentationData.theme, presentationData.strings.TwoStepAuth_SetPassword)) entries.append(.passwordSetupInfo(presentationData.theme, presentationData.strings.TwoStepAuth_SetPasswordHelp)) } - case let .set(hint, _, _): + case let .set(hint, _, _, pendingResetTimestamp): entries.append(.passwordEntry(presentationData.theme, presentationData.strings, presentationData.strings.TwoStepAuth_EnterPasswordPassword, state.passwordText)) - if hint.isEmpty { - entries.append(.passwordEntryInfo(presentationData.theme, presentationData.strings.TwoStepAuth_EnterPasswordHelp + "\n\n[" + presentationData.strings.TwoStepAuth_EnterPasswordForgot + "](forgot)")) - } else { - entries.append(.passwordEntryInfo(presentationData.theme, presentationData.strings.TwoStepAuth_EnterPasswordHint(escapedPlaintextForMarkdown(hint)).0 + "\n\n" + presentationData.strings.TwoStepAuth_EnterPasswordHelp + "\n\n[" + presentationData.strings.TwoStepAuth_EnterPasswordForgot + "](forgot)")) + var text: String = "" + if !hint.isEmpty { + text += presentationData.strings.TwoStepAuth_EnterPasswordHint(escapedPlaintextForMarkdown(hint)).0 } + + if let pendingResetTimestamp = pendingResetTimestamp { + text += "\n\n" + let remainingSeconds = pendingResetTimestamp - Int32(Date().timeIntervalSince1970) + if remainingSeconds <= 0 { + text += "[" + presentationData.strings.TwoStepAuth_ResetAction + "](reset)" + } else { + text.append(presentationData.strings.TwoStepAuth_ResetPendingText(timeIntervalString(strings: presentationData.strings, value: remainingSeconds)).0) + text.append("\n[\(presentationData.strings.TwoStepAuth_CancelResetTitle)](declineReset)") + } + } else { + text += "\n\n" + text += presentationData.strings.TwoStepAuth_EnterPasswordHelp + "\n\n[" + presentationData.strings.TwoStepAuth_EnterPasswordForgot + "](forgot)" + } + + entries.append(.passwordEntryInfo(presentationData.theme, text)) } } case let .manage(_, emailSet, pendingEmail, _): @@ -240,14 +265,14 @@ struct TwoStepVerificationPendingEmailState: Equatable { enum TwoStepVerificationAccessConfiguration: Equatable { case notSet(pendingEmail: TwoStepVerificationPendingEmailState?) - case set(hint: String, hasRecoveryEmail: Bool, hasSecureValues: Bool) + case set(hint: String, hasRecoveryEmail: Bool, hasSecureValues: Bool, pendingResetTimestamp: Int32?) init(configuration: TwoStepVerificationConfiguration, password: String?) { switch configuration { case let .notSet(pendingEmail): self = .notSet(pendingEmail: pendingEmail.flatMap({ TwoStepVerificationPendingEmailState(password: password, email: $0) })) - case let .set(hint, hasRecoveryEmail, _, hasSecureValues, _): - self = .set(hint: hint, hasRecoveryEmail: hasRecoveryEmail, hasSecureValues: hasSecureValues) + case let .set(hint, hasRecoveryEmail, _, hasSecureValues, pendingResetTimestamp): + self = .set(hint: hint, hasRecoveryEmail: hasRecoveryEmail, hasSecureValues: hasSecureValues, pendingResetTimestamp: pendingResetTimestamp) } } } @@ -420,7 +445,6 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: |> mapToSignal { settings -> Signal<(TwoStepVerificationSettings, TwoStepVerificationPendingEmail?), AuthorizationPasswordVerificationError> in return twoStepVerificationConfiguration(account: context.account) |> mapError { _ -> AuthorizationPasswordVerificationError in - return .generic } |> map { configuration in var pendingEmail: TwoStepVerificationPendingEmail? @@ -469,7 +493,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: if let configuration = configuration { let presentationData = context.sharedContext.currentPresentationData.with { $0 } switch configuration { - case let .set(_, hasRecoveryEmail, _): + case let .set(_, hasRecoveryEmail, _, pendingResetTimestamp): if hasRecoveryEmail { updateState { state in var state = state @@ -484,17 +508,25 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: return state } - var completionImpl: (() -> Void)? - let controller = resetPasswordController(context: context, emailPattern: emailPattern, completion: { - completionImpl?() + var completionImpl: ((Bool) -> Void)? + let controller = resetPasswordController(context: context, emailPattern: emailPattern, completion: { result in + completionImpl?(result) }) - completionImpl = { [weak controller] in - dataPromise.set(.single(TwoStepVerificationUnlockSettingsControllerData.access(configuration: .notSet(pendingEmail: nil)))) - controller?.view.endEditing(true) - controller?.dismiss() - - let presentationData = context.sharedContext.currentPresentationData.with { $0 } - presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.TwoStepAuth_DisableSuccess, false)), nil) + completionImpl = { [weak controller] result in + if !result { + dataPromise.set(twoStepVerificationConfiguration(account: context.account) + |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) + }) + controller?.view.endEditing(true) + controller?.dismiss() + } else { + dataPromise.set(.single(TwoStepVerificationUnlockSettingsControllerData.access(configuration: .notSet(pendingEmail: nil)))) + controller?.view.endEditing(true) + controller?.dismiss() + + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.TwoStepAuth_DisableSuccess, false)), nil) + } } presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }, error: { _ in @@ -506,7 +538,40 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) })) } else { - presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.TwoStepAuth_RecoveryUnavailable, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + if let pendingResetTimestamp = pendingResetTimestamp { + let remainingSeconds = pendingResetTimestamp - Int32(Date().timeIntervalSince1970) + if remainingSeconds <= 0 { + let _ = (requestTwoStepPasswordReset(network: context.account.network) + |> deliverOnMainQueue).start(next: { result in + switch result { + case .done, .waitingForReset: + dataPromise.set(twoStepVerificationConfiguration(account: context.account) + |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) + }) + case .declined: + break + case let .error(reason): + break + } + }) + } + } else { + presentControllerImpl?(textAlertController(context: context, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetTitle, text: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetAction, action: { + let _ = (requestTwoStepPasswordReset(network: context.account.network) + |> deliverOnMainQueue).start(next: { result in + switch result { + case .done, .waitingForReset: + dataPromise.set(twoStepVerificationConfiguration(account: context.account) + |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) + }) + case .declined: + break + case let .error(reason): + break + } + }) + })]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + } } case .notSet: break @@ -762,12 +827,62 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) } }) + }, declinePasswordReset: { + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + presentControllerImpl?(textAlertController(context: context, title: presentationData.strings.TwoStepAuth_CancelResetTitle, text: presentationData.strings.TwoStepAuth_CancelResetText, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_Yes, action: { + let _ = (declineTwoStepPasswordReset(network: context.account.network) + |> deliverOnMainQueue).start(completed: { + dataPromise.set(twoStepVerificationConfiguration(account: context.account) + |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) + }) + }) + }), TextAlertAction(type: .genericAction, title: presentationData.strings.Common_No, action: { + })]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + }, resetPassword: { + let _ = (requestTwoStepPasswordReset(network: context.account.network) + |> deliverOnMainQueue).start(next: { result in + switch result { + case .done: + dismissImpl?() + case .waitingForReset: + dataPromise.set(twoStepVerificationConfiguration(account: context.account) + |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) + }) + case .declined: + break + case let .error(reason): + break + } + }) }) var initialFocusImpl: (() -> Void)? var didAppear = false + + let dataWithTimer = dataPromise.get() + |> distinctUntilChanged + |> mapToSignal { data -> Signal in + switch data { + case let .access(configuration): + if let configuration = configuration { + switch configuration { + case let .set(_, _, _, pendingResetTimestamp): + if pendingResetTimestamp != nil { + return .single(data) + |> then(.complete() |> delay(0.5, queue: .mainQueue())) + |> restart + } + default: + break + } + } + default: + break + } + return .single(data) + } - let signal = combineLatest(context.sharedContext.presentationData, statePromise.get(), dataPromise.get() |> deliverOnMainQueue) |> deliverOnMainQueue + let signal = combineLatest(context.sharedContext.presentationData, statePromise.get(), dataWithTimer |> deliverOnMainQueue) |> deliverOnMainQueue |> map { presentationData, state, data -> (ItemListControllerState, (ItemListNodeState, Any)) in var rightNavigationButton: ItemListNavigationButton? var emptyStateItem: ItemListControllerEmptyStateItem? diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 4260e1dbcb..ebbc549339 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -617,5126 +617,5139 @@ public final class PresentationStrings: Equatable { public func Channel_Management_PromotedBy(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[398]!, self._r[398]!, [_0]) } - public var IntentsSettings_SuggestedChatsContacts: String { return self._s[399]! } - public var Passport_Phone_Title: String { return self._s[401]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[402]! } - public var Channel_LinkItem: String { return self._s[403]! } - public var VoiceChat_EndConfirmationText: String { return self._s[404]! } + public var TwoStepAuth_CancelResetTitle: String { return self._s[399]! } + public var IntentsSettings_SuggestedChatsContacts: String { return self._s[400]! } + public var Passport_Phone_Title: String { return self._s[402]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[403]! } + public var Channel_LinkItem: String { return self._s[404]! } + public var VoiceChat_EndConfirmationText: String { return self._s[405]! } public func PUSH_CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[405]!, self._r[405]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[406]!, self._r[406]!, [_1, _2, _3]) } - public var Conversation_DeleteManyMessages: String { return self._s[407]! } - public var Notifications_Badge_IncludeMutedChats: String { return self._s[408]! } - public var Channel_AddUserLeftError: String { return self._s[410]! } - public var AuthSessions_AddedDeviceTitle: String { return self._s[412]! } - public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[413]! } - public var Settings_ProxyConnecting: String { return self._s[414]! } - public var Theme_Colors_Accent: String { return self._s[416]! } - public var Theme_Colors_ColorWallpaperWarning: String { return self._s[417]! } + public var Conversation_DeleteManyMessages: String { return self._s[408]! } + public var Notifications_Badge_IncludeMutedChats: String { return self._s[409]! } + public var Channel_AddUserLeftError: String { return self._s[411]! } + public var AuthSessions_AddedDeviceTitle: String { return self._s[413]! } + public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[414]! } + public var Settings_ProxyConnecting: String { return self._s[415]! } + public var Theme_Colors_Accent: String { return self._s[417]! } + public var Theme_Colors_ColorWallpaperWarning: String { return self._s[418]! } public func PUSH_PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[419]!, self._r[419]!, [_1]) + return formatWithArgumentRanges(self._s[420]!, self._r[420]!, [_1]) } - public var Passport_Language_lo: String { return self._s[420]! } + public var Passport_Language_lo: String { return self._s[421]! } public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[422]!, self._r[422]!, [_1, _2]) + return formatWithArgumentRanges(self._s[423]!, self._r[423]!, [_1, _2]) } - public var Permissions_NotificationsText_v0: String { return self._s[423]! } - public var BroadcastGroups_LimitAlert_Title: String { return self._s[424]! } - public var Settings_CheckPasswordText: String { return self._s[425]! } - public var ChatList_Context_RemoveFromRecents: String { return self._s[426]! } - public var Watch_GroupInfo_Title: String { return self._s[427]! } - public var Settings_AddDevice: String { return self._s[429]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[430]! } + public var Permissions_NotificationsText_v0: String { return self._s[424]! } + public var BroadcastGroups_LimitAlert_Title: String { return self._s[425]! } + public var Settings_CheckPasswordText: String { return self._s[426]! } + public var ChatList_Context_RemoveFromRecents: String { return self._s[427]! } + public var Watch_GroupInfo_Title: String { return self._s[428]! } + public var Settings_AddDevice: String { return self._s[430]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[431]! } public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[431]!, self._r[431]!, [_1]) + return formatWithArgumentRanges(self._s[432]!, self._r[432]!, [_1]) } - public var ImportStickerPack_Create: String { return self._s[432]! } - public var Conversation_AutoremoveActionEdit: String { return self._s[433]! } - public var TwoStepAuth_Disable: String { return self._s[435]! } + public var ImportStickerPack_Create: String { return self._s[433]! } + public var Conversation_AutoremoveActionEdit: String { return self._s[434]! } + public var TwoStepAuth_Disable: String { return self._s[436]! } public func Conversation_AddNameToContacts(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[436]!, self._r[436]!, [_0]) + return formatWithArgumentRanges(self._s[437]!, self._r[437]!, [_0]) } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[437]!, self._r[437]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[438]!, self._r[438]!, [_1, _2, _3]) } public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[438]!, self._r[438]!, [_0]) + return formatWithArgumentRanges(self._s[439]!, self._r[439]!, [_0]) } - public var Channel_AdminLog_BanReadMessages: String { return self._s[439]! } - public var Undo_ChatDeleted: String { return self._s[440]! } - public var ContactInfo_URLLabelHomepage: String { return self._s[441]! } + public var Channel_AdminLog_BanReadMessages: String { return self._s[440]! } + public var Undo_ChatDeleted: String { return self._s[441]! } + public var ContactInfo_URLLabelHomepage: String { return self._s[442]! } public func PUSH_CHAT_MESSAGE_STICKER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[442]!, self._r[442]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[443]!, self._r[443]!, [_1, _2, _3]) } - public var FastTwoStepSetup_EmailHelp: String { return self._s[443]! } - public var Contacts_SelectAll: String { return self._s[444]! } - public var Privacy_ContactsReset: String { return self._s[445]! } - public var AttachmentMenu_File: String { return self._s[447]! } - public var PasscodeSettings_EncryptData: String { return self._s[448]! } - public var EditTheme_ThemeTemplateAlertText: String { return self._s[449]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[444]! } + public var Contacts_SelectAll: String { return self._s[445]! } + public var Privacy_ContactsReset: String { return self._s[446]! } + public var AttachmentMenu_File: String { return self._s[448]! } + public var PasscodeSettings_EncryptData: String { return self._s[449]! } + public var EditTheme_ThemeTemplateAlertText: String { return self._s[450]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[451]!, self._r[451]!, [_0, _1]) - } - public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[452]!, self._r[452]!, [_0, _1]) } - public var PhotoEditor_ShadowsTint: String { return self._s[454]! } - public var GroupInfo_ChatAdmins: String { return self._s[455]! } - public var ArchivedChats_IntroTitle2: String { return self._s[456]! } - public var Cache_LowDiskSpaceText: String { return self._s[457]! } - public var CreatePoll_Anonymous: String { return self._s[458]! } - public var Report_AdditionalDetailsText: String { return self._s[459]! } - public var Checkout_PaymentMethod_New: String { return self._s[460]! } - public var Invitation_JoinGroup: String { return self._s[461]! } + public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[453]!, self._r[453]!, [_0, _1]) + } + public var PhotoEditor_ShadowsTint: String { return self._s[455]! } + public var GroupInfo_ChatAdmins: String { return self._s[456]! } + public var ArchivedChats_IntroTitle2: String { return self._s[457]! } + public var Cache_LowDiskSpaceText: String { return self._s[458]! } + public var CreatePoll_Anonymous: String { return self._s[459]! } + public var Report_AdditionalDetailsText: String { return self._s[460]! } + public var Checkout_PaymentMethod_New: String { return self._s[461]! } + public var Invitation_JoinGroup: String { return self._s[462]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[464]!, self._r[464]!, [_0]) + return formatWithArgumentRanges(self._s[465]!, self._r[465]!, [_0]) } - public var CheckoutInfo_SaveInfoHelp: String { return self._s[465]! } - public var Notification_Reply: String { return self._s[467]! } + public var CheckoutInfo_SaveInfoHelp: String { return self._s[466]! } + public var Notification_Reply: String { return self._s[468]! } public func Login_PhoneBannedEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[468]!, self._r[468]!, [_0]) + return formatWithArgumentRanges(self._s[469]!, self._r[469]!, [_0]) } - public var Login_PhoneTitle: String { return self._s[469]! } - public var VoiceChat_UnmuteHelp: String { return self._s[470]! } - public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[471]! } + public var Login_PhoneTitle: String { return self._s[470]! } + public var VoiceChat_UnmuteHelp: String { return self._s[471]! } + public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[472]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[472]!, self._r[472]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[473]!, self._r[473]!, [_1, _2, _3]) } - public var Appearance_TextSize_Title: String { return self._s[473]! } - public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[475]! } - public var VoiceOver_Navigation_Compose: String { return self._s[476]! } + public var Appearance_TextSize_Title: String { return self._s[474]! } + public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[476]! } + public var VoiceOver_Navigation_Compose: String { return self._s[477]! } public func Channel_AdminLog_MessageChangedAutoremoveTimeoutRemove(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[477]!, self._r[477]!, [_1]) + return formatWithArgumentRanges(self._s[478]!, self._r[478]!, [_1]) } - public var Passport_InfoText: String { return self._s[478]! } - public var ApplyLanguage_ApplyLanguageAction: String { return self._s[479]! } - public var MessagePoll_LabelClosed: String { return self._s[481]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[482]! } - public var KeyCommand_FocusOnInputField: String { return self._s[483]! } - public var Conversation_ContextViewThread: String { return self._s[484]! } - public var ChatImport_SelectionErrorGroupGeneric: String { return self._s[485]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[487]! } - public var Permissions_PeopleNearbyAllow_v0: String { return self._s[488]! } - public var Conversation_ContextMenuMention: String { return self._s[490]! } - public var CreatePoll_QuizInfo: String { return self._s[491]! } - public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[492]! } - public var Username_LinkCopied: String { return self._s[493]! } - public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[494]! } - public var TwoStepAuth_ChangePassword: String { return self._s[495]! } - public var Watch_Suggestion_Thanks: String { return self._s[496]! } - public var Channel_TitleInfo: String { return self._s[497]! } - public var ChatList_ChatTypesSection: String { return self._s[498]! } + public var Passport_InfoText: String { return self._s[479]! } + public var ApplyLanguage_ApplyLanguageAction: String { return self._s[480]! } + public var MessagePoll_LabelClosed: String { return self._s[482]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[483]! } + public var KeyCommand_FocusOnInputField: String { return self._s[484]! } + public var Conversation_ContextViewThread: String { return self._s[485]! } + public var ChatImport_SelectionErrorGroupGeneric: String { return self._s[486]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[488]! } + public var Permissions_PeopleNearbyAllow_v0: String { return self._s[489]! } + public var Conversation_ContextMenuMention: String { return self._s[491]! } + public var CreatePoll_QuizInfo: String { return self._s[492]! } + public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[493]! } + public var Username_LinkCopied: String { return self._s[494]! } + public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[495]! } + public var TwoStepAuth_ChangePassword: String { return self._s[496]! } + public var Watch_Suggestion_Thanks: String { return self._s[497]! } + public var Channel_TitleInfo: String { return self._s[498]! } + public var ChatList_ChatTypesSection: String { return self._s[499]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[499]!, self._r[499]!, [_0]) - } - public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[500]!, self._r[500]!, [_0]) } + public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[501]!, self._r[501]!, [_0]) + } public func Channel_AdminLog_MessageRemovedAdminNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[501]!, self._r[501]!, [_1, _2]) + return formatWithArgumentRanges(self._s[502]!, self._r[502]!, [_1, _2]) } - public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[502]! } + public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[503]! } public func Call_MicrophoneOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[503]!, self._r[503]!, [_0]) + return formatWithArgumentRanges(self._s[504]!, self._r[504]!, [_0]) } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[504]! } - public var Profile_MessageLifetimeForever: String { return self._s[505]! } - public var ArchivedChats_IntroText1: String { return self._s[506]! } - public var Notifications_ChannelNotificationsPreview: String { return self._s[507]! } - public var Map_PullUpForPlaces: String { return self._s[509]! } - public var UserInfo_TelegramCall: String { return self._s[510]! } - public var Conversation_ShareMyContactInfo: String { return self._s[511]! } - public var ChatList_Tabs_All: String { return self._s[512]! } - public var Notification_PassportValueEmail: String { return self._s[513]! } - public var Notification_VideoCallIncoming: String { return self._s[514]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[515]! } - public var Channel_Username_InvalidTaken: String { return self._s[516]! } - public var GroupPermission_EditingDisabled: String { return self._s[517]! } - public var InviteLink_PeopleJoinedShortNone: String { return self._s[518]! } - public var ChatContextMenu_TextSelectionTip: String { return self._s[519]! } - public var Passport_Language_pl: String { return self._s[521]! } - public var Call_Accept: String { return self._s[522]! } - public var ChatListFolder_NameSectionHeader: String { return self._s[523]! } - public var InviteLink_ExpiredLinkStatus: String { return self._s[524]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[505]! } + public var Profile_MessageLifetimeForever: String { return self._s[506]! } + public var ArchivedChats_IntroText1: String { return self._s[507]! } + public var Notifications_ChannelNotificationsPreview: String { return self._s[508]! } + public var Map_PullUpForPlaces: String { return self._s[510]! } + public var UserInfo_TelegramCall: String { return self._s[511]! } + public var Conversation_ShareMyContactInfo: String { return self._s[512]! } + public var ChatList_Tabs_All: String { return self._s[513]! } + public var Notification_PassportValueEmail: String { return self._s[514]! } + public var Notification_VideoCallIncoming: String { return self._s[515]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[516]! } + public var Channel_Username_InvalidTaken: String { return self._s[517]! } + public var GroupPermission_EditingDisabled: String { return self._s[518]! } + public var InviteLink_PeopleJoinedShortNone: String { return self._s[519]! } + public var ChatContextMenu_TextSelectionTip: String { return self._s[520]! } + public var Passport_Language_pl: String { return self._s[522]! } + public var Call_Accept: String { return self._s[523]! } + public var ChatListFolder_NameSectionHeader: String { return self._s[524]! } + public var InviteLink_ExpiredLinkStatus: String { return self._s[525]! } public func Passport_Identity_NativeNameTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[525]!, self._r[525]!, [_0]) + return formatWithArgumentRanges(self._s[526]!, self._r[526]!, [_0]) } - public var ClearCache_Forever: String { return self._s[526]! } - public var VoiceChat_TapToEditTitle: String { return self._s[528]! } + public var ClearCache_Forever: String { return self._s[527]! } + public var VoiceChat_TapToEditTitle: String { return self._s[529]! } public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[529]!, self._r[529]!, [_0]) + return formatWithArgumentRanges(self._s[530]!, self._r[530]!, [_0]) } - public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[530]! } - public var Calls_SubmitRating: String { return self._s[531]! } - public var Location_LiveLocationRequired_ShareLocation: String { return self._s[532]! } + public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[531]! } + public var Calls_SubmitRating: String { return self._s[532]! } + public var Location_LiveLocationRequired_ShareLocation: String { return self._s[533]! } public func ChatList_AddedToFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[533]!, self._r[533]!, [_1, _2]) + return formatWithArgumentRanges(self._s[534]!, self._r[534]!, [_1, _2]) } - public var IntentsSettings_MainAccountInfo: String { return self._s[534]! } - public var Map_Hybrid: String { return self._s[536]! } - public var ChatList_Context_Archive: String { return self._s[537]! } - public var Message_PinnedDocumentMessage: String { return self._s[538]! } - public var State_ConnectingToProxyInfo: String { return self._s[539]! } - public var Passport_Identity_NativeNameGenericTitle: String { return self._s[541]! } - public var Settings_AppLanguage: String { return self._s[542]! } + public var IntentsSettings_MainAccountInfo: String { return self._s[535]! } + public var Map_Hybrid: String { return self._s[537]! } + public var ChatList_Context_Archive: String { return self._s[538]! } + public var Message_PinnedDocumentMessage: String { return self._s[539]! } + public var State_ConnectingToProxyInfo: String { return self._s[540]! } + public var Passport_Identity_NativeNameGenericTitle: String { return self._s[542]! } + public var Settings_AppLanguage: String { return self._s[543]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[543]!, self._r[543]!, [_0]) + return formatWithArgumentRanges(self._s[544]!, self._r[544]!, [_0]) } - public var Notifications_PermissionsEnable: String { return self._s[545]! } - public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[546]! } + public var Notifications_PermissionsEnable: String { return self._s[546]! } + public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[547]! } public func UserInfo_BlockActionTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[547]!, self._r[547]!, [_0]) - } - public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[548]!, self._r[548]!, [_0]) } - public var NotificationsSound_Aurora: String { return self._s[551]! } - public var ScheduledMessages_ClearAll: String { return self._s[554]! } + public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[549]!, self._r[549]!, [_0]) + } + public var NotificationsSound_Aurora: String { return self._s[552]! } + public var ScheduledMessages_ClearAll: String { return self._s[555]! } public func CancelResetAccount_TextSMS(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[555]!, self._r[555]!, [_0]) + return formatWithArgumentRanges(self._s[556]!, self._r[556]!, [_0]) } - public var Settings_BlockedUsers: String { return self._s[557]! } - public var Checkout_TipItem: String { return self._s[558]! } - public var VoiceOver_Keyboard: String { return self._s[560]! } + public var Settings_BlockedUsers: String { return self._s[558]! } + public var Checkout_TipItem: String { return self._s[559]! } + public var VoiceOver_Keyboard: String { return self._s[561]! } public func UserInfo_StartSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[561]!, self._r[561]!, [_0]) + return formatWithArgumentRanges(self._s[562]!, self._r[562]!, [_0]) } - public var Passport_Language_hu: String { return self._s[562]! } + public var Passport_Language_hu: String { return self._s[563]! } public func Conversation_ScheduleMessage_SendTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[563]!, self._r[563]!, [_0]) + return formatWithArgumentRanges(self._s[564]!, self._r[564]!, [_0]) } - public var StickerPack_Share: String { return self._s[564]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[565]! } + public var StickerPack_Share: String { return self._s[565]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[566]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[566]!, self._r[566]!, [_0, _1]) + return formatWithArgumentRanges(self._s[567]!, self._r[567]!, [_0, _1]) } - public var Privacy_ContactsResetConfirmation: String { return self._s[567]! } - public var VoiceChat_EditTitle: String { return self._s[568]! } - public var AppleWatch_ReplyPresets: String { return self._s[569]! } - public var Bot_GenericBotStatus: String { return self._s[570]! } - public var Appearance_ShareThemeColor: String { return self._s[571]! } - public var AuthSessions_AddDevice_UrlLoginHint: String { return self._s[574]! } - public var ReportGroupLocation_Title: String { return self._s[575]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[568]! } + public var VoiceChat_EditTitle: String { return self._s[569]! } + public var AppleWatch_ReplyPresets: String { return self._s[570]! } + public var Bot_GenericBotStatus: String { return self._s[571]! } + public var Appearance_ShareThemeColor: String { return self._s[572]! } + public var AuthSessions_AddDevice_UrlLoginHint: String { return self._s[575]! } + public var ReportGroupLocation_Title: String { return self._s[576]! } public func Conversation_AutoremoveTimerSetUserYou(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[576]!, self._r[576]!, [_1]) + return formatWithArgumentRanges(self._s[577]!, self._r[577]!, [_1]) } public func Activity_RemindAboutUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[577]!, self._r[577]!, [_0]) + return formatWithArgumentRanges(self._s[578]!, self._r[578]!, [_0]) } - public var Profile_CreateEncryptedChatError: String { return self._s[578]! } - public var Channel_EditAdmin_TransferOwnership: String { return self._s[579]! } - public var Wallpaper_ErrorNotFound: String { return self._s[580]! } - public var Bot_GenericSupportStatus: String { return self._s[581]! } - public var Activity_UploadingPhoto: String { return self._s[583]! } - public var Intents_ErrorLockedTitle: String { return self._s[584]! } - public var Watch_UserInfo_Title: String { return self._s[586]! } - public var SocksProxySetup_ProxyTelegram: String { return self._s[587]! } - public var Appearance_ThemeDay: String { return self._s[588]! } + public var Profile_CreateEncryptedChatError: String { return self._s[579]! } + public var Channel_EditAdmin_TransferOwnership: String { return self._s[580]! } + public var Wallpaper_ErrorNotFound: String { return self._s[581]! } + public var Bot_GenericSupportStatus: String { return self._s[582]! } + public var Activity_UploadingPhoto: String { return self._s[584]! } + public var Intents_ErrorLockedTitle: String { return self._s[585]! } + public var Watch_UserInfo_Title: String { return self._s[587]! } + public var SocksProxySetup_ProxyTelegram: String { return self._s[588]! } + public var Appearance_ThemeDay: String { return self._s[589]! } public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[589]!, self._r[589]!, [_1]) + return formatWithArgumentRanges(self._s[590]!, self._r[590]!, [_1]) } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[590]!, self._r[590]!, [_0]) + return formatWithArgumentRanges(self._s[591]!, self._r[591]!, [_0]) } - public var InviteLink_AdditionalLinks: String { return self._s[591]! } - public var Passport_Title: String { return self._s[595]! } + public var InviteLink_AdditionalLinks: String { return self._s[592]! } + public var Passport_Title: String { return self._s[596]! } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[597]!, self._r[597]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[598]!, self._r[598]!, [_1, _2, _3]) } - public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[598]! } - public var VoiceChat_OpenGroup: String { return self._s[600]! } - public var SocksProxySetup_ShareLink: String { return self._s[602]! } - public var AuthSessions_OtherDevices: String { return self._s[603]! } - public var IntentsSettings_SuggestedChatsGroups: String { return self._s[604]! } - public var Watch_MessageView_Reply: String { return self._s[605]! } - public var Camera_FlashOn: String { return self._s[607]! } + public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[599]! } + public var VoiceChat_OpenGroup: String { return self._s[601]! } + public var SocksProxySetup_ShareLink: String { return self._s[603]! } + public var AuthSessions_OtherDevices: String { return self._s[604]! } + public var IntentsSettings_SuggestedChatsGroups: String { return self._s[605]! } + public var Watch_MessageView_Reply: String { return self._s[606]! } + public var Camera_FlashOn: String { return self._s[608]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[608]!, self._r[608]!, [_1, _2]) + return formatWithArgumentRanges(self._s[609]!, self._r[609]!, [_1, _2]) } - public var Conversation_ContextMenuBlock: String { return self._s[609]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[611]! } - public var Privacy_Calls_NeverAllow: String { return self._s[612]! } - public var BroadcastGroups_Cancel: String { return self._s[613]! } - public var SharedMedia_CategoryLinks: String { return self._s[614]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[617]! } - public var Passport_Identity_ScansHelp: String { return self._s[619]! } - public var ShareMenu_CopyShareLink: String { return self._s[620]! } - public var StickerSettings_MaskContextInfo: String { return self._s[621]! } - public var InviteLink_Create_EditTitle: String { return self._s[622]! } - public var SocksProxySetup_ProxyStatusChecking: String { return self._s[623]! } - public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[626]! } - public var ChatImportActivity_Success: String { return self._s[628]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[629]! } - public var NotificationsSound_Popcorn: String { return self._s[630]! } - public var FeatureDisabled_Oops: String { return self._s[631]! } + public var Conversation_ContextMenuBlock: String { return self._s[610]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[612]! } + public var Privacy_Calls_NeverAllow: String { return self._s[613]! } + public var BroadcastGroups_Cancel: String { return self._s[614]! } + public var SharedMedia_CategoryLinks: String { return self._s[615]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[618]! } + public var Passport_Identity_ScansHelp: String { return self._s[620]! } + public var ShareMenu_CopyShareLink: String { return self._s[621]! } + public var StickerSettings_MaskContextInfo: String { return self._s[622]! } + public var InviteLink_Create_EditTitle: String { return self._s[623]! } + public var SocksProxySetup_ProxyStatusChecking: String { return self._s[624]! } + public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[627]! } + public var ChatImportActivity_Success: String { return self._s[629]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[630]! } + public var NotificationsSound_Popcorn: String { return self._s[631]! } + public var FeatureDisabled_Oops: String { return self._s[632]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[632]!, self._r[632]!, [_0]) + return formatWithArgumentRanges(self._s[633]!, self._r[633]!, [_0]) } - public var Notification_PinnedMessage: String { return self._s[633]! } - public var Tour_Title4: String { return self._s[634]! } + public var Notification_PinnedMessage: String { return self._s[634]! } + public var Tour_Title4: String { return self._s[635]! } public func Notification_VoiceChatInvitationForYou(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[635]!, self._r[635]!, [_1]) + return formatWithArgumentRanges(self._s[636]!, self._r[636]!, [_1]) } - public var Watch_Suggestion_OK: String { return self._s[636]! } - public var Compose_TokenListPlaceholder: String { return self._s[637]! } - public var InviteLink_PermanentLink: String { return self._s[638]! } - public var EditTheme_Edit_TopInfo: String { return self._s[639]! } - public var Gif_NoGifsFound: String { return self._s[640]! } - public var Login_InvalidCountryCode: String { return self._s[641]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[642]! } - public var Call_VoiceOver_VideoCallMissed: String { return self._s[643]! } - public var VoiceChat_ChangeNameTitle: String { return self._s[645]! } + public var Watch_Suggestion_OK: String { return self._s[637]! } + public var Compose_TokenListPlaceholder: String { return self._s[638]! } + public var InviteLink_PermanentLink: String { return self._s[639]! } + public var EditTheme_Edit_TopInfo: String { return self._s[640]! } + public var Gif_NoGifsFound: String { return self._s[641]! } + public var Login_InvalidCountryCode: String { return self._s[642]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[643]! } + public var Call_VoiceOver_VideoCallMissed: String { return self._s[644]! } + public var VoiceChat_ChangeNameTitle: String { return self._s[646]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[646]!, self._r[646]!, [_1]) + return formatWithArgumentRanges(self._s[647]!, self._r[647]!, [_1]) } - public var Profile_CreateNewContact: String { return self._s[647]! } - public var AutoDownloadSettings_DataUsageLow: String { return self._s[648]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[649]! } - public var Group_Setup_TypePublic: String { return self._s[650]! } - public var Weekday_ShortSaturday: String { return self._s[651]! } + public var Profile_CreateNewContact: String { return self._s[648]! } + public var AutoDownloadSettings_DataUsageLow: String { return self._s[649]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[650]! } + public var Group_Setup_TypePublic: String { return self._s[651]! } + public var Weekday_ShortSaturday: String { return self._s[652]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[652]!, self._r[652]!, [_0]) + return formatWithArgumentRanges(self._s[653]!, self._r[653]!, [_0]) } - public var LiveLocation_MenuStopAll: String { return self._s[653]! } + public var LiveLocation_MenuStopAll: String { return self._s[654]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[654]!, self._r[654]!, [_0]) + return formatWithArgumentRanges(self._s[655]!, self._r[655]!, [_0]) } - public var ChatListFolder_NamePlaceholder: String { return self._s[655]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[656]! } + public var ChatListFolder_NamePlaceholder: String { return self._s[656]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[657]! } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[657]!, self._r[657]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[658]!, self._r[658]!, [_1, _2, _3]) } - public var VoiceChat_ChatFullAlertText: String { return self._s[658]! } - public var Chat_GenericPsaTooltip: String { return self._s[660]! } - public var ChannelInfo_CreateVoiceChat: String { return self._s[661]! } + public var VoiceChat_ChatFullAlertText: String { return self._s[659]! } + public var Chat_GenericPsaTooltip: String { return self._s[661]! } + public var ChannelInfo_CreateVoiceChat: String { return self._s[662]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[662]!, self._r[662]!, [_0]) + return formatWithArgumentRanges(self._s[663]!, self._r[663]!, [_0]) } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[663]! } - public var Login_PhoneAndCountryHelp: String { return self._s[664]! } - public var SaveIncomingPhotosSettings_From: String { return self._s[666]! } - public var Conversation_JumpToDate: String { return self._s[667]! } - public var AuthSessions_AddDevice: String { return self._s[668]! } - public var Settings_FAQ: String { return self._s[670]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[664]! } + public var Login_PhoneAndCountryHelp: String { return self._s[665]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[667]! } + public var Conversation_JumpToDate: String { return self._s[668]! } + public var AuthSessions_AddDevice: String { return self._s[669]! } + public var Settings_FAQ: String { return self._s[671]! } public func ChatImport_CreateGroupAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[671]!, self._r[671]!, [_0]) + return formatWithArgumentRanges(self._s[672]!, self._r[672]!, [_0]) } - public var Username_Title: String { return self._s[672]! } - public var DialogList_Read: String { return self._s[673]! } - public var Conversation_InstantPagePreview: String { return self._s[674]! } - public var Report_Succeed: String { return self._s[676]! } - public var Login_ResetAccountProtected_Title: String { return self._s[677]! } - public var CallFeedback_ReasonDistortedSpeech: String { return self._s[678]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[679]! } + public var Username_Title: String { return self._s[673]! } + public var DialogList_Read: String { return self._s[674]! } + public var Conversation_InstantPagePreview: String { return self._s[675]! } + public var Report_Succeed: String { return self._s[677]! } + public var Login_ResetAccountProtected_Title: String { return self._s[678]! } + public var CallFeedback_ReasonDistortedSpeech: String { return self._s[679]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[680]! } public func Channel_AdminLog_MessageRankUsername(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[680]!, self._r[680]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[681]!, self._r[681]!, [_1, _2, _3]) } - public var WallpaperPreview_PreviewBottomText: String { return self._s[682]! } - public var Privacy_SecretChatsTitle: String { return self._s[685]! } + public var WallpaperPreview_PreviewBottomText: String { return self._s[683]! } + public var Privacy_SecretChatsTitle: String { return self._s[686]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[686]!, self._r[686]!, [_1, _2]) + return formatWithArgumentRanges(self._s[687]!, self._r[687]!, [_1, _2]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[687]! } - public var Conversation_ClousStorageInfo_Description4: String { return self._s[688]! } - public var PasscodeSettings_TurnPasscodeOn: String { return self._s[689]! } - public var Message_ReplyActionButtonShowReceipt: String { return self._s[690]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[688]! } + public var Conversation_ClousStorageInfo_Description4: String { return self._s[689]! } + public var PasscodeSettings_TurnPasscodeOn: String { return self._s[690]! } + public var Message_ReplyActionButtonShowReceipt: String { return self._s[691]! } public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[691]!, self._r[691]!, [_0]) + return formatWithArgumentRanges(self._s[692]!, self._r[692]!, [_0]) } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[693]! } - public var TwoStepAuth_ConfirmationAbort: String { return self._s[694]! } - public var PrivacySettings_LastSeenEverybody: String { return self._s[695]! } - public var CallFeedback_ReasonDropped: String { return self._s[696]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[694]! } + public var TwoStepAuth_ConfirmationAbort: String { return self._s[695]! } + public var PrivacySettings_LastSeenEverybody: String { return self._s[696]! } + public var CallFeedback_ReasonDropped: String { return self._s[697]! } public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[697]!, self._r[697]!, [_0]) + return formatWithArgumentRanges(self._s[698]!, self._r[698]!, [_0]) } - public var WebSearch_Images: String { return self._s[698]! } - public var Passport_Identity_Surname: String { return self._s[699]! } - public var Channel_Stickers_CreateYourOwn: String { return self._s[700]! } - public var TwoFactorSetup_Email_Title: String { return self._s[701]! } - public var Cache_ClearEmpty: String { return self._s[702]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[703]! } - public var Theme_Context_Apply: String { return self._s[704]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[705]! } - public var CallList_DeleteAllForEveryone: String { return self._s[706]! } + public var WebSearch_Images: String { return self._s[699]! } + public var Passport_Identity_Surname: String { return self._s[700]! } + public var Channel_Stickers_CreateYourOwn: String { return self._s[701]! } + public var TwoFactorSetup_Email_Title: String { return self._s[702]! } + public var Cache_ClearEmpty: String { return self._s[703]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[704]! } + public var Theme_Context_Apply: String { return self._s[705]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[706]! } + public var CallList_DeleteAllForEveryone: String { return self._s[707]! } public func BroadcastGroups_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[707]!, self._r[707]!, [_0]) + return formatWithArgumentRanges(self._s[708]!, self._r[708]!, [_0]) } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[708]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[709]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[709]!, self._r[709]!, [_0]) + return formatWithArgumentRanges(self._s[710]!, self._r[710]!, [_0]) } - public var Call_StatusRinging: String { return self._s[710]! } + public var Call_StatusRinging: String { return self._s[711]! } public func Map_DistanceAway(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[711]!, self._r[711]!, [_0]) - } - public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[712]!, self._r[712]!, [_0]) } - public var Cache_ClearNone: String { return self._s[713]! } - public var PrivacyPolicy_Accept: String { return self._s[714]! } - public var Contacts_PhoneNumber: String { return self._s[715]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[716]! } - public var PhotoEditor_HighlightsTint: String { return self._s[718]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[719]! } - public var Checkout_PaymentMethod_Title: String { return self._s[722]! } - public var Month_GenAugust: String { return self._s[724]! } - public var DialogList_Draft: String { return self._s[725]! } - public var ChatList_EmptyChatListFilterText: String { return self._s[726]! } - public var PeopleNearby_Description: String { return self._s[727]! } - public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[728]! } - public var VoiceChat_InviteLink_CopyListenerLink: String { return self._s[729]! } - public var VoiceChat_EditTitleRemoveSuccess: String { return self._s[730]! } - public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[732]! } - public var Watch_Message_ForwardedFrom: String { return self._s[733]! } - public var Notification_Mute1h: String { return self._s[734]! } - public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[735]! } - public var SettingsSearch_Synonyms_Privacy_AuthSessions: String { return self._s[737]! } - public var Channel_Edit_LinkItem: String { return self._s[738]! } - public var Presence_online: String { return self._s[739]! } - public var AutoDownloadSettings_Title: String { return self._s[740]! } - public var Conversation_MessageDialogRetry: String { return self._s[741]! } - public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[743]! } - public var Channel_About_Placeholder: String { return self._s[745]! } - public var Passport_Language_sl: String { return self._s[746]! } - public var AppleWatch_Title: String { return self._s[748]! } - public var RepliesChat_DescriptionText: String { return self._s[750]! } - public var Stats_Message_PrivateShares: String { return self._s[751]! } - public var Settings_ViewPhoto: String { return self._s[752]! } - public var Conversation_ForwardTooltip_SavedMessages_One: String { return self._s[753]! } - public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[754]! } - public var Cache_ClearProgress: String { return self._s[755]! } - public var Cache_Music: String { return self._s[756]! } - public var Conversation_ContextMenuShare: String { return self._s[758]! } - public var AutoDownloadSettings_Unlimited: String { return self._s[759]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[760]! } - public var Contacts_PermissionsAllow: String { return self._s[761]! } - public var Passport_Language_vi: String { return self._s[763]! } - public var TwoFactorSetup_PasswordRecovery_PlaceholderPassword: String { return self._s[764]! } + public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[713]!, self._r[713]!, [_0]) + } + public var Cache_ClearNone: String { return self._s[714]! } + public var PrivacyPolicy_Accept: String { return self._s[715]! } + public var Contacts_PhoneNumber: String { return self._s[716]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[717]! } + public var PhotoEditor_HighlightsTint: String { return self._s[719]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[720]! } + public var Checkout_PaymentMethod_Title: String { return self._s[723]! } + public var Month_GenAugust: String { return self._s[725]! } + public var DialogList_Draft: String { return self._s[726]! } + public var ChatList_EmptyChatListFilterText: String { return self._s[727]! } + public var PeopleNearby_Description: String { return self._s[728]! } + public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[729]! } + public var VoiceChat_InviteLink_CopyListenerLink: String { return self._s[730]! } + public var VoiceChat_EditTitleRemoveSuccess: String { return self._s[731]! } + public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[733]! } + public var Watch_Message_ForwardedFrom: String { return self._s[734]! } + public var Notification_Mute1h: String { return self._s[735]! } + public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[736]! } + public var SettingsSearch_Synonyms_Privacy_AuthSessions: String { return self._s[738]! } + public var Channel_Edit_LinkItem: String { return self._s[739]! } + public var Presence_online: String { return self._s[740]! } + public var AutoDownloadSettings_Title: String { return self._s[741]! } + public var Conversation_MessageDialogRetry: String { return self._s[742]! } + public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[744]! } + public var Channel_About_Placeholder: String { return self._s[746]! } + public var Passport_Language_sl: String { return self._s[747]! } + public var AppleWatch_Title: String { return self._s[749]! } + public var RepliesChat_DescriptionText: String { return self._s[751]! } + public var Stats_Message_PrivateShares: String { return self._s[752]! } + public var Settings_ViewPhoto: String { return self._s[753]! } + public var Conversation_ForwardTooltip_SavedMessages_One: String { return self._s[754]! } + public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[755]! } + public var Cache_ClearProgress: String { return self._s[756]! } + public var Cache_Music: String { return self._s[757]! } + public var Conversation_ContextMenuShare: String { return self._s[759]! } + public var AutoDownloadSettings_Unlimited: String { return self._s[760]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[761]! } + public var Contacts_PermissionsAllow: String { return self._s[762]! } + public var Passport_Language_vi: String { return self._s[764]! } + public var TwoFactorSetup_PasswordRecovery_PlaceholderPassword: String { return self._s[765]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[767]!, self._r[767]!, [_1, _2]) + return formatWithArgumentRanges(self._s[768]!, self._r[768]!, [_1, _2]) } - public var Passport_Language_de: String { return self._s[768]! } - public var Notifications_PermissionsText: String { return self._s[770]! } - public var GroupRemoved_AddToGroup: String { return self._s[771]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[772]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[773]! } - public var Login_TermsOfServiceAgree: String { return self._s[774]! } - public var VoiceOver_Navigation_ProxySettings: String { return self._s[775]! } + public var Passport_Language_de: String { return self._s[769]! } + public var Notifications_PermissionsText: String { return self._s[771]! } + public var GroupRemoved_AddToGroup: String { return self._s[772]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[773]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[774]! } + public var Login_TermsOfServiceAgree: String { return self._s[775]! } + public var VoiceOver_Navigation_ProxySettings: String { return self._s[776]! } public func PUSH_CHAT_JOINED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[776]!, self._r[776]!, [_1, _2]) + return formatWithArgumentRanges(self._s[777]!, self._r[777]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[778]! } - public var VoiceChat_VideoPreviewStopScreenSharing: String { return self._s[779]! } + public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[779]! } + public var VoiceChat_VideoPreviewStopScreenSharing: String { return self._s[780]! } public func PUSH_CHAT_VOICECHAT_START(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[780]!, self._r[780]!, [_1, _2]) + return formatWithArgumentRanges(self._s[781]!, self._r[781]!, [_1, _2]) } - public var ChatListFolder_NameGroups: String { return self._s[781]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[782]! } - public var VoiceChat_EditDescriptionSave: String { return self._s[783]! } + public var ChatListFolder_NameGroups: String { return self._s[782]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[783]! } + public var VoiceChat_EditDescriptionSave: String { return self._s[784]! } public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[784]!, self._r[784]!, [_1, _2]) + return formatWithArgumentRanges(self._s[785]!, self._r[785]!, [_1, _2]) } - public var Watch_Suggestion_TalkLater: String { return self._s[785]! } - public var Checkout_ShippingOption_Title: String { return self._s[786]! } - public var Conversation_TitleRepliesEmpty: String { return self._s[787]! } - public var CreatePoll_TextHeader: String { return self._s[788]! } - public var VoiceOver_Chat_Message: String { return self._s[790]! } - public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[791]! } - public var ContactInfo_Note: String { return self._s[793]! } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[794]! } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[795]! } - public var AutoDownloadSettings_Photos: String { return self._s[796]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[797]! } + public var Watch_Suggestion_TalkLater: String { return self._s[786]! } + public var Checkout_ShippingOption_Title: String { return self._s[787]! } + public var Conversation_TitleRepliesEmpty: String { return self._s[788]! } + public var CreatePoll_TextHeader: String { return self._s[789]! } + public var VoiceOver_Chat_Message: String { return self._s[791]! } + public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[792]! } + public var ContactInfo_Note: String { return self._s[794]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[795]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[796]! } + public var AutoDownloadSettings_Photos: String { return self._s[797]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[798]! } public func Conversation_ForwardTooltip_Chat_One(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[798]!, self._r[798]!, [_0]) + return formatWithArgumentRanges(self._s[799]!, self._r[799]!, [_0]) } - public var Channel_Info_Subscribers: String { return self._s[799]! } - public var ChatList_DeleteForCurrentUser: String { return self._s[800]! } - public var ChatListFolderSettings_FoldersSection: String { return self._s[801]! } - public var ChannelInfo_ScheduleVoiceChat: String { return self._s[802]! } - public var VoiceOver_ChatList_OutgoingMessage: String { return self._s[803]! } + public var Channel_Info_Subscribers: String { return self._s[800]! } + public var ChatList_DeleteForCurrentUser: String { return self._s[801]! } + public var ChatListFolderSettings_FoldersSection: String { return self._s[802]! } + public var ChannelInfo_ScheduleVoiceChat: String { return self._s[803]! } + public var VoiceOver_ChatList_OutgoingMessage: String { return self._s[804]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[807]!, self._r[807]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[808]!, self._r[808]!, [_1, _2, _3]) } - public var AutoNightTheme_System: String { return self._s[808]! } - public var Call_StatusWaiting: String { return self._s[809]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[810]! } + public var AutoNightTheme_System: String { return self._s[809]! } + public var Call_StatusWaiting: String { return self._s[810]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[811]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[811]!, self._r[811]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[812]!, self._r[812]!, [_1, _2, _3]) } - public var Conversation_ContextMenuCopy: String { return self._s[813]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[814]! } - public var Notifications_InAppNotificationsVibrate: String { return self._s[815]! } + public var Conversation_ContextMenuCopy: String { return self._s[814]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[815]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[816]! } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[816]!, self._r[816]!, [_0]) + return formatWithArgumentRanges(self._s[817]!, self._r[817]!, [_0]) } - public var Group_Status: String { return self._s[818]! } - public var Group_Setup_HistoryVisible: String { return self._s[819]! } - public var Conversation_UploadFileTooLarge: String { return self._s[820]! } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[821]! } - public var Paint_Edit: String { return self._s[822]! } - public var PeerInfo_AutoremoveMessages: String { return self._s[823]! } + public var Group_Status: String { return self._s[819]! } + public var Group_Setup_HistoryVisible: String { return self._s[820]! } + public var Conversation_UploadFileTooLarge: String { return self._s[821]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[822]! } + public var Paint_Edit: String { return self._s[823]! } + public var PeerInfo_AutoremoveMessages: String { return self._s[824]! } public func ChatImport_SelectionConfirmationGroupWithoutTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[825]!, self._r[825]!, [_0]) + return formatWithArgumentRanges(self._s[826]!, self._r[826]!, [_0]) } - public var Channel_EditAdmin_CannotEdit: String { return self._s[826]! } - public var Username_InvalidTooShort: String { return self._s[827]! } - public var ClearCache_StorageOtherApps: String { return self._s[829]! } - public var Conversation_ViewMessage: String { return self._s[830]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[832]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[827]! } + public var Username_InvalidTooShort: String { return self._s[828]! } + public var ClearCache_StorageOtherApps: String { return self._s[830]! } + public var Conversation_ViewMessage: String { return self._s[831]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[833]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[833]!, self._r[833]!, [_0]) + return formatWithArgumentRanges(self._s[834]!, self._r[834]!, [_0]) } - public var CallSettings_Title: String { return self._s[834]! } + public var CallSettings_Title: String { return self._s[835]! } public func Conversation_BotInteractiveUrlAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[835]!, self._r[835]!, [_0]) + return formatWithArgumentRanges(self._s[836]!, self._r[836]!, [_0]) } public func VoiceOver_Chat_ContactFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[838]!, self._r[838]!, [_0]) + return formatWithArgumentRanges(self._s[839]!, self._r[839]!, [_0]) } - public var PUSH_SENDER_YOU: String { return self._s[841]! } + public var PUSH_SENDER_YOU: String { return self._s[842]! } public func Conversation_DeletedFromContacts(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[842]!, self._r[842]!, [_0]) + return formatWithArgumentRanges(self._s[843]!, self._r[843]!, [_0]) } - public var Profile_ShareContactButton: String { return self._s[843]! } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[844]! } + public var Profile_ShareContactButton: String { return self._s[844]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[845]! } public func VoiceOver_Chat_StickerFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[845]!, self._r[845]!, [_0]) + return formatWithArgumentRanges(self._s[846]!, self._r[846]!, [_0]) } - public var Map_ShareLiveLocation: String { return self._s[846]! } - public var ChatListFolder_TitleEdit: String { return self._s[847]! } + public var Map_ShareLiveLocation: String { return self._s[847]! } + public var ChatListFolder_TitleEdit: String { return self._s[848]! } public func VoiceOver_Chat_AnimatedStickerFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[848]!, self._r[848]!, [_0]) + return formatWithArgumentRanges(self._s[849]!, self._r[849]!, [_0]) } - public var Passport_Address_Address: String { return self._s[850]! } - public var LastSeen_JustNow: String { return self._s[852]! } + public var Passport_Address_Address: String { return self._s[851]! } + public var LastSeen_JustNow: String { return self._s[853]! } public func SecretImage_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[853]!, self._r[853]!, [_0]) + return formatWithArgumentRanges(self._s[854]!, self._r[854]!, [_0]) } - public var ContactInfo_PhoneLabelOther: String { return self._s[854]! } - public var PasscodeSettings_DoNotMatch: String { return self._s[855]! } - public var Weekday_Today: String { return self._s[858]! } - public var DialogList_Title: String { return self._s[859]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[860]! } - public var Cache_ClearCache: String { return self._s[861]! } - public var CreatePoll_ExplanationInfo: String { return self._s[862]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[864]! } - public var Stats_MessageTitle: String { return self._s[865]! } - public var Passport_Address_Street: String { return self._s[867]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[855]! } + public var PasscodeSettings_DoNotMatch: String { return self._s[856]! } + public var Weekday_Today: String { return self._s[859]! } + public var DialogList_Title: String { return self._s[860]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[861]! } + public var Cache_ClearCache: String { return self._s[862]! } + public var CreatePoll_ExplanationInfo: String { return self._s[863]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[865]! } + public var Stats_MessageTitle: String { return self._s[866]! } + public var Passport_Address_Street: String { return self._s[868]! } public func Channel_AdminLog_MessageRemovedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[868]!, self._r[868]!, [_0]) + return formatWithArgumentRanges(self._s[869]!, self._r[869]!, [_0]) } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[869]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[870]! } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[870]!, self._r[870]!, [_0]) + return formatWithArgumentRanges(self._s[871]!, self._r[871]!, [_0]) } - public var TwoStepAuth_Email: String { return self._s[872]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[873]! } - public var PrivacySettings_PasscodeOn: String { return self._s[874]! } - public var Camera_SquareMode: String { return self._s[876]! } - public var SocksProxySetup_Port: String { return self._s[877]! } - public var Watch_LastSeen_JustNow: String { return self._s[879]! } + public var TwoStepAuth_Email: String { return self._s[873]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[874]! } + public var PrivacySettings_PasscodeOn: String { return self._s[875]! } + public var Camera_SquareMode: String { return self._s[877]! } + public var SocksProxySetup_Port: String { return self._s[878]! } + public var Watch_LastSeen_JustNow: String { return self._s[880]! } public func Location_ProximityAlertSetText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[880]!, self._r[880]!, [_1, _2]) - } - public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[881]!, self._r[881]!, [_1, _2]) } + public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[882]!, self._r[882]!, [_1, _2]) + } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[882]!, self._r[882]!, [_0]) + return formatWithArgumentRanges(self._s[883]!, self._r[883]!, [_0]) } - public var VoiceChat_CancelVoiceChat: String { return self._s[883]! } - public var EditTheme_Expand_Preview_OutgoingText: String { return self._s[884]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[885]! } - public var Watch_Suggestion_HoldOn: String { return self._s[888]! } + public var VoiceChat_CancelVoiceChat: String { return self._s[884]! } + public var EditTheme_Expand_Preview_OutgoingText: String { return self._s[885]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[886]! } + public var Watch_Suggestion_HoldOn: String { return self._s[889]! } public func PUSH_CHANNEL_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[889]!, self._r[889]!, [_1]) + return formatWithArgumentRanges(self._s[890]!, self._r[890]!, [_1]) } - public var CallSettings_TabIcon: String { return self._s[890]! } - public var ScheduledMessages_SendNow: String { return self._s[891]! } - public var Stats_GroupTopWeekdaysTitle: String { return self._s[892]! } - public var ImportStickerPack_NamePlaceholder: String { return self._s[893]! } - public var UserInfo_PhoneCall: String { return self._s[894]! } - public var Month_GenMarch: String { return self._s[895]! } - public var Camera_Discard: String { return self._s[896]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[897]! } - public var Passport_RequestedInformation: String { return self._s[898]! } - public var VoiceChat_RecordingTitlePlaceholder: String { return self._s[900]! } + public var CallSettings_TabIcon: String { return self._s[891]! } + public var ScheduledMessages_SendNow: String { return self._s[892]! } + public var Stats_GroupTopWeekdaysTitle: String { return self._s[893]! } + public var ImportStickerPack_NamePlaceholder: String { return self._s[894]! } + public var UserInfo_PhoneCall: String { return self._s[895]! } + public var Month_GenMarch: String { return self._s[896]! } + public var Camera_Discard: String { return self._s[897]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[898]! } + public var Passport_RequestedInformation: String { return self._s[899]! } + public var VoiceChat_RecordingTitlePlaceholder: String { return self._s[901]! } public func Notification_ProximityYouReached(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[901]!, self._r[901]!, [_1, _2]) + return formatWithArgumentRanges(self._s[902]!, self._r[902]!, [_1, _2]) } - public var Passport_Language_ro: String { return self._s[902]! } + public var Passport_Language_ro: String { return self._s[903]! } public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[903]!, self._r[903]!, [_1, _2]) + return formatWithArgumentRanges(self._s[904]!, self._r[904]!, [_1, _2]) } - public var AutoDownloadSettings_ResetHelp: String { return self._s[904]! } - public var Passport_Identity_DocumentDetails: String { return self._s[906]! } - public var Passport_Address_ScansHelp: String { return self._s[907]! } - public var Location_LiveLocationRequired_Title: String { return self._s[908]! } - public var WallpaperPreview_PreviewBottomTextAnimatable: String { return self._s[909]! } - public var ClearCache_StorageCache: String { return self._s[910]! } - public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[911]! } - public var Conversation_RestrictedText: String { return self._s[912]! } - public var Notifications_MessageNotifications: String { return self._s[914]! } - public var Passport_Scans: String { return self._s[915]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[905]! } + public var Passport_Identity_DocumentDetails: String { return self._s[907]! } + public var Passport_Address_ScansHelp: String { return self._s[908]! } + public var Location_LiveLocationRequired_Title: String { return self._s[909]! } + public var WallpaperPreview_PreviewBottomTextAnimatable: String { return self._s[910]! } + public var ClearCache_StorageCache: String { return self._s[911]! } + public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[912]! } + public var Conversation_RestrictedText: String { return self._s[913]! } + public var Notifications_MessageNotifications: String { return self._s[915]! } + public var Passport_Scans: String { return self._s[916]! } public func VoiceChat_StatusStartsIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[917]!, self._r[917]!, [_0]) + return formatWithArgumentRanges(self._s[918]!, self._r[918]!, [_0]) } - public var TwoStepAuth_SetupHintTitle: String { return self._s[918]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[919]! } - public var Passport_Identity_SelfieHelp: String { return self._s[920]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[921]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[922]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[923]! } - public var PeerInfo_ButtonSearch: String { return self._s[924]! } + public var TwoStepAuth_SetupHintTitle: String { return self._s[919]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[920]! } + public var Passport_Identity_SelfieHelp: String { return self._s[921]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[922]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[923]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[924]! } + public var PeerInfo_ButtonSearch: String { return self._s[925]! } public func Notification_ProximityReachedYou(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[927]!, self._r[927]!, [_1, _2]) + return formatWithArgumentRanges(self._s[928]!, self._r[928]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[928]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[930]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[931]! } - public var Month_GenSeptember: String { return self._s[932]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[929]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[931]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[932]! } + public var Month_GenSeptember: String { return self._s[933]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[934]!, self._r[934]!, [_1, _2]) + return formatWithArgumentRanges(self._s[935]!, self._r[935]!, [_1, _2]) } - public var StickerPacksSettings_ArchivedPacks: String { return self._s[935]! } + public var StickerPacksSettings_ArchivedPacks: String { return self._s[936]! } public func Notification_VoiceChatInvitation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[937]!, self._r[937]!, [_1, _2]) + return formatWithArgumentRanges(self._s[938]!, self._r[938]!, [_1, _2]) } public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[938]!, self._r[938]!, [_0]) + return formatWithArgumentRanges(self._s[939]!, self._r[939]!, [_0]) } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[940]!, self._r[940]!, [_1, _2]) - } - public func PUSH_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[941]!, self._r[941]!, [_1, _2]) } - public var Calls_NotNow: String { return self._s[943]! } - public var Settings_ChatFolders: String { return self._s[948]! } - public var Login_PadPhoneHelpTitle: String { return self._s[949]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[950]! } - public var Widget_MessageAutoremoveTimerRemoved: String { return self._s[951]! } - public var VoiceChat_RecordingSaved: String { return self._s[952]! } - public var Settings_ChatBackground: String { return self._s[953]! } + public func PUSH_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[942]!, self._r[942]!, [_1, _2]) + } + public var Calls_NotNow: String { return self._s[944]! } + public var Settings_ChatFolders: String { return self._s[949]! } + public var Login_PadPhoneHelpTitle: String { return self._s[950]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[951]! } + public var Widget_MessageAutoremoveTimerRemoved: String { return self._s[952]! } + public var VoiceChat_RecordingSaved: String { return self._s[953]! } + public var Settings_ChatBackground: String { return self._s[954]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[955]!, self._r[955]!, [_1, _2]) + return formatWithArgumentRanges(self._s[956]!, self._r[956]!, [_1, _2]) } - public var ProxyServer_VoiceOver_Active: String { return self._s[956]! } - public var Call_StatusBusy: String { return self._s[957]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[958]! } - public var Login_NetworkError: String { return self._s[960]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[961]! } - public var Privacy_Calls_Integration: String { return self._s[962]! } - public var DialogList_SearchSectionMessages: String { return self._s[963]! } - public var AutoDownloadSettings_VideosTitle: String { return self._s[964]! } - public var Preview_DeletePhoto: String { return self._s[965]! } - public var VoiceChat_Video: String { return self._s[966]! } - public var PrivacySettings_PhoneNumber: String { return self._s[968]! } - public var Forward_ErrorDisabledForChat: String { return self._s[969]! } - public var Watch_Compose_CurrentLocation: String { return self._s[970]! } - public var Settings_CallSettings: String { return self._s[971]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[972]! } - public var Conversation_StickerRemovedFromFavorites: String { return self._s[973]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[974]! } - public var ChatSettings_AutoPlayAnimations: String { return self._s[975]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[976]! } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[977]! } - public var Map_LiveLocationFor1Hour: String { return self._s[978]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[957]! } + public var Call_StatusBusy: String { return self._s[958]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[959]! } + public var Login_NetworkError: String { return self._s[961]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[962]! } + public var Privacy_Calls_Integration: String { return self._s[963]! } + public var DialogList_SearchSectionMessages: String { return self._s[964]! } + public var AutoDownloadSettings_VideosTitle: String { return self._s[965]! } + public var Preview_DeletePhoto: String { return self._s[966]! } + public var VoiceChat_Video: String { return self._s[967]! } + public var PrivacySettings_PhoneNumber: String { return self._s[969]! } + public var Forward_ErrorDisabledForChat: String { return self._s[970]! } + public var Watch_Compose_CurrentLocation: String { return self._s[971]! } + public var Settings_CallSettings: String { return self._s[972]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[973]! } + public var Conversation_StickerRemovedFromFavorites: String { return self._s[974]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[975]! } + public var ChatSettings_AutoPlayAnimations: String { return self._s[976]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[977]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[978]! } + public var Map_LiveLocationFor1Hour: String { return self._s[979]! } public func Privacy_GroupsAndChannels_InviteToGroupError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[979]!, self._r[979]!, [_0, _1]) + return formatWithArgumentRanges(self._s[980]!, self._r[980]!, [_0, _1]) } - public var VoiceChat_MutedByAdmin: String { return self._s[980]! } + public var VoiceChat_MutedByAdmin: String { return self._s[981]! } public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[981]!, self._r[981]!, [_0]) + return formatWithArgumentRanges(self._s[982]!, self._r[982]!, [_0]) } - public var Conversation_UnvotePoll: String { return self._s[982]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[983]! } + public var Conversation_UnvotePoll: String { return self._s[983]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[984]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[984]!, self._r[984]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[985]!, self._r[985]!, [_1, "\(_2)"]) } - public var Passport_InfoTitle: String { return self._s[985]! } + public var Passport_InfoTitle: String { return self._s[986]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[986]!, self._r[986]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[987]!, self._r[987]!, ["\(_0)"]) } - public var AccentColor_Title: String { return self._s[987]! } + public var AccentColor_Title: String { return self._s[988]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[988]!, self._r[988]!, [_1, _2]) + return formatWithArgumentRanges(self._s[989]!, self._r[989]!, [_1, _2]) } public func Notification_JoinedChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[991]!, self._r[991]!, [_0]) + return formatWithArgumentRanges(self._s[992]!, self._r[992]!, [_0]) } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[992]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[993]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[994]! } - public var VoiceOver_Editing_ClearText: String { return self._s[995]! } - public var Conversation_Unarchive: String { return self._s[996]! } - public var Notification_CallOutgoing: String { return self._s[997]! } - public var Channel_Setup_PublicNoLink: String { return self._s[998]! } - public var Passport_Identity_GenderPlaceholder: String { return self._s[999]! } - public var Message_Animation: String { return self._s[1000]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[1001]! } - public var ChatSettings_ConnectionType_Title: String { return self._s[1002]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[993]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[994]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[995]! } + public var VoiceOver_Editing_ClearText: String { return self._s[996]! } + public var Conversation_Unarchive: String { return self._s[997]! } + public var Notification_CallOutgoing: String { return self._s[998]! } + public var Channel_Setup_PublicNoLink: String { return self._s[999]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1000]! } + public var Message_Animation: String { return self._s[1001]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[1002]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[1003]! } public func Watch_Time_ShortFullAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1003]!, self._r[1003]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1004]!, self._r[1004]!, [_1, _2]) } public func VoiceChat_StatusSpeakingVolume(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1004]!, self._r[1004]!, [_0]) + return formatWithArgumentRanges(self._s[1005]!, self._r[1005]!, [_0]) } - public var Notification_CallBack: String { return self._s[1005]! } - public var Appearance_Title: String { return self._s[1008]! } - public var NotificationsSound_Glass: String { return self._s[1010]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[1012]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[1014]! } - public var ChatSearch_SearchPlaceholder: String { return self._s[1015]! } - public var Passport_Identity_AddPassport: String { return self._s[1016]! } - public var GroupPermission_NoAddMembers: String { return self._s[1018]! } - public var ContactList_Context_SendMessage: String { return self._s[1019]! } - public var PhotoEditor_GrainTool: String { return self._s[1020]! } - public var Settings_CopyPhoneNumber: String { return self._s[1021]! } - public var Passport_Address_City: String { return self._s[1022]! } - public var VoiceChat_LeaveAndCancelVoiceChat: String { return self._s[1023]! } - public var ChannelRemoved_RemoveInfo: String { return self._s[1024]! } - public var SocksProxySetup_Password: String { return self._s[1026]! } - public var Settings_Passport: String { return self._s[1027]! } - public var Channel_MessagePhotoUpdated: String { return self._s[1029]! } - public var Stats_LanguagesTitle: String { return self._s[1030]! } - public var ChatList_PeerTypeGroup: String { return self._s[1031]! } - public var Privacy_Calls_P2PHelp: String { return self._s[1032]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[1033]! } - public var Embed_PlayingInPIP: String { return self._s[1034]! } - public var ImportStickerPack_GeneratingLink: String { return self._s[1036]! } - public var BlockedUsers_BlockUser: String { return self._s[1038]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[1039]! } + public var Notification_CallBack: String { return self._s[1006]! } + public var Appearance_Title: String { return self._s[1009]! } + public var NotificationsSound_Glass: String { return self._s[1011]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[1013]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[1015]! } + public var ChatSearch_SearchPlaceholder: String { return self._s[1016]! } + public var Passport_Identity_AddPassport: String { return self._s[1017]! } + public var GroupPermission_NoAddMembers: String { return self._s[1019]! } + public var ContactList_Context_SendMessage: String { return self._s[1020]! } + public var PhotoEditor_GrainTool: String { return self._s[1021]! } + public var Settings_CopyPhoneNumber: String { return self._s[1022]! } + public var Passport_Address_City: String { return self._s[1023]! } + public var VoiceChat_LeaveAndCancelVoiceChat: String { return self._s[1024]! } + public var ChannelRemoved_RemoveInfo: String { return self._s[1025]! } + public var SocksProxySetup_Password: String { return self._s[1027]! } + public var Settings_Passport: String { return self._s[1028]! } + public var Channel_MessagePhotoUpdated: String { return self._s[1030]! } + public var Stats_LanguagesTitle: String { return self._s[1031]! } + public var ChatList_PeerTypeGroup: String { return self._s[1032]! } + public var Privacy_Calls_P2PHelp: String { return self._s[1033]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[1034]! } + public var Embed_PlayingInPIP: String { return self._s[1035]! } + public var ImportStickerPack_GeneratingLink: String { return self._s[1037]! } + public var BlockedUsers_BlockUser: String { return self._s[1039]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[1040]! } public func PUSH_CHANNEL_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1040]!, self._r[1040]!, [_1]) + return formatWithArgumentRanges(self._s[1041]!, self._r[1041]!, [_1]) } - public var AuthSessions_LoggedIn: String { return self._s[1041]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[1042]! } - public var Activity_UploadingDocument: String { return self._s[1043]! } - public var PeopleNearby_NoMembers: String { return self._s[1044]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1047]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[1048]! } - public var VoiceOver_Chat_OpenLinkHint: String { return self._s[1049]! } - public var InstantPage_VoiceOver_IncreaseFontSize: String { return self._s[1050]! } - public var Settings_ViewVideo: String { return self._s[1051]! } - public var Map_ShowPlaces: String { return self._s[1053]! } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1054]! } - public var InviteLink_Create_Title: String { return self._s[1055]! } - public var Notification_CreatedGroup: String { return self._s[1056]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[1057]! } + public var AuthSessions_LoggedIn: String { return self._s[1042]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[1043]! } + public var Activity_UploadingDocument: String { return self._s[1044]! } + public var PeopleNearby_NoMembers: String { return self._s[1045]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1048]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[1049]! } + public var VoiceOver_Chat_OpenLinkHint: String { return self._s[1050]! } + public var InstantPage_VoiceOver_IncreaseFontSize: String { return self._s[1051]! } + public var Settings_ViewVideo: String { return self._s[1052]! } + public var Map_ShowPlaces: String { return self._s[1054]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1055]! } + public var InviteLink_Create_Title: String { return self._s[1056]! } + public var Notification_CreatedGroup: String { return self._s[1057]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[1058]! } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1058]!, self._r[1058]!, [_0]) + return formatWithArgumentRanges(self._s[1059]!, self._r[1059]!, [_0]) } - public var Conversation_StatusLeftGroup: String { return self._s[1059]! } - public var Theme_Colors_Messages: String { return self._s[1060]! } - public var AuthSessions_EmptyText: String { return self._s[1061]! } + public var Conversation_StatusLeftGroup: String { return self._s[1060]! } + public var Theme_Colors_Messages: String { return self._s[1061]! } + public var AuthSessions_EmptyText: String { return self._s[1062]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1062]!, self._r[1062]!, [_1]) + return formatWithArgumentRanges(self._s[1063]!, self._r[1063]!, [_1]) } - public var UserInfo_StartSecretChat: String { return self._s[1063]! } - public var ChatListFolderSettings_EditFoldersInfo: String { return self._s[1064]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[1065]! } - public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1066]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[1068]! } - public var PeerInfo_PaneFiles: String { return self._s[1069]! } - public var VoiceChat_DisplayAs: String { return self._s[1070]! } - public var PrivacySettings_AutoArchive: String { return self._s[1071]! } - public var Camera_VideoMode: String { return self._s[1072]! } - public var NotificationsSound_Alert: String { return self._s[1073]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1074]! } - public var Appearance_AutoNightTheme: String { return self._s[1075]! } - public var Passport_Language_he: String { return self._s[1076]! } - public var Passport_InvalidPasswordError: String { return self._s[1077]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1078]! } - public var UserInfo_InviteBotToGroup: String { return self._s[1079]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[1080]! } - public var Common_TakePhoto: String { return self._s[1081]! } + public var UserInfo_StartSecretChat: String { return self._s[1064]! } + public var ChatListFolderSettings_EditFoldersInfo: String { return self._s[1065]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[1066]! } + public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1067]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[1069]! } + public var PeerInfo_PaneFiles: String { return self._s[1070]! } + public var VoiceChat_DisplayAs: String { return self._s[1071]! } + public var PrivacySettings_AutoArchive: String { return self._s[1072]! } + public var Camera_VideoMode: String { return self._s[1073]! } + public var NotificationsSound_Alert: String { return self._s[1074]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1075]! } + public var Appearance_AutoNightTheme: String { return self._s[1076]! } + public var Passport_Language_he: String { return self._s[1077]! } + public var Passport_InvalidPasswordError: String { return self._s[1078]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1079]! } + public var UserInfo_InviteBotToGroup: String { return self._s[1080]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[1081]! } + public var Common_TakePhoto: String { return self._s[1082]! } public func Channel_AdminLog_RevokedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1082]!, self._r[1082]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1083]!, self._r[1083]!, [_1, _2]) } - public var Passport_Email_UseTelegramEmailHelp: String { return self._s[1083]! } - public var ChatList_Context_JoinChannel: String { return self._s[1084]! } - public var MediaPlayer_UnknownArtist: String { return self._s[1085]! } - public var VoiceChat_EditDescriptionText: String { return self._s[1086]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[1089]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[1090]! } - public var EditTheme_UploadEditedTheme: String { return self._s[1091]! } - public var Settings_SetProfilePhotoOrVideo: String { return self._s[1093]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[1094]! } - public var MessagePoll_ViewResults: String { return self._s[1095]! } - public var Group_Setup_TypePrivateHelp: String { return self._s[1096]! } + public var Passport_Email_UseTelegramEmailHelp: String { return self._s[1084]! } + public var ChatList_Context_JoinChannel: String { return self._s[1085]! } + public var MediaPlayer_UnknownArtist: String { return self._s[1086]! } + public var VoiceChat_EditDescriptionText: String { return self._s[1087]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[1090]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[1091]! } + public var EditTheme_UploadEditedTheme: String { return self._s[1092]! } + public var Settings_SetProfilePhotoOrVideo: String { return self._s[1094]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[1095]! } + public var MessagePoll_ViewResults: String { return self._s[1096]! } + public var Group_Setup_TypePrivateHelp: String { return self._s[1097]! } public func UserInfo_ContactForwardTooltip_Chat_One(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1097]!, self._r[1097]!, [_0]) + return formatWithArgumentRanges(self._s[1098]!, self._r[1098]!, [_0]) } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1098]! } - public var Privacy_PaymentsClear_ShippingInfoCleared: String { return self._s[1099]! } - public var ChatList_Search_ShowLess: String { return self._s[1100]! } - public var InviteLink_Create_UsersLimitNoLimit: String { return self._s[1101]! } - public var UserInfo_ShareBot: String { return self._s[1102]! } - public var Privacy_Calls_P2P: String { return self._s[1104]! } - public var WebBrowser_InAppSafari: String { return self._s[1105]! } - public var SharedMedia_EmptyFilesText: String { return self._s[1108]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[1109]! } - public var GroupInfo_SetSound: String { return self._s[1110]! } - public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1111]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1099]! } + public var Privacy_PaymentsClear_ShippingInfoCleared: String { return self._s[1100]! } + public var ChatList_Search_ShowLess: String { return self._s[1101]! } + public var InviteLink_Create_UsersLimitNoLimit: String { return self._s[1102]! } + public var UserInfo_ShareBot: String { return self._s[1103]! } + public var Privacy_Calls_P2P: String { return self._s[1105]! } + public var WebBrowser_InAppSafari: String { return self._s[1106]! } + public var SharedMedia_EmptyFilesText: String { return self._s[1109]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[1110]! } + public var GroupInfo_SetSound: String { return self._s[1111]! } + public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1112]! } public func Conversation_AutoremoveRemainingTime(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1112]!, self._r[1112]!, [_0]) + return formatWithArgumentRanges(self._s[1113]!, self._r[1113]!, [_0]) } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1113]! } - public var Channel_AdminLogFilter_EventsAll: String { return self._s[1114]! } - public var CallSettings_UseLessData: String { return self._s[1115]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[1116]! } - public var NotificationsSound_Chord: String { return self._s[1117]! } - public var PhotoEditor_CurvesTool: String { return self._s[1118]! } - public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1119]! } - public var Resolve_ErrorNotFound: String { return self._s[1120]! } - public var Activity_PlayingGame: String { return self._s[1121]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1114]! } + public var Channel_AdminLogFilter_EventsAll: String { return self._s[1115]! } + public var CallSettings_UseLessData: String { return self._s[1116]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[1117]! } + public var NotificationsSound_Chord: String { return self._s[1118]! } + public var PhotoEditor_CurvesTool: String { return self._s[1119]! } + public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1120]! } + public var Resolve_ErrorNotFound: String { return self._s[1121]! } + public var Activity_PlayingGame: String { return self._s[1122]! } public func VoiceChat_InvitedPeerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1125]!, self._r[1125]!, [_0]) + return formatWithArgumentRanges(self._s[1126]!, self._r[1126]!, [_0]) } - public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1126]! } + public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1127]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1127]!, self._r[1127]!, [_1]) + return formatWithArgumentRanges(self._s[1128]!, self._r[1128]!, [_1]) } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[1128]! } - public var Notification_CallIncoming: String { return self._s[1129]! } - public var Stats_EnabledNotifications: String { return self._s[1130]! } - public var Notification_VoiceChatStartedChannel: String { return self._s[1131]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[1132]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1133]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[1129]! } + public var Notification_CallIncoming: String { return self._s[1130]! } + public var Stats_EnabledNotifications: String { return self._s[1131]! } + public var Notification_VoiceChatStartedChannel: String { return self._s[1132]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[1133]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1134]! } public func Activity_RemindAboutChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1134]!, self._r[1134]!, [_0]) + return formatWithArgumentRanges(self._s[1135]!, self._r[1135]!, [_0]) } - public var VoiceChat_StatusMutedYou: String { return self._s[1135]! } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[1136]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[1137]! } - public var StickerPacksSettings_Title: String { return self._s[1138]! } + public var VoiceChat_StatusMutedYou: String { return self._s[1136]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[1137]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[1138]! } + public var StickerPacksSettings_Title: String { return self._s[1139]! } public func Channel_AdminLog_MessageGroupPreHistoryVisible(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1139]!, self._r[1139]!, [_0]) + return formatWithArgumentRanges(self._s[1140]!, self._r[1140]!, [_0]) } - public var Watch_NoConnection: String { return self._s[1140]! } - public var EncryptionKey_Title: String { return self._s[1141]! } - public var Widget_AuthRequired: String { return self._s[1142]! } + public var Watch_NoConnection: String { return self._s[1141]! } + public var EncryptionKey_Title: String { return self._s[1142]! } + public var Widget_AuthRequired: String { return self._s[1143]! } public func PUSH_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1143]!, self._r[1143]!, [_1]) + return formatWithArgumentRanges(self._s[1144]!, self._r[1144]!, [_1]) } - public var Notifications_ExceptionsTitle: String { return self._s[1144]! } - public var EditTheme_Expand_TopInfo: String { return self._s[1145]! } + public var Notifications_ExceptionsTitle: String { return self._s[1145]! } + public var EditTheme_Expand_TopInfo: String { return self._s[1146]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1146]!, self._r[1146]!, [_0]) + return formatWithArgumentRanges(self._s[1147]!, self._r[1147]!, [_0]) } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[1148]! } - public var Notifications_GroupNotificationsSound: String { return self._s[1149]! } - public var VoiceChat_SpeakPermissionAdmin: String { return self._s[1150]! } - public var Passport_Email_EnterOtherEmail: String { return self._s[1151]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[1149]! } + public var Notifications_GroupNotificationsSound: String { return self._s[1150]! } + public var VoiceChat_SpeakPermissionAdmin: String { return self._s[1151]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[1152]! } public func VoiceChat_RemovePeerConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1154]!, self._r[1154]!, [_0]) + return formatWithArgumentRanges(self._s[1155]!, self._r[1155]!, [_0]) } - public var Conversation_AddToContacts: String { return self._s[1155]! } - public var AutoDownloadSettings_DataUsageMedium: String { return self._s[1156]! } - public var AuthSessions_LogOutApplications: String { return self._s[1158]! } - public var VoiceChat_LeaveVoiceChat: String { return self._s[1159]! } - public var ChatList_Context_Unpin: String { return self._s[1160]! } - public var PeopleNearby_DiscoverDescription: String { return self._s[1161]! } - public var UserInfo_FakeBotWarning: String { return self._s[1162]! } - public var Notification_MessageLifetime1d: String { return self._s[1163]! } - public var PrivacyLastSeenSettings_NeverShareWith_Title: String { return self._s[1164]! } - public var ChatListFolder_CategoryChannels: String { return self._s[1165]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[1166]! } - public var Notifications_PermissionsAllow: String { return self._s[1167]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[1168]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1170]! } - public var VoiceChat_ImproveYourProfileText: String { return self._s[1171]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1172]! } - public var ChatImportActivity_ErrorInvalidChatType: String { return self._s[1173]! } + public var Conversation_AddToContacts: String { return self._s[1156]! } + public var AutoDownloadSettings_DataUsageMedium: String { return self._s[1157]! } + public var AuthSessions_LogOutApplications: String { return self._s[1159]! } + public var VoiceChat_LeaveVoiceChat: String { return self._s[1160]! } + public var ChatList_Context_Unpin: String { return self._s[1161]! } + public var PeopleNearby_DiscoverDescription: String { return self._s[1162]! } + public var UserInfo_FakeBotWarning: String { return self._s[1163]! } + public var Notification_MessageLifetime1d: String { return self._s[1164]! } + public var PrivacyLastSeenSettings_NeverShareWith_Title: String { return self._s[1165]! } + public var ChatListFolder_CategoryChannels: String { return self._s[1166]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[1167]! } + public var Notifications_PermissionsAllow: String { return self._s[1168]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[1169]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1171]! } + public var VoiceChat_ImproveYourProfileText: String { return self._s[1172]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1173]! } + public var ChatImportActivity_ErrorInvalidChatType: String { return self._s[1174]! } public func Conversation_ScheduledVoiceChatStartsToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1174]!, self._r[1174]!, [_0]) - } - public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1175]!, self._r[1175]!, [_0]) } - public var Conversation_AutoremoveTimerRemovedChannel: String { return self._s[1177]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[1179]! } - public var WallpaperSearch_ColorPink: String { return self._s[1180]! } - public var ContactInfo_PhoneNumberHidden: String { return self._s[1181]! } - public var Passport_Identity_IssueDate: String { return self._s[1183]! } + public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1176]!, self._r[1176]!, [_0]) + } + public var Conversation_AutoremoveTimerRemovedChannel: String { return self._s[1178]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[1180]! } + public var WallpaperSearch_ColorPink: String { return self._s[1181]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[1182]! } + public var Passport_Identity_IssueDate: String { return self._s[1184]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1184]!, self._r[1184]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1185]!, self._r[1185]!, [_1, _2]) } - public var ChatList_DeleteForAllSubscribersConfirmationText: String { return self._s[1185]! } - public var Channel_Info_Description: String { return self._s[1186]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1187]! } - public var Weekday_ShortTuesday: String { return self._s[1188]! } - public var Common_Back: String { return self._s[1189]! } - public var Chat_PinnedMessagesHiddenTitle: String { return self._s[1191]! } - public var ChatListFolder_AddChats: String { return self._s[1192]! } - public var Common_Close: String { return self._s[1194]! } - public var Map_OpenIn: String { return self._s[1195]! } - public var Group_Setup_HistoryTitle: String { return self._s[1196]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1197]! } - public var Notification_MessageLifetime1h: String { return self._s[1198]! } + public var ChatList_DeleteForAllSubscribersConfirmationText: String { return self._s[1186]! } + public var Channel_Info_Description: String { return self._s[1187]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1188]! } + public var Weekday_ShortTuesday: String { return self._s[1189]! } + public var Common_Back: String { return self._s[1190]! } + public var Chat_PinnedMessagesHiddenTitle: String { return self._s[1192]! } + public var ChatListFolder_AddChats: String { return self._s[1193]! } + public var Common_Close: String { return self._s[1195]! } + public var Map_OpenIn: String { return self._s[1196]! } + public var Group_Setup_HistoryTitle: String { return self._s[1197]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1198]! } + public var Notification_MessageLifetime1h: String { return self._s[1199]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1199]!, self._r[1199]!, [_0]) + return formatWithArgumentRanges(self._s[1200]!, self._r[1200]!, [_0]) } - public var Watch_Contacts_NoResults: String { return self._s[1201]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1202]! } - public var Checkout_Phone: String { return self._s[1203]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[1204]! } + public var Watch_Contacts_NoResults: String { return self._s[1202]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1203]! } + public var Checkout_Phone: String { return self._s[1204]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[1205]! } public func Channel_CommentsGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1205]!, self._r[1205]!, [_0]) + return formatWithArgumentRanges(self._s[1206]!, self._r[1206]!, [_0]) } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1206]!, self._r[1206]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1207]!, self._r[1207]!, ["\(_0)"]) } - public var Conversation_AudioRateTooltipSpeedUp: String { return self._s[1207]! } - public var ChatAdmins_Title: String { return self._s[1208]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[1209]! } + public var Conversation_AudioRateTooltipSpeedUp: String { return self._s[1208]! } + public var ChatAdmins_Title: String { return self._s[1209]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[1210]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1210]!, self._r[1210]!, [_1]) + return formatWithArgumentRanges(self._s[1211]!, self._r[1211]!, [_1]) } - public var Common_Done: String { return self._s[1211]! } - public var ChatList_HeaderImportIntoAnExistingGroup: String { return self._s[1212]! } - public var Appearance_AppIconNew2: String { return self._s[1213]! } + public var Common_Done: String { return self._s[1212]! } + public var ChatList_HeaderImportIntoAnExistingGroup: String { return self._s[1213]! } + public var Appearance_AppIconNew2: String { return self._s[1214]! } public func PUSH_PINNED_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1217]!, self._r[1217]!, [_1]) + return formatWithArgumentRanges(self._s[1218]!, self._r[1218]!, [_1]) } - public var Appearance_ThemeCarouselNight: String { return self._s[1218]! } - public var InviteLink_Expired: String { return self._s[1220]! } - public var Preview_OpenInInstagram: String { return self._s[1221]! } - public var Wallpaper_SetColor: String { return self._s[1226]! } - public var VoiceOver_Media_PlaybackRate: String { return self._s[1227]! } - public var ChatSettings_Groups: String { return self._s[1228]! } + public var Appearance_ThemeCarouselNight: String { return self._s[1219]! } + public var InviteLink_Expired: String { return self._s[1221]! } + public var Preview_OpenInInstagram: String { return self._s[1222]! } + public var Wallpaper_SetColor: String { return self._s[1227]! } + public var VoiceOver_Media_PlaybackRate: String { return self._s[1228]! } + public var ChatSettings_Groups: String { return self._s[1229]! } public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1229]!, self._r[1229]!, [_0]) + return formatWithArgumentRanges(self._s[1230]!, self._r[1230]!, [_0]) } - public var Contacts_SortedByName: String { return self._s[1230]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1231]! } - public var Channel_Management_LabelCreator: String { return self._s[1232]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1233]! } + public var Contacts_SortedByName: String { return self._s[1231]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1232]! } + public var Channel_Management_LabelCreator: String { return self._s[1233]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1234]! } public func PrivacySettings_LastSeenContactsMinusPlus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1234]!, self._r[1234]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1235]!, self._r[1235]!, [_0, _1]) } - public var Group_GroupMembersHeader: String { return self._s[1235]! } - public var Group_PublicLink_Title: String { return self._s[1236]! } - public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1237]! } - public var VoiceOver_Chat_Photo: String { return self._s[1238]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[1239]! } - public var IntentsSettings_SuggestBy: String { return self._s[1240]! } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[1241]! } - public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1242]! } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[1243]! } - public var LogoutOptions_SetPasscodeText: String { return self._s[1244]! } - public var Map_OpenInMaps: String { return self._s[1245]! } - public var ContactInfo_PhoneLabelWorkFax: String { return self._s[1246]! } - public var BlockedUsers_Unblock: String { return self._s[1247]! } + public var Group_GroupMembersHeader: String { return self._s[1236]! } + public var Group_PublicLink_Title: String { return self._s[1237]! } + public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1238]! } + public var VoiceOver_Chat_Photo: String { return self._s[1239]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[1240]! } + public var IntentsSettings_SuggestBy: String { return self._s[1241]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[1242]! } + public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1243]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[1244]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[1245]! } + public var Map_OpenInMaps: String { return self._s[1246]! } + public var ContactInfo_PhoneLabelWorkFax: String { return self._s[1247]! } + public var BlockedUsers_Unblock: String { return self._s[1248]! } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1248]!, self._r[1248]!, [_1, _2]) - } - public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1249]!, self._r[1249]!, [_1, _2]) } - public var ChatImport_CreateGroupAlertTitle: String { return self._s[1251]! } - public var Conversation_Block: String { return self._s[1252]! } - public var VoiceChat_PersonalAccount: String { return self._s[1253]! } - public var Passport_Scans_UploadNew: String { return self._s[1254]! } - public var Share_Title: String { return self._s[1255]! } - public var Conversation_ApplyLocalization: String { return self._s[1256]! } - public var SharedMedia_EmptyLinksText: String { return self._s[1257]! } - public var Settings_NotificationsAndSounds: String { return self._s[1258]! } - public var Stats_ViewsByHoursTitle: String { return self._s[1259]! } - public var PhotoEditor_QualityMedium: String { return self._s[1260]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[1261]! } + public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1250]!, self._r[1250]!, [_1, _2]) + } + public var ChatImport_CreateGroupAlertTitle: String { return self._s[1252]! } + public var Conversation_Block: String { return self._s[1253]! } + public var VoiceChat_PersonalAccount: String { return self._s[1254]! } + public var Passport_Scans_UploadNew: String { return self._s[1255]! } + public var Share_Title: String { return self._s[1256]! } + public var Conversation_ApplyLocalization: String { return self._s[1257]! } + public var SharedMedia_EmptyLinksText: String { return self._s[1258]! } + public var Settings_NotificationsAndSounds: String { return self._s[1259]! } + public var Stats_ViewsByHoursTitle: String { return self._s[1260]! } + public var PhotoEditor_QualityMedium: String { return self._s[1261]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[1262]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1262]!, self._r[1262]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1263]!, self._r[1263]!, [_1, _2]) } - public var Conversation_RestrictedInline: String { return self._s[1263]! } - public var Passport_Language_tr: String { return self._s[1264]! } - public var Call_Mute: String { return self._s[1265]! } + public var Conversation_RestrictedInline: String { return self._s[1264]! } + public var Passport_Language_tr: String { return self._s[1265]! } + public var Call_Mute: String { return self._s[1266]! } public func Conversation_NoticeInvitedByInGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1266]!, self._r[1266]!, [_0]) + return formatWithArgumentRanges(self._s[1267]!, self._r[1267]!, [_0]) } - public var Passport_Language_bn: String { return self._s[1267]! } - public var Common_Save: String { return self._s[1269]! } - public var AccessDenied_LocationTracking: String { return self._s[1271]! } - public var Month_ShortOctober: String { return self._s[1272]! } - public var AutoDownloadSettings_WiFi: String { return self._s[1273]! } - public var ProfilePhoto_SetMainPhoto: String { return self._s[1275]! } - public var ChangePhoneNumberNumber_NewNumber: String { return self._s[1276]! } + public var Passport_Language_bn: String { return self._s[1268]! } + public var Common_Save: String { return self._s[1270]! } + public var AccessDenied_LocationTracking: String { return self._s[1272]! } + public var Month_ShortOctober: String { return self._s[1273]! } + public var AutoDownloadSettings_WiFi: String { return self._s[1274]! } + public var ProfilePhoto_SetMainPhoto: String { return self._s[1276]! } + public var ChangePhoneNumberNumber_NewNumber: String { return self._s[1277]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1277]!, self._r[1277]!, [_0]) + return formatWithArgumentRanges(self._s[1278]!, self._r[1278]!, [_0]) } - public var Watch_ChannelInfo_Title: String { return self._s[1278]! } - public var State_Updating: String { return self._s[1279]! } - public var Conversation_UnblockUser: String { return self._s[1280]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1281]! } - public var Map_GetDirections: String { return self._s[1282]! } - public var Watch_Compose_AddContact: String { return self._s[1284]! } - public var Conversation_Dice_u26BD: String { return self._s[1285]! } - public var AccessDenied_PhotosRestricted: String { return self._s[1286]! } + public var Watch_ChannelInfo_Title: String { return self._s[1279]! } + public var State_Updating: String { return self._s[1280]! } + public var Conversation_UnblockUser: String { return self._s[1281]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1282]! } + public var Map_GetDirections: String { return self._s[1283]! } + public var Watch_Compose_AddContact: String { return self._s[1285]! } + public var Conversation_Dice_u26BD: String { return self._s[1286]! } + public var AccessDenied_PhotosRestricted: String { return self._s[1287]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1287]!, self._r[1287]!, [_1]) + return formatWithArgumentRanges(self._s[1288]!, self._r[1288]!, [_1]) } - public var Map_LoadError: String { return self._s[1289]! } - public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[1290]! } - public var PhotoEditor_CropAuto: String { return self._s[1291]! } + public var Map_LoadError: String { return self._s[1290]! } + public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[1291]! } + public var PhotoEditor_CropAuto: String { return self._s[1292]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1294]!, self._r[1294]!, [_0]) + return formatWithArgumentRanges(self._s[1295]!, self._r[1295]!, [_0]) } - public var Username_TooManyPublicUsernamesError: String { return self._s[1296]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[1297]! } public func PUSH_PINNED_GAME(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1297]!, self._r[1297]!, [_1]) + return formatWithArgumentRanges(self._s[1298]!, self._r[1298]!, [_1]) } - public var Settings_PhoneNumber: String { return self._s[1298]! } + public var Settings_PhoneNumber: String { return self._s[1299]! } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1299]!, self._r[1299]!, [_1]) + return formatWithArgumentRanges(self._s[1300]!, self._r[1300]!, [_1]) } - public var Month_GenJune: String { return self._s[1301]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[1302]! } - public var ChatListFolder_CategoryRead: String { return self._s[1303]! } - public var LoginPassword_ResetAccount: String { return self._s[1304]! } + public var Month_GenJune: String { return self._s[1302]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[1303]! } + public var ChatListFolder_CategoryRead: String { return self._s[1304]! } + public var LoginPassword_ResetAccount: String { return self._s[1305]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1305]!, self._r[1305]!, [_0]) + return formatWithArgumentRanges(self._s[1306]!, self._r[1306]!, [_0]) } - public var Call_CameraConfirmationConfirm: String { return self._s[1306]! } - public var Notification_RenamedChannel: String { return self._s[1307]! } + public var Call_CameraConfirmationConfirm: String { return self._s[1307]! } + public var Notification_RenamedChannel: String { return self._s[1308]! } public func Channel_AdminLog_MessageUnpinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1308]!, self._r[1308]!, [_0]) + return formatWithArgumentRanges(self._s[1309]!, self._r[1309]!, [_0]) } - public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[1309]! } - public var IntentsSettings_Title: String { return self._s[1311]! } - public var CallList_DeleteAllForMe: String { return self._s[1312]! } - public var Settings_AppleWatch: String { return self._s[1313]! } - public var Conversation_LinkCopied: String { return self._s[1314]! } - public var DialogList_NoMessagesText: String { return self._s[1315]! } + public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[1310]! } + public var IntentsSettings_Title: String { return self._s[1312]! } + public var CallList_DeleteAllForMe: String { return self._s[1313]! } + public var Settings_AppleWatch: String { return self._s[1314]! } + public var Conversation_LinkCopied: String { return self._s[1315]! } + public var DialogList_NoMessagesText: String { return self._s[1316]! } public func VoiceChat_SendPublicLinkText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1316]!, self._r[1316]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1317]!, self._r[1317]!, [_1, _2]) } - public var GroupPermission_NoChangeInfo: String { return self._s[1317]! } - public var Channel_ErrorAccessDenied: String { return self._s[1319]! } - public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1320]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1318]! } + public var Channel_ErrorAccessDenied: String { return self._s[1320]! } + public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1321]! } public func Message_StickerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1321]!, self._r[1321]!, [_0]) + return formatWithArgumentRanges(self._s[1322]!, self._r[1322]!, [_0]) } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1322]! } - public var StickerPacksSettings_AnimatedStickers: String { return self._s[1323]! } - public var Month_ShortJanuary: String { return self._s[1324]! } - public var Conversation_UnreadMessages: String { return self._s[1325]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[1327]! } - public var Call_VoiceOver_VideoCallCanceled: String { return self._s[1328]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[1330]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1331]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1323]! } + public var StickerPacksSettings_AnimatedStickers: String { return self._s[1324]! } + public var Month_ShortJanuary: String { return self._s[1325]! } + public var Conversation_UnreadMessages: String { return self._s[1326]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[1328]! } + public var Call_VoiceOver_VideoCallCanceled: String { return self._s[1329]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[1331]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1332]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1335]!, self._r[1335]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1336]!, self._r[1336]!, [_1, _2]) } - public var Widget_ApplicationLocked: String { return self._s[1336]! } + public var Widget_ApplicationLocked: String { return self._s[1337]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1337]!, self._r[1337]!, [_0]) + return formatWithArgumentRanges(self._s[1338]!, self._r[1338]!, [_0]) } - public var Common_TakePhotoOrVideo: String { return self._s[1338]! } - public var Passport_Language_ru: String { return self._s[1340]! } - public var MediaPicker_VideoMuteDescription: String { return self._s[1341]! } - public var EditTheme_ErrorLinkTaken: String { return self._s[1342]! } + public var Common_TakePhotoOrVideo: String { return self._s[1339]! } + public var Passport_Language_ru: String { return self._s[1341]! } + public var MediaPicker_VideoMuteDescription: String { return self._s[1342]! } + public var EditTheme_ErrorLinkTaken: String { return self._s[1343]! } public func Group_EditAdmin_RankInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1344]!, self._r[1344]!, [_0]) + return formatWithArgumentRanges(self._s[1345]!, self._r[1345]!, [_0]) } - public var VoiceChat_ShareShort: String { return self._s[1345]! } - public var Channel_Members_AddAdminErrorBlacklisted: String { return self._s[1346]! } - public var Conversation_Owner: String { return self._s[1348]! } - public var Settings_FAQ_Intro: String { return self._s[1349]! } - public var PhotoEditor_QualityLow: String { return self._s[1351]! } - public var Widget_GalleryTitle: String { return self._s[1352]! } - public var Call_End: String { return self._s[1353]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[1355]! } - public var Privacy_ContactsSyncHelp: String { return self._s[1356]! } - public var OldChannels_NoticeUpgradeText: String { return self._s[1360]! } - public var Conversation_Call: String { return self._s[1362]! } - public var Watch_MessageView_Title: String { return self._s[1363]! } + public var VoiceChat_ShareShort: String { return self._s[1346]! } + public var Channel_Members_AddAdminErrorBlacklisted: String { return self._s[1347]! } + public var Conversation_Owner: String { return self._s[1349]! } + public var Settings_FAQ_Intro: String { return self._s[1350]! } + public var PhotoEditor_QualityLow: String { return self._s[1352]! } + public var Widget_GalleryTitle: String { return self._s[1353]! } + public var Call_End: String { return self._s[1354]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[1356]! } + public var Privacy_ContactsSyncHelp: String { return self._s[1357]! } + public var OldChannels_NoticeUpgradeText: String { return self._s[1361]! } + public var Conversation_Call: String { return self._s[1363]! } + public var Watch_MessageView_Title: String { return self._s[1364]! } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1364]!, self._r[1364]!, [_0]) + return formatWithArgumentRanges(self._s[1365]!, self._r[1365]!, [_0]) } - public var Passport_PasswordCompleteSetup: String { return self._s[1365]! } + public var Passport_PasswordCompleteSetup: String { return self._s[1366]! } public func Notification_ChangedGroupVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1366]!, self._r[1366]!, [_0]) + return formatWithArgumentRanges(self._s[1367]!, self._r[1367]!, [_0]) } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1368]!, self._r[1368]!, [_0]) + return formatWithArgumentRanges(self._s[1369]!, self._r[1369]!, [_0]) } - public var Map_Location: String { return self._s[1369]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1370]! } - public var Login_CountryCode: String { return self._s[1371]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[1373]! } - public var ChatState_ConnectingToProxy: String { return self._s[1374]! } - public var Login_CallRequestState3: String { return self._s[1375]! } - public var NetworkUsageSettings_MediaAudioDataSection: String { return self._s[1378]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1379]! } - public var Widget_ChatsGalleryDescription: String { return self._s[1381]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[1383]! } - public var InstantPage_FontSanFrancisco: String { return self._s[1384]! } - public var Call_StatusEnded: String { return self._s[1385]! } + public var Map_Location: String { return self._s[1370]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1371]! } + public var Login_CountryCode: String { return self._s[1372]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[1374]! } + public var ChatState_ConnectingToProxy: String { return self._s[1375]! } + public var Login_CallRequestState3: String { return self._s[1376]! } + public var NetworkUsageSettings_MediaAudioDataSection: String { return self._s[1379]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1380]! } + public var Widget_ChatsGalleryDescription: String { return self._s[1382]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[1384]! } + public var InstantPage_FontSanFrancisco: String { return self._s[1385]! } + public var Call_StatusEnded: String { return self._s[1386]! } public func Checkout_SuccessfulTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1388]!, self._r[1388]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1389]!, self._r[1389]!, [_1, _2]) } - public var MusicPlayer_VoiceNote: String { return self._s[1389]! } - public var ChatImportActivity_ErrorUserBlocked: String { return self._s[1390]! } + public var MusicPlayer_VoiceNote: String { return self._s[1390]! } + public var ChatImportActivity_ErrorUserBlocked: String { return self._s[1391]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1391]!, self._r[1391]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1392]!, self._r[1392]!, [_1, _2]) } - public var VoiceOver_MessageContextShare: String { return self._s[1392]! } - public var ProfilePhoto_SearchWeb: String { return self._s[1393]! } - public var EditProfile_Title: String { return self._s[1394]! } + public var VoiceOver_MessageContextShare: String { return self._s[1393]! } + public var ProfilePhoto_SearchWeb: String { return self._s[1394]! } + public var EditProfile_Title: String { return self._s[1395]! } public func Notification_PinnedQuizMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1395]!, self._r[1395]!, [_0]) + return formatWithArgumentRanges(self._s[1396]!, self._r[1396]!, [_0]) } - public var VoiceChat_Unmute: String { return self._s[1396]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[1397]! } - public var NetworkUsageSettings_ResetStats: String { return self._s[1399]! } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[1400]! } - public var StickerPackActionInfo_AddedTitle: String { return self._s[1401]! } - public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[1402]! } + public var VoiceChat_Unmute: String { return self._s[1397]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[1398]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[1400]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[1401]! } + public var StickerPackActionInfo_AddedTitle: String { return self._s[1402]! } + public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[1403]! } public func Call_ParticipantVideoVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1403]!, self._r[1403]!, [_0]) + return formatWithArgumentRanges(self._s[1404]!, self._r[1404]!, [_0]) } - public var Location_ProximityNotification_Title: String { return self._s[1404]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[1405]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1408]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[1409]! } - public var Stats_GroupMembersTitle: String { return self._s[1410]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[1411]! } - public var InviteLink_InviteLinkRevoked: String { return self._s[1412]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1413]! } - public var OpenFile_PotentiallyDangerousContentAlert: String { return self._s[1414]! } - public var Settings_SetUsername: String { return self._s[1415]! } - public var GroupInfo_ActionRestrict: String { return self._s[1416]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1417]! } + public var Location_ProximityNotification_Title: String { return self._s[1405]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[1406]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[1409]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[1410]! } + public var Stats_GroupMembersTitle: String { return self._s[1411]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[1412]! } + public var InviteLink_InviteLinkRevoked: String { return self._s[1413]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1414]! } + public var OpenFile_PotentiallyDangerousContentAlert: String { return self._s[1415]! } + public var Settings_SetUsername: String { return self._s[1416]! } + public var GroupInfo_ActionRestrict: String { return self._s[1417]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1418]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1418]!, self._r[1418]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1419]!, self._r[1419]!, [_1, _2, _3]) } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1420]! } - public var Notification_Exceptions_AlwaysOff: String { return self._s[1421]! } - public var Conversation_ContextMenuDelete: String { return self._s[1422]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[1423]! } - public var ChatList_PsaAlert_covid: String { return self._s[1426]! } - public var VoiceOver_SilentPostOn: String { return self._s[1427]! } - public var DialogList_Pin: String { return self._s[1428]! } - public var Channel_AdminLog_CanInviteUsersViaLink: String { return self._s[1429]! } - public var PrivacySettings_SecurityTitle: String { return self._s[1430]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[1431]! } - public var PeopleNearby_Groups: String { return self._s[1432]! } - public var Message_File: String { return self._s[1433]! } - public var Calls_NoCallsPlaceholder: String { return self._s[1434]! } - public var ChatList_GenericPsaLabel: String { return self._s[1437]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[1438]! } - public var IntentsSettings_Reset: String { return self._s[1440]! } - public var Call_ConnectionErrorTitle: String { return self._s[1441]! } - public var PhotoEditor_SaturationTool: String { return self._s[1442]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[1443]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1444]! } - public var Conversation_SearchNoResults: String { return self._s[1445]! } - public var Channel_DiscussionGroup_PrivateChannel: String { return self._s[1446]! } - public var Map_OpenInWaze: String { return self._s[1447]! } - public var InviteLink_PeopleJoinedNone: String { return self._s[1448]! } - public var WallpaperPreview_Title: String { return self._s[1449]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1421]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[1422]! } + public var Conversation_ContextMenuDelete: String { return self._s[1423]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[1424]! } + public var ChatList_PsaAlert_covid: String { return self._s[1427]! } + public var VoiceOver_SilentPostOn: String { return self._s[1428]! } + public var DialogList_Pin: String { return self._s[1429]! } + public var Channel_AdminLog_CanInviteUsersViaLink: String { return self._s[1430]! } + public var PrivacySettings_SecurityTitle: String { return self._s[1431]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[1432]! } + public var PeopleNearby_Groups: String { return self._s[1433]! } + public var Message_File: String { return self._s[1434]! } + public var Calls_NoCallsPlaceholder: String { return self._s[1435]! } + public var ChatList_GenericPsaLabel: String { return self._s[1438]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[1439]! } + public var IntentsSettings_Reset: String { return self._s[1441]! } + public var Call_ConnectionErrorTitle: String { return self._s[1442]! } + public var PhotoEditor_SaturationTool: String { return self._s[1443]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[1444]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1445]! } + public var Conversation_SearchNoResults: String { return self._s[1446]! } + public var Channel_DiscussionGroup_PrivateChannel: String { return self._s[1447]! } + public var Map_OpenInWaze: String { return self._s[1448]! } + public var InviteLink_PeopleJoinedNone: String { return self._s[1449]! } + public var WallpaperPreview_Title: String { return self._s[1450]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1451]!, self._r[1451]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1452]!, self._r[1452]!, [_1, _2]) } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[1452]! } - public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[1453]! } - public var VoiceOver_Chat_ChannelInfo: String { return self._s[1454]! } - public var Conversation_ImageCopied: String { return self._s[1455]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[1456]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[1458]! } - public var Stats_Total: String { return self._s[1461]! } - public var Stats_GroupMessages: String { return self._s[1462]! } - public var TwoFactorSetup_Email_SkipAction: String { return self._s[1463]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[1464]! } - public var VoiceChat_You: String { return self._s[1465]! } - public var VoiceChat_DisplayAsInfoGroup: String { return self._s[1466]! } - public var Passport_Identity_Translation: String { return self._s[1467]! } - public var Notifications_TextTone: String { return self._s[1470]! } - public var Settings_RemoveConfirmation: String { return self._s[1472]! } - public var ScheduledMessages_Delete: String { return self._s[1473]! } - public var Channel_AdminLog_BanEmbedLinks: String { return self._s[1474]! } - public var Passport_PasswordNext: String { return self._s[1475]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[1453]! } + public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[1454]! } + public var VoiceOver_Chat_ChannelInfo: String { return self._s[1455]! } + public var Conversation_ImageCopied: String { return self._s[1456]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[1457]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[1459]! } + public var Stats_Total: String { return self._s[1462]! } + public var Stats_GroupMessages: String { return self._s[1463]! } + public var TwoFactorSetup_Email_SkipAction: String { return self._s[1464]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[1465]! } + public var VoiceChat_You: String { return self._s[1466]! } + public var VoiceChat_DisplayAsInfoGroup: String { return self._s[1467]! } + public var Passport_Identity_Translation: String { return self._s[1468]! } + public var Notifications_TextTone: String { return self._s[1471]! } + public var Settings_RemoveConfirmation: String { return self._s[1473]! } + public var ScheduledMessages_Delete: String { return self._s[1474]! } + public var Channel_AdminLog_BanEmbedLinks: String { return self._s[1475]! } + public var Passport_PasswordNext: String { return self._s[1476]! } public func PUSH_ENCRYPTED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1476]!, self._r[1476]!, [_1]) + return formatWithArgumentRanges(self._s[1477]!, self._r[1477]!, [_1]) } - public var Passport_Address_EditBankStatement: String { return self._s[1477]! } - public var PhotoEditor_ShadowsTool: String { return self._s[1478]! } - public var Notification_VideoCallMissed: String { return self._s[1479]! } - public var AccessDenied_CameraDisabled: String { return self._s[1481]! } - public var AuthSessions_AddDevice_ScanInfo: String { return self._s[1482]! } - public var Notifications_ExceptionsMuted: String { return self._s[1483]! } - public var VoiceChat_TapToViewScreenVideo: String { return self._s[1484]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[1485]! } - public var Channel_BlackList_Title: String { return self._s[1486]! } - public var PasscodeSettings_4DigitCode: String { return self._s[1487]! } - public var NotificationsSound_Bamboo: String { return self._s[1488]! } - public var Conversation_InputMenu: String { return self._s[1489]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[1490]! } - public var Passport_Address_TypeUtilityBill: String { return self._s[1491]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[1492]! } - public var GroupPermission_SectionTitle: String { return self._s[1493]! } - public var InviteLink_ContextRevoke: String { return self._s[1494]! } + public var Passport_Address_EditBankStatement: String { return self._s[1478]! } + public var PhotoEditor_ShadowsTool: String { return self._s[1479]! } + public var Notification_VideoCallMissed: String { return self._s[1480]! } + public var AccessDenied_CameraDisabled: String { return self._s[1482]! } + public var AuthSessions_AddDevice_ScanInfo: String { return self._s[1483]! } + public var Notifications_ExceptionsMuted: String { return self._s[1484]! } + public var VoiceChat_TapToViewScreenVideo: String { return self._s[1485]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[1486]! } + public var Channel_BlackList_Title: String { return self._s[1487]! } + public var PasscodeSettings_4DigitCode: String { return self._s[1488]! } + public var NotificationsSound_Bamboo: String { return self._s[1489]! } + public var Conversation_InputMenu: String { return self._s[1490]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[1491]! } + public var Passport_Address_TypeUtilityBill: String { return self._s[1492]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[1493]! } + public var GroupPermission_SectionTitle: String { return self._s[1494]! } + public var InviteLink_ContextRevoke: String { return self._s[1495]! } public func Notification_InvitedMultiple(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1495]!, self._r[1495]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1496]!, self._r[1496]!, [_0, _1]) } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1496]! } - public var Channel_LeaveChannel: String { return self._s[1497]! } - public var Watch_Notification_Joined: String { return self._s[1498]! } - public var PeerInfo_ButtonMore: String { return self._s[1499]! } - public var Passport_FieldEmailHelp: String { return self._s[1500]! } - public var ChatList_Context_Pin: String { return self._s[1501]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1497]! } + public var Channel_LeaveChannel: String { return self._s[1498]! } + public var Watch_Notification_Joined: String { return self._s[1499]! } + public var PeerInfo_ButtonMore: String { return self._s[1500]! } + public var Passport_FieldEmailHelp: String { return self._s[1501]! } + public var ChatList_Context_Pin: String { return self._s[1502]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1502]!, self._r[1502]!, [_0]) + return formatWithArgumentRanges(self._s[1503]!, self._r[1503]!, [_0]) } - public var Group_Location_CreateInThisPlace: String { return self._s[1503]! } - public var PhotoEditor_QualityVeryHigh: String { return self._s[1504]! } - public var Tour_Title5: String { return self._s[1505]! } + public var Group_Location_CreateInThisPlace: String { return self._s[1504]! } + public var PhotoEditor_QualityVeryHigh: String { return self._s[1505]! } + public var Tour_Title5: String { return self._s[1506]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1506]!, self._r[1506]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1507]!, self._r[1507]!, [_1, _2]) } - public var Passport_Language_en: String { return self._s[1507]! } - public var Checkout_Name: String { return self._s[1508]! } - public var ChatImport_Title: String { return self._s[1509]! } + public var Passport_Language_en: String { return self._s[1508]! } + public var Checkout_Name: String { return self._s[1509]! } + public var ChatImport_Title: String { return self._s[1510]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1510]!, self._r[1510]!, [_0]) + return formatWithArgumentRanges(self._s[1511]!, self._r[1511]!, [_0]) } - public var PhotoEditor_EnhanceTool: String { return self._s[1511]! } + public var PhotoEditor_EnhanceTool: String { return self._s[1512]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1512]!, self._r[1512]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1513]!, self._r[1513]!, [_1, _2]) } public func VoiceChat_UserCanNowSpeak(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1513]!, self._r[1513]!, [_0]) + return formatWithArgumentRanges(self._s[1514]!, self._r[1514]!, [_0]) } - public var PeerInfo_CustomizeNotifications: String { return self._s[1514]! } + public var PeerInfo_CustomizeNotifications: String { return self._s[1515]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1515]!, self._r[1515]!, [_0]) + return formatWithArgumentRanges(self._s[1516]!, self._r[1516]!, [_0]) } - public var Group_ErrorSendRestrictedMedia: String { return self._s[1516]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[1517]! } public func UserInfo_NotificationsDefaultSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1517]!, self._r[1517]!, [_0]) + return formatWithArgumentRanges(self._s[1518]!, self._r[1518]!, [_0]) } - public var Login_UnknownError: String { return self._s[1518]! } - public var Conversation_ImportedMessageHint: String { return self._s[1520]! } + public var Login_UnknownError: String { return self._s[1519]! } + public var Conversation_ImportedMessageHint: String { return self._s[1521]! } public func VoiceChat_ForwardTooltip_Chat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1521]!, self._r[1521]!, [_0]) + return formatWithArgumentRanges(self._s[1522]!, self._r[1522]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[1523]! } - public var ChatList_AutoarchiveSuggestion_Title: String { return self._s[1524]! } - public var Watch_PhotoView_Title: String { return self._s[1525]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[1526]! } - public var Checkout_TotalAmount: String { return self._s[1527]! } - public var ChatList_RemoveFolderAction: String { return self._s[1528]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[1524]! } + public var ChatList_AutoarchiveSuggestion_Title: String { return self._s[1525]! } + public var Watch_PhotoView_Title: String { return self._s[1526]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[1527]! } + public var Checkout_TotalAmount: String { return self._s[1528]! } + public var ChatList_RemoveFolderAction: String { return self._s[1529]! } public func GroupInfo_Permissions_BroadcastConvertInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1529]!, self._r[1529]!, [_0]) + return formatWithArgumentRanges(self._s[1530]!, self._r[1530]!, [_0]) } - public var GroupInfo_SetGroupPhoto: String { return self._s[1530]! } - public var Watch_AppName: String { return self._s[1531]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[1531]! } + public var Watch_AppName: String { return self._s[1532]! } public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1532]!, self._r[1532]!, [_1]) + return formatWithArgumentRanges(self._s[1533]!, self._r[1533]!, [_1]) } - public var Channel_Username_CheckingUsername: String { return self._s[1533]! } - public var ContactList_Context_Call: String { return self._s[1534]! } - public var ChatList_ReorderTabs: String { return self._s[1535]! } - public var Watch_ChatList_Compose: String { return self._s[1536]! } + public var Channel_Username_CheckingUsername: String { return self._s[1534]! } + public var ContactList_Context_Call: String { return self._s[1535]! } + public var ChatList_ReorderTabs: String { return self._s[1536]! } + public var Watch_ChatList_Compose: String { return self._s[1537]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1537]!, self._r[1537]!, [_0]) + return formatWithArgumentRanges(self._s[1538]!, self._r[1538]!, [_0]) } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[1538]! } - public var ArchivedChats_IntroTitle1: String { return self._s[1539]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[1539]! } + public var ArchivedChats_IntroTitle1: String { return self._s[1540]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1540]!, self._r[1540]!, [_1]) + return formatWithArgumentRanges(self._s[1541]!, self._r[1541]!, [_1]) } - public var Call_StatusRequesting: String { return self._s[1542]! } - public var Checkout_TotalPaidAmount: String { return self._s[1543]! } - public var Weekday_Friday: String { return self._s[1545]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[1546]! } + public var Call_StatusRequesting: String { return self._s[1543]! } + public var Checkout_TotalPaidAmount: String { return self._s[1544]! } + public var Weekday_Friday: String { return self._s[1546]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[1547]! } public func ChatImport_SelectionConfirmationUserWithoutTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1547]!, self._r[1547]!, [_0]) + return formatWithArgumentRanges(self._s[1548]!, self._r[1548]!, [_0]) } - public var Watch_ChatList_NoConversationsText: String { return self._s[1548]! } - public var Group_Members_AddMembersHelp: String { return self._s[1549]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[1549]! } + public var Group_Members_AddMembersHelp: String { return self._s[1550]! } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1550]!, self._r[1550]!, [_0]) + return formatWithArgumentRanges(self._s[1551]!, self._r[1551]!, [_0]) } - public var SecretVideo_Title: String { return self._s[1551]! } + public var SecretVideo_Title: String { return self._s[1552]! } public func Notification_PinnedStickerMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1554]!, self._r[1554]!, [_0]) + return formatWithArgumentRanges(self._s[1555]!, self._r[1555]!, [_0]) } - public var Undo_Undo: String { return self._s[1555]! } - public var Watch_Microphone_Access: String { return self._s[1556]! } + public var Undo_Undo: String { return self._s[1556]! } + public var Watch_Microphone_Access: String { return self._s[1557]! } public func ChatImport_SelectionConfirmationGroupWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1557]!, self._r[1557]!, [_1, _2]) - } - public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1558]!, self._r[1558]!, [_1, _2]) } - public func ChatList_Search_NoResultsQueryDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1559]!, self._r[1559]!, [_0]) + public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1559]!, self._r[1559]!, [_1, _2]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[1561]! } - public var TwoFactorSetup_Intro_Action: String { return self._s[1562]! } - public var Passport_Language_ne: String { return self._s[1563]! } - public var TwoStepAuth_EmailHelp: String { return self._s[1565]! } - public var Profile_MessageLifetime2s: String { return self._s[1566]! } + public func ChatList_Search_NoResultsQueryDescription(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1560]!, self._r[1560]!, [_0]) + } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[1562]! } + public var TwoFactorSetup_Intro_Action: String { return self._s[1563]! } + public var Passport_Language_ne: String { return self._s[1564]! } + public var TwoStepAuth_EmailHelp: String { return self._s[1566]! } + public var Profile_MessageLifetime2s: String { return self._s[1567]! } public func Conversation_MessageDialogRetryAll(_ _1: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1568]!, self._r[1568]!, ["\(_1)"]) + return formatWithArgumentRanges(self._s[1569]!, self._r[1569]!, ["\(_1)"]) } public func Items_NOfM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1569]!, self._r[1569]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1570]!, self._r[1570]!, [_1, _2]) } - public var VoiceChat_SendPublicLinkSend: String { return self._s[1570]! } - public var Media_LimitedAccessText: String { return self._s[1571]! } + public var VoiceChat_SendPublicLinkSend: String { return self._s[1571]! } + public var Media_LimitedAccessText: String { return self._s[1572]! } public func PUSH_CHAT_TITLE_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1572]!, self._r[1572]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1573]!, self._r[1573]!, [_1, _2]) } - public var GroupPermission_NoPinMessages: String { return self._s[1573]! } + public var GroupPermission_NoPinMessages: String { return self._s[1574]! } public func Notification_VoiceChatStarted(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1574]!, self._r[1574]!, [_1]) + return formatWithArgumentRanges(self._s[1575]!, self._r[1575]!, [_1]) } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1575]!, self._r[1575]!, [_0]) + return formatWithArgumentRanges(self._s[1576]!, self._r[1576]!, [_0]) } - public var FastTwoStepSetup_HintHelp: String { return self._s[1576]! } - public var VoiceOver_SilentPostOff: String { return self._s[1577]! } - public var WallpaperSearch_ColorRed: String { return self._s[1578]! } - public var Watch_ConnectionDescription: String { return self._s[1579]! } - public var Notification_Exceptions_AddException: String { return self._s[1580]! } - public var LocalGroup_IrrelevantWarning: String { return self._s[1581]! } - public var VoiceOver_MessageContextDelete: String { return self._s[1582]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1583]! } - public var Passport_PasswordPlaceholder: String { return self._s[1584]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[1585]! } - public var Stats_MessageInteractionsTitle: String { return self._s[1586]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[1587]! } - public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1589]! } - public var Channel_AdminLog_PinMessages: String { return self._s[1590]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[1592]! } - public var Watch_Message_Game: String { return self._s[1593]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1594]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[1595]! } - public var EditTheme_FileReadError: String { return self._s[1596]! } - public var Group_ErrorAddBlocked: String { return self._s[1597]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1598]! } + public var FastTwoStepSetup_HintHelp: String { return self._s[1577]! } + public var VoiceOver_SilentPostOff: String { return self._s[1578]! } + public var WallpaperSearch_ColorRed: String { return self._s[1579]! } + public var Watch_ConnectionDescription: String { return self._s[1580]! } + public var Notification_Exceptions_AddException: String { return self._s[1581]! } + public var LocalGroup_IrrelevantWarning: String { return self._s[1582]! } + public var VoiceOver_MessageContextDelete: String { return self._s[1583]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1584]! } + public var Passport_PasswordPlaceholder: String { return self._s[1585]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[1586]! } + public var Stats_MessageInteractionsTitle: String { return self._s[1587]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[1588]! } + public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1590]! } + public var Channel_AdminLog_PinMessages: String { return self._s[1591]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[1593]! } + public var Watch_Message_Game: String { return self._s[1594]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1595]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[1596]! } + public var EditTheme_FileReadError: String { return self._s[1597]! } + public var Group_ErrorAddBlocked: String { return self._s[1598]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1599]! } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1600]!, self._r[1600]!, [_1]) + return formatWithArgumentRanges(self._s[1601]!, self._r[1601]!, [_1]) } - public var GroupRemoved_ViewChannelInfo: String { return self._s[1601]! } + public var GroupRemoved_ViewChannelInfo: String { return self._s[1602]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1602]!, self._r[1602]!, [_0]) + return formatWithArgumentRanges(self._s[1603]!, self._r[1603]!, [_0]) } - public var CheckoutInfo_ShippingInfoAddress2Placeholder: String { return self._s[1603]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[1604]! } + public var CheckoutInfo_ShippingInfoAddress2Placeholder: String { return self._s[1604]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[1605]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1605]!, self._r[1605]!, [_0]) + return formatWithArgumentRanges(self._s[1606]!, self._r[1606]!, [_0]) } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[1606]! } - public var Bot_GroupStatusReadsHistory: String { return self._s[1607]! } - public var PhotoEditor_CurvesRed: String { return self._s[1608]! } - public var InstantPage_TapToOpenLink: String { return self._s[1609]! } - public var InviteLink_PeopleJoinedShortNoneExpired: String { return self._s[1610]! } - public var FastTwoStepSetup_PasswordHelp: String { return self._s[1611]! } - public var Conversation_DiscussionNotStarted: String { return self._s[1612]! } - public var Notification_CallMissedShort: String { return self._s[1613]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[1607]! } + public var Bot_GroupStatusReadsHistory: String { return self._s[1608]! } + public var PhotoEditor_CurvesRed: String { return self._s[1609]! } + public var InstantPage_TapToOpenLink: String { return self._s[1610]! } + public var InviteLink_PeopleJoinedShortNoneExpired: String { return self._s[1611]! } + public var FastTwoStepSetup_PasswordHelp: String { return self._s[1612]! } + public var Conversation_DiscussionNotStarted: String { return self._s[1613]! } + public var Notification_CallMissedShort: String { return self._s[1614]! } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1614]!, self._r[1614]!, [_0]) + return formatWithArgumentRanges(self._s[1615]!, self._r[1615]!, [_0]) } - public var Conversation_DeleteMessagesForEveryone: String { return self._s[1615]! } - public var VoiceChat_UnpinVideo: String { return self._s[1616]! } - public var Permissions_SiriTitle_v0: String { return self._s[1617]! } - public var GroupInfo_AddUserLeftError: String { return self._s[1618]! } - public var Conversation_SendMessage_SendSilently: String { return self._s[1619]! } - public var Paint_Duplicate: String { return self._s[1620]! } - public var AttachmentMenu_WebSearch: String { return self._s[1621]! } - public var Bot_Stop: String { return self._s[1623]! } - public var Conversation_PrivateChannelTimeLimitedAlertTitle: String { return self._s[1624]! } - public var ReportGroupLocation_Report: String { return self._s[1625]! } - public var Compose_Create: String { return self._s[1626]! } - public var Stats_GroupViewers: String { return self._s[1627]! } - public var AutoDownloadSettings_Channels: String { return self._s[1628]! } - public var PhotoEditor_QualityHigh: String { return self._s[1629]! } - public var VoiceChat_Leave: String { return self._s[1630]! } - public var Call_Speaker: String { return self._s[1631]! } + public var Conversation_DeleteMessagesForEveryone: String { return self._s[1616]! } + public var VoiceChat_UnpinVideo: String { return self._s[1617]! } + public var Permissions_SiriTitle_v0: String { return self._s[1618]! } + public var GroupInfo_AddUserLeftError: String { return self._s[1619]! } + public var Conversation_SendMessage_SendSilently: String { return self._s[1620]! } + public var Paint_Duplicate: String { return self._s[1621]! } + public var AttachmentMenu_WebSearch: String { return self._s[1622]! } + public var Bot_Stop: String { return self._s[1624]! } + public var Conversation_PrivateChannelTimeLimitedAlertTitle: String { return self._s[1625]! } + public var ReportGroupLocation_Report: String { return self._s[1626]! } + public var Compose_Create: String { return self._s[1627]! } + public var Stats_GroupViewers: String { return self._s[1628]! } + public var AutoDownloadSettings_Channels: String { return self._s[1629]! } + public var PhotoEditor_QualityHigh: String { return self._s[1630]! } + public var VoiceChat_Leave: String { return self._s[1631]! } + public var Call_Speaker: String { return self._s[1632]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1632]!, self._r[1632]!, [_0]) + return formatWithArgumentRanges(self._s[1633]!, self._r[1633]!, [_0]) } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[1633]! } - public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1634]! } - public var ChatList_Context_AddToFolder: String { return self._s[1635]! } - public var InviteLink_QRCode_Info: String { return self._s[1636]! } - public var AutoremoveSetup_Title: String { return self._s[1637]! } - public var ChatList_DeleteForAllMembersConfirmationText: String { return self._s[1638]! } - public var Conversation_Unblock: String { return self._s[1639]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[1640]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[1634]! } + public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1635]! } + public var ChatList_Context_AddToFolder: String { return self._s[1636]! } + public var InviteLink_QRCode_Info: String { return self._s[1637]! } + public var AutoremoveSetup_Title: String { return self._s[1638]! } + public var ChatList_DeleteForAllMembersConfirmationText: String { return self._s[1639]! } + public var Conversation_Unblock: String { return self._s[1640]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[1641]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1641]!, self._r[1641]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1642]!, self._r[1642]!, [_1, _2, _3]) } - public var Conversation_ContextMenuReply: String { return self._s[1642]! } - public var Contacts_SearchLabel: String { return self._s[1643]! } - public var Forward_ErrorPublicQuizDisabledInChannels: String { return self._s[1644]! } - public var Stats_GroupMessagesTitle: String { return self._s[1646]! } - public var VoiceChat_NoiseSuppression: String { return self._s[1647]! } - public var Notification_CallCanceled: String { return self._s[1648]! } - public var VoiceOver_Chat_Selected: String { return self._s[1649]! } - public var NotificationsSound_Tremolo: String { return self._s[1651]! } - public var VoiceOver_AuthSessions_CurrentSession: String { return self._s[1652]! } - public var ChatList_Search_NoResultsDescription: String { return self._s[1653]! } - public var AccessDenied_PhotosAndVideos: String { return self._s[1654]! } - public var LogoutOptions_ClearCacheText: String { return self._s[1655]! } + public var Conversation_ContextMenuReply: String { return self._s[1643]! } + public var Contacts_SearchLabel: String { return self._s[1644]! } + public var Forward_ErrorPublicQuizDisabledInChannels: String { return self._s[1645]! } + public var Stats_GroupMessagesTitle: String { return self._s[1647]! } + public var VoiceChat_NoiseSuppression: String { return self._s[1648]! } + public var Notification_CallCanceled: String { return self._s[1649]! } + public var VoiceOver_Chat_Selected: String { return self._s[1650]! } + public var NotificationsSound_Tremolo: String { return self._s[1652]! } + public var VoiceOver_AuthSessions_CurrentSession: String { return self._s[1653]! } + public var ChatList_Search_NoResultsDescription: String { return self._s[1654]! } + public var AccessDenied_PhotosAndVideos: String { return self._s[1655]! } + public var LogoutOptions_ClearCacheText: String { return self._s[1656]! } public func VoiceChat_DisplayAsSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1657]!, self._r[1657]!, [_0]) + return formatWithArgumentRanges(self._s[1658]!, self._r[1658]!, [_0]) } - public var VoiceOver_Chat_Sticker: String { return self._s[1658]! } - public var ChatListFolder_NameUnread: String { return self._s[1659]! } - public var PeerInfo_ButtonMessage: String { return self._s[1661]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[1662]! } - public var Settings_KeepPassword: String { return self._s[1663]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[1664]! } - public var ChatSettings_Other: String { return self._s[1665]! } - public var UserInfo_NotificationsEnabled: String { return self._s[1666]! } - public var CreatePoll_OptionsHeader: String { return self._s[1667]! } - public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1670]! } - public var Channel_Moderator_Title: String { return self._s[1671]! } + public var VoiceOver_Chat_Sticker: String { return self._s[1659]! } + public var ChatListFolder_NameUnread: String { return self._s[1660]! } + public var PeerInfo_ButtonMessage: String { return self._s[1662]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[1663]! } + public var Settings_KeepPassword: String { return self._s[1664]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[1665]! } + public var ChatSettings_Other: String { return self._s[1666]! } + public var UserInfo_NotificationsEnabled: String { return self._s[1667]! } + public var CreatePoll_OptionsHeader: String { return self._s[1668]! } + public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1671]! } + public var Channel_Moderator_Title: String { return self._s[1672]! } public func Conversation_ForwardTooltip_Chat_Many(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1672]!, self._r[1672]!, [_0]) + return formatWithArgumentRanges(self._s[1673]!, self._r[1673]!, [_0]) } public func UserInfo_ContactForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1673]!, self._r[1673]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1674]!, self._r[1674]!, [_0, _1]) } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[1674]! } - public var WallpaperColors_Title: String { return self._s[1675]! } - public var InviteLink_InviteLink: String { return self._s[1677]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[1678]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[1679]! } - public var Your_card_was_declined: String { return self._s[1680]! } - public var SettingsSearch_FAQ: String { return self._s[1682]! } - public var EditTheme_Expand_Preview_IncomingReplyName: String { return self._s[1683]! } - public var Conversation_ReportSpamConfirmation: String { return self._s[1684]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[1686]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1687]! } - public var Settings_About_Help: String { return self._s[1688]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[1675]! } + public var WallpaperColors_Title: String { return self._s[1676]! } + public var InviteLink_InviteLink: String { return self._s[1678]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[1679]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[1680]! } + public var Your_card_was_declined: String { return self._s[1681]! } + public var SettingsSearch_FAQ: String { return self._s[1683]! } + public var EditTheme_Expand_Preview_IncomingReplyName: String { return self._s[1684]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[1685]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[1687]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1688]! } + public var Settings_About_Help: String { return self._s[1689]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1689]!, self._r[1689]!, [_0]) + return formatWithArgumentRanges(self._s[1690]!, self._r[1690]!, [_0]) } - public var Settings_Proxy: String { return self._s[1690]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1691]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[1693]! } - public var NotificationsSound_Bell: String { return self._s[1694]! } - public var PrivacySettings_Title: String { return self._s[1696]! } - public var PrivacySettings_DataSettings: String { return self._s[1697]! } - public var ConversationMedia_Title: String { return self._s[1698]! } + public var Settings_Proxy: String { return self._s[1691]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1692]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[1694]! } + public var NotificationsSound_Bell: String { return self._s[1695]! } + public var PrivacySettings_Title: String { return self._s[1697]! } + public var PrivacySettings_DataSettings: String { return self._s[1698]! } + public var ConversationMedia_Title: String { return self._s[1699]! } public func Channel_AdminLog_MessageAddedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1699]!, self._r[1699]!, [_1]) + return formatWithArgumentRanges(self._s[1700]!, self._r[1700]!, [_1]) } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1700]!, self._r[1700]!, [_0]) + return formatWithArgumentRanges(self._s[1701]!, self._r[1701]!, [_0]) } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[1701]! } - public var ReportPeer_ReasonPornography: String { return self._s[1703]! } - public var Privacy_Calls: String { return self._s[1705]! } - public var TwoFactorSetup_Email_Text: String { return self._s[1706]! } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1707]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[1702]! } + public var ReportPeer_ReasonPornography: String { return self._s[1704]! } + public var Privacy_Calls: String { return self._s[1706]! } + public var TwoFactorSetup_Email_Text: String { return self._s[1707]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1708]! } public func VoiceOver_Chat_MusicTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1708]!, self._r[1708]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1709]!, self._r[1709]!, [_1, _2]) } - public var Passport_Identity_FrontSideHelp: String { return self._s[1709]! } - public var InstantPage_VoiceOver_DecreaseFontSize: String { return self._s[1710]! } - public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1712]! } - public var ContactList_Context_VideoCall: String { return self._s[1713]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1714]! } - public var Passport_Identity_MiddleName: String { return self._s[1715]! } - public var MessagePoll_QuizNoUsers: String { return self._s[1716]! } + public var Passport_Identity_FrontSideHelp: String { return self._s[1710]! } + public var InstantPage_VoiceOver_DecreaseFontSize: String { return self._s[1711]! } + public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1713]! } + public var ContactList_Context_VideoCall: String { return self._s[1714]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1715]! } + public var Passport_Identity_MiddleName: String { return self._s[1716]! } + public var MessagePoll_QuizNoUsers: String { return self._s[1717]! } public func Channel_AdminLog_MutedParticipant(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1717]!, self._r[1717]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1718]!, self._r[1718]!, [_1, _2]) } - public var OldChannels_ChannelFormat: String { return self._s[1718]! } - public var Watch_Message_Call: String { return self._s[1719]! } - public var VoiceChat_OpenChannel: String { return self._s[1720]! } - public var Wallpaper_Title: String { return self._s[1721]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[1722]! } - public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1723]! } - public var ReportGroupLocation_Text: String { return self._s[1724]! } - public var InviteText_URL: String { return self._s[1725]! } - public var ClearCache_StorageServiceFiles: String { return self._s[1726]! } - public var MessageTimer_Custom: String { return self._s[1727]! } - public var Message_PinnedLocationMessage: String { return self._s[1728]! } + public var OldChannels_ChannelFormat: String { return self._s[1719]! } + public var Watch_Message_Call: String { return self._s[1720]! } + public var VoiceChat_OpenChannel: String { return self._s[1721]! } + public var Wallpaper_Title: String { return self._s[1722]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[1723]! } + public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1724]! } + public var ReportGroupLocation_Text: String { return self._s[1725]! } + public var InviteText_URL: String { return self._s[1726]! } + public var ClearCache_StorageServiceFiles: String { return self._s[1727]! } + public var MessageTimer_Custom: String { return self._s[1728]! } + public var Message_PinnedLocationMessage: String { return self._s[1729]! } public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1729]!, self._r[1729]!, [_0]) + return formatWithArgumentRanges(self._s[1730]!, self._r[1730]!, [_0]) } - public var EditTheme_UploadNewTheme: String { return self._s[1730]! } - public var ChatImportActivity_ErrorLimitExceeded: String { return self._s[1733]! } + public var EditTheme_UploadNewTheme: String { return self._s[1731]! } + public var ChatImportActivity_ErrorLimitExceeded: String { return self._s[1734]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1734]!, self._r[1734]!, [_0]) + return formatWithArgumentRanges(self._s[1735]!, self._r[1735]!, [_0]) } - public var Login_CodeSentCall: String { return self._s[1736]! } + public var Login_CodeSentCall: String { return self._s[1737]! } public func Conversation_AutoremoveTimerSetUser(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1737]!, self._r[1737]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1738]!, self._r[1738]!, [_1, _2]) } - public var Conversation_Report: String { return self._s[1738]! } - public var NotificationSettings_ContactJoined: String { return self._s[1739]! } + public var Conversation_Report: String { return self._s[1739]! } + public var NotificationSettings_ContactJoined: String { return self._s[1740]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1740]!, self._r[1740]!, [_1]) + return formatWithArgumentRanges(self._s[1741]!, self._r[1741]!, [_1]) } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[1741]! } - public var BroadcastGroups_IntroText: String { return self._s[1742]! } - public var IntentsSettings_SuggestByAll: String { return self._s[1744]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[1745]! } - public var AuthSessions_Title: String { return self._s[1746]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[1742]! } + public var BroadcastGroups_IntroText: String { return self._s[1743]! } + public var IntentsSettings_SuggestByAll: String { return self._s[1745]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[1746]! } + public var AuthSessions_Title: String { return self._s[1747]! } public func Notification_VoiceChatEnded(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1747]!, self._r[1747]!, [_0]) + return formatWithArgumentRanges(self._s[1748]!, self._r[1748]!, [_0]) } - public var Settings_Tips: String { return self._s[1748]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1749]! } - public var WallpaperPreview_WallpaperColors: String { return self._s[1750]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1751]! } - public var VoiceChat_YouCanNowSpeak: String { return self._s[1754]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[1756]! } + public var Settings_Tips: String { return self._s[1749]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1750]! } + public var WallpaperPreview_WallpaperColors: String { return self._s[1751]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1752]! } + public var VoiceChat_YouCanNowSpeak: String { return self._s[1755]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[1757]! } public func UserInfo_LinkForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1757]!, self._r[1757]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1758]!, self._r[1758]!, [_0, _1]) } - public var AutoDownloadSettings_MaxVideoSize: String { return self._s[1758]! } - public var ExplicitContent_AlertTitle: String { return self._s[1759]! } - public var Channel_UpdatePhotoItem: String { return self._s[1761]! } - public var ChatList_AutoarchiveSuggestion_Text: String { return self._s[1763]! } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[1764]! } + public var AutoDownloadSettings_MaxVideoSize: String { return self._s[1759]! } + public var ExplicitContent_AlertTitle: String { return self._s[1760]! } + public var Channel_UpdatePhotoItem: String { return self._s[1762]! } + public var ChatList_AutoarchiveSuggestion_Text: String { return self._s[1764]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[1765]! } public func Call_BatteryLow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1765]!, self._r[1765]!, [_0]) + return formatWithArgumentRanges(self._s[1766]!, self._r[1766]!, [_0]) } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[1766]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[1767]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1768]! } - public var CommentsGroup_ErrorAccessDenied: String { return self._s[1769]! } - public var Appearance_AccentColor: String { return self._s[1771]! } - public var GroupInfo_SharedMedia: String { return self._s[1772]! } - public var Login_PhonePlaceholder: String { return self._s[1773]! } - public var Appearance_TextSize_Automatic: String { return self._s[1774]! } - public var EmptyGroupInfo_Line2: String { return self._s[1775]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[1767]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[1768]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1769]! } + public var CommentsGroup_ErrorAccessDenied: String { return self._s[1770]! } + public var Appearance_AccentColor: String { return self._s[1772]! } + public var GroupInfo_SharedMedia: String { return self._s[1773]! } + public var Login_PhonePlaceholder: String { return self._s[1774]! } + public var Appearance_TextSize_Automatic: String { return self._s[1775]! } + public var EmptyGroupInfo_Line2: String { return self._s[1776]! } public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1776]!, self._r[1776]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1777]!, self._r[1777]!, [_1, _2]) } - public var VoiceChat_TapToAddPhotoOrBio: String { return self._s[1777]! } - public var Conversation_ClearChannel: String { return self._s[1778]! } - public var Conversation_MessageDoesntExist: String { return self._s[1779]! } - public var Appearance_AppIconDefaultX: String { return self._s[1781]! } - public var EditProfile_NameAndPhotoOrVideoHelp: String { return self._s[1782]! } - public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[1783]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1784]! } + public var VoiceChat_TapToAddPhotoOrBio: String { return self._s[1778]! } + public var Conversation_ClearChannel: String { return self._s[1779]! } + public var Conversation_MessageDoesntExist: String { return self._s[1780]! } + public var Appearance_AppIconDefaultX: String { return self._s[1782]! } + public var EditProfile_NameAndPhotoOrVideoHelp: String { return self._s[1783]! } + public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[1784]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1785]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1785]!, self._r[1785]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1786]!, self._r[1786]!, [_1, _2]) } - public var ChatList_EmptyChatListEditFilter: String { return self._s[1786]! } - public var ChatSettings_ConnectionType_UseProxy: String { return self._s[1789]! } - public var Chat_PinnedMessagesHiddenText: String { return self._s[1790]! } + public var ChatList_EmptyChatListEditFilter: String { return self._s[1787]! } + public var ChatSettings_ConnectionType_UseProxy: String { return self._s[1790]! } + public var Chat_PinnedMessagesHiddenText: String { return self._s[1791]! } public func Message_PinnedGenericMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1791]!, self._r[1791]!, [_0]) - } - public func Location_ProximityTip(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1792]!, self._r[1792]!, [_0]) } - public var UserInfo_NotificationsEnable: String { return self._s[1793]! } - public var Checkout_PayWithTouchId: String { return self._s[1794]! } - public var SharedMedia_ViewInChat: String { return self._s[1795]! } - public func Notification_CreatedChatWithTitle(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1796]!, self._r[1796]!, [_0, _1]) + public func Location_ProximityTip(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1793]!, self._r[1793]!, [_0]) } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1797]! } + public var UserInfo_NotificationsEnable: String { return self._s[1794]! } + public var Checkout_PayWithTouchId: String { return self._s[1795]! } + public var SharedMedia_ViewInChat: String { return self._s[1796]! } + public func Notification_CreatedChatWithTitle(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1797]!, self._r[1797]!, [_0, _1]) + } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1798]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1798]!, self._r[1798]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1799]!, self._r[1799]!, [_1, _2]) } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1800]!, self._r[1800]!, [_0]) + return formatWithArgumentRanges(self._s[1801]!, self._r[1801]!, [_0]) } - public var Conversation_PeerNearbyText: String { return self._s[1802]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[1803]! } - public var PhotoEditor_Skip: String { return self._s[1804]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[1805]! } - public var ChatList_EmptyChatList: String { return self._s[1806]! } - public var Channel_BanUser_Unban: String { return self._s[1807]! } + public var Conversation_PeerNearbyText: String { return self._s[1803]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[1804]! } + public var PhotoEditor_Skip: String { return self._s[1805]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[1806]! } + public var ChatList_EmptyChatList: String { return self._s[1807]! } + public var Channel_BanUser_Unban: String { return self._s[1808]! } public func Message_GenericForwardedPsa(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1808]!, self._r[1808]!, [_0]) + return formatWithArgumentRanges(self._s[1809]!, self._r[1809]!, [_0]) } - public var Appearance_TextSize_Apply: String { return self._s[1809]! } + public var Appearance_TextSize_Apply: String { return self._s[1810]! } public func Conversation_MessageViewCommentsFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1810]!, self._r[1810]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1811]!, self._r[1811]!, [_1, _2]) } - public var Login_InfoFirstNamePlaceholder: String { return self._s[1811]! } - public var VoiceOver_Chat_YourSticker: String { return self._s[1812]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1813]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1815]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1816]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[1817]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[1812]! } + public var VoiceOver_Chat_YourSticker: String { return self._s[1813]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1814]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1816]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1817]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[1818]! } public func PUSH_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1818]!, self._r[1818]!, [_1]) + return formatWithArgumentRanges(self._s[1819]!, self._r[1819]!, [_1]) } - public var VoiceOver_Chat_GoToOriginalMessage: String { return self._s[1820]! } - public var State_WaitingForNetwork: String { return self._s[1821]! } - public var AccessDenied_CameraRestricted: String { return self._s[1822]! } - public var ChatSettings_Appearance: String { return self._s[1823]! } - public var ScheduledMessages_BotActionUnavailable: String { return self._s[1824]! } - public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[1825]! } - public var Channel_DiscussionGroupAdd: String { return self._s[1826]! } - public var Conversation_SelectMessages: String { return self._s[1828]! } - public var Map_NoPlacesNearby: String { return self._s[1829]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1830]! } - public var GroupRemoved_Title: String { return self._s[1831]! } - public var ImportStickerPack_RemoveFromImport: String { return self._s[1832]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1834]! } - public var VoiceChat_Mute: String { return self._s[1835]! } - public var Paint_Marker: String { return self._s[1836]! } - public var Widget_ChatsGalleryTitle: String { return self._s[1837]! } + public var VoiceOver_Chat_GoToOriginalMessage: String { return self._s[1821]! } + public var State_WaitingForNetwork: String { return self._s[1822]! } + public var AccessDenied_CameraRestricted: String { return self._s[1823]! } + public var ChatSettings_Appearance: String { return self._s[1824]! } + public var ScheduledMessages_BotActionUnavailable: String { return self._s[1825]! } + public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[1826]! } + public var Channel_DiscussionGroupAdd: String { return self._s[1827]! } + public var Conversation_SelectMessages: String { return self._s[1829]! } + public var Map_NoPlacesNearby: String { return self._s[1830]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1831]! } + public var GroupRemoved_Title: String { return self._s[1832]! } + public var ImportStickerPack_RemoveFromImport: String { return self._s[1833]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1835]! } + public var VoiceChat_Mute: String { return self._s[1836]! } + public var Paint_Marker: String { return self._s[1837]! } + public var Widget_ChatsGalleryTitle: String { return self._s[1838]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1838]!, self._r[1838]!, [_1]) + return formatWithArgumentRanges(self._s[1839]!, self._r[1839]!, [_1]) } - public var SocksProxySetup_ShareProxyList: String { return self._s[1839]! } - public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[1840]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[1840]! } + public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[1841]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1841]!, self._r[1841]!, [_0]) + return formatWithArgumentRanges(self._s[1842]!, self._r[1842]!, [_0]) } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[1842]! } - public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[1843]! } - public var Notifications_GroupNotificationsAlert: String { return self._s[1844]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[1845]! } - public var Compose_NewGroup: String { return self._s[1847]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[1843]! } + public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[1844]! } + public var Notifications_GroupNotificationsAlert: String { return self._s[1845]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[1846]! } + public var Compose_NewGroup: String { return self._s[1848]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1848]!, self._r[1848]!, [_0]) + return formatWithArgumentRanges(self._s[1849]!, self._r[1849]!, [_0]) } - public var Location_LiveLocationRequired_Description: String { return self._s[1850]! } - public var Conversation_ClearGroupHistory: String { return self._s[1851]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1854]! } - public var VoiceOver_BotKeyboard: String { return self._s[1855]! } - public var Channel_BanUser_BlockFor: String { return self._s[1856]! } - public var Bot_Start: String { return self._s[1857]! } - public var Your_card_has_expired: String { return self._s[1858]! } - public var Channel_About_Title: String { return self._s[1859]! } - public var VoiceChat_EditTitleTitle: String { return self._s[1860]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1861]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[1863]! } - public var Conversation_FileDropbox: String { return self._s[1864]! } - public var ChatList_Search_NoResultsFitlerMusic: String { return self._s[1865]! } - public var Month_GenNovember: String { return self._s[1866]! } - public var IntentsSettings_SuggestByShare: String { return self._s[1867]! } + public var Location_LiveLocationRequired_Description: String { return self._s[1851]! } + public var Conversation_ClearGroupHistory: String { return self._s[1852]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1855]! } + public var VoiceOver_BotKeyboard: String { return self._s[1856]! } + public var Channel_BanUser_BlockFor: String { return self._s[1857]! } + public var Bot_Start: String { return self._s[1858]! } + public var Your_card_has_expired: String { return self._s[1859]! } + public var Channel_About_Title: String { return self._s[1860]! } + public var VoiceChat_EditTitleTitle: String { return self._s[1861]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1862]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[1864]! } + public var Conversation_FileDropbox: String { return self._s[1865]! } + public var ChatList_Search_NoResultsFitlerMusic: String { return self._s[1866]! } + public var Month_GenNovember: String { return self._s[1867]! } + public var IntentsSettings_SuggestByShare: String { return self._s[1868]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1868]!, self._r[1868]!, [_0]) + return formatWithArgumentRanges(self._s[1869]!, self._r[1869]!, [_0]) } - public var StickerPack_Add: String { return self._s[1869]! } - public var Theme_ErrorNotFound: String { return self._s[1870]! } - public var Wallpaper_SearchShort: String { return self._s[1872]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1873]! } - public var ConversationProfile_UsersTooMuchError: String { return self._s[1874]! } - public var ChatList_FolderAllChats: String { return self._s[1875]! } - public var VoiceChat_EndConfirmationEnd: String { return self._s[1876]! } - public var Passport_Authorize: String { return self._s[1877]! } + public var StickerPack_Add: String { return self._s[1870]! } + public var Theme_ErrorNotFound: String { return self._s[1871]! } + public var Wallpaper_SearchShort: String { return self._s[1873]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1874]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[1875]! } + public var ChatList_FolderAllChats: String { return self._s[1876]! } + public var VoiceChat_EndConfirmationEnd: String { return self._s[1877]! } + public var Passport_Authorize: String { return self._s[1878]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1878]!, self._r[1878]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1879]!, self._r[1879]!, [_1, _2]) } - public var GroupInfo_GroupHistoryVisible: String { return self._s[1879]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[1880]! } public func PUSH_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1880]!, self._r[1880]!, [_1]) + return formatWithArgumentRanges(self._s[1881]!, self._r[1881]!, [_1]) } - public var LocalGroup_ButtonTitle: String { return self._s[1881]! } - public var VoiceOver_Stickers: String { return self._s[1883]! } - public var UserInfo_GroupsInCommon: String { return self._s[1884]! } - public var LoginPassword_Title: String { return self._s[1886]! } - public var Wallpaper_Set: String { return self._s[1887]! } - public var Stats_InteractionsTitle: String { return self._s[1888]! } + public var LocalGroup_ButtonTitle: String { return self._s[1882]! } + public var VoiceOver_Stickers: String { return self._s[1884]! } + public var UserInfo_GroupsInCommon: String { return self._s[1885]! } + public var LoginPassword_Title: String { return self._s[1887]! } + public var Wallpaper_Set: String { return self._s[1888]! } + public var Stats_InteractionsTitle: String { return self._s[1889]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1890]!, self._r[1890]!, [_0]) + return formatWithArgumentRanges(self._s[1891]!, self._r[1891]!, [_0]) } - public var Conversation_MessageDialogEdit: String { return self._s[1891]! } - public var Paint_Outlined: String { return self._s[1892]! } + public var Conversation_MessageDialogEdit: String { return self._s[1892]! } + public var Paint_Outlined: String { return self._s[1893]! } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1893]!, self._r[1893]!, [_0]) - } - public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1894]!, self._r[1894]!, [_0]) } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1895]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1896]! } - public var Appearance_ColorThemeNight: String { return self._s[1897]! } - public var ChannelInfo_Stats: String { return self._s[1898]! } - public var Widget_ShortcutsGalleryTitle: String { return self._s[1899]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1900]! } - public var MediaPicker_TimerTooltip: String { return self._s[1901]! } - public var ChatImportActivity_ErrorNotAdmin: String { return self._s[1902]! } - public var Common_ChoosePhoto: String { return self._s[1903]! } - public var Media_LimitedAccessTitle: String { return self._s[1904]! } - public var ChatSettings_AutoDownloadVideos: String { return self._s[1905]! } - public var PeerInfo_PaneGroups: String { return self._s[1906]! } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[1908]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1909]! } - public var ContactInfo_PhoneLabelMobile: String { return self._s[1910]! } - public var OldChannels_ChannelsHeader: String { return self._s[1911]! } - public var MuteFor_Forever: String { return self._s[1912]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[1913]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1915]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1916]! } - public var ContactInfo_Job: String { return self._s[1917]! } - public var Passport_Language_mk: String { return self._s[1918]! } - public var EditTheme_ShortLink: String { return self._s[1919]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1922]! } - public var Month_GenApril: String { return self._s[1924]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[1926]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1927]! } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[1928]! } - public var EditTheme_Title: String { return self._s[1929]! } - public var Conversation_LinkDialogCopy: String { return self._s[1930]! } + public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1895]!, self._r[1895]!, [_0]) + } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1896]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1897]! } + public var Appearance_ColorThemeNight: String { return self._s[1898]! } + public var ChannelInfo_Stats: String { return self._s[1899]! } + public var Widget_ShortcutsGalleryTitle: String { return self._s[1900]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1901]! } + public var MediaPicker_TimerTooltip: String { return self._s[1902]! } + public var ChatImportActivity_ErrorNotAdmin: String { return self._s[1903]! } + public var Common_ChoosePhoto: String { return self._s[1904]! } + public var Media_LimitedAccessTitle: String { return self._s[1905]! } + public var ChatSettings_AutoDownloadVideos: String { return self._s[1906]! } + public var PeerInfo_PaneGroups: String { return self._s[1907]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[1909]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1910]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[1911]! } + public var OldChannels_ChannelsHeader: String { return self._s[1912]! } + public var MuteFor_Forever: String { return self._s[1913]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[1914]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1916]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1917]! } + public var ContactInfo_Job: String { return self._s[1918]! } + public var Passport_Language_mk: String { return self._s[1919]! } + public var EditTheme_ShortLink: String { return self._s[1920]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1923]! } + public var Month_GenApril: String { return self._s[1925]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[1927]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1928]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[1929]! } + public var EditTheme_Title: String { return self._s[1930]! } + public var Conversation_LinkDialogCopy: String { return self._s[1931]! } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1931]!, self._r[1931]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1932]!, self._r[1932]!, [_1, _2]) } - public var Passport_ForgottenPassword: String { return self._s[1932]! } - public var WallpaperSearch_Recent: String { return self._s[1933]! } - public var ChatSettings_Title: String { return self._s[1938]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1939]! } + public var Passport_ForgottenPassword: String { return self._s[1933]! } + public var WallpaperSearch_Recent: String { return self._s[1934]! } + public var ChatSettings_Title: String { return self._s[1939]! } + public var Appearance_ReduceMotionInfo: String { return self._s[1940]! } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1940]!, self._r[1940]!, [_0]) + return formatWithArgumentRanges(self._s[1941]!, self._r[1941]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[1941]! } - public var LastSeen_WithinAMonth: String { return self._s[1942]! } - public var VoiceChat_Live: String { return self._s[1943]! } - public var PeerInfo_ButtonCall: String { return self._s[1944]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[1945]! } - public var Group_Username_InvalidStartsWithNumber: String { return self._s[1946]! } - public var Call_AudioRouteHide: String { return self._s[1947]! } - public var DialogList_SavedMessages: String { return self._s[1948]! } - public var ChatList_Context_Mute: String { return self._s[1949]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[1950]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[1942]! } + public var LastSeen_WithinAMonth: String { return self._s[1943]! } + public var VoiceChat_Live: String { return self._s[1944]! } + public var PeerInfo_ButtonCall: String { return self._s[1945]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[1946]! } + public var Group_Username_InvalidStartsWithNumber: String { return self._s[1947]! } + public var Call_AudioRouteHide: String { return self._s[1948]! } + public var DialogList_SavedMessages: String { return self._s[1949]! } + public var ChatList_Context_Mute: String { return self._s[1950]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[1951]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1951]!, self._r[1951]!, [_0]) + return formatWithArgumentRanges(self._s[1952]!, self._r[1952]!, [_0]) } - public var VoiceChat_StatusMutedForYou: String { return self._s[1952]! } - public var Passport_Language_et: String { return self._s[1953]! } - public var Conversation_MessageLeaveCommentShort: String { return self._s[1954]! } - public var PhotoEditor_CropReset: String { return self._s[1955]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[1956]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[1957]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[1958]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1961]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1963]! } - public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[1964]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[1966]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[1968]! } - public var Map_YouAreHere: String { return self._s[1970]! } - public var Core_ServiceUserStatus: String { return self._s[1971]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1974]! } - public var VoiceChat_StartRecording: String { return self._s[1975]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[1976]! } - public var MediaPicker_Videos: String { return self._s[1978]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[1980]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1981]! } - public var SharedMedia_CategoryMedia: String { return self._s[1982]! } + public var VoiceChat_StatusMutedForYou: String { return self._s[1953]! } + public var Passport_Language_et: String { return self._s[1954]! } + public var Conversation_MessageLeaveCommentShort: String { return self._s[1955]! } + public var PhotoEditor_CropReset: String { return self._s[1956]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[1957]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[1958]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[1959]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1962]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1964]! } + public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[1965]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[1967]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[1969]! } + public var Map_YouAreHere: String { return self._s[1971]! } + public var Core_ServiceUserStatus: String { return self._s[1972]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1975]! } + public var VoiceChat_StartRecording: String { return self._s[1976]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[1977]! } + public var MediaPicker_Videos: String { return self._s[1979]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[1981]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1982]! } + public var SharedMedia_CategoryMedia: String { return self._s[1983]! } public func MediaPicker_Nof(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1983]!, self._r[1983]!, [_0]) + return formatWithArgumentRanges(self._s[1984]!, self._r[1984]!, [_0]) } - public var ChatSettings_AutoPlayGifs: String { return self._s[1984]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[1985]! } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[1986]! } - public var Conversation_JoinVoiceChatAsListener: String { return self._s[1987]! } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1988]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[1985]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[1986]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[1987]! } + public var Conversation_JoinVoiceChatAsListener: String { return self._s[1988]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1989]! } public func Chat_SlowmodeTooltip(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1989]!, self._r[1989]!, [_0]) + return formatWithArgumentRanges(self._s[1990]!, self._r[1990]!, [_0]) } - public var Web_Error: String { return self._s[1990]! } - public var PhotoEditor_SkinTool: String { return self._s[1991]! } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[1992]! } - public var AutoremoveSetup_TimerInfoChat: String { return self._s[1993]! } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[1995]! } - public var PasscodeSettings_Help: String { return self._s[1996]! } - public var Appearance_ColorTheme: String { return self._s[1997]! } + public var Web_Error: String { return self._s[1991]! } + public var PhotoEditor_SkinTool: String { return self._s[1992]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[1993]! } + public var AutoremoveSetup_TimerInfoChat: String { return self._s[1994]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[1996]! } + public var PasscodeSettings_Help: String { return self._s[1997]! } + public var Appearance_ColorTheme: String { return self._s[1998]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1998]!, self._r[1998]!, [_0]) + return formatWithArgumentRanges(self._s[1999]!, self._r[1999]!, [_0]) } - public var InviteLink_DeleteAllRevokedLinks: String { return self._s[1999]! } + public var InviteLink_DeleteAllRevokedLinks: String { return self._s[2000]! } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2000]!, self._r[2000]!, [_1]) + return formatWithArgumentRanges(self._s[2001]!, self._r[2001]!, [_1]) } - public var InviteLink_QRCode_Title: String { return self._s[2001]! } - public var GroupInfo_LeftStatus: String { return self._s[2002]! } - public var EditTheme_Preview: String { return self._s[2003]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[2004]! } + public var InviteLink_QRCode_Title: String { return self._s[2002]! } + public var GroupInfo_LeftStatus: String { return self._s[2003]! } + public var EditTheme_Preview: String { return self._s[2004]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[2005]! } public func AutoDownloadSettings_PreloadVideoInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2005]!, self._r[2005]!, [_0]) + return formatWithArgumentRanges(self._s[2006]!, self._r[2006]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[2006]! } - public var VoiceChat_StatusWantsToSpeak: String { return self._s[2007]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[2008]! } - public var ChatList_Context_MarkAsUnread: String { return self._s[2009]! } - public var DialogList_AdNoticeAlert: String { return self._s[2010]! } - public var UserInfo_Invite: String { return self._s[2011]! } - public var Checkout_Email: String { return self._s[2012]! } - public var Stats_GroupActionsTitle: String { return self._s[2013]! } - public var Coub_TapForSound: String { return self._s[2014]! } - public var Conversation_AutoremoveTimerRemovedUserYou: String { return self._s[2015]! } - public var Theme_ThemeChangedText: String { return self._s[2016]! } - public var Call_ExternalCallInProgressMessage: String { return self._s[2017]! } - public var AutoremoveSetup_TimerInfoChannel: String { return self._s[2018]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[2019]! } - public var ScheduledMessages_ScheduledToday: String { return self._s[2020]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[2021]! } + public var NotificationsSound_Keys: String { return self._s[2007]! } + public var VoiceChat_StatusWantsToSpeak: String { return self._s[2008]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[2009]! } + public var ChatList_Context_MarkAsUnread: String { return self._s[2010]! } + public var DialogList_AdNoticeAlert: String { return self._s[2011]! } + public var UserInfo_Invite: String { return self._s[2012]! } + public var Checkout_Email: String { return self._s[2013]! } + public var Stats_GroupActionsTitle: String { return self._s[2014]! } + public var Coub_TapForSound: String { return self._s[2015]! } + public var Conversation_AutoremoveTimerRemovedUserYou: String { return self._s[2016]! } + public var Theme_ThemeChangedText: String { return self._s[2017]! } + public var Call_ExternalCallInProgressMessage: String { return self._s[2018]! } + public var AutoremoveSetup_TimerInfoChannel: String { return self._s[2019]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[2020]! } + public var ScheduledMessages_ScheduledToday: String { return self._s[2021]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[2022]! } public func VoiceChat_InviteMemberToChannelFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2022]!, self._r[2022]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2023]!, self._r[2023]!, [_1, _2]) } - public var Call_ReportIncludeLogDescription: String { return self._s[2023]! } - public var Settings_FrequentlyAskedQuestions: String { return self._s[2025]! } - public var Call_VoiceOver_VoiceCallMissed: String { return self._s[2026]! } - public var Channel_MessagePhotoRemoved: String { return self._s[2027]! } - public var Passport_Email_Delete: String { return self._s[2028]! } + public var Call_ReportIncludeLogDescription: String { return self._s[2024]! } + public var Settings_FrequentlyAskedQuestions: String { return self._s[2026]! } + public var Call_VoiceOver_VoiceCallMissed: String { return self._s[2027]! } + public var Channel_MessagePhotoRemoved: String { return self._s[2028]! } + public var Passport_Email_Delete: String { return self._s[2029]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2029]!, self._r[2029]!, [_1]) + return formatWithArgumentRanges(self._s[2030]!, self._r[2030]!, [_1]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2030]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2031]! } public func Conversation_AutoremoveTimerRemovedUser(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2031]!, self._r[2031]!, [_1]) + return formatWithArgumentRanges(self._s[2032]!, self._r[2032]!, [_1]) } - public var Channel_AdminLog_CanAddAdmins: String { return self._s[2032]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[2034]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[2035]! } - public var Common_of: String { return self._s[2036]! } - public var VoiceChat_CreateNewVoiceChatText: String { return self._s[2037]! } - public var VoiceChat_StartRecordingStart: String { return self._s[2038]! } - public var PeerInfo_ButtonUnmute: String { return self._s[2041]! } + public var Channel_AdminLog_CanAddAdmins: String { return self._s[2033]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[2035]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[2036]! } + public var Common_of: String { return self._s[2037]! } + public var VoiceChat_CreateNewVoiceChatText: String { return self._s[2038]! } + public var VoiceChat_StartRecordingStart: String { return self._s[2039]! } + public var PeerInfo_ButtonUnmute: String { return self._s[2042]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2042]!, self._r[2042]!, [_0]) + return formatWithArgumentRanges(self._s[2043]!, self._r[2043]!, [_0]) } - public var Privacy_ContactsReset_ContactsDeleted: String { return self._s[2043]! } - public var ChatList_AddChatsToFolder: String { return self._s[2044]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2045]! } - public var Settings_Title: String { return self._s[2047]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2049]! } - public var Appearance_BubbleCornersSetting: String { return self._s[2050]! } - public var InviteLink_OtherAdminsLinks: String { return self._s[2051]! } - public var Privacy_Calls_AlwaysAllow: String { return self._s[2052]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[2054]! } - public var WallpaperPreview_CropBottomText: String { return self._s[2055]! } - public var SecretTimer_VideoDescription: String { return self._s[2056]! } - public var VoiceOver_Chat_AnimatedSticker: String { return self._s[2057]! } - public var WallpaperPreview_Blurred: String { return self._s[2058]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2059]! } - public var ChatListFolder_ExcludedSectionHeader: String { return self._s[2061]! } - public var Conversation_CancelForwardSelectChat: String { return self._s[2062]! } - public var DialogList_PasscodeLockHelp: String { return self._s[2063]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2064]! } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2065]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2066]! } - public var Passport_FieldAddressTranslationHelp: String { return self._s[2067]! } - public var SocksProxySetup_Connection: String { return self._s[2068]! } - public var Passport_Address_TypePassportRegistration: String { return self._s[2069]! } - public var Contacts_PermissionsAllowInSettings: String { return self._s[2070]! } - public var Conversation_Unpin: String { return self._s[2071]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[2072]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[2073]! } - public var Call_ReportSkip: String { return self._s[2074]! } + public var Privacy_ContactsReset_ContactsDeleted: String { return self._s[2044]! } + public var ChatList_AddChatsToFolder: String { return self._s[2045]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2046]! } + public var Settings_Title: String { return self._s[2048]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2050]! } + public var Appearance_BubbleCornersSetting: String { return self._s[2051]! } + public var InviteLink_OtherAdminsLinks: String { return self._s[2052]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[2053]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[2055]! } + public var WallpaperPreview_CropBottomText: String { return self._s[2056]! } + public var SecretTimer_VideoDescription: String { return self._s[2057]! } + public var VoiceOver_Chat_AnimatedSticker: String { return self._s[2058]! } + public var WallpaperPreview_Blurred: String { return self._s[2059]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2060]! } + public var ChatListFolder_ExcludedSectionHeader: String { return self._s[2062]! } + public var Conversation_CancelForwardSelectChat: String { return self._s[2063]! } + public var DialogList_PasscodeLockHelp: String { return self._s[2064]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2065]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2066]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2067]! } + public var Passport_FieldAddressTranslationHelp: String { return self._s[2068]! } + public var SocksProxySetup_Connection: String { return self._s[2069]! } + public var Passport_Address_TypePassportRegistration: String { return self._s[2070]! } + public var Contacts_PermissionsAllowInSettings: String { return self._s[2071]! } + public var Conversation_Unpin: String { return self._s[2072]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[2073]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[2074]! } + public var Call_ReportSkip: String { return self._s[2075]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2075]!, self._r[2075]!, [_0]) + return formatWithArgumentRanges(self._s[2076]!, self._r[2076]!, [_0]) } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2077]!, self._r[2077]!, [_0]) + return formatWithArgumentRanges(self._s[2078]!, self._r[2078]!, [_0]) } - public var AutoNightTheme_Automatic: String { return self._s[2078]! } - public var Passport_Language_az: String { return self._s[2080]! } + public var AutoNightTheme_Automatic: String { return self._s[2079]! } + public var Passport_Language_az: String { return self._s[2081]! } public func Conversation_AutoremoveChanged(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2081]!, self._r[2081]!, [_0]) + return formatWithArgumentRanges(self._s[2082]!, self._r[2082]!, [_0]) } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[2082]! } - public var Watch_UserInfo_Unmute: String { return self._s[2083]! } - public var Channel_Stickers_YourStickers: String { return self._s[2084]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2085]! } - public var PeerInfo_AutoremoveMessagesDisabled: String { return self._s[2086]! } - public var Tour_Text1: String { return self._s[2087]! } - public var Common_Delete: String { return self._s[2088]! } - public var Settings_EditPhoto: String { return self._s[2089]! } - public var Common_Edit: String { return self._s[2090]! } - public var ShareMenu_ShareTo: String { return self._s[2092]! } - public var Passport_Identity_ExpiryDate: String { return self._s[2093]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[2083]! } + public var Watch_UserInfo_Unmute: String { return self._s[2084]! } + public var Channel_Stickers_YourStickers: String { return self._s[2085]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2086]! } + public var PeerInfo_AutoremoveMessagesDisabled: String { return self._s[2087]! } + public var Tour_Text1: String { return self._s[2088]! } + public var Common_Delete: String { return self._s[2089]! } + public var Settings_EditPhoto: String { return self._s[2090]! } + public var Common_Edit: String { return self._s[2091]! } + public var ShareMenu_ShareTo: String { return self._s[2093]! } + public var Passport_Identity_ExpiryDate: String { return self._s[2094]! } public func Channel_AdminLog_MutedNewMembers(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2094]!, self._r[2094]!, [_1]) + return formatWithArgumentRanges(self._s[2095]!, self._r[2095]!, [_1]) } - public var Preview_DeleteGif: String { return self._s[2095]! } - public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2096]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2097]! } - public var Conversation_ViewReply: String { return self._s[2098]! } - public var Stats_LoadingText: String { return self._s[2099]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[2100]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2101]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[2102]! } + public var Preview_DeleteGif: String { return self._s[2096]! } + public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2097]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2098]! } + public var Conversation_ViewReply: String { return self._s[2099]! } + public var Stats_LoadingText: String { return self._s[2100]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[2101]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2102]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[2103]! } public func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2103]!, self._r[2103]!, [_0]) - } - public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2104]!, self._r[2104]!, [_0]) } + public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2105]!, self._r[2105]!, [_0]) + } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2106]!, self._r[2106]!, [_0]) + return formatWithArgumentRanges(self._s[2107]!, self._r[2107]!, [_0]) } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[2107]! } - public var InviteLink_Share: String { return self._s[2109]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[2108]! } + public var InviteLink_Share: String { return self._s[2110]! } public func Conversation_ImportProgress(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2111]!, self._r[2111]!, [_0]) + return formatWithArgumentRanges(self._s[2112]!, self._r[2112]!, [_0]) } - public var IntentsSettings_MainAccount: String { return self._s[2112]! } - public var Group_MessagePhotoRemoved: String { return self._s[2115]! } - public var Conversation_ContextMenuSelect: String { return self._s[2116]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2118]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[2119]! } - public var Contacts_PermissionsEnable: String { return self._s[2120]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[2121]! } - public var Common_NotNow: String { return self._s[2122]! } - public var Notification_CreatedChannel: String { return self._s[2123]! } - public var Stats_ViewsBySourceTitle: String { return self._s[2125]! } - public var InviteLink_ContextShare: String { return self._s[2126]! } - public var Appearance_AppIconClassic: String { return self._s[2127]! } - public var PhotoEditor_QualityTool: String { return self._s[2128]! } - public var ClearCache_ClearCache: String { return self._s[2129]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[2130]! } - public var AutoDownloadSettings_Videos: String { return self._s[2131]! } - public var GroupPermission_Duration: String { return self._s[2132]! } - public var ChatList_Read: String { return self._s[2133]! } + public var IntentsSettings_MainAccount: String { return self._s[2113]! } + public var Group_MessagePhotoRemoved: String { return self._s[2116]! } + public var Conversation_ContextMenuSelect: String { return self._s[2117]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2119]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[2120]! } + public var Contacts_PermissionsEnable: String { return self._s[2121]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[2122]! } + public var Common_NotNow: String { return self._s[2123]! } + public var Notification_CreatedChannel: String { return self._s[2124]! } + public var Stats_ViewsBySourceTitle: String { return self._s[2126]! } + public var InviteLink_ContextShare: String { return self._s[2127]! } + public var Appearance_AppIconClassic: String { return self._s[2128]! } + public var PhotoEditor_QualityTool: String { return self._s[2129]! } + public var ClearCache_ClearCache: String { return self._s[2130]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[2131]! } + public var AutoDownloadSettings_Videos: String { return self._s[2132]! } + public var GroupPermission_Duration: String { return self._s[2133]! } + public var ChatList_Read: String { return self._s[2134]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2134]!, self._r[2134]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_1, _2]) } public func ScheduleVoiceChat_ScheduleTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_0]) + return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_0]) } - public var CallFeedback_Send: String { return self._s[2136]! } - public var Channel_Stickers_Searching: String { return self._s[2137]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[2138]! } - public var FastTwoStepSetup_HintSection: String { return self._s[2139]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2140]! } - public var EditTheme_CreateTitle: String { return self._s[2142]! } - public var Application_Name: String { return self._s[2143]! } - public var Paint_Stickers: String { return self._s[2144]! } - public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[2145]! } - public var Call_StatusFailed: String { return self._s[2146]! } - public var Stickers_FavoriteStickers: String { return self._s[2147]! } - public var ClearCache_Clear: String { return self._s[2148]! } - public var Passport_Language_mn: String { return self._s[2149]! } - public var WallpaperPreview_PreviewTopText: String { return self._s[2150]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[2151]! } - public var Call_VoiceOver_VideoCallOutgoing: String { return self._s[2153]! } - public var TwoFactorSetup_Hint_Text: String { return self._s[2155]! } - public var WallpaperPreview_PatternIntensity: String { return self._s[2156]! } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2157]! } - public var Passport_Address_AddBankStatement: String { return self._s[2158]! } + public var CallFeedback_Send: String { return self._s[2137]! } + public var Channel_Stickers_Searching: String { return self._s[2138]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[2139]! } + public var FastTwoStepSetup_HintSection: String { return self._s[2140]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2141]! } + public var EditTheme_CreateTitle: String { return self._s[2143]! } + public var Application_Name: String { return self._s[2144]! } + public var Paint_Stickers: String { return self._s[2145]! } + public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[2146]! } + public var Call_StatusFailed: String { return self._s[2147]! } + public var Stickers_FavoriteStickers: String { return self._s[2148]! } + public var ClearCache_Clear: String { return self._s[2149]! } + public var Passport_Language_mn: String { return self._s[2150]! } + public var WallpaperPreview_PreviewTopText: String { return self._s[2151]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[2152]! } + public var Call_VoiceOver_VideoCallOutgoing: String { return self._s[2154]! } + public var TwoFactorSetup_Hint_Text: String { return self._s[2156]! } + public var WallpaperPreview_PatternIntensity: String { return self._s[2157]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2158]! } + public var Passport_Address_AddBankStatement: String { return self._s[2159]! } public func Conversation_TitleRepliesFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2161]!, self._r[2161]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2162]!, self._r[2162]!, [_1, _2]) } - public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2162]! } - public var UserInfo_ShareContact: String { return self._s[2163]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[2164]! } - public var Channel_ErrorAdminsTooMuch: String { return self._s[2166]! } - public var Call_RateCall: String { return self._s[2167]! } - public var Contacts_AccessDeniedError: String { return self._s[2168]! } - public var Invite_ChannelsTooMuch: String { return self._s[2169]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[2170]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[2171]! } - public var InviteLink_Create_TimeLimitInfo: String { return self._s[2172]! } - public var Cache_NoLimit: String { return self._s[2175]! } - public var Conversation_EmptyPlaceholder: String { return self._s[2176]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2180]! } - public var Notification_Exceptions_MessagePreviewAlwaysOff: String { return self._s[2181]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2182]! } - public var Privacy_PaymentsClear_AllInfoCleared: String { return self._s[2183]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[2184]! } + public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2163]! } + public var UserInfo_ShareContact: String { return self._s[2164]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[2165]! } + public var Channel_ErrorAdminsTooMuch: String { return self._s[2167]! } + public var Call_RateCall: String { return self._s[2168]! } + public var Contacts_AccessDeniedError: String { return self._s[2169]! } + public var Invite_ChannelsTooMuch: String { return self._s[2170]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[2171]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[2172]! } + public var InviteLink_Create_TimeLimitInfo: String { return self._s[2173]! } + public var Cache_NoLimit: String { return self._s[2176]! } + public var Conversation_EmptyPlaceholder: String { return self._s[2177]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2181]! } + public var Notification_Exceptions_MessagePreviewAlwaysOff: String { return self._s[2182]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2183]! } + public var Privacy_PaymentsClear_AllInfoCleared: String { return self._s[2184]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[2185]! } public func PUSH_VIDEO_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2185]!, self._r[2185]!, [_1]) + return formatWithArgumentRanges(self._s[2186]!, self._r[2186]!, [_1]) } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2186]! } - public var Theme_ThemeChanged: String { return self._s[2187]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2189]! } - public var AutoDownloadSettings_MediaTypes: String { return self._s[2190]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2187]! } + public var Theme_ThemeChanged: String { return self._s[2188]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2190]! } + public var AutoDownloadSettings_MediaTypes: String { return self._s[2191]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2191]!, self._r[2191]!, [_0]) + return formatWithArgumentRanges(self._s[2192]!, self._r[2192]!, [_0]) } - public var Channel_AdminLog_InfoPanelTitle: String { return self._s[2192]! } - public var Passport_Language_da: String { return self._s[2194]! } - public var Chat_SlowmodeSendError: String { return self._s[2195]! } - public var Application_Update: String { return self._s[2197]! } - public var SocksProxySetup_SaveProxy: String { return self._s[2198]! } + public var Channel_AdminLog_InfoPanelTitle: String { return self._s[2193]! } + public var Passport_Language_da: String { return self._s[2195]! } + public var Chat_SlowmodeSendError: String { return self._s[2196]! } + public var Application_Update: String { return self._s[2198]! } + public var SocksProxySetup_SaveProxy: String { return self._s[2199]! } public func PUSH_AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2199]!, self._r[2199]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2200]!, self._r[2200]!, [_1, _2]) } - public var Privacy_AddNewPeer: String { return self._s[2201]! } - public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[2203]! } - public var Channel_Members_Title: String { return self._s[2204]! } - public var StickerPacks_ActionDelete: String { return self._s[2205]! } - public var Conversation_ScheduledVoiceChat: String { return self._s[2206]! } - public var Settings_LogoutConfirmationText: String { return self._s[2208]! } - public var Chat_UnsendMyMessages: String { return self._s[2209]! } - public var PeerInfo_ReportProfilePhoto: String { return self._s[2210]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2212]! } - public var ChatListFilter_AddChatsTitle: String { return self._s[2213]! } - public var Passport_FloodError: String { return self._s[2214]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[2215]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2216]! } - public var CallSettings_TabIconDescription: String { return self._s[2217]! } - public var Group_Setup_HistoryHeader: String { return self._s[2219]! } + public var Privacy_AddNewPeer: String { return self._s[2202]! } + public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[2204]! } + public var Channel_Members_Title: String { return self._s[2205]! } + public var StickerPacks_ActionDelete: String { return self._s[2206]! } + public var Conversation_ScheduledVoiceChat: String { return self._s[2207]! } + public var Settings_LogoutConfirmationText: String { return self._s[2209]! } + public var Chat_UnsendMyMessages: String { return self._s[2210]! } + public var PeerInfo_ReportProfilePhoto: String { return self._s[2211]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2213]! } + public var ChatListFilter_AddChatsTitle: String { return self._s[2214]! } + public var Passport_FloodError: String { return self._s[2215]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[2216]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2217]! } + public var CallSettings_TabIconDescription: String { return self._s[2218]! } + public var Group_Setup_HistoryHeader: String { return self._s[2220]! } public func Channel_AdminLog_AllowedNewMembersToSpeak(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2220]!, self._r[2220]!, [_1]) + return formatWithArgumentRanges(self._s[2221]!, self._r[2221]!, [_1]) } - public var TwoStepAuth_EmailTitle: String { return self._s[2221]! } - public var GroupInfo_Permissions_Removed: String { return self._s[2222]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[2223]! } - public var Contacts_Title: String { return self._s[2225]! } + public var TwoStepAuth_EmailTitle: String { return self._s[2222]! } + public var GroupInfo_Permissions_Removed: String { return self._s[2223]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[2224]! } + public var Contacts_Title: String { return self._s[2226]! } public func Notification_Invited(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2226]!, self._r[2226]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2227]!, self._r[2227]!, [_0, _1]) } - public var ChatList_PeerTypeBot: String { return self._s[2229]! } + public var ChatList_PeerTypeBot: String { return self._s[2230]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2230]!, self._r[2230]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2231]!, self._r[2231]!, [_1, _2]) } - public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[2231]! } + public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[2232]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2232]!, self._r[2232]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2233]!, self._r[2233]!, [_1, _2, _3]) } - public var Camera_PhotoMode: String { return self._s[2234]! } + public var Camera_PhotoMode: String { return self._s[2235]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2235]!, self._r[2235]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2236]!, self._r[2236]!, [_1, _2, _3]) } - public var ContactInfo_PhoneLabelPager: String { return self._s[2236]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[2237]! } - public var Call_CallAgain: String { return self._s[2238]! } - public var TwoStepAuth_PasswordSet: String { return self._s[2239]! } - public var VoiceChat_EditDescriptionPlaceholder: String { return self._s[2240]! } + public var ContactInfo_PhoneLabelPager: String { return self._s[2237]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[2238]! } + public var Call_CallAgain: String { return self._s[2239]! } + public var TwoStepAuth_PasswordSet: String { return self._s[2240]! } + public var VoiceChat_EditDescriptionPlaceholder: String { return self._s[2241]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2241]!, self._r[2241]!, [_0]) + return formatWithArgumentRanges(self._s[2242]!, self._r[2242]!, [_0]) } - public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[2242]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2243]! } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2244]! } - public var Group_LeaveGroup: String { return self._s[2245]! } - public var Channel_Setup_LinkTypePrivate: String { return self._s[2247]! } - public var GroupInfo_LabelAdmin: String { return self._s[2249]! } - public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2251]! } - public var Notification_PassportValuePersonalDetails: String { return self._s[2252]! } + public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[2243]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2244]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2245]! } + public var Group_LeaveGroup: String { return self._s[2246]! } + public var Channel_Setup_LinkTypePrivate: String { return self._s[2248]! } + public var GroupInfo_LabelAdmin: String { return self._s[2250]! } + public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2252]! } + public var Notification_PassportValuePersonalDetails: String { return self._s[2253]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2253]!, self._r[2253]!, [_0]) + return formatWithArgumentRanges(self._s[2254]!, self._r[2254]!, [_0]) } - public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2254]! } - public var Appearance_Preview: String { return self._s[2255]! } - public var VoiceOver_Chat_Contact: String { return self._s[2256]! } - public var Passport_Language_th: String { return self._s[2257]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2259]! } - public var LastSeen_Offline: String { return self._s[2262]! } - public var Map_OpenInHereMaps: String { return self._s[2263]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[2264]! } - public var InviteLink_ContextEdit: String { return self._s[2266]! } - public var AutoDownloadSettings_Reset: String { return self._s[2267]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[2268]! } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[2269]! } + public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2255]! } + public var Appearance_Preview: String { return self._s[2256]! } + public var VoiceOver_Chat_Contact: String { return self._s[2257]! } + public var Passport_Language_th: String { return self._s[2258]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2260]! } + public var LastSeen_Offline: String { return self._s[2263]! } + public var Map_OpenInHereMaps: String { return self._s[2264]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[2265]! } + public var InviteLink_ContextEdit: String { return self._s[2267]! } + public var AutoDownloadSettings_Reset: String { return self._s[2268]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[2269]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[2270]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2270]!, self._r[2270]!, [_0]) - } - public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2271]!, self._r[2271]!, [_0]) } - public var Passport_Identity_EditDriversLicense: String { return self._s[2272]! } - public var ChatListFolder_NameNonMuted: String { return self._s[2273]! } - public var Username_Placeholder: String { return self._s[2274]! } + public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2272]!, self._r[2272]!, [_0]) + } + public var Passport_Identity_EditDriversLicense: String { return self._s[2273]! } + public var ChatListFolder_NameNonMuted: String { return self._s[2274]! } + public var Username_Placeholder: String { return self._s[2275]! } public func PUSH_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2275]!, self._r[2275]!, [_1]) + return formatWithArgumentRanges(self._s[2276]!, self._r[2276]!, [_1]) } - public var Passport_Language_it: String { return self._s[2276]! } - public var Checkout_NewCard_SaveInfo: String { return self._s[2277]! } + public var Passport_Language_it: String { return self._s[2277]! } + public var Checkout_NewCard_SaveInfo: String { return self._s[2278]! } public func Channel_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2278]!, self._r[2278]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2279]!, self._r[2279]!, [_1, _2]) } - public var NotificationsSound_Pulse: String { return self._s[2279]! } - public var VoiceOver_DismissContextMenu: String { return self._s[2281]! } - public var MessagePoll_NoVotes: String { return self._s[2284]! } - public var Message_Wallpaper: String { return self._s[2285]! } - public var Conversation_JoinVoiceChat: String { return self._s[2286]! } - public var Appearance_Other: String { return self._s[2287]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[2289]! } - public var Group_PublicLink_Placeholder: String { return self._s[2293]! } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[2294]! } - public var VoiceOver_Recording_StopAndPreview: String { return self._s[2295]! } - public var ChatListFolder_NameBots: String { return self._s[2296]! } - public var Conversation_StopPollConfirmation: String { return self._s[2297]! } - public var UserInfo_DeleteContact: String { return self._s[2298]! } + public var NotificationsSound_Pulse: String { return self._s[2280]! } + public var VoiceOver_DismissContextMenu: String { return self._s[2282]! } + public var MessagePoll_NoVotes: String { return self._s[2285]! } + public var Message_Wallpaper: String { return self._s[2286]! } + public var Conversation_JoinVoiceChat: String { return self._s[2287]! } + public var Appearance_Other: String { return self._s[2288]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[2290]! } + public var Group_PublicLink_Placeholder: String { return self._s[2294]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[2295]! } + public var VoiceOver_Recording_StopAndPreview: String { return self._s[2296]! } + public var ChatListFolder_NameBots: String { return self._s[2297]! } + public var Conversation_StopPollConfirmation: String { return self._s[2298]! } + public var UserInfo_DeleteContact: String { return self._s[2299]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2299]!, self._r[2299]!, [_0]) + return formatWithArgumentRanges(self._s[2300]!, self._r[2300]!, [_0]) } - public var Wallpaper_Wallpaper: String { return self._s[2301]! } + public var Wallpaper_Wallpaper: String { return self._s[2302]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2302]!, self._r[2302]!, [_1]) + return formatWithArgumentRanges(self._s[2303]!, self._r[2303]!, [_1]) } - public var LoginPassword_ForgotPassword: String { return self._s[2303]! } - public var FeaturedStickerPacks_Title: String { return self._s[2304]! } - public var Paint_Pen: String { return self._s[2305]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2306]! } - public var ChatListFolderSettings_Info: String { return self._s[2307]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2308]! } - public var PhotoEditor_CurvesAll: String { return self._s[2310]! } + public var LoginPassword_ForgotPassword: String { return self._s[2304]! } + public var FeaturedStickerPacks_Title: String { return self._s[2305]! } + public var Paint_Pen: String { return self._s[2306]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2307]! } + public var ChatListFolderSettings_Info: String { return self._s[2308]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2309]! } + public var PhotoEditor_CurvesAll: String { return self._s[2311]! } public func Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2312]!, self._r[2312]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2313]!, self._r[2313]!, [_1, _2, _3]) } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2314]! } - public var Message_ImageExpired: String { return self._s[2315]! } - public var Call_ConnectionErrorMessage: String { return self._s[2316]! } - public var SearchImages_NoImagesFound: String { return self._s[2318]! } - public var PeerInfo_PaneGifs: String { return self._s[2319]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2320]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2321]! } - public var PhotoEditor_VignetteTool: String { return self._s[2322]! } - public var Passport_Language_dz: String { return self._s[2323]! } - public var Notifications_ChannelNotificationsHelp: String { return self._s[2324]! } - public var Conversation_BlockUser: String { return self._s[2325]! } - public var GroupPermission_PermissionDisabledByDefault: String { return self._s[2328]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2330]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2315]! } + public var Message_ImageExpired: String { return self._s[2316]! } + public var Call_ConnectionErrorMessage: String { return self._s[2317]! } + public var SearchImages_NoImagesFound: String { return self._s[2319]! } + public var PeerInfo_PaneGifs: String { return self._s[2320]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2321]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2322]! } + public var PhotoEditor_VignetteTool: String { return self._s[2323]! } + public var Passport_Language_dz: String { return self._s[2324]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[2325]! } + public var Conversation_BlockUser: String { return self._s[2326]! } + public var GroupPermission_PermissionDisabledByDefault: String { return self._s[2329]! } + public var TwoStepAuth_CancelResetText: String { return self._s[2331]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2332]! } public func Time_MonthOfYear_m8(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2331]!, self._r[2331]!, [_0]) + return formatWithArgumentRanges(self._s[2333]!, self._r[2333]!, [_0]) } - public var KeyCommand_NewMessage: String { return self._s[2332]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2335]! } + public var KeyCommand_NewMessage: String { return self._s[2334]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2337]! } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2337]!, self._r[2337]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2339]!, self._r[2339]!, [_1, _2]) } - public var ContactList_Context_StartSecretChat: String { return self._s[2338]! } - public var VoiceOver_Chat_File: String { return self._s[2339]! } - public var ChatList_EditFolder: String { return self._s[2341]! } - public var Appearance_BubbleCorners_Title: String { return self._s[2342]! } - public var PeerInfo_PaneAudio: String { return self._s[2343]! } - public var ChatListFolder_CategoryContacts: String { return self._s[2345]! } - public var VoiceOver_ScheduledMessages: String { return self._s[2346]! } + public var ContactList_Context_StartSecretChat: String { return self._s[2340]! } + public var VoiceOver_Chat_File: String { return self._s[2341]! } + public var ChatList_EditFolder: String { return self._s[2343]! } + public var Appearance_BubbleCorners_Title: String { return self._s[2344]! } + public var PeerInfo_PaneAudio: String { return self._s[2345]! } + public var ChatListFolder_CategoryContacts: String { return self._s[2347]! } + public var VoiceOver_ScheduledMessages: String { return self._s[2348]! } public func Login_InvalidPhoneEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2347]!, self._r[2347]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[2349]!, self._r[2349]!, [_1, _2, _3, _4, _5]) } - public var ChatList_PeerTypeChannel: String { return self._s[2348]! } - public var VoiceOver_Navigation_Search: String { return self._s[2349]! } - public var Settings_Search: String { return self._s[2350]! } - public var WallpaperSearch_ColorYellow: String { return self._s[2351]! } - public var Login_PhoneBannedError: String { return self._s[2352]! } - public var KeyCommand_JumpToNextChat: String { return self._s[2353]! } - public var Passport_Language_fa: String { return self._s[2354]! } - public var Settings_About: String { return self._s[2355]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[2356]! } - public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[2357]! } - public var AutoDownloadSettings_DataUsageHigh: String { return self._s[2358]! } + public var ChatList_PeerTypeChannel: String { return self._s[2350]! } + public var VoiceOver_Navigation_Search: String { return self._s[2351]! } + public var Settings_Search: String { return self._s[2352]! } + public var WallpaperSearch_ColorYellow: String { return self._s[2353]! } + public var Login_PhoneBannedError: String { return self._s[2354]! } + public var KeyCommand_JumpToNextChat: String { return self._s[2355]! } + public var Passport_Language_fa: String { return self._s[2356]! } + public var Settings_About: String { return self._s[2357]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[2358]! } + public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[2359]! } + public var AutoDownloadSettings_DataUsageHigh: String { return self._s[2360]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2359]!, self._r[2359]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2361]!, self._r[2361]!, [_1, _2, _3]) } - public var Common_OK: String { return self._s[2360]! } - public var Contacts_SortBy: String { return self._s[2361]! } - public var ImportStickerPack_LinkTaken: String { return self._s[2362]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[2363]! } + public var Common_OK: String { return self._s[2362]! } + public var Contacts_SortBy: String { return self._s[2363]! } + public var ImportStickerPack_LinkTaken: String { return self._s[2364]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[2365]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2365]!, self._r[2365]!, [_0]) + return formatWithArgumentRanges(self._s[2367]!, self._r[2367]!, [_0]) } - public var CallFeedback_IncludeLogs: String { return self._s[2368]! } + public var CallFeedback_IncludeLogs: String { return self._s[2370]! } public func External_OpenIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2369]!, self._r[2369]!, [_0]) + return formatWithArgumentRanges(self._s[2371]!, self._r[2371]!, [_0]) } - public var ImportStickerPack_ChooseLink: String { return self._s[2371]! } - public var Passcode_AppLockedAlert: String { return self._s[2372]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2373]! } - public var Channel_NotificationLoading: String { return self._s[2375]! } - public var Passport_Identity_DocumentNumber: String { return self._s[2376]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2377]! } - public var VoiceOver_Chat_OpenHint: String { return self._s[2378]! } - public var Weekday_ShortFriday: String { return self._s[2379]! } - public var Conversation_TitleMute: String { return self._s[2380]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2381]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[2382]! } - public var DialogList_LanguageTooltip: String { return self._s[2384]! } - public var BroadcastGroups_IntroTitle: String { return self._s[2385]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[2386]! } + public var ImportStickerPack_ChooseLink: String { return self._s[2373]! } + public var Passcode_AppLockedAlert: String { return self._s[2374]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2375]! } + public var Channel_NotificationLoading: String { return self._s[2377]! } + public var Passport_Identity_DocumentNumber: String { return self._s[2378]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2379]! } + public var VoiceOver_Chat_OpenHint: String { return self._s[2380]! } + public var Weekday_ShortFriday: String { return self._s[2381]! } + public var Conversation_TitleMute: String { return self._s[2382]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2383]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[2384]! } + public var DialogList_LanguageTooltip: String { return self._s[2386]! } + public var BroadcastGroups_IntroTitle: String { return self._s[2387]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[2388]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2387]!, self._r[2387]!, [_0]) + return formatWithArgumentRanges(self._s[2389]!, self._r[2389]!, [_0]) } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[2389]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[2390]! } - public var Settings_EditVideo: String { return self._s[2391]! } - public var VoiceOver_Common_Off: String { return self._s[2392]! } - public var Stickers_FrequentlyUsed: String { return self._s[2393]! } - public var GroupPermission_Title: String { return self._s[2394]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[2395]! } - public var Appearance_ThemeCarouselDay: String { return self._s[2396]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[2391]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[2392]! } + public var Settings_EditVideo: String { return self._s[2393]! } + public var VoiceOver_Common_Off: String { return self._s[2394]! } + public var Stickers_FrequentlyUsed: String { return self._s[2395]! } + public var GroupPermission_Title: String { return self._s[2396]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[2397]! } + public var Appearance_ThemeCarouselDay: String { return self._s[2398]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2397]!, self._r[2397]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2399]!, self._r[2399]!, [_1, _2]) } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2398]! } - public var Tour_Title6: String { return self._s[2399]! } - public var EmptyGroupInfo_Title: String { return self._s[2400]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2400]! } + public var Tour_Title6: String { return self._s[2401]! } + public var EmptyGroupInfo_Title: String { return self._s[2402]! } public func Channel_AdminLog_MessageToggleSignaturesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2401]!, self._r[2401]!, [_0]) + return formatWithArgumentRanges(self._s[2403]!, self._r[2403]!, [_0]) } - public var Passport_Language_sk: String { return self._s[2402]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[2403]! } - public var Preview_SaveToCameraRoll: String { return self._s[2404]! } + public var Passport_Language_sk: String { return self._s[2404]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[2405]! } + public var Preview_SaveToCameraRoll: String { return self._s[2406]! } public func VoiceChat_YouCanNowSpeakIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2405]!, self._r[2405]!, [_0]) + return formatWithArgumentRanges(self._s[2407]!, self._r[2407]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[2406]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2407]! } - public var Conversation_ContextMenuMore: String { return self._s[2408]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2409]! } - public var Channel_AdminLog_CanBeAnonymous: String { return self._s[2410]! } - public var CallFeedback_ReasonSilentLocal: String { return self._s[2412]! } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[2408]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2409]! } + public var Conversation_ContextMenuMore: String { return self._s[2410]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2411]! } + public var Channel_AdminLog_CanBeAnonymous: String { return self._s[2412]! } + public var CallFeedback_ReasonSilentLocal: String { return self._s[2414]! } public func Channel_AdminLog_UnmutedMutedParticipant(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2413]!, self._r[2413]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2415]!, self._r[2415]!, [_1, _2]) } - public var UserInfo_NotificationsDisable: String { return self._s[2414]! } + public var UserInfo_NotificationsDisable: String { return self._s[2416]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2416]!, self._r[2416]!, [_0]) + return formatWithArgumentRanges(self._s[2418]!, self._r[2418]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2417]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2419]! } public func Date_ChatDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2419]!, self._r[2419]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2421]!, self._r[2421]!, [_1, _2]) } - public var WallpaperSearch_ColorPrefix: String { return self._s[2420]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2422]! } public func Message_ForwardedPsa_covid(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2421]!, self._r[2421]!, [_0]) + return formatWithArgumentRanges(self._s[2423]!, self._r[2423]!, [_0]) } - public var VoiceChat_NoiseSuppressionDisabled: String { return self._s[2423]! } - public var Conversation_RestrictedMedia: String { return self._s[2424]! } - public var Group_MessageVideoUpdated: String { return self._s[2425]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2426]! } - public var GroupInfo_DeleteAndExit: String { return self._s[2427]! } - public var TwoFactorSetup_Email_Action: String { return self._s[2428]! } - public var Media_ShareThisVideo: String { return self._s[2430]! } - public var DialogList_Replies: String { return self._s[2432]! } + public var VoiceChat_NoiseSuppressionDisabled: String { return self._s[2425]! } + public var Conversation_RestrictedMedia: String { return self._s[2426]! } + public var Group_MessageVideoUpdated: String { return self._s[2427]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2428]! } + public var GroupInfo_DeleteAndExit: String { return self._s[2429]! } + public var TwoFactorSetup_Email_Action: String { return self._s[2430]! } + public var Media_ShareThisVideo: String { return self._s[2432]! } + public var DialogList_Replies: String { return self._s[2434]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2433]!, self._r[2433]!, [_0]) + return formatWithArgumentRanges(self._s[2435]!, self._r[2435]!, [_0]) } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2434]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[2435]! } - public var ImportStickerPack_ImportingStickers: String { return self._s[2436]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2437]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2436]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[2437]! } + public var ImportStickerPack_ImportingStickers: String { return self._s[2438]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2439]! } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2438]!, self._r[2438]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2440]!, self._r[2440]!, [_1, _2]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2439]!, self._r[2439]!, [_0]) + return formatWithArgumentRanges(self._s[2441]!, self._r[2441]!, [_0]) } - public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[2440]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2441]! } - public var ChatList_Search_NoResultsFitlerMedia: String { return self._s[2442]! } - public var Channel_Members_InviteLink: String { return self._s[2443]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[2444]! } - public var WatchRemote_AlertText: String { return self._s[2445]! } + public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[2442]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2443]! } + public var ChatList_Search_NoResultsFitlerMedia: String { return self._s[2444]! } + public var Channel_Members_InviteLink: String { return self._s[2445]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[2446]! } + public var WatchRemote_AlertText: String { return self._s[2447]! } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2446]!, self._r[2446]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2448]!, self._r[2448]!, [_1, _2]) } - public var Conversation_Pin: String { return self._s[2447]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2448]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2449]! } - public var Conversation_CancelForwardTitle: String { return self._s[2450]! } + public var Conversation_Pin: String { return self._s[2449]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2450]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2451]! } + public var Conversation_CancelForwardTitle: String { return self._s[2452]! } public func Notification_PinnedPollMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2451]!, self._r[2451]!, [_0]) + return formatWithArgumentRanges(self._s[2453]!, self._r[2453]!, [_0]) } - public var Appearance_AppIconFilled: String { return self._s[2452]! } - public var StickerPack_ErrorNotFound: String { return self._s[2453]! } + public var Appearance_AppIconFilled: String { return self._s[2454]! } + public var StickerPack_ErrorNotFound: String { return self._s[2455]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2454]!, self._r[2454]!, [_1]) + return formatWithArgumentRanges(self._s[2456]!, self._r[2456]!, [_1]) } - public var Passport_Identity_AddIdentityCard: String { return self._s[2455]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[2457]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2457]!, self._r[2457]!, [_1]) + return formatWithArgumentRanges(self._s[2459]!, self._r[2459]!, [_1]) } - public var Call_Camera: String { return self._s[2458]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2459]! } - public var Group_Location_Info: String { return self._s[2460]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[2461]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[2462]! } + public var Call_Camera: String { return self._s[2460]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2461]! } + public var Group_Location_Info: String { return self._s[2462]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[2463]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[2464]! } public func DialogList_PinLimitError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2463]!, self._r[2463]!, [_0]) + return formatWithArgumentRanges(self._s[2465]!, self._r[2465]!, [_0]) } - public var Weekday_Yesterday: String { return self._s[2464]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[2465]! } - public var InviteLink_Create_UsersLimit: String { return self._s[2466]! } + public var Weekday_Yesterday: String { return self._s[2466]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[2467]! } + public var InviteLink_Create_UsersLimit: String { return self._s[2468]! } public func Notification_VoiceChatScheduledTodayChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2467]!, self._r[2467]!, [_0]) + return formatWithArgumentRanges(self._s[2469]!, self._r[2469]!, [_0]) } - public var ArchivedPacksAlert_Title: String { return self._s[2468]! } - public var PeerInfo_PaneMembers: String { return self._s[2469]! } - public var PhotoEditor_SelectCoverFrame: String { return self._s[2470]! } + public var ArchivedPacksAlert_Title: String { return self._s[2470]! } + public var PeerInfo_PaneMembers: String { return self._s[2471]! } + public var PhotoEditor_SelectCoverFrame: String { return self._s[2472]! } public func Location_ProximityAlertSetTextGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2471]!, self._r[2471]!, [_0]) + return formatWithArgumentRanges(self._s[2473]!, self._r[2473]!, [_0]) } - public var ContactInfo_PhoneLabelMain: String { return self._s[2472]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[2474]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2473]!, self._r[2473]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2475]!, self._r[2475]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[2474]! } - public var Channel_DiscussionGroup: String { return self._s[2475]! } - public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[2476]! } - public var InviteLink_Create_TimeLimit: String { return self._s[2478]! } - public var Channel_EditAdmin_PermissionsHeader: String { return self._s[2479]! } - public var VoiceOver_MessageContextForward: String { return self._s[2480]! } - public var SocksProxySetup_TypeNone: String { return self._s[2481]! } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[2483]! } - public var ProfilePhoto_OpenInEditor: String { return self._s[2485]! } - public var WallpaperSearch_ColorPurple: String { return self._s[2486]! } - public var ChatListFolder_IncludeChatsTitle: String { return self._s[2487]! } - public var Group_Username_InvalidTooShort: String { return self._s[2488]! } - public var Location_ProximityNotification_DistanceM: String { return self._s[2489]! } - public var VoiceChat_EditTitleText: String { return self._s[2490]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[2476]! } + public var Channel_DiscussionGroup: String { return self._s[2477]! } + public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[2478]! } + public var InviteLink_Create_TimeLimit: String { return self._s[2480]! } + public var Channel_EditAdmin_PermissionsHeader: String { return self._s[2481]! } + public var VoiceOver_MessageContextForward: String { return self._s[2482]! } + public var SocksProxySetup_TypeNone: String { return self._s[2483]! } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[2485]! } + public var ProfilePhoto_OpenInEditor: String { return self._s[2487]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2488]! } + public var ChatListFolder_IncludeChatsTitle: String { return self._s[2489]! } + public var Group_Username_InvalidTooShort: String { return self._s[2490]! } + public var Location_ProximityNotification_DistanceM: String { return self._s[2491]! } + public var VoiceChat_EditTitleText: String { return self._s[2492]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2491]!, self._r[2491]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2493]!, self._r[2493]!, [_0, _1, _2]) } - public var Passport_Language_tk: String { return self._s[2492]! } - public var ConvertToSupergroup_Title: String { return self._s[2493]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[2494]! } - public var Cache_KeepMediaHelp: String { return self._s[2495]! } - public var Channel_Management_Title: String { return self._s[2496]! } + public var Passport_Language_tk: String { return self._s[2494]! } + public var ConvertToSupergroup_Title: String { return self._s[2495]! } + public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[2496]! } + public var Cache_KeepMediaHelp: String { return self._s[2497]! } + public var Channel_Management_Title: String { return self._s[2498]! } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2497]!, self._r[2497]!, [_1]) + return formatWithArgumentRanges(self._s[2499]!, self._r[2499]!, [_1]) } - public var Conversation_ForwardChats: String { return self._s[2498]! } - public var Passport_Language_bg: String { return self._s[2499]! } - public var SocksProxySetup_TypeSocks: String { return self._s[2500]! } - public var Permissions_PrivacyPolicy: String { return self._s[2501]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2502]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2503]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2504]! } - public var Conversation_ContextMenuOpenChannel: String { return self._s[2505]! } - public var Report_AdditionalDetailsPlaceholder: String { return self._s[2506]! } - public var Activity_UploadingVideo: String { return self._s[2507]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[2509]! } - public var Widget_LongTapToEdit: String { return self._s[2510]! } - public var VoiceChat_InviteLink_Listener: String { return self._s[2512]! } - public var SocksProxySetup_Credentials: String { return self._s[2513]! } - public var Preview_SaveGif: String { return self._s[2514]! } - public var Cache_Photos: String { return self._s[2515]! } - public var Channel_AdminLogFilter_EventsCalls: String { return self._s[2516]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[2517]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[2518]! } + public var Conversation_ForwardChats: String { return self._s[2500]! } + public var Passport_Language_bg: String { return self._s[2501]! } + public var SocksProxySetup_TypeSocks: String { return self._s[2502]! } + public var Permissions_PrivacyPolicy: String { return self._s[2503]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2504]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2505]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2506]! } + public var Conversation_ContextMenuOpenChannel: String { return self._s[2507]! } + public var Report_AdditionalDetailsPlaceholder: String { return self._s[2508]! } + public var Activity_UploadingVideo: String { return self._s[2509]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[2511]! } + public var Widget_LongTapToEdit: String { return self._s[2512]! } + public var VoiceChat_InviteLink_Listener: String { return self._s[2514]! } + public var SocksProxySetup_Credentials: String { return self._s[2515]! } + public var Preview_SaveGif: String { return self._s[2516]! } + public var Cache_Photos: String { return self._s[2517]! } + public var Channel_AdminLogFilter_EventsCalls: String { return self._s[2518]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[2519]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[2520]! } public func VoiceChat_RemoveAndBanPeerConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2519]!, self._r[2519]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2521]!, self._r[2521]!, [_1, _2]) } - public var Passport_Language_lt: String { return self._s[2520]! } - public var Passport_DeleteDocument: String { return self._s[2522]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2523]! } + public var Passport_Language_lt: String { return self._s[2522]! } + public var Passport_DeleteDocument: String { return self._s[2524]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2525]! } public func Location_ProximityNotification_NotifyLong(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2524]!, self._r[2524]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2526]!, self._r[2526]!, [_1, _2]) } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[2525]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[2527]! } public func PeopleNearby_VisibleUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2526]!, self._r[2526]!, [_0]) - } - public var AccessDenied_VideoCallCamera: String { return self._s[2527]! } - public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2528]!, self._r[2528]!, [_0]) } - public var PhotoEditor_SharpenTool: String { return self._s[2529]! } - public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2530]!, self._r[2530]!, [_1]) + public var AccessDenied_VideoCallCamera: String { return self._s[2529]! } + public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2530]!, self._r[2530]!, [_0]) } - public var DialogList_Unpin: String { return self._s[2531]! } - public var Stickers_NoStickersFound: String { return self._s[2532]! } - public var UserInfo_AddContact: String { return self._s[2534]! } + public var PhotoEditor_SharpenTool: String { return self._s[2531]! } + public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2532]!, self._r[2532]!, [_1]) + } + public var DialogList_Unpin: String { return self._s[2533]! } + public var Stickers_NoStickersFound: String { return self._s[2534]! } + public var UserInfo_AddContact: String { return self._s[2536]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2536]!, self._r[2536]!, [_0]) + return formatWithArgumentRanges(self._s[2538]!, self._r[2538]!, [_0]) } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2537]!, self._r[2537]!, [_0]) + return formatWithArgumentRanges(self._s[2539]!, self._r[2539]!, [_0]) } - public var CallFeedback_VideoReasonDistorted: String { return self._s[2538]! } - public var Tour_Text2: String { return self._s[2539]! } + public var CallFeedback_VideoReasonDistorted: String { return self._s[2540]! } + public var Tour_Text2: String { return self._s[2541]! } public func Conversation_TitleCommentsFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2541]!, self._r[2541]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2543]!, self._r[2543]!, [_1, _2]) } - public var InviteLink_DeleteAllRevokedLinksAlert_Text: String { return self._s[2543]! } - public var Paint_Delete: String { return self._s[2544]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Text: String { return self._s[2545]! } + public var Paint_Delete: String { return self._s[2546]! } public func Call_VoiceChatInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2545]!, self._r[2545]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2547]!, self._r[2547]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2546]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2548]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2548]!, self._r[2548]!, [_0]) + return formatWithArgumentRanges(self._s[2550]!, self._r[2550]!, [_0]) } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[2549]! } - public var Notification_CallOutgoingShort: String { return self._s[2550]! } - public var Checkout_PasswordEntry_Title: String { return self._s[2551]! } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[2552]! } - public var Notification_MessageLifetime1m: String { return self._s[2553]! } - public var BlockedUsers_AddNew: String { return self._s[2555]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2556]! } - public var Settings_SaveEditedPhotos: String { return self._s[2557]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[2558]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[2551]! } + public var Notification_CallOutgoingShort: String { return self._s[2552]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2553]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[2554]! } + public var Notification_MessageLifetime1m: String { return self._s[2555]! } + public var BlockedUsers_AddNew: String { return self._s[2557]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2558]! } + public var Settings_SaveEditedPhotos: String { return self._s[2559]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[2560]! } public func ImportStickerPack_Of(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2559]!, self._r[2559]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2561]!, self._r[2561]!, [_1, _2]) } - public var Channel_AboutItem: String { return self._s[2560]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[2561]! } - public var Privacy_Calls_P2PNever: String { return self._s[2563]! } - public var Passport_Language_uk: String { return self._s[2564]! } - public var NetworkUsageSettings_Wifi: String { return self._s[2565]! } - public var Conversation_Moderate_Report: String { return self._s[2566]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2567]! } - public var VoiceOver_Chat_SeenByRecipients: String { return self._s[2568]! } - public var Permissions_SiriText_v0: String { return self._s[2569]! } - public var Theme_Colors_Background: String { return self._s[2570]! } - public var Notification_CallMissed: String { return self._s[2571]! } - public var Stats_ZoomOut: String { return self._s[2572]! } - public var Profile_AddToExisting: String { return self._s[2573]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2576]! } - public var VoiceChat_RemovePeerRemove: String { return self._s[2577]! } - public var Undo_DeletedChannel: String { return self._s[2578]! } + public var Channel_AboutItem: String { return self._s[2562]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[2563]! } + public var Privacy_Calls_P2PNever: String { return self._s[2565]! } + public var Passport_Language_uk: String { return self._s[2566]! } + public var NetworkUsageSettings_Wifi: String { return self._s[2567]! } + public var Conversation_Moderate_Report: String { return self._s[2568]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2569]! } + public var VoiceOver_Chat_SeenByRecipients: String { return self._s[2570]! } + public var Permissions_SiriText_v0: String { return self._s[2571]! } + public var Theme_Colors_Background: String { return self._s[2572]! } + public var Notification_CallMissed: String { return self._s[2573]! } + public var Stats_ZoomOut: String { return self._s[2574]! } + public var Profile_AddToExisting: String { return self._s[2575]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2578]! } + public var VoiceChat_RemovePeerRemove: String { return self._s[2579]! } + public var Undo_DeletedChannel: String { return self._s[2580]! } public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2579]!, self._r[2579]!, [_0]) + return formatWithArgumentRanges(self._s[2581]!, self._r[2581]!, [_0]) } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2580]! } - public var Map_LiveLocationGroupDescription: String { return self._s[2581]! } - public var Passport_InfoFAQ_URL: String { return self._s[2582]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2585]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2582]! } + public var Map_LiveLocationGroupDescription: String { return self._s[2583]! } + public var Passport_InfoFAQ_URL: String { return self._s[2584]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2587]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2586]!, self._r[2586]!, [_1]) + return formatWithArgumentRanges(self._s[2588]!, self._r[2588]!, [_1]) } - public var State_connecting: String { return self._s[2587]! } - public var Passport_Identity_Country: String { return self._s[2588]! } - public var Passport_PasswordDescription: String { return self._s[2589]! } - public var ChatList_PsaLabel_covid: String { return self._s[2590]! } + public var State_connecting: String { return self._s[2589]! } + public var Passport_Identity_Country: String { return self._s[2590]! } + public var Passport_PasswordDescription: String { return self._s[2591]! } + public var ChatList_PsaLabel_covid: String { return self._s[2592]! } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2591]!, self._r[2591]!, [_1]) + return formatWithArgumentRanges(self._s[2593]!, self._r[2593]!, [_1]) } - public var Contacts_AddPeopleNearby: String { return self._s[2592]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[2593]! } - public var ClearCache_Description: String { return self._s[2594]! } - public var Localization_LanguageName: String { return self._s[2595]! } + public var Contacts_AddPeopleNearby: String { return self._s[2594]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[2595]! } + public var ClearCache_Description: String { return self._s[2596]! } + public var Localization_LanguageName: String { return self._s[2597]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2596]!, self._r[2596]!, [_0]) + return formatWithArgumentRanges(self._s[2598]!, self._r[2598]!, [_0]) } - public var Conversation_AddMembers: String { return self._s[2597]! } - public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[2598]! } - public var UserInfo_CreateNewContact: String { return self._s[2599]! } - public var Channel_Stickers_NotFound: String { return self._s[2601]! } - public var Message_FakeAccount: String { return self._s[2602]! } - public var Watch_Message_Poll: String { return self._s[2603]! } - public var Group_Members_Title: String { return self._s[2604]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2605]! } + public var Conversation_AddMembers: String { return self._s[2599]! } + public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[2600]! } + public var UserInfo_CreateNewContact: String { return self._s[2601]! } + public var Channel_Stickers_NotFound: String { return self._s[2603]! } + public var Message_FakeAccount: String { return self._s[2604]! } + public var Watch_Message_Poll: String { return self._s[2605]! } + public var Group_Members_Title: String { return self._s[2606]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2607]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2606]!, self._r[2606]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2608]!, self._r[2608]!, [_0, _1]) } - public var VoiceChat_CancelConfirmationText: String { return self._s[2607]! } - public var BroadcastGroups_Convert: String { return self._s[2608]! } - public var Login_InfoDeletePhoto: String { return self._s[2609]! } - public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[2610]! } - public var InstantPage_FeedbackButton: String { return self._s[2611]! } - public var Appearance_PreviewReplyText: String { return self._s[2612]! } - public var Passport_FieldPhoneHelp: String { return self._s[2613]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2614]! } - public var Media_SendingOptionsTooltip: String { return self._s[2615]! } - public var ScheduledMessages_ScheduledOnline: String { return self._s[2616]! } - public var Notifications_Badge: String { return self._s[2617]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[2618]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2619]! } + public var VoiceChat_CancelConfirmationText: String { return self._s[2609]! } + public var BroadcastGroups_Convert: String { return self._s[2610]! } + public var Login_InfoDeletePhoto: String { return self._s[2611]! } + public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[2612]! } + public var InstantPage_FeedbackButton: String { return self._s[2613]! } + public var Appearance_PreviewReplyText: String { return self._s[2614]! } + public var Passport_FieldPhoneHelp: String { return self._s[2615]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2616]! } + public var Media_SendingOptionsTooltip: String { return self._s[2617]! } + public var ScheduledMessages_ScheduledOnline: String { return self._s[2618]! } + public var Notifications_Badge: String { return self._s[2619]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[2620]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2621]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2621]!, self._r[2621]!, [_0]) + return formatWithArgumentRanges(self._s[2623]!, self._r[2623]!, [_0]) } - public var Passport_InfoLearnMore: String { return self._s[2622]! } - public var EnterPasscode_EnterTitle: String { return self._s[2623]! } - public var Appearance_EditTheme: String { return self._s[2624]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2625]! } - public var Stats_FollowersTitle: String { return self._s[2626]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[2627]! } - public var Channel_Subscribers_Title: String { return self._s[2628]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2629]! } - public var ChatImportActivity_ErrorGeneric: String { return self._s[2630]! } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[2631]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2632]! } - public var Conversation_AddToReadingList: String { return self._s[2633]! } - public var VoiceChat_EditBioPlaceholder: String { return self._s[2634]! } + public var Passport_InfoLearnMore: String { return self._s[2624]! } + public var EnterPasscode_EnterTitle: String { return self._s[2625]! } + public var Appearance_EditTheme: String { return self._s[2626]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2627]! } + public var Stats_FollowersTitle: String { return self._s[2628]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[2629]! } + public var Channel_Subscribers_Title: String { return self._s[2630]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2631]! } + public var ChatImportActivity_ErrorGeneric: String { return self._s[2632]! } + public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[2633]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2634]! } + public var Conversation_AddToReadingList: String { return self._s[2635]! } + public var VoiceChat_EditBioPlaceholder: String { return self._s[2636]! } public func Notifications_ExceptionsChangeSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2635]!, self._r[2635]!, [_0]) + return formatWithArgumentRanges(self._s[2637]!, self._r[2637]!, [_0]) } - public var Group_AdminLog_EmptyText: String { return self._s[2636]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[2637]! } - public var Watch_Location_Current: String { return self._s[2638]! } - public var Appearance_AppIconNew1: String { return self._s[2639]! } - public var PrivacyPolicy_Title: String { return self._s[2640]! } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2647]! } - public var Channel_TypeSetup_Title: String { return self._s[2651]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[2652]! } - public var Passport_Language_ja: String { return self._s[2653]! } - public var ReportPeer_ReasonSpam: String { return self._s[2654]! } - public var Widget_GalleryDescription: String { return self._s[2655]! } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2656]! } - public var VoiceChat_ChangePhoto: String { return self._s[2658]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[2659]! } - public var Channel_AdminLog_ChangeInfo: String { return self._s[2660]! } - public var ChatListFolder_NameNonContacts: String { return self._s[2661]! } + public var Group_AdminLog_EmptyText: String { return self._s[2638]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[2639]! } + public var Watch_Location_Current: String { return self._s[2640]! } + public var Appearance_AppIconNew1: String { return self._s[2641]! } + public var PrivacyPolicy_Title: String { return self._s[2642]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2649]! } + public var Channel_TypeSetup_Title: String { return self._s[2653]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[2654]! } + public var Passport_Language_ja: String { return self._s[2655]! } + public var ReportPeer_ReasonSpam: String { return self._s[2656]! } + public var Widget_GalleryDescription: String { return self._s[2657]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2658]! } + public var VoiceChat_ChangePhoto: String { return self._s[2660]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[2661]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[2662]! } + public var ChatListFolder_NameNonContacts: String { return self._s[2663]! } public func InviteLink_ExpiresIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2662]!, self._r[2662]!, [_0]) + return formatWithArgumentRanges(self._s[2664]!, self._r[2664]!, [_0]) } - public var Call_Audio: String { return self._s[2663]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2664]! } - public var ChatList_Search_NoResultsFitlerFiles: String { return self._s[2665]! } - public var Settings_PrivacySettings: String { return self._s[2666]! } - public var InviteLink_UsageLimitReached: String { return self._s[2667]! } - public var Stats_Followers: String { return self._s[2668]! } - public var Notifications_AddExceptionTitle: String { return self._s[2669]! } - public var TwoFactorSetup_Password_Title: String { return self._s[2670]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2671]! } - public var OldChannels_NoticeText: String { return self._s[2672]! } - public var Conversation_SavedMessages: String { return self._s[2673]! } - public var Intents_ErrorLockedText: String { return self._s[2674]! } + public var Call_Audio: String { return self._s[2665]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2666]! } + public var ChatList_Search_NoResultsFitlerFiles: String { return self._s[2667]! } + public var Settings_PrivacySettings: String { return self._s[2668]! } + public var InviteLink_UsageLimitReached: String { return self._s[2669]! } + public var Stats_Followers: String { return self._s[2670]! } + public var Notifications_AddExceptionTitle: String { return self._s[2671]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2672]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2673]! } + public var OldChannels_NoticeText: String { return self._s[2674]! } + public var Conversation_SavedMessages: String { return self._s[2675]! } + public var Intents_ErrorLockedText: String { return self._s[2676]! } public func Conversation_PeerNearbyTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2676]!, self._r[2676]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2678]!, self._r[2678]!, [_1, _2]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2677]! } - public var Appearance_ThemeNightBlue: String { return self._s[2678]! } - public var Notification_ChannelInviterSelf: String { return self._s[2679]! } - public var Conversation_ForwardTooltip_SavedMessages_Many: String { return self._s[2680]! } - public var InviteLink_Create_TimeLimitExpiryDateNever: String { return self._s[2682]! } - public var Watch_UserInfo_Service: String { return self._s[2683]! } - public var ChatList_Context_Back: String { return self._s[2684]! } - public var Passport_Email_Title: String { return self._s[2685]! } - public var ImportStickerPack_AddToExistingStickerSet: String { return self._s[2686]! } - public var Stats_GroupTopAdmin_Promote: String { return self._s[2687]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2679]! } + public var Appearance_ThemeNightBlue: String { return self._s[2680]! } + public var Notification_ChannelInviterSelf: String { return self._s[2681]! } + public var Conversation_ForwardTooltip_SavedMessages_Many: String { return self._s[2682]! } + public var InviteLink_Create_TimeLimitExpiryDateNever: String { return self._s[2684]! } + public var Watch_UserInfo_Service: String { return self._s[2685]! } + public var ChatList_Context_Back: String { return self._s[2686]! } + public var Passport_Email_Title: String { return self._s[2687]! } + public var ImportStickerPack_AddToExistingStickerSet: String { return self._s[2688]! } + public var Stats_GroupTopAdmin_Promote: String { return self._s[2689]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2688]!, self._r[2688]!, [_1]) + return formatWithArgumentRanges(self._s[2690]!, self._r[2690]!, [_1]) } - public var Conversation_UnsupportedMedia: String { return self._s[2689]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2690]! } - public var Privacy_TopPeersHelp: String { return self._s[2692]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[2693]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2694]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[2695]! } + public var Conversation_UnsupportedMedia: String { return self._s[2691]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2692]! } + public var Privacy_TopPeersHelp: String { return self._s[2694]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[2695]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2696]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[2697]! } public func Location_ProximityNotification_AlreadyClose(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2696]!, self._r[2696]!, [_0]) + return formatWithArgumentRanges(self._s[2698]!, self._r[2698]!, [_0]) } - public var Notification_PassportValueProofOfAddress: String { return self._s[2697]! } - public var Map_Map: String { return self._s[2698]! } - public var WallpaperSearch_ColorBlue: String { return self._s[2699]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[2700]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2701]! } - public var ChatList_Search_FilterMusic: String { return self._s[2702]! } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[2703]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2704]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[2706]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[2699]! } + public var Map_Map: String { return self._s[2700]! } + public var WallpaperSearch_ColorBlue: String { return self._s[2701]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[2702]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2703]! } + public var ChatList_Search_FilterMusic: String { return self._s[2704]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[2705]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2706]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[2708]! } public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2707]!, self._r[2707]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2709]!, self._r[2709]!, [_1, _2]) } public func Notification_ChangedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2708]!, self._r[2708]!, [_0]) + return formatWithArgumentRanges(self._s[2710]!, self._r[2710]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2709]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2710]! } - public var VoiceOver_ChatList_MessageEmpty: String { return self._s[2712]! } - public var GroupInfo_Location: String { return self._s[2713]! } - public var Passport_Language_ka: String { return self._s[2714]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2711]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2712]! } + public var VoiceOver_ChatList_MessageEmpty: String { return self._s[2714]! } + public var GroupInfo_Location: String { return self._s[2715]! } + public var Passport_Language_ka: String { return self._s[2716]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2715]!, self._r[2715]!, [_0]) + return formatWithArgumentRanges(self._s[2717]!, self._r[2717]!, [_0]) } - public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2716]! } - public var ChatImport_SelectionConfirmationAlertTitle: String { return self._s[2718]! } - public var ScheduledMessages_ClearAllConfirmation: String { return self._s[2720]! } - public var DialogList_SearchSectionRecent: String { return self._s[2721]! } - public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2722]! } - public var Conversation_Timer_Send: String { return self._s[2723]! } + public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2718]! } + public var ChatImport_SelectionConfirmationAlertTitle: String { return self._s[2720]! } + public var ScheduledMessages_ClearAllConfirmation: String { return self._s[2722]! } + public var DialogList_SearchSectionRecent: String { return self._s[2723]! } + public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2724]! } + public var Conversation_Timer_Send: String { return self._s[2725]! } public func VoiceOver_ScrollStatus(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2725]!, self._r[2725]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2727]!, self._r[2727]!, [_1, _2]) } - public var ChatState_Updating: String { return self._s[2726]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[2727]! } - public var ChannelInfo_DeleteGroup: String { return self._s[2728]! } - public var TwoStepAuth_RecoveryFailed: String { return self._s[2729]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2730]! } - public var InviteLink_Create_TimeLimitExpiryTime: String { return self._s[2731]! } - public var ChannelInfo_InviteLink_RevokeAlert_Text: String { return self._s[2732]! } - public var ChatList_Search_NoResults: String { return self._s[2733]! } - public var ChatListFolderSettings_AddRecommended: String { return self._s[2735]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2736]! } - public var PeerInfo_GroupAboutItem: String { return self._s[2737]! } - public var VoiceOver_SelfDestructTimerOff: String { return self._s[2739]! } + public var ChatState_Updating: String { return self._s[2728]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[2729]! } + public var ChannelInfo_DeleteGroup: String { return self._s[2730]! } + public var TwoStepAuth_RecoveryFailed: String { return self._s[2731]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2732]! } + public var InviteLink_Create_TimeLimitExpiryTime: String { return self._s[2733]! } + public var ChannelInfo_InviteLink_RevokeAlert_Text: String { return self._s[2734]! } + public var ChatList_Search_NoResults: String { return self._s[2735]! } + public var ChatListFolderSettings_AddRecommended: String { return self._s[2737]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2738]! } + public var PeerInfo_GroupAboutItem: String { return self._s[2739]! } + public var VoiceOver_SelfDestructTimerOff: String { return self._s[2741]! } public func Channel_AdminLog_DeletedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2740]!, self._r[2740]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2742]!, self._r[2742]!, [_1, _2]) } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2741]!, self._r[2741]!, [_0]) + return formatWithArgumentRanges(self._s[2743]!, self._r[2743]!, [_0]) } - public var PrivacySettings_AuthSessions: String { return self._s[2742]! } - public var Passport_Address_Postcode: String { return self._s[2743]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2744]! } + public var PrivacySettings_AuthSessions: String { return self._s[2744]! } + public var Passport_Address_Postcode: String { return self._s[2745]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2746]! } public func VoiceChat_ForwardTooltip_ManyChats(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2745]!, self._r[2745]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2747]!, self._r[2747]!, [_0, _1]) } - public var Passport_Address_Street2Placeholder: String { return self._s[2746]! } - public var Group_Location_Title: String { return self._s[2747]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[2748]! } - public var PeopleNearby_UsersEmpty: String { return self._s[2749]! } - public var Conversation_ContextMenuSpeak: String { return self._s[2751]! } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[2752]! } + public var Passport_Address_Street2Placeholder: String { return self._s[2748]! } + public var Group_Location_Title: String { return self._s[2749]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[2750]! } + public var PeopleNearby_UsersEmpty: String { return self._s[2751]! } + public var Conversation_ContextMenuSpeak: String { return self._s[2753]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[2754]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2754]!, self._r[2754]!, [_0]) + return formatWithArgumentRanges(self._s[2756]!, self._r[2756]!, [_0]) } - public var Proxy_TooltipUnavailable: String { return self._s[2755]! } - public var Map_Search: String { return self._s[2756]! } - public var VoiceChat_CancelConfirmationTitle: String { return self._s[2757]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[2758]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2759]! } + public var Proxy_TooltipUnavailable: String { return self._s[2757]! } + public var Map_Search: String { return self._s[2758]! } + public var VoiceChat_CancelConfirmationTitle: String { return self._s[2759]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[2760]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2761]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2760]!, self._r[2760]!, [_0]) + return formatWithArgumentRanges(self._s[2762]!, self._r[2762]!, [_0]) } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[2761]! } - public var ProfilePhoto_MainPhoto: String { return self._s[2762]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2763]! } - public var SharedMedia_EmptyMusicText: String { return self._s[2764]! } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[2765]! } - public var NetworkUsageSettings_BytesReceived: String { return self._s[2766]! } - public var Channel_AdminLog_EmptyText: String { return self._s[2767]! } - public var ImportStickerPack_InProgress: String { return self._s[2768]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2769]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[2770]! } - public var Notifications_GroupNotifications: String { return self._s[2771]! } - public var AccessDenied_SaveMedia: String { return self._s[2772]! } - public var InviteLink_Create_Revoke: String { return self._s[2773]! } - public var GroupInfo_LabelOwner: String { return self._s[2774]! } - public var TwoFactorSetup_PasswordRecovery_Action: String { return self._s[2775]! } - public var Passport_Language_id: String { return self._s[2777]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2778]! } - public var Conversation_UnpinMessageAlert: String { return self._s[2779]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[2763]! } + public var ProfilePhoto_MainPhoto: String { return self._s[2764]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2765]! } + public var SharedMedia_EmptyMusicText: String { return self._s[2766]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[2767]! } + public var NetworkUsageSettings_BytesReceived: String { return self._s[2768]! } + public var Channel_AdminLog_EmptyText: String { return self._s[2769]! } + public var ImportStickerPack_InProgress: String { return self._s[2770]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2771]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[2772]! } + public var Notifications_GroupNotifications: String { return self._s[2773]! } + public var AccessDenied_SaveMedia: String { return self._s[2774]! } + public var InviteLink_Create_Revoke: String { return self._s[2775]! } + public var GroupInfo_LabelOwner: String { return self._s[2776]! } + public var TwoFactorSetup_PasswordRecovery_Action: String { return self._s[2777]! } + public var Passport_Language_id: String { return self._s[2779]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2780]! } + public var Conversation_UnpinMessageAlert: String { return self._s[2781]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2780]!, self._r[2780]!, [_0]) + return formatWithArgumentRanges(self._s[2782]!, self._r[2782]!, [_0]) } public func Call_RemoteVideoPaused(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2781]!, self._r[2781]!, [_0]) - } - public var TwoFactorSetup_Done_Text: String { return self._s[2782]! } - public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2783]!, self._r[2783]!, [_0]) } - public var NetworkUsageSettings_BytesSent: String { return self._s[2784]! } - public var Conversation_AudioRateTooltipNormal: String { return self._s[2785]! } - public var VoiceChat_EditDescriptionSuccess: String { return self._s[2786]! } - public var OwnershipTransfer_Transfer: String { return self._s[2787]! } + public var TwoFactorSetup_Done_Text: String { return self._s[2784]! } + public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2785]!, self._r[2785]!, [_0]) + } + public var NetworkUsageSettings_BytesSent: String { return self._s[2786]! } + public var Conversation_AudioRateTooltipNormal: String { return self._s[2787]! } + public var VoiceChat_EditDescriptionSuccess: String { return self._s[2788]! } + public var OwnershipTransfer_Transfer: String { return self._s[2789]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2788]!, self._r[2788]!, [_0]) + return formatWithArgumentRanges(self._s[2790]!, self._r[2790]!, [_0]) } - public var Passport_Language_pt: String { return self._s[2789]! } - public var PrivacySettings_WebSessions: String { return self._s[2790]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[2792]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2793]! } + public var Passport_Language_pt: String { return self._s[2791]! } + public var PrivacySettings_WebSessions: String { return self._s[2792]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[2794]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2795]! } public func Notification_Joined(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2794]!, self._r[2794]!, [_0]) + return formatWithArgumentRanges(self._s[2796]!, self._r[2796]!, [_0]) } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2795]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2796]! } - public var AutoNightTheme_Scheduled: String { return self._s[2797]! } - public var CreatePoll_ExplanationHeader: String { return self._s[2798]! } - public var Calls_TabTitle: String { return self._s[2799]! } - public var VoiceChat_RecordingInProgress: String { return self._s[2800]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[2801]! } - public var Notification_VideoCallCanceled: String { return self._s[2802]! } - public var Login_CodeSentInternal: String { return self._s[2803]! } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[2804]! } - public var Call_RecordingDisabledMessage: String { return self._s[2806]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2797]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2798]! } + public var AutoNightTheme_Scheduled: String { return self._s[2799]! } + public var CreatePoll_ExplanationHeader: String { return self._s[2800]! } + public var Calls_TabTitle: String { return self._s[2801]! } + public var VoiceChat_RecordingInProgress: String { return self._s[2802]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[2803]! } + public var Notification_VideoCallCanceled: String { return self._s[2804]! } + public var Login_CodeSentInternal: String { return self._s[2805]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[2806]! } + public var Call_RecordingDisabledMessage: String { return self._s[2808]! } public func VoiceChat_RemovedPeerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2807]!, self._r[2807]!, [_0]) + return formatWithArgumentRanges(self._s[2809]!, self._r[2809]!, [_0]) } - public var Conversation_UsersTooMuchError: String { return self._s[2809]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[2810]! } - public var VoiceChat_StopScreenSharingShort: String { return self._s[2811]! } - public var Channel_Info_Stickers: String { return self._s[2812]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[2813]! } + public var Conversation_UsersTooMuchError: String { return self._s[2811]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[2812]! } + public var VoiceChat_StopScreenSharingShort: String { return self._s[2813]! } + public var Channel_Info_Stickers: String { return self._s[2814]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[2815]! } public func Conversation_PeerNearbyDistance(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2814]!, self._r[2814]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2816]!, self._r[2816]!, [_1, _2]) } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[2815]! } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[2817]! } public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2816]!, self._r[2816]!, [_0]) + return formatWithArgumentRanges(self._s[2818]!, self._r[2818]!, [_0]) } - public var Passport_DiscardMessageTitle: String { return self._s[2817]! } - public var Call_VoiceOver_VideoCallIncoming: String { return self._s[2818]! } - public var Localization_LanguageOther: String { return self._s[2819]! } - public var Conversation_EncryptionCanceled: String { return self._s[2820]! } - public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2821]! } - public var ReportPeer_ReasonFake: String { return self._s[2823]! } + public var Passport_DiscardMessageTitle: String { return self._s[2819]! } + public var Call_VoiceOver_VideoCallIncoming: String { return self._s[2820]! } + public var Localization_LanguageOther: String { return self._s[2821]! } + public var Conversation_EncryptionCanceled: String { return self._s[2822]! } + public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2823]! } + public var ReportPeer_ReasonFake: String { return self._s[2825]! } public func Notification_SecretChatMessageScreenshot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2824]!, self._r[2824]!, [_0]) + return formatWithArgumentRanges(self._s[2826]!, self._r[2826]!, [_0]) } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2826]! } - public var SocksProxySetup_SavedProxies: String { return self._s[2827]! } - public var InviteLink_Create_UsersLimitNumberOfUsers: String { return self._s[2828]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2828]! } + public var SocksProxySetup_SavedProxies: String { return self._s[2829]! } + public var InviteLink_Create_UsersLimitNumberOfUsers: String { return self._s[2830]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2829]!, self._r[2829]!, [_1]) + return formatWithArgumentRanges(self._s[2831]!, self._r[2831]!, [_1]) } - public var Conversation_ScamWarning: String { return self._s[2831]! } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[2832]! } - public var LocalGroup_Title: String { return self._s[2833]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2835]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[2836]! } - public var VoiceChat_SelectAccount: String { return self._s[2837]! } - public var Login_PhoneFloodError: String { return self._s[2838]! } - public var Conversation_PinMessageAlert_PinAndNotifyMembers: String { return self._s[2839]! } - public var Username_InvalidTaken: String { return self._s[2841]! } - public var SocksProxySetup_AddProxy: String { return self._s[2843]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[2844]! } - public var MediaPicker_UngroupDescription: String { return self._s[2845]! } - public var Login_CodeExpired: String { return self._s[2846]! } - public var Localization_ChooseLanguage: String { return self._s[2847]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[2848]! } + public var Conversation_ScamWarning: String { return self._s[2833]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[2834]! } + public var LocalGroup_Title: String { return self._s[2835]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2837]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[2838]! } + public var VoiceChat_SelectAccount: String { return self._s[2839]! } + public var Login_PhoneFloodError: String { return self._s[2840]! } + public var Conversation_PinMessageAlert_PinAndNotifyMembers: String { return self._s[2841]! } + public var Username_InvalidTaken: String { return self._s[2843]! } + public var SocksProxySetup_AddProxy: String { return self._s[2845]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[2846]! } + public var MediaPicker_UngroupDescription: String { return self._s[2847]! } + public var Login_CodeExpired: String { return self._s[2848]! } + public var Localization_ChooseLanguage: String { return self._s[2849]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[2850]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2849]!, self._r[2849]!, [_0]) + return formatWithArgumentRanges(self._s[2851]!, self._r[2851]!, [_0]) } public func Channel_DiscussionGroup_HeaderSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2850]!, self._r[2850]!, [_0]) + return formatWithArgumentRanges(self._s[2852]!, self._r[2852]!, [_0]) } - public var ReportPeer_ReasonOther_Title: String { return self._s[2852]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[2853]! } + public var ReportPeer_ReasonOther_Title: String { return self._s[2854]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[2855]! } public func VoiceChat_UserInvited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2854]!, self._r[2854]!, [_0]) + return formatWithArgumentRanges(self._s[2856]!, self._r[2856]!, [_0]) } - public var PeerInfo_ButtonDiscuss: String { return self._s[2855]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[2856]! } - public var Call_StatusNoAnswer: String { return self._s[2857]! } - public var ScheduledMessages_DeleteMany: String { return self._s[2859]! } - public var Channel_DiscussionGroupInfo: String { return self._s[2860]! } - public var Conversation_UnarchiveDone: String { return self._s[2861]! } - public var LogoutOptions_AddAccountText: String { return self._s[2862]! } - public var Message_PinnedContactMessage: String { return self._s[2863]! } + public var PeerInfo_ButtonDiscuss: String { return self._s[2857]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[2858]! } + public var Call_StatusNoAnswer: String { return self._s[2859]! } + public var ScheduledMessages_DeleteMany: String { return self._s[2861]! } + public var Channel_DiscussionGroupInfo: String { return self._s[2862]! } + public var Conversation_UnarchiveDone: String { return self._s[2863]! } + public var LogoutOptions_AddAccountText: String { return self._s[2864]! } + public var Message_PinnedContactMessage: String { return self._s[2865]! } public func ChatList_DeleteAndLeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2864]!, self._r[2864]!, [_0]) + return formatWithArgumentRanges(self._s[2866]!, self._r[2866]!, [_0]) } - public var VoiceChat_EditBioTitle: String { return self._s[2866]! } + public var VoiceChat_EditBioTitle: String { return self._s[2868]! } public func FileSize_GB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2867]!, self._r[2867]!, [_0]) + return formatWithArgumentRanges(self._s[2869]!, self._r[2869]!, [_0]) } - public var Stats_GroupLanguagesTitle: String { return self._s[2868]! } - public var Passport_FieldAddressHelp: String { return self._s[2869]! } + public var Stats_GroupLanguagesTitle: String { return self._s[2870]! } + public var Passport_FieldAddressHelp: String { return self._s[2871]! } public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2870]!, self._r[2870]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2872]!, self._r[2872]!, [_1, _2]) } - public var ChatSettings_OpenLinksIn: String { return self._s[2872]! } - public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2873]! } - public var Message_Photo: String { return self._s[2874]! } - public var Media_LimitedAccessManage: String { return self._s[2876]! } - public var MediaPicker_AddCaption: String { return self._s[2877]! } - public var LogoutOptions_Title: String { return self._s[2878]! } + public var ChatSettings_OpenLinksIn: String { return self._s[2874]! } + public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2875]! } + public var Message_Photo: String { return self._s[2876]! } + public var Media_LimitedAccessManage: String { return self._s[2878]! } + public var MediaPicker_AddCaption: String { return self._s[2879]! } + public var LogoutOptions_Title: String { return self._s[2880]! } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2879]!, self._r[2879]!, [_1]) + return formatWithArgumentRanges(self._s[2881]!, self._r[2881]!, [_1]) } - public var Conversation_StatusKickedFromGroup: String { return self._s[2880]! } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2881]! } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2882]! } - public var Channel_AdminLogFilter_Title: String { return self._s[2883]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[2884]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[2885]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2886]! } - public var ChannelIntro_Title: String { return self._s[2887]! } - public var Stats_Message_Views: String { return self._s[2888]! } - public var Stickers_Install: String { return self._s[2889]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[2882]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2883]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2884]! } + public var Channel_AdminLogFilter_Title: String { return self._s[2885]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[2886]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[2887]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2888]! } + public var ChannelIntro_Title: String { return self._s[2889]! } + public var Stats_Message_Views: String { return self._s[2890]! } + public var Stickers_Install: String { return self._s[2891]! } public func VoiceOver_Chat_FileFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2890]!, self._r[2890]!, [_0]) + return formatWithArgumentRanges(self._s[2892]!, self._r[2892]!, [_0]) } - public var EditTheme_Create_Preview_IncomingReplyText: String { return self._s[2891]! } - public var Conversation_SwipeToReplyHintTitle: String { return self._s[2893]! } - public var Settings_Username: String { return self._s[2896]! } - public var FastTwoStepSetup_Title: String { return self._s[2897]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2898]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[2899]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2901]! } - public var CallFeedback_ReasonEcho: String { return self._s[2902]! } + public var EditTheme_Create_Preview_IncomingReplyText: String { return self._s[2893]! } + public var Conversation_SwipeToReplyHintTitle: String { return self._s[2895]! } + public var Settings_Username: String { return self._s[2898]! } + public var FastTwoStepSetup_Title: String { return self._s[2899]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2900]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[2901]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2903]! } + public var CallFeedback_ReasonEcho: String { return self._s[2904]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2903]!, self._r[2903]!, [_0]) + return formatWithArgumentRanges(self._s[2905]!, self._r[2905]!, [_0]) } - public var Conversation_OpenBotLinkTitle: String { return self._s[2904]! } - public var SocksProxySetup_Title: String { return self._s[2905]! } - public var CallFeedback_Success: String { return self._s[2906]! } - public var WallpaperPreview_SwipeTopText: String { return self._s[2908]! } - public var InstantPage_AutoNightTheme: String { return self._s[2910]! } - public var Watch_Conversation_Reply: String { return self._s[2911]! } - public var VoiceChat_Share: String { return self._s[2913]! } - public var VoiceChat_AddPhoto: String { return self._s[2914]! } - public var Chat_PanelUnpinAllMessages: String { return self._s[2915]! } - public var WallpaperPreview_Pattern: String { return self._s[2916]! } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2917]! } + public var Conversation_OpenBotLinkTitle: String { return self._s[2906]! } + public var SocksProxySetup_Title: String { return self._s[2907]! } + public var CallFeedback_Success: String { return self._s[2908]! } + public var WallpaperPreview_SwipeTopText: String { return self._s[2910]! } + public var InstantPage_AutoNightTheme: String { return self._s[2912]! } + public var Watch_Conversation_Reply: String { return self._s[2913]! } + public var VoiceChat_Share: String { return self._s[2915]! } + public var VoiceChat_AddPhoto: String { return self._s[2916]! } + public var Chat_PanelUnpinAllMessages: String { return self._s[2917]! } + public var WallpaperPreview_Pattern: String { return self._s[2918]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2919]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2918]!, self._r[2918]!, [_0]) + return formatWithArgumentRanges(self._s[2920]!, self._r[2920]!, [_0]) } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[2919]! } - public var VoiceOver_Chat_GroupInfo: String { return self._s[2920]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[2922]! } - public var Update_Title: String { return self._s[2923]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[2924]! } - public var WallpaperPreview_CropTopText: String { return self._s[2927]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[2928]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2929]! } - public var ChatListFolder_DiscardCancel: String { return self._s[2930]! } - public var Message_PinnedPhotoMessage: String { return self._s[2931]! } - public var Appearance_ThemeDayClassic: String { return self._s[2932]! } - public var VoiceChat_ChangeName: String { return self._s[2933]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[2935]! } - public var VoiceChat_DisplayAsInfo: String { return self._s[2937]! } - public var AccessDenied_Wallpapers: String { return self._s[2942]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[2921]! } + public var VoiceOver_Chat_GroupInfo: String { return self._s[2922]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[2924]! } + public var Update_Title: String { return self._s[2925]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[2926]! } + public var WallpaperPreview_CropTopText: String { return self._s[2929]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[2930]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2931]! } + public var ChatListFolder_DiscardCancel: String { return self._s[2932]! } + public var Message_PinnedPhotoMessage: String { return self._s[2933]! } + public var Appearance_ThemeDayClassic: String { return self._s[2934]! } + public var VoiceChat_ChangeName: String { return self._s[2935]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[2937]! } + public var VoiceChat_DisplayAsInfo: String { return self._s[2939]! } + public var AccessDenied_Wallpapers: String { return self._s[2944]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2943]!, self._r[2943]!, [_0]) + return formatWithArgumentRanges(self._s[2945]!, self._r[2945]!, [_0]) } - public var Weekday_Sunday: String { return self._s[2944]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[2946]! } - public var PeopleNearby_MakeVisibleDescription: String { return self._s[2947]! } - public var AccessDenied_LocationDisabled: String { return self._s[2948]! } - public var Tour_Text3: String { return self._s[2949]! } - public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2950]! } + public var Weekday_Sunday: String { return self._s[2946]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[2948]! } + public var PeopleNearby_MakeVisibleDescription: String { return self._s[2949]! } + public var AccessDenied_LocationDisabled: String { return self._s[2950]! } + public var Tour_Text3: String { return self._s[2951]! } + public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2952]! } public func Time_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2951]!, self._r[2951]!, [_0]) + return formatWithArgumentRanges(self._s[2953]!, self._r[2953]!, [_0]) } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2952]! } - public var Conversation_ClearCache: String { return self._s[2953]! } - public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[2954]! } - public var ChatList_Tabs_AllChats: String { return self._s[2955]! } - public var DialogList_RecentTitlePeople: String { return self._s[2956]! } - public var Stickers_AddToFavorites: String { return self._s[2957]! } - public var ChatList_Context_RemoveFromFolder: String { return self._s[2958]! } - public var VoiceChat_CancelSpeakRequest: String { return self._s[2959]! } - public var Settings_RemoveVideo: String { return self._s[2960]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2961]! } - public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[2962]! } - public var VoiceOver_Chat_YourFile: String { return self._s[2963]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[2965]! } - public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[2966]! } - public var VoiceChat_TapToAddBio: String { return self._s[2967]! } - public var Channel_AdminLog_AddMembers: String { return self._s[2968]! } - public var Map_SendThisLocation: String { return self._s[2970]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[2972]! } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2973]! } - public var CloudStorage_Title: String { return self._s[2974]! } - public var TwoFactorSetup_Password_Action: String { return self._s[2975]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[2976]! } - public var Passport_Address_EditTemporaryRegistration: String { return self._s[2978]! } - public var Undo_LeftGroup: String { return self._s[2979]! } - public var Conversation_StopLiveLocation: String { return self._s[2980]! } - public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[2981]! } - public var Message_PinnedInvoice: String { return self._s[2982]! } - public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2983]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2954]! } + public var Conversation_ClearCache: String { return self._s[2955]! } + public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[2956]! } + public var ChatList_Tabs_AllChats: String { return self._s[2957]! } + public var DialogList_RecentTitlePeople: String { return self._s[2958]! } + public var Stickers_AddToFavorites: String { return self._s[2959]! } + public var ChatList_Context_RemoveFromFolder: String { return self._s[2960]! } + public var VoiceChat_CancelSpeakRequest: String { return self._s[2961]! } + public var Settings_RemoveVideo: String { return self._s[2962]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2963]! } + public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[2964]! } + public var VoiceOver_Chat_YourFile: String { return self._s[2965]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[2967]! } + public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[2968]! } + public var VoiceChat_TapToAddBio: String { return self._s[2969]! } + public var Channel_AdminLog_AddMembers: String { return self._s[2970]! } + public var Map_SendThisLocation: String { return self._s[2972]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[2974]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2975]! } + public var CloudStorage_Title: String { return self._s[2976]! } + public var TwoFactorSetup_Password_Action: String { return self._s[2977]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[2978]! } + public var Passport_Address_EditTemporaryRegistration: String { return self._s[2980]! } + public var Undo_LeftGroup: String { return self._s[2981]! } + public var Conversation_StopLiveLocation: String { return self._s[2982]! } + public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[2983]! } + public var Message_PinnedInvoice: String { return self._s[2984]! } + public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2985]! } public func PUSH_CHAT_MESSAGE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2985]!, self._r[2985]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2987]!, self._r[2987]!, [_1, _2]) } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2986]!, self._r[2986]!, [_0]) + return formatWithArgumentRanges(self._s[2988]!, self._r[2988]!, [_0]) } - public var Weekday_Tuesday: String { return self._s[2987]! } - public var ChangePhoneNumberCode_Code: String { return self._s[2988]! } - public var VoiceOver_Chat_YourMessage: String { return self._s[2989]! } - public var Calls_CallTabDescription: String { return self._s[2990]! } - public var ChatImport_SelectionErrorNotAdmin: String { return self._s[2991]! } - public var SocksProxySetup_UseProxy: String { return self._s[2993]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2994]! } - public var PasscodeSettings_AlphanumericCode: String { return self._s[2995]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[2996]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[2998]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2999]! } - public var Exceptions_AddToExceptions: String { return self._s[3000]! } - public var UserInfo_Title: String { return self._s[3001]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[3003]! } - public var VoiceChat_EditDescription: String { return self._s[3005]! } - public var ChatList_Unmute: String { return self._s[3006]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[3007]! } + public var TwoStepAuth_RecoveryUnavailableResetTitle: String { return self._s[2989]! } + public var Weekday_Tuesday: String { return self._s[2990]! } + public var ChangePhoneNumberCode_Code: String { return self._s[2991]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2992]! } + public var Calls_CallTabDescription: String { return self._s[2993]! } + public var ChatImport_SelectionErrorNotAdmin: String { return self._s[2994]! } + public var SocksProxySetup_UseProxy: String { return self._s[2996]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2997]! } + public var PasscodeSettings_AlphanumericCode: String { return self._s[2998]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[2999]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[3001]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[3002]! } + public var Exceptions_AddToExceptions: String { return self._s[3003]! } + public var UserInfo_Title: String { return self._s[3004]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[3006]! } + public var VoiceChat_EditDescription: String { return self._s[3008]! } + public var ChatList_Unmute: String { return self._s[3009]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[3010]! } public func Channel_AdminLog_MessageChangedAutoremoveTimeoutSet(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3008]!, self._r[3008]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3011]!, self._r[3011]!, [_1, _2]) } - public var Stats_GroupTopPostersTitle: String { return self._s[3009]! } - public var Username_CheckingUsername: String { return self._s[3011]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3012]! } - public var PeerSelection_ImportIntoNewGroup: String { return self._s[3016]! } - public var Location_ProximityAlertSetTitle: String { return self._s[3017]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[3018]! } - public var Conversation_JoinVoiceChatAsSpeaker: String { return self._s[3019]! } - public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[3020]! } - public var Settings_ChangePhoneNumber: String { return self._s[3021]! } - public var PeerInfo_PaneLinks: String { return self._s[3022]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3025]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[3027]! } + public var Stats_GroupTopPostersTitle: String { return self._s[3012]! } + public var Username_CheckingUsername: String { return self._s[3014]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3015]! } + public var PeerSelection_ImportIntoNewGroup: String { return self._s[3019]! } + public var Location_ProximityAlertSetTitle: String { return self._s[3020]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[3021]! } + public var Conversation_JoinVoiceChatAsSpeaker: String { return self._s[3022]! } + public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[3023]! } + public var Settings_ChangePhoneNumber: String { return self._s[3024]! } + public var PeerInfo_PaneLinks: String { return self._s[3025]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3028]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[3030]! } public func PUSH_CHAT_VOICECHAT_INVITE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3028]!, self._r[3028]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3031]!, self._r[3031]!, [_1, _2]) } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3029]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3030]! } - public var VoiceChat_CancelConfirmationEnd: String { return self._s[3031]! } - public var BroadcastGroups_ConfirmationAlert_Title: String { return self._s[3032]! } - public var Stats_FollowersBySourceTitle: String { return self._s[3034]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3032]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3033]! } + public var VoiceChat_CancelConfirmationEnd: String { return self._s[3034]! } + public var BroadcastGroups_ConfirmationAlert_Title: String { return self._s[3035]! } + public var Stats_FollowersBySourceTitle: String { return self._s[3037]! } public func Conversation_ScheduleMessage_SendOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3035]!, self._r[3035]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3038]!, self._r[3038]!, [_0, _1]) } - public var Compose_NewEncryptedChatTitle: String { return self._s[3036]! } - public var Channel_CommentsGroup_Header: String { return self._s[3038]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3039]! } + public var Channel_CommentsGroup_Header: String { return self._s[3041]! } public func ShareFileTip_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3042]!, self._r[3042]!, [_0]) + return formatWithArgumentRanges(self._s[3045]!, self._r[3045]!, [_0]) } public func PUSH_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3043]!, self._r[3043]!, [_1]) + return formatWithArgumentRanges(self._s[3046]!, self._r[3046]!, [_1]) } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3045]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3048]! } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3046]!, self._r[3046]!, [_0]) + return formatWithArgumentRanges(self._s[3049]!, self._r[3049]!, [_0]) } - public var Conversation_ReportMessages: String { return self._s[3047]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3048]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3049]! } - public var PrivacySettings_LastSeen: String { return self._s[3051]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[3052]! } - public var Theme_Colors_Proceed: String { return self._s[3053]! } - public var UserInfo_ScamBotWarning: String { return self._s[3054]! } - public var LogoutOptions_LogOut: String { return self._s[3056]! } - public var Conversation_SendMessage: String { return self._s[3057]! } - public var Conversation_CancelForwardCancelForward: String { return self._s[3058]! } - public var VoiceChat_Scheduled: String { return self._s[3060]! } - public var Passport_Address_Region: String { return self._s[3061]! } - public var MediaPicker_CameraRoll: String { return self._s[3063]! } + public var Conversation_ReportMessages: String { return self._s[3050]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3051]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3052]! } + public var PrivacySettings_LastSeen: String { return self._s[3054]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[3055]! } + public var Theme_Colors_Proceed: String { return self._s[3056]! } + public var UserInfo_ScamBotWarning: String { return self._s[3057]! } + public var LogoutOptions_LogOut: String { return self._s[3059]! } + public var Conversation_SendMessage: String { return self._s[3060]! } + public var Conversation_CancelForwardCancelForward: String { return self._s[3061]! } + public var VoiceChat_Scheduled: String { return self._s[3063]! } + public var Passport_Address_Region: String { return self._s[3064]! } + public var MediaPicker_CameraRoll: String { return self._s[3066]! } public func VoiceOver_Chat_ForwardedFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3065]!, self._r[3065]!, [_0]) + return formatWithArgumentRanges(self._s[3068]!, self._r[3068]!, [_0]) } - public var Call_ReportSend: String { return self._s[3067]! } - public var VoiceOver_ChatList_Message: String { return self._s[3068]! } - public var Month_ShortJune: String { return self._s[3069]! } - public var AutoDownloadSettings_GroupChats: String { return self._s[3070]! } + public var Call_ReportSend: String { return self._s[3070]! } + public var VoiceOver_ChatList_Message: String { return self._s[3071]! } + public var Month_ShortJune: String { return self._s[3072]! } + public var AutoDownloadSettings_GroupChats: String { return self._s[3073]! } public func Channel_AdminLog_CaptionEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3073]!, self._r[3073]!, [_0]) + return formatWithArgumentRanges(self._s[3076]!, self._r[3076]!, [_0]) } - public var TwoStepAuth_DisableSuccess: String { return self._s[3074]! } - public var Cache_KeepMedia: String { return self._s[3075]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[3077]! } + public var Cache_KeepMedia: String { return self._s[3078]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3076]!, self._r[3076]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3079]!, self._r[3079]!, [_1, _2, _3]) } - public var Appearance_LargeEmoji: String { return self._s[3077]! } + public var Appearance_LargeEmoji: String { return self._s[3080]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3078]!, self._r[3078]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[3081]!, self._r[3081]!, [_1, _2, _3, _4, _5, _6]) } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[3079]! } - public var Privacy_PaymentsClear_PaymentInfoCleared: String { return self._s[3080]! } - public var Call_CameraConfirmationText: String { return self._s[3081]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[3082]! } + public var Privacy_PaymentsClear_PaymentInfoCleared: String { return self._s[3083]! } + public var Call_CameraConfirmationText: String { return self._s[3084]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3083]!, self._r[3083]!, [_0]) + return formatWithArgumentRanges(self._s[3086]!, self._r[3086]!, [_0]) } - public var DialogList_SearchSectionChats: String { return self._s[3084]! } - public var VoiceOver_MessageContextReport: String { return self._s[3086]! } - public var VoiceChat_RemovePeer: String { return self._s[3087]! } - public var ChatListFolder_ExcludeChatsTitle: String { return self._s[3088]! } - public var InviteLink_ContextCopy: String { return self._s[3089]! } - public var NotificationsSound_Tritone: String { return self._s[3091]! } - public var VoiceChat_YouAreSharingScreen: String { return self._s[3093]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3095]! } - public var Stats_GroupTopAdmin_Actions: String { return self._s[3096]! } - public var TwoFactorSetup_PasswordRecovery_SkipAlertText: String { return self._s[3097]! } - public var PeerInfo_AddToContacts: String { return self._s[3098]! } - public var VoiceChat_OpenChat: String { return self._s[3099]! } - public var AccessDenied_Title: String { return self._s[3100]! } - public var InviteLink_QRCode_InfoChannel: String { return self._s[3101]! } - public var Tour_Title1: String { return self._s[3102]! } - public var VoiceOver_AttachMedia: String { return self._s[3103]! } + public var DialogList_SearchSectionChats: String { return self._s[3087]! } + public var VoiceOver_MessageContextReport: String { return self._s[3089]! } + public var VoiceChat_RemovePeer: String { return self._s[3090]! } + public var ChatListFolder_ExcludeChatsTitle: String { return self._s[3091]! } + public var InviteLink_ContextCopy: String { return self._s[3092]! } + public var NotificationsSound_Tritone: String { return self._s[3094]! } + public var VoiceChat_YouAreSharingScreen: String { return self._s[3096]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3098]! } + public var Stats_GroupTopAdmin_Actions: String { return self._s[3099]! } + public var TwoFactorSetup_PasswordRecovery_SkipAlertText: String { return self._s[3100]! } + public var TwoStepAuth_ResetAction: String { return self._s[3101]! } + public var PeerInfo_AddToContacts: String { return self._s[3102]! } + public var VoiceChat_OpenChat: String { return self._s[3103]! } + public var AccessDenied_Title: String { return self._s[3104]! } + public var InviteLink_QRCode_InfoChannel: String { return self._s[3105]! } + public var Tour_Title1: String { return self._s[3106]! } + public var VoiceOver_AttachMedia: String { return self._s[3107]! } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3105]!, self._r[3105]!, [_0]) - } - public var Chat_Gifs_SavedSectionHeader: String { return self._s[3106]! } - public var Privacy_DeleteDrafts_DraftsDeleted: String { return self._s[3107]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[3108]! } - public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3109]!, self._r[3109]!, [_0]) } - public var Channel_AdminLog_MessagePreviousLink: String { return self._s[3110]! } - public var OldChannels_Title: String { return self._s[3111]! } - public var LoginPassword_FloodError: String { return self._s[3112]! } - public var ChatImportActivity_InProgress: String { return self._s[3114]! } - public var Checkout_ErrorPaymentFailed: String { return self._s[3115]! } + public var Chat_Gifs_SavedSectionHeader: String { return self._s[3110]! } + public var Privacy_DeleteDrafts_DraftsDeleted: String { return self._s[3111]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[3112]! } + public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3113]!, self._r[3113]!, [_0]) + } + public var Channel_AdminLog_MessagePreviousLink: String { return self._s[3114]! } + public var OldChannels_Title: String { return self._s[3115]! } + public var LoginPassword_FloodError: String { return self._s[3116]! } + public var ChatImportActivity_InProgress: String { return self._s[3118]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[3119]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3116]!, self._r[3116]!, [_0]) + return formatWithArgumentRanges(self._s[3120]!, self._r[3120]!, [_0]) } - public var VoiceOver_Media_PlaybackPlay: String { return self._s[3119]! } - public var Passport_CorrectErrors: String { return self._s[3121]! } + public var VoiceOver_Media_PlaybackPlay: String { return self._s[3123]! } + public var Passport_CorrectErrors: String { return self._s[3125]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3122]!, self._r[3122]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3126]!, self._r[3126]!, [_1, _2]) } - public var ChatListFolderSettings_Title: String { return self._s[3123]! } + public var ChatListFolderSettings_Title: String { return self._s[3127]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3124]!, self._r[3124]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3128]!, self._r[3128]!, [_1, _2]) } - public var PhotoEditor_HighlightsTool: String { return self._s[3125]! } - public var Contacts_NotRegisteredSection: String { return self._s[3128]! } + public var PhotoEditor_HighlightsTool: String { return self._s[3129]! } + public var Contacts_NotRegisteredSection: String { return self._s[3132]! } public func Call_VoiceChatInProgressCallMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3129]!, self._r[3129]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3133]!, self._r[3133]!, [_1, _2]) } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3130]!, self._r[3130]!, [_1]) + return formatWithArgumentRanges(self._s[3134]!, self._r[3134]!, [_1]) } - public var InviteLink_Create_UsersLimitInfo: String { return self._s[3131]! } - public var User_DeletedAccount: String { return self._s[3132]! } - public var Conversation_ViewContactDetails: String { return self._s[3133]! } - public var Conversation_Dice_u1F3B3: String { return self._s[3134]! } - public var WebSearch_GIFs: String { return self._s[3135]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[3136]! } - public var Appearance_PreviewOutgoingText: String { return self._s[3137]! } - public var Calls_CallTabTitle: String { return self._s[3138]! } - public var Call_VoiceChatInProgressTitle: String { return self._s[3139]! } - public var Checkout_OptionalTipItem: String { return self._s[3140]! } + public var InviteLink_Create_UsersLimitInfo: String { return self._s[3135]! } + public var User_DeletedAccount: String { return self._s[3136]! } + public var Conversation_ViewContactDetails: String { return self._s[3137]! } + public var Conversation_Dice_u1F3B3: String { return self._s[3138]! } + public var WebSearch_GIFs: String { return self._s[3139]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[3140]! } + public var Appearance_PreviewOutgoingText: String { return self._s[3141]! } + public var Calls_CallTabTitle: String { return self._s[3142]! } + public var Call_VoiceChatInProgressTitle: String { return self._s[3143]! } + public var Checkout_OptionalTipItem: String { return self._s[3144]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3141]!, self._r[3141]!, [_0]) + return formatWithArgumentRanges(self._s[3145]!, self._r[3145]!, [_0]) } - public var Channel_Status: String { return self._s[3142]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[3144]! } - public var VoiceOver_Chat_OptionSelected: String { return self._s[3145]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3146]! } + public var Channel_Status: String { return self._s[3146]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[3148]! } + public var VoiceOver_Chat_OptionSelected: String { return self._s[3149]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3150]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3147]!, self._r[3147]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3151]!, self._r[3151]!, [_0, _1]) } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3149]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[3151]! } - public var Month_ShortDecember: String { return self._s[3152]! } - public var Username_Help: String { return self._s[3153]! } - public var Login_InfoAvatarAdd: String { return self._s[3154]! } - public var Month_ShortMay: String { return self._s[3155]! } - public var DialogList_UnknownPinLimitError: String { return self._s[3156]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[3157]! } - public var TwoStepAuth_EnabledSuccess: String { return self._s[3158]! } - public var VoiceChat_StopScreenSharing: String { return self._s[3159]! } - public var VoiceChat_AskedToSpeak: String { return self._s[3160]! } - public var Weekday_ShortSunday: String { return self._s[3161]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3162]! } - public var AuthSessions_TerminateSession: String { return self._s[3163]! } - public var Passport_Identity_FilesTitle: String { return self._s[3164]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3153]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[3155]! } + public var Month_ShortDecember: String { return self._s[3156]! } + public var Username_Help: String { return self._s[3157]! } + public var Login_InfoAvatarAdd: String { return self._s[3158]! } + public var Month_ShortMay: String { return self._s[3159]! } + public var DialogList_UnknownPinLimitError: String { return self._s[3160]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[3161]! } + public var TwoStepAuth_EnabledSuccess: String { return self._s[3162]! } + public var VoiceChat_StopScreenSharing: String { return self._s[3163]! } + public var VoiceChat_AskedToSpeak: String { return self._s[3164]! } + public var Weekday_ShortSunday: String { return self._s[3165]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3166]! } + public var AuthSessions_TerminateSession: String { return self._s[3167]! } + public var Passport_Identity_FilesTitle: String { return self._s[3168]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3165]!, self._r[3165]!, [_0]) + return formatWithArgumentRanges(self._s[3169]!, self._r[3169]!, [_0]) } - public var PeopleNearby_MakeVisible: String { return self._s[3167]! } + public var PeopleNearby_MakeVisible: String { return self._s[3171]! } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3168]!, self._r[3168]!, [_0]) + return formatWithArgumentRanges(self._s[3172]!, self._r[3172]!, [_0]) } - public var Widget_UpdatedAt: String { return self._s[3169]! } + public var Widget_UpdatedAt: String { return self._s[3173]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3170]!, self._r[3170]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3174]!, self._r[3174]!, [_1, _2]) } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3171]!, self._r[3171]!, [_0]) + return formatWithArgumentRanges(self._s[3175]!, self._r[3175]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3172]! } - public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3173]! } - public var ImportStickerPack_ChooseStickerSet: String { return self._s[3175]! } - public var Conversation_ContextMenuForward: String { return self._s[3176]! } - public var Channel_AdminLog_CanManageCalls: String { return self._s[3177]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3176]! } + public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3177]! } + public var ImportStickerPack_ChooseStickerSet: String { return self._s[3179]! } + public var Conversation_ContextMenuForward: String { return self._s[3180]! } + public var Channel_AdminLog_CanManageCalls: String { return self._s[3181]! } public func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3179]!, self._r[3179]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3183]!, self._r[3183]!, [_1, _2, _3]) } - public var Notification_GroupInviterSelf: String { return self._s[3181]! } - public var Privacy_Forwards_NeverLink: String { return self._s[3182]! } - public var AuthSessions_CurrentSession: String { return self._s[3183]! } - public var Passport_Address_EditPassportRegistration: String { return self._s[3184]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3185]! } - public var ChatSearch_ResultsTooltip: String { return self._s[3187]! } - public var CheckoutInfo_Pay: String { return self._s[3188]! } + public var Notification_GroupInviterSelf: String { return self._s[3185]! } + public var Privacy_Forwards_NeverLink: String { return self._s[3186]! } + public var AuthSessions_CurrentSession: String { return self._s[3187]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[3188]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3189]! } + public var ChatSearch_ResultsTooltip: String { return self._s[3191]! } + public var CheckoutInfo_Pay: String { return self._s[3192]! } public func Conversation_PinMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3190]!, self._r[3190]!, [_0]) + return formatWithArgumentRanges(self._s[3194]!, self._r[3194]!, [_0]) } - public var GroupInfo_AddParticipant: String { return self._s[3191]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[3192]! } + public var GroupInfo_AddParticipant: String { return self._s[3195]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[3196]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3193]!, self._r[3193]!, [_0]) + return formatWithArgumentRanges(self._s[3197]!, self._r[3197]!, [_0]) } - public var Localization_LanguageCustom: String { return self._s[3194]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[3195]! } - public var Settings_UsernameEmpty: String { return self._s[3196]! } - public var Settings_FAQ_URL: String { return self._s[3197]! } - public var ChatList_UndoArchiveText1: String { return self._s[3198]! } - public var Common_Select: String { return self._s[3200]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3201]! } - public var Notification_PassportValueAddress: String { return self._s[3202]! } - public var Conversation_MessageDialogDelete: String { return self._s[3203]! } - public var Map_OpenInYandexNavigator: String { return self._s[3205]! } - public var DialogList_SearchSectionDialogs: String { return self._s[3206]! } - public var AccessDenied_Contacts: String { return self._s[3207]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3209]! } - public var Passport_ScanPassportHelp: String { return self._s[3210]! } - public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3211]! } - public var ChatListFolder_NameChannels: String { return self._s[3212]! } - public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3213]! } + public var Localization_LanguageCustom: String { return self._s[3198]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[3199]! } + public var Settings_UsernameEmpty: String { return self._s[3200]! } + public var Settings_FAQ_URL: String { return self._s[3201]! } + public var ChatList_UndoArchiveText1: String { return self._s[3202]! } + public var Common_Select: String { return self._s[3204]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3205]! } + public var Notification_PassportValueAddress: String { return self._s[3206]! } + public var Conversation_MessageDialogDelete: String { return self._s[3207]! } + public var Map_OpenInYandexNavigator: String { return self._s[3209]! } + public var DialogList_SearchSectionDialogs: String { return self._s[3210]! } + public var AccessDenied_Contacts: String { return self._s[3211]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3213]! } + public var Passport_ScanPassportHelp: String { return self._s[3214]! } + public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3215]! } + public var ChatListFolder_NameChannels: String { return self._s[3216]! } + public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3217]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3214]!, self._r[3214]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3218]!, self._r[3218]!, [_1, _2]) } - public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3215]! } + public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3219]! } public func VoiceChat_InviteMemberToGroupFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3216]!, self._r[3216]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3220]!, self._r[3220]!, [_1, _2]) } - public var Conversation_GifTooltip: String { return self._s[3217]! } - public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3218]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3220]! } - public var VoiceChat_Connecting: String { return self._s[3221]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3222]! } + public var Conversation_GifTooltip: String { return self._s[3221]! } + public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3222]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3224]! } + public var VoiceChat_Connecting: String { return self._s[3225]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3226]! } public func Channel_AdminLog_CreatedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3223]!, self._r[3223]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3227]!, self._r[3227]!, [_1, _2]) } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3224]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3225]! } - public var CreatePoll_Quiz: String { return self._s[3226]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[3228]! } - public var Watch_Message_Invoice: String { return self._s[3229]! } - public var Settings_AddAnotherAccount_Help: String { return self._s[3230]! } - public var Watch_Message_Unsupported: String { return self._s[3231]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3228]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3229]! } + public var CreatePoll_Quiz: String { return self._s[3230]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[3232]! } + public var Watch_Message_Invoice: String { return self._s[3233]! } + public var Settings_AddAnotherAccount_Help: String { return self._s[3234]! } + public var Watch_Message_Unsupported: String { return self._s[3235]! } public func Call_CameraOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3233]!, self._r[3233]!, [_0]) + return formatWithArgumentRanges(self._s[3237]!, self._r[3237]!, [_0]) } - public var AuthSessions_TerminateOtherSessions: String { return self._s[3234]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[3236]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3237]! } - public var Call_IncomingVoiceCall: String { return self._s[3238]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[3238]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[3240]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3241]! } + public var Call_IncomingVoiceCall: String { return self._s[3242]! } public func Channel_AdminLog_MessageTransferedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3239]!, self._r[3239]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3243]!, self._r[3243]!, [_1, _2]) } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[3240]! } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3241]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3242]! } - public var Group_ErrorAccessDenied: String { return self._s[3243]! } - public var PasscodeSettings_HelpTop: String { return self._s[3244]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3245]! } - public var AddContact_SharedContactException: String { return self._s[3246]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[3247]! } - public var Privacy_TopPeers: String { return self._s[3248]! } - public var Web_OpenExternal: String { return self._s[3249]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[3250]! } - public var Channel_Management_LabelAdministrator: String { return self._s[3251]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[3244]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3245]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3246]! } + public var Group_ErrorAccessDenied: String { return self._s[3247]! } + public var PasscodeSettings_HelpTop: String { return self._s[3248]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3249]! } + public var AddContact_SharedContactException: String { return self._s[3250]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[3251]! } + public var Privacy_TopPeers: String { return self._s[3252]! } + public var Web_OpenExternal: String { return self._s[3253]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[3254]! } + public var Channel_Management_LabelAdministrator: String { return self._s[3255]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3252]!, self._r[3252]!, [_0]) + return formatWithArgumentRanges(self._s[3256]!, self._r[3256]!, [_0]) } - public var Conversation_PhoneCopied: String { return self._s[3253]! } - public var Permissions_Skip: String { return self._s[3254]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3255]! } + public var Conversation_PhoneCopied: String { return self._s[3257]! } + public var Permissions_Skip: String { return self._s[3258]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3259]! } public func VoiceChat_ForwardTooltip_TwoChats(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3256]!, self._r[3256]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3260]!, self._r[3260]!, [_0, _1]) } - public var PeopleNearby_Title: String { return self._s[3257]! } - public var GroupInfo_SharedMediaNone: String { return self._s[3258]! } + public var PeopleNearby_Title: String { return self._s[3261]! } + public var GroupInfo_SharedMediaNone: String { return self._s[3262]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3260]!, self._r[3260]!, [_1]) + return formatWithArgumentRanges(self._s[3264]!, self._r[3264]!, [_1]) } - public var Profile_MessageLifetime1w: String { return self._s[3261]! } + public var Profile_MessageLifetime1w: String { return self._s[3265]! } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3262]!, self._r[3262]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3266]!, self._r[3266]!, [_1, _2, _3]) } - public var WebBrowser_DefaultBrowser: String { return self._s[3263]! } - public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3265]! } - public var EditTheme_Edit_BottomInfo: String { return self._s[3266]! } - public var Privacy_Forwards_Preview: String { return self._s[3267]! } - public var Settings_EditAccount: String { return self._s[3268]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3267]! } + public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3269]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[3270]! } + public var Privacy_Forwards_Preview: String { return self._s[3271]! } + public var Settings_EditAccount: String { return self._s[3272]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_0]) + return formatWithArgumentRanges(self._s[3273]!, self._r[3273]!, [_0]) } - public var TwoFactorSetup_Intro_Title: String { return self._s[3270]! } + public var TwoFactorSetup_Intro_Title: String { return self._s[3274]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3272]!, self._r[3272]!, [_1]) + return formatWithArgumentRanges(self._s[3276]!, self._r[3276]!, [_1]) } - public var PeerInfo_ButtonVideoCall: String { return self._s[3273]! } + public var PeerInfo_ButtonVideoCall: String { return self._s[3277]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_0]) + return formatWithArgumentRanges(self._s[3278]!, self._r[3278]!, [_0]) } - public var Login_InfoHelp: String { return self._s[3275]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3276]! } - public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3277]! } - public var Profile_MessageLifetime1d: String { return self._s[3278]! } - public var Group_UpgradeConfirmation: String { return self._s[3279]! } + public var Login_InfoHelp: String { return self._s[3279]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3280]! } + public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3281]! } + public var Profile_MessageLifetime1d: String { return self._s[3282]! } + public var Group_UpgradeConfirmation: String { return self._s[3283]! } public func PUSH_PINNED_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3280]!, self._r[3280]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3284]!, self._r[3284]!, [_1, _2]) } - public var Appearance_RemoveThemeColor: String { return self._s[3281]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3282]! } + public var Appearance_RemoveThemeColor: String { return self._s[3285]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3286]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3283]!, self._r[3283]!, [_0]) + return formatWithArgumentRanges(self._s[3287]!, self._r[3287]!, [_0]) } - public var UserInfo_BotSettings: String { return self._s[3284]! } + public var UserInfo_BotSettings: String { return self._s[3288]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3286]!, self._r[3286]!, [_0]) + return formatWithArgumentRanges(self._s[3290]!, self._r[3290]!, [_0]) } - public var Permissions_ContactsText_v0: String { return self._s[3287]! } - public var Conversation_PinMessagesForMe: String { return self._s[3288]! } - public var VoiceChat_PanelJoin: String { return self._s[3289]! } - public var Conversation_DiscussionStarted: String { return self._s[3291]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3292]! } - public var SharedMedia_SearchNoResults: String { return self._s[3294]! } + public var Permissions_ContactsText_v0: String { return self._s[3291]! } + public var Conversation_PinMessagesForMe: String { return self._s[3292]! } + public var VoiceChat_PanelJoin: String { return self._s[3293]! } + public var Conversation_DiscussionStarted: String { return self._s[3295]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3296]! } + public var SharedMedia_SearchNoResults: String { return self._s[3298]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3296]!, self._r[3296]!, [_0]) + return formatWithArgumentRanges(self._s[3300]!, self._r[3300]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3298]!, self._r[3298]!, [_0]) + return formatWithArgumentRanges(self._s[3302]!, self._r[3302]!, [_0]) } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3299]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3300]! } - public var Call_AudioRouteHeadphones: String { return self._s[3301]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3303]! } + public func TwoStepAuth_ResetPendingText(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3304]!, self._r[3304]!, [_0]) + } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3305]! } + public var Call_AudioRouteHeadphones: String { return self._s[3306]! } public func Notification_VoiceChatScheduledTomorrowChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3303]!, self._r[3303]!, [_0]) + return formatWithArgumentRanges(self._s[3308]!, self._r[3308]!, [_0]) } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3304]!, self._r[3304]!, [_1]) + return formatWithArgumentRanges(self._s[3309]!, self._r[3309]!, [_1]) } - public var Passport_Identity_FilesView: String { return self._s[3305]! } - public var TwoStepAuth_SetupEmail: String { return self._s[3306]! } - public var Widget_ApplicationStartRequired: String { return self._s[3307]! } - public var PhotoEditor_Original: String { return self._s[3308]! } - public var Call_YourMicrophoneOff: String { return self._s[3309]! } - public var Permissions_ContactsAllow_v0: String { return self._s[3310]! } - public var Conversation_CardNumberCopied: String { return self._s[3311]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3312]! } - public var PrivacyPolicy_Decline: String { return self._s[3313]! } - public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3314]! } - public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3315]! } - public var ChatListFolder_IncludeSectionInfo: String { return self._s[3316]! } + public var Passport_Identity_FilesView: String { return self._s[3310]! } + public var TwoStepAuth_SetupEmail: String { return self._s[3311]! } + public var Widget_ApplicationStartRequired: String { return self._s[3312]! } + public var PhotoEditor_Original: String { return self._s[3313]! } + public var Call_YourMicrophoneOff: String { return self._s[3314]! } + public var Permissions_ContactsAllow_v0: String { return self._s[3315]! } + public var Conversation_CardNumberCopied: String { return self._s[3316]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3317]! } + public var PrivacyPolicy_Decline: String { return self._s[3318]! } + public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3319]! } + public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3320]! } + public var ChatListFolder_IncludeSectionInfo: String { return self._s[3321]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3317]!, self._r[3317]!, [_0]) + return formatWithArgumentRanges(self._s[3322]!, self._r[3322]!, [_0]) } - public var Passport_Identity_Name: String { return self._s[3318]! } - public var WallpaperPreview_PatternTitle: String { return self._s[3320]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3321]! } - public var WallpaperSearch_ColorOrange: String { return self._s[3323]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3324]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3325]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3326]! } - public var IntentsSettings_ResetAll: String { return self._s[3327]! } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3329]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3330]! } - public var ChatList_DeleteForAllSubscribers: String { return self._s[3331]! } - public var Notification_Exceptions_Add: String { return self._s[3332]! } - public var Group_DeleteGroup: String { return self._s[3333]! } - public var Cache_Help: String { return self._s[3334]! } - public var Call_AudioRouteMute: String { return self._s[3335]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3336]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[3337]! } + public var Passport_Identity_Name: String { return self._s[3323]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3325]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3326]! } + public var WallpaperSearch_ColorOrange: String { return self._s[3328]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3329]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3330]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3331]! } + public var IntentsSettings_ResetAll: String { return self._s[3332]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3334]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3335]! } + public var ChatList_DeleteForAllSubscribers: String { return self._s[3336]! } + public var Notification_Exceptions_Add: String { return self._s[3337]! } + public var Group_DeleteGroup: String { return self._s[3338]! } + public var Cache_Help: String { return self._s[3339]! } + public var Call_AudioRouteMute: String { return self._s[3340]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3341]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[3342]! } public func VoiceChat_Status_MembersFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3338]!, self._r[3338]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3343]!, self._r[3343]!, [_1, _2]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3339]!, self._r[3339]!, [_1]) + return formatWithArgumentRanges(self._s[3344]!, self._r[3344]!, [_1]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3340]!, self._r[3340]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3345]!, self._r[3345]!, [_1, _2]) } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3341]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[3342]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3346]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[3347]! } public func PUSH_CHAT_VOICECHAT_INVITE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3343]!, self._r[3343]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3348]!, self._r[3348]!, [_1, _2, _3]) } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3344]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3345]! } - public var ClearCache_StorageFree: String { return self._s[3346]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3349]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3350]! } + public var ClearCache_StorageFree: String { return self._s[3351]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3347]!, self._r[3347]!, [_0]) + return formatWithArgumentRanges(self._s[3352]!, self._r[3352]!, [_0]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[3348]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[3353]! } public func Channel_AdminLog_EditedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3350]!, self._r[3350]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3355]!, self._r[3355]!, [_1, _2]) } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[3351]! } - public var DialogList_Typing: String { return self._s[3352]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[3356]! } + public var DialogList_Typing: String { return self._s[3357]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3353]!, self._r[3353]!, [_0]) + return formatWithArgumentRanges(self._s[3358]!, self._r[3358]!, [_0]) } - public var Target_SelectGroup: String { return self._s[3354]! } - public var AuthSessions_IncompleteAttempts: String { return self._s[3355]! } + public var Target_SelectGroup: String { return self._s[3359]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3360]! } + public var TwoStepAuth_RecoveryEmailResetText: String { return self._s[3361]! } public func Notification_ProximityReached(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3362]!, self._r[3362]!, [_1, _2, _3]) } - public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3357]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3358]! } + public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3363]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3364]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3359]!, self._r[3359]!, [_0]) + return formatWithArgumentRanges(self._s[3365]!, self._r[3365]!, [_0]) } - public var Channel_AdminLog_CanSendMessages: String { return self._s[3360]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3361]! } - public var ChatSettings_TextSize: String { return self._s[3362]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3364]! } - public var Map_SendThisPlace: String { return self._s[3365]! } - public var Conversation_TextCopied: String { return self._s[3366]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3367]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3368]! } - public var Call_ShareStats: String { return self._s[3369]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[3366]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3367]! } + public var ChatSettings_TextSize: String { return self._s[3368]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3370]! } + public var Map_SendThisPlace: String { return self._s[3371]! } + public var Conversation_TextCopied: String { return self._s[3372]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3373]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3374]! } + public var Call_ShareStats: String { return self._s[3375]! } public func PUSH_CHAT_VOICECHAT_END(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3371]!, self._r[3371]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3377]!, self._r[3377]!, [_1, _2]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3372]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[3373]! } - public var Settings_Support: String { return self._s[3374]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3375]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3378]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[3379]! } + public var Settings_Support: String { return self._s[3380]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3381]! } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3377]!, self._r[3377]!, [_0]) + return formatWithArgumentRanges(self._s[3383]!, self._r[3383]!, [_0]) } - public var Watch_Conversation_GroupInfo: String { return self._s[3378]! } - public var Tour_Text4: String { return self._s[3379]! } - public var VoiceChat_CancelReminder: String { return self._s[3380]! } - public var Calls_StartNewCall: String { return self._s[3381]! } - public var UserInfo_FakeUserWarning: String { return self._s[3383]! } - public var PasscodeSettings_AutoLock: String { return self._s[3384]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3385]! } - public var Bot_DescriptionTitle: String { return self._s[3387]! } - public var Map_LocationTitle: String { return self._s[3388]! } - public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3389]! } - public var Conversation_HashtagCopied: String { return self._s[3390]! } + public var Watch_Conversation_GroupInfo: String { return self._s[3384]! } + public var Tour_Text4: String { return self._s[3385]! } + public var VoiceChat_CancelReminder: String { return self._s[3386]! } + public var Calls_StartNewCall: String { return self._s[3387]! } + public var UserInfo_FakeUserWarning: String { return self._s[3389]! } + public var PasscodeSettings_AutoLock: String { return self._s[3390]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3391]! } + public var Bot_DescriptionTitle: String { return self._s[3393]! } + public var Map_LocationTitle: String { return self._s[3394]! } + public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3395]! } + public var Conversation_HashtagCopied: String { return self._s[3396]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3391]!, self._r[3391]!, [_1]) + return formatWithArgumentRanges(self._s[3397]!, self._r[3397]!, [_1]) } - public var VoiceChat_ReminderNotify: String { return self._s[3392]! } - public var Login_EmailNotConfiguredError: String { return self._s[3393]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[3394]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[3395]! } - public var Permissions_CellularDataText_v0: String { return self._s[3396]! } - public var Conversation_EncryptionProcessing: String { return self._s[3397]! } - public var GroupPermission_Delete: String { return self._s[3399]! } - public var Contacts_SortByName: String { return self._s[3400]! } - public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3401]! } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[3402]! } - public var Group_Management_AddModeratorHelp: String { return self._s[3404]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3405]! } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3406]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[3408]! } + public var VoiceChat_ReminderNotify: String { return self._s[3398]! } + public var Login_EmailNotConfiguredError: String { return self._s[3399]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[3400]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[3401]! } + public var Permissions_CellularDataText_v0: String { return self._s[3402]! } + public var Conversation_EncryptionProcessing: String { return self._s[3403]! } + public var GroupPermission_Delete: String { return self._s[3405]! } + public var Contacts_SortByName: String { return self._s[3406]! } + public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3407]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[3408]! } + public var Group_Management_AddModeratorHelp: String { return self._s[3410]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3411]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3412]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[3414]! } public func PUSH_CHANNEL_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3409]!, self._r[3409]!, [_1]) + return formatWithArgumentRanges(self._s[3415]!, self._r[3415]!, [_1]) } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3410]!, self._r[3410]!, [_0]) + return formatWithArgumentRanges(self._s[3416]!, self._r[3416]!, [_0]) } - public var ChatList_Context_Delete: String { return self._s[3411]! } - public var VoiceChat_InviteMember: String { return self._s[3412]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3413]! } - public var Conversation_Processing: String { return self._s[3414]! } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[3415]! } - public var ChatSettings_Stickers: String { return self._s[3416]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3417]! } - public var Passport_Language_cs: String { return self._s[3418]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3420]! } - public var Conversation_Contact: String { return self._s[3421]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[3422]! } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[3424]! } - public var Theme_Unsupported: String { return self._s[3425]! } - public var Privacy_TopPeersWarning: String { return self._s[3426]! } + public var ChatList_Context_Delete: String { return self._s[3417]! } + public var VoiceChat_InviteMember: String { return self._s[3418]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3419]! } + public var Conversation_Processing: String { return self._s[3420]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[3421]! } + public var ChatSettings_Stickers: String { return self._s[3422]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3423]! } + public var Passport_Language_cs: String { return self._s[3424]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3426]! } + public var Conversation_Contact: String { return self._s[3427]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[3428]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[3430]! } + public var Theme_Unsupported: String { return self._s[3431]! } + public var Privacy_TopPeersWarning: String { return self._s[3432]! } public func Conversation_ScheduledVoiceChatStartsTodayShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3427]!, self._r[3427]!, [_0]) + return formatWithArgumentRanges(self._s[3433]!, self._r[3433]!, [_0]) } - public var InviteLink_Title: String { return self._s[3429]! } + public var InviteLink_Title: String { return self._s[3435]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3430]!, self._r[3430]!, [_0]) + return formatWithArgumentRanges(self._s[3436]!, self._r[3436]!, [_0]) } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3431]! } - public var TwoStepAuth_RemovePassword: String { return self._s[3432]! } - public var Settings_CheckPhoneNumberText: String { return self._s[3433]! } - public var PeopleNearby_Users: String { return self._s[3434]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3435]! } - public var Settings_SetProfilePhoto: String { return self._s[3436]! } - public var Conversation_ContextMenuBan: String { return self._s[3437]! } - public var KeyCommand_ScrollUp: String { return self._s[3438]! } - public var Settings_ChatSettings: String { return self._s[3440]! } - public var CallList_RecentCallsHeader: String { return self._s[3441]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3437]! } + public var TwoStepAuth_RemovePassword: String { return self._s[3438]! } + public var Settings_CheckPhoneNumberText: String { return self._s[3439]! } + public var PeopleNearby_Users: String { return self._s[3440]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3441]! } + public var Settings_SetProfilePhoto: String { return self._s[3442]! } + public var Conversation_ContextMenuBan: String { return self._s[3443]! } + public var KeyCommand_ScrollUp: String { return self._s[3444]! } + public var Settings_ChatSettings: String { return self._s[3446]! } + public var CallList_RecentCallsHeader: String { return self._s[3447]! } public func PUSH_CHAT_MESSAGE_VIDEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3442]!, self._r[3442]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3448]!, self._r[3448]!, [_1, _2]) } - public var Stats_GroupTopInvitersTitle: String { return self._s[3443]! } - public var Passport_Phone_EnterOtherNumber: String { return self._s[3444]! } - public var VoiceChat_StartRecordingTitle: String { return self._s[3445]! } + public var Stats_GroupTopInvitersTitle: String { return self._s[3449]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[3450]! } + public var VoiceChat_StartRecordingTitle: String { return self._s[3451]! } public func Notification_VoiceChatScheduledToday(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3446]!, self._r[3446]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3452]!, self._r[3452]!, [_1, _2]) } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3448]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3449]! } - public var VoiceOver_ChatList_MessageRead: String { return self._s[3451]! } - public var Stats_GroupTopPoster_Promote: String { return self._s[3454]! } - public var Cache_Title: String { return self._s[3455]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3454]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3455]! } + public var VoiceOver_ChatList_MessageRead: String { return self._s[3457]! } + public var Stats_GroupTopPoster_Promote: String { return self._s[3460]! } + public var Cache_Title: String { return self._s[3461]! } public func Conversation_AutoremoveTimerSetToastText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3456]!, self._r[3456]!, [_0]) + return formatWithArgumentRanges(self._s[3462]!, self._r[3462]!, [_0]) } - public var Clipboard_SendPhoto: String { return self._s[3457]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3459]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3460]! } - public var WatchRemote_AlertTitle: String { return self._s[3463]! } - public var Appearance_ReduceMotion: String { return self._s[3464]! } + public var Clipboard_SendPhoto: String { return self._s[3463]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3465]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3466]! } + public var WatchRemote_AlertTitle: String { return self._s[3469]! } + public var Appearance_ReduceMotion: String { return self._s[3470]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3467]!, self._r[3467]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3473]!, self._r[3473]!, [_1, _2]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[3468]! } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3469]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[3470]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[3474]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3475]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[3476]! } public func Call_CallInProgressVoiceChatMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3471]!, self._r[3471]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3477]!, self._r[3477]!, [_1, _2]) } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3473]!, self._r[3473]!, [_0]) + return formatWithArgumentRanges(self._s[3479]!, self._r[3479]!, [_0]) } - public var ChatListFolder_DiscardConfirmation: String { return self._s[3474]! } + public var ChatListFolder_DiscardConfirmation: String { return self._s[3480]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3476]!, self._r[3476]!, [_0]) + return formatWithArgumentRanges(self._s[3482]!, self._r[3482]!, [_0]) } - public var InstantPage_Search: String { return self._s[3477]! } - public var ChatState_WaitingForNetwork: String { return self._s[3478]! } - public var GroupInfo_Sound: String { return self._s[3479]! } - public var NotificationsSound_Telegraph: String { return self._s[3480]! } + public var InstantPage_Search: String { return self._s[3483]! } + public var ChatState_WaitingForNetwork: String { return self._s[3484]! } + public var GroupInfo_Sound: String { return self._s[3485]! } + public var NotificationsSound_Telegraph: String { return self._s[3486]! } public func VoiceChat_ParticipantIsSpeaking(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_1]) + return formatWithArgumentRanges(self._s[3487]!, self._r[3487]!, [_1]) } - public var NotificationsSound_Hello: String { return self._s[3482]! } - public var VoiceChat_LeaveConfirmation: String { return self._s[3483]! } - public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3484]! } - public var Passport_FieldIdentityDetailsHelp: String { return self._s[3485]! } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3486]! } - public var Conversation_HoldForVideo: String { return self._s[3487]! } - public var Conversation_PinOlderMessageAlertText: String { return self._s[3488]! } - public var Appearance_ShareTheme: String { return self._s[3489]! } - public var TwoStepAuth_SetupHint: String { return self._s[3490]! } - public var Stats_GrowthTitle: String { return self._s[3493]! } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3494]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[3495]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3496]! } - public var GroupPermission_NoSendMessages: String { return self._s[3499]! } - public var Conversation_SetReminder_Title: String { return self._s[3500]! } - public var Privacy_Calls_CustomHelp: String { return self._s[3501]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3502]! } + public var NotificationsSound_Hello: String { return self._s[3488]! } + public var VoiceChat_LeaveConfirmation: String { return self._s[3489]! } + public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3490]! } + public var Passport_FieldIdentityDetailsHelp: String { return self._s[3491]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3492]! } + public var Conversation_HoldForVideo: String { return self._s[3493]! } + public var Conversation_PinOlderMessageAlertText: String { return self._s[3494]! } + public var Appearance_ShareTheme: String { return self._s[3495]! } + public var TwoStepAuth_SetupHint: String { return self._s[3496]! } + public var Stats_GrowthTitle: String { return self._s[3499]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3500]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[3501]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3502]! } + public var GroupPermission_NoSendMessages: String { return self._s[3505]! } + public var Conversation_SetReminder_Title: String { return self._s[3506]! } + public var Privacy_Calls_CustomHelp: String { return self._s[3507]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3508]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3503]!, self._r[3503]!, [_0]) + return formatWithArgumentRanges(self._s[3509]!, self._r[3509]!, [_0]) } - public var InviteLinks_InviteLinkExpired: String { return self._s[3505]! } - public var Undo_SecretChatDeleted: String { return self._s[3506]! } - public var PhotoEditor_ContrastTool: String { return self._s[3507]! } - public var Privacy_Forwards: String { return self._s[3508]! } - public var AuthSessions_LoggedInWithTelegram: String { return self._s[3509]! } - public var KeyCommand_SendMessage: String { return self._s[3511]! } - public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3512]! } + public var InviteLinks_InviteLinkExpired: String { return self._s[3511]! } + public var Undo_SecretChatDeleted: String { return self._s[3512]! } + public var PhotoEditor_ContrastTool: String { return self._s[3513]! } + public var Privacy_Forwards: String { return self._s[3514]! } + public var AuthSessions_LoggedInWithTelegram: String { return self._s[3515]! } + public var KeyCommand_SendMessage: String { return self._s[3517]! } + public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3518]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3513]!, self._r[3513]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3519]!, self._r[3519]!, [_1, _2]) } - public var VoiceChat_VideoPaused: String { return self._s[3514]! } - public var GroupPermission_NoSendGifs: String { return self._s[3515]! } + public var VoiceChat_VideoPaused: String { return self._s[3520]! } + public var GroupPermission_NoSendGifs: String { return self._s[3521]! } public func Notification_VoiceChatEndedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3516]!, self._r[3516]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3522]!, self._r[3522]!, [_1, _2]) } - public var Notification_MessageLifetime2s: String { return self._s[3517]! } - public var Message_Theme: String { return self._s[3518]! } - public var Conversation_Dice_u1F3AF: String { return self._s[3521]! } + public var Notification_MessageLifetime2s: String { return self._s[3523]! } + public var Message_Theme: String { return self._s[3524]! } + public var Conversation_Dice_u1F3AF: String { return self._s[3527]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3522]!, self._r[3522]!, [_0]) + return formatWithArgumentRanges(self._s[3528]!, self._r[3528]!, [_0]) } - public var Group_UpgradeNoticeHeader: String { return self._s[3524]! } - public var PeerInfo_BioExpand: String { return self._s[3525]! } - public var Passport_DeletePersonalDetails: String { return self._s[3526]! } - public var Widget_NoUsers: String { return self._s[3527]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[3528]! } - public var VoiceChat_VideoPreviewDescription: String { return self._s[3529]! } - public var Login_TermsOfServiceDecline: String { return self._s[3530]! } - public var VoiceChat_UnmuteSuggestion: String { return self._s[3531]! } - public var CreatePoll_QuizTip: String { return self._s[3533]! } - public var Watch_LastSeen_WithinAWeek: String { return self._s[3534]! } - public var MessagePoll_SubmitVote: String { return self._s[3536]! } - public var ChatSettings_AutoDownloadEnabled: String { return self._s[3537]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[3538]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3539]! } - public var Conversation_UpdateTelegram: String { return self._s[3540]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3530]! } + public var PeerInfo_BioExpand: String { return self._s[3531]! } + public var Passport_DeletePersonalDetails: String { return self._s[3532]! } + public var Widget_NoUsers: String { return self._s[3533]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[3534]! } + public var VoiceChat_VideoPreviewDescription: String { return self._s[3535]! } + public var Login_TermsOfServiceDecline: String { return self._s[3536]! } + public var VoiceChat_UnmuteSuggestion: String { return self._s[3537]! } + public var CreatePoll_QuizTip: String { return self._s[3539]! } + public var Watch_LastSeen_WithinAWeek: String { return self._s[3540]! } + public var MessagePoll_SubmitVote: String { return self._s[3542]! } + public var ChatSettings_AutoDownloadEnabled: String { return self._s[3543]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[3544]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3545]! } + public var Conversation_UpdateTelegram: String { return self._s[3546]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3541]!, self._r[3541]!, [_0]) + return formatWithArgumentRanges(self._s[3547]!, self._r[3547]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3542]! } - public var CallSettings_Always: String { return self._s[3543]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[3544]! } - public var VoiceChat_MutedByAdminHelp: String { return self._s[3545]! } - public var Login_TermsOfServiceHeader: String { return self._s[3546]! } - public var KeyCommand_ChatInfo: String { return self._s[3547]! } - public var MessagePoll_LabelPoll: String { return self._s[3548]! } - public var Paint_Clear: String { return self._s[3549]! } - public var PeerInfo_ButtonMute: String { return self._s[3550]! } - public var LastSeen_WithinAWeek: String { return self._s[3551]! } - public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3552]! } - public var Passport_Identity_FrontSide: String { return self._s[3553]! } - public var Stickers_GroupStickers: String { return self._s[3554]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3555]! } + public var UserInfo_About_Placeholder: String { return self._s[3548]! } + public var CallSettings_Always: String { return self._s[3549]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[3550]! } + public var VoiceChat_MutedByAdminHelp: String { return self._s[3551]! } + public var Login_TermsOfServiceHeader: String { return self._s[3552]! } + public var KeyCommand_ChatInfo: String { return self._s[3553]! } + public var MessagePoll_LabelPoll: String { return self._s[3554]! } + public var Paint_Clear: String { return self._s[3555]! } + public var PeerInfo_ButtonMute: String { return self._s[3556]! } + public var LastSeen_WithinAWeek: String { return self._s[3557]! } + public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3558]! } + public var Passport_Identity_FrontSide: String { return self._s[3559]! } + public var Stickers_GroupStickers: String { return self._s[3560]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3561]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3556]!, self._r[3556]!, [_0]) + return formatWithArgumentRanges(self._s[3562]!, self._r[3562]!, [_0]) } - public var VoiceOver_BotCommands: String { return self._s[3557]! } + public var VoiceOver_BotCommands: String { return self._s[3563]! } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3560]!, self._r[3560]!, [_1]) + return formatWithArgumentRanges(self._s[3566]!, self._r[3566]!, [_1]) } - public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3561]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[3562]! } - public var InviteLink_ContextDelete: String { return self._s[3563]! } + public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3567]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[3568]! } + public var InviteLink_ContextDelete: String { return self._s[3569]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3564]!, self._r[3564]!, [_0]) + return formatWithArgumentRanges(self._s[3570]!, self._r[3570]!, [_0]) } - public var WebSearch_SearchNoResults: String { return self._s[3566]! } - public var Channel_DiscussionGroup_Create: String { return self._s[3567]! } - public var Passport_Language_es: String { return self._s[3568]! } - public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3569]! } - public var Map_LiveLocationShowAll: String { return self._s[3570]! } - public var Cache_MaximumCacheSizeHelp: String { return self._s[3572]! } - public var Map_OpenInGoogleMaps: String { return self._s[3573]! } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3575]! } - public var EditTheme_Create_BottomInfo: String { return self._s[3576]! } - public var PhotoEditor_BlurToolLinear: String { return self._s[3577]! } + public var WebSearch_SearchNoResults: String { return self._s[3572]! } + public var Channel_DiscussionGroup_Create: String { return self._s[3573]! } + public var Passport_Language_es: String { return self._s[3574]! } + public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3575]! } + public var Map_LiveLocationShowAll: String { return self._s[3576]! } + public var Cache_MaximumCacheSizeHelp: String { return self._s[3578]! } + public var Map_OpenInGoogleMaps: String { return self._s[3579]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3581]! } + public var EditTheme_Create_BottomInfo: String { return self._s[3582]! } + public var PhotoEditor_BlurToolLinear: String { return self._s[3583]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3578]!, self._r[3578]!, [_0]) + return formatWithArgumentRanges(self._s[3584]!, self._r[3584]!, [_0]) } - public var Passport_Phone_Delete: String { return self._s[3579]! } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3580]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[3581]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3582]! } + public var Passport_Phone_Delete: String { return self._s[3585]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3586]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[3587]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3588]! } public func EncryptionKey_Description(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3583]!, self._r[3583]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3589]!, self._r[3589]!, [_1, _2]) } - public var LogoutOptions_LogOutInfo: String { return self._s[3584]! } - public var Cache_ByPeerHeader: String { return self._s[3586]! } - public var Username_InvalidCharacters: String { return self._s[3587]! } - public var Checkout_ShippingAddress: String { return self._s[3589]! } + public var LogoutOptions_LogOutInfo: String { return self._s[3590]! } + public var Cache_ByPeerHeader: String { return self._s[3592]! } + public var Username_InvalidCharacters: String { return self._s[3593]! } + public var Checkout_ShippingAddress: String { return self._s[3595]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3590]!, self._r[3590]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[3596]!, self._r[3596]!, [_1, _2, _3, _4]) } - public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3592]! } - public var Conversation_AddContact: String { return self._s[3593]! } - public var Passport_Address_EditUtilityBill: String { return self._s[3594]! } - public var InviteLink_ContextGetQRCode: String { return self._s[3595]! } - public var Conversation_ChecksTooltip_Delivered: String { return self._s[3597]! } + public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3598]! } + public var Conversation_AddContact: String { return self._s[3599]! } + public var Passport_Address_EditUtilityBill: String { return self._s[3600]! } + public var InviteLink_ContextGetQRCode: String { return self._s[3601]! } + public var Conversation_ChecksTooltip_Delivered: String { return self._s[3603]! } public func Channel_AdminLog_MessageAddedAdminNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3598]!, self._r[3598]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3604]!, self._r[3604]!, [_1, _2]) } - public var Message_Video: String { return self._s[3599]! } + public var Message_Video: String { return self._s[3605]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3600]!, self._r[3600]!, [_0]) + return formatWithArgumentRanges(self._s[3606]!, self._r[3606]!, [_0]) } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3601]!, self._r[3601]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[3607]!, self._r[3607]!, ["\(_0)"]) } - public var InviteLink_ReactivateLink: String { return self._s[3602]! } - public var Passport_Language_km: String { return self._s[3604]! } + public var InviteLink_ReactivateLink: String { return self._s[3608]! } + public var Passport_Language_km: String { return self._s[3610]! } public func PUSH_MESSAGE_CHANNEL_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3605]!, self._r[3605]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3611]!, self._r[3611]!, [_1, _2, _3]) } - public var EmptyGroupInfo_Line4: String { return self._s[3606]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3608]! } - public var Notification_CallCanceledShort: String { return self._s[3609]! } - public var PhotoEditor_FadeTool: String { return self._s[3610]! } - public var Group_PublicLink_Info: String { return self._s[3611]! } - public var Contacts_DeselectAll: String { return self._s[3612]! } - public var Conversation_Moderate_Delete: String { return self._s[3614]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3615]! } - public var NotificationsSound_Note: String { return self._s[3618]! } + public var EmptyGroupInfo_Line4: String { return self._s[3612]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3614]! } + public var Notification_CallCanceledShort: String { return self._s[3615]! } + public var PhotoEditor_FadeTool: String { return self._s[3616]! } + public var Group_PublicLink_Info: String { return self._s[3617]! } + public var Contacts_DeselectAll: String { return self._s[3618]! } + public var Conversation_Moderate_Delete: String { return self._s[3620]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3621]! } + public var NotificationsSound_Note: String { return self._s[3624]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3619]!, self._r[3619]!, [_0]) + return formatWithArgumentRanges(self._s[3625]!, self._r[3625]!, [_0]) } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3620]! } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3622]! } - public var DialogList_SearchSectionGlobal: String { return self._s[3623]! } - public var AccessDenied_Settings: String { return self._s[3624]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3625]! } - public var AuthSessions_EmptyTitle: String { return self._s[3626]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3627]! } - public var GroupInfo_GroupType: String { return self._s[3628]! } - public var Calls_Missed: String { return self._s[3629]! } - public var Contacts_VoiceOver_AddContact: String { return self._s[3630]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3632]! } - public var Passport_Language_uz: String { return self._s[3633]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3634]! } - public var PhotoEditor_BlurToolPortrait: String { return self._s[3635]! } - public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3636]! } - public var Map_ChooseLocationTitle: String { return self._s[3637]! } - public var Checkout_EnterPassword: String { return self._s[3638]! } - public var GroupInfo_ConvertToSupergroup: String { return self._s[3639]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3640]! } - public var NetworkUsageSettings_Title: String { return self._s[3641]! } - public var Location_ProximityAlertCancelled: String { return self._s[3642]! } - public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3643]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[3644]! } - public var Compose_NewChannel: String { return self._s[3645]! } - public var Privacy_PaymentsClearInfo: String { return self._s[3647]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3626]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3628]! } + public var DialogList_SearchSectionGlobal: String { return self._s[3629]! } + public var AccessDenied_Settings: String { return self._s[3630]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3631]! } + public var AuthSessions_EmptyTitle: String { return self._s[3632]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3633]! } + public var GroupInfo_GroupType: String { return self._s[3634]! } + public var Calls_Missed: String { return self._s[3635]! } + public var Contacts_VoiceOver_AddContact: String { return self._s[3636]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3638]! } + public var Passport_Language_uz: String { return self._s[3639]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3640]! } + public var PhotoEditor_BlurToolPortrait: String { return self._s[3641]! } + public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3642]! } + public var Map_ChooseLocationTitle: String { return self._s[3643]! } + public var Checkout_EnterPassword: String { return self._s[3644]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[3645]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3646]! } + public var NetworkUsageSettings_Title: String { return self._s[3647]! } + public var Location_ProximityAlertCancelled: String { return self._s[3648]! } + public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3649]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[3650]! } + public var Compose_NewChannel: String { return self._s[3651]! } + public var Privacy_PaymentsClearInfo: String { return self._s[3653]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3648]!, self._r[3648]!, [_1]) + return formatWithArgumentRanges(self._s[3654]!, self._r[3654]!, [_1]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3649]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3650]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[3653]! } - public var WallpaperSearch_ColorBrown: String { return self._s[3654]! } - public var Appearance_AppIconDefault: String { return self._s[3655]! } - public var StickerSettings_ContextInfo: String { return self._s[3658]! } - public var Channel_AddBotErrorNoRights: String { return self._s[3659]! } - public var Passport_FieldPhone: String { return self._s[3661]! } - public var Contacts_PermissionsTitle: String { return self._s[3662]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3663]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3655]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3656]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[3659]! } + public var WallpaperSearch_ColorBrown: String { return self._s[3660]! } + public var Appearance_AppIconDefault: String { return self._s[3661]! } + public var StickerSettings_ContextInfo: String { return self._s[3664]! } + public var Channel_AddBotErrorNoRights: String { return self._s[3665]! } + public var Passport_FieldPhone: String { return self._s[3667]! } + public var Contacts_PermissionsTitle: String { return self._s[3668]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3669]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3664]!, self._r[3664]!, [_0]) + return formatWithArgumentRanges(self._s[3670]!, self._r[3670]!, [_0]) } - public var Bot_Unblock: String { return self._s[3665]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[3666]! } - public var InviteLink_InviteLinkCopiedText: String { return self._s[3667]! } - public var Passport_PasswordHelp: String { return self._s[3668]! } - public var TwoFactorSetup_PasswordRecovery_PlaceholderConfirmPassword: String { return self._s[3669]! } - public var Watch_Conversation_UserInfo: String { return self._s[3670]! } + public var Bot_Unblock: String { return self._s[3671]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[3672]! } + public var InviteLink_InviteLinkCopiedText: String { return self._s[3673]! } + public var Passport_PasswordHelp: String { return self._s[3674]! } + public var TwoFactorSetup_PasswordRecovery_PlaceholderConfirmPassword: String { return self._s[3675]! } + public var Watch_Conversation_UserInfo: String { return self._s[3676]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3674]!, self._r[3674]!, [_0]) - } - public var State_Connecting: String { return self._s[3676]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3677]! } - public var TextFormat_AddLinkPlaceholder: String { return self._s[3678]! } - public var Conversation_Dice_u1F3B2: String { return self._s[3679]! } - public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3680]!, self._r[3680]!, [_0]) } - public var Conversation_SendingOptionsTooltip: String { return self._s[3681]! } - public var ChatList_UndoArchiveTitle: String { return self._s[3682]! } - public var ChatList_EmptyChatListNewMessage: String { return self._s[3683]! } - public var WallpaperSearch_ColorGreen: String { return self._s[3685]! } - public var PhotoEditor_BlurToolOff: String { return self._s[3686]! } - public var Conversation_AutoremoveOff: String { return self._s[3687]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[3688]! } - public var Weekday_Saturday: String { return self._s[3689]! } - public var DialogList_Unread: String { return self._s[3690]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3691]! } - public var Stats_GroupPosters: String { return self._s[3692]! } - public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3693]!, self._r[3693]!, [_1]) + public var State_Connecting: String { return self._s[3682]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3683]! } + public var TextFormat_AddLinkPlaceholder: String { return self._s[3684]! } + public var Conversation_Dice_u1F3B2: String { return self._s[3685]! } + public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3686]!, self._r[3686]!, [_0]) } - public var Conversation_AlsoClearCacheTitle: String { return self._s[3694]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[3687]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3688]! } + public var ChatList_EmptyChatListNewMessage: String { return self._s[3689]! } + public var WallpaperSearch_ColorGreen: String { return self._s[3691]! } + public var PhotoEditor_BlurToolOff: String { return self._s[3692]! } + public var Conversation_AutoremoveOff: String { return self._s[3693]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[3694]! } + public var Weekday_Saturday: String { return self._s[3695]! } + public var DialogList_Unread: String { return self._s[3696]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3697]! } + public var Stats_GroupPosters: String { return self._s[3698]! } + public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3699]!, self._r[3699]!, [_1]) + } + public var Conversation_AlsoClearCacheTitle: String { return self._s[3700]! } public func Conversation_ForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3695]!, self._r[3695]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_0, _1]) } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_0]) + return formatWithArgumentRanges(self._s[3704]!, self._r[3704]!, [_0]) } - public var ReportPeer_ReasonChildAbuse: String { return self._s[3699]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[3705]! } public func Channel_AdminLog_MessageUnkickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3700]!, self._r[3700]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3706]!, self._r[3706]!, [_1, _2]) } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[3701]! } - public var Conversation_EmailCopied: String { return self._s[3703]! } - public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3704]! } - public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3705]! } - public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3706]! } - public var VoiceChat_LateBy: String { return self._s[3707]! } - public var Passport_Language_dv: String { return self._s[3708]! } - public var TwoFactorSetup_PasswordRecovery_Text: String { return self._s[3709]! } - public var GroupPermission_AddSuccess: String { return self._s[3711]! } - public var Passport_Email_Help: String { return self._s[3712]! } - public var Call_ReportPlaceholder: String { return self._s[3713]! } - public var CreatePoll_AddOption: String { return self._s[3714]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3716]! } - public var PeerInfo_ButtonLeave: String { return self._s[3717]! } - public var PhotoEditor_TiltShift: String { return self._s[3720]! } - public var SecretGif_Title: String { return self._s[3722]! } - public var GroupInfo_InviteLinks: String { return self._s[3723]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[3724]! } - public var SocksProxySetup_Connecting: String { return self._s[3726]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3727]! } - public var ContactInfo_PhoneLabelWork: String { return self._s[3728]! } - public var Stats_GroupTopHoursTitle: String { return self._s[3729]! } - public var Compose_NewMessage: String { return self._s[3730]! } - public var VoiceOver_Common_SwitchHint: String { return self._s[3731]! } - public var NotificationsSound_Synth: String { return self._s[3732]! } - public var ChatImport_UserErrorNotMutual: String { return self._s[3733]! } - public var Conversation_FileOpenIn: String { return self._s[3734]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[3735]! } - public var UserInfo_SendMessage: String { return self._s[3736]! } - public var Checkout_PayWithFaceId: String { return self._s[3737]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[3707]! } + public var Conversation_EmailCopied: String { return self._s[3709]! } + public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3710]! } + public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3711]! } + public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3712]! } + public var VoiceChat_LateBy: String { return self._s[3713]! } + public var Passport_Language_dv: String { return self._s[3714]! } + public var TwoFactorSetup_PasswordRecovery_Text: String { return self._s[3715]! } + public var GroupPermission_AddSuccess: String { return self._s[3717]! } + public var Passport_Email_Help: String { return self._s[3718]! } + public var Call_ReportPlaceholder: String { return self._s[3719]! } + public var CreatePoll_AddOption: String { return self._s[3720]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3722]! } + public var PeerInfo_ButtonLeave: String { return self._s[3723]! } + public var PhotoEditor_TiltShift: String { return self._s[3726]! } + public var SecretGif_Title: String { return self._s[3728]! } + public var GroupInfo_InviteLinks: String { return self._s[3729]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[3730]! } + public var SocksProxySetup_Connecting: String { return self._s[3732]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3733]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[3734]! } + public var Stats_GroupTopHoursTitle: String { return self._s[3735]! } + public var Compose_NewMessage: String { return self._s[3736]! } + public var VoiceOver_Common_SwitchHint: String { return self._s[3737]! } + public var NotificationsSound_Synth: String { return self._s[3738]! } + public var ChatImport_UserErrorNotMutual: String { return self._s[3739]! } + public var Conversation_FileOpenIn: String { return self._s[3740]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[3741]! } + public var UserInfo_SendMessage: String { return self._s[3742]! } + public var Checkout_PayWithFaceId: String { return self._s[3743]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3738]!, self._r[3738]!, [_0]) + return formatWithArgumentRanges(self._s[3744]!, self._r[3744]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[3739]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3740]! } - public var Conversation_ViewChannel: String { return self._s[3741]! } + public var TextFormat_Strikethrough: String { return self._s[3745]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3746]! } + public var Conversation_ViewChannel: String { return self._s[3747]! } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3742]!, self._r[3742]!, [_0]) + return formatWithArgumentRanges(self._s[3748]!, self._r[3748]!, [_0]) } - public var Channel_Stickers_Placeholder: String { return self._s[3743]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3744]! } - public var Message_ScamAccount: String { return self._s[3745]! } - public var Camera_FlashAuto: String { return self._s[3746]! } - public var Conversation_EncryptedDescription1: String { return self._s[3747]! } - public var LocalGroup_Text: String { return self._s[3748]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3749]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[3750]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[3751]! } - public var Conversation_EncryptedDescription2: String { return self._s[3752]! } - public var Conversation_CancelForwardText: String { return self._s[3753]! } - public var Notification_GroupActivated: String { return self._s[3754]! } - public var LastSeen_Lately: String { return self._s[3755]! } - public var Conversation_EncryptedDescription3: String { return self._s[3756]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3757]! } - public var Conversation_SwipeToReplyHintText: String { return self._s[3758]! } - public var Conversation_EncryptedDescription4: String { return self._s[3759]! } - public var SharedMedia_EmptyTitle: String { return self._s[3760]! } - public var Appearance_CreateTheme: String { return self._s[3762]! } - public var Stats_SharesPerPost: String { return self._s[3763]! } - public var Contacts_TabTitle: String { return self._s[3764]! } - public var Weekday_ShortThursday: String { return self._s[3765]! } - public var MessageTimer_Forever: String { return self._s[3766]! } - public var ChatListFolder_CategoryArchived: String { return self._s[3767]! } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3768]! } - public var EditTheme_Create_TopInfo: String { return self._s[3770]! } + public var Channel_Stickers_Placeholder: String { return self._s[3749]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3750]! } + public var Message_ScamAccount: String { return self._s[3751]! } + public var Camera_FlashAuto: String { return self._s[3752]! } + public var Conversation_EncryptedDescription1: String { return self._s[3753]! } + public var LocalGroup_Text: String { return self._s[3754]! } + public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3755]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[3756]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[3757]! } + public var Conversation_EncryptedDescription2: String { return self._s[3758]! } + public var Conversation_CancelForwardText: String { return self._s[3759]! } + public var Notification_GroupActivated: String { return self._s[3760]! } + public var LastSeen_Lately: String { return self._s[3761]! } + public var Conversation_EncryptedDescription3: String { return self._s[3762]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3763]! } + public var TwoStepAuth_RecoveryUnavailableResetText: String { return self._s[3764]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3765]! } + public var Conversation_EncryptedDescription4: String { return self._s[3766]! } + public var SharedMedia_EmptyTitle: String { return self._s[3767]! } + public var Appearance_CreateTheme: String { return self._s[3769]! } + public var Stats_SharesPerPost: String { return self._s[3770]! } + public var Contacts_TabTitle: String { return self._s[3771]! } + public var Weekday_ShortThursday: String { return self._s[3772]! } + public var MessageTimer_Forever: String { return self._s[3773]! } + public var ChatListFolder_CategoryArchived: String { return self._s[3774]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3775]! } + public var EditTheme_Create_TopInfo: String { return self._s[3777]! } public func VoiceOver_ChatList_MessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3771]!, self._r[3771]!, [_0]) + return formatWithArgumentRanges(self._s[3778]!, self._r[3778]!, [_0]) } - public var Month_GenDecember: String { return self._s[3772]! } - public var EnterPasscode_EnterPasscode: String { return self._s[3773]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3774]! } - public var PeopleNearby_CreateGroup: String { return self._s[3776]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3777]! } - public var Paint_ClearConfirm: String { return self._s[3778]! } - public var ChatList_ReadAll: String { return self._s[3779]! } - public var ChatSettings_IntentsSettings: String { return self._s[3780]! } - public var Passport_PassportInformation: String { return self._s[3782]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3784]! } - public var Location_ProximityNotification_DistanceMI: String { return self._s[3787]! } - public var PhotoEditor_ExposureTool: String { return self._s[3788]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3789]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[3790]! } - public var Stats_GroupTopPoster_History: String { return self._s[3791]! } - public var UserInfo_AddPhone: String { return self._s[3792]! } - public var Media_SendWithTimer: String { return self._s[3794]! } - public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3795]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3796]! } - public var GroupInfo_GroupHistoryShort: String { return self._s[3797]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3798]! } - public var ChatList_Context_Unarchive: String { return self._s[3800]! } + public var Month_GenDecember: String { return self._s[3779]! } + public var EnterPasscode_EnterPasscode: String { return self._s[3780]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3781]! } + public var PeopleNearby_CreateGroup: String { return self._s[3783]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3784]! } + public var Paint_ClearConfirm: String { return self._s[3785]! } + public var ChatList_ReadAll: String { return self._s[3786]! } + public var ChatSettings_IntentsSettings: String { return self._s[3787]! } + public var Passport_PassportInformation: String { return self._s[3789]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3791]! } + public var Location_ProximityNotification_DistanceMI: String { return self._s[3794]! } + public var PhotoEditor_ExposureTool: String { return self._s[3795]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3796]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[3797]! } + public var Stats_GroupTopPoster_History: String { return self._s[3798]! } + public var UserInfo_AddPhone: String { return self._s[3799]! } + public var Media_SendWithTimer: String { return self._s[3801]! } + public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3802]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3803]! } + public var GroupInfo_GroupHistoryShort: String { return self._s[3804]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3805]! } + public var ChatList_Context_Unarchive: String { return self._s[3807]! } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3801]!, self._r[3801]!, [_0]) + return formatWithArgumentRanges(self._s[3808]!, self._r[3808]!, [_0]) } - public var BlockedUsers_Title: String { return self._s[3803]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[3804]! } - public var Media_ShareThisPhoto: String { return self._s[3805]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3806]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[3807]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3811]! } - public var CallFeedback_ReasonNoise: String { return self._s[3813]! } - public var WebBrowser_Title: String { return self._s[3814]! } + public var BlockedUsers_Title: String { return self._s[3810]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[3811]! } + public var Media_ShareThisPhoto: String { return self._s[3812]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3813]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[3814]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3818]! } + public var CallFeedback_ReasonNoise: String { return self._s[3820]! } + public var WebBrowser_Title: String { return self._s[3821]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3815]!, self._r[3815]!, [_0]) + return formatWithArgumentRanges(self._s[3822]!, self._r[3822]!, [_0]) } - public var Notification_MessageLifetime5s: String { return self._s[3817]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3818]! } - public var Profile_MessageLifetime1m: String { return self._s[3820]! } - public var Passport_ScanPassport: String { return self._s[3821]! } - public var Stats_LoadingTitle: String { return self._s[3822]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3824]! } - public var Permissions_NotificationsAllow_v0: String { return self._s[3825]! } - public var Login_InvalidFirstNameError: String { return self._s[3826]! } - public var Undo_ChatCleared: String { return self._s[3828]! } + public var Notification_MessageLifetime5s: String { return self._s[3824]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3825]! } + public var Profile_MessageLifetime1m: String { return self._s[3827]! } + public var Passport_ScanPassport: String { return self._s[3828]! } + public var Stats_LoadingTitle: String { return self._s[3829]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3831]! } + public var Permissions_NotificationsAllow_v0: String { return self._s[3832]! } + public var Login_InvalidFirstNameError: String { return self._s[3833]! } + public var Undo_ChatCleared: String { return self._s[3835]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3830]!, self._r[3830]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3837]!, self._r[3837]!, [_1, _2]) } - public var Conversation_PinMessageAlertPin: String { return self._s[3831]! } + public var Conversation_PinMessageAlertPin: String { return self._s[3838]! } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3832]!, self._r[3832]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[3839]!, self._r[3839]!, [_1, _2, _3, _4, _5]) } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3833]!, self._r[3833]!, [_1]) + return formatWithArgumentRanges(self._s[3840]!, self._r[3840]!, [_1]) } - public var Share_MultipleMessagesDisabled: String { return self._s[3834]! } - public var TwoStepAuth_EmailInvalid: String { return self._s[3835]! } - public var EnterPasscode_ChangeTitle: String { return self._s[3837]! } - public var VoiceChat_InviteLink_Speaker: String { return self._s[3838]! } - public var CallSettings_RecentCalls: String { return self._s[3839]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[3840]! } - public var AuthSessions_OtherSessions: String { return self._s[3841]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3842]! } - public var Tour_Text5: String { return self._s[3843]! } - public var Login_PadPhoneHelp: String { return self._s[3844]! } - public var Wallpaper_PhotoLibrary: String { return self._s[3847]! } - public var Conversation_ViewGroup: String { return self._s[3848]! } - public var PeopleNearby_MakeVisibleTitle: String { return self._s[3850]! } - public var VoiceOver_Chat_YourContact: String { return self._s[3851]! } - public var Watch_AuthRequired: String { return self._s[3852]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3854]! } - public var Conversation_ForwardContacts: String { return self._s[3855]! } - public var Conversation_InputTextPlaceholder: String { return self._s[3856]! } + public var Share_MultipleMessagesDisabled: String { return self._s[3841]! } + public var TwoStepAuth_EmailInvalid: String { return self._s[3842]! } + public var EnterPasscode_ChangeTitle: String { return self._s[3844]! } + public var VoiceChat_InviteLink_Speaker: String { return self._s[3845]! } + public var CallSettings_RecentCalls: String { return self._s[3846]! } + public var GroupInfo_DeactivatedStatus: String { return self._s[3847]! } + public var AuthSessions_OtherSessions: String { return self._s[3848]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3849]! } + public var Tour_Text5: String { return self._s[3850]! } + public var Login_PadPhoneHelp: String { return self._s[3851]! } + public var Wallpaper_PhotoLibrary: String { return self._s[3854]! } + public var Conversation_ViewGroup: String { return self._s[3855]! } + public var PeopleNearby_MakeVisibleTitle: String { return self._s[3857]! } + public var VoiceOver_Chat_YourContact: String { return self._s[3858]! } + public var Watch_AuthRequired: String { return self._s[3859]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3861]! } + public var Conversation_ForwardContacts: String { return self._s[3862]! } + public var Conversation_InputTextPlaceholder: String { return self._s[3863]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3857]!, self._r[3857]!, [_1]) + return formatWithArgumentRanges(self._s[3864]!, self._r[3864]!, [_1]) } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3858]!, self._r[3858]!, [_0]) + return formatWithArgumentRanges(self._s[3865]!, self._r[3865]!, [_0]) } - public var Channel_Setup_TypePrivate: String { return self._s[3859]! } + public var Channel_Setup_TypePrivate: String { return self._s[3866]! } public func Conversation_NoticeInvitedByInChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3860]!, self._r[3860]!, [_0]) + return formatWithArgumentRanges(self._s[3867]!, self._r[3867]!, [_0]) } - public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3861]! } - public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3862]! } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[3863]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[3864]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[3865]! } - public var UserInfo_StartSecretChatStart: String { return self._s[3866]! } + public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3868]! } + public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3869]! } + public var InfoPlist_NSSiriUsageDescription: String { return self._s[3870]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[3871]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[3872]! } + public var UserInfo_StartSecretChatStart: String { return self._s[3873]! } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3867]!, self._r[3867]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3874]!, self._r[3874]!, [_1, _2]) } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3868]!, self._r[3868]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[3875]!, self._r[3875]!, [_0, _1, _2]) } public func Conversation_ForwardTooltip_TwoChats_Many(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3869]!, self._r[3869]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3876]!, self._r[3876]!, [_0, _1]) } - public var PrivacySettings_AutoArchiveTitle: String { return self._s[3870]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[3871]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3872]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[3874]! } - public var NewContact_Title: String { return self._s[3877]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3878]! } - public var VoiceChat_StatusSpeaking: String { return self._s[3879]! } - public var Notifications_PermissionsKeepDisabled: String { return self._s[3880]! } + public var PrivacySettings_AutoArchiveTitle: String { return self._s[3877]! } + public var GroupInfo_InviteLink_LinkSection: String { return self._s[3878]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3879]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[3881]! } + public var NewContact_Title: String { return self._s[3884]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3885]! } + public var VoiceChat_StatusSpeaking: String { return self._s[3886]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[3887]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3881]!, self._r[3881]!, [_0]) + return formatWithArgumentRanges(self._s[3888]!, self._r[3888]!, [_0]) } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3882]!, self._r[3882]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3889]!, self._r[3889]!, [_0, _1]) } - public var Chat_SlowmodeTooltipPending: String { return self._s[3883]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[3890]! } public func Time_MediumDate(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3885]!, self._r[3885]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3892]!, self._r[3892]!, [_1, _2]) } - public var ContactInfo_PhoneLabelHome: String { return self._s[3886]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3887]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3888]! } - public var Conversation_MessageEditedLabel: String { return self._s[3891]! } - public var CallList_ActiveVoiceChatsHeader: String { return self._s[3892]! } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3893]! } - public var ChatList_Context_AddToContacts: String { return self._s[3894]! } - public var Passport_Language_is: String { return self._s[3895]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[3896]! } - public var PhotoEditor_CurvesBlue: String { return self._s[3897]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[3893]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3894]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3895]! } + public var Conversation_MessageEditedLabel: String { return self._s[3898]! } + public var CallList_ActiveVoiceChatsHeader: String { return self._s[3899]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3900]! } + public var ChatList_Context_AddToContacts: String { return self._s[3901]! } + public var Passport_Language_is: String { return self._s[3902]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[3903]! } + public var PhotoEditor_CurvesBlue: String { return self._s[3904]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3898]!, self._r[3898]!, [_0]) + return formatWithArgumentRanges(self._s[3905]!, self._r[3905]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[3899]! } - public var Login_SmsRequestState3: String { return self._s[3900]! } - public var Message_PinnedVideoMessage: String { return self._s[3901]! } - public var SharedMedia_TitleLink: String { return self._s[3902]! } - public var Passport_FieldIdentity: String { return self._s[3903]! } - public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3905]! } + public var SocksProxySetup_Username: String { return self._s[3906]! } + public var Login_SmsRequestState3: String { return self._s[3907]! } + public var Message_PinnedVideoMessage: String { return self._s[3908]! } + public var SharedMedia_TitleLink: String { return self._s[3909]! } + public var Passport_FieldIdentity: String { return self._s[3910]! } + public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3912]! } public func Conversation_EncryptedPlaceholderTitleOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3908]!, self._r[3908]!, [_0]) + return formatWithArgumentRanges(self._s[3915]!, self._r[3915]!, [_0]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3911]! } - public var ReportSpam_DeleteThisChat: String { return self._s[3912]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3913]! } - public var Passport_Identity_DateOfBirth: String { return self._s[3914]! } - public var Call_StatusIncoming: String { return self._s[3915]! } - public var ChatAdmins_AdminLabel: String { return self._s[3916]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3918]! } + public var ReportSpam_DeleteThisChat: String { return self._s[3919]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3920]! } + public var Passport_Identity_DateOfBirth: String { return self._s[3921]! } + public var Call_StatusIncoming: String { return self._s[3922]! } + public var ChatAdmins_AdminLabel: String { return self._s[3923]! } public func InstantPage_OpenInBrowser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3917]!, self._r[3917]!, [_0]) + return formatWithArgumentRanges(self._s[3924]!, self._r[3924]!, [_0]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3919]!, self._r[3919]!, [_0]) + return formatWithArgumentRanges(self._s[3926]!, self._r[3926]!, [_0]) } - public var Message_PinnedAnimationMessage: String { return self._s[3920]! } - public var VoiceChat_TapToViewCameraVideo: String { return self._s[3921]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[3922]! } - public var Preview_CopyAddress: String { return self._s[3923]! } - public var MediaPlayer_UnknownTrack: String { return self._s[3925]! } - public var Login_CancelSignUpConfirmation: String { return self._s[3926]! } - public var Map_OpenInYandexMaps: String { return self._s[3928]! } + public var Message_PinnedAnimationMessage: String { return self._s[3927]! } + public var VoiceChat_TapToViewCameraVideo: String { return self._s[3928]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[3929]! } + public var Preview_CopyAddress: String { return self._s[3930]! } + public var MediaPlayer_UnknownTrack: String { return self._s[3932]! } + public var Login_CancelSignUpConfirmation: String { return self._s[3933]! } + public var Map_OpenInYandexMaps: String { return self._s[3935]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3931]!, self._r[3931]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3938]!, self._r[3938]!, [_1, _2, _3]) } - public var GroupRemoved_Remove: String { return self._s[3932]! } - public var ChatListFolder_TitleCreate: String { return self._s[3933]! } + public var GroupRemoved_Remove: String { return self._s[3939]! } + public var ChatListFolder_TitleCreate: String { return self._s[3940]! } public func InstantPage_AuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3935]!, self._r[3935]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3942]!, self._r[3942]!, [_1, _2]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[3936]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[3943]! } public func UserInfo_LinkForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3938]!, self._r[3938]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3945]!, self._r[3945]!, [_0, _1]) } - public var Group_UpgradeNoticeText2: String { return self._s[3939]! } - public var Stats_GroupGrowthTitle: String { return self._s[3940]! } - public var CreatePoll_CancelConfirmation: String { return self._s[3943]! } - public var Month_GenOctober: String { return self._s[3944]! } - public var Conversation_TitleCommentsEmpty: String { return self._s[3945]! } - public var Settings_Appearance: String { return self._s[3946]! } + public var Group_UpgradeNoticeText2: String { return self._s[3946]! } + public var Stats_GroupGrowthTitle: String { return self._s[3947]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3950]! } + public var Month_GenOctober: String { return self._s[3951]! } + public var Conversation_TitleCommentsEmpty: String { return self._s[3952]! } + public var Settings_Appearance: String { return self._s[3953]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3947]!, self._r[3947]!, [_0]) + return formatWithArgumentRanges(self._s[3954]!, self._r[3954]!, [_0]) } - public var UserInfo_AddToExisting: String { return self._s[3948]! } - public var Call_PhoneCallInProgressMessage: String { return self._s[3950]! } - public var Map_HomeAndWorkInfo: String { return self._s[3951]! } - public var VoiceChat_ContextAudio: String { return self._s[3952]! } - public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3953]! } - public var Paint_Arrow: String { return self._s[3954]! } - public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3955]! } + public var UserInfo_AddToExisting: String { return self._s[3955]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3957]! } + public var Map_HomeAndWorkInfo: String { return self._s[3958]! } + public var VoiceChat_ContextAudio: String { return self._s[3959]! } + public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3960]! } + public var Paint_Arrow: String { return self._s[3961]! } + public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3962]! } public func DialogList_MultipleTypingPair(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3956]!, self._r[3956]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3963]!, self._r[3963]!, [_0, _1]) } - public var CancelResetAccount_Title: String { return self._s[3957]! } - public var NotificationsSound_Circles: String { return self._s[3958]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3959]! } - public var ChatState_Connecting: String { return self._s[3961]! } - public var Profile_MessageLifetime5s: String { return self._s[3962]! } + public var CancelResetAccount_Title: String { return self._s[3964]! } + public var NotificationsSound_Circles: String { return self._s[3965]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3966]! } + public var ChatState_Connecting: String { return self._s[3968]! } + public var Profile_MessageLifetime5s: String { return self._s[3969]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3963]!, self._r[3963]!, [_0]) - } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3964]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3965]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3966]! } - public var Conversation_DefaultRestrictedStickers: String { return self._s[3968]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[3969]! } - public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3970]!, self._r[3970]!, [_0]) } - public var Passport_Phone_Help: String { return self._s[3971]! } - public var Privacy_ContactsSync: String { return self._s[3972]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3973]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3975]! } - public var Map_SendMyCurrentLocation: String { return self._s[3976]! } - public var Map_AddressOnMap: String { return self._s[3977]! } - public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3979]! } - public var DialogList_SearchLabel: String { return self._s[3980]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3981]! } - public var GroupInfo_FakeGroupWarning: String { return self._s[3982]! } - public var Conversation_ChecksTooltip_Read: String { return self._s[3984]! } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3986]! } - public var ChatList_Search_ShowMore: String { return self._s[3987]! } - public var DialogList_EncryptionRejected: String { return self._s[3988]! } - public var VoiceChat_InviteLinkCopiedText: String { return self._s[3989]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[3990]! } - public var VoiceChat_StartRecordingText: String { return self._s[3991]! } - public var Privacy_TopPeersDelete: String { return self._s[3992]! } - public var AttachmentMenu_SendAsFile: String { return self._s[3994]! } - public var ChatList_GenericPsaAlert: String { return self._s[3996]! } - public var SecretTimer_ImageDescription: String { return self._s[3998]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3971]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3972]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3973]! } + public var Conversation_DefaultRestrictedStickers: String { return self._s[3975]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[3976]! } + public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3977]!, self._r[3977]!, [_0]) + } + public var Passport_Phone_Help: String { return self._s[3978]! } + public var Privacy_ContactsSync: String { return self._s[3979]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3980]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3982]! } + public var Map_SendMyCurrentLocation: String { return self._s[3983]! } + public var Map_AddressOnMap: String { return self._s[3984]! } + public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3986]! } + public var DialogList_SearchLabel: String { return self._s[3987]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3988]! } + public var GroupInfo_FakeGroupWarning: String { return self._s[3989]! } + public var Conversation_ChecksTooltip_Read: String { return self._s[3991]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3993]! } + public var ChatList_Search_ShowMore: String { return self._s[3994]! } + public var DialogList_EncryptionRejected: String { return self._s[3995]! } + public var VoiceChat_InviteLinkCopiedText: String { return self._s[3996]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[3997]! } + public var VoiceChat_StartRecordingText: String { return self._s[3998]! } + public var Privacy_TopPeersDelete: String { return self._s[3999]! } + public var AttachmentMenu_SendAsFile: String { return self._s[4001]! } + public var ChatList_GenericPsaAlert: String { return self._s[4003]! } + public var SecretTimer_ImageDescription: String { return self._s[4005]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3999]!, self._r[3999]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4006]!, self._r[4006]!, [_0, _1]) } - public var VoiceChat_EditNameSuccess: String { return self._s[4000]! } - public var ChatSettings_TextSizeUnits: String { return self._s[4001]! } - public var Notification_RenamedGroup: String { return self._s[4003]! } - public var Tour_Title2: String { return self._s[4004]! } - public var Settings_CopyUsername: String { return self._s[4005]! } - public var Compose_NewEncryptedChat: String { return self._s[4006]! } - public var Conversation_CloudStorageInfo_Title: String { return self._s[4007]! } - public var VoiceChat_SetReminder: String { return self._s[4008]! } - public var Month_ShortSeptember: String { return self._s[4009]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[4010]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[4011]! } - public var VoiceChat_StartNow: String { return self._s[4012]! } - public var Call_StatusConnecting: String { return self._s[4014]! } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[4015]! } - public var Map_ShareLiveLocationHelp: String { return self._s[4016]! } - public var Cache_Files: String { return self._s[4017]! } - public var Notifications_Reset: String { return self._s[4018]! } + public var VoiceChat_EditNameSuccess: String { return self._s[4007]! } + public var ChatSettings_TextSizeUnits: String { return self._s[4008]! } + public var Notification_RenamedGroup: String { return self._s[4010]! } + public var Tour_Title2: String { return self._s[4011]! } + public var Settings_CopyUsername: String { return self._s[4012]! } + public var Compose_NewEncryptedChat: String { return self._s[4013]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[4014]! } + public var VoiceChat_SetReminder: String { return self._s[4015]! } + public var Month_ShortSeptember: String { return self._s[4016]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[4017]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[4018]! } + public var VoiceChat_StartNow: String { return self._s[4019]! } + public var Call_StatusConnecting: String { return self._s[4021]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[4022]! } + public var Map_ShareLiveLocationHelp: String { return self._s[4023]! } + public var Cache_Files: String { return self._s[4024]! } + public var Notifications_Reset: String { return self._s[4025]! } public func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4019]!, self._r[4019]!, [_0]) + return formatWithArgumentRanges(self._s[4026]!, self._r[4026]!, [_0]) } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[4020]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[4027]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4021]!, self._r[4021]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4028]!, self._r[4028]!, [_1, _2]) } - public var Notification_CallIncomingShort: String { return self._s[4022]! } - public var UserInfo_BotPrivacy: String { return self._s[4025]! } - public var Appearance_BubbleCorners_Apply: String { return self._s[4026]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[4027]! } - public var Conversation_ContextMenuLookUp: String { return self._s[4029]! } - public var Calls_RatingTitle: String { return self._s[4030]! } - public var SecretImage_Title: String { return self._s[4031]! } - public var Weekday_Monday: String { return self._s[4032]! } + public var Notification_CallIncomingShort: String { return self._s[4029]! } + public var UserInfo_BotPrivacy: String { return self._s[4032]! } + public var Appearance_BubbleCorners_Apply: String { return self._s[4033]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[4034]! } + public var Conversation_ContextMenuLookUp: String { return self._s[4036]! } + public var Calls_RatingTitle: String { return self._s[4037]! } + public var SecretImage_Title: String { return self._s[4038]! } + public var Weekday_Monday: String { return self._s[4039]! } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4033]!, self._r[4033]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4040]!, self._r[4040]!, [_1, _2]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[4034]! } - public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[4035]! } - public var Invitation_JoinVoiceChatAsListener: String { return self._s[4036]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[4041]! } + public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[4042]! } + public var Invitation_JoinVoiceChatAsListener: String { return self._s[4043]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4037]!, self._r[4037]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_1, _2]) } - public var Stats_GroupMembers: String { return self._s[4038]! } - public var Camera_Retake: String { return self._s[4039]! } - public var Conversation_SearchPlaceholder: String { return self._s[4041]! } + public var Stats_GroupMembers: String { return self._s[4045]! } + public var Camera_Retake: String { return self._s[4046]! } + public var Conversation_SearchPlaceholder: String { return self._s[4048]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4042]!, self._r[4042]!, [_0]) + return formatWithArgumentRanges(self._s[4049]!, self._r[4049]!, [_0]) } - public var Channel_DiscussionGroup_Info: String { return self._s[4043]! } - public var SocksProxySetup_Hostname: String { return self._s[4044]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4045]! } - public var Privacy_DeleteDrafts: String { return self._s[4047]! } - public var Login_CancelPhoneVerification: String { return self._s[4049]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[4050]! } - public var VoiceOver_Chat_Profile: String { return self._s[4051]! } + public var Channel_DiscussionGroup_Info: String { return self._s[4050]! } + public var SocksProxySetup_Hostname: String { return self._s[4051]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4052]! } + public var Privacy_DeleteDrafts: String { return self._s[4054]! } + public var Login_CancelPhoneVerification: String { return self._s[4056]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[4057]! } + public var VoiceOver_Chat_Profile: String { return self._s[4058]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4052]!, self._r[4052]!, [_0]) + return formatWithArgumentRanges(self._s[4059]!, self._r[4059]!, [_0]) } - public var TwoStepAuth_EmailSent: String { return self._s[4053]! } - public var Cache_Indexing: String { return self._s[4054]! } - public var Notifications_ExceptionsNone: String { return self._s[4055]! } - public var MessagePoll_LabelQuiz: String { return self._s[4056]! } - public var Call_EncryptionKey_Title: String { return self._s[4057]! } - public var Common_Yes: String { return self._s[4058]! } - public var Channel_ErrorAddBlocked: String { return self._s[4059]! } - public var Month_GenJanuary: String { return self._s[4060]! } - public var Checkout_NewCard_Title: String { return self._s[4061]! } + public var TwoStepAuth_EmailSent: String { return self._s[4060]! } + public var Cache_Indexing: String { return self._s[4061]! } + public var Notifications_ExceptionsNone: String { return self._s[4062]! } + public var MessagePoll_LabelQuiz: String { return self._s[4063]! } + public var Call_EncryptionKey_Title: String { return self._s[4064]! } + public var Common_Yes: String { return self._s[4065]! } + public var Channel_ErrorAddBlocked: String { return self._s[4066]! } + public var Month_GenJanuary: String { return self._s[4067]! } + public var Checkout_NewCard_Title: String { return self._s[4068]! } public func TwoStepAuth_EnterPasswordHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4062]!, self._r[4062]!, [_0]) + return formatWithArgumentRanges(self._s[4069]!, self._r[4069]!, [_0]) } - public var Conversation_InputTextPlaceholderReply: String { return self._s[4064]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4065]! } - public var Conversation_SendDice: String { return self._s[4066]! } + public var Conversation_InputTextPlaceholderReply: String { return self._s[4071]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4072]! } + public var Conversation_SendDice: String { return self._s[4073]! } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4067]!, self._r[4067]!, [_0]) + return formatWithArgumentRanges(self._s[4074]!, self._r[4074]!, [_0]) } public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4068]!, self._r[4068]!, [_0]) + return formatWithArgumentRanges(self._s[4075]!, self._r[4075]!, [_0]) } - public var Weekday_Wednesday: String { return self._s[4069]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[4070]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[4071]! } - public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4072]! } - public var OldChannels_NoticeTitle: String { return self._s[4073]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[4074]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[4075]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4076]! } - public var Passport_Address_AddUtilityBill: String { return self._s[4077]! } + public var Weekday_Wednesday: String { return self._s[4076]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[4077]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[4078]! } + public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4079]! } + public var OldChannels_NoticeTitle: String { return self._s[4080]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[4081]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[4082]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4083]! } + public var Passport_Address_AddUtilityBill: String { return self._s[4084]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4079]!, self._r[4079]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4086]!, self._r[4086]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4081]! } - public var Stats_GroupTopAdminsTitle: String { return self._s[4082]! } - public var Paint_Regular: String { return self._s[4084]! } - public var Message_Contact: String { return self._s[4085]! } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4086]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[4087]! } - public var Notification_Mute1hMin: String { return self._s[4088]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4088]! } + public var Stats_GroupTopAdminsTitle: String { return self._s[4089]! } + public var Paint_Regular: String { return self._s[4091]! } + public var Message_Contact: String { return self._s[4092]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4093]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[4094]! } + public var Notification_Mute1hMin: String { return self._s[4095]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4089]!, self._r[4089]!, [_0]) + return formatWithArgumentRanges(self._s[4096]!, self._r[4096]!, [_0]) } - public var Profile_MessageLifetime1h: String { return self._s[4090]! } - public var TwoStepAuth_GenericHelp: String { return self._s[4091]! } - public var TwoFactorSetup_PasswordRecovery_Skip: String { return self._s[4092]! } - public var TextFormat_Monospace: String { return self._s[4093]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4095]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[4096]! } - public var ChatList_DeleteChat: String { return self._s[4097]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4100]! } + public var Profile_MessageLifetime1h: String { return self._s[4097]! } + public var TwoStepAuth_GenericHelp: String { return self._s[4098]! } + public var TwoFactorSetup_PasswordRecovery_Skip: String { return self._s[4099]! } + public var TextFormat_Monospace: String { return self._s[4100]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4102]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[4103]! } + public var ChatList_DeleteChat: String { return self._s[4104]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4107]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4101]!, self._r[4101]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[4108]!, self._r[4108]!, [_1, _2, _3, _4]) } - public var Login_CancelPhoneVerificationStop: String { return self._s[4102]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4103]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4104]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[4109]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4110]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4111]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4105]!, self._r[4105]!, [_0]) + return formatWithArgumentRanges(self._s[4112]!, self._r[4112]!, [_0]) } - public var Notifications_Badge_IncludeChannels: String { return self._s[4106]! } - public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4107]! } - public var StickerPack_ViewPack: String { return self._s[4110]! } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4112]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4113]! } - public var Notifications_Title: String { return self._s[4114]! } - public var Conversation_InputTextPlaceholderComment: String { return self._s[4115]! } - public var GroupInfo_PublicLink: String { return self._s[4116]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[4113]! } + public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4114]! } + public var StickerPack_ViewPack: String { return self._s[4117]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4119]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4120]! } + public var Notifications_Title: String { return self._s[4121]! } + public var Conversation_InputTextPlaceholderComment: String { return self._s[4122]! } + public var GroupInfo_PublicLink: String { return self._s[4123]! } public func ScheduleVoiceChat_GroupText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4117]!, self._r[4117]!, [_0]) + return formatWithArgumentRanges(self._s[4124]!, self._r[4124]!, [_0]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[4118]! } - public var Conversation_Moderate_Ban: String { return self._s[4122]! } - public var InviteLink_Manage: String { return self._s[4123]! } - public var InstantPage_FontNewYork: String { return self._s[4124]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[4125]! } + public var Conversation_Moderate_Ban: String { return self._s[4129]! } + public var InviteLink_Manage: String { return self._s[4130]! } + public var InstantPage_FontNewYork: String { return self._s[4131]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4125]!, self._r[4125]!, [_0]) + return formatWithArgumentRanges(self._s[4132]!, self._r[4132]!, [_0]) } - public var TextFormat_Underline: String { return self._s[4126]! } + public var TextFormat_Underline: String { return self._s[4133]! } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4127]!, self._r[4127]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4134]!, self._r[4134]!, [_0, _1]) } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4128]!, self._r[4128]!, [_1]) + return formatWithArgumentRanges(self._s[4135]!, self._r[4135]!, [_1]) } - public var PollResults_Collapse: String { return self._s[4130]! } - public var Contacts_GlobalSearch: String { return self._s[4131]! } + public var PollResults_Collapse: String { return self._s[4137]! } + public var Contacts_GlobalSearch: String { return self._s[4138]! } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4133]!, self._r[4133]!, [_0]) + return formatWithArgumentRanges(self._s[4140]!, self._r[4140]!, [_0]) } - public var Channel_Management_LabelEditor: String { return self._s[4134]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4136]! } - public var Conversation_Theme: String { return self._s[4137]! } + public var Channel_Management_LabelEditor: String { return self._s[4141]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4143]! } + public var Conversation_Theme: String { return self._s[4144]! } public func PUSH_CHANNEL_MESSAGE_DOCS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4138]!, self._r[4138]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4145]!, self._r[4145]!, [_1, "\(_2)"]) } - public var Conversation_LinkDialogSave: String { return self._s[4139]! } - public var EnterPasscode_TouchId: String { return self._s[4140]! } - public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4141]! } - public var Group_ErrorAdminsTooMuch: String { return self._s[4142]! } - public var Stats_MessageOverview: String { return self._s[4143]! } - public var Privacy_Calls_P2PAlways: String { return self._s[4145]! } - public var Message_Sticker: String { return self._s[4146]! } - public var TwoFactorSetup_PasswordRecovery_SkipAlertTitle: String { return self._s[4147]! } - public var Conversation_Mute: String { return self._s[4150]! } - public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4151]! } - public var ContactInfo_Title: String { return self._s[4152]! } + public var Conversation_LinkDialogSave: String { return self._s[4146]! } + public var EnterPasscode_TouchId: String { return self._s[4147]! } + public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4148]! } + public var Group_ErrorAdminsTooMuch: String { return self._s[4149]! } + public var Stats_MessageOverview: String { return self._s[4150]! } + public var Privacy_Calls_P2PAlways: String { return self._s[4152]! } + public var Message_Sticker: String { return self._s[4153]! } + public var TwoFactorSetup_PasswordRecovery_SkipAlertTitle: String { return self._s[4154]! } + public var Conversation_Mute: String { return self._s[4157]! } + public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4158]! } + public var ContactInfo_Title: String { return self._s[4159]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4153]!, self._r[4153]!, [_1]) + return formatWithArgumentRanges(self._s[4160]!, self._r[4160]!, [_1]) } - public var Channel_Setup_TypeHeader: String { return self._s[4154]! } - public var AuthSessions_LogOut: String { return self._s[4155]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[4156]! } - public var VoiceChat_PinVideo: String { return self._s[4157]! } - public var Group_Info_Members: String { return self._s[4159]! } - public var ChatListFolderSettings_NewFolder: String { return self._s[4160]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4161]! } - public var CreatePoll_Title: String { return self._s[4162]! } - public var EditTheme_EditTitle: String { return self._s[4163]! } - public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4164]! } - public var TwoStepAuth_SetPassword: String { return self._s[4165]! } + public var Channel_Setup_TypeHeader: String { return self._s[4161]! } + public var AuthSessions_LogOut: String { return self._s[4162]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[4163]! } + public var VoiceChat_PinVideo: String { return self._s[4164]! } + public var Group_Info_Members: String { return self._s[4166]! } + public var ChatListFolderSettings_NewFolder: String { return self._s[4167]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4168]! } + public var CreatePoll_Title: String { return self._s[4169]! } + public var EditTheme_EditTitle: String { return self._s[4170]! } + public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4171]! } + public var TwoStepAuth_SetPassword: String { return self._s[4172]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4166]!, self._r[4166]!, [_0]) + return formatWithArgumentRanges(self._s[4173]!, self._r[4173]!, [_0]) } - public var BlockedUsers_Info: String { return self._s[4167]! } - public var AuthSessions_Sessions: String { return self._s[4168]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4169]! } - public var Common_ActionNotAllowedError: String { return self._s[4170]! } - public var WebPreview_GettingLinkInfo: String { return self._s[4171]! } - public var Appearance_AppIconFilledX: String { return self._s[4172]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[4173]! } - public var FeaturedStickers_OtherSection: String { return self._s[4174]! } - public var VoiceChat_RecordingStarted: String { return self._s[4175]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4176]! } - public var Profile_Username: String { return self._s[4177]! } - public var Settings_TipsUsername: String { return self._s[4178]! } - public var Appearance_RemoveTheme: String { return self._s[4179]! } - public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4180]! } - public var Message_PinnedStickerMessage: String { return self._s[4181]! } - public var AccessDenied_VideoMicrophone: String { return self._s[4182]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[4183]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[4184]! } - public var Conversation_VoiceChat: String { return self._s[4185]! } - public var VoiceChat_EditBioSuccess: String { return self._s[4186]! } - public var ImportStickerPack_LinkAvailable: String { return self._s[4187]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4188]! } - public var TwoStepAuth_Title: String { return self._s[4189]! } - public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4190]! } - public var Checkout_WebConfirmation_Title: String { return self._s[4191]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4192]! } - public var ChatListFolder_CategoryGroups: String { return self._s[4194]! } - public var Stats_GroupTopInviter_Promote: String { return self._s[4195]! } - public var Conversation_EditingPhotoPanelTitle: String { return self._s[4196]! } - public var Month_GenJuly: String { return self._s[4197]! } - public var Passport_Identity_Gender: String { return self._s[4198]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4199]! } - public var Notification_Exceptions_DeleteAll: String { return self._s[4200]! } - public var VoiceChat_StopRecording: String { return self._s[4201]! } + public var BlockedUsers_Info: String { return self._s[4174]! } + public var AuthSessions_Sessions: String { return self._s[4175]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4176]! } + public var Common_ActionNotAllowedError: String { return self._s[4177]! } + public var WebPreview_GettingLinkInfo: String { return self._s[4178]! } + public var Appearance_AppIconFilledX: String { return self._s[4179]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[4180]! } + public var FeaturedStickers_OtherSection: String { return self._s[4181]! } + public var VoiceChat_RecordingStarted: String { return self._s[4182]! } + public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4183]! } + public var Profile_Username: String { return self._s[4184]! } + public var Settings_TipsUsername: String { return self._s[4185]! } + public var Appearance_RemoveTheme: String { return self._s[4186]! } + public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4187]! } + public var Message_PinnedStickerMessage: String { return self._s[4188]! } + public var AccessDenied_VideoMicrophone: String { return self._s[4189]! } + public var WallpaperPreview_CustomColorBottomText: String { return self._s[4190]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[4191]! } + public var Conversation_VoiceChat: String { return self._s[4192]! } + public var VoiceChat_EditBioSuccess: String { return self._s[4193]! } + public var ImportStickerPack_LinkAvailable: String { return self._s[4194]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4195]! } + public var TwoStepAuth_Title: String { return self._s[4196]! } + public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4197]! } + public var Checkout_WebConfirmation_Title: String { return self._s[4198]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4199]! } + public var ChatListFolder_CategoryGroups: String { return self._s[4201]! } + public var Stats_GroupTopInviter_Promote: String { return self._s[4202]! } + public var Conversation_EditingPhotoPanelTitle: String { return self._s[4203]! } + public var Month_GenJuly: String { return self._s[4204]! } + public var Passport_Identity_Gender: String { return self._s[4205]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4206]! } + public var Notification_Exceptions_DeleteAll: String { return self._s[4207]! } + public var VoiceChat_StopRecording: String { return self._s[4208]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4202]!, self._r[4202]!, [_0]) + return formatWithArgumentRanges(self._s[4209]!, self._r[4209]!, [_0]) } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4203]!, self._r[4203]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[4210]!, self._r[4210]!, [_0, _1, _2]) } - public var Login_CodeSentSms: String { return self._s[4204]! } + public var Login_CodeSentSms: String { return self._s[4211]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4205]!, self._r[4205]!, [_0]) + return formatWithArgumentRanges(self._s[4212]!, self._r[4212]!, [_0]) } - public var Login_CallRequestState2: String { return self._s[4206]! } - public var Channel_DiscussionGroup_Header: String { return self._s[4207]! } + public var Login_CallRequestState2: String { return self._s[4213]! } + public var Channel_DiscussionGroup_Header: String { return self._s[4214]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4208]!, self._r[4208]!, [_0]) + return formatWithArgumentRanges(self._s[4215]!, self._r[4215]!, [_0]) } - public var Passport_Language_ms: String { return self._s[4209]! } - public var PeopleNearby_MakeInvisible: String { return self._s[4211]! } - public var ImportStickerPack_CreateStickerSet: String { return self._s[4213]! } - public var ChatList_Search_FilterVoice: String { return self._s[4214]! } - public var Camera_TapAndHoldForVideo: String { return self._s[4216]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4217]! } + public var Passport_Language_ms: String { return self._s[4216]! } + public var PeopleNearby_MakeInvisible: String { return self._s[4218]! } + public var ImportStickerPack_CreateStickerSet: String { return self._s[4220]! } + public var ChatList_Search_FilterVoice: String { return self._s[4221]! } + public var Camera_TapAndHoldForVideo: String { return self._s[4223]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4224]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4218]!, self._r[4218]!, [_0]) + return formatWithArgumentRanges(self._s[4225]!, self._r[4225]!, [_0]) } public func Call_VoiceChatInProgressMessageCall(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4219]!, self._r[4219]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4226]!, self._r[4226]!, [_1, _2]) } - public var Map_Locating: String { return self._s[4220]! } + public var Map_Locating: String { return self._s[4227]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4222]!, self._r[4222]!, [_0]) + return formatWithArgumentRanges(self._s[4229]!, self._r[4229]!, [_0]) } - public var Passport_Identity_TypeInternalPassport: String { return self._s[4224]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4225]! } - public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4226]! } - public var Stickers_Installed: String { return self._s[4227]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[4228]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[4229]! } - public var CallSettings_Never: String { return self._s[4231]! } - public var Channel_Setup_TypePublicHelp: String { return self._s[4232]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[4231]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4232]! } + public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4233]! } + public var Stickers_Installed: String { return self._s[4234]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[4235]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[4236]! } + public var CallSettings_Never: String { return self._s[4238]! } + public var Channel_Setup_TypePublicHelp: String { return self._s[4239]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4234]!, self._r[4234]!, [_0]) + return formatWithArgumentRanges(self._s[4241]!, self._r[4241]!, [_0]) } - public var Message_Game: String { return self._s[4235]! } - public var Call_Message: String { return self._s[4236]! } + public var Message_Game: String { return self._s[4242]! } + public var Call_Message: String { return self._s[4243]! } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4237]!, self._r[4237]!, [_1]) + return formatWithArgumentRanges(self._s[4244]!, self._r[4244]!, [_1]) } - public var ChannelIntro_Text: String { return self._s[4238]! } - public var VoiceChat_NoiseSuppressionEnabled: String { return self._s[4239]! } - public var StickerPack_Send: String { return self._s[4240]! } - public var Share_AuthDescription: String { return self._s[4241]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4242]! } - public var CallFeedback_WhatWentWrong: String { return self._s[4243]! } - public var Common_Create: String { return self._s[4246]! } - public var Passport_Language_hy: String { return self._s[4247]! } - public var CreatePoll_Explanation: String { return self._s[4248]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[4249]! } - public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4250]! } - public var PeerInfo_ButtonVoiceChat: String { return self._s[4251]! } - public var Undo_ChatClearedForBothSides: String { return self._s[4252]! } - public var DialogList_NoMessagesTitle: String { return self._s[4253]! } - public var GroupInfo_Title: String { return self._s[4255]! } + public var ChannelIntro_Text: String { return self._s[4245]! } + public var VoiceChat_NoiseSuppressionEnabled: String { return self._s[4246]! } + public var StickerPack_Send: String { return self._s[4247]! } + public var Share_AuthDescription: String { return self._s[4248]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4249]! } + public var CallFeedback_WhatWentWrong: String { return self._s[4250]! } + public var Common_Create: String { return self._s[4253]! } + public var Passport_Language_hy: String { return self._s[4254]! } + public var CreatePoll_Explanation: String { return self._s[4255]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[4256]! } + public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4257]! } + public var PeerInfo_ButtonVoiceChat: String { return self._s[4258]! } + public var Undo_ChatClearedForBothSides: String { return self._s[4259]! } + public var DialogList_NoMessagesTitle: String { return self._s[4260]! } + public var GroupInfo_Title: String { return self._s[4262]! } public func ScheduleVoiceChat_ScheduleToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4256]!, self._r[4256]!, [_0]) + return formatWithArgumentRanges(self._s[4263]!, self._r[4263]!, [_0]) } - public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4257]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[4258]! } - public var PhoneNumberHelp_Help: String { return self._s[4259]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4260]! } - public var Settings_Logout: String { return self._s[4261]! } - public var Privacy_PaymentsTitle: String { return self._s[4262]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[4263]! } - public var Tour_Text6: String { return self._s[4264]! } - public var ChatImportActivity_Title: String { return self._s[4266]! } - public var Channel_Username_Help: String { return self._s[4267]! } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4268]! } - public var AttachmentMenu_Poll: String { return self._s[4269]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4270]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4271]! } - public var Passport_DeletePassport: String { return self._s[4272]! } - public var Login_Code: String { return self._s[4273]! } - public var Notification_SecretChatScreenshot: String { return self._s[4274]! } - public var VoiceChat_AddBio: String { return self._s[4275]! } - public var Login_CodeFloodError: String { return self._s[4276]! } + public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4264]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[4265]! } + public var PhoneNumberHelp_Help: String { return self._s[4266]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4267]! } + public var Settings_Logout: String { return self._s[4268]! } + public var Privacy_PaymentsTitle: String { return self._s[4269]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[4270]! } + public var Tour_Text6: String { return self._s[4271]! } + public var ChatImportActivity_Title: String { return self._s[4273]! } + public var Channel_Username_Help: String { return self._s[4274]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4275]! } + public var AttachmentMenu_Poll: String { return self._s[4276]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4277]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4278]! } + public var Passport_DeletePassport: String { return self._s[4279]! } + public var Login_Code: String { return self._s[4280]! } + public var Notification_SecretChatScreenshot: String { return self._s[4281]! } + public var VoiceChat_AddBio: String { return self._s[4282]! } + public var Login_CodeFloodError: String { return self._s[4283]! } public func Notification_PinnedAnimationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4277]!, self._r[4277]!, [_0]) + return formatWithArgumentRanges(self._s[4284]!, self._r[4284]!, [_0]) } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4278]!, self._r[4278]!, [_0]) + return formatWithArgumentRanges(self._s[4285]!, self._r[4285]!, [_0]) } - public var Watch_Stickers_Recents: String { return self._s[4279]! } - public var Generic_ErrorMoreInfo: String { return self._s[4280]! } + public var Watch_Stickers_Recents: String { return self._s[4286]! } + public var Generic_ErrorMoreInfo: String { return self._s[4287]! } public func Call_AccountIsLoggedOnCurrentDevice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4281]!, self._r[4281]!, [_0]) - } - public var AutoDownloadSettings_DataUsage: String { return self._s[4282]! } - public var Conversation_ViewTheme: String { return self._s[4283]! } - public var Contacts_InviteSearchLabel: String { return self._s[4284]! } - public var Settings_CancelUpload: String { return self._s[4286]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[4287]! } - public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4288]!, self._r[4288]!, [_0]) } - public var ChatList_AddFolder: String { return self._s[4289]! } - public var Conversation_Location: String { return self._s[4291]! } - public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4292]! } - public var DialogList_AdLabel: String { return self._s[4293]! } - public func Time_TomorrowAt(_ _0: String) -> (String, [(Int, NSRange)]) { + public var AutoDownloadSettings_DataUsage: String { return self._s[4289]! } + public var Conversation_ViewTheme: String { return self._s[4290]! } + public var Contacts_InviteSearchLabel: String { return self._s[4291]! } + public var Settings_CancelUpload: String { return self._s[4293]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[4294]! } + public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4295]!, self._r[4295]!, [_0]) } - public var Message_InvoiceLabel: String { return self._s[4296]! } - public var Channel_TooMuchBots: String { return self._s[4297]! } + public var ChatList_AddFolder: String { return self._s[4296]! } + public var Conversation_Location: String { return self._s[4298]! } + public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4299]! } + public var DialogList_AdLabel: String { return self._s[4300]! } + public func Time_TomorrowAt(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4302]!, self._r[4302]!, [_0]) + } + public var Message_InvoiceLabel: String { return self._s[4303]! } + public var Channel_TooMuchBots: String { return self._s[4304]! } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4299]!, self._r[4299]!, [_0]) + return formatWithArgumentRanges(self._s[4306]!, self._r[4306]!, [_0]) } - public var Call_IncomingVideoCall: String { return self._s[4300]! } - public var Conversation_LiveLocation: String { return self._s[4301]! } - public var VoiceChat_AskedToSpeakHelp: String { return self._s[4302]! } - public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4303]! } - public var Passport_Identity_EditPassport: String { return self._s[4304]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[4306]! } - public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4307]! } - public var GroupInfo_Permissions_AddException: String { return self._s[4308]! } + public var Call_IncomingVideoCall: String { return self._s[4307]! } + public var Conversation_LiveLocation: String { return self._s[4308]! } + public var VoiceChat_AskedToSpeakHelp: String { return self._s[4309]! } + public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4310]! } + public var Passport_Identity_EditPassport: String { return self._s[4311]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[4313]! } + public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4314]! } + public var GroupInfo_Permissions_AddException: String { return self._s[4315]! } public func VoiceChat_RemovePeerConfirmationChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4310]!, self._r[4310]!, [_0]) + return formatWithArgumentRanges(self._s[4317]!, self._r[4317]!, [_0]) } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[4311]! } - public var Channel_MessageVideoUpdated: String { return self._s[4312]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4313]! } - public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4316]! } - public var AccessDenied_Camera: String { return self._s[4317]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[4318]! } + public var Channel_MessageVideoUpdated: String { return self._s[4319]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4320]! } + public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4323]! } + public var AccessDenied_Camera: String { return self._s[4324]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4318]!, self._r[4318]!, [_0]) + return formatWithArgumentRanges(self._s[4325]!, self._r[4325]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[4319]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[4320]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[4321]! } - public var Login_CodeExpiredError: String { return self._s[4322]! } - public var State_ConnectingToProxy: String { return self._s[4323]! } - public var TextFormat_Link: String { return self._s[4324]! } - public var Passport_Language_lv: String { return self._s[4326]! } - public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4327]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[4328]! } - public var WallpaperPreview_SwipeBottomText: String { return self._s[4329]! } - public var ProfilePhoto_SetMainVideo: String { return self._s[4330]! } - public var AutoDownloadSettings_Cellular: String { return self._s[4332]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4333]! } - public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4334]! } + public var Theme_Context_ChangeColors: String { return self._s[4326]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[4327]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[4328]! } + public var Login_CodeExpiredError: String { return self._s[4329]! } + public var State_ConnectingToProxy: String { return self._s[4330]! } + public var TextFormat_Link: String { return self._s[4331]! } + public var Passport_Language_lv: String { return self._s[4333]! } + public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4334]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[4335]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[4336]! } + public var ProfilePhoto_SetMainVideo: String { return self._s[4337]! } + public var AutoDownloadSettings_Cellular: String { return self._s[4339]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4340]! } + public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4341]! } public func Channel_AdminLog_MessageKickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4335]!, self._r[4335]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4342]!, self._r[4342]!, [_1, _2]) } - public var ChatList_EmptyChatListFilterTitle: String { return self._s[4336]! } - public var Checkout_PayNone: String { return self._s[4337]! } - public var NotificationsSound_Complete: String { return self._s[4339]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4340]! } - public var InviteLink_CreateInfo: String { return self._s[4341]! } - public var AuthSessions_DevicesTitle: String { return self._s[4342]! } + public var ChatList_EmptyChatListFilterTitle: String { return self._s[4343]! } + public var Checkout_PayNone: String { return self._s[4344]! } + public var NotificationsSound_Complete: String { return self._s[4346]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4347]! } + public var InviteLink_CreateInfo: String { return self._s[4348]! } + public var AuthSessions_DevicesTitle: String { return self._s[4349]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4343]!, self._r[4343]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4350]!, self._r[4350]!, [_0, _1]) } - public var Message_LiveLocation: String { return self._s[4344]! } - public var Watch_Suggestion_BRB: String { return self._s[4345]! } - public var Channel_BanUser_Title: String { return self._s[4346]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4347]! } - public var Conversation_Dice_u1F3C0: String { return self._s[4348]! } - public var Conversation_ClearSelfHistory: String { return self._s[4349]! } - public var ProfilePhoto_OpenGallery: String { return self._s[4350]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[4351]! } - public var Weekday_Thursday: String { return self._s[4352]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4353]! } - public var Privacy_ProfilePhoto: String { return self._s[4355]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4356]! } + public var Message_LiveLocation: String { return self._s[4351]! } + public var Watch_Suggestion_BRB: String { return self._s[4352]! } + public var Channel_BanUser_Title: String { return self._s[4353]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4354]! } + public var Conversation_Dice_u1F3C0: String { return self._s[4355]! } + public var Conversation_ClearSelfHistory: String { return self._s[4356]! } + public var ProfilePhoto_OpenGallery: String { return self._s[4357]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[4358]! } + public var Weekday_Thursday: String { return self._s[4359]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4360]! } + public var Privacy_ProfilePhoto: String { return self._s[4362]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4363]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4357]!, self._r[4357]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4364]!, self._r[4364]!, [_1, _2]) } - public var Message_Audio: String { return self._s[4358]! } - public var Conversation_Info: String { return self._s[4359]! } - public var Cache_Videos: String { return self._s[4360]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4361]! } - public var Channel_ErrorAddTooMuch: String { return self._s[4362]! } + public var Message_Audio: String { return self._s[4365]! } + public var Conversation_Info: String { return self._s[4366]! } + public var Cache_Videos: String { return self._s[4367]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4368]! } + public var Channel_ErrorAddTooMuch: String { return self._s[4369]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4363]!, self._r[4363]!, [_0]) + return formatWithArgumentRanges(self._s[4370]!, self._r[4370]!, [_0]) } - public var VoiceChat_EditBio: String { return self._s[4364]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4366]! } - public var VoiceChat_ShareScreen: String { return self._s[4369]! } - public var ScheduledMessages_Title: String { return self._s[4370]! } - public var ShareFileTip_Title: String { return self._s[4373]! } - public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4374]! } - public var ChatList_RemoveFolderConfirmation: String { return self._s[4375]! } + public var VoiceChat_EditBio: String { return self._s[4371]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4373]! } + public var VoiceChat_ShareScreen: String { return self._s[4376]! } + public var ScheduledMessages_Title: String { return self._s[4377]! } + public var ShareFileTip_Title: String { return self._s[4380]! } + public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4381]! } + public var ChatList_RemoveFolderConfirmation: String { return self._s[4382]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4376]!, self._r[4376]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4383]!, self._r[4383]!, [_1, _2]) } - public var Conversation_ContextViewStats: String { return self._s[4378]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4379]! } - public var PasscodeSettings_Title: String { return self._s[4380]! } - public var Channel_AdminLog_SendPolls: String { return self._s[4381]! } - public var LastSeen_ALongTimeAgo: String { return self._s[4382]! } + public var Conversation_ContextViewStats: String { return self._s[4385]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4386]! } + public var PasscodeSettings_Title: String { return self._s[4387]! } + public var Channel_AdminLog_SendPolls: String { return self._s[4388]! } + public var LastSeen_ALongTimeAgo: String { return self._s[4389]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4383]!, self._r[4383]!, [_1]) + return formatWithArgumentRanges(self._s[4390]!, self._r[4390]!, [_1]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4384]! } - public var ChannelInfo_FakeChannelWarning: String { return self._s[4385]! } - public var CallFeedback_VideoReasonLowQuality: String { return self._s[4386]! } - public var Conversation_PinnedPreviousMessage: String { return self._s[4387]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[4388]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[4389]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4391]! } + public var ChannelInfo_FakeChannelWarning: String { return self._s[4392]! } + public var CallFeedback_VideoReasonLowQuality: String { return self._s[4393]! } + public var Conversation_PinnedPreviousMessage: String { return self._s[4394]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[4395]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[4396]! } public func ChatList_RemovedFromFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4390]!, self._r[4390]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4397]!, self._r[4397]!, [_1, _2]) } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4391]!, self._r[4391]!, [_0]) + return formatWithArgumentRanges(self._s[4398]!, self._r[4398]!, [_0]) } - public var Passport_Identity_GenderFemale: String { return self._s[4392]! } - public var Location_ProximityNotification_DistanceKM: String { return self._s[4395]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[4396]! } + public var Passport_Identity_GenderFemale: String { return self._s[4399]! } + public var Location_ProximityNotification_DistanceKM: String { return self._s[4402]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[4403]! } public func Message_ImportedDateFormat(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4397]!, self._r[4397]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4404]!, self._r[4404]!, [_1, _2, _3]) } - public var VoiceChat_Audio: String { return self._s[4398]! } - public var SharedMedia_TitleAll: String { return self._s[4399]! } - public var Settings_Context_Logout: String { return self._s[4400]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4403]! } - public var Settings_About_Title: String { return self._s[4404]! } - public var StickerSettings_ContextHide: String { return self._s[4405]! } + public var VoiceChat_Audio: String { return self._s[4405]! } + public var SharedMedia_TitleAll: String { return self._s[4406]! } + public var Settings_Context_Logout: String { return self._s[4407]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4410]! } + public var Settings_About_Title: String { return self._s[4411]! } + public var StickerSettings_ContextHide: String { return self._s[4412]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4406]!, self._r[4406]!, [_0]) - } - public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4407]!, self._r[4407]!, [_0]) - } - public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4409]! } - public var Common_Cancel: String { return self._s[4410]! } - public var CallFeedback_Title: String { return self._s[4412]! } - public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4413]!, self._r[4413]!, [_0]) } - public var Conversation_StickerAddedToFavorites: String { return self._s[4414]! } - public var Activity_UploadingVideoMessage: String { return self._s[4416]! } - public var MediaPicker_Send: String { return self._s[4417]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4418]! } - public var Conversation_LiveLocationYou: String { return self._s[4419]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[4420]! } + public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4414]!, self._r[4414]!, [_0]) + } + public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4416]! } + public var Common_Cancel: String { return self._s[4417]! } + public var CallFeedback_Title: String { return self._s[4419]! } + public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4420]!, self._r[4420]!, [_0]) + } + public var Conversation_StickerAddedToFavorites: String { return self._s[4421]! } + public var Activity_UploadingVideoMessage: String { return self._s[4423]! } + public var MediaPicker_Send: String { return self._s[4424]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4425]! } + public var Conversation_LiveLocationYou: String { return self._s[4426]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[4427]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4422]!, self._r[4422]!, [_0]) + return formatWithArgumentRanges(self._s[4429]!, self._r[4429]!, [_0]) } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4423]!, self._r[4423]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4430]!, self._r[4430]!, [_1, _2]) } - public var Checkout_PaymentLiabilityAlert: String { return self._s[4424]! } - public var Conversation_ViewBackground: String { return self._s[4425]! } - public var ChatSettings_PrivateChats: String { return self._s[4428]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[4429]! } - public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4430]! } - public var Appearance_ThemeNight: String { return self._s[4431]! } - public var Common_Search: String { return self._s[4432]! } - public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4433]! } - public var ChangePhoneNumberNumber_Help: String { return self._s[4435]! } - public var InviteLink_QRCode_Share: String { return self._s[4436]! } - public var Stickers_SuggestAdded: String { return self._s[4438]! } + public var Checkout_PaymentLiabilityAlert: String { return self._s[4431]! } + public var Conversation_ViewBackground: String { return self._s[4432]! } + public var ChatSettings_PrivateChats: String { return self._s[4435]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[4436]! } + public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4437]! } + public var Appearance_ThemeNight: String { return self._s[4438]! } + public var Common_Search: String { return self._s[4439]! } + public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4440]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[4442]! } + public var InviteLink_QRCode_Share: String { return self._s[4443]! } + public var Stickers_SuggestAdded: String { return self._s[4445]! } public func VoiceChat_VideoParticipantsLimitExceeded(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4440]!, self._r[4440]!, [_0]) + return formatWithArgumentRanges(self._s[4447]!, self._r[4447]!, [_0]) } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4442]! } - public var Widget_UpdatedTodayAt: String { return self._s[4443]! } - public var NetworkUsageSettings_Cellular: String { return self._s[4444]! } - public var CheckoutInfo_Title: String { return self._s[4445]! } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4446]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[4447]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4449]! } + public var Widget_UpdatedTodayAt: String { return self._s[4450]! } + public var NetworkUsageSettings_Cellular: String { return self._s[4451]! } + public var CheckoutInfo_Title: String { return self._s[4452]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4453]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[4454]! } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4448]!, self._r[4448]!, [_0]) + return formatWithArgumentRanges(self._s[4455]!, self._r[4455]!, [_0]) } - public var MaskStickerSettings_Info: String { return self._s[4450]! } - public var GroupRemoved_DeleteUser: String { return self._s[4452]! } - public var Contacts_ShareTelegram: String { return self._s[4453]! } - public var Group_UpgradeNoticeText1: String { return self._s[4454]! } + public var MaskStickerSettings_Info: String { return self._s[4457]! } + public var GroupRemoved_DeleteUser: String { return self._s[4459]! } + public var Contacts_ShareTelegram: String { return self._s[4460]! } + public var Group_UpgradeNoticeText1: String { return self._s[4461]! } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4455]!, self._r[4455]!, [_1]) + return formatWithArgumentRanges(self._s[4462]!, self._r[4462]!, [_1]) } - public var PrivacyLastSeenSettings_Title: String { return self._s[4456]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[4460]! } - public var PhotoEditor_TintTool: String { return self._s[4461]! } - public var ChatImportActivity_OpenApp: String { return self._s[4463]! } - public var GroupPermission_NoSendPolls: String { return self._s[4464]! } - public var NotificationsSound_None: String { return self._s[4465]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[4463]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[4467]! } + public var PhotoEditor_TintTool: String { return self._s[4468]! } + public var ChatImportActivity_OpenApp: String { return self._s[4470]! } + public var GroupPermission_NoSendPolls: String { return self._s[4471]! } + public var NotificationsSound_None: String { return self._s[4472]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4466]!, self._r[4466]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4473]!, self._r[4473]!, [_1, "\(_2)"]) } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4469]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4476]! } public func Conversation_AutoremoveTimerSetChannel(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4471]!, self._r[4471]!, [_1]) + return formatWithArgumentRanges(self._s[4478]!, self._r[4478]!, [_1]) } - public var ExplicitContent_AlertChannel: String { return self._s[4472]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[4473]! } - public var Contacts_SortedByPresence: String { return self._s[4474]! } - public var WallpaperSearch_ColorGray: String { return self._s[4475]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4476]! } - public var Conversation_ReportSpam: String { return self._s[4477]! } - public var ChatList_Search_NoResultsFilter: String { return self._s[4480]! } - public var WallpaperSearch_ColorBlack: String { return self._s[4481]! } - public var ArchivedChats_IntroTitle3: String { return self._s[4482]! } - public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4483]! } + public var ExplicitContent_AlertChannel: String { return self._s[4479]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[4480]! } + public var Contacts_SortedByPresence: String { return self._s[4481]! } + public var WallpaperSearch_ColorGray: String { return self._s[4482]! } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4483]! } + public var Conversation_ReportSpam: String { return self._s[4484]! } + public var ChatList_Search_NoResultsFilter: String { return self._s[4487]! } + public var WallpaperSearch_ColorBlack: String { return self._s[4488]! } + public var ArchivedChats_IntroTitle3: String { return self._s[4489]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4490]! } public func VoiceChat_PeerJoinedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4484]!, self._r[4484]!, [_0]) + return formatWithArgumentRanges(self._s[4491]!, self._r[4491]!, [_0]) } - public var Conversation_DefaultRestrictedText: String { return self._s[4485]! } - public var Settings_Devices: String { return self._s[4486]! } - public var Call_AudioRouteSpeaker: String { return self._s[4487]! } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[4488]! } - public var VoiceChat_StartsIn: String { return self._s[4489]! } - public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4490]! } - public var VoiceChat_EditDescriptionTitle: String { return self._s[4492]! } - public var Passport_Address_Country: String { return self._s[4493]! } - public var Cache_MaximumCacheSize: String { return self._s[4494]! } - public var Chat_PanelHidePinnedMessages: String { return self._s[4495]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[4496]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4498]! } - public var Login_TermsOfServiceLabel: String { return self._s[4499]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[4500]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4501]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4502]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[4503]! } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[4504]! } - public var ConvertToSupergroup_Note: String { return self._s[4506]! } - public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4507]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4508]! } - public var Common_More: String { return self._s[4509]! } - public var ShareMenu_SelectChats: String { return self._s[4511]! } + public var Conversation_DefaultRestrictedText: String { return self._s[4492]! } + public var Settings_Devices: String { return self._s[4493]! } + public var Call_AudioRouteSpeaker: String { return self._s[4494]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[4495]! } + public var VoiceChat_StartsIn: String { return self._s[4496]! } + public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4497]! } + public var VoiceChat_EditDescriptionTitle: String { return self._s[4499]! } + public var Passport_Address_Country: String { return self._s[4500]! } + public var Cache_MaximumCacheSize: String { return self._s[4501]! } + public var Chat_PanelHidePinnedMessages: String { return self._s[4502]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[4503]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4505]! } + public var Login_TermsOfServiceLabel: String { return self._s[4506]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[4507]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[4508]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4509]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[4510]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[4511]! } + public var ConvertToSupergroup_Note: String { return self._s[4513]! } + public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4514]! } + public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4515]! } + public var Common_More: String { return self._s[4516]! } + public var ShareMenu_SelectChats: String { return self._s[4518]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4512]!, self._r[4512]!, [_0]) + return formatWithArgumentRanges(self._s[4519]!, self._r[4519]!, [_0]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4513]!, self._r[4513]!, [_0]) + return formatWithArgumentRanges(self._s[4520]!, self._r[4520]!, [_0]) } - public var Contacts_PermissionsKeepDisabled: String { return self._s[4515]! } - public var VoiceChat_EditBioText: String { return self._s[4516]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[4522]! } + public var VoiceChat_EditBioText: String { return self._s[4523]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4517]!, self._r[4517]!, [_0]) + return formatWithArgumentRanges(self._s[4524]!, self._r[4524]!, [_0]) } - public var WatchRemote_AlertOpen: String { return self._s[4518]! } + public var WatchRemote_AlertOpen: String { return self._s[4525]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4519]!, self._r[4519]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4526]!, self._r[4526]!, [_1, _2, _3]) } - public var Channel_Members_AddMembersHelp: String { return self._s[4520]! } - public var Shortcut_SwitchAccount: String { return self._s[4521]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4522]! } + public var Channel_Members_AddMembersHelp: String { return self._s[4527]! } + public var Shortcut_SwitchAccount: String { return self._s[4528]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4529]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4523]!, self._r[4523]!, [_0]) + return formatWithArgumentRanges(self._s[4530]!, self._r[4530]!, [_0]) } - public var Compose_NewGroupTitle: String { return self._s[4524]! } - public var DialogList_You: String { return self._s[4525]! } - public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4526]! } - public var ReportPeer_ReasonViolence: String { return self._s[4527]! } + public var Compose_NewGroupTitle: String { return self._s[4531]! } + public var DialogList_You: String { return self._s[4532]! } + public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4533]! } + public var ReportPeer_ReasonViolence: String { return self._s[4534]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4528]!, self._r[4528]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4535]!, self._r[4535]!, [_1, _2]) } - public var VoiceChat_Reconnecting: String { return self._s[4530]! } - public var KeyCommand_ScrollDown: String { return self._s[4533]! } - public var ChatSettings_DownloadInBackground: String { return self._s[4534]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4535]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[4536]! } - public var ArchivedChats_IntroText3: String { return self._s[4537]! } - public var HashtagSearch_AllChats: String { return self._s[4539]! } - public var VoiceChat_EndVoiceChat: String { return self._s[4540]! } - public var Conversation_MessageCopied: String { return self._s[4542]! } - public var Channel_Info_BlackList: String { return self._s[4543]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4544]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4545]! } - public var Paint_Neon: String { return self._s[4547]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4548]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[4549]! } - public var ImportStickerPack_CreateNewStickerSet: String { return self._s[4550]! } + public var VoiceChat_Reconnecting: String { return self._s[4537]! } + public var KeyCommand_ScrollDown: String { return self._s[4540]! } + public var ChatSettings_DownloadInBackground: String { return self._s[4541]! } + public var Wallpaper_ResetWallpapers: String { return self._s[4542]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[4543]! } + public var ArchivedChats_IntroText3: String { return self._s[4544]! } + public var HashtagSearch_AllChats: String { return self._s[4546]! } + public var VoiceChat_EndVoiceChat: String { return self._s[4547]! } + public var Conversation_MessageCopied: String { return self._s[4549]! } + public var Channel_Info_BlackList: String { return self._s[4550]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4551]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4552]! } + public var Paint_Neon: String { return self._s[4554]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4555]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[4556]! } + public var ImportStickerPack_CreateNewStickerSet: String { return self._s[4557]! } public func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4552]!, self._r[4552]!, [_0]) + return formatWithArgumentRanges(self._s[4559]!, self._r[4559]!, [_0]) } - public var Map_StopLiveLocation: String { return self._s[4553]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4554]! } - public var Channel_Username_InvalidCharacters: String { return self._s[4555]! } - public var InstantPage_Reference: String { return self._s[4557]! } - public var Group_Members_AddMembers: String { return self._s[4559]! } + public var Map_StopLiveLocation: String { return self._s[4560]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4561]! } + public var Channel_Username_InvalidCharacters: String { return self._s[4562]! } + public var InstantPage_Reference: String { return self._s[4564]! } + public var Group_Members_AddMembers: String { return self._s[4566]! } public func Conversation_ScheduledVoiceChatStartsOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4560]!, self._r[4560]!, [_0]) + return formatWithArgumentRanges(self._s[4567]!, self._r[4567]!, [_0]) } - public var ChatList_HideAction: String { return self._s[4561]! } - public var Conversation_FileICloudDrive: String { return self._s[4563]! } + public var ChatList_HideAction: String { return self._s[4568]! } + public var Conversation_FileICloudDrive: String { return self._s[4570]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4564]!, self._r[4564]!, [_1]) + return formatWithArgumentRanges(self._s[4571]!, self._r[4571]!, [_1]) } - public var Passport_PasswordReset: String { return self._s[4566]! } - public var ChatList_Context_UnhideArchive: String { return self._s[4568]! } - public var ConvertToSupergroup_HelpText: String { return self._s[4569]! } - public var Calls_AddTab: String { return self._s[4570]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4572]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4573]! } - public var Privacy_GroupsAndChannels: String { return self._s[4576]! } - public var Conversation_UsernameCopied: String { return self._s[4577]! } - public var AutoNightTheme_Disabled: String { return self._s[4578]! } - public var CreatePoll_MultipleChoice: String { return self._s[4579]! } + public var Passport_PasswordReset: String { return self._s[4573]! } + public var ChatList_Context_UnhideArchive: String { return self._s[4575]! } + public var ConvertToSupergroup_HelpText: String { return self._s[4576]! } + public var Calls_AddTab: String { return self._s[4577]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4579]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4580]! } + public var Privacy_GroupsAndChannels: String { return self._s[4583]! } + public var Conversation_UsernameCopied: String { return self._s[4584]! } + public var AutoNightTheme_Disabled: String { return self._s[4585]! } + public var CreatePoll_MultipleChoice: String { return self._s[4586]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4580]!, self._r[4580]!, [_1]) + return formatWithArgumentRanges(self._s[4587]!, self._r[4587]!, [_1]) } - public var Watch_Bot_Restart: String { return self._s[4582]! } + public var Watch_Bot_Restart: String { return self._s[4589]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4583]!, self._r[4583]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[4590]!, self._r[4590]!, ["\(_0)"]) } - public var GroupInfo_ScamGroupWarning: String { return self._s[4585]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[4586]! } - public var Appearance_PreviewIncomingText: String { return self._s[4587]! } - public var ChatSettings_WidgetSettings: String { return self._s[4588]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4589]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4591]! } - public var Stats_GroupOverview: String { return self._s[4593]! } - public var ScheduledMessages_EditTime: String { return self._s[4596]! } - public var Month_GenFebruary: String { return self._s[4597]! } - public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4598]! } - public var Stickers_ClearRecent: String { return self._s[4599]! } - public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4600]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4601]! } - public var Stats_Message_PublicShares: String { return self._s[4602]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[4592]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[4593]! } + public var Appearance_PreviewIncomingText: String { return self._s[4594]! } + public var ChatSettings_WidgetSettings: String { return self._s[4595]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4596]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4598]! } + public var Stats_GroupOverview: String { return self._s[4600]! } + public var ScheduledMessages_EditTime: String { return self._s[4603]! } + public var Month_GenFebruary: String { return self._s[4604]! } + public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4605]! } + public var Stickers_ClearRecent: String { return self._s[4606]! } + public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4607]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4608]! } + public var Stats_Message_PublicShares: String { return self._s[4609]! } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4603]!, self._r[4603]!, [_0]) + return formatWithArgumentRanges(self._s[4610]!, self._r[4610]!, [_0]) } - public var Login_TermsOfServiceSignupDecline: String { return self._s[4604]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4605]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[4606]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4607]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4609]! } - public var CreatePoll_Create: String { return self._s[4610]! } - public var ChatList_Search_FilterLinks: String { return self._s[4611]! } - public var Your_cards_number_is_invalid: String { return self._s[4612]! } - public var Month_ShortApril: String { return self._s[4613]! } - public var SocksProxySetup_UseForCalls: String { return self._s[4614]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[4615]! } - public var SocksProxySetup_Status: String { return self._s[4616]! } - public var VoiceChat_UnmuteForMe: String { return self._s[4617]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4618]! } - public var ChatListFolder_CategoryBots: String { return self._s[4619]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[4621]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4622]! } - public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4623]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[4624]! } - public var Conversation_TitleUnmute: String { return self._s[4625]! } - public var Group_Setup_TypeHeader: String { return self._s[4626]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[4611]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4612]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[4613]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4614]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4616]! } + public var CreatePoll_Create: String { return self._s[4617]! } + public var ChatList_Search_FilterLinks: String { return self._s[4618]! } + public var Your_cards_number_is_invalid: String { return self._s[4619]! } + public var Month_ShortApril: String { return self._s[4620]! } + public var SocksProxySetup_UseForCalls: String { return self._s[4621]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[4622]! } + public var SocksProxySetup_Status: String { return self._s[4623]! } + public var VoiceChat_UnmuteForMe: String { return self._s[4624]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4625]! } + public var ChatListFolder_CategoryBots: String { return self._s[4626]! } + public var Passport_FieldIdentitySelfieHelp: String { return self._s[4628]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4629]! } + public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4630]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[4631]! } + public var Conversation_TitleUnmute: String { return self._s[4632]! } + public var Group_Setup_TypeHeader: String { return self._s[4633]! } public func Conversation_ForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4627]!, self._r[4627]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4634]!, self._r[4634]!, [_0, _1]) } - public var Stats_ViewsPerPost: String { return self._s[4628]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4629]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4630]! } + public var Stats_ViewsPerPost: String { return self._s[4635]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4636]! } + public var Passport_Identity_TranslationHelp: String { return self._s[4637]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4631]!, self._r[4631]!, [_1]) + return formatWithArgumentRanges(self._s[4638]!, self._r[4638]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[4632]! } + public var GroupInfo_Administrators_Title: String { return self._s[4639]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4633]!, self._r[4633]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4640]!, self._r[4640]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4634]!, self._r[4634]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4641]!, self._r[4641]!, [_1, _2, _3]) } - public var CheckoutInfo_ShippingInfoState: String { return self._s[4635]! } - public var Passport_Language_my: String { return self._s[4637]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4638]! } - public var VoiceChat_Unpin: String { return self._s[4639]! } - public var Map_PlacesNearby: String { return self._s[4640]! } - public var Channel_About_Help: String { return self._s[4641]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[4642]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[4643]! } - public var Channel_Username_Title: String { return self._s[4644]! } - public var Activity_RecordingVideoMessage: String { return self._s[4645]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[4642]! } + public var Passport_Language_my: String { return self._s[4644]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4645]! } + public var VoiceChat_Unpin: String { return self._s[4646]! } + public var Map_PlacesNearby: String { return self._s[4647]! } + public var Channel_About_Help: String { return self._s[4648]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[4649]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[4650]! } + public var Channel_Username_Title: String { return self._s[4651]! } + public var Activity_RecordingVideoMessage: String { return self._s[4652]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4646]!, self._r[4646]!, [_0]) + return formatWithArgumentRanges(self._s[4653]!, self._r[4653]!, [_0]) } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[4647]! } - public var Passport_DiscardMessageDescription: String { return self._s[4648]! } - public var Conversation_LinkDialogOpen: String { return self._s[4649]! } - public var ChatList_Context_HideArchive: String { return self._s[4650]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[4654]! } + public var Passport_DiscardMessageDescription: String { return self._s[4655]! } + public var Conversation_LinkDialogOpen: String { return self._s[4656]! } + public var ChatList_Context_HideArchive: String { return self._s[4657]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4651]!, self._r[4651]!, [_0]) + return formatWithArgumentRanges(self._s[4658]!, self._r[4658]!, [_0]) } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4652]! } - public var Conversation_Admin: String { return self._s[4653]! } - public var DialogList_TabTitle: String { return self._s[4654]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4659]! } + public var Conversation_Admin: String { return self._s[4660]! } + public var DialogList_TabTitle: String { return self._s[4661]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4655]!, self._r[4655]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4662]!, self._r[4662]!, [_1, _2]) } - public var Notifications_PermissionsUnreachableText: String { return self._s[4656]! } - public var Passport_Identity_GenderMale: String { return self._s[4658]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[4663]! } + public var Passport_Identity_GenderMale: String { return self._s[4665]! } public func VoiceChat_EditTitleSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4660]!, self._r[4660]!, [_0]) + return formatWithArgumentRanges(self._s[4667]!, self._r[4667]!, [_0]) } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4661]! } - public var PhoneNumberHelp_Alert: String { return self._s[4662]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4663]! } - public var Notifications_InAppNotifications: String { return self._s[4664]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4668]! } + public var PhoneNumberHelp_Alert: String { return self._s[4669]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4670]! } + public var Notifications_InAppNotifications: String { return self._s[4671]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4665]!, self._r[4665]!, [_0]) + return formatWithArgumentRanges(self._s[4672]!, self._r[4672]!, [_0]) } - public var Notification_VideoCallOutgoing: String { return self._s[4666]! } - public var Login_InvalidCodeError: String { return self._s[4667]! } - public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4668]! } + public var Notification_VideoCallOutgoing: String { return self._s[4673]! } + public var Login_InvalidCodeError: String { return self._s[4674]! } + public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4675]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4670]!, self._r[4670]!, [_0]) + return formatWithArgumentRanges(self._s[4677]!, self._r[4677]!, [_0]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4671]! } - public var ReportPeer_Report: String { return self._s[4672]! } - public var Camera_FlashOff: String { return self._s[4675]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4678]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4678]! } + public var ReportPeer_Report: String { return self._s[4679]! } + public var Camera_FlashOff: String { return self._s[4682]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4685]! } public func Notification_VoiceChatScheduledTomorrow(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4679]!, self._r[4679]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4686]!, self._r[4686]!, [_1, _2]) } - public var PrivacyPolicy_DeclineTitle: String { return self._s[4682]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4683]! } - public var Passport_FieldEmail: String { return self._s[4684]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[4689]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4690]! } + public var Passport_FieldEmail: String { return self._s[4691]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4685]!, self._r[4685]!, [_1]) + return formatWithArgumentRanges(self._s[4692]!, self._r[4692]!, [_1]) } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[4686]! } - public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4687]! } - public var Group_OwnershipTransfer_Title: String { return self._s[4688]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[4689]! } - public var Login_PhoneNumberHelp: String { return self._s[4691]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4692]! } - public var Conversation_PinnedQuiz: String { return self._s[4693]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[4694]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4695]! } - public var Group_MessagePhotoUpdated: String { return self._s[4696]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[4697]! } - public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4698]! } - public var Passport_Identity_Translations: String { return self._s[4700]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4701]! } - public var ChannelInfo_DeleteChannel: String { return self._s[4703]! } - public var PasscodeSettings_HelpBottom: String { return self._s[4704]! } - public var Channel_Members_AddMembers: String { return self._s[4705]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[4706]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4708]! } - public var Conversation_HoldForAudio: String { return self._s[4709]! } - public var Media_LimitedAccessChangeSettings: String { return self._s[4711]! } - public var Watch_LastSeen_Lately: String { return self._s[4712]! } - public var ChatList_Context_MarkAsRead: String { return self._s[4713]! } - public var Conversation_PinnedMessage: String { return self._s[4714]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4715]! } - public var VoiceChat_StopRecordingStop: String { return self._s[4717]! } - public var Passport_UpdateRequiredError: String { return self._s[4718]! } - public var PrivacySettings_Passcode: String { return self._s[4719]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[4693]! } + public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4694]! } + public var Group_OwnershipTransfer_Title: String { return self._s[4695]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[4696]! } + public var Login_PhoneNumberHelp: String { return self._s[4698]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4699]! } + public var Conversation_PinnedQuiz: String { return self._s[4700]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[4701]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4702]! } + public var Group_MessagePhotoUpdated: String { return self._s[4703]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[4704]! } + public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4705]! } + public var Passport_Identity_Translations: String { return self._s[4707]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4708]! } + public var ChannelInfo_DeleteChannel: String { return self._s[4710]! } + public var PasscodeSettings_HelpBottom: String { return self._s[4711]! } + public var Channel_Members_AddMembers: String { return self._s[4712]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[4713]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4715]! } + public var Conversation_HoldForAudio: String { return self._s[4716]! } + public var Media_LimitedAccessChangeSettings: String { return self._s[4718]! } + public var Watch_LastSeen_Lately: String { return self._s[4719]! } + public var ChatList_Context_MarkAsRead: String { return self._s[4720]! } + public var Conversation_PinnedMessage: String { return self._s[4721]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4722]! } + public var VoiceChat_StopRecordingStop: String { return self._s[4724]! } + public var Passport_UpdateRequiredError: String { return self._s[4725]! } + public var PrivacySettings_Passcode: String { return self._s[4726]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4720]!, self._r[4720]!, [_0]) + return formatWithArgumentRanges(self._s[4727]!, self._r[4727]!, [_0]) } - public var AutoNightTheme_NotAvailable: String { return self._s[4721]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[4722]! } - public var VoiceOver_Common_On: String { return self._s[4723]! } - public var LoginPassword_InvalidPasswordError: String { return self._s[4724]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4725]! } - public var Channel_SignMessages_Help: String { return self._s[4726]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4727]! } - public var Conversation_TitleNoComments: String { return self._s[4728]! } - public var MediaPicker_LivePhotoDescription: String { return self._s[4729]! } - public var GroupInfo_Permissions: String { return self._s[4730]! } - public var GroupPermission_NoSendLinks: String { return self._s[4733]! } + public var AutoNightTheme_NotAvailable: String { return self._s[4728]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[4729]! } + public var VoiceOver_Common_On: String { return self._s[4730]! } + public var LoginPassword_InvalidPasswordError: String { return self._s[4731]! } + public var ChatListFolder_IncludedSectionHeader: String { return self._s[4732]! } + public var Channel_SignMessages_Help: String { return self._s[4733]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4734]! } + public var Conversation_TitleNoComments: String { return self._s[4735]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[4736]! } + public var GroupInfo_Permissions: String { return self._s[4737]! } + public var GroupPermission_NoSendLinks: String { return self._s[4740]! } public func Conversation_ScheduledVoiceChatStartsTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4734]!, self._r[4734]!, [_0]) + return formatWithArgumentRanges(self._s[4741]!, self._r[4741]!, [_0]) } - public var Passport_Identity_ResidenceCountry: String { return self._s[4735]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[4737]! } - public var ChatList_ArchiveAction: String { return self._s[4738]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[4742]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[4744]! } + public var ChatList_ArchiveAction: String { return self._s[4745]! } public func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4739]!, self._r[4739]!, [_0]) + return formatWithArgumentRanges(self._s[4746]!, self._r[4746]!, [_0]) } - public var GroupInfo_GroupHistory: String { return self._s[4740]! } + public var GroupInfo_GroupHistory: String { return self._s[4747]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4742]!, self._r[4742]!, [_0]) + return formatWithArgumentRanges(self._s[4749]!, self._r[4749]!, [_0]) } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4744]! } - public var Channel_Info_Banned: String { return self._s[4745]! } - public var Paint_RecentStickers: String { return self._s[4746]! } - public var VoiceOver_MessageContextSend: String { return self._s[4747]! } - public var Group_ErrorNotMutualContact: String { return self._s[4748]! } - public var ReportPeer_ReasonOther: String { return self._s[4750]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4751]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4753]! } - public var KeyCommand_Find: String { return self._s[4754]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4751]! } + public var Channel_Info_Banned: String { return self._s[4752]! } + public var Paint_RecentStickers: String { return self._s[4753]! } + public var VoiceOver_MessageContextSend: String { return self._s[4754]! } + public var Group_ErrorNotMutualContact: String { return self._s[4755]! } + public var ReportPeer_ReasonOther: String { return self._s[4757]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4758]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4760]! } + public var KeyCommand_Find: String { return self._s[4761]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4755]!, self._r[4755]!, [_0]) + return formatWithArgumentRanges(self._s[4762]!, self._r[4762]!, [_0]) } - public var ChatList_Context_Unmute: String { return self._s[4756]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4757]! } - public var Stickers_GroupStickersHelp: String { return self._s[4758]! } - public var Checkout_Title: String { return self._s[4759]! } - public var Activity_RecordingAudio: String { return self._s[4760]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4761]! } - public var BlockedUsers_BlockTitle: String { return self._s[4762]! } - public var DialogList_SavedMessagesHelp: String { return self._s[4764]! } - public var Calls_All: String { return self._s[4765]! } - public var Settings_FAQ_Button: String { return self._s[4767]! } - public var Conversation_Dice_u1F3B0: String { return self._s[4769]! } + public var ChatList_Context_Unmute: String { return self._s[4763]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4764]! } + public var Stickers_GroupStickersHelp: String { return self._s[4765]! } + public var Checkout_Title: String { return self._s[4766]! } + public var Activity_RecordingAudio: String { return self._s[4767]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4768]! } + public var BlockedUsers_BlockTitle: String { return self._s[4769]! } + public var DialogList_SavedMessagesHelp: String { return self._s[4771]! } + public var Calls_All: String { return self._s[4772]! } + public var Settings_FAQ_Button: String { return self._s[4774]! } + public var Conversation_Dice_u1F3B0: String { return self._s[4776]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4770]!, self._r[4770]!, [_0]) + return formatWithArgumentRanges(self._s[4777]!, self._r[4777]!, [_0]) } - public var Conversation_ReportGroupLocation: String { return self._s[4771]! } - public var Passport_Scans_Upload: String { return self._s[4772]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4774]! } - public var ChatList_UnarchiveAction: String { return self._s[4775]! } - public var Stats_GroupTopInviter_History: String { return self._s[4776]! } - public var GroupInfo_Permissions_Title: String { return self._s[4777]! } - public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4778]! } - public var Passport_Language_el: String { return self._s[4779]! } - public var Channel_DiscussionMessageUnavailable: String { return self._s[4780]! } + public var Conversation_ReportGroupLocation: String { return self._s[4778]! } + public var Passport_Scans_Upload: String { return self._s[4779]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4781]! } + public var ChatList_UnarchiveAction: String { return self._s[4782]! } + public var Stats_GroupTopInviter_History: String { return self._s[4783]! } + public var GroupInfo_Permissions_Title: String { return self._s[4784]! } + public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4785]! } + public var Passport_Language_el: String { return self._s[4786]! } + public var Channel_DiscussionMessageUnavailable: String { return self._s[4787]! } public func UserInfo_ContactForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4781]!, self._r[4781]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4788]!, self._r[4788]!, [_0, _1]) } - public var GroupInfo_ActionPromote: String { return self._s[4782]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4783]! } - public var Media_LimitedAccessSelectMore: String { return self._s[4784]! } + public var GroupInfo_ActionPromote: String { return self._s[4789]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4790]! } + public var Media_LimitedAccessSelectMore: String { return self._s[4791]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4785]!, self._r[4785]!, [_0]) + return formatWithArgumentRanges(self._s[4792]!, self._r[4792]!, [_0]) } - public var VoiceOver_Chat_Reply: String { return self._s[4786]! } - public var Month_GenMay: String { return self._s[4787]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4788]! } - public var Chat_PsaTooltip_covid: String { return self._s[4789]! } - public var Watch_Suggestion_CantTalk: String { return self._s[4790]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4791]! } - public var AppUpgrade_Running: String { return self._s[4792]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4795]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4796]! } - public var SharedMedia_EmptyText: String { return self._s[4797]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[4798]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4799]! } - public var Message_PinnedGame: String { return self._s[4800]! } - public var KeyCommand_SearchInChat: String { return self._s[4801]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[4802]! } - public var ChatList_Search_FilterMedia: String { return self._s[4803]! } - public var Message_PinnedAudioMessage: String { return self._s[4804]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[4806]! } + public var VoiceOver_Chat_Reply: String { return self._s[4793]! } + public var Month_GenMay: String { return self._s[4794]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4795]! } + public var Chat_PsaTooltip_covid: String { return self._s[4796]! } + public var Watch_Suggestion_CantTalk: String { return self._s[4797]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4798]! } + public var AppUpgrade_Running: String { return self._s[4799]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4802]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4803]! } + public var SharedMedia_EmptyText: String { return self._s[4804]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[4805]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4806]! } + public var Message_PinnedGame: String { return self._s[4807]! } + public var KeyCommand_SearchInChat: String { return self._s[4808]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[4809]! } + public var ChatList_Search_FilterMedia: String { return self._s[4810]! } + public var Message_PinnedAudioMessage: String { return self._s[4811]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[4813]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4807]!, self._r[4807]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4814]!, self._r[4814]!, [_1, _2]) } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4808]! } - public var InviteLink_Create: String { return self._s[4809]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4815]! } + public var InviteLink_Create: String { return self._s[4816]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4810]!, self._r[4810]!, [_0]) + return formatWithArgumentRanges(self._s[4817]!, self._r[4817]!, [_0]) } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4811]!, self._r[4811]!, [_0]) + return formatWithArgumentRanges(self._s[4818]!, self._r[4818]!, [_0]) } - public var Settings_AddAccount: String { return self._s[4812]! } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4813]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4814]! } - public var Channel_JoinChannel: String { return self._s[4815]! } - public var Watch_UserInfo_Unblock: String { return self._s[4816]! } - public var PhoneLabel_Title: String { return self._s[4817]! } - public var VoiceChat_EditPermissions: String { return self._s[4819]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[4820]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4821]! } + public var Settings_AddAccount: String { return self._s[4819]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4820]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4821]! } + public var Channel_JoinChannel: String { return self._s[4822]! } + public var Watch_UserInfo_Unblock: String { return self._s[4823]! } + public var PhoneLabel_Title: String { return self._s[4824]! } + public var VoiceChat_EditPermissions: String { return self._s[4826]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[4827]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4828]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4822]!, self._r[4822]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[4829]!, self._r[4829]!, [_1, _2, _3, _4, _5, _6]) } - public var Channel_AddBotErrorHaveRights: String { return self._s[4823]! } - public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4824]! } - public var DialogList_EncryptionProcessing: String { return self._s[4825]! } - public var ChatList_Search_FilterChats: String { return self._s[4826]! } - public var WatchRemote_NotificationText: String { return self._s[4827]! } - public var EditTheme_ChangeColors: String { return self._s[4829]! } - public var GroupRemoved_ViewUserInfo: String { return self._s[4830]! } - public var CallSettings_OnMobile: String { return self._s[4832]! } - public var Month_ShortFebruary: String { return self._s[4834]! } - public var VoiceOver_MessageContextReply: String { return self._s[4835]! } - public var AutoremoveSetup_TimerValueNever: String { return self._s[4836]! } - public var Group_Location_ChangeLocation: String { return self._s[4838]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[4830]! } + public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4831]! } + public var DialogList_EncryptionProcessing: String { return self._s[4832]! } + public var ChatList_Search_FilterChats: String { return self._s[4833]! } + public var WatchRemote_NotificationText: String { return self._s[4834]! } + public var EditTheme_ChangeColors: String { return self._s[4836]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[4837]! } + public var CallSettings_OnMobile: String { return self._s[4839]! } + public var Month_ShortFebruary: String { return self._s[4841]! } + public var VoiceOver_MessageContextReply: String { return self._s[4842]! } + public var AutoremoveSetup_TimerValueNever: String { return self._s[4843]! } + public var Group_Location_ChangeLocation: String { return self._s[4845]! } public func PUSH_VIDEO_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4839]!, self._r[4839]!, [_1]) + return formatWithArgumentRanges(self._s[4846]!, self._r[4846]!, [_1]) } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4840]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[4841]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4842]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4847]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[4848]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4849]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4844]!, self._r[4844]!, [_0]) + return formatWithArgumentRanges(self._s[4851]!, self._r[4851]!, [_0]) } - public var PhotoEditor_WarmthTool: String { return self._s[4845]! } - public var Login_InfoAvatarPhoto: String { return self._s[4846]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4847]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4848]! } - public var Map_PlacesInThisArea: String { return self._s[4849]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[4850]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[4851]! } + public var PhotoEditor_WarmthTool: String { return self._s[4852]! } + public var Login_InfoAvatarPhoto: String { return self._s[4853]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4854]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4855]! } + public var Map_PlacesInThisArea: String { return self._s[4856]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[4857]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[4858]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4852]!, self._r[4852]!, [_1]) - } - public var PeerInfo_ReportProfileVideo: String { return self._s[4853]! } - public var ShareMenu_Send: String { return self._s[4854]! } - public var Username_InvalidStartsWithNumber: String { return self._s[4855]! } - public func Channel_AdminLog_StartedVoiceChat(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4856]!, self._r[4856]!, [_1]) - } - public var Appearance_AppIconClassicX: String { return self._s[4857]! } - public var Report_Report: String { return self._s[4858]! } - public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4859]!, self._r[4859]!, [_1]) } - public var Conversation_StopPoll: String { return self._s[4860]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4862]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[4863]! } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4864]! } - public var Conversation_Timer_Title: String { return self._s[4865]! } - public var Common_Next: String { return self._s[4866]! } - public var Notification_Exceptions_NewException: String { return self._s[4867]! } + public var PeerInfo_ReportProfileVideo: String { return self._s[4860]! } + public var ShareMenu_Send: String { return self._s[4861]! } + public var Username_InvalidStartsWithNumber: String { return self._s[4862]! } + public func Channel_AdminLog_StartedVoiceChat(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4863]!, self._r[4863]!, [_1]) + } + public var Appearance_AppIconClassicX: String { return self._s[4864]! } + public var Report_Report: String { return self._s[4865]! } + public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4866]!, self._r[4866]!, [_1]) + } + public var Conversation_StopPoll: String { return self._s[4867]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4869]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[4870]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4871]! } + public var Conversation_Timer_Title: String { return self._s[4872]! } + public var Common_Next: String { return self._s[4873]! } + public var Notification_Exceptions_NewException: String { return self._s[4874]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4868]!, self._r[4868]!, [_0]) + return formatWithArgumentRanges(self._s[4875]!, self._r[4875]!, [_0]) } - public var AccessDenied_CallMicrophone: String { return self._s[4869]! } - public var VoiceChat_UnmutePeer: String { return self._s[4870]! } - public var ChatImportActivity_Retry: String { return self._s[4871]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4872]! } - public var ChangePhoneNumberCode_Help: String { return self._s[4873]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4874]! } - public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4875]! } - public var BlockedUsers_LeavePrefix: String { return self._s[4876]! } + public var AccessDenied_CallMicrophone: String { return self._s[4876]! } + public var VoiceChat_UnmutePeer: String { return self._s[4877]! } + public var ChatImportActivity_Retry: String { return self._s[4878]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4879]! } + public var ChangePhoneNumberCode_Help: String { return self._s[4880]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4881]! } + public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4882]! } + public var BlockedUsers_LeavePrefix: String { return self._s[4883]! } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4877]!, self._r[4877]!, [_0]) + return formatWithArgumentRanges(self._s[4884]!, self._r[4884]!, [_0]) } - public var Group_About_Help: String { return self._s[4878]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4879]! } - public var Tour_Title3: String { return self._s[4880]! } - public var Watch_Conversation_Unblock: String { return self._s[4881]! } - public var Watch_UserInfo_Block: String { return self._s[4882]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[4883]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[4884]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4885]! } - public var TextFormat_AddLinkTitle: String { return self._s[4886]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4887]! } + public var Group_About_Help: String { return self._s[4885]! } + public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4886]! } + public var Tour_Title3: String { return self._s[4887]! } + public var Watch_Conversation_Unblock: String { return self._s[4888]! } + public var Watch_UserInfo_Block: String { return self._s[4889]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[4890]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[4891]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4892]! } + public var TextFormat_AddLinkTitle: String { return self._s[4893]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4894]! } public func Notification_VoiceChatScheduled(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4888]!, self._r[4888]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4895]!, self._r[4895]!, [_1, _2]) } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4889]! } - public var FastTwoStepSetup_PasswordSection: String { return self._s[4891]! } - public var Compose_ChannelMembers: String { return self._s[4892]! } - public var Conversation_ForwardTitle: String { return self._s[4893]! } - public var Conversation_PinnedPoll: String { return self._s[4896]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4896]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[4898]! } + public var Compose_ChannelMembers: String { return self._s[4899]! } + public var Conversation_ForwardTitle: String { return self._s[4900]! } + public var Conversation_PinnedPoll: String { return self._s[4903]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4897]!, self._r[4897]!, [_0]) + return formatWithArgumentRanges(self._s[4904]!, self._r[4904]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4898]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4900]! } - public var Stats_Overview: String { return self._s[4901]! } - public var Map_HomeAndWorkTitle: String { return self._s[4902]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4905]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4907]! } + public var Stats_Overview: String { return self._s[4908]! } + public var Map_HomeAndWorkTitle: String { return self._s[4909]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4903]!, self._r[4903]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4910]!, self._r[4910]!, [_1, _2, _3]) } - public var Passport_Address_CityPlaceholder: String { return self._s[4904]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4905]! } - public var Privacy_PhoneNumber: String { return self._s[4906]! } - public var ChatList_Search_FilterFiles: String { return self._s[4907]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4908]! } - public var ChannelIntro_CreateChannel: String { return self._s[4909]! } - public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4910]! } + public var Passport_Address_CityPlaceholder: String { return self._s[4911]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4912]! } + public var Privacy_PhoneNumber: String { return self._s[4913]! } + public var ChatList_Search_FilterFiles: String { return self._s[4914]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4915]! } + public var ChannelIntro_CreateChannel: String { return self._s[4916]! } + public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4917]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4911]!, self._r[4911]!, [_0]) + return formatWithArgumentRanges(self._s[4918]!, self._r[4918]!, [_0]) } - public var Weekday_ShortMonday: String { return self._s[4912]! } - public var Passport_Language_ar: String { return self._s[4914]! } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4915]! } - public var TwoFactorSetup_Done_Title: String { return self._s[4916]! } - public var Calls_RatingFeedback: String { return self._s[4917]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4918]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[4921]! } + public var Weekday_ShortMonday: String { return self._s[4919]! } + public var Passport_Language_ar: String { return self._s[4921]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4922]! } + public var TwoFactorSetup_Done_Title: String { return self._s[4923]! } + public var Calls_RatingFeedback: String { return self._s[4924]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4925]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[4928]! } public func VoiceOver_SelfDestructTimerOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4922]!, self._r[4922]!, [_0]) + return formatWithArgumentRanges(self._s[4929]!, self._r[4929]!, [_0]) } - public var Watch_Compose_Send: String { return self._s[4923]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[4924]! } - public var WebSearch_RecentSectionClear: String { return self._s[4925]! } + public var Watch_Compose_Send: String { return self._s[4930]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[4931]! } + public var WebSearch_RecentSectionClear: String { return self._s[4932]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4926]!, self._r[4926]!, [_0]) + return formatWithArgumentRanges(self._s[4933]!, self._r[4933]!, [_0]) } - public var WallpaperSearch_ColorTeal: String { return self._s[4927]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4928]! } - public var Permissions_ContactsTitle_v0: String { return self._s[4929]! } - public var Checkout_PasswordEntry_Pay: String { return self._s[4931]! } - public var Settings_SavedMessages: String { return self._s[4932]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4933]! } - public var Month_ShortMarch: String { return self._s[4934]! } - public var Message_Location: String { return self._s[4935]! } + public var WallpaperSearch_ColorTeal: String { return self._s[4934]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4935]! } + public var Permissions_ContactsTitle_v0: String { return self._s[4936]! } + public var Checkout_PasswordEntry_Pay: String { return self._s[4938]! } + public var Settings_SavedMessages: String { return self._s[4939]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4940]! } + public var Month_ShortMarch: String { return self._s[4941]! } + public var Message_Location: String { return self._s[4942]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4936]!, self._r[4936]!, [_1]) + return formatWithArgumentRanges(self._s[4943]!, self._r[4943]!, [_1]) } public func Channel_AdminLog_MessageRemovedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4937]!, self._r[4937]!, [_1]) + return formatWithArgumentRanges(self._s[4944]!, self._r[4944]!, [_1]) } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4938]!, self._r[4938]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4945]!, self._r[4945]!, [_1, _2]) } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[4940]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[4947]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4941]!, self._r[4941]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4948]!, self._r[4948]!, [_1, _2]) } - public var GroupPermission_NoSendMedia: String { return self._s[4942]! } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[4943]! } - public var SharedMedia_CategoryDocs: String { return self._s[4944]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[4945]! } - public var Paint_Framed: String { return self._s[4946]! } - public var Channel_Setup_LinkTypePublic: String { return self._s[4947]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4948]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[4949]! } + public var GroupPermission_NoSendMedia: String { return self._s[4949]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[4950]! } + public var SharedMedia_CategoryDocs: String { return self._s[4951]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[4952]! } + public var Paint_Framed: String { return self._s[4953]! } + public var Channel_Setup_LinkTypePublic: String { return self._s[4954]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4955]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[4956]! } public func ChatImport_SelectionConfirmationUserWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4950]!, self._r[4950]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4957]!, self._r[4957]!, [_1, _2]) } - public var Channel_SignMessages: String { return self._s[4951]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[4952]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4953]! } + public var TwoStepAuth_RecoveryUnavailableResetAction: String { return self._s[4958]! } + public var Channel_SignMessages: String { return self._s[4959]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[4960]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4961]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4954]!, self._r[4954]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4962]!, self._r[4962]!, [_1, _2]) } - public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4955]! } - public var ImportStickerPack_ChooseName: String { return self._s[4956]! } - public var GroupInfo_UpgradeButton: String { return self._s[4957]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4958]! } + public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4963]! } + public var ImportStickerPack_ChooseName: String { return self._s[4964]! } + public var GroupInfo_UpgradeButton: String { return self._s[4965]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4966]! } public func Conversation_ScheduledVoiceChatStartsTomorrowShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4959]!, self._r[4959]!, [_0]) + return formatWithArgumentRanges(self._s[4967]!, self._r[4967]!, [_0]) } - public var AutoDownloadSettings_Files: String { return self._s[4960]! } + public var AutoDownloadSettings_Files: String { return self._s[4968]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4961]!, self._r[4961]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4969]!, self._r[4969]!, [_0, _1]) } - public var Login_SendCodeViaSms: String { return self._s[4963]! } - public var Update_UpdateApp: String { return self._s[4964]! } - public var Channel_Setup_TypePublic: String { return self._s[4965]! } - public var Watch_Compose_CreateMessage: String { return self._s[4966]! } + public var Login_SendCodeViaSms: String { return self._s[4971]! } + public var Update_UpdateApp: String { return self._s[4972]! } + public var Channel_Setup_TypePublic: String { return self._s[4973]! } + public var Watch_Compose_CreateMessage: String { return self._s[4974]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4967]!, self._r[4967]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4975]!, self._r[4975]!, [_1, _2, _3]) } - public var StickerPacksSettings_ManagingHelp: String { return self._s[4968]! } - public var VoiceOver_Chat_Video: String { return self._s[4969]! } - public var Forward_ChannelReadOnly: String { return self._s[4970]! } - public var StickerPack_HideStickers: String { return self._s[4971]! } - public var ChatListFolder_NameContacts: String { return self._s[4972]! } - public var Profile_BotInfo: String { return self._s[4973]! } - public var Document_TargetConfirmationFormat: String { return self._s[4974]! } - public var GroupInfo_InviteByLink: String { return self._s[4975]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4976]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[4977]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[4978]! } - public var Passport_NotLoggedInMessage: String { return self._s[4979]! } - public var Conversation_StopQuizConfirmation: String { return self._s[4980]! } - public var Checkout_PaymentMethod: String { return self._s[4981]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[4986]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4987]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4988]! } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4989]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4990]! } - public var Conversation_GigagroupDescription: String { return self._s[4991]! } - public var Camera_Title: String { return self._s[4992]! } - public var Map_Directions: String { return self._s[4993]! } - public var Stats_MessagePublicForwardsTitle: String { return self._s[4995]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4996]! } - public var Profile_EncryptionKey: String { return self._s[4997]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[4976]! } + public var VoiceOver_Chat_Video: String { return self._s[4977]! } + public var Forward_ChannelReadOnly: String { return self._s[4978]! } + public var StickerPack_HideStickers: String { return self._s[4979]! } + public var ChatListFolder_NameContacts: String { return self._s[4980]! } + public var Profile_BotInfo: String { return self._s[4981]! } + public var Document_TargetConfirmationFormat: String { return self._s[4982]! } + public var GroupInfo_InviteByLink: String { return self._s[4983]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4984]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[4985]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[4986]! } + public var Passport_NotLoggedInMessage: String { return self._s[4987]! } + public var Conversation_StopQuizConfirmation: String { return self._s[4988]! } + public var Checkout_PaymentMethod: String { return self._s[4989]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[4994]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4995]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4996]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4997]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4998]! } + public var Conversation_GigagroupDescription: String { return self._s[4999]! } + public var Camera_Title: String { return self._s[5000]! } + public var Map_Directions: String { return self._s[5001]! } + public var Stats_MessagePublicForwardsTitle: String { return self._s[5003]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[5004]! } + public var Profile_EncryptionKey: String { return self._s[5005]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4998]!, self._r[4998]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[5006]!, self._r[5006]!, [_1, "\(_2)"]) } - public var VoiceChat_VideoPreviewShareCamera: String { return self._s[4999]! } + public var VoiceChat_VideoPreviewShareCamera: String { return self._s[5007]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5000]!, self._r[5000]!, [_0, _1]) + return formatWithArgumentRanges(self._s[5008]!, self._r[5008]!, [_0, _1]) } - public var Passport_Identity_TypePassport: String { return self._s[5001]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[5003]! } - public var Common_No: String { return self._s[5004]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[5005]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[5006]! } - public var Settings_AboutEmpty: String { return self._s[5007]! } - public var TwoStepAuth_FloodError: String { return self._s[5009]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[5010]! } + public var Passport_Identity_TypePassport: String { return self._s[5009]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[5011]! } + public var Common_No: String { return self._s[5012]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[5013]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[5014]! } + public var Settings_AboutEmpty: String { return self._s[5015]! } + public var TwoStepAuth_FloodError: String { return self._s[5017]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[5018]! } public func Notification_VoiceChatScheduledChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5011]!, self._r[5011]!, [_0]) + return formatWithArgumentRanges(self._s[5019]!, self._r[5019]!, [_0]) } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5013]!, self._r[5013]!, [_1]) + return formatWithArgumentRanges(self._s[5021]!, self._r[5021]!, [_1]) } - public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[5016]! } - public var Conversation_Edit: String { return self._s[5017]! } - public var CheckoutInfo_SaveInfo: String { return self._s[5019]! } - public var VoiceOver_Chat_AnonymousPoll: String { return self._s[5020]! } - public var Call_CameraTooltip: String { return self._s[5022]! } - public var InstantPage_FeedbackButtonShort: String { return self._s[5023]! } - public var Contacts_InviteToTelegram: String { return self._s[5024]! } - public var Notifications_ResetAllNotifications: String { return self._s[5025]! } - public var Calls_NewCall: String { return self._s[5026]! } - public var VoiceOver_Chat_Music: String { return self._s[5029]! } - public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[5030]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[5031]! } - public var Channel_Edit_AboutItem: String { return self._s[5032]! } - public var Message_VideoExpired: String { return self._s[5033]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[5034]! } - public var Settings_TryEnterPassword: String { return self._s[5035]! } + public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[5024]! } + public var Conversation_Edit: String { return self._s[5025]! } + public var CheckoutInfo_SaveInfo: String { return self._s[5027]! } + public var VoiceOver_Chat_AnonymousPoll: String { return self._s[5028]! } + public var Call_CameraTooltip: String { return self._s[5030]! } + public var InstantPage_FeedbackButtonShort: String { return self._s[5031]! } + public var Contacts_InviteToTelegram: String { return self._s[5032]! } + public var Notifications_ResetAllNotifications: String { return self._s[5033]! } + public var Calls_NewCall: String { return self._s[5034]! } + public var VoiceOver_Chat_Music: String { return self._s[5037]! } + public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[5038]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[5039]! } + public var Channel_Edit_AboutItem: String { return self._s[5040]! } + public var Message_VideoExpired: String { return self._s[5041]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[5042]! } + public var Settings_TryEnterPassword: String { return self._s[5043]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5036]!, self._r[5036]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5044]!, self._r[5044]!, [_1, _2]) } - public var NotificationsSound_Input: String { return self._s[5038]! } - public var Notifications_ClassicTones: String { return self._s[5039]! } - public var Conversation_StatusTyping: String { return self._s[5040]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[5041]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[5042]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[5043]! } - public var Conversation_MessageLeaveComment: String { return self._s[5044]! } - public var UserInfo_TapToCall: String { return self._s[5045]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[5046]! } + public var NotificationsSound_Input: String { return self._s[5046]! } + public var Notifications_ClassicTones: String { return self._s[5047]! } + public var Conversation_StatusTyping: String { return self._s[5048]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[5049]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[5050]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[5051]! } + public var Conversation_MessageLeaveComment: String { return self._s[5052]! } + public var UserInfo_TapToCall: String { return self._s[5053]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[5054]! } public func ScheduleVoiceChat_ScheduleOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5047]!, self._r[5047]!, [_0, _1]) + return formatWithArgumentRanges(self._s[5055]!, self._r[5055]!, [_0, _1]) } - public var Conversation_ClearAll: String { return self._s[5049]! } - public var UserInfo_NotificationsDefault: String { return self._s[5050]! } - public var Location_ProximityGroupTip: String { return self._s[5051]! } - public var Map_ChooseAPlace: String { return self._s[5052]! } - public var GroupInfo_AddParticipantTitle: String { return self._s[5054]! } - public var ChatList_PeerTypeNonContact: String { return self._s[5055]! } - public var Conversation_SlideToCancel: String { return self._s[5056]! } - public var Month_ShortJuly: String { return self._s[5057]! } - public var SocksProxySetup_ProxyType: String { return self._s[5058]! } + public var Conversation_ClearAll: String { return self._s[5057]! } + public var UserInfo_NotificationsDefault: String { return self._s[5058]! } + public var Location_ProximityGroupTip: String { return self._s[5059]! } + public var Map_ChooseAPlace: String { return self._s[5060]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[5062]! } + public var ChatList_PeerTypeNonContact: String { return self._s[5063]! } + public var Conversation_SlideToCancel: String { return self._s[5064]! } + public var Month_ShortJuly: String { return self._s[5065]! } + public var SocksProxySetup_ProxyType: String { return self._s[5066]! } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5059]!, self._r[5059]!, [_0]) + return formatWithArgumentRanges(self._s[5067]!, self._r[5067]!, [_0]) } - public var StickerPacks_ActionArchive: String { return self._s[5060]! } - public var ChatList_EditFolders: String { return self._s[5061]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[5062]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[5064]! } + public var StickerPacks_ActionArchive: String { return self._s[5068]! } + public var ChatList_EditFolders: String { return self._s[5069]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[5070]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[5072]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5065]!, self._r[5065]!, [_0]) + return formatWithArgumentRanges(self._s[5073]!, self._r[5073]!, [_0]) } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5066]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[5067]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[5069]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5074]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[5075]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[5077]! } public func Conversation_ScheduledVoiceChatStartsOnShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5071]!, self._r[5071]!, [_0]) + return formatWithArgumentRanges(self._s[5079]!, self._r[5079]!, [_0]) } - public var Passport_DeleteAddress: String { return self._s[5072]! } - public var Passport_DeletePassportConfirmation: String { return self._s[5073]! } - public var Passport_Identity_ReverseSide: String { return self._s[5074]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5076]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[5077]! } - public var InviteLink_CreatedBy: String { return self._s[5078]! } - public var Passport_FieldAddress: String { return self._s[5079]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5080]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5083]! } - public var VoiceChat_Panel_TapToJoin: String { return self._s[5084]! } - public var Map_Home: String { return self._s[5085]! } - public var PollResults_Title: String { return self._s[5088]! } + public var Passport_DeleteAddress: String { return self._s[5080]! } + public var Passport_DeletePassportConfirmation: String { return self._s[5081]! } + public var Passport_Identity_ReverseSide: String { return self._s[5082]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5084]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[5085]! } + public var InviteLink_CreatedBy: String { return self._s[5086]! } + public var Passport_FieldAddress: String { return self._s[5087]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5088]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5091]! } + public var VoiceChat_Panel_TapToJoin: String { return self._s[5092]! } + public var Map_Home: String { return self._s[5093]! } + public var PollResults_Title: String { return self._s[5096]! } public func InviteLink_OtherPermanentLinkInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5089]!, self._r[5089]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5097]!, self._r[5097]!, [_1, _2]) } - public var ArchivedChats_IntroText2: String { return self._s[5091]! } - public var VoiceChat_VideoPreviewTitle: String { return self._s[5092]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5093]! } - public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5094]! } - public var VoiceChat_Muted: String { return self._s[5096]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[5097]! } - public var Passport_Identity_AddPersonalDetails: String { return self._s[5098]! } - public var Conversation_AutoremoveActionEnable: String { return self._s[5100]! } - public var Group_Info_AdminLog: String { return self._s[5101]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[5102]! } - public var Appearance_Animations: String { return self._s[5103]! } - public var Appearance_TextSizeSetting: String { return self._s[5104]! } - public func ChatList_MessageFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) + public var ArchivedChats_IntroText2: String { return self._s[5099]! } + public var VoiceChat_VideoPreviewTitle: String { return self._s[5100]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5101]! } + public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5102]! } + public var VoiceChat_Muted: String { return self._s[5104]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[5105]! } + public var Passport_Identity_AddPersonalDetails: String { return self._s[5106]! } + public var Conversation_AutoremoveActionEnable: String { return self._s[5108]! } + public var Group_Info_AdminLog: String { return self._s[5109]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[5110]! } + public var Appearance_Animations: String { return self._s[5111]! } + public var Appearance_TextSizeSetting: String { return self._s[5112]! } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, _1, _2) } - public func OldChannels_InactiveYear(_ value: Int32) -> String { + public func InstantPage_Views(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, _2, _1, _3) + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopAdminBans(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, _1, _2) + public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { + public func Map_ETAMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, _1, _2) + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func LastSeen_MinutesAgo(_ value: Int32) -> String { + public func ForwardedAudios(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceChat_Status_Members(_ value: Int32) -> String { + public func ForwardedPolls(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusMembers(_ value: Int32) -> String { + public func InviteLink_PeopleCanJoin(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopPosterMessages(_ value: Int32) -> String { + public func ForwardedLocations(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + public func ScheduledIn_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, _1, _2) + public func ForwardedVideoMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) } - public func ScheduledIn_Hours(_ value: Int32) -> String { + public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, _1, _2) + public func InviteText_ContactsCountText(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Seconds(_ value: Int32) -> String { + public func StickerPacks_DeleteStickerPacksConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Generic(_ value: Int32) -> String { + public func ChatList_Search_Messages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedVideos(_ value: Int32) -> String { + public func MessageTimer_Seconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) @@ -5746,473 +5759,472 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { + public func Call_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) } - public func OldChannels_InactiveMonth(_ value: Int32) -> String { + public func Notification_GameScoreSimple(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_ContextViewReplies(_ value: Int32) -> String { + public func Chat_MessagesUnpinned(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedAudios(_ value: Int32) -> String { + public func Conversation_StatusSubscribers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) } - public func PeopleNearby_ShowMorePeople(_ value: Int32) -> String { + public func Conversation_StatusOnline(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) } - public func ScheduledIn_Months(_ value: Int32) -> String { + public func Conversation_StatusMembers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + public func MessagePoll_QuizCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) } - public func Chat_TitlePinnedMessages(_ value: Int32) -> String { + public func ScheduledIn_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusOnline(_ value: Int32) -> String { + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Hours(_ value: Int32) -> String { + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceChat_InviteLink_InviteSpeakers(_ value: Int32) -> String { + public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) } - public func Contacts_ImportersCount(_ value: Int32) -> String { + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_UnreadMessages(_ value: Int32) -> String { + public func ChatList_MessagePhotos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, _2, _1, _3) + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_TitleReplies(_ value: Int32) -> String { + public func MuteExpires_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopInviterInvites(_ value: Int32) -> String { + public func ForwardedPhotos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + public func Conversation_ContextMenuSelectAll(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func StickerPack_AddStickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + public func OldChannels_InactiveWeek(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteExpires_Minutes(_ value: Int32) -> String { + public func Call_Seconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupShowMoreTopPosters(_ value: Int32) -> String { + public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, _0, _1) + public func LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessagePoll_VotedCount(_ value: Int32) -> String { + public func QuickSend_Photos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + public func Stats_GroupShowMoreTopInviters(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_SelectedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, _1, _2) } - public func MuteFor_Hours(_ value: Int32) -> String { + public func ScheduledIn_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) } - public func ScheduledIn_Days(_ value: Int32) -> String { + public func AttachmentMenu_SendVideo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + public func UserCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortHours(_ value: Int32) -> String { + public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + public func MessageTimer_ShortHours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Link(_ value: Int32) -> String { + public func Call_ShortSeconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) } - public func Invitation_Members(_ value: Int32) -> String { + public func VoiceChat_Status_Members(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_ShortSeconds(_ value: Int32) -> String { + public func MuteExpires_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteExpires_Days(_ value: Int32) -> String { + public func MuteFor_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_ShareItem(_ value: Int32) -> String { + public func ChatList_DeletedChats(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Map_ETAHours(_ value: Int32) -> String { + public func OldChannels_InactiveMonth(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessageVideos(_ value: Int32) -> String { + public func Notification_GameScoreExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_MessageForwards(_ value: Int32) -> String { + public func VoiceOver_Chat_MessagesSelected(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopPosterChars(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) - } - public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_GroupFormat(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Theme_UsersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeletedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteLink_InviteLinks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func StickerPacks_ArchiveStickerPacksConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Conversation_AutoremoveRemainingDays(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteText_ContactsCountText(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Stats_GroupShowMoreTopInviters(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedLocations(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Years(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_MessagePhotos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) - } - public func UserCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Weeks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, _1, _2) } public func ChatListFilter_ShowMoreChats(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessageMusic(_ value: Int32) -> String { + public func Theme_UsersCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Photo(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedGifs(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func ForwardedContacts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_StickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _1, _2) } public func VoiceChat_InviteLink_InviteListeners(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + public func Media_ShareVideo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceChat_Panel_Members(_ value: Int32) -> String { + public func ForwardedStickers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedPolls(_ value: Int32) -> String { + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSimple(_ value: Int32) -> String { + public func Map_ETAHours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { + public func VoiceChat_InviteLink_InviteSpeakers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedVideoMessages(_ value: Int32) -> String { + public func PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ForwardedMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Weeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_ContextViewReplies(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_ImportersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopPosterChars(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Link(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PeopleNearby_ShowMorePeople(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Years(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) } public func Stats_GroupTopAdminKicks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_Leave(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_ShareItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_Exceptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ForwardedGifs(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_SelectedChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessageFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPacks_ArchiveStickerPacksConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_MessageForwards(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_AutoremoveRemainingDays(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Video(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessageMusic(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Weeks(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Seconds(_ value: Int32) -> String { + public func StickerPack_StickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_MessagesSelected(_ value: Int32) -> String { + public func Conversation_SelectedMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) } - public func OldChannels_InactiveWeek(_ value: Int32) -> String { + public func Conversation_MessageViewComments(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreExtended(_ value: Int32) -> String { + public func Chat_TitlePinnedMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) } - public func InstantPage_Views(_ value: Int32) -> String { + public func Stats_GroupShowMoreTopPosters(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, _1, _2) + public func SharedMedia_Generic(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteLink_PeopleJoined(_ value: Int32) -> String { + public func Contacts_InviteContacts(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, stringValue) @@ -6222,297 +6234,295 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_MessageViews(_ value: Int32) -> String { + public func ForwardedFiles(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Stats_GroupShowMoreTopAdmins(_ value: Int32) -> String { + public func StickerPack_AddMaskCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, stringValue) } - public func Chat_MessagesUnpinned(_ value: Int32) -> String { + public func Stats_GroupTopInviterInvites(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortDays(_ value: Int32) -> String { + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Months(_ value: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_TitleComments(_ value: Int32) -> String { + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteLink_PeopleCanJoin(_ value: Int32) -> String { + public func Conversation_TitleReplies(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[124 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, _2, _1, _3) + public func Media_SharePhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + public func Conversation_TitleComments(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[126 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + public func ChatList_MessageVideos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[127 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func QuickSend_Photos(_ value: Int32) -> String { + public func VoiceChat_Panel_Members(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[129 * 6 + Int(form.rawValue)]!, stringValue) } - public func Passport_Scans(_ value: Int32) -> String { + public func Stats_GroupTopAdminBans(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[130 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + public func MuteExpires_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[131 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[132 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_ContextMenuSelectAll(_ value: Int32) -> String { + public func OldChannels_GroupFormat(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[134 * 6 + Int(form.rawValue)]!, _1, _2) + public func Passport_Scans(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[134 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_SelectedMessages(_ value: Int32) -> String { + public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[135 * 6 + Int(form.rawValue)]!, stringValue) } - public func ScheduledIn_Years(_ value: Int32) -> String { + public func ScheduledIn_Months(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteExpires_Hours(_ value: Int32) -> String { + public func MessageTimer_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[137 * 6 + Int(form.rawValue)]!, stringValue) } - public func ScheduledIn_Minutes(_ value: Int32) -> String { + public func ForwardedContacts(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[138 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteLink_PeopleRemaining(_ value: Int32) -> String { + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[139 * 6 + Int(form.rawValue)]!, stringValue) } - public func LastSeen_HoursAgo(_ value: Int32) -> String { + public func VoiceOver_Chat_UnreadMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[140 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + public func SharedMedia_File(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[141 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[142 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[142 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[143 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + public func InviteLink_PeopleRemaining(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[144 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPacks_DeleteStickerPacksConfirmation(_ value: Int32) -> String { + public func ScheduledIn_Years(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[145 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_ShareVideo(_ value: Int32) -> String { + public func PollResults_ShowMore(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[146 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_SharePhoto(_ value: Int32) -> String { + public func InviteLink_PeopleJoined(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[147 * 6 + Int(form.rawValue)]!, stringValue) } - public func OldChannels_Leave(_ value: Int32) -> String { + public func Watch_UserInfo_Mute(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[148 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Hours(_ value: Int32) -> String { + public func AttachmentMenu_SendGif(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[149 * 6 + Int(form.rawValue)]!, stringValue) } - public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[150 * 6 + Int(form.rawValue)]!, stringValue) } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + public func InviteLink_InviteLinks(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[151 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteFor_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[152 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[152 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func Call_Days(_ value: Int32) -> String { + public func MessageTimer_Months(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[153 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendVideo(_ value: Int32) -> String { + public func Stats_MessageViews(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[154 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_Exceptions(_ value: Int32) -> String { + public func MuteFor_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[155 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + public func Stats_GroupShowMoreTopAdmins(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[156 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteLink_PeopleJoinedShort(_ value: Int32) -> String { + public func LastSeen_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[157 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_MessageViewComments(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[158 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[158 * 6 + Int(form.rawValue)]!, _1, _2) } - public func SharedMedia_Video(_ value: Int32) -> String { + public func MessagePoll_VotedCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[159 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_Search_Messages(_ value: Int32) -> String { + public func ImportStickerPack_StickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[160 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { + public func OldChannels_InactiveYear(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[161 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_File(_ value: Int32) -> String { + public func InviteLink_PeopleJoinedShort(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[162 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedPhotos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[163 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[163 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Call_Minutes(_ value: Int32) -> String { + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[164 * 6 + Int(form.rawValue)]!, stringValue) } - public func ImportStickerPack_StickerCount(_ value: Int32) -> String { + public func AttachmentMenu_SendItem(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[165 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessagePoll_QuizCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[166 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[166 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Contacts_InviteContacts(_ value: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[167 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[168 * 6 + Int(form.rawValue)]!, _1, _2) + public func Call_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[168 * 6 + Int(form.rawValue)]!, stringValue) } - public func PollResults_ShowMore(_ value: Int32) -> String { + public func Call_ShortMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[169 * 6 + Int(form.rawValue)]!, stringValue) } - public func ScheduledIn_Seconds(_ value: Int32) -> String { + public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[170 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { + public func MessageTimer_ShortDays(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[171 * 6 + Int(form.rawValue)]!, stringValue) } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[172 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + public func Stats_GroupTopPosterMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[173 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[174 * 6 + Int(form.rawValue)]!, _2, _1, _3) + public func Invitation_Members(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[174 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedStickers(_ value: Int32) -> String { + public func Call_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[175 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Weeks(_ value: Int32) -> String { + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[176 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index 836cf6c9df06172a6e5563ff2c927a753c4d3822..234afe85529d6fc919361c11eb5fa90b263c0052 100644 GIT binary patch delta 49917 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 F{{yEip>_ZO delta 50282 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 From 8206c567daccabc67b98a6f120fd8d0c14441cc5 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Sat, 3 Jul 2021 00:22:54 +0400 Subject: [PATCH 11/26] Revert changes --- .../Sources/GroupCallContext.swift | 43 ++++++++++++--- .../Sources/OngoingCallThreadLocalContext.mm | 54 +++++++++++++------ 2 files changed, 73 insertions(+), 24 deletions(-) diff --git a/submodules/TelegramVoip/Sources/GroupCallContext.swift b/submodules/TelegramVoip/Sources/GroupCallContext.swift index 980ed3ab3b..3ef9ad3ccd 100644 --- a/submodules/TelegramVoip/Sources/GroupCallContext.swift +++ b/submodules/TelegramVoip/Sources/GroupCallContext.swift @@ -601,15 +601,44 @@ public final class OngoingGroupCallContext { mainView?.setOnIsMirroredUpdated { value in f?(value) } - }, - setIsPaused: { [weak mainView] paused in - mainView?.setIsPaused(paused) - }, - renderToSize: { [weak mainView] size, animated in - mainView?.render(to: size, animated: animated) } ) - completion(mainVideoView, nil) + var cloneVideoView: OngoingCallContextPresentationCallVideoView? + if let cloneView = cloneView { + cloneVideoView = OngoingCallContextPresentationCallVideoView( + view: cloneView, + setOnFirstFrameReceived: { [weak cloneView] f in + cloneView?.setOnFirstFrameReceived(f) + }, + getOrientation: { [weak cloneView] in + if let cloneView = cloneView { + return OngoingCallVideoOrientation(cloneView.orientation) + } else { + return .rotation0 + } + }, + getAspect: { [weak cloneView] in + if let cloneView = cloneView { + return cloneView.aspect + } else { + return 0.0 + } + }, + setOnOrientationUpdated: { [weak cloneView] f in + cloneView?.setOnOrientationUpdated { value, aspect in + f?(OngoingCallVideoOrientation(value), aspect) + } + }, setVideoContentMode: { [weak cloneView] mode in + cloneView?.setVideoContentMode(mode) + }, + setOnIsMirroredUpdated: { [weak cloneView] f in + cloneView?.setOnIsMirroredUpdated { value in + f?(value) + } + } + ) + } + completion(mainVideoView, cloneVideoView) #endif } else { completion(nil, nil) diff --git a/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm b/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm index 33eb99070e..53d02b469b 100644 --- a/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm +++ b/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm @@ -50,8 +50,26 @@ @end +@interface IsProcessingCustomSampleBufferFlag : NSObject + +@property (nonatomic) bool value; + +@end + +@implementation IsProcessingCustomSampleBufferFlag + +- (instancetype)init { + self = [super init]; + if (self != nil) { + } + return self; +} + +@end + @interface OngoingCallThreadLocalContextVideoCapturer () { std::shared_ptr _interface; + IsProcessingCustomSampleBufferFlag *_isProcessingCustomSampleBuffer; } @end @@ -217,6 +235,7 @@ self = [super init]; if (self != nil) { _interface = interface; + _isProcessingCustomSampleBuffer = [[IsProcessingCustomSampleBufferFlag alloc] init]; _croppingBuffer = std::make_shared>(); } return self; @@ -254,20 +273,6 @@ tgcalls::VideoCaptureInterfaceObject *GetVideoCaptureAssumingSameThread(tgcalls: } #if TARGET_OS_IOS -- (void)submitSampleBuffer:(CMSampleBufferRef _Nonnull)sampleBuffer { - if (!sampleBuffer) { - return; - } - tgcalls::StaticThreads::getThreads()->getMediaThread()->PostTask(RTC_FROM_HERE, [interface = _interface, sampleBuffer = CFRetain(sampleBuffer)]() { - auto capture = GetVideoCaptureAssumingSameThread(interface.get()); - auto source = capture->source(); - if (source) { - [CustomExternalCapturer passSampleBuffer:(CMSampleBufferRef)sampleBuffer toSource:source]; - } - CFRelease(sampleBuffer); - }); -} - - (void)submitPixelBuffer:(CVPixelBufferRef _Nonnull)pixelBuffer rotation:(OngoingCallVideoOrientationWebrtc)rotation { if (!pixelBuffer) { return; @@ -289,13 +294,19 @@ tgcalls::VideoCaptureInterfaceObject *GetVideoCaptureAssumingSameThread(tgcalls: break; } - tgcalls::StaticThreads::getThreads()->getMediaThread()->PostTask(RTC_FROM_HERE, [interface = _interface, pixelBuffer = CFRetain(pixelBuffer), croppingBuffer = _croppingBuffer, videoRotation = videoRotation]() { + if (_isProcessingCustomSampleBuffer.value) { + return; + } + _isProcessingCustomSampleBuffer.value = true; + + tgcalls::StaticThreads::getThreads()->getMediaThread()->PostTask(RTC_FROM_HERE, [interface = _interface, pixelBuffer = CFRetain(pixelBuffer), croppingBuffer = _croppingBuffer, videoRotation = videoRotation, isProcessingCustomSampleBuffer = _isProcessingCustomSampleBuffer]() { auto capture = GetVideoCaptureAssumingSameThread(interface.get()); auto source = capture->source(); if (source) { [CustomExternalCapturer passPixelBuffer:(CVPixelBufferRef)pixelBuffer rotation:videoRotation toSource:source croppingBuffer:*croppingBuffer]; } CFRelease(pixelBuffer); + isProcessingCustomSampleBuffer.value = false; }); } @@ -1110,10 +1121,9 @@ private: } std::vector videoCodecPreferences; -// videoCodecPreferences.push_back(tgcalls::VideoCodecName::H264); - //videoCodecPreferences.push_back(tgcalls::VideoCodecName::VP9);/ int minOutgoingVideoBitrateKbit = 500; + bool disableOutgoingAudioProcessing = false; tgcalls::GroupConfig config; config.need_log = false; @@ -1185,6 +1195,7 @@ private: return std::make_shared(task); }, .outgoingAudioBitrateKbit = outgoingAudioBitrateKbit, + .disableOutgoingAudioProcessing = disableOutgoingAudioProcessing, .videoContentType = _videoContentType, .videoCodecPreferences = videoCodecPreferences, .initialEnableNoiseSuppression = enableNoiseSuppression, @@ -1466,6 +1477,15 @@ private: } } +- (void)addExternalAudioData:(NSData * _Nonnull)data { + if (_instance) { + std::vector samples; + samples.resize(data.length); + [data getBytes:samples.data() length:data.length]; + _instance->addExternalAudioSamples(std::move(samples)); + } +} + @end @implementation OngoingGroupCallMediaChannelDescription From 3cff0fe015b8faf1ddbc1a0c70f6f553dfbf3cdc Mon Sep 17 00:00:00 2001 From: Ali <> Date: Sun, 4 Jul 2021 15:48:46 +0400 Subject: [PATCH 12/26] Update libvpx --- third-party/libvpx/libvpx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third-party/libvpx/libvpx b/third-party/libvpx/libvpx index 3a38edea2c..002f14078f 160000 --- a/third-party/libvpx/libvpx +++ b/third-party/libvpx/libvpx @@ -1 +1 @@ -Subproject commit 3a38edea2cd114d53914cab017cab2e43a600031 +Subproject commit 002f14078ff6aa1f0c1548aa1902b3af9d42087e From e0abfd0f66435ecfceea0e97efc02b14974274f4 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Sun, 4 Jul 2021 17:23:58 +0400 Subject: [PATCH 13/26] Support new padding scheme --- submodules/MtProtoKit/Sources/MTContext.m | 4 +- .../Sources/MTDatacenterAuthMessageService.m | 497 ++++++++++++------ .../MtProtoKit/Sources/MTResPqMessage.m | 9 +- 3 files changed, 353 insertions(+), 157 deletions(-) diff --git a/submodules/MtProtoKit/Sources/MTContext.m b/submodules/MtProtoKit/Sources/MTContext.m index b394ac923c..bde013a54e 100644 --- a/submodules/MtProtoKit/Sources/MTContext.m +++ b/submodules/MtProtoKit/Sources/MTContext.m @@ -379,14 +379,14 @@ static int32_t fixedTimeDifferenceValue = 0; NSDictionary *datacenterAuthInfoById = [keychain objectForKey:@"datacenterAuthInfoById" group:@"persistent"]; if (datacenterAuthInfoById != nil) { _datacenterAuthInfoById = [[NSMutableDictionary alloc] initWithDictionary:datacenterAuthInfoById]; -/*#if DEBUG +#if DEBUG NSArray *keys = [_datacenterAuthInfoById allKeys]; for (NSNumber *key in keys) { if (parseAuthInfoMapKeyInteger(key).selector != MTDatacenterAuthInfoSelectorPersistent) { [_datacenterAuthInfoById removeObjectForKey:key]; } } -#endif*/ +#endif } NSDictionary *datacenterPublicKeysById = [keychain objectForKey:@"datacenterPublicKeysById" group:@"ephemeral"]; diff --git a/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m b/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m index da1ca4e98a..6f78dbf3a2 100644 --- a/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m +++ b/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m @@ -13,6 +13,7 @@ #import #import "MTBuffer.h" #import +#import #import "MTInternalMessageParser.h" #import "MTServerDhInnerDataMessage.h" @@ -20,99 +21,133 @@ #import "MTServerDhParamsMessage.h" #import "MTSetClientDhParamsResponseMessage.h" -static NSArray *defaultPublicKeys() { - static NSArray *serverPublicKeys = nil; +@interface MTDatacenterAuthPublicKey : NSObject + +@property (nonatomic, strong, readonly) NSString *publicKey; +@property (nonatomic, readonly) bool usesModernPaddingScheme; + +@end + +@implementation MTDatacenterAuthPublicKey + +- (instancetype)initWithPublicKey:(NSString *)publicKey usesModernPaddingScheme:(bool)usesModernPaddingScheme { + self = [super init]; + if (self != nil) { + _publicKey = publicKey; + _usesModernPaddingScheme = usesModernPaddingScheme; + } + return self; +} + +- (uint64_t)fingerprintWithEncryptionProvider:(id)encryptionProvider { + return MTRsaFingerprint(encryptionProvider, _publicKey); +} + +@end + +static NSArray *defaultPublicKeys() { + static NSArray *serverPublicKeys = nil; static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^ - { - serverPublicKeys = [[NSArray alloc] initWithObjects: -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAxq7aeLAqJR20tkQQMfRn+ocfrtMlJsQ2Uksfs7Xcoo77jAid0bRt\n" -"ksiVmT2HEIJUlRxfABoPBV8wY9zRTUMaMA654pUX41mhyVN+XoerGxFvrs9dF1Ru\n" -"vCHbI02dM2ppPvyytvvMoefRoL5BTcpAihFgm5xCaakgsJ/tH5oVl74CdhQw8J5L\n" -"xI/K++KJBUyZ26Uba1632cOiq05JBUW0Z2vWIOk4BLysk7+U9z+SxynKiZR3/xdi\n" -"XvFKk01R3BHV+GUKM2RYazpS/P8v7eyKhAbKxOdRcFpHLlVwfjyM1VlDQrEZxsMp\n" -"NTLYXb6Sce1Uov0YtNx5wEowlREH1WOTlwIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0x9a996a1db11c729bUL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAsQZnSWVZNfClk29RcDTJQ76n8zZaiTGuUsi8sUhW8AS4PSbPKDm+\n" -"DyJgdHDWdIF3HBzl7DHeFrILuqTs0vfS7Pa2NW8nUBwiaYQmPtwEa4n7bTmBVGsB\n" -"1700/tz8wQWOLUlL2nMv+BPlDhxq4kmJCyJfgrIrHlX8sGPcPA4Y6Rwo0MSqYn3s\n" -"g1Pu5gOKlaT9HKmE6wn5Sut6IiBjWozrRQ6n5h2RXNtO7O2qCDqjgB2vBxhV7B+z\n" -"hRbLbCmW0tYMDsvPpX5M8fsO05svN+lKtCAuz1leFns8piZpptpSCFn7bWxiA9/f\n" -"x5x17D7pfah3Sy2pA+NDXyzSlGcKdaUmwQIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0xb05b2a6f70cdea78UL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAwVACPi9w23mF3tBkdZz+zwrzKOaaQdr01vAbU4E1pvkfj4sqDsm6\n" -"lyDONS789sVoD/xCS9Y0hkkC3gtL1tSfTlgCMOOul9lcixlEKzwKENj1Yz/s7daS\n" -"an9tqw3bfUV/nqgbhGX81v/+7RFAEd+RwFnK7a+XYl9sluzHRyVVaTTveB2GazTw\n" -"Efzk2DWgkBluml8OREmvfraX3bkHZJTKX4EQSjBbbdJ2ZXIsRrYOXfaA+xayEGB+\n" -"8hdlLmAjbCVfaigxX0CDqWeR1yFL9kwd9P0NsZRPsmoqVwMbMu7mStFai6aIhc3n\n" -"Slv8kg9qv1m6XHVQY3PnEw+QQtqSIXklHwIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0xc3b42b026ce86b21UL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAwqjFW0pi4reKGbkc9pK83Eunwj/k0G8ZTioMMPbZmW99GivMibwa\n" -"xDM9RDWabEMyUtGoQC2ZcDeLWRK3W8jMP6dnEKAlvLkDLfC4fXYHzFO5KHEqF06i\n" -"qAqBdmI1iBGdQv/OQCBcbXIWCGDY2AsiqLhlGQfPOI7/vvKc188rTriocgUtoTUc\n" -"/n/sIUzkgwTqRyvWYynWARWzQg0I9olLBBC2q5RQJJlnYXZwyTL3y9tdb7zOHkks\n" -"WV9IMQmZmyZh/N7sMbGWQpt4NMchGpPGeJ2e5gHBjDnlIf2p1yZOYeUYrdbwcS0t\n" -"UiggS4UeE8TzIuXFQxw7fzEIlmhIaq3FnwIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0x71e025b6c76033e3UL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAruw2yP/BCcsJliRoW5eBVBVle9dtjJw+OYED160Wybum9SXtBBLX\n" -"riwt4rROd9csv0t0OHCaTmRqBcQ0J8fxhN6/cpR1GWgOZRUAiQxoMnlt0R93LCX/\n" -"j1dnVa/gVbCjdSxpbrfY2g2L4frzjJvdl84Kd9ORYjDEAyFnEA7dD556OptgLQQ2\n" -"e2iVNq8NZLYTzLp5YpOdO1doK+ttrltggTCy5SrKeLoCPPbOgGsdxJxyz5KKcZnS\n" -"Lj16yE5HvJQn0CNpRdENvRUXe6tBP78O39oJ8BTHp9oIjd6XWXAsp2CvK45Ol8wF\n" -"XGF710w9lwCGNbmNxNYhtIkdqfsEcwR5JwIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0xbc35f3509f7b7a5UL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAvfLHfYH2r9R70w8prHblWt/nDkh+XkgpflqQVcnAfSuTtO05lNPs\n" -"pQmL8Y2XjVT4t8cT6xAkdgfmmvnvRPOOKPi0OfJXoRVylFzAQG/j83u5K3kRLbae\n" -"7fLccVhKZhY46lvsueI1hQdLgNV9n1cQ3TDS2pQOCtovG4eDl9wacrXOJTG2990V\n" -"jgnIKNA0UMoP+KF03qzryqIt3oTvZq03DyWdGK+AZjgBLaDKSnC6qD2cFY81UryR\n" -"WOab8zKkWAnhw2kFpcqhI0jdV5QaSCExvnsjVaX0Y1N0870931/5Jb9ICe4nweZ9\n" -"kSDF/gip3kWLG0o8XQpChDfyvsqB9OLV/wIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0x15ae5fa8b5529542UL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAs/ditzm+mPND6xkhzwFIz6J/968CtkcSE/7Z2qAJiXbmZ3UDJPGr\n" -"zqTDHkO30R8VeRM/Kz2f4nR05GIFiITl4bEjvpy7xqRDspJcCFIOcyXm8abVDhF+\n" -"th6knSU0yLtNKuQVP6voMrnt9MV1X92LGZQLgdHZbPQz0Z5qIpaKhdyA8DEvWWvS\n" -"Uwwc+yi1/gGaybwlzZwqXYoPOhwMebzKUk0xW14htcJrRrq+PXXQbRzTMynseCoP\n" -"Ioke0dtCodbA3qQxQovE16q9zz4Otv2k4j63cz53J+mhkVWAeWxVGI0lltJmWtEY\n" -"K6er8VqqWot3nqmWMXogrgRLggv/NbbooQIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0xaeae98e13cd7f94fUL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAvmpxVY7ld/8DAjz6F6q05shjg8/4p6047bn6/m8yPy1RBsvIyvuD\n" -"uGnP/RzPEhzXQ9UJ5Ynmh2XJZgHoE9xbnfxL5BXHplJhMtADXKM9bWB11PU1Eioc\n" -"3+AXBB8QiNFBn2XI5UkO5hPhbb9mJpjA9Uhw8EdfqJP8QetVsI/xrCEbwEXe0xvi\n" -"fRLJbY08/Gp66KpQvy7g8w7VB8wlgePexW3pT13Ap6vuC+mQuJPyiHvSxjEKHgqe\n" -"Pji9NP3tJUFQjcECqcm0yV7/2d0t/pbCm+ZH1sadZspQCEPPrtbkQBlvHb4OLiIW\n" -"PGHKSMeRFvp3IWcmdJqXahxLCUS1Eh6MAQIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0x5a181b2235057d98UL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAr4v4wxMDXIaMOh8bayF/NyoYdpcysn5EbjTIOZC0RkgzsRj3SGlu\n" -"52QSz+ysO41dQAjpFLgxPVJoOlxXokaOq827IfW0bGCm0doT5hxtedu9UCQKbE8j\n" -"lDOk+kWMXHPZFJKWRgKgTu9hcB3y3Vk+JFfLpq3d5ZB48B4bcwrRQnzkx5GhWOFX\n" -"x73ZgjO93eoQ2b/lDyXxK4B4IS+hZhjzezPZTI5upTRbs5ljlApsddsHrKk6jJNj\n" -"8Ygs/ps8e6ct82jLXbnndC9s8HjEvDvBPH9IPjv5JUlmHMBFZ5vFQIfbpo0u0+1P\n" -"n6bkEi5o7/ifoyVv2pAZTRwppTz0EuXD8QIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0x9692106da14b9f02UL], @"fingerprint", nil], -nil]; + dispatch_once(&onceToken, ^{ + serverPublicKeys = @[ + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAxq7aeLAqJR20tkQQMfRn+ocfrtMlJsQ2Uksfs7Xcoo77jAid0bRt\n" + "ksiVmT2HEIJUlRxfABoPBV8wY9zRTUMaMA654pUX41mhyVN+XoerGxFvrs9dF1Ru\n" + "vCHbI02dM2ppPvyytvvMoefRoL5BTcpAihFgm5xCaakgsJ/tH5oVl74CdhQw8J5L\n" + "xI/K++KJBUyZ26Uba1632cOiq05JBUW0Z2vWIOk4BLysk7+U9z+SxynKiZR3/xdi\n" + "XvFKk01R3BHV+GUKM2RYazpS/P8v7eyKhAbKxOdRcFpHLlVwfjyM1VlDQrEZxsMp\n" + "NTLYXb6Sce1Uov0YtNx5wEowlREH1WOTlwIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAsQZnSWVZNfClk29RcDTJQ76n8zZaiTGuUsi8sUhW8AS4PSbPKDm+\n" + "DyJgdHDWdIF3HBzl7DHeFrILuqTs0vfS7Pa2NW8nUBwiaYQmPtwEa4n7bTmBVGsB\n" + "1700/tz8wQWOLUlL2nMv+BPlDhxq4kmJCyJfgrIrHlX8sGPcPA4Y6Rwo0MSqYn3s\n" + "g1Pu5gOKlaT9HKmE6wn5Sut6IiBjWozrRQ6n5h2RXNtO7O2qCDqjgB2vBxhV7B+z\n" + "hRbLbCmW0tYMDsvPpX5M8fsO05svN+lKtCAuz1leFns8piZpptpSCFn7bWxiA9/f\n" + "x5x17D7pfah3Sy2pA+NDXyzSlGcKdaUmwQIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAwVACPi9w23mF3tBkdZz+zwrzKOaaQdr01vAbU4E1pvkfj4sqDsm6\n" + "lyDONS789sVoD/xCS9Y0hkkC3gtL1tSfTlgCMOOul9lcixlEKzwKENj1Yz/s7daS\n" + "an9tqw3bfUV/nqgbhGX81v/+7RFAEd+RwFnK7a+XYl9sluzHRyVVaTTveB2GazTw\n" + "Efzk2DWgkBluml8OREmvfraX3bkHZJTKX4EQSjBbbdJ2ZXIsRrYOXfaA+xayEGB+\n" + "8hdlLmAjbCVfaigxX0CDqWeR1yFL9kwd9P0NsZRPsmoqVwMbMu7mStFai6aIhc3n\n" + "Slv8kg9qv1m6XHVQY3PnEw+QQtqSIXklHwIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAwqjFW0pi4reKGbkc9pK83Eunwj/k0G8ZTioMMPbZmW99GivMibwa\n" + "xDM9RDWabEMyUtGoQC2ZcDeLWRK3W8jMP6dnEKAlvLkDLfC4fXYHzFO5KHEqF06i\n" + "qAqBdmI1iBGdQv/OQCBcbXIWCGDY2AsiqLhlGQfPOI7/vvKc188rTriocgUtoTUc\n" + "/n/sIUzkgwTqRyvWYynWARWzQg0I9olLBBC2q5RQJJlnYXZwyTL3y9tdb7zOHkks\n" + "WV9IMQmZmyZh/N7sMbGWQpt4NMchGpPGeJ2e5gHBjDnlIf2p1yZOYeUYrdbwcS0t\n" + "UiggS4UeE8TzIuXFQxw7fzEIlmhIaq3FnwIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAruw2yP/BCcsJliRoW5eBVBVle9dtjJw+OYED160Wybum9SXtBBLX\n" + "riwt4rROd9csv0t0OHCaTmRqBcQ0J8fxhN6/cpR1GWgOZRUAiQxoMnlt0R93LCX/\n" + "j1dnVa/gVbCjdSxpbrfY2g2L4frzjJvdl84Kd9ORYjDEAyFnEA7dD556OptgLQQ2\n" + "e2iVNq8NZLYTzLp5YpOdO1doK+ttrltggTCy5SrKeLoCPPbOgGsdxJxyz5KKcZnS\n" + "Lj16yE5HvJQn0CNpRdENvRUXe6tBP78O39oJ8BTHp9oIjd6XWXAsp2CvK45Ol8wF\n" + "XGF710w9lwCGNbmNxNYhtIkdqfsEcwR5JwIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAvfLHfYH2r9R70w8prHblWt/nDkh+XkgpflqQVcnAfSuTtO05lNPs\n" + "pQmL8Y2XjVT4t8cT6xAkdgfmmvnvRPOOKPi0OfJXoRVylFzAQG/j83u5K3kRLbae\n" + "7fLccVhKZhY46lvsueI1hQdLgNV9n1cQ3TDS2pQOCtovG4eDl9wacrXOJTG2990V\n" + "jgnIKNA0UMoP+KF03qzryqIt3oTvZq03DyWdGK+AZjgBLaDKSnC6qD2cFY81UryR\n" + "WOab8zKkWAnhw2kFpcqhI0jdV5QaSCExvnsjVaX0Y1N0870931/5Jb9ICe4nweZ9\n" + "kSDF/gip3kWLG0o8XQpChDfyvsqB9OLV/wIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAs/ditzm+mPND6xkhzwFIz6J/968CtkcSE/7Z2qAJiXbmZ3UDJPGr\n" + "zqTDHkO30R8VeRM/Kz2f4nR05GIFiITl4bEjvpy7xqRDspJcCFIOcyXm8abVDhF+\n" + "th6knSU0yLtNKuQVP6voMrnt9MV1X92LGZQLgdHZbPQz0Z5qIpaKhdyA8DEvWWvS\n" + "Uwwc+yi1/gGaybwlzZwqXYoPOhwMebzKUk0xW14htcJrRrq+PXXQbRzTMynseCoP\n" + "Ioke0dtCodbA3qQxQovE16q9zz4Otv2k4j63cz53J+mhkVWAeWxVGI0lltJmWtEY\n" + "K6er8VqqWot3nqmWMXogrgRLggv/NbbooQIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAvmpxVY7ld/8DAjz6F6q05shjg8/4p6047bn6/m8yPy1RBsvIyvuD\n" + "uGnP/RzPEhzXQ9UJ5Ynmh2XJZgHoE9xbnfxL5BXHplJhMtADXKM9bWB11PU1Eioc\n" + "3+AXBB8QiNFBn2XI5UkO5hPhbb9mJpjA9Uhw8EdfqJP8QetVsI/xrCEbwEXe0xvi\n" + "fRLJbY08/Gp66KpQvy7g8w7VB8wlgePexW3pT13Ap6vuC+mQuJPyiHvSxjEKHgqe\n" + "Pji9NP3tJUFQjcECqcm0yV7/2d0t/pbCm+ZH1sadZspQCEPPrtbkQBlvHb4OLiIW\n" + "PGHKSMeRFvp3IWcmdJqXahxLCUS1Eh6MAQIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAr4v4wxMDXIaMOh8bayF/NyoYdpcysn5EbjTIOZC0RkgzsRj3SGlu\n" + "52QSz+ysO41dQAjpFLgxPVJoOlxXokaOq827IfW0bGCm0doT5hxtedu9UCQKbE8j\n" + "lDOk+kWMXHPZFJKWRgKgTu9hcB3y3Vk+JFfLpq3d5ZB48B4bcwrRQnzkx5GhWOFX\n" + "x73ZgjO93eoQ2b/lDyXxK4B4IS+hZhjzezPZTI5upTRbs5ljlApsddsHrKk6jJNj\n" + "8Ygs/ps8e6ct82jLXbnndC9s8HjEvDvBPH9IPjv5JUlmHMBFZ5vFQIfbpo0u0+1P\n" + "n6bkEi5o7/ifoyVv2pAZTRwppTz0EuXD8QIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAyMEdY1aR+sCR3ZSJrtztKTKqigvO/vBfqACJLZtS7QMgCGXJ6XIR\n" + "yy7mx66W0/sOFa7/1mAZtEoIokDP3ShoqF4fVNb6XeqgQfaUHd8wJpDWHcR2OFwv\n" + "plUUI1PLTktZ9uW2WE23b+ixNwJjJGwBDJPQEQFBE+vfmH0JP503wr5INS1poWg/\n" + "j25sIWeYPHYeOrFp/eXaqhISP6G+q2IeTaWTXpwZj4LzXq5YOpk4bYEQ6mvRq7D1\n" + "aHWfYmlEGepfaYR8Q0YqvvhYtMte3ITnuSJs171+GDqpdKcSwHnd6FudwGO4pcCO\n" + "j4WcDuXc2CTHgH8gFTNhp/Y8/SpDOhvn9QIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:true] + ]; }); return serverPublicKeys; } -static NSDictionary *selectPublicKey(NSArray *fingerprints, NSArray *publicKeys) -{ - for (NSNumber *nFingerprint in fingerprints) - { - for (NSDictionary *keyDesc in publicKeys) - { - uint64_t keyFingerprint = [[keyDesc objectForKey:@"fingerprint"] unsignedLongLongValue]; +static MTDatacenterAuthPublicKey *selectPublicKey(id encryptionProvider, NSArray *fingerprints, NSArray *publicKeys, bool onlyModernPadding) { + for (NSNumber *nFingerprint in fingerprints) { + for (MTDatacenterAuthPublicKey *key in publicKeys) { + if (onlyModernPadding) { + if (!key.usesModernPaddingScheme) { + continue; + } + } + uint64_t keyFingerprint = [key fingerprintWithEncryptionProvider:encryptionProvider]; - if ([nFingerprint unsignedLongLongValue] == keyFingerprint) - return keyDesc; + if ([nFingerprint unsignedLongLongValue] == keyFingerprint) { + return key; + } } } @@ -150,7 +185,7 @@ typedef enum { MTDatacenterAuthKey *_authKey; NSData *_encryptedClientData; - NSArray *_publicKeys; + NSArray *_publicKeys; } @end @@ -168,6 +203,17 @@ typedef enum { return self; } +- (NSArray *)convertPublicKeysFromDictionaries:(NSArray *)list { + NSMutableArray *cdnKeys = [[NSMutableArray alloc] init]; + for (NSDictionary *dict in list) { + NSString *key = dict[@"key"]; + if ([key isKindOfClass:[NSString class]]) { + [cdnKeys addObject:[[MTDatacenterAuthPublicKey alloc] initWithPublicKey:key usesModernPaddingScheme:false]]; + } + } + return cdnKeys; +} + - (void)reset:(MTProto *)mtProto { _currentStageMessageId = 0; @@ -187,8 +233,8 @@ typedef enum { _encryptedClientData = nil; if (mtProto.cdn) { - _publicKeys = [mtProto.context publicKeysForDatacenterWithId:mtProto.datacenterId]; - if (_publicKeys == nil) { + _publicKeys = [self convertPublicKeysFromDictionaries:[mtProto.context publicKeysForDatacenterWithId:mtProto.datacenterId]]; + if (_publicKeys.count == 0) { _stage = MTDatacenterAuthStageWaitingForPublicKeys; [mtProto.context publicKeysForDatacenterWithIdRequired:mtProto.datacenterId]; } else { @@ -211,7 +257,7 @@ typedef enum { - (void)mtProtoPublicKeysUpdated:(MTProto *)mtProto datacenterId:(NSInteger)datacenterId publicKeys:(NSArray *)publicKeys { if (_stage == MTDatacenterAuthStageWaitingForPublicKeys) { if (mtProto.datacenterId == datacenterId) { - _publicKeys = publicKeys; + _publicKeys = [self convertPublicKeysFromDictionaries:publicKeys]; if (_publicKeys != nil && _publicKeys.count != 0) { _stage = MTDatacenterAuthStagePQ; [mtProto requestTransportTransaction]; @@ -238,7 +284,7 @@ typedef enum { } MTBuffer *reqPqBuffer = [[MTBuffer alloc] init]; - [reqPqBuffer appendInt32:(int32_t)0x60469778]; + [reqPqBuffer appendInt32:(int32_t)0xbe7e8ef1]; [reqPqBuffer appendBytes:_nonce.bytes length:_nonce.length]; NSString *messageDescription = [NSString stringWithFormat:@"reqPq nonce:%@", _nonce]; @@ -306,6 +352,178 @@ typedef enum { return nil; } +static NSData *aesCbcEncrypt(NSData *data, NSData *key, NSData *iv) { + size_t keyLength = kCCKeySizeAES256; + if (key.length != keyLength) { + return nil; + } + if (iv.length != 16) { + return nil; + } + if (data.length % 16 != 0) { + return nil; + } + + NSMutableData *outData = [[NSMutableData alloc] initWithLength:data.length]; + + CCOperation operation = kCCEncrypt; + CCAlgorithm algoritm = kCCAlgorithmAES128; + CCOptions options = 0; // No padding + + size_t outDataActualSize = 0; + + int status = CCCrypt( + operation, + algoritm, + options, + key.bytes, + keyLength, + iv.bytes, + data.bytes, + data.length, + outData.mutableBytes, + outData.length, + &outDataActualSize + ); + + if (status != kCCSuccess) { + return nil; + } + if (outDataActualSize != data.length) { + return nil; + } + + return outData; +} + +static NSData *encryptRSALegacy(id encryptionProvider, NSData *pqInnerData, NSString *publicKey) { + NSMutableData *dataWithHash = [[NSMutableData alloc] init]; + [dataWithHash appendData:MTSha1(pqInnerData)]; + [dataWithHash appendData:pqInnerData]; + while (dataWithHash.length < 255) { + uint8_t random = 0; + arc4random_buf(&random, 1); + [dataWithHash appendBytes:&random length:1]; + } + + NSData *encryptedData = MTRsaEncrypt(encryptionProvider, publicKey, dataWithHash); + + if (encryptedData.length < 256) { + NSMutableData *newEncryptedData = [[NSMutableData alloc] init]; + for (int i = 0; i < 256 - (int)encryptedData.length; i++) + { + uint8_t random = 0; + arc4random_buf(&random, 1); + [newEncryptedData appendBytes:&random length:1]; + } + [newEncryptedData appendData:encryptedData]; + encryptedData = newEncryptedData; + } + + return encryptedData; +} + +static NSData *encryptRSAModernPadding(id encryptionProvider, NSData *pqInnerData, NSString *publicKey) { + NSMutableData *dataWithPadding = [[NSMutableData alloc] init]; + [dataWithPadding appendData:pqInnerData]; + if (dataWithPadding.length > 176) { + return nil; + } + if (dataWithPadding.length != 176) { + int originalLength = (int)dataWithPadding.length; + int numPaddingBytes = 176 - originalLength; + [dataWithPadding setLength:176]; + int randomResult = SecRandomCopyBytes(kSecRandomDefault, numPaddingBytes, ((uint8_t *)dataWithPadding.mutableBytes) + originalLength); + if (randomResult != errSecSuccess) { + return nil; + } + } + + NSMutableData *dataWithHash = [[NSMutableData alloc] init]; + [dataWithHash appendData:dataWithPadding]; + [dataWithHash appendData:MTSha256(dataWithPadding)]; + if (dataWithHash.length != 208) { + return nil; + } + + while (true) { + int randomResult = 0; + NSMutableData *tempKey = [[NSMutableData alloc] initWithLength:32]; + randomResult = SecRandomCopyBytes(kSecRandomDefault, tempKey.length, tempKey.mutableBytes); + if (randomResult != errSecSuccess) { + return nil; + } + + NSMutableData *tempIv = [[NSMutableData alloc] initWithLength:16]; + randomResult = SecRandomCopyBytes(kSecRandomDefault, tempIv.length, tempIv.mutableBytes); + if (randomResult != errSecSuccess) { + return nil; + } + + NSData *aesEncrypted = aesCbcEncrypt(dataWithHash, tempKey, tempIv); + if (aesEncrypted == nil) { + return nil; + } + + NSMutableData *tempIvPlusAesEncrypted = [[NSMutableData alloc] init]; + [tempIvPlusAesEncrypted appendData:tempIv]; + [tempIvPlusAesEncrypted appendData:aesEncrypted]; + NSData *shaTempIvPlusAesEncrypted = MTSha256(tempIvPlusAesEncrypted); + + NSMutableData *tempKeyXor = [[NSMutableData alloc] initWithLength:tempKey.length]; + if (tempKeyXor.length != shaTempIvPlusAesEncrypted.length) { + return nil; + } + for (NSUInteger i = 0; i < tempKey.length; i++) { + ((uint8_t *)tempKeyXor.mutableBytes)[i] = ((uint8_t *)tempKey.bytes)[i] ^ ((uint8_t *)shaTempIvPlusAesEncrypted.bytes)[i]; + } + + NSMutableData *keyAesEncrypted = [[NSMutableData alloc] init]; + [keyAesEncrypted appendData:tempKeyXor]; + [keyAesEncrypted appendData:tempIv]; + [keyAesEncrypted appendData:aesEncrypted]; + if (keyAesEncrypted.length != 256) { + return nil; + } + + id bignumContext = [encryptionProvider createBignumContext]; + if (bignumContext == nil) { + return nil; + } + id rsaPublicKey = [encryptionProvider parseRSAPublicKey:publicKey]; + if (rsaPublicKey == nil) { + return nil; + } + id rsaModule = [bignumContext rsaGetN:rsaPublicKey]; + if (rsaModule == nil) { + return nil; + } + id bignumKeyAesEncrypted = [bignumContext create]; + if (bignumKeyAesEncrypted == nil) { + return nil; + } + [bignumContext assignBinTo:bignumKeyAesEncrypted value:keyAesEncrypted]; + int compareResult = [bignumContext compare:rsaModule with:bignumKeyAesEncrypted]; + if (compareResult == -1) { + continue; + } + + NSData *encryptedData = [encryptionProvider rsaEncryptWithPublicKey:publicKey data:keyAesEncrypted]; + NSMutableData *paddedEncryptedData = [[NSMutableData alloc] init]; + [paddedEncryptedData appendData:encryptedData]; + while (paddedEncryptedData.length < 256) { + uint8_t zero = 0; + [paddedEncryptedData replaceBytesInRange:NSMakeRange(0, 0) withBytes:&zero]; + } + + if (paddedEncryptedData.length != 256) { + return nil; + } + + return paddedEncryptedData; + } +} + - (void)mtProto:(MTProto *)mtProto receivedMessage:(MTIncomingMessage *)message authInfoSelector:(MTDatacenterAuthInfoSelector)authInfoSelector { if (_stage == MTDatacenterAuthStagePQ && [message.body isKindOfClass:[MTResPqMessage class]]) @@ -314,10 +532,13 @@ typedef enum { if ([_nonce isEqualToData:resPqMessage.nonce]) { - NSDictionary *publicKey = selectPublicKey(resPqMessage.serverPublicKeyFingerprints, _publicKeys); + MTDatacenterAuthPublicKey *publicKey = selectPublicKey(_encryptionProvider, resPqMessage.serverPublicKeyFingerprints, _publicKeys, true); + if (publicKey == nil) { + publicKey = selectPublicKey(mtProto.context.encryptionProvider, resPqMessage.serverPublicKeyFingerprints, _publicKeys, false); + } if (publicKey == nil && mtProto.cdn && resPqMessage.serverPublicKeyFingerprints.count == 1 && _publicKeys.count == 1) { - publicKey = @{@"key": _publicKeys[0][@"key"], @"fingerprint": resPqMessage.serverPublicKeyFingerprints[0]}; + publicKey = _publicKeys[0]; } if (publicKey == nil) @@ -367,7 +588,7 @@ typedef enum { } while (q > 0); _dhQ = qBytes; - _dhPublicKeyFingerprint = [[publicKey objectForKey:@"fingerprint"] longLongValue]; + _dhPublicKeyFingerprint = [publicKey fingerprintWithEncryptionProvider:_encryptionProvider]; uint8_t nonceBytes[32]; __unused int result = SecRandomCopyBytes(kSecRandomDefault, 32, nonceBytes); @@ -390,37 +611,17 @@ typedef enum { [innerDataBuffer appendInt32:mtProto.context.tempKeyExpiration]; NSData *innerDataBytes = innerDataBuffer.data; - - NSMutableData *dataWithHash = [[NSMutableData alloc] init]; - [dataWithHash appendData:MTSha1(innerDataBytes)]; - [dataWithHash appendData:innerDataBytes]; - while (dataWithHash.length < 255) - { - uint8_t random = 0; - arc4random_buf(&random, 1); - [dataWithHash appendBytes:&random length:1]; + NSData *encryptedData = nil; + if (publicKey.usesModernPaddingScheme) { + encryptedData = encryptRSAModernPadding(_encryptionProvider, innerDataBytes, publicKey.publicKey); + } else { + encryptedData = encryptRSALegacy(_encryptionProvider, innerDataBytes, publicKey.publicKey); } - - NSData *encryptedData = MTRsaEncrypt(_encryptionProvider, [publicKey objectForKey:@"key"], dataWithHash); + if (MTLogEnabled()) { - MTLog(@"[MTDatacenterAuthMessageService#%p encryptedData length %d dataWithHash length %d]", self, (int)encryptedData.length, (int)dataWithHash.length); + MTLog(@"[MTDatacenterAuthMessageService#%p encryptedData length %d]", self, (int)encryptedData.length); } - if (encryptedData.length < 256) - { - NSMutableData *newEncryptedData = [[NSMutableData alloc] init]; - for (int i = 0; i < 256 - (int)encryptedData.length; i++) - { - uint8_t random = 0; - arc4random_buf(&random, 1); - [newEncryptedData appendBytes:&random length:1]; - } - [newEncryptedData appendData:encryptedData]; - encryptedData = newEncryptedData; - } - #if DEBUG - assert(encryptedData.length == 256); - #endif - + _dhEncryptedData = encryptedData; } else { MTBuffer *innerDataBuffer = [[MTBuffer alloc] init]; @@ -433,42 +634,30 @@ typedef enum { [innerDataBuffer appendBytes:_newNonce.bytes length:_newNonce.length]; NSData *innerDataBytes = innerDataBuffer.data; - - NSMutableData *dataWithHash = [[NSMutableData alloc] init]; - [dataWithHash appendData:MTSha1(innerDataBytes)]; - [dataWithHash appendData:innerDataBytes]; - while (dataWithHash.length < 255) - { - uint8_t random = 0; - arc4random_buf(&random, 1); - [dataWithHash appendBytes:&random length:1]; - } - NSData *encryptedData = MTRsaEncrypt(_encryptionProvider, [publicKey objectForKey:@"key"], dataWithHash); - if (MTLogEnabled()) { - MTLog(@"[MTDatacenterAuthMessageService#%p encryptedData length %d dataWithHash length %d]", self, (int)encryptedData.length, (int)dataWithHash.length); - } - if (encryptedData.length < 256) - { - NSMutableData *newEncryptedData = [[NSMutableData alloc] init]; - for (int i = 0; i < 256 - (int)encryptedData.length; i++) - { - uint8_t random = 0; - arc4random_buf(&random, 1); - [newEncryptedData appendBytes:&random length:1]; - } - [newEncryptedData appendData:encryptedData]; - encryptedData = newEncryptedData; + NSData *encryptedData = nil; + if (publicKey.usesModernPaddingScheme) { + encryptedData = encryptRSAModernPadding(_encryptionProvider, innerDataBytes, publicKey.publicKey); + } else { + encryptedData = encryptRSALegacy(_encryptionProvider, innerDataBytes, publicKey.publicKey); } _dhEncryptedData = encryptedData; } - - _stage = MTDatacenterAuthStageReqDH; - _currentStageMessageId = 0; - _currentStageMessageSeqNo = 0; - _currentStageTransactionId = nil; - [mtProto requestTransportTransaction]; + + if (_dhEncryptedData == nil) { + _stage = MTDatacenterAuthStagePQ; + _currentStageMessageId = 0; + _currentStageMessageSeqNo = 0; + _currentStageTransactionId = nil; + [mtProto requestTransportTransaction]; + } else { + _stage = MTDatacenterAuthStageReqDH; + _currentStageMessageId = 0; + _currentStageMessageSeqNo = 0; + _currentStageTransactionId = nil; + [mtProto requestTransportTransaction]; + } } } } diff --git a/submodules/MtProtoKit/Sources/MTResPqMessage.m b/submodules/MtProtoKit/Sources/MTResPqMessage.m index 6156721256..2aa73435cd 100644 --- a/submodules/MtProtoKit/Sources/MTResPqMessage.m +++ b/submodules/MtProtoKit/Sources/MTResPqMessage.m @@ -16,7 +16,14 @@ } - (NSString *)description { - return [NSString stringWithFormat:@"res_pq nonce:%@ serverNonce:%@ pq:%@ fingerprints:%@", _nonce, _serverNonce, _pq, _serverPublicKeyFingerprints]; + NSMutableString *fingerprintsString = [[NSMutableString alloc] init]; + for (NSNumber *value in _serverPublicKeyFingerprints) { + if (fingerprintsString.length != 0) { + [fingerprintsString appendString:@"\n"]; + } + [fingerprintsString appendFormat:@"%llx", [value longLongValue]]; + } + return [NSString stringWithFormat:@"res_pq nonce:%@ serverNonce:%@ pq:%@ fingerprints:%@", _nonce, _serverNonce, _pq, fingerprintsString]; } @end From 648e414f69a66eedb09413cbf4bf56f59fcdcb5d Mon Sep 17 00:00:00 2001 From: Ali <> Date: Sun, 4 Jul 2021 18:50:21 +0400 Subject: [PATCH 14/26] Fix typo [skip ci] --- .../MtProtoKit/Sources/MTDatacenterAuthMessageService.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m b/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m index 6f78dbf3a2..66929449f9 100644 --- a/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m +++ b/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m @@ -504,7 +504,7 @@ static NSData *encryptRSAModernPadding(id encryptionProvider } [bignumContext assignBinTo:bignumKeyAesEncrypted value:keyAesEncrypted]; int compareResult = [bignumContext compare:rsaModule with:bignumKeyAesEncrypted]; - if (compareResult == -1) { + if (compareResult < 0) { continue; } @@ -513,7 +513,7 @@ static NSData *encryptRSAModernPadding(id encryptionProvider [paddedEncryptedData appendData:encryptedData]; while (paddedEncryptedData.length < 256) { uint8_t zero = 0; - [paddedEncryptedData replaceBytesInRange:NSMakeRange(0, 0) withBytes:&zero]; + [paddedEncryptedData replaceBytesInRange:NSMakeRange(0, 0) withBytes:&zero length:1]; } if (paddedEncryptedData.length != 256) { From 58217226c0ad4a16ccb9b96e43b7097f81effe3e Mon Sep 17 00:00:00 2001 From: Ali <> Date: Sun, 4 Jul 2021 18:51:49 +0400 Subject: [PATCH 15/26] Fix typo --- submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m b/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m index 66929449f9..3a057c7c67 100644 --- a/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m +++ b/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m @@ -504,7 +504,7 @@ static NSData *encryptRSAModernPadding(id encryptionProvider } [bignumContext assignBinTo:bignumKeyAesEncrypted value:keyAesEncrypted]; int compareResult = [bignumContext compare:rsaModule with:bignumKeyAesEncrypted]; - if (compareResult < 0) { + if (compareResult <= 0) { continue; } From 4893e41de21dddee88f30d1407080724079e82a4 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Mon, 5 Jul 2021 00:48:11 +0400 Subject: [PATCH 16/26] Refactoring [skip ci] --- .../Sources/BotCheckoutControllerNode.swift | 6 +- .../BotCheckoutPasswordEntryController.swift | 2 +- .../Sources/ChatImportActivityScreen.swift | 20 +- .../Sources/ChatListController.swift | 2 +- .../GalleryUI/Sources/GalleryController.swift | 2 +- .../SecretMediaPreviewController.swift | 2 +- .../GameUI/Sources/GameControllerNode.swift | 2 +- .../Sources/SecureIdAuthController.swift | 4 +- .../Sources/ResetPasswordController.swift | 4 +- .../SetupTwoStepVerificationController.swift | 18 +- ...tupTwoStepVerificationControllerNode.swift | 40 ++- .../TwoFactorAuthDataInputScreen.swift | 255 +++++++++--------- .../Sources/TwoFactorAuthSplashScreen.swift | 8 +- .../ChannelPermissionsController.swift | 4 +- .../Sources/GroupsInCommonController.swift | 244 ----------------- .../Sources/PeerReportController.swift | 12 +- .../CreatePasswordController.swift | 4 +- .../PrivacyAndSecurityController.swift | 4 +- ...pVerificationPasswordEntryController.swift | 4 +- .../TwoStepVerificationResetController.swift | 4 +- .../TwoStepVerificationUnlockController.swift | 42 +-- .../Sources/CallFeedbackController.swift | 2 +- .../Sources/CallRatingController.swift | 12 +- submodules/TelegramCore/Sources/Account.swift | 4 +- .../TelegramCore/Sources/Authorization.swift | 4 +- .../Sources/ChannelOwnershipTransfer.swift | 2 +- .../Sources/ChatHistoryImport.swift | 244 ----------------- .../GlobalTelegramCoreConfiguration.swift | 5 - ...essageAutoremoveTimeoutInteractively.swift | 4 +- .../Sources/State/CallSessionManager.swift | 2 +- .../State/SynchronizePeerReadState.swift | 4 - .../Auth}/ConfirmTwoStepRecoveryEmail.swift | 6 +- .../Auth/TelegramEngineAuth.swift | 145 +++++++++- .../Auth}/TwoStepVerification.swift | 42 +-- .../{ => TelegramEngine/Calls}/RateCall.swift | 4 +- .../Calls/TelegramEngineCalls.swift | 19 ++ .../TelegramEngineHistoryImport.swift | 255 ++++++++++++++++++ .../Messages}/ForwardGame.swift | 2 +- .../RequestMessageActionCallback.swift | 2 +- .../Messages/TelegramEngineMessages.swift | 9 + .../Peers}/GroupsInCommon.swift | 33 --- .../Peers}/ReportPeer.swift | 12 +- .../{ => TelegramEngine/Peers}/SlowMode.swift | 2 +- .../Peers/TelegramEnginePeers.swift | 36 ++- .../Privacy}/BlockedPeers.swift | 2 +- .../Privacy}/BlockedPeersContext.swift | 1 - .../Privacy/TelegramEnginePrivacy.swift | 16 ++ .../SecureId/AccessSecureId.swift | 2 +- .../SecureId/SaveSecureIdValue.swift | 2 +- .../TelegramEngine/TelegramEngine.swift | 17 ++ .../AuthorizationSequenceController.swift | 2 +- .../TelegramUI/Sources/ChatController.swift | 22 +- .../Sources/PeerInfo/PeerInfoScreen.swift | 10 +- .../Sources/ShareExtensionContext.swift | 12 +- .../Sources/OngoingCallContext.swift | 2 +- .../Sources/WatchRequestHandlers.swift | 2 +- 56 files changed, 783 insertions(+), 840 deletions(-) delete mode 100644 submodules/PeerInfoUI/Sources/GroupsInCommonController.swift delete mode 100644 submodules/TelegramCore/Sources/ChatHistoryImport.swift delete mode 100644 submodules/TelegramCore/Sources/GlobalTelegramCoreConfiguration.swift rename submodules/TelegramCore/Sources/{ => SecretChats}/SetSecretChatMessageAutoremoveTimeoutInteractively.swift (88%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Auth}/ConfirmTwoStepRecoveryEmail.swift (80%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Auth}/TwoStepVerification.swift (90%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Calls}/RateCall.swift (75%) create mode 100644 submodules/TelegramCore/Sources/TelegramEngine/Calls/TelegramEngineCalls.swift create mode 100644 submodules/TelegramCore/Sources/TelegramEngine/HistoryImport/TelegramEngineHistoryImport.swift rename submodules/TelegramCore/Sources/{ => TelegramEngine/Messages}/ForwardGame.swift (89%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/GroupsInCommon.swift (79%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/ReportPeer.swift (93%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/SlowMode.swift (86%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Privacy}/BlockedPeers.swift (96%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Privacy}/BlockedPeersContext.swift (99%) create mode 100644 submodules/TelegramCore/Sources/TelegramEngine/Privacy/TelegramEnginePrivacy.swift diff --git a/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift b/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift index 04c5a591e2..bef77594c3 100644 --- a/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift +++ b/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift @@ -944,7 +944,7 @@ final class BotCheckoutControllerNode: ItemListControllerNode, PKPaymentAuthoriz self.listNode.supernode?.insertSubnode(self.inProgressDimNode, aboveSubnode: self.listNode) - self.passwordTipDisposable = (twoStepVerificationConfiguration(account: self.context.account) + self.passwordTipDisposable = (self.context.engine.auth.twoStepVerificationConfiguration() |> deliverOnMainQueue).start(next: { [weak self] value in guard let strongSelf = self else { return @@ -1069,7 +1069,7 @@ final class BotCheckoutControllerNode: ItemListControllerNode, PKPaymentAuthoriz if let savedCredentialsToken = savedCredentialsToken { credentials = .saved(id: id, tempPassword: savedCredentialsToken.token) } else { - let _ = (cachedTwoStepPasswordToken(postbox: self.context.account.postbox) + let _ = (self.context.engine.auth.cachedTwoStepPasswordToken() |> deliverOnMainQueue).start(next: { [weak self] token in if let strongSelf = self { let timestamp = strongSelf.context.account.network.getApproximateRemoteTimestamp() @@ -1340,7 +1340,7 @@ final class BotCheckoutControllerNode: ItemListControllerNode, PKPaymentAuthoriz }), TextAlertAction(type: .genericAction, title: strongSelf.presentationData.strings.Common_Yes, action: { if let strongSelf = self { - let _ = cacheTwoStepPasswordToken(postbox: strongSelf.context.account.postbox, token: token).start() + let _ = strongSelf.context.engine.auth.cacheTwoStepPasswordToken(token: token).start() strongSelf.pay(savedCredentialsToken: token) } }) diff --git a/submodules/BotPaymentsUI/Sources/BotCheckoutPasswordEntryController.swift b/submodules/BotPaymentsUI/Sources/BotCheckoutPasswordEntryController.swift index 7485437a0c..c2c0a5733e 100644 --- a/submodules/BotPaymentsUI/Sources/BotCheckoutPasswordEntryController.swift +++ b/submodules/BotPaymentsUI/Sources/BotCheckoutPasswordEntryController.swift @@ -285,7 +285,7 @@ private final class BotCheckoutPasswordAlertContentNode: AlertContentNode { } self.isVerifying = true - self.disposable.set((requestTemporaryTwoStepPasswordToken(account: self.context.account, password: text, period: self.period, requiresBiometrics: self.requiresBiometrics) |> deliverOnMainQueue).start(next: { [weak self] token in + self.disposable.set((self.context.engine.auth.requestTemporaryTwoStepPasswordToken(password: text, period: self.period, requiresBiometrics: self.requiresBiometrics) |> deliverOnMainQueue).start(next: { [weak self] token in if let strongSelf = self { strongSelf.completion(token) } diff --git a/submodules/ChatImportUI/Sources/ChatImportActivityScreen.swift b/submodules/ChatImportUI/Sources/ChatImportActivityScreen.swift index ec7421a578..5cefdf43e0 100644 --- a/submodules/ChatImportUI/Sources/ChatImportActivityScreen.swift +++ b/submodules/ChatImportUI/Sources/ChatImportActivityScreen.swift @@ -68,16 +68,16 @@ private final class ImportManager { private let account: Account private let archivePath: String? - private let entries: [(SSZipEntry, String, ChatHistoryImport.MediaType)] + private let entries: [(SSZipEntry, String, TelegramEngine.HistoryImport.MediaType)] - private var session: ChatHistoryImport.Session? + private var session: TelegramEngine.HistoryImport.Session? private let disposable = MetaDisposable() private let totalBytes: Int private let totalMediaBytes: Int private let mainFileSize: Int - private var pendingEntries: [(SSZipEntry, String, ChatHistoryImport.MediaType)] + private var pendingEntries: [(SSZipEntry, String, TelegramEngine.HistoryImport.MediaType)] private var entryProgress: [String: (Int, Int)] = [:] private var activeEntries: [String: Disposable] = [:] @@ -91,7 +91,7 @@ private final class ImportManager { return self.statePromise.get() } - init(account: Account, peerId: PeerId, mainFile: TempBoxFile, archivePath: String?, entries: [(SSZipEntry, String, ChatHistoryImport.MediaType)]) { + init(account: Account, peerId: PeerId, mainFile: TempBoxFile, archivePath: String?, entries: [(SSZipEntry, String, TelegramEngine.HistoryImport.MediaType)]) { self.account = account self.archivePath = archivePath self.entries = entries @@ -114,7 +114,7 @@ private final class ImportManager { Logger.shared.log("ChatImportScreen", " \(entry.1)") } - self.disposable.set((ChatHistoryImport.initSession(account: self.account, peerId: peerId, file: mainFile, mediaCount: Int32(entries.count)) + self.disposable.set((TelegramEngine(account: self.account).historyImport.initSession(peerId: peerId, file: mainFile, mediaCount: Int32(entries.count)) |> mapError { error -> ImportError in switch error { case .chatAdminRequired: @@ -180,7 +180,7 @@ private final class ImportManager { self.failWithError(.generic) return } - self.disposable.set((ChatHistoryImport.startImport(account: self.account, session: session) + self.disposable.set((TelegramEngine(account: self.account).historyImport.startImport(session: session) |> deliverOnMainQueue).start(error: { [weak self] _ in guard let strongSelf = self else { return @@ -258,7 +258,7 @@ private final class ImportManager { if !pathExtension.isEmpty, let value = TGMimeTypeMap.mimeType(forExtension: pathExtension) { mimeType = value } - return ChatHistoryImport.uploadMedia(account: account, session: session, file: tempFile, disposeFileAfterDone: true, fileName: entry.0.path, mimeType: mimeType, type: entry.2) + return TelegramEngine(account: account).historyImport.uploadMedia(session: session, file: tempFile, disposeFileAfterDone: true, fileName: entry.0.path, mimeType: mimeType, type: entry.2) |> mapError { error -> ImportError in switch error { case .chatAdminRequired: @@ -732,7 +732,7 @@ public final class ChatImportActivityScreen: ViewController { private let mainEntry: TempBoxFile private let totalBytes: Int private let totalMediaBytes: Int - private let otherEntries: [(SSZipEntry, String, ChatHistoryImport.MediaType)] + private let otherEntries: [(SSZipEntry, String, TelegramEngine.HistoryImport.MediaType)] private var importManager: ImportManager? private var progressEstimator: ProgressEstimator? @@ -749,14 +749,14 @@ public final class ChatImportActivityScreen: ViewController { } } - public init(context: AccountContext, cancel: @escaping () -> Void, peerId: PeerId, archivePath: String?, mainEntry: TempBoxFile, otherEntries: [(SSZipEntry, String, ChatHistoryImport.MediaType)]) { + public init(context: AccountContext, cancel: @escaping () -> Void, peerId: PeerId, archivePath: String?, mainEntry: TempBoxFile, otherEntries: [(SSZipEntry, String, TelegramEngine.HistoryImport.MediaType)]) { self.context = context self.cancel = cancel self.peerId = peerId self.archivePath = archivePath self.mainEntry = mainEntry - self.otherEntries = otherEntries.map { entry -> (SSZipEntry, String, ChatHistoryImport.MediaType) in + self.otherEntries = otherEntries.map { entry -> (SSZipEntry, String, TelegramEngine.HistoryImport.MediaType) in return (entry.0, entry.1, entry.2) } diff --git a/submodules/ChatListUI/Sources/ChatListController.swift b/submodules/ChatListUI/Sources/ChatListController.swift index 07c1764a1f..08d9573d76 100644 --- a/submodules/ChatListUI/Sources/ChatListController.swift +++ b/submodules/ChatListUI/Sources/ChatListController.swift @@ -2448,7 +2448,7 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController guard let strongSelf = self else { return } - let _ = requestUpdatePeerIsBlocked(account: strongSelf.context.account, peerId: peer.peerId, isBlocked: true).start() + let _ = strongSelf.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peer.peerId, isBlocked: true).start() }) } })) diff --git a/submodules/GalleryUI/Sources/GalleryController.swift b/submodules/GalleryUI/Sources/GalleryController.swift index 4645ed80cb..d55e5ff53f 100644 --- a/submodules/GalleryUI/Sources/GalleryController.swift +++ b/submodules/GalleryUI/Sources/GalleryController.swift @@ -885,7 +885,7 @@ public class GalleryController: ViewController, StandalonePresentableController self.screenCaptureEventsDisposable = (screenCaptureEvents() |> deliverOnMainQueue).start(next: { [weak self] _ in if let strongSelf = self, strongSelf.traceVisibility() { - let _ = addSecretChatMessageScreenshot(account: strongSelf.context.account, peerId: id.peerId).start() + let _ = strongSelf.context.engine.messages.addSecretChatMessageScreenshot(peerId: id.peerId).start() } }) } diff --git a/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift b/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift index 815dbeecf5..9ff8e0da6d 100644 --- a/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift +++ b/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift @@ -351,7 +351,7 @@ public final class SecretMediaPreviewController: ViewController { if strongSelf.messageId.peerId.namespace == Namespaces.Peer.CloudUser { let _ = enqueueMessages(account: strongSelf.context.account, peerId: strongSelf.messageId.peerId, messages: [.message(text: "", attributes: [], mediaReference: .standalone(media: TelegramMediaAction(action: TelegramMediaActionType.historyScreenshot)), replyToMessageId: nil, localGroupingKey: nil, correlationId: nil)]).start() } else if strongSelf.messageId.peerId.namespace == Namespaces.Peer.SecretChat { - let _ = addSecretChatMessageScreenshot(account: strongSelf.context.account, peerId: strongSelf.messageId.peerId).start() + let _ = strongSelf.context.engine.messages.addSecretChatMessageScreenshot(peerId: strongSelf.messageId.peerId).start() } } }) diff --git a/submodules/GameUI/Sources/GameControllerNode.swift b/submodules/GameUI/Sources/GameControllerNode.swift index 51be76923e..02ef5c9839 100644 --- a/submodules/GameUI/Sources/GameControllerNode.swift +++ b/submodules/GameUI/Sources/GameControllerNode.swift @@ -147,7 +147,7 @@ final class GameControllerNode: ViewControllerTracingNode { if eventName == "share_score" { self.present(ShareController(context: self.context, subject: .fromExternal({ [weak self] peerIds, text, account in if let strongSelf = self { - let signals = peerIds.map { forwardGameWithScore(account: account, messageId: strongSelf.message.id, to: $0) } + let signals = peerIds.map { TelegramEngine(account: account).messages.forwardGameWithScore(messageId: strongSelf.message.id, to: $0) } return .single(.preparing) |> then( combineLatest(signals) diff --git a/submodules/PassportUI/Sources/SecureIdAuthController.swift b/submodules/PassportUI/Sources/SecureIdAuthController.swift index 4396f704cd..0a2febc1b9 100644 --- a/submodules/PassportUI/Sources/SecureIdAuthController.swift +++ b/submodules/PassportUI/Sources/SecureIdAuthController.swift @@ -122,7 +122,7 @@ public final class SecureIdAuthController: ViewController, StandalonePresentable } self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: PresentationResourcesRootController.navigationInfoIcon(self.presentationData.theme), style: .plain, target: self, action: #selector(self.infoPressed)) - self.challengeDisposable.set((twoStepAuthData(context.account.network) + self.challengeDisposable.set((context.engine.auth.twoStepAuthData() |> deliverOnMainQueue).start(next: { [weak self] data in if let strongSelf = self { let storedPassword = context.getStoredSecureIdPassword() @@ -512,7 +512,7 @@ public final class SecureIdAuthController: ViewController, StandalonePresentable guard let strongSelf = self else { return } - strongSelf.recoveryDisposable.set((requestTwoStepVerificationPasswordRecoveryCode(network: strongSelf.context.account.network) + strongSelf.recoveryDisposable.set((strongSelf.context.engine.auth.requestTwoStepVerificationPasswordRecoveryCode() |> deliverOnMainQueue).start(next: { emailPattern in guard let strongSelf = self else { return diff --git a/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift b/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift index a751dc16da..2b9d5e155a 100644 --- a/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift +++ b/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift @@ -140,7 +140,7 @@ public func resetPasswordController(context: AccountContext, emailPattern: Strin let presentationData = context.sharedContext.currentPresentationData.with { $0 } presentControllerImpl?(textAlertController(context: context, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetTitle, text: presentationData.strings.TwoStepAuth_RecoveryEmailResetText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetAction, action: { - let _ = (requestTwoStepPasswordReset(network: context.account.network) + let _ = (context.engine.auth.requestTwoStepPasswordReset() |> deliverOnMainQueue).start(next: { result in switch result { case .done, .waitingForReset: @@ -179,7 +179,7 @@ public func resetPasswordController(context: AccountContext, emailPattern: Strin state.checking = true return state } - saveDisposable.set((recoverTwoStepVerificationPassword(network: context.account.network, code: state.code) + saveDisposable.set((context.engine.auth.recoverTwoStepVerificationPassword(code: state.code) |> deliverOnMainQueue).start(error: { error in updateState { state in var state = state diff --git a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationController.swift b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationController.swift index 4326df99b4..478e8abc9d 100644 --- a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationController.swift +++ b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationController.swift @@ -11,8 +11,7 @@ import ProgressNavigationButtonNode import AccountContext public class SetupTwoStepVerificationController: ViewController { - private let network: Network - private let sharedContext: SharedAccountContext + private let context: AccountContext private let initialState: SetupTwoStepVerificationInitialState private let stateUpdated: (SetupTwoStepVerificationStateUpdate, Bool, SetupTwoStepVerificationController) -> Void @@ -33,19 +32,14 @@ public class SetupTwoStepVerificationController: ViewController { private var presentationData: PresentationData private var presentationDataDisposable: Disposable? - - convenience public init(context: AccountContext, initialState: SetupTwoStepVerificationInitialState, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate, Bool, SetupTwoStepVerificationController) -> Void) { - self.init(sharedContext: context.sharedContext, network: context.account.network, initialState: initialState, stateUpdated: stateUpdated) - } - public init(sharedContext: SharedAccountContext, network: Network, initialState: SetupTwoStepVerificationInitialState, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate, Bool, SetupTwoStepVerificationController) -> Void) { - self.sharedContext = sharedContext - self.network = network + public init(context: AccountContext, initialState: SetupTwoStepVerificationInitialState, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate, Bool, SetupTwoStepVerificationController) -> Void) { + self.context = context self.initialState = initialState self.stateUpdated = stateUpdated - self.presentationData = self.sharedContext.currentPresentationData.with { $0 } + self.presentationData = self.context.sharedContext.currentPresentationData.with { $0 } super.init(navigationBarPresentationData: NavigationBarPresentationData(theme: NavigationBarTheme(buttonColor: self.presentationData.theme.rootController.navigationBar.accentTextColor, disabledButtonColor: self.presentationData.theme.rootController.navigationBar.disabledButtonColor, primaryTextColor: self.presentationData.theme.rootController.navigationBar.primaryTextColor, backgroundColor: .clear, enableBackgroundBlur: false, separatorColor: .clear, badgeBackgroundColor: .clear, badgeStrokeColor: .clear, badgeTextColor: .clear), strings: NavigationBarStrings(presentationStrings: self.presentationData.strings))) @@ -53,7 +47,7 @@ public class SetupTwoStepVerificationController: ViewController { self.navigationItem.setLeftBarButton(UIBarButtonItem(title: self.presentationData.strings.Common_Cancel, style: .plain, target: self, action: #selector(self.cancelPressed)), animated: false) - self.presentationDataDisposable = (self.sharedContext.presentationData + self.presentationDataDisposable = (self.context.sharedContext.presentationData |> deliverOnMainQueue).start(next: { [weak self] presentationData in if let strongSelf = self { let previousTheme = strongSelf.presentationData.theme @@ -103,7 +97,7 @@ public class SetupTwoStepVerificationController: ViewController { } override public func loadDisplayNode() { - self.displayNode = SetupTwoStepVerificationControllerNode(sharedContext: self.sharedContext, network: self.network, updateBackAction: { [weak self] action in + self.displayNode = SetupTwoStepVerificationControllerNode(context: self.context, updateBackAction: { [weak self] action in guard let strongSelf = self else { return } diff --git a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift index 90fb0a7ed7..0b1605df28 100644 --- a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift +++ b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift @@ -141,8 +141,7 @@ public enum SetupTwoStepVerificationStateUpdate { } final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { - private let sharedContext: SharedAccountContext - private let network: Network + private let context: AccountContext private var presentationData: PresentationData private let updateBackAction: (Bool) -> Void private let updateNextAction: (SetupTwoStepVerificationNextAction) -> Void @@ -155,15 +154,14 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { private var contentNode: SetupTwoStepVerificationContentNode? private let actionDisposable = MetaDisposable() - init(sharedContext: SharedAccountContext, network: Network, updateBackAction: @escaping (Bool) -> Void, updateNextAction: @escaping (SetupTwoStepVerificationNextAction) -> Void, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate, Bool) -> Void, present: @escaping (ViewController, Any?) -> Void, dismiss: @escaping () -> Void, initialState: SetupTwoStepVerificationInitialState) { - self.sharedContext = sharedContext - self.network = network + init(context: AccountContext, updateBackAction: @escaping (Bool) -> Void, updateNextAction: @escaping (SetupTwoStepVerificationNextAction) -> Void, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate, Bool) -> Void, present: @escaping (ViewController, Any?) -> Void, dismiss: @escaping () -> Void, initialState: SetupTwoStepVerificationInitialState) { + self.context = context self.updateBackAction = updateBackAction self.updateNextAction = updateNextAction self.stateUpdated = stateUpdated self.present = present self.dismiss = dismiss - self.presentationData = self.sharedContext.currentPresentationData.with { $0 } + self.presentationData = self.context.sharedContext.currentPresentationData.with { $0 } self.innerState = SetupTwoStepVerificationControllerInnerState(layout: nil, data: SetupTwoStepVerificationControllerDataState(activity: false, state: SetupTwoStepVerificationState(initialState: initialState))) self.activityIndicator = ActivityIndicator(type: .custom(self.presentationData.theme.list.itemAccentColor, 22.0, 2.0, false)) @@ -173,7 +171,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { self.processStateUpdated() if self.innerState.data.state == nil { - self.actionDisposable.set((twoStepAuthData(self.network) + self.actionDisposable.set((self.context.engine.auth.twoStepAuthData() |> deliverOnMainQueue).start(next: { [weak self] data in guard let strongSelf = self else { return @@ -342,7 +340,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { state.data.activity = true return state }, transition: .animated(duration: 0.5, curve: .spring)) - strongSelf.actionDisposable.set((updateTwoStepVerificationPassword(network: strongSelf.network, currentPassword: nil, updatedPassword: .none) + strongSelf.actionDisposable.set((strongSelf.context.engine.auth.updateTwoStepVerificationPassword(currentPassword: nil, updatedPassword: .none) |> deliverOnMainQueue).start(next: { _ in guard let strongSelf = self else { return @@ -358,7 +356,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { guard let strongSelf = self else { return } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: strongSelf.presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) strongSelf.updateState({ state in var state = state state.data.activity = false @@ -395,7 +393,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { state.data.activity = true return state }, transition: .animated(duration: 0.5, curve: .spring)) - strongSelf.actionDisposable.set((resendTwoStepRecoveryEmail(network: strongSelf.network) + strongSelf.actionDisposable.set((strongSelf.context.engine.auth.resendTwoStepRecoveryEmail() |> deliverOnMainQueue).start(error: { error in guard let strongSelf = self else { return @@ -407,7 +405,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { case .generic: text = strongSelf.presentationData.strings.Login_UnknownError } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) strongSelf.updateState({ state in var state = state state.data.activity = false @@ -528,7 +526,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { if password == confirmation { state.data.state = .enterHint(mode: mode, password: password, hint: "") } else { - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.TwoStepAuth_SetupPasswordConfirmFailed, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: strongSelf.presentationData.strings.TwoStepAuth_SetupPasswordConfirmFailed, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) } case let .enterHint(mode, password, hint): switch mode { @@ -536,7 +534,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { state.data.state = .enterEmail(state: .create(password: password, hint: hint), email: "") case let .update(current, hasRecoveryEmail, hasSecureValues): state.data.activity = true - strongSelf.actionDisposable.set((updateTwoStepVerificationPassword(network: strongSelf.network, currentPassword: current, updatedPassword: .password(password: password, hint: hint, email: nil)) + strongSelf.actionDisposable.set((strongSelf.context.engine.auth.updateTwoStepVerificationPassword(currentPassword: current, updatedPassword: .password(password: password, hint: hint, email: nil)) |> deliverOnMainQueue).start(next: { result in guard let strongSelf = self else { return @@ -560,7 +558,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { guard let strongSelf = self else { return } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: strongSelf.presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) strongSelf.updateState({ state in var state = state state.data.activity = false @@ -572,7 +570,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { state.data.activity = true switch enterState { case let .create(password, hint): - strongSelf.actionDisposable.set((updateTwoStepVerificationPassword(network: strongSelf.network, currentPassword: nil, updatedPassword: .password(password: password, hint: hint, email: email)) + strongSelf.actionDisposable.set((strongSelf.context.engine.auth.updateTwoStepVerificationPassword(currentPassword: nil, updatedPassword: .password(password: password, hint: hint, email: email)) |> deliverOnMainQueue).start(next: { result in guard let strongSelf = self else { return @@ -604,7 +602,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { case .generic: text = strongSelf.presentationData.strings.Login_UnknownError } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) strongSelf.updateState({ state in var state = state state.data.activity = false @@ -620,7 +618,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { state.data.activity = true return state }, transition: .animated(duration: 0.5, curve: .spring)) - strongSelf.actionDisposable.set((updateTwoStepVerificationEmail(network: strongSelf.network, currentPassword: password, updatedEmail: email) + strongSelf.actionDisposable.set((strongSelf.context.engine.auth.updateTwoStepVerificationEmail(currentPassword: password, updatedEmail: email) |> deliverOnMainQueue).start(next: { result in guard let strongSelf = self else { return @@ -646,7 +644,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { guard let strongSelf = self else { return } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: strongSelf.presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) strongSelf.updateState({ state in var state = state state.data.activity = false @@ -656,7 +654,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { } case let .confirmEmail(confirmState, _, _, code): state.data.activity = true - strongSelf.actionDisposable.set((confirmTwoStepRecoveryEmail(network: strongSelf.network, code: code) + strongSelf.actionDisposable.set((strongSelf.context.engine.auth.confirmTwoStepRecoveryEmail(code: code) |> deliverOnMainQueue).start(error: { error in guard let strongSelf = self else { return @@ -675,7 +673,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { case .generic: text = strongSelf.presentationData.strings.Login_UnknownError } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) strongSelf.updateState({ state in var state = state @@ -700,7 +698,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { }, transition: .animated(duration: 0.5, curve: .spring)) } if case let .enterEmail(enterEmailState, enterEmailEmail)? = self.innerState.data.state, case .create = enterEmailState, enterEmailEmail.isEmpty { - self.present(textAlertController(sharedContext: self.sharedContext, title: nil, text: self.presentationData.strings.TwoStepAuth_EmailSkipAlert, actions: [TextAlertAction(type: .defaultAction, title: self.presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .destructiveAction, title: self.presentationData.strings.TwoStepAuth_EmailSkip, action: { + self.present(textAlertController(sharedContext: self.context.sharedContext, title: nil, text: self.presentationData.strings.TwoStepAuth_EmailSkipAlert, actions: [TextAlertAction(type: .defaultAction, title: self.presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .destructiveAction, title: self.presentationData.strings.TwoStepAuth_EmailSkip, action: { continueImpl() })]), nil) } else { diff --git a/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift b/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift index acb463f6e4..2d882e5c0c 100644 --- a/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift +++ b/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift @@ -35,14 +35,14 @@ public enum TwoFactorDataInputMode { public final class TwoFactorDataInputScreen: ViewController { private let sharedContext: SharedAccountContext - private let network: Network + private let engine: SomeTelegramEngine private var presentationData: PresentationData private let mode: TwoFactorDataInputMode private let stateUpdated: (SetupTwoStepVerificationStateUpdate) -> Void - public init(sharedContext: SharedAccountContext, network: Network, mode: TwoFactorDataInputMode, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate) -> Void) { + public init(sharedContext: SharedAccountContext, engine: SomeTelegramEngine, mode: TwoFactorDataInputMode, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate) -> Void) { self.sharedContext = sharedContext - self.network = network + self.engine = engine self.mode = mode self.stateUpdated = stateUpdated @@ -101,7 +101,7 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .passwordHint(recovery: nil, password: values[0]), stateUpdated: strongSelf.stateUpdated)) + controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .passwordHint(recovery: nil, password: values[0]), stateUpdated: strongSelf.stateUpdated)) navigationController.setViewControllers(controllers, animated: true) case let .passwordRecovery(recovery): let values = (strongSelf.displayNode as! TwoFactorDataInputScreenNode).inputText @@ -129,7 +129,7 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .passwordHint(recovery: recovery, password: values[0]), stateUpdated: strongSelf.stateUpdated)) + controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .passwordHint(recovery: recovery, password: values[0]), stateUpdated: strongSelf.stateUpdated)) navigationController.setViewControllers(controllers, animated: true) case let .emailAddress(password, hint): guard let text = (strongSelf.displayNode as! TwoFactorDataInputScreenNode).inputText.first, !text.isEmpty else { @@ -138,7 +138,7 @@ public final class TwoFactorDataInputScreen: ViewController { let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) strongSelf.present(statusController, in: .window(.root)) - let _ = (updateTwoStepVerificationPassword(network: strongSelf.network, currentPassword: "", updatedPassword: .password(password: password, hint: hint, email: text)) + let _ = (strongSelf.engine.auth.updateTwoStepVerificationPassword(currentPassword: "", updatedPassword: .password(password: password, hint: hint, email: text)) |> deliverOnMainQueue).start(next: { [weak statusController] result in statusController?.dismiss() @@ -163,7 +163,7 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .emailConfirmation(passwordAndHint: (password, hint), emailPattern: text, codeLength: pendingEmail.codeLength.flatMap(Int.init)), stateUpdated: strongSelf.stateUpdated)) + controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailConfirmation(passwordAndHint: (password, hint), emailPattern: text, codeLength: pendingEmail.codeLength.flatMap(Int.init)), stateUpdated: strongSelf.stateUpdated)) navigationController.setViewControllers(controllers, animated: true) } else { guard let navigationController = strongSelf.navigationController as? NavigationController else { @@ -178,7 +178,7 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .done)) + controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .done)) navigationController.setViewControllers(controllers, animated: true) } } @@ -205,120 +205,130 @@ public final class TwoFactorDataInputScreen: ViewController { } let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) strongSelf.present(statusController, in: .window(.root)) - - let _ = (updateTwoStepVerificationEmail(network: strongSelf.network, currentPassword: password, updatedEmail: text) - |> deliverOnMainQueue).start(next: { [weak statusController] result in - statusController?.dismiss() - - guard let strongSelf = self else { - return - } - - switch result { - case .none: - break - case let .password(_, pendingEmail): - if let pendingEmail = pendingEmail { - guard let navigationController = strongSelf.navigationController as? NavigationController else { - return - } - var controllers = navigationController.viewControllers.filter { controller in - if controller is TwoFactorAuthSplashScreen { - return false - } - if controller is TwoFactorDataInputScreen { - return false - } - return true - } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .emailConfirmation(passwordAndHint: (password, ""), emailPattern: text, codeLength: pendingEmail.codeLength.flatMap(Int.init)), stateUpdated: strongSelf.stateUpdated)) - navigationController.setViewControllers(controllers, animated: true) - } else { - guard let navigationController = strongSelf.navigationController as? NavigationController else { - return - } - var controllers = navigationController.viewControllers.filter { controller in - if controller is TwoFactorAuthSplashScreen { - return false - } - if controller is TwoFactorDataInputScreen { - return false - } - return true - } - controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .done)) - navigationController.setViewControllers(controllers, animated: true) + + switch strongSelf.engine { + case let .authorized(engine): + let _ = (engine.auth.updateTwoStepVerificationEmail(currentPassword: password, updatedEmail: text) + |> deliverOnMainQueue).start(next: { [weak statusController] result in + statusController?.dismiss() + + guard let strongSelf = self else { + return } - } - }, error: { [weak statusController] error in - statusController?.dismiss() - - guard let strongSelf = self else { - return - } - - let presentationData = strongSelf.presentationData - let alertText: String - switch error { - case .generic: - alertText = presentationData.strings.Login_UnknownError - case .invalidEmail: - alertText = presentationData.strings.TwoStepAuth_EmailInvalid - } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: alertText, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) - }) + + switch result { + case .none: + break + case let .password(_, pendingEmail): + if let pendingEmail = pendingEmail { + guard let navigationController = strongSelf.navigationController as? NavigationController else { + return + } + var controllers = navigationController.viewControllers.filter { controller in + if controller is TwoFactorAuthSplashScreen { + return false + } + if controller is TwoFactorDataInputScreen { + return false + } + return true + } + controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailConfirmation(passwordAndHint: (password, ""), emailPattern: text, codeLength: pendingEmail.codeLength.flatMap(Int.init)), stateUpdated: strongSelf.stateUpdated)) + navigationController.setViewControllers(controllers, animated: true) + } else { + guard let navigationController = strongSelf.navigationController as? NavigationController else { + return + } + var controllers = navigationController.viewControllers.filter { controller in + if controller is TwoFactorAuthSplashScreen { + return false + } + if controller is TwoFactorDataInputScreen { + return false + } + return true + } + controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .done)) + navigationController.setViewControllers(controllers, animated: true) + } + } + }, error: { [weak statusController] error in + statusController?.dismiss() + + guard let strongSelf = self else { + return + } + + let presentationData = strongSelf.presentationData + let alertText: String + switch error { + case .generic: + alertText = presentationData.strings.Login_UnknownError + case .invalidEmail: + alertText = presentationData.strings.TwoStepAuth_EmailInvalid + } + strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: alertText, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }) + case .unauthorized: + break + } case .emailConfirmation: guard let text = (strongSelf.displayNode as! TwoFactorDataInputScreenNode).inputText.first, !text.isEmpty else { return } let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) strongSelf.present(statusController, in: .window(.root)) - - let _ = (confirmTwoStepRecoveryEmail(network: strongSelf.network, code: text) - |> deliverOnMainQueue).start(error: { [weak statusController] error in - statusController?.dismiss() - - guard let strongSelf = self else { - return - } - - let presentationData = strongSelf.presentationData - let text: String - switch error { - case .invalidEmail: - text = presentationData.strings.TwoStepAuth_EmailInvalid - case .invalidCode: - text = presentationData.strings.Login_InvalidCodeError - case .expired: - text = presentationData.strings.TwoStepAuth_EmailCodeExpired - case .flood: - text = presentationData.strings.TwoStepAuth_FloodError - case .generic: - text = presentationData.strings.Login_UnknownError - } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) - }, completed: { [weak statusController] in - statusController?.dismiss() - - guard let strongSelf = self else { - return - } - - guard let navigationController = strongSelf.navigationController as? NavigationController else { - return - } - var controllers = navigationController.viewControllers.filter { controller in - if controller is TwoFactorAuthSplashScreen { - return false + + switch strongSelf.engine { + case let .authorized(engine): + let _ = (engine.auth.confirmTwoStepRecoveryEmail(code: text) + |> deliverOnMainQueue).start(error: { [weak statusController] error in + statusController?.dismiss() + + guard let strongSelf = self else { + return } - if controller is TwoFactorDataInputScreen { - return false + + let presentationData = strongSelf.presentationData + let text: String + switch error { + case .invalidEmail: + text = presentationData.strings.TwoStepAuth_EmailInvalid + case .invalidCode: + text = presentationData.strings.Login_InvalidCodeError + case .expired: + text = presentationData.strings.TwoStepAuth_EmailCodeExpired + case .flood: + text = presentationData.strings.TwoStepAuth_FloodError + case .generic: + text = presentationData.strings.Login_UnknownError } - return true - } - controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .done)) - navigationController.setViewControllers(controllers, animated: true) - }) + strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }, completed: { [weak statusController] in + statusController?.dismiss() + + guard let strongSelf = self else { + return + } + + guard let navigationController = strongSelf.navigationController as? NavigationController else { + return + } + var controllers = navigationController.viewControllers.filter { controller in + if controller is TwoFactorAuthSplashScreen { + return false + } + if controller is TwoFactorDataInputScreen { + return false + } + return true + } + controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .done)) + navigationController.setViewControllers(controllers, animated: true) + }) + case .unauthorized: + break + } case let .passwordHint(recovery, password): guard let value = (strongSelf.displayNode as! TwoFactorDataInputScreenNode).inputText.first, !value.isEmpty else { return @@ -327,7 +337,7 @@ public final class TwoFactorDataInputScreen: ViewController { if let recovery = recovery { strongSelf.performRecovery(recovery: recovery, password: password, hint: value) } else { - strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .emailAddress(password: password, hint: value), stateUpdated: strongSelf.stateUpdated)) + strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailAddress(password: password, hint: value), stateUpdated: strongSelf.stateUpdated)) } } }, skipAction: { [weak self] in @@ -344,7 +354,7 @@ public final class TwoFactorDataInputScreen: ViewController { let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) strongSelf.present(statusController, in: .window(.root)) - let _ = (updateTwoStepVerificationPassword(network: strongSelf.network, currentPassword: "", updatedPassword: .password(password: password, hint: hint, email: nil)) + let _ = (strongSelf.engine.auth.updateTwoStepVerificationPassword(currentPassword: "", updatedPassword: .password(password: password, hint: hint, email: nil)) |> deliverOnMainQueue).start(next: { [weak statusController] result in statusController?.dismiss() @@ -368,7 +378,7 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .done)) + controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .done)) navigationController.setViewControllers(controllers, animated: true) } }, error: { [weak statusController] error in @@ -395,7 +405,7 @@ public final class TwoFactorDataInputScreen: ViewController { if let recovery = recovery { strongSelf.performRecovery(recovery: recovery, password: password, hint: "") } else { - strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .emailAddress(password: password, hint: ""), stateUpdated: strongSelf.stateUpdated)) + strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailAddress(password: password, hint: ""), stateUpdated: strongSelf.stateUpdated)) } case let .passwordRecovery(recovery): strongSelf.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: strongSelf.presentationData), title: strongSelf.presentationData.strings.TwoFactorSetup_PasswordRecovery_SkipAlertTitle, text: strongSelf.presentationData.strings.TwoFactorSetup_PasswordRecovery_SkipAlertText, actions: [ @@ -429,7 +439,7 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .emailAddress(password: password, hint: hint), stateUpdated: strongSelf.stateUpdated)) + controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailAddress(password: password, hint: hint), stateUpdated: strongSelf.stateUpdated)) navigationController.setViewControllers(controllers, animated: true) } else { } @@ -443,8 +453,8 @@ public final class TwoFactorDataInputScreen: ViewController { let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) strongSelf.present(statusController, in: .window(.root)) - - let _ = (resendTwoStepRecoveryEmail(network: strongSelf.network) + + let _ = (strongSelf.engine.auth.resendTwoStepRecoveryEmail() |> deliverOnMainQueue).start(error: { [weak statusController] error in statusController?.dismiss() @@ -475,10 +485,13 @@ public final class TwoFactorDataInputScreen: ViewController { } private func performRecovery(recovery: TwoFactorDataInputMode.Recovery, password: String, hint: String) { + guard case let .unauthorized(engine) = self.engine else { + return + } let statusController = OverlayStatusController(theme: self.presentationData.theme, type: .loading(cancelled: nil)) self.present(statusController, in: .window(.root)) - let _ = (performPasswordRecovery(accountManager: self.sharedContext.accountManager, account: recovery.account, code: recovery.code, syncContacts: recovery.syncContacts, updatedPassword: password.isEmpty ? .none : .password(password: password, hint: hint, email: nil)) + let _ = (engine.auth.performPasswordRecovery(accountManager: self.sharedContext.accountManager, code: recovery.code, syncContacts: recovery.syncContacts, updatedPassword: password.isEmpty ? .none : .password(password: password, hint: hint, email: nil)) |> deliverOnMainQueue).start(error: { [weak self, weak statusController] error in statusController?.dismiss() diff --git a/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift b/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift index 8a2fe0f068..8f62595254 100644 --- a/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift +++ b/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift @@ -19,13 +19,13 @@ public enum TwoFactorAuthSplashMode { public final class TwoFactorAuthSplashScreen: ViewController { private let sharedContext: SharedAccountContext - private let network: Network + private let engine: SomeTelegramEngine private var presentationData: PresentationData private var mode: TwoFactorAuthSplashMode - public init(sharedContext: SharedAccountContext, network: Network, mode: TwoFactorAuthSplashMode) { + public init(sharedContext: SharedAccountContext, engine: SomeTelegramEngine, mode: TwoFactorAuthSplashMode) { self.sharedContext = sharedContext - self.network = network + self.engine = engine self.mode = mode self.presentationData = self.sharedContext.currentPresentationData.with { $0 } @@ -57,7 +57,7 @@ public final class TwoFactorAuthSplashScreen: ViewController { } switch strongSelf.mode { case .intro: - strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .password, stateUpdated: { _ in + strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .password, stateUpdated: { _ in })) case .done: guard let navigationController = strongSelf.navigationController as? NavigationController else { diff --git a/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift b/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift index 540cce7c68..c60aa3387d 100644 --- a/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift @@ -779,7 +779,7 @@ public func channelPermissionsController(context: AccountContext, peerId origina } let state = stateValue.with { $0 } if let modifiedSlowmodeTimeout = state.modifiedSlowmodeTimeout { - updateDefaultRightsDisposable.set(updateChannelSlowModeInteractively(postbox: context.account.postbox, network: context.account.network, accountStateManager: context.account.stateManager, peerId: view.peerId, timeout: modifiedSlowmodeTimeout == 0 ? nil : value).start()) + updateDefaultRightsDisposable.set(context.engine.peers.updateChannelSlowModeInteractively(peerId: view.peerId, timeout: modifiedSlowmodeTimeout == 0 ? nil : value).start()) } } else if let _ = view.peers[view.peerId] as? TelegramGroup, let _ = view.cachedData as? CachedGroupData { updateState { state in @@ -815,7 +815,7 @@ public func channelPermissionsController(context: AccountContext, peerId origina } } |> mapToSignal { upgradedPeerId -> Signal in - return updateChannelSlowModeInteractively(postbox: context.account.postbox, network: context.account.network, accountStateManager: context.account.stateManager, peerId: upgradedPeerId, timeout: modifiedSlowmodeTimeout == 0 ? nil : value) + return context.engine.peers.updateChannelSlowModeInteractively(peerId: upgradedPeerId, timeout: modifiedSlowmodeTimeout == 0 ? nil : value) |> mapToSignal { _ -> Signal in return .complete() } diff --git a/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift b/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift deleted file mode 100644 index 70c6a25db9..0000000000 --- a/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift +++ /dev/null @@ -1,244 +0,0 @@ -import Foundation -import UIKit -import AsyncDisplayKit -import Display -import SwiftSignalKit -import Postbox -import TelegramCore -import SyncCore -import TelegramPresentationData -import TelegramUIPreferences -import ItemListUI -import PresentationDataUtils -import AccountContext -import ItemListPeerItem -import ContextUI - -private final class GroupsInCommonControllerArguments { - let context: AccountContext - - let openPeer: (PeerId) -> Void - let contextAction: (Peer, ASDisplayNode, ContextGesture?) -> Void - - init(context: AccountContext, openPeer: @escaping (PeerId) -> Void, contextAction: @escaping (Peer, ASDisplayNode, ContextGesture?) -> Void) { - self.context = context - self.openPeer = openPeer - self.contextAction = contextAction - } -} - -private enum GroupsInCommonSection: Int32 { - case peers -} - -private enum GroupsInCommonEntryStableId: Hashable { - case peer(PeerId) -} - -private enum GroupsInCommonEntry: ItemListNodeEntry { - case peerItem(Int32, PresentationTheme, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, Peer) - - var section: ItemListSectionId { - switch self { - case .peerItem: - return GroupsInCommonSection.peers.rawValue - } - } - - var stableId: GroupsInCommonEntryStableId { - switch self { - case let .peerItem(_, _, _, _, _, peer): - return .peer(peer.id) - } - } - - static func ==(lhs: GroupsInCommonEntry, rhs: GroupsInCommonEntry) -> Bool { - switch lhs { - case let .peerItem(lhsIndex, lhsTheme, lhsStrings, lhsDateTimeFormat, lhsNameOrder, lhsPeer): - if case let .peerItem(rhsIndex, rhsTheme, rhsStrings, rhsDateTimeFormat, rhsNameOrder, rhsPeer) = rhs { - if lhsIndex != rhsIndex { - return false - } - if lhsTheme !== rhsTheme { - return false - } - if lhsStrings !== rhsStrings { - return false - } - if lhsDateTimeFormat != rhsDateTimeFormat { - return false - } - if !lhsPeer.isEqual(rhsPeer) { - return false - } - if lhsNameOrder != rhsNameOrder { - return false - } - return true - } else { - return false - } - } - } - - static func <(lhs: GroupsInCommonEntry, rhs: GroupsInCommonEntry) -> Bool { - switch lhs { - case let .peerItem(index, _, _, _, _, _): - switch rhs { - case let .peerItem(rhsIndex, _, _, _, _, _): - return index < rhsIndex - } - } - } - - func item(presentationData: ItemListPresentationData, arguments: Any) -> ListViewItem { - let arguments = arguments as! GroupsInCommonControllerArguments - switch self { - case let .peerItem(_, theme, strings, dateTimeFormat, nameDisplayOrder, peer): - return ItemListPeerItem(presentationData: presentationData, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, context: arguments.context, peer: peer, presence: nil, text: .none, label: .none, editing: ItemListPeerItemEditing(editable: false, editing: false, revealed: false), switchValue: nil, enabled: true, selectable: true, sectionId: self.section, action: { - arguments.openPeer(peer.id) - }, setPeerIdWithRevealedOptions: { _, _ in - }, removePeer: { _ in - }, contextAction: { node, gesture in - arguments.contextAction(peer, node, gesture) - }) - } - } -} - -private struct GroupsInCommonControllerState: Equatable { - static func ==(lhs: GroupsInCommonControllerState, rhs: GroupsInCommonControllerState) -> Bool { - return true - } -} - -private func groupsInCommonControllerEntries(presentationData: PresentationData, state: GroupsInCommonControllerState, peers: [Peer]?) -> [GroupsInCommonEntry] { - var entries: [GroupsInCommonEntry] = [] - - if let peers = peers { - var index: Int32 = 0 - for peer in peers { - entries.append(.peerItem(index, presentationData.theme, presentationData.strings, presentationData.dateTimeFormat, presentationData.nameDisplayOrder, peer)) - index += 1 - } - } - - return entries -} - -public func groupsInCommonController(context: AccountContext, peerId: PeerId) -> ViewController { - let statePromise = ValuePromise(GroupsInCommonControllerState(), ignoreRepeated: true) - let stateValue = Atomic(value: GroupsInCommonControllerState()) - let updateState: ((GroupsInCommonControllerState) -> GroupsInCommonControllerState) -> Void = { f in - statePromise.set(stateValue.modify { f($0) }) - } - - let actionsDisposable = DisposableSet() - - let peersPromise = Promise<[Peer]?>(nil) - - var pushControllerImpl: ((ViewController) -> Void)? - var getNavigationControllerImpl: (() -> NavigationController?)? - - var contextActionImpl: ((Peer, ASDisplayNode, ContextGesture?) -> Void)? - - let arguments = GroupsInCommonControllerArguments(context: context, openPeer: { memberId in - guard let navigationController = getNavigationControllerImpl?() else { - return - } - context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(memberId), animated: true)) - }, contextAction: { peer, node, gesture in - contextActionImpl?(peer, node, gesture) - }) - - let peersSignal: Signal<[Peer]?, NoError> = .single(nil) |> then(groupsInCommon(account: context.account, peerId: peerId) |> mapToSignal { peerIds -> Signal<[Peer], NoError> in - return context.account.postbox.transaction { transaction -> [Peer] in - var result: [Peer] = [] - for id in peerIds { - if let peer = transaction.getPeer(id.id) { - result.append(peer) - } - } - return result - } - } - |> map(Optional.init)) - - peersPromise.set(peersSignal) - - var previousPeers: [Peer]? - - let signal = combineLatest(context.sharedContext.presentationData, statePromise.get(), peersPromise.get()) - |> deliverOnMainQueue - |> map { presentationData, state, peers -> (ItemListControllerState, (ItemListNodeState, Any)) in - var emptyStateItem: ItemListControllerEmptyStateItem? - if peers == nil { - emptyStateItem = ItemListLoadingIndicatorEmptyStateItem(theme: presentationData.theme) - } - - let previous = previousPeers - previousPeers = peers - - let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(presentationData.strings.UserInfo_GroupsInCommon), leftNavigationButton: nil, rightNavigationButton: nil, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: false) - let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: groupsInCommonControllerEntries(presentationData: presentationData, state: state, peers: peers), style: .blocks, emptyStateItem: emptyStateItem, animateChanges: previous != nil && peers != nil && previous!.count >= peers!.count) - - return (controllerState, (listState, arguments)) - } |> afterDisposed { - actionsDisposable.dispose() - } - - let controller = ItemListController(context: context, state: signal) - pushControllerImpl = { [weak controller] c in - if let controller = controller { - (controller.navigationController as? NavigationController)?.pushViewController(c) - } - } - getNavigationControllerImpl = { [weak controller] in - return controller?.navigationController as? NavigationController - } - contextActionImpl = { [weak controller] peer, node, gesture in - guard let controller = controller else { - return - } - let presentationData = context.sharedContext.currentPresentationData.with { $0 } - let chatController = context.sharedContext.makeChatController(context: context, chatLocation: .peer(peer.id), subject: nil, botStart: nil, mode: .standard(previewing: true)) - chatController.canReadHistory.set(false) - let items: [ContextMenuItem] = [ - .action(ContextMenuActionItem(text: presentationData.strings.Conversation_LinkDialogOpen, icon: { _ in nil }, action: { _, f in - f(.dismissWithoutContent) - arguments.openPeer(peer.id) - })) - ] - let contextController = ContextController(account: context.account, presentationData: presentationData, source: .controller(ContextControllerContentSourceImpl(controller: chatController, sourceNode: node)), items: .single(items), reactionItems: [], gesture: gesture) - controller.presentInGlobalOverlay(contextController) - } - return controller -} - -private final class ContextControllerContentSourceImpl: ContextControllerContentSource { - let controller: ViewController - weak var sourceNode: ASDisplayNode? - - let navigationController: NavigationController? = nil - - let passthroughTouches: Bool = true - - init(controller: ViewController, sourceNode: ASDisplayNode?) { - self.controller = controller - self.sourceNode = sourceNode - } - - func transitionInfo() -> ContextControllerTakeControllerInfo? { - let sourceNode = self.sourceNode - return ContextControllerTakeControllerInfo(contentAreaInScreenSpace: CGRect(origin: CGPoint(), size: CGSize(width: 10.0, height: 10.0)), sourceNode: { [weak sourceNode] in - if let sourceNode = sourceNode { - return (sourceNode, sourceNode.bounds) - } else { - return nil - } - }) - } - - func animatedIn() { - } -} diff --git a/submodules/PeerInfoUI/Sources/PeerReportController.swift b/submodules/PeerInfoUI/Sources/PeerReportController.swift index 0b7d57f71f..d13701fb43 100644 --- a/submodules/PeerInfoUI/Sources/PeerReportController.swift +++ b/submodules/PeerInfoUI/Sources/PeerReportController.swift @@ -107,19 +107,19 @@ public func presentPeerReportOptions(context: AccountContext, parent: ViewContro } else { switch subject { case let .peer(peerId): - let _ = (reportPeer(account: context.account, peerId: peerId, reason: reportReason, message: "") + let _ = (context.engine.peers.reportPeer(peerId: peerId, reason: reportReason, message: "") |> deliverOnMainQueue).start(completed: { displaySuccess() completion(nil, false) }) case let .messages(messageIds): - let _ = (reportPeerMessages(account: context.account, messageIds: messageIds, reason: reportReason, message: "") + let _ = (context.engine.peers.reportPeerMessages(messageIds: messageIds, reason: reportReason, message: "") |> deliverOnMainQueue).start(completed: { displaySuccess() completion(nil, false) }) case let .profilePhoto(peerId, photoId): - let _ = (reportPeerPhoto(account: context.account, peerId: peerId, reason: reportReason, message: "") + let _ = (context.engine.peers.reportPeerPhoto(peerId: peerId, reason: reportReason, message: "") |> deliverOnMainQueue).start(completed: { displaySuccess() completion(nil, false) @@ -233,19 +233,19 @@ public func peerReportOptionsController(context: AccountContext, subject: PeerRe } else { switch subject { case let .peer(peerId): - let _ = (reportPeer(account: context.account, peerId: peerId, reason: reportReason, message: message) + let _ = (context.engine.peers.reportPeer(peerId: peerId, reason: reportReason, message: message) |> deliverOnMainQueue).start(completed: { displaySuccess() completion(nil, true) }) case let .messages(messageIds): - let _ = (reportPeerMessages(account: context.account, messageIds: messageIds, reason: reportReason, message: message) + let _ = (context.engine.peers.reportPeerMessages(messageIds: messageIds, reason: reportReason, message: message) |> deliverOnMainQueue).start(completed: { displaySuccess() completion(nil, true) }) case let .profilePhoto(peerId, photoId): - let _ = (reportPeerPhoto(account: context.account, peerId: peerId, reason: reportReason, message: message) + let _ = (context.engine.peers.reportPeerPhoto(peerId: peerId, reason: reportReason, message: message) |> deliverOnMainQueue).start(completed: { displaySuccess() completion(nil, true) diff --git a/submodules/SettingsUI/Sources/Privacy and Security/CreatePasswordController.swift b/submodules/SettingsUI/Sources/Privacy and Security/CreatePasswordController.swift index 5be4d7c79c..f8d3dc0936 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/CreatePasswordController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/CreatePasswordController.swift @@ -274,7 +274,7 @@ func createPasswordController(context: AccountContext, createPasswordContext: Cr state.saving = true return state } - saveDisposable.set((updateTwoStepVerificationPassword(network: context.account.network, currentPassword: currentPassword, updatedPassword: .password(password: state.passwordText, hint: state.hintText, email: email)) + saveDisposable.set((context.engine.auth.updateTwoStepVerificationPassword(currentPassword: currentPassword, updatedPassword: .password(password: state.passwordText, hint: state.hintText, email: email)) |> deliverOnMainQueue).start(next: { update in switch update { case .none: @@ -356,7 +356,7 @@ func createPasswordController(context: AccountContext, createPasswordContext: Cr return state } - saveDisposable.set((updateTwoStepVerificationPassword(network: context.account.network, currentPassword: currentPassword, updatedPassword: .none) + saveDisposable.set((context.engine.auth.updateTwoStepVerificationPassword(currentPassword: currentPassword, updatedPassword: .none) |> deliverOnMainQueue).start(next: { _ in updateState { state in var state = state diff --git a/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift b/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift index 86596d241a..7f2ada099e 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift @@ -542,7 +542,7 @@ public func privacyAndSecurityController(context: AccountContext, initialSetting } let updateHasTwoStepAuth: () -> Void = { - let signal = twoStepVerificationConfiguration(account: context.account) + let signal = context.engine.auth.twoStepVerificationConfiguration() |> map { value -> TwoStepVerificationAccessConfiguration? in return TwoStepVerificationAccessConfiguration(configuration: value, password: nil) } @@ -735,7 +735,7 @@ public func privacyAndSecurityController(context: AccountContext, initialSetting case let .notSet(pendingEmail): //intro = pendingEmail == nil if pendingEmail == nil { - let controller = TwoFactorAuthSplashScreen(sharedContext: context.sharedContext, network: context.account.network, mode: .intro) + let controller = TwoFactorAuthSplashScreen(sharedContext: context.sharedContext, engine: .authorized(context.engine), mode: .intro) pushControllerImpl?(controller, true) return } else { diff --git a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationPasswordEntryController.swift b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationPasswordEntryController.swift index 6a4ab372c1..b71f124495 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationPasswordEntryController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationPasswordEntryController.swift @@ -332,7 +332,7 @@ func twoStepVerificationPasswordEntryController(context: AccountContext, mode: T if case let .change(current) = mode { currentPassword = current } - updatePasswordDisposable.set((updateTwoStepVerificationPassword(network: context.account.network, currentPassword: currentPassword, updatedPassword: .password(password: password, hint: hint, email: email)) |> deliverOnMainQueue).start(next: { update in + updatePasswordDisposable.set((context.engine.auth.updateTwoStepVerificationPassword(currentPassword: currentPassword, updatedPassword: .password(password: password, hint: hint, email: email)) |> deliverOnMainQueue).start(next: { update in updateState { $0.withUpdatedUpdating(false) } @@ -357,7 +357,7 @@ func twoStepVerificationPasswordEntryController(context: AccountContext, mode: T presentControllerImpl?(textAlertController(context: context, title: nil, text: alertText, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) })) case let .setupEmail(password): - updatePasswordDisposable.set((updateTwoStepVerificationEmail(network: context.account.network, currentPassword: password, updatedEmail: email) |> deliverOnMainQueue).start(next: { update in + updatePasswordDisposable.set((context.engine.auth.updateTwoStepVerificationEmail(currentPassword: password, updatedEmail: email) |> deliverOnMainQueue).start(next: { update in updateState { $0.withUpdatedUpdating(false) } diff --git a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift index acbd02cbe2..e5e271efb4 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift @@ -168,7 +168,7 @@ func twoStepVerificationResetController(context: AccountContext, emailPattern: S } } if let code = code { - resetPasswordDisposable.set((recoverTwoStepVerificationPassword(network: context.account.network, code: code) |> deliverOnMainQueue).start(error: { error in + resetPasswordDisposable.set((context.engine.auth.recoverTwoStepVerificationPassword(code: code) |> deliverOnMainQueue).start(error: { error in updateState { return $0.withUpdatedChecking(false) } @@ -204,7 +204,7 @@ func twoStepVerificationResetController(context: AccountContext, emailPattern: S let presentationData = context.sharedContext.currentPresentationData.with { $0 } presentControllerImpl?(textAlertController(context: context, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetTitle, text: presentationData.strings.TwoStepAuth_RecoveryEmailResetText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetAction, action: { - let _ = (requestTwoStepPasswordReset(network: context.account.network) + let _ = (context.engine.auth.requestTwoStepPasswordReset() |> deliverOnMainQueue).start(next: { result in switch result { case .done, .waitingForReset: diff --git a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift index 33c4fa6996..727eff38c6 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift @@ -316,7 +316,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: } else { dataPromise.set(.single(TwoStepVerificationUnlockSettingsControllerData.access(configuration: nil)) |> then(remoteDataPromise.get())) - remoteDataPromise.set(twoStepVerificationConfiguration(account: context.account) + remoteDataPromise.set(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) }) } case let .manage(password, email, pendingEmail, hasSecureValues): @@ -355,7 +355,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: return state } if let code = code { - setupDisposable.set((confirmTwoStepRecoveryEmail(network: context.account.network, code: code) + setupDisposable.set((context.engine.auth.confirmTwoStepRecoveryEmail(code: code) |> deliverOnMainQueue).start(error: { error in updateState { state in var state = state @@ -404,7 +404,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: dataPromise.set(.single(TwoStepVerificationUnlockSettingsControllerData.manage(password: password, emailSet: true, pendingEmail: nil, hasSecureValues: false))) } else { dataPromise.set(.single(.access(configuration: nil)) - |> then(twoStepVerificationConfiguration(account: context.account) |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: pendingEmail.password)) })) + |> then(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: pendingEmail.password)) })) } case let .manage(manage): dataPromise.set(.single(TwoStepVerificationUnlockSettingsControllerData.manage(password: manage.password, emailSet: true, pendingEmail: nil, hasSecureValues: manage.hasSecureValues))) @@ -441,9 +441,9 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: } if let password = password, !password.isEmpty, !wasChecking { - checkDisposable.set((requestTwoStepVerifiationSettings(network: context.account.network, password: password) + checkDisposable.set((context.engine.auth.requestTwoStepVerifiationSettings(password: password) |> mapToSignal { settings -> Signal<(TwoStepVerificationSettings, TwoStepVerificationPendingEmail?), AuthorizationPasswordVerificationError> in - return twoStepVerificationConfiguration(account: context.account) + return context.engine.auth.twoStepVerificationConfiguration() |> mapError { _ -> AuthorizationPasswordVerificationError in } |> map { configuration in @@ -500,7 +500,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: state.checking = true return state } - setupResultDisposable.set((requestTwoStepVerificationPasswordRecoveryCode(network: context.account.network) + setupResultDisposable.set((context.engine.auth.requestTwoStepVerificationPasswordRecoveryCode() |> deliverOnMainQueue).start(next: { emailPattern in updateState { state in var state = state @@ -514,7 +514,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: }) completionImpl = { [weak controller] result in if !result { - dataPromise.set(twoStepVerificationConfiguration(account: context.account) + dataPromise.set(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) }) controller?.view.endEditing(true) @@ -541,11 +541,11 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: if let pendingResetTimestamp = pendingResetTimestamp { let remainingSeconds = pendingResetTimestamp - Int32(Date().timeIntervalSince1970) if remainingSeconds <= 0 { - let _ = (requestTwoStepPasswordReset(network: context.account.network) + let _ = (context.engine.auth.requestTwoStepPasswordReset() |> deliverOnMainQueue).start(next: { result in switch result { case .done, .waitingForReset: - dataPromise.set(twoStepVerificationConfiguration(account: context.account) + dataPromise.set(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) }) case .declined: @@ -557,11 +557,11 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: } } else { presentControllerImpl?(textAlertController(context: context, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetTitle, text: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetAction, action: { - let _ = (requestTwoStepPasswordReset(network: context.account.network) + let _ = (context.engine.auth.requestTwoStepPasswordReset() |> deliverOnMainQueue).start(next: { result in switch result { case .done, .waitingForReset: - dataPromise.set(twoStepVerificationConfiguration(account: context.account) + dataPromise.set(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) }) case .declined: @@ -603,7 +603,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.TwoStepAuth_EnabledSuccess, false)), nil) } else { dataPromise.set(.single(.access(configuration: nil)) - |> then(twoStepVerificationConfiguration(account: context.account) |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) + |> then(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) } } if shouldDismiss { @@ -635,7 +635,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.TwoStepAuth_PasswordChangeSuccess, false)), nil) } else { dataPromise.set(.single(.access(configuration: nil)) - |> then(twoStepVerificationConfiguration(account: context.account) |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) + |> then(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) } } if shouldDismiss { @@ -677,7 +677,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: case let .manage(password, _, _, _): let presentationData = context.sharedContext.currentPresentationData.with { $0 } presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.TwoStepAuth_DisableSuccess, false)), nil) - return updateTwoStepVerificationPassword(network: context.account.network, currentPassword: password, updatedPassword: .none) + return context.engine.auth.updateTwoStepVerificationPassword(currentPassword: password, updatedPassword: .none) |> mapToSignal { _ -> Signal in return .complete() } @@ -730,7 +730,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(emailSet ? presentationData.strings.TwoStepAuth_EmailChangeSuccess : presentationData.strings.TwoStepAuth_EmailAddSuccess, false)), nil) } else { dataPromise.set(.single(.access(configuration: nil)) - |> then(twoStepVerificationConfiguration(account: context.account) |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) + |> then(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) } } if shouldDismiss { @@ -746,7 +746,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: state.checking = true return state } - setupDisposable.set((updateTwoStepVerificationPassword(network: context.account.network, currentPassword: nil, updatedPassword: .none) + setupDisposable.set((context.engine.auth.updateTwoStepVerificationPassword(currentPassword: nil, updatedPassword: .none) |> deliverOnMainQueue).start(next: { _ in updateState { state in var state = state @@ -817,7 +817,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: dataPromise.set(.single(data)) } else { dataPromise.set(.single(.access(configuration: nil)) - |> then(twoStepVerificationConfiguration(account: context.account) |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) + |> then(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) } } if shouldDismiss { @@ -830,22 +830,22 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: }, declinePasswordReset: { let presentationData = context.sharedContext.currentPresentationData.with { $0 } presentControllerImpl?(textAlertController(context: context, title: presentationData.strings.TwoStepAuth_CancelResetTitle, text: presentationData.strings.TwoStepAuth_CancelResetText, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_Yes, action: { - let _ = (declineTwoStepPasswordReset(network: context.account.network) + let _ = (context.engine.auth.declineTwoStepPasswordReset() |> deliverOnMainQueue).start(completed: { - dataPromise.set(twoStepVerificationConfiguration(account: context.account) + dataPromise.set(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) }) }) }), TextAlertAction(type: .genericAction, title: presentationData.strings.Common_No, action: { })]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }, resetPassword: { - let _ = (requestTwoStepPasswordReset(network: context.account.network) + let _ = (context.engine.auth.requestTwoStepPasswordReset() |> deliverOnMainQueue).start(next: { result in switch result { case .done: dismissImpl?() case .waitingForReset: - dataPromise.set(twoStepVerificationConfiguration(account: context.account) + dataPromise.set(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) }) case .declined: diff --git a/submodules/TelegramCallsUI/Sources/CallFeedbackController.swift b/submodules/TelegramCallsUI/Sources/CallFeedbackController.swift index 3016ce0f12..d21e7b7cd1 100644 --- a/submodules/TelegramCallsUI/Sources/CallFeedbackController.swift +++ b/submodules/TelegramCallsUI/Sources/CallFeedbackController.swift @@ -314,7 +314,7 @@ public func callFeedbackController(sharedContext: SharedAccountContext, account: } comment.append(hashtags) - let _ = rateCallAndSendLogs(account: account, callId: callId, starsCount: rating, comment: comment, userInitiated: userInitiated, includeLogs: state.includeLogs).start() + let _ = rateCallAndSendLogs(engine: TelegramEngine(account: account), callId: callId, starsCount: rating, comment: comment, userInitiated: userInitiated, includeLogs: state.includeLogs).start() dismissImpl?() presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .starSuccess(presentationData.strings.CallFeedback_Success))) diff --git a/submodules/TelegramCallsUI/Sources/CallRatingController.swift b/submodules/TelegramCallsUI/Sources/CallRatingController.swift index 72ce0d4316..961f02c7a6 100644 --- a/submodules/TelegramCallsUI/Sources/CallRatingController.swift +++ b/submodules/TelegramCallsUI/Sources/CallRatingController.swift @@ -240,24 +240,24 @@ private final class CallRatingAlertContentNode: AlertContentNode { } } -func rateCallAndSendLogs(account: Account, callId: CallId, starsCount: Int, comment: String, userInitiated: Bool, includeLogs: Bool) -> Signal { +func rateCallAndSendLogs(engine: TelegramEngine, callId: CallId, starsCount: Int, comment: String, userInitiated: Bool, includeLogs: Bool) -> Signal { let peerId = PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt32Value(4244000)) - let rate = rateCall(account: account, callId: callId, starsCount: Int32(starsCount), comment: comment, userInitiated: userInitiated) + let rate = engine.calls.rateCall(callId: callId, starsCount: Int32(starsCount), comment: comment, userInitiated: userInitiated) if includeLogs { let id = Int64.random(in: Int64.min ... Int64.max) let name = "\(callId.id)_\(callId.accessHash).log.json" - let path = callLogsPath(account: account) + "/" + name + let path = callLogsPath(account: engine.account) + "/" + name let file = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.LocalFile, id: id), partialReference: nil, resource: LocalFileReferenceMediaResource(localFilePath: path, randomId: id), previewRepresentations: [], videoThumbnails: [], immediateThumbnailData: nil, mimeType: "application/text", size: nil, attributes: [.FileName(fileName: name)]) let message = EnqueueMessage.message(text: comment, attributes: [], mediaReference: .standalone(media: file), replyToMessageId: nil, localGroupingKey: nil, correlationId: nil) return rate - |> then(enqueueMessages(account: account, peerId: peerId, messages: [message]) + |> then(enqueueMessages(account: engine.account, peerId: peerId, messages: [message]) |> mapToSignal({ _ -> Signal in return .single(Void()) })) } else if !comment.isEmpty { return rate - |> then(enqueueMessages(account: account, peerId: peerId, messages: [.message(text: comment, attributes: [], mediaReference: nil, replyToMessageId: nil, localGroupingKey: nil, correlationId: nil)]) + |> then(enqueueMessages(account: engine.account, peerId: peerId, messages: [.message(text: comment, attributes: [], mediaReference: nil, replyToMessageId: nil, localGroupingKey: nil, correlationId: nil)]) |> mapToSignal({ _ -> Signal in return .single(Void()) })) @@ -284,7 +284,7 @@ public func callRatingController(sharedContext: SharedAccountContext, account: A if rating < 4 { push(callFeedbackController(sharedContext: sharedContext, account: account, callId: callId, rating: rating, userInitiated: userInitiated, isVideo: isVideo)) } else { - let _ = rateCallAndSendLogs(account: account, callId: callId, starsCount: rating, comment: "", userInitiated: userInitiated, includeLogs: false).start() + let _ = rateCallAndSendLogs(engine: TelegramEngine(account: account), callId: callId, starsCount: rating, comment: "", userInitiated: userInitiated, includeLogs: false).start() } }) diff --git a/submodules/TelegramCore/Sources/Account.swift b/submodules/TelegramCore/Sources/Account.swift index 808361feb3..60a3bb4429 100644 --- a/submodules/TelegramCore/Sources/Account.swift +++ b/submodules/TelegramCore/Sources/Account.swift @@ -373,7 +373,7 @@ public struct TwoStepAuthData { public let pendingResetTimestamp: Int32? } -public func twoStepAuthData(_ network: Network) -> Signal { +func _internal_twoStepAuthData(_ network: Network) -> Signal { return network.request(Api.functions.account.getPassword()) |> map { config -> TwoStepAuthData in switch config { @@ -664,7 +664,7 @@ func securePasswordKDF(password: String, derivation: TwoStepSecurePasswordDeriva } func verifyPassword(_ account: UnauthorizedAccount, password: String) -> Signal { - return twoStepAuthData(account.network) + return _internal_twoStepAuthData(account.network) |> mapToSignal { authData -> Signal in guard let currentPasswordDerivation = authData.currentPasswordDerivation, let srpSessionData = authData.srpSessionData else { return .fail(MTRpcError(errorCode: 400, errorDescription: "INTERNAL_NO_PASSWORD")) diff --git a/submodules/TelegramCore/Sources/Authorization.swift b/submodules/TelegramCore/Sources/Authorization.swift index ccc03759c8..ef1acec2b7 100644 --- a/submodules/TelegramCore/Sources/Authorization.swift +++ b/submodules/TelegramCore/Sources/Authorization.swift @@ -389,8 +389,8 @@ public func checkPasswordRecoveryCode(network: Network, code: String) -> Signal< } } -public func performPasswordRecovery(accountManager: AccountManager, account: UnauthorizedAccount, code: String, syncContacts: Bool, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { - return twoStepAuthData(account.network) +func _internal_performPasswordRecovery(accountManager: AccountManager, account: UnauthorizedAccount, code: String, syncContacts: Bool, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + return _internal_twoStepAuthData(account.network) |> mapError { _ -> PasswordRecoveryError in return .generic } diff --git a/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift b/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift index 976766c460..a79b0a2a56 100644 --- a/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift +++ b/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift @@ -95,7 +95,7 @@ public func updateChannelOwnership(account: Account, accountStateManager: Accoun let updatedParticipant = ChannelParticipant.creator(id: user.id, adminInfo: nil, rank: currentParticipant?.rank) let updatedPreviousCreator = ChannelParticipant.member(id: accountUser.id, invitedAt: Int32(Date().timeIntervalSince1970), adminInfo: ChannelParticipantAdminInfo(rights: TelegramChatAdminRights(rights: flags), promotedBy: accountUser.id, canBeEditedByAccountPeer: false), banInfo: nil, rank: currentCreator?.rank) - let checkPassword = twoStepAuthData(account.network) + let checkPassword = _internal_twoStepAuthData(account.network) |> mapError { error -> ChannelOwnershipTransferError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { return .limitExceeded diff --git a/submodules/TelegramCore/Sources/ChatHistoryImport.swift b/submodules/TelegramCore/Sources/ChatHistoryImport.swift deleted file mode 100644 index d1e5811512..0000000000 --- a/submodules/TelegramCore/Sources/ChatHistoryImport.swift +++ /dev/null @@ -1,244 +0,0 @@ -import Foundation -import SwiftSignalKit -import Postbox -import SyncCore -import TelegramApi - -public enum ChatHistoryImport { - public struct Session { - fileprivate var peerId: PeerId - fileprivate var inputPeer: Api.InputPeer - fileprivate var id: Int64 - } - - public enum InitImportError { - case generic - case chatAdminRequired - case invalidChatType - case userBlocked - case limitExceeded - } - - public enum ParsedInfo { - case privateChat(title: String?) - case group(title: String?) - case unknown(title: String?) - } - - public enum GetInfoError { - case generic - case parseError - } - - public static func getInfo(account: Account, header: String) -> Signal { - return account.network.request(Api.functions.messages.checkHistoryImport(importHead: header)) - |> mapError { _ -> GetInfoError in - return .generic - } - |> mapToSignal { result -> Signal in - switch result { - case let .historyImportParsed(flags, title): - if (flags & (1 << 0)) != 0 { - return .single(.privateChat(title: title)) - } else if (flags & (1 << 1)) != 0 { - return .single(.group(title: title)) - } else { - return .single(.unknown(title: title)) - } - } - } - } - - public static func initSession(account: Account, peerId: PeerId, file: TempBoxFile, mediaCount: Int32) -> Signal { - return multipartUpload(network: account.network, postbox: account.postbox, source: .tempFile(file), encrypt: false, tag: nil, hintFileSize: nil, hintFileIsLarge: false, forceNoBigParts: true, useLargerParts: true, increaseParallelParts: true, useMultiplexedRequests: false, useCompression: true) - |> mapError { _ -> InitImportError in - return .generic - } - |> mapToSignal { result -> Signal in - switch result { - case let .inputFile(inputFile): - return account.postbox.transaction { transaction -> Api.InputPeer? in - return transaction.getPeer(peerId).flatMap(apiInputPeer) - } - |> castError(InitImportError.self) - |> mapToSignal { inputPeer -> Signal in - guard let inputPeer = inputPeer else { - return .fail(.generic) - } - return account.network.request(Api.functions.messages.initHistoryImport(peer: inputPeer, file: inputFile, mediaCount: mediaCount), automaticFloodWait: false) - |> mapError { error -> InitImportError in - if error.errorDescription == "CHAT_ADMIN_REQUIRED" { - return .chatAdminRequired - } else if error.errorDescription == "IMPORT_PEER_TYPE_INVALID" { - return .invalidChatType - } else if error.errorDescription == "USER_IS_BLOCKED" { - return .userBlocked - } else if error.errorDescription == "FLOOD_WAIT" { - return .limitExceeded - } else { - return .generic - } - } - |> map { result -> Session in - switch result { - case let .historyImport(id): - return Session(peerId: peerId, inputPeer: inputPeer, id: id) - } - } - } - case .progress: - return .complete() - case .inputSecretFile: - return .fail(.generic) - } - } - } - - public enum MediaType { - case photo - case file - case video - case sticker - case voice - } - - public enum UploadMediaError { - case generic - case chatAdminRequired - } - - public static func uploadMedia(account: Account, session: Session, file: TempBoxFile, disposeFileAfterDone: Bool, fileName: String, mimeType: String, type: MediaType) -> Signal { - var forceNoBigParts = true - guard let size = fileSize(file.path), size != 0 else { - return .single(1.0) - } - if size >= 30 * 1024 * 1024 { - forceNoBigParts = false - } - - return multipartUpload(network: account.network, postbox: account.postbox, source: .tempFile(file), encrypt: false, tag: nil, hintFileSize: nil, hintFileIsLarge: false, forceNoBigParts: forceNoBigParts, useLargerParts: true, useMultiplexedRequests: true) - |> mapError { _ -> UploadMediaError in - return .generic - } - |> mapToSignal { result -> Signal in - let inputMedia: Api.InputMedia - switch result { - case let .inputFile(inputFile): - switch type { - case .photo: - inputMedia = .inputMediaUploadedPhoto(flags: 0, file: inputFile, stickers: nil, ttlSeconds: nil) - case .file, .video, .sticker, .voice: - var attributes: [Api.DocumentAttribute] = [] - attributes.append(.documentAttributeFilename(fileName: fileName)) - var resolvedMimeType = mimeType - switch type { - case .video: - resolvedMimeType = "video/mp4" - case .sticker: - resolvedMimeType = "image/webp" - case .voice: - resolvedMimeType = "audio/ogg" - default: - break - } - inputMedia = .inputMediaUploadedDocument(flags: 0, file: inputFile, thumb: nil, mimeType: resolvedMimeType, attributes: attributes, stickers: nil, ttlSeconds: nil) - } - case let .progress(value): - return .single(value) - case .inputSecretFile: - return .fail(.generic) - } - return account.network.request(Api.functions.messages.uploadImportedMedia(peer: session.inputPeer, importId: session.id, fileName: fileName, media: inputMedia)) - |> mapError { error -> UploadMediaError in - switch error.errorDescription { - case "CHAT_ADMIN_REQUIRED": - return .chatAdminRequired - default: - return .generic - } - } - |> mapToSignal { result -> Signal in - return .single(1.0) - } - |> afterDisposed { - if disposeFileAfterDone { - TempBox.shared.dispose(file) - } - } - } - } - - public enum StartImportError { - case generic - } - - public static func startImport(account: Account, session: Session) -> Signal { - return account.network.request(Api.functions.messages.startHistoryImport(peer: session.inputPeer, importId: session.id)) - |> mapError { _ -> StartImportError in - return .generic - } - |> mapToSignal { result -> Signal in - if case .boolTrue = result { - return .complete() - } else { - return .fail(.generic) - } - } - } - - public enum CheckPeerImportResult { - case allowed - case alert(String) - } - - public enum CheckPeerImportError { - case generic - case chatAdminRequired - case invalidChatType - case userBlocked - case limitExceeded - case notMutualContact - } - - public static func checkPeerImport(account: Account, peerId: PeerId) -> Signal { - return account.postbox.transaction { transaction -> Peer? in - return transaction.getPeer(peerId) - } - |> castError(CheckPeerImportError.self) - |> mapToSignal { peer -> Signal in - guard let peer = peer else { - return .fail(.generic) - } - guard let inputPeer = apiInputPeer(peer) else { - return .fail(.generic) - } - - return account.network.request(Api.functions.messages.checkHistoryImportPeer(peer: inputPeer)) - |> mapError { error -> CheckPeerImportError in - if error.errorDescription == "CHAT_ADMIN_REQUIRED" { - return .chatAdminRequired - } else if error.errorDescription == "IMPORT_PEER_TYPE_INVALID" { - return .invalidChatType - } else if error.errorDescription == "USER_IS_BLOCKED" { - return .userBlocked - } else if error.errorDescription == "USER_NOT_MUTUAL_CONTACT" { - return .notMutualContact - } else if error.errorDescription == "FLOOD_WAIT" { - return .limitExceeded - } else { - return .generic - } - } - |> map { result -> CheckPeerImportResult in - switch result { - case let .checkedHistoryImportPeer(confirmText): - if confirmText.isEmpty { - return .allowed - } else { - return .alert(confirmText) - } - } - } - } - } -} diff --git a/submodules/TelegramCore/Sources/GlobalTelegramCoreConfiguration.swift b/submodules/TelegramCore/Sources/GlobalTelegramCoreConfiguration.swift deleted file mode 100644 index 7cf05d8aa9..0000000000 --- a/submodules/TelegramCore/Sources/GlobalTelegramCoreConfiguration.swift +++ /dev/null @@ -1,5 +0,0 @@ -import Foundation - -public final class GlobalTelegramCoreConfiguration { - public static var readMessages: Bool = true -} diff --git a/submodules/TelegramCore/Sources/SetSecretChatMessageAutoremoveTimeoutInteractively.swift b/submodules/TelegramCore/Sources/SecretChats/SetSecretChatMessageAutoremoveTimeoutInteractively.swift similarity index 88% rename from submodules/TelegramCore/Sources/SetSecretChatMessageAutoremoveTimeoutInteractively.swift rename to submodules/TelegramCore/Sources/SecretChats/SetSecretChatMessageAutoremoveTimeoutInteractively.swift index 13906bc270..8dba9e3b3c 100644 --- a/submodules/TelegramCore/Sources/SetSecretChatMessageAutoremoveTimeoutInteractively.swift +++ b/submodules/TelegramCore/Sources/SecretChats/SetSecretChatMessageAutoremoveTimeoutInteractively.swift @@ -4,7 +4,7 @@ import SwiftSignalKit import SyncCore -public func setSecretChatMessageAutoremoveTimeoutInteractively(account: Account, peerId: PeerId, timeout: Int32?) -> Signal { +func _internal_setSecretChatMessageAutoremoveTimeoutInteractively(account: Account, peerId: PeerId, timeout: Int32?) -> Signal { return account.postbox.transaction { transaction -> Void in if let peer = transaction.getPeer(peerId) as? TelegramSecretChat, let state = transaction.getPeerChatState(peerId) as? SecretChatState { if state.messageAutoremoveTimeout != timeout { @@ -23,7 +23,7 @@ public func setSecretChatMessageAutoremoveTimeoutInteractively(account: Account, } } -public func addSecretChatMessageScreenshot(account: Account, peerId: PeerId) -> Signal { +func _internal_addSecretChatMessageScreenshot(account: Account, peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> Void in if let _ = transaction.getPeer(peerId) as? TelegramSecretChat, let state = transaction.getPeerChatState(peerId) as? SecretChatState { switch state.embeddedState { diff --git a/submodules/TelegramCore/Sources/State/CallSessionManager.swift b/submodules/TelegramCore/Sources/State/CallSessionManager.swift index afd27413f2..7d6cdfde5a 100644 --- a/submodules/TelegramCore/Sources/State/CallSessionManager.swift +++ b/submodules/TelegramCore/Sources/State/CallSessionManager.swift @@ -563,7 +563,7 @@ private final class CallSessionManagerContext { |> timeout(5.0, queue: strongSelf.queue, alternate: .single(nil)) |> deliverOnMainQueue).start(next: { debugLog in if let debugLog = debugLog { - let _ = saveCallDebugLog(network: network, callId: CallId(id: id, accessHash: accessHash), log: debugLog).start() + _internal_saveCallDebugLog(network: network, callId: CallId(id: id, accessHash: accessHash), log: debugLog).start() } }) } diff --git a/submodules/TelegramCore/Sources/State/SynchronizePeerReadState.swift b/submodules/TelegramCore/Sources/State/SynchronizePeerReadState.swift index 6d745cb599..46d81f30be 100644 --- a/submodules/TelegramCore/Sources/State/SynchronizePeerReadState.swift +++ b/submodules/TelegramCore/Sources/State/SynchronizePeerReadState.swift @@ -206,10 +206,6 @@ private func validatePeerReadState(network: Network, postbox: Postbox, stateMana } private func pushPeerReadState(network: Network, postbox: Postbox, stateManager: AccountStateManager, peerId: PeerId, readState: PeerReadState) -> Signal { - if !GlobalTelegramCoreConfiguration.readMessages { - return .single(readState) - } - if peerId.namespace == Namespaces.Peer.SecretChat { return inputSecretChat(postbox: postbox, peerId: peerId) |> mapToSignal { inputPeer -> Signal in diff --git a/submodules/TelegramCore/Sources/ConfirmTwoStepRecoveryEmail.swift b/submodules/TelegramCore/Sources/TelegramEngine/Auth/ConfirmTwoStepRecoveryEmail.swift similarity index 80% rename from submodules/TelegramCore/Sources/ConfirmTwoStepRecoveryEmail.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Auth/ConfirmTwoStepRecoveryEmail.swift index dcc5c4433f..240ae7f8a0 100644 --- a/submodules/TelegramCore/Sources/ConfirmTwoStepRecoveryEmail.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Auth/ConfirmTwoStepRecoveryEmail.swift @@ -12,7 +12,7 @@ public enum ConfirmTwoStepRecoveryEmailError { case generic } -public func confirmTwoStepRecoveryEmail(network: Network, code: String) -> Signal { +func _internal_confirmTwoStepRecoveryEmail(network: Network, code: String) -> Signal { return network.request(Api.functions.account.confirmPasswordEmail(code: code), automaticFloodWait: false) |> mapError { error -> ConfirmTwoStepRecoveryEmailError in if error.errorDescription == "EMAIL_INVALID" { @@ -34,7 +34,7 @@ public enum ResendTwoStepRecoveryEmailError { case generic } -public func resendTwoStepRecoveryEmail(network: Network) -> Signal { +func _internal_resendTwoStepRecoveryEmail(network: Network) -> Signal { return network.request(Api.functions.account.resendPasswordEmail(), automaticFloodWait: false) |> mapError { error -> ResendTwoStepRecoveryEmailError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { @@ -49,7 +49,7 @@ public enum CancelTwoStepRecoveryEmailError { case generic } -public func cancelTwoStepRecoveryEmail(network: Network) -> Signal { +func _internal_cancelTwoStepRecoveryEmail(network: Network) -> Signal { return network.request(Api.functions.account.cancelPasswordEmail(), automaticFloodWait: false) |> mapError { _ -> CancelTwoStepRecoveryEmailError in return .generic diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift index d9dbf133d0..a23fcd2d02 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift @@ -1,6 +1,8 @@ import SwiftSignalKit import Postbox import TelegramApi +import MtProtoKit +import SyncCore public extension TelegramEngineUnauthorized { final class Auth { @@ -13,6 +15,22 @@ public extension TelegramEngineUnauthorized { public func exportAuthTransferToken(accountManager: AccountManager, otherAccountUserIds: [PeerId.Id], syncContacts: Bool) -> Signal { return _internal_exportAuthTransferToken(accountManager: accountManager, account: self.account, otherAccountUserIds: otherAccountUserIds, syncContacts: syncContacts) } + + public func twoStepAuthData() -> Signal { + return _internal_twoStepAuthData(self.account.network) + } + + public func updateTwoStepVerificationPassword(currentPassword: String?, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + return _internal_updateTwoStepVerificationPassword(network: self.account.network, currentPassword: currentPassword, updatedPassword: updatedPassword) + } + + public func performPasswordRecovery(accountManager: AccountManager, code: String, syncContacts: Bool, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + return _internal_performPasswordRecovery(accountManager: accountManager, account: self.account, code: code, syncContacts: syncContacts, updatedPassword: updatedPassword) + } + + public func resendTwoStepRecoveryEmail() -> Signal { + return _internal_resendTwoStepRecoveryEmail(network: self.account.network) + } } } @@ -21,19 +39,120 @@ public enum DeleteAccountError { } public extension TelegramEngine { - final class Auth { - private let account: Account + final class Auth { + private let account: Account - init(account: Account) { - self.account = account - } + init(account: Account) { + self.account = account + } - public func deleteAccount() -> Signal { - return self.account.network.request(Api.functions.account.deleteAccount(reason: "GDPR")) - |> mapError { _ -> DeleteAccountError in - return .generic - } - |> ignoreValues - } - } + public func twoStepAuthData() -> Signal { + return _internal_twoStepAuthData(self.account.network) + } + + public func updateTwoStepVerificationPassword(currentPassword: String?, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + return _internal_updateTwoStepVerificationPassword(network: self.account.network, currentPassword: currentPassword, updatedPassword: updatedPassword) + } + + public func deleteAccount() -> Signal { + return self.account.network.request(Api.functions.account.deleteAccount(reason: "GDPR")) + |> mapError { _ -> DeleteAccountError in + return .generic + } + |> ignoreValues + } + + public func updateTwoStepVerificationEmail(currentPassword: String, updatedEmail: String) -> Signal { + return _internal_updateTwoStepVerificationEmail(network: self.account.network, currentPassword: currentPassword, updatedEmail: updatedEmail) + } + + public func confirmTwoStepRecoveryEmail(code: String) -> Signal { + return _internal_confirmTwoStepRecoveryEmail(network: self.account.network, code: code) + } + + public func resendTwoStepRecoveryEmail() -> Signal { + return _internal_resendTwoStepRecoveryEmail(network: self.account.network) + } + + public func cancelTwoStepRecoveryEmail() -> Signal { + return _internal_cancelTwoStepRecoveryEmail(network: self.account.network) + } + + public func twoStepVerificationConfiguration() -> Signal { + return _internal_twoStepVerificationConfiguration(account: self.account) + } + + public func requestTwoStepVerifiationSettings(password: String) -> Signal { + return _internal_requestTwoStepVerifiationSettings(network: self.account.network, password: password) + } + + public func requestTwoStepVerificationPasswordRecoveryCode() -> Signal { + return _internal_requestTwoStepVerificationPasswordRecoveryCode(network: self.account.network) + } + + public func recoverTwoStepVerificationPassword(code: String) -> Signal { + return _internal_recoverTwoStepVerificationPassword(network: self.account.network, code: code) + } + + public func cachedTwoStepPasswordToken() -> Signal { + return _internal_cachedTwoStepPasswordToken(postbox: self.account.postbox) + } + + public func cacheTwoStepPasswordToken(token: TemporaryTwoStepPasswordToken?) -> Signal { + return _internal_cacheTwoStepPasswordToken(postbox: self.account.postbox, token: token) + } + + public func requestTemporaryTwoStepPasswordToken(password: String, period: Int32, requiresBiometrics: Bool) -> Signal { + return _internal_requestTemporaryTwoStepPasswordToken(account: self.account, password: password, period: period, requiresBiometrics: requiresBiometrics) + } + + public func requestTwoStepPasswordReset() -> Signal { + return _internal_requestTwoStepPasswordReset(network: self.account.network) + } + + public func declineTwoStepPasswordReset() -> Signal { + return _internal_declineTwoStepPasswordReset(network: self.account.network) + } + } +} + +public extension SomeTelegramEngine { + final class Auth { + private let engine: SomeTelegramEngine + + init(engine: SomeTelegramEngine) { + self.engine = engine + } + + public func twoStepAuthData() -> Signal { + switch self.engine { + case let .authorized(engine): + return engine.auth.twoStepAuthData() + case let .unauthorized(engine): + return engine.auth.twoStepAuthData() + } + } + + public func updateTwoStepVerificationPassword(currentPassword: String?, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + switch self.engine { + case let .authorized(engine): + return engine.auth.updateTwoStepVerificationPassword(currentPassword: currentPassword, updatedPassword: updatedPassword) + case let .unauthorized(engine): + return engine.auth.updateTwoStepVerificationPassword(currentPassword: currentPassword, updatedPassword: updatedPassword) + } + } + + public func resendTwoStepRecoveryEmail() -> Signal { + switch self.engine { + case let .authorized(engine): + return engine.auth.resendTwoStepRecoveryEmail() + case let .unauthorized(engine): + return engine.auth.resendTwoStepRecoveryEmail() + } + } + } + + var auth: Auth { + return Auth(engine: self) + } } diff --git a/submodules/TelegramCore/Sources/TwoStepVerification.swift b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TwoStepVerification.swift similarity index 90% rename from submodules/TelegramCore/Sources/TwoStepVerification.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Auth/TwoStepVerification.swift index 08bcc49353..e48acb914b 100644 --- a/submodules/TelegramCore/Sources/TwoStepVerification.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TwoStepVerification.swift @@ -11,7 +11,7 @@ public enum TwoStepVerificationConfiguration { case set(hint: String, hasRecoveryEmail: Bool, pendingEmail: TwoStepVerificationPendingEmail?, hasSecureValues: Bool, pendingResetTimestamp: Int32?) } -public func twoStepVerificationConfiguration(account: Account) -> Signal { +func _internal_twoStepVerificationConfiguration(account: Account) -> Signal { return account.network.request(Api.functions.account.getPassword()) |> retryRequest |> map { result -> TwoStepVerificationConfiguration in @@ -37,8 +37,8 @@ public struct TwoStepVerificationSettings { public let secureSecret: TwoStepVerificationSecureSecret? } -public func requestTwoStepVerifiationSettings(network: Network, password: String) -> Signal { - return twoStepAuthData(network) +func _internal_requestTwoStepVerifiationSettings(network: Network, password: String) -> Signal { + return _internal_twoStepAuthData(network) |> mapError { error -> AuthorizationPasswordVerificationError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { return .limitExceeded @@ -111,14 +111,14 @@ public enum UpdatedTwoStepVerificationPassword { case password(password: String, hint: String, email: String?) } -public func updateTwoStepVerificationPassword(network: Network, currentPassword: String?, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { - return twoStepAuthData(network) +func _internal_updateTwoStepVerificationPassword(network: Network, currentPassword: String?, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + return _internal_twoStepAuthData(network) |> mapError { _ -> UpdateTwoStepVerificationPasswordError in return .generic } |> mapToSignal { authData -> Signal in if let _ = authData.currentPasswordDerivation { - return requestTwoStepVerifiationSettings(network: network, password: currentPassword ?? "") + return _internal_requestTwoStepVerifiationSettings(network: network, password: currentPassword ?? "") |> mapError { _ -> UpdateTwoStepVerificationPasswordError in return .generic } @@ -130,7 +130,7 @@ public func updateTwoStepVerificationPassword(network: Network, currentPassword: } } |> mapToSignal { secureSecret -> Signal<(TwoStepAuthData, TwoStepVerificationSecureSecret?), UpdateTwoStepVerificationPasswordError> in - return twoStepAuthData(network) + return _internal_twoStepAuthData(network) |> mapError { _ -> UpdateTwoStepVerificationPasswordError in return .generic } @@ -205,7 +205,7 @@ public func updateTwoStepVerificationPassword(network: Network, currentPassword: codeLength = value } } - return twoStepAuthData(network) + return _internal_twoStepAuthData(network) |> map { result -> UpdateTwoStepVerificationPasswordResult in return .password(password: password, pendingEmail: result.unconfirmedEmailPattern.flatMap({ TwoStepVerificationPendingEmail(pattern: $0, codeLength: codeLength) })) } @@ -233,7 +233,7 @@ enum UpdateTwoStepVerificationSecureSecretError { } func updateTwoStepVerificationSecureSecret(network: Network, password: String, secret: Data) -> Signal { - return twoStepAuthData(network) + return _internal_twoStepAuthData(network) |> mapError { _ -> UpdateTwoStepVerificationSecureSecretError in return .generic } @@ -263,8 +263,8 @@ func updateTwoStepVerificationSecureSecret(network: Network, password: String, s } } -public func updateTwoStepVerificationEmail(network: Network, currentPassword: String, updatedEmail: String) -> Signal { - return twoStepAuthData(network) +func _internal_updateTwoStepVerificationEmail(network: Network, currentPassword: String, updatedEmail: String) -> Signal { + return _internal_twoStepAuthData(network) |> mapError { _ -> UpdateTwoStepVerificationPasswordError in return .generic } @@ -286,7 +286,7 @@ public func updateTwoStepVerificationEmail(network: Network, currentPassword: St } |> `catch` { error -> Signal in if error.errorDescription.hasPrefix("EMAIL_UNCONFIRMED") { - return twoStepAuthData(network) + return _internal_twoStepAuthData(network) |> map { result -> UpdateTwoStepVerificationPasswordResult in var codeLength: Int32? if error.errorDescription.hasPrefix("EMAIL_UNCONFIRMED_") { @@ -314,7 +314,7 @@ public enum RequestTwoStepVerificationPasswordRecoveryCodeError { case generic } -public func requestTwoStepVerificationPasswordRecoveryCode(network: Network) -> Signal { +func _internal_requestTwoStepVerificationPasswordRecoveryCode(network: Network) -> Signal { return network.request(Api.functions.auth.requestPasswordRecovery(), automaticFloodWait: false) |> mapError { _ -> RequestTwoStepVerificationPasswordRecoveryCodeError in return .generic @@ -334,8 +334,8 @@ public enum RecoverTwoStepVerificationPasswordError { case invalidCode } -public func recoverTwoStepVerificationPassword(network: Network, code: String) -> Signal { - return twoStepAuthData(network) +func _internal_recoverTwoStepVerificationPassword(network: Network, code: String) -> Signal { + return _internal_twoStepAuthData(network) |> mapError { _ -> RecoverTwoStepVerificationPasswordError in return .generic } @@ -363,7 +363,7 @@ public func recoverTwoStepVerificationPassword(network: Network, code: String) - } } -public func cachedTwoStepPasswordToken(postbox: Postbox) -> Signal { +func _internal_cachedTwoStepPasswordToken(postbox: Postbox) -> Signal { return postbox.transaction { transaction -> TemporaryTwoStepPasswordToken? in let key = ValueBoxKey(length: 1) key.setUInt8(0, value: 0) @@ -371,7 +371,7 @@ public func cachedTwoStepPasswordToken(postbox: Postbox) -> Signal Signal { +func _internal_cacheTwoStepPasswordToken(postbox: Postbox, token: TemporaryTwoStepPasswordToken?) -> Signal { return postbox.transaction { transaction -> Void in let key = ValueBoxKey(length: 1) key.setUInt8(0, value: 0) @@ -383,8 +383,8 @@ public func cacheTwoStepPasswordToken(postbox: Postbox, token: TemporaryTwoStepP } } -public func requestTemporaryTwoStepPasswordToken(account: Account, password: String, period: Int32, requiresBiometrics: Bool) -> Signal { - return twoStepAuthData(account.network) +func _internal_requestTemporaryTwoStepPasswordToken(account: Account, password: String, period: Int32, requiresBiometrics: Bool) -> Signal { + return _internal_twoStepAuthData(account.network) |> mapToSignal { authData -> Signal in guard let currentPasswordDerivation = authData.currentPasswordDerivation, let srpSessionData = authData.srpSessionData else { return .fail(MTRpcError(errorCode: 400, errorDescription: "NO_PASSWORD")) @@ -426,7 +426,7 @@ public enum RequestTwoStepPasswordResetResult { case error(reason: ErrorReason) } -public func requestTwoStepPasswordReset(network: Network) -> Signal { +func _internal_requestTwoStepPasswordReset(network: Network) -> Signal { return network.request(Api.functions.account.resetPassword(), automaticFloodWait: false) |> map { _ -> RequestTwoStepPasswordResetResult in return .done @@ -456,7 +456,7 @@ public func requestTwoStepPasswordReset(network: Network) -> Signal Signal { +func _internal_declineTwoStepPasswordReset(network: Network) -> Signal { return network.request(Api.functions.account.declinePasswordReset()) |> `catch` { _ -> Signal in return .single(.boolFalse) diff --git a/submodules/TelegramCore/Sources/RateCall.swift b/submodules/TelegramCore/Sources/TelegramEngine/Calls/RateCall.swift similarity index 75% rename from submodules/TelegramCore/Sources/RateCall.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Calls/RateCall.swift index bac6cd7258..7a8ed6ebee 100644 --- a/submodules/TelegramCore/Sources/RateCall.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Calls/RateCall.swift @@ -4,7 +4,7 @@ import MtProtoKit import SwiftSignalKit import TelegramApi -public func rateCall(account: Account, callId: CallId, starsCount: Int32, comment: String = "", userInitiated: Bool) -> Signal { +func _internal_rateCall(account: Account, callId: CallId, starsCount: Int32, comment: String = "", userInitiated: Bool) -> Signal { var flags: Int32 = 0 if userInitiated { flags |= (1 << 0) @@ -14,7 +14,7 @@ public func rateCall(account: Account, callId: CallId, starsCount: Int32, commen |> map { _ in } } -public func saveCallDebugLog(network: Network, callId: CallId, log: String) -> Signal { +func _internal_saveCallDebugLog(network: Network, callId: CallId, log: String) -> Signal { if log.count > 1024 * 16 { return .complete() } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Calls/TelegramEngineCalls.swift b/submodules/TelegramCore/Sources/TelegramEngine/Calls/TelegramEngineCalls.swift new file mode 100644 index 0000000000..8f2dd214df --- /dev/null +++ b/submodules/TelegramCore/Sources/TelegramEngine/Calls/TelegramEngineCalls.swift @@ -0,0 +1,19 @@ +import SwiftSignalKit + +public extension TelegramEngine { + final class Calls { + private let account: Account + + init(account: Account) { + self.account = account + } + + public func rateCall(callId: CallId, starsCount: Int32, comment: String = "", userInitiated: Bool) -> Signal { + return _internal_rateCall(account: self.account, callId: callId, starsCount: starsCount, comment: comment, userInitiated: userInitiated) + } + + public func saveCallDebugLog(callId: CallId, log: String) -> Signal { + return _internal_saveCallDebugLog(network: self.account.network, callId: callId, log: log) + } + } +} diff --git a/submodules/TelegramCore/Sources/TelegramEngine/HistoryImport/TelegramEngineHistoryImport.swift b/submodules/TelegramCore/Sources/TelegramEngine/HistoryImport/TelegramEngineHistoryImport.swift new file mode 100644 index 0000000000..309c0673a0 --- /dev/null +++ b/submodules/TelegramCore/Sources/TelegramEngine/HistoryImport/TelegramEngineHistoryImport.swift @@ -0,0 +1,255 @@ +import Foundation +import SwiftSignalKit +import Postbox +import SyncCore +import TelegramApi + +public extension TelegramEngine { + final class HistoryImport { + private let account: Account + + init(account: Account) { + self.account = account + } + + public struct Session { + fileprivate var peerId: PeerId + fileprivate var inputPeer: Api.InputPeer + fileprivate var id: Int64 + } + + public enum InitImportError { + case generic + case chatAdminRequired + case invalidChatType + case userBlocked + case limitExceeded + } + + public enum ParsedInfo { + case privateChat(title: String?) + case group(title: String?) + case unknown(title: String?) + } + + public enum GetInfoError { + case generic + case parseError + } + + public func getInfo(header: String) -> Signal { + return self.account.network.request(Api.functions.messages.checkHistoryImport(importHead: header)) + |> mapError { _ -> GetInfoError in + return .generic + } + |> mapToSignal { result -> Signal in + switch result { + case let .historyImportParsed(flags, title): + if (flags & (1 << 0)) != 0 { + return .single(.privateChat(title: title)) + } else if (flags & (1 << 1)) != 0 { + return .single(.group(title: title)) + } else { + return .single(.unknown(title: title)) + } + } + } + } + + public func initSession(peerId: PeerId, file: TempBoxFile, mediaCount: Int32) -> Signal { + let account = self.account + return multipartUpload(network: self.account.network, postbox: self.account.postbox, source: .tempFile(file), encrypt: false, tag: nil, hintFileSize: nil, hintFileIsLarge: false, forceNoBigParts: true, useLargerParts: true, increaseParallelParts: true, useMultiplexedRequests: false, useCompression: true) + |> mapError { _ -> InitImportError in + return .generic + } + |> mapToSignal { result -> Signal in + switch result { + case let .inputFile(inputFile): + return account.postbox.transaction { transaction -> Api.InputPeer? in + return transaction.getPeer(peerId).flatMap(apiInputPeer) + } + |> castError(InitImportError.self) + |> mapToSignal { inputPeer -> Signal in + guard let inputPeer = inputPeer else { + return .fail(.generic) + } + return account.network.request(Api.functions.messages.initHistoryImport(peer: inputPeer, file: inputFile, mediaCount: mediaCount), automaticFloodWait: false) + |> mapError { error -> InitImportError in + if error.errorDescription == "CHAT_ADMIN_REQUIRED" { + return .chatAdminRequired + } else if error.errorDescription == "IMPORT_PEER_TYPE_INVALID" { + return .invalidChatType + } else if error.errorDescription == "USER_IS_BLOCKED" { + return .userBlocked + } else if error.errorDescription == "FLOOD_WAIT" { + return .limitExceeded + } else { + return .generic + } + } + |> map { result -> Session in + switch result { + case let .historyImport(id): + return Session(peerId: peerId, inputPeer: inputPeer, id: id) + } + } + } + case .progress: + return .complete() + case .inputSecretFile: + return .fail(.generic) + } + } + } + + public enum MediaType { + case photo + case file + case video + case sticker + case voice + } + + public enum UploadMediaError { + case generic + case chatAdminRequired + } + + public func uploadMedia(session: Session, file: TempBoxFile, disposeFileAfterDone: Bool, fileName: String, mimeType: String, type: MediaType) -> Signal { + var forceNoBigParts = true + guard let size = fileSize(file.path), size != 0 else { + return .single(1.0) + } + if size >= 30 * 1024 * 1024 { + forceNoBigParts = false + } + + let account = self.account + return multipartUpload(network: self.account.network, postbox: self.account.postbox, source: .tempFile(file), encrypt: false, tag: nil, hintFileSize: nil, hintFileIsLarge: false, forceNoBigParts: forceNoBigParts, useLargerParts: true, useMultiplexedRequests: true) + |> mapError { _ -> UploadMediaError in + return .generic + } + |> mapToSignal { result -> Signal in + let inputMedia: Api.InputMedia + switch result { + case let .inputFile(inputFile): + switch type { + case .photo: + inputMedia = .inputMediaUploadedPhoto(flags: 0, file: inputFile, stickers: nil, ttlSeconds: nil) + case .file, .video, .sticker, .voice: + var attributes: [Api.DocumentAttribute] = [] + attributes.append(.documentAttributeFilename(fileName: fileName)) + var resolvedMimeType = mimeType + switch type { + case .video: + resolvedMimeType = "video/mp4" + case .sticker: + resolvedMimeType = "image/webp" + case .voice: + resolvedMimeType = "audio/ogg" + default: + break + } + inputMedia = .inputMediaUploadedDocument(flags: 0, file: inputFile, thumb: nil, mimeType: resolvedMimeType, attributes: attributes, stickers: nil, ttlSeconds: nil) + } + case let .progress(value): + return .single(value) + case .inputSecretFile: + return .fail(.generic) + } + return account.network.request(Api.functions.messages.uploadImportedMedia(peer: session.inputPeer, importId: session.id, fileName: fileName, media: inputMedia)) + |> mapError { error -> UploadMediaError in + switch error.errorDescription { + case "CHAT_ADMIN_REQUIRED": + return .chatAdminRequired + default: + return .generic + } + } + |> mapToSignal { result -> Signal in + return .single(1.0) + } + |> afterDisposed { + if disposeFileAfterDone { + TempBox.shared.dispose(file) + } + } + } + } + + public enum StartImportError { + case generic + } + + public func startImport(session: Session) -> Signal { + return self.account.network.request(Api.functions.messages.startHistoryImport(peer: session.inputPeer, importId: session.id)) + |> mapError { _ -> StartImportError in + return .generic + } + |> mapToSignal { result -> Signal in + if case .boolTrue = result { + return .complete() + } else { + return .fail(.generic) + } + } + } + + public enum CheckPeerImportResult { + case allowed + case alert(String) + } + + public enum CheckPeerImportError { + case generic + case chatAdminRequired + case invalidChatType + case userBlocked + case limitExceeded + case notMutualContact + } + + public func checkPeerImport(peerId: PeerId) -> Signal { + let account = self.account + return self.account.postbox.transaction { transaction -> Peer? in + return transaction.getPeer(peerId) + } + |> castError(CheckPeerImportError.self) + |> mapToSignal { peer -> Signal in + guard let peer = peer else { + return .fail(.generic) + } + guard let inputPeer = apiInputPeer(peer) else { + return .fail(.generic) + } + + return account.network.request(Api.functions.messages.checkHistoryImportPeer(peer: inputPeer)) + |> mapError { error -> CheckPeerImportError in + if error.errorDescription == "CHAT_ADMIN_REQUIRED" { + return .chatAdminRequired + } else if error.errorDescription == "IMPORT_PEER_TYPE_INVALID" { + return .invalidChatType + } else if error.errorDescription == "USER_IS_BLOCKED" { + return .userBlocked + } else if error.errorDescription == "USER_NOT_MUTUAL_CONTACT" { + return .notMutualContact + } else if error.errorDescription == "FLOOD_WAIT" { + return .limitExceeded + } else { + return .generic + } + } + |> map { result -> CheckPeerImportResult in + switch result { + case let .checkedHistoryImportPeer(confirmText): + if confirmText.isEmpty { + return .allowed + } else { + return .alert(confirmText) + } + } + } + } + } + } +} diff --git a/submodules/TelegramCore/Sources/ForwardGame.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/ForwardGame.swift similarity index 89% rename from submodules/TelegramCore/Sources/ForwardGame.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Messages/ForwardGame.swift index f41b02e57b..7a592178fa 100644 --- a/submodules/TelegramCore/Sources/ForwardGame.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/ForwardGame.swift @@ -3,7 +3,7 @@ import Postbox import TelegramApi import SwiftSignalKit -public func forwardGameWithScore(account: Account, messageId: MessageId, to peerId: PeerId) -> Signal { +func _internal_forwardGameWithScore(account: Account, messageId: MessageId, to peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> Signal in if let _ = transaction.getMessage(messageId), let fromPeer = transaction.getPeer(messageId.peerId), let fromInputPeer = apiInputPeer(fromPeer), let toPeer = transaction.getPeer(peerId), let toInputPeer = apiInputPeer(toPeer) { return account.network.request(Api.functions.messages.forwardMessages(flags: 1 << 8, fromPeer: fromInputPeer, id: [messageId.id], randomId: [Int64.random(in: Int64.min ... Int64.max)], toPeer: toInputPeer, scheduleDate: nil)) diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Messages/RequestMessageActionCallback.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/RequestMessageActionCallback.swift index 614c827368..6bfa85422f 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Messages/RequestMessageActionCallback.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/RequestMessageActionCallback.swift @@ -92,7 +92,7 @@ func _internal_requestMessageActionCallback(account: Account, messageId: Message if let password = password, !password.isEmpty { flags |= Int32(1 << 2) - checkPassword = twoStepAuthData(account.network) + checkPassword = _internal_twoStepAuthData(account.network) |> mapError { error -> MessageActionCallbackError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { return .limitExceeded diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift index df12d4c2db..46a4e7a7d6 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift @@ -85,5 +85,14 @@ public extension TelegramEngine { public func requestEditLiveLocation(messageId: MessageId, stop: Bool, coordinate: (latitude: Double, longitude: Double, accuracyRadius: Int32?)?, heading: Int32?, proximityNotificationRadius: Int32?) -> Signal { return _internal_requestEditLiveLocation(postbox: self.account.postbox, network: self.account.network, stateManager: self.account.stateManager, messageId: messageId, stop: stop, coordinate: coordinate, heading: heading, proximityNotificationRadius: proximityNotificationRadius) } + + public func addSecretChatMessageScreenshot(peerId: PeerId) -> Signal { + return _internal_addSecretChatMessageScreenshot(account: self.account, peerId: peerId) + |> ignoreValues + } + + public func forwardGameWithScore(messageId: MessageId, to peerId: PeerId) -> Signal { + return _internal_forwardGameWithScore(account: self.account, messageId: messageId, to: peerId) + } } } diff --git a/submodules/TelegramCore/Sources/GroupsInCommon.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/GroupsInCommon.swift similarity index 79% rename from submodules/TelegramCore/Sources/GroupsInCommon.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/GroupsInCommon.swift index 53a5450cad..9fad743857 100644 --- a/submodules/TelegramCore/Sources/GroupsInCommon.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/GroupsInCommon.swift @@ -154,36 +154,3 @@ public final class GroupsInCommonContext { } } } - -public func groupsInCommon(account: Account, peerId: PeerId) -> Signal<[Peer], NoError> { - return account.postbox.transaction { transaction -> Signal<[Peer], NoError> in - if let peer = transaction.getPeer(peerId), let inputUser = apiInputUser(peer) { - return account.network.request(Api.functions.messages.getCommonChats(userId: inputUser, maxId: 0, limit: 100)) - |> retryRequest - |> mapToSignal { result -> Signal<[Peer], NoError> in - let chats: [Api.Chat] - switch result { - case let .chats(chats: apiChats): - chats = apiChats - case let .chatsSlice(count: _, chats: apiChats): - chats = apiChats - } - - return account.postbox.transaction { transaction -> [Peer] in - var peers: [Peer] = [] - for chat in chats { - if let peer = parseTelegramGroupOrChannel(chat: chat) { - peers.append(peer) - } - } - updatePeers(transaction: transaction, peers: peers, update: { _, updated -> Peer? in - return updated - }) - return peers - } - } - } else { - return .single([]) - } - } |> switchToLatest -} diff --git a/submodules/TelegramCore/Sources/ReportPeer.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ReportPeer.swift similarity index 93% rename from submodules/TelegramCore/Sources/ReportPeer.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/ReportPeer.swift index 34cb965184..f37a6edf10 100644 --- a/submodules/TelegramCore/Sources/ReportPeer.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ReportPeer.swift @@ -6,7 +6,7 @@ import MtProtoKit import SyncCore -public func reportPeer(account: Account, peerId: PeerId) -> Signal { +func _internal_reportPeer(account: Account, peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> Signal in if let peer = transaction.getPeer(peerId) { if let peer = peer as? TelegramSecretChat { @@ -110,7 +110,7 @@ private extension ReportReason { } } -public func reportPeer(account: Account, peerId: PeerId, reason: ReportReason, message: String) -> Signal { +func _internal_reportPeer(account: Account, peerId: PeerId, reason: ReportReason, message: String) -> Signal { return account.postbox.transaction { transaction -> Signal in if let peer = transaction.getPeer(peerId), let inputPeer = apiInputPeer(peer) { return account.network.request(Api.functions.account.reportPeer(peer: inputPeer, reason: reason.apiReason, message: message)) @@ -126,7 +126,7 @@ public func reportPeer(account: Account, peerId: PeerId, reason: ReportReason, m } |> switchToLatest } -public func reportPeerPhoto(account: Account, peerId: PeerId, reason: ReportReason, message: String) -> Signal { +func _internal_reportPeerPhoto(account: Account, peerId: PeerId, reason: ReportReason, message: String) -> Signal { return account.postbox.transaction { transaction -> Signal in if let peer = transaction.getPeer(peerId), let inputPeer = apiInputPeer(peer) { return account.network.request(Api.functions.account.reportProfilePhoto(peer: inputPeer, photoId: .inputPhotoEmpty, reason: reason.apiReason, message: message)) @@ -142,7 +142,7 @@ public func reportPeerPhoto(account: Account, peerId: PeerId, reason: ReportReas } |> switchToLatest } -public func reportPeerMessages(account: Account, messageIds: [MessageId], reason: ReportReason, message: String) -> Signal { +func _internal_reportPeerMessages(account: Account, messageIds: [MessageId], reason: ReportReason, message: String) -> Signal { return account.postbox.transaction { transaction -> Signal in let groupedIds = messagesIdsGroupedByPeerId(messageIds) let signals = groupedIds.values.compactMap { ids -> Signal? in @@ -165,7 +165,7 @@ public func reportPeerMessages(account: Account, messageIds: [MessageId], reason } |> switchToLatest } -public func dismissPeerStatusOptions(account: Account, peerId: PeerId) -> Signal { +func _internal_dismissPeerStatusOptions(account: Account, peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> Signal in transaction.updatePeerCachedData(peerIds: Set([peerId]), update: { _, current in if let current = current as? CachedUserData { @@ -203,7 +203,7 @@ public func dismissPeerStatusOptions(account: Account, peerId: PeerId) -> Signal } |> switchToLatest } -public func reportRepliesMessage(account: Account, messageId: MessageId, deleteMessage: Bool, deleteHistory: Bool, reportSpam: Bool) -> Signal { +func _internal_reportRepliesMessage(account: Account, messageId: MessageId, deleteMessage: Bool, deleteHistory: Bool, reportSpam: Bool) -> Signal { if messageId.namespace != Namespaces.Message.Cloud { return .complete() } diff --git a/submodules/TelegramCore/Sources/SlowMode.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/SlowMode.swift similarity index 86% rename from submodules/TelegramCore/Sources/SlowMode.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/SlowMode.swift index 7134b47d08..a2f3ee94f0 100644 --- a/submodules/TelegramCore/Sources/SlowMode.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/SlowMode.swift @@ -9,7 +9,7 @@ public enum UpdateChannelSlowModeError { case tooManyChannels } -public func updateChannelSlowModeInteractively(postbox: Postbox, network: Network, accountStateManager: AccountStateManager, peerId: PeerId, timeout: Int32?) -> Signal { +func _internal_updateChannelSlowModeInteractively(postbox: Postbox, network: Network, accountStateManager: AccountStateManager, peerId: PeerId, timeout: Int32?) -> Signal { return postbox.transaction { transaction -> Peer? in return transaction.getPeer(peerId) } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Peers/TelegramEnginePeers.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/TelegramEnginePeers.swift index 4ce9e85463..bf253708bd 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Peers/TelegramEnginePeers.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/TelegramEnginePeers.swift @@ -92,7 +92,41 @@ public extension TelegramEngine { } public func setChatMessageAutoremoveTimeoutInteractively(peerId: PeerId, timeout: Int32?) -> Signal { - return _internal_setChatMessageAutoremoveTimeoutInteractively(account: self.account, peerId: peerId, timeout: timeout) + if peerId.namespace == Namespaces.Peer.SecretChat { + return _internal_setSecretChatMessageAutoremoveTimeoutInteractively(account: self.account, peerId: peerId, timeout: timeout) + |> ignoreValues + |> castError(SetChatMessageAutoremoveTimeoutError.self) + } else { + return _internal_setChatMessageAutoremoveTimeoutInteractively(account: self.account, peerId: peerId, timeout: timeout) + } + } + + public func updateChannelSlowModeInteractively(peerId: PeerId, timeout: Int32?) -> Signal { + return _internal_updateChannelSlowModeInteractively(postbox: self.account.postbox, network: self.account.network, accountStateManager: self.account.stateManager, peerId: peerId, timeout: timeout) + } + + public func reportPeer(peerId: PeerId) -> Signal { + return _internal_reportPeer(account: self.account, peerId: peerId) + } + + public func reportPeer(peerId: PeerId, reason: ReportReason, message: String) -> Signal { + return _internal_reportPeer(account: self.account, peerId: peerId, reason: reason, message: message) + } + + public func reportPeerPhoto(peerId: PeerId, reason: ReportReason, message: String) -> Signal { + return _internal_reportPeerPhoto(account: self.account, peerId: peerId, reason: reason, message: message) + } + + public func reportPeerMessages(messageIds: [MessageId], reason: ReportReason, message: String) -> Signal { + return _internal_reportPeerMessages(account: account, messageIds: messageIds, reason: reason, message: message) + } + + public func dismissPeerStatusOptions(peerId: PeerId) -> Signal { + return _internal_dismissPeerStatusOptions(account: self.account, peerId: peerId) + } + + public func reportRepliesMessage(messageId: MessageId, deleteMessage: Bool, deleteHistory: Bool, reportSpam: Bool) -> Signal { + return _internal_reportRepliesMessage(account: self.account, messageId: messageId, deleteMessage: deleteMessage, deleteHistory: deleteHistory, reportSpam: reportSpam) } } } diff --git a/submodules/TelegramCore/Sources/BlockedPeers.swift b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/BlockedPeers.swift similarity index 96% rename from submodules/TelegramCore/Sources/BlockedPeers.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Privacy/BlockedPeers.swift index c671ed35a4..bd5794c41c 100644 --- a/submodules/TelegramCore/Sources/BlockedPeers.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/BlockedPeers.swift @@ -41,7 +41,7 @@ public func requestBlockedPeers(account: Account) -> Signal<[Peer], NoError> { } } -public func requestUpdatePeerIsBlocked(account: Account, peerId: PeerId, isBlocked: Bool) -> Signal { +func _internal_requestUpdatePeerIsBlocked(account: Account, peerId: PeerId, isBlocked: Bool) -> Signal { return account.postbox.transaction { transaction -> Signal in if let peer = transaction.getPeer(peerId), let inputPeer = apiInputPeer(peer) { let signal: Signal diff --git a/submodules/TelegramCore/Sources/BlockedPeersContext.swift b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/BlockedPeersContext.swift similarity index 99% rename from submodules/TelegramCore/Sources/BlockedPeersContext.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Privacy/BlockedPeersContext.swift index 06985ae459..fae1f08062 100644 --- a/submodules/TelegramCore/Sources/BlockedPeersContext.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/BlockedPeersContext.swift @@ -3,7 +3,6 @@ import TelegramApi import Postbox import SwiftSignalKit import MtProtoKit - import SyncCore public struct BlockedPeersContextState: Equatable { diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Privacy/TelegramEnginePrivacy.swift b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/TelegramEnginePrivacy.swift new file mode 100644 index 0000000000..807a6c1a58 --- /dev/null +++ b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/TelegramEnginePrivacy.swift @@ -0,0 +1,16 @@ +import SwiftSignalKit +import Postbox + +public extension TelegramEngine { + final class Privacy { + private let account: Account + + init(account: Account) { + self.account = account + } + + public func requestUpdatePeerIsBlocked(peerId: PeerId, isBlocked: Bool) -> Signal { + return _internal_requestUpdatePeerIsBlocked(account: self.account, peerId: peerId, isBlocked: isBlocked) + } + } +} diff --git a/submodules/TelegramCore/Sources/TelegramEngine/SecureId/AccessSecureId.swift b/submodules/TelegramCore/Sources/TelegramEngine/SecureId/AccessSecureId.swift index 196162d568..96e678f46e 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/SecureId/AccessSecureId.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/SecureId/AccessSecureId.swift @@ -154,7 +154,7 @@ public enum SecureIdAccessError { } func _internal_accessSecureId(network: Network, password: String) -> Signal<(context: SecureIdAccessContext, settings: TwoStepVerificationSettings), SecureIdAccessError> { - return requestTwoStepVerifiationSettings(network: network, password: password) + return _internal_requestTwoStepVerifiationSettings(network: network, password: password) |> mapError { error -> SecureIdAccessError in return .passwordError(error) } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/SecureId/SaveSecureIdValue.swift b/submodules/TelegramCore/Sources/TelegramEngine/SecureId/SaveSecureIdValue.swift index 06fb9d5cdb..1523513f4c 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/SecureId/SaveSecureIdValue.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/SecureId/SaveSecureIdValue.swift @@ -276,7 +276,7 @@ public func deleteSecureIdValues(network: Network, keys: Set) } public func dropSecureId(network: Network, currentPassword: String) -> Signal { - return twoStepAuthData(network) + return _internal_twoStepAuthData(network) |> mapError { _ -> AuthorizationPasswordVerificationError in return .generic } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/TelegramEngine.swift b/submodules/TelegramCore/Sources/TelegramEngine/TelegramEngine.swift index 9fd8d6412e..c246adbccc 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/TelegramEngine.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/TelegramEngine.swift @@ -47,6 +47,18 @@ public final class TelegramEngine { public lazy var messages: Messages = { return Messages(account: self.account) }() + + public lazy var privacy: Privacy = { + return Privacy(account: self.account) + }() + + public lazy var calls: Calls = { + return Calls(account: self.account) + }() + + public lazy var historyImport: HistoryImport = { + return HistoryImport(account: self.account) + }() } public final class TelegramEngineUnauthorized { @@ -64,3 +76,8 @@ public final class TelegramEngineUnauthorized { return Localization(account: self.account) }() } + +public enum SomeTelegramEngine { + case unauthorized(TelegramEngineUnauthorized) + case authorized(TelegramEngine) +} diff --git a/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift b/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift index 30c410b7dd..f9530e9873 100644 --- a/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift +++ b/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift @@ -597,7 +597,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail } controller?.inProgress = false - let setupController = TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.account.network, mode: .passwordRecovery(TwoFactorDataInputMode.Recovery(code: code, syncContacts: syncContacts, account: strongSelf.account)), stateUpdated: { _ in + let setupController = TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: .unauthorized(TelegramEngineUnauthorized(account: strongSelf.account)), mode: .passwordRecovery(TwoFactorDataInputMode.Recovery(code: code, syncContacts: syncContacts, account: strongSelf.account)), stateUpdated: { _ in guard let _ = self else { return } diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 2f7d3a8833..5f9bedcc9d 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -5045,7 +5045,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G items.append(ActionSheetButtonItem(title: presentationData.strings.Report_Report, color: .accent, font: .bold, enabled: true, action: { dismissAction() strongSelf.updateChatPresentationInterfaceState(animated: true, interactive: true, { $0.updatedInterfaceState { $0.withoutSelectionState() } }, completion: { _ in - let _ = (reportPeerMessages(account: strongSelf.context.account, messageIds: Array(messageIds), reason: reportReason, message: message) + let _ = (strongSelf.context.engine.peers.reportPeerMessages(messageIds: Array(messageIds), reason: reportReason, message: message) |> deliverOnMainQueue).start(completed: { [weak self] in if let strongSelf = self, let path = getAppBundle().path(forResource: "PoliceCar", ofType: "tgs") { strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .emoji(path: path, text: presentationData.strings.Report_Succeed), elevatedLayout: false, action: { _ in return false }), in: .current) @@ -5110,12 +5110,12 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G guard let strongSelf = self else { return } - let _ = requestUpdatePeerIsBlocked(account: strongSelf.context.account, peerId: peer.id, isBlocked: true).start() + let _ = strongSelf.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peer.id, isBlocked: true).start() let context = strongSelf.context let _ = (context.account.postbox.transaction { transasction -> Void in context.engine.messages.deleteAllMessagesWithForwardAuthor(transaction: transasction, peerId: message.id.peerId, forwardAuthorId: peer.id, namespace: Namespaces.Message.Cloud) }).start() - let _ = reportRepliesMessage(account: strongSelf.context.account, messageId: message.id, deleteMessage: true, deleteHistory: true, reportSpam: reportSpam).start() + let _ = strongSelf.context.engine.peers.reportRepliesMessage(messageId: message.id, deleteMessage: true, deleteHistory: true, reportSpam: reportSpam).start() }) ] as [ActionSheetItem]) @@ -5815,7 +5815,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if let peer = peer as? TelegramSecretChat { let controller = ChatSecretAutoremoveTimerActionSheetController(context: strongSelf.context, currentValue: peer.messageAutoremoveTimeout == nil ? 0 : peer.messageAutoremoveTimeout!, applyValue: { value in if let strongSelf = self { - let _ = setSecretChatMessageAutoremoveTimeoutInteractively(account: strongSelf.context.account, peerId: peer.id, timeout: value == 0 ? nil : value).start() + let _ = strongSelf.context.engine.peers.setChatMessageAutoremoveTimeoutInteractively(peerId: peer.id, timeout: value == 0 ? nil : value).start() } }) strongSelf.present(controller, in: .window(.root)) @@ -6511,7 +6511,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G guard let strongSelf = self else { return } - strongSelf.reportIrrelvantGeoDisposable = (TelegramCore.reportPeer(account: strongSelf.context.account, peerId: peerId, reason: .irrelevantLocation, message: "") + strongSelf.reportIrrelvantGeoDisposable = (strongSelf.context.engine.peers.reportPeer(peerId: peerId, reason: .irrelevantLocation, message: "") |> deliverOnMainQueue).start(completed: { [weak self] in if let strongSelf = self { strongSelf.reportIrrelvantGeoNoticePromise.set(.single(true)) @@ -7111,7 +7111,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if case let .peer(peerId) = self.chatLocation, peerId.namespace == Namespaces.Peer.SecretChat, self.screenCaptureManager == nil { self.screenCaptureManager = ScreenCaptureDetectionManager(check: { [weak self] in if let strongSelf = self, strongSelf.canReadHistoryValue, strongSelf.traceVisibility() { - let _ = addSecretChatMessageScreenshot(account: strongSelf.context.account, peerId: peerId).start() + let _ = strongSelf.context.engine.messages.addSecretChatMessageScreenshot(peerId: peerId).start() return true } else { return false @@ -11312,7 +11312,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if let user = self.presentationInterfaceState.renderedPeer?.peer as? TelegramUser, user.botInfo != nil { restartBot = true } - self.editMessageDisposable.set((requestUpdatePeerIsBlocked(account: self.context.account, peerId: peerId, isBlocked: false) + self.editMessageDisposable.set((self.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peerId, isBlocked: false) |> afterDisposed({ [weak self] in Queue.mainQueue().async { unblockingPeer.set(false) @@ -11382,7 +11382,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G guard let strongSelf = self else { return } - let _ = requestUpdatePeerIsBlocked(account: strongSelf.context.account, peerId: peer.id, isBlocked: true).start() + let _ = strongSelf.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peer.id, isBlocked: true).start() if let _ = chatPeer as? TelegramSecretChat { let _ = (strongSelf.context.account.postbox.transaction { transaction in terminateSecretChat(transaction: transaction, peerId: chatPeer.id, requestRemoteHistoryRemoval: true) @@ -11392,7 +11392,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let _ = removePeerChat(account: strongSelf.context.account, peerId: chatPeer.id, reportChatSpam: reportSpam).start() strongSelf.effectiveNavigationController?.filterController(strongSelf, animated: true) } else if reportSpam { - let _ = TelegramCore.reportPeer(account: strongSelf.context.account, peerId: peer.id, reason: .spam, message: "").start() + let _ = strongSelf.context.engine.peers.reportPeer(peerId: peer.id, reason: .spam, message: "").start() } }) ] as [ActionSheetItem]) @@ -11512,7 +11512,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } else { dismissPeerId = peerId } - self.editMessageDisposable.set((dismissPeerStatusOptions(account: self.context.account, peerId: dismissPeerId) + self.editMessageDisposable.set((self.context.engine.peers.dismissPeerStatusOptions(peerId: dismissPeerId) |> afterDisposed({ Queue.mainQueue().async { } @@ -11528,7 +11528,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let _ = removePeerChat(account: self.context.account, peerId: peerId, reportChatSpam: reportChatSpam).start() self.effectiveNavigationController?.popToRoot(animated: true) - let _ = requestUpdatePeerIsBlocked(account: self.context.account, peerId: peerId, isBlocked: true).start() + let _ = self.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peerId, isBlocked: true).start() } private func startBot(_ payload: String?) { diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift index 841fd452d0..d8d38e7f28 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift @@ -2746,7 +2746,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD )) self.privacySettings.set(.single(nil) |> then(requestAccountPrivacySettings(account: context.account) |> map(Optional.init))) self.archivedPacks.set(.single(nil) |> then(context.engine.stickers.archivedStickerPacks() |> map(Optional.init))) - self.hasPassport.set(.single(false) |> then(twoStepAuthData(context.account.network) + self.hasPassport.set(.single(false) |> then(context.engine.auth.twoStepAuthData() |> map { value -> Bool in return value.hasSecretValues } @@ -4267,7 +4267,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD let presentationData = strongSelf.presentationData if let peer = peer as? TelegramUser, let _ = peer.botInfo { - strongSelf.activeActionDisposable.set(requestUpdatePeerIsBlocked(account: strongSelf.context.account, peerId: peer.id, isBlocked: block).start()) + strongSelf.activeActionDisposable.set(strongSelf.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peer.id, isBlocked: block).start()) if !block { let _ = enqueueMessages(account: strongSelf.context.account, peerId: peer.id, messages: [.message(text: "/start", attributes: [], mediaReference: nil, replyToMessageId: nil, localGroupingKey: nil, correlationId: nil)]).start() if let navigationController = strongSelf.controller?.navigationController as? NavigationController { @@ -4292,12 +4292,12 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD return } - strongSelf.activeActionDisposable.set(requestUpdatePeerIsBlocked(account: strongSelf.context.account, peerId: peer.id, isBlocked: true).start()) + strongSelf.activeActionDisposable.set(strongSelf.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peer.id, isBlocked: true).start()) if deleteChat { let _ = removePeerChat(account: strongSelf.context.account, peerId: strongSelf.peerId, reportChatSpam: reportSpam).start() (strongSelf.controller?.navigationController as? NavigationController)?.popToRoot(animated: true) } else if reportSpam { - let _ = reportPeer(account: strongSelf.context.account, peerId: strongSelf.peerId, reason: .spam, message: "").start() + let _ = strongSelf.context.engine.peers.reportPeer(peerId: strongSelf.peerId, reason: .spam, message: "").start() } deleteSendMessageIntents(peerId: strongSelf.peerId) @@ -4318,7 +4318,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD guard let strongSelf = self else { return } - strongSelf.activeActionDisposable.set(requestUpdatePeerIsBlocked(account: strongSelf.context.account, peerId: peer.id, isBlocked: block).start()) + strongSelf.activeActionDisposable.set(strongSelf.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peer.id, isBlocked: block).start()) })]), in: .window(.root)) } } diff --git a/submodules/TelegramUI/Sources/ShareExtensionContext.swift b/submodules/TelegramUI/Sources/ShareExtensionContext.swift index 91507ed685..d3a24f5dfc 100644 --- a/submodules/TelegramUI/Sources/ShareExtensionContext.swift +++ b/submodules/TelegramUI/Sources/ShareExtensionContext.swift @@ -443,7 +443,7 @@ public class ShareRootControllerImpl { let fileExtension = (fileName as NSString).pathExtension var archivePathValue: String? - var otherEntries: [(SSZipEntry, String, ChatHistoryImport.MediaType)] = [] + var otherEntries: [(SSZipEntry, String, TelegramEngine.HistoryImport.MediaType)] = [] var mainFile: TempBoxFile? let appConfiguration = context.currentAppConfiguration.with({ $0 }) @@ -528,7 +528,7 @@ public class ShareRootControllerImpl { } else { let entryFileName = (entryPath as NSString).lastPathComponent if !entryFileName.isEmpty { - let mediaType: ChatHistoryImport.MediaType + let mediaType: TelegramEngine.HistoryImport.MediaType let fullRange = NSRange(entryFileName.startIndex ..< entryFileName.endIndex, in: entryFileName) if photoRegex.firstMatch(in: entryFileName, options: [], range: fullRange) != nil { mediaType = .photo @@ -641,7 +641,7 @@ public class ShareRootControllerImpl { navigationController.viewControllers = [TempController(context: context)] strongSelf.mainWindow?.present(navigationController, on: .root) - let _ = (ChatHistoryImport.getInfo(account: context.account, header: mainFileHeader) + let _ = (context.engine.historyImport.getInfo(header: mainFileHeader) |> deliverOnMainQueue).start(next: { parseInfo in switch parseInfo { case let .group(groupTitle): @@ -695,7 +695,7 @@ public class ShareRootControllerImpl { strongSelf.mainWindow?.present(controller, on: .root) } else { controller.inProgress = true - let _ = (ChatHistoryImport.checkPeerImport(account: context.account, peerId: peer.id) + let _ = (context.engine.historyImport.checkPeerImport(peerId: peer.id) |> deliverOnMainQueue).start(next: { result in controller.inProgress = false @@ -846,7 +846,7 @@ public class ShareRootControllerImpl { attemptSelectionImpl = { [weak controller] peer in controller?.inProgress = true - let _ = (ChatHistoryImport.checkPeerImport(account: context.account, peerId: peer.id) + let _ = (context.engine.historyImport.checkPeerImport(peerId: peer.id) |> deliverOnMainQueue).start(next: { result in controller?.inProgress = false @@ -921,7 +921,7 @@ public class ShareRootControllerImpl { attemptSelectionImpl = { [weak controller] peer in controller?.inProgress = true - let _ = (ChatHistoryImport.checkPeerImport(account: context.account, peerId: peer.id) + let _ = (context.engine.historyImport.checkPeerImport(peerId: peer.id) |> deliverOnMainQueue).start(next: { result in controller?.inProgress = false diff --git a/submodules/TelegramVoip/Sources/OngoingCallContext.swift b/submodules/TelegramVoip/Sources/OngoingCallContext.swift index 111e3dea81..d02f3014a6 100644 --- a/submodules/TelegramVoip/Sources/OngoingCallContext.swift +++ b/submodules/TelegramVoip/Sources/OngoingCallContext.swift @@ -904,7 +904,7 @@ public final class OngoingCallContext { if let callId = callId, !statsLogPath.isEmpty, let data = try? Data(contentsOf: URL(fileURLWithPath: statsLogPath)), let dataString = String(data: data, encoding: .utf8) { debugLogValue.set(.single(dataString)) if sendDebugLogs { - let _ = saveCallDebugLog(network: self.account.network, callId: callId, log: dataString).start() + let _ = TelegramEngine(account: self.account).calls.saveCallDebugLog(callId: callId, log: dataString).start() } } } diff --git a/submodules/WatchBridge/Sources/WatchRequestHandlers.swift b/submodules/WatchBridge/Sources/WatchRequestHandlers.swift index d56763ddfd..1796fe97d7 100644 --- a/submodules/WatchBridge/Sources/WatchRequestHandlers.swift +++ b/submodules/WatchBridge/Sources/WatchRequestHandlers.swift @@ -843,7 +843,7 @@ final class WatchPeerSettingsHandler: WatchRequestHandler { if let args = subscription as? TGBridgePeerUpdateNotificationSettingsSubscription, let peerId = makePeerIdFromBridgeIdentifier(args.peerId) { signal = togglePeerMuted(account: context.account, peerId: peerId) } else if let args = subscription as? TGBridgePeerUpdateBlockStatusSubscription, let peerId = makePeerIdFromBridgeIdentifier(args.peerId) { - signal = requestUpdatePeerIsBlocked(account: context.account, peerId: peerId, isBlocked: args.blocked) + signal = context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peerId, isBlocked: args.blocked) } if let signal = signal { From ad5d4f5c754ccd89e399067d5bf4b2a832b28d87 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Mon, 5 Jul 2021 01:08:38 +0400 Subject: [PATCH 17/26] Refactoring [skip ci] --- .../ChangePhoneNumberCodeController.swift | 4 ++-- .../Sources/ChangePhoneNumberController.swift | 2 +- .../ConfirmPhoneNumberController.swift | 4 ++-- .../Sources/VoiceChatController.swift | 4 ++-- .../ChangeAccountPhoneNumber.swift | 6 +++--- .../TelegramEngineAccountData.swift | 20 +++++++++++++++++++ .../AccountData}/UpdateAccountPeerName.swift | 4 ++-- .../Auth}/CancelAccountReset.swift | 6 +++--- .../Auth/TelegramEngineAuth.swift | 12 +++++++++++ .../TelegramUI/Sources/OpenResolvedUrl.swift | 2 +- .../Sources/PeerInfo/PeerInfoScreen.swift | 4 ++-- 11 files changed, 50 insertions(+), 18 deletions(-) rename submodules/TelegramCore/Sources/{ => TelegramEngine/AccountData}/ChangeAccountPhoneNumber.swift (88%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/AccountData}/UpdateAccountPeerName.swift (88%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Auth}/CancelAccountReset.swift (85%) diff --git a/submodules/SettingsUI/Sources/ChangePhoneNumberCodeController.swift b/submodules/SettingsUI/Sources/ChangePhoneNumberCodeController.swift index 5cbbed6dee..0dd32295e6 100644 --- a/submodules/SettingsUI/Sources/ChangePhoneNumberCodeController.swift +++ b/submodules/SettingsUI/Sources/ChangePhoneNumberCodeController.swift @@ -230,7 +230,7 @@ func changePhoneNumberCodeController(context: AccountContext, phoneNumber: Strin |> take(1) |> mapToSignal { _ -> Signal in return Signal { subscriber in - return requestNextChangeAccountPhoneNumberVerification(account: context.account, phoneNumber: phoneNumber, phoneCodeHash: data.hash).start(next: { next in + return context.engine.accountData.requestNextChangeAccountPhoneNumberVerification(phoneNumber: phoneNumber, phoneCodeHash: data.hash).start(next: { next in currentDataPromise?.set(.single(next)) }, error: { error in @@ -254,7 +254,7 @@ func changePhoneNumberCodeController(context: AccountContext, phoneNumber: Strin } } if let code = code { - changePhoneDisposable.set((requestChangeAccountPhoneNumber(account: context.account, phoneNumber: phoneNumber, phoneCodeHash: codeData.hash, phoneCode: code) |> deliverOnMainQueue).start(error: { error in + changePhoneDisposable.set((context.engine.accountData.requestChangeAccountPhoneNumber(phoneNumber: phoneNumber, phoneCodeHash: codeData.hash, phoneCode: code) |> deliverOnMainQueue).start(error: { error in updateState { return $0.withUpdatedChecking(false) } diff --git a/submodules/SettingsUI/Sources/ChangePhoneNumberController.swift b/submodules/SettingsUI/Sources/ChangePhoneNumberController.swift index 830ea6110b..05aac53984 100644 --- a/submodules/SettingsUI/Sources/ChangePhoneNumberController.swift +++ b/submodules/SettingsUI/Sources/ChangePhoneNumberController.swift @@ -123,7 +123,7 @@ final class ChangePhoneNumberController: ViewController, MFMailComposeViewContro } if !number.isEmpty { self.inProgress = true - self.requestDisposable.set((requestChangeAccountPhoneNumberVerification(account: self.context.account, phoneNumber: self.controllerNode.currentNumber) |> deliverOnMainQueue).start(next: { [weak self] next in + self.requestDisposable.set((self.context.engine.accountData.requestChangeAccountPhoneNumberVerification(phoneNumber: self.controllerNode.currentNumber) |> deliverOnMainQueue).start(next: { [weak self] next in if let strongSelf = self { strongSelf.inProgress = false (strongSelf.navigationController as? NavigationController)?.pushViewController(changePhoneNumberCodeController(context: strongSelf.context, phoneNumber: strongSelf.controllerNode.currentNumber, codeData: next)) diff --git a/submodules/SettingsUI/Sources/Privacy and Security/ConfirmPhoneNumberController.swift b/submodules/SettingsUI/Sources/Privacy and Security/ConfirmPhoneNumberController.swift index ac27bd6795..e0b7c6dee5 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/ConfirmPhoneNumberController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/ConfirmPhoneNumberController.swift @@ -216,7 +216,7 @@ public func confirmPhoneNumberCodeController(context: AccountContext, phoneNumbe |> take(1) |> mapToSignal { _ -> Signal in return Signal { subscriber in - return requestNextCancelAccountResetOption(network: context.account.network, phoneNumber: phoneNumber, phoneCodeHash: data.hash).start(next: { next in + return context.engine.auth.requestNextCancelAccountResetOption(phoneNumber: phoneNumber, phoneCodeHash: data.hash).start(next: { next in currentDataPromise?.set(.single(next)) }, error: { error in @@ -242,7 +242,7 @@ public func confirmPhoneNumberCodeController(context: AccountContext, phoneNumbe } } if let code = code { - confirmPhoneDisposable.set((requestCancelAccountReset(network: context.account.network, phoneCodeHash: codeData.hash, phoneCode: code) + confirmPhoneDisposable.set((context.engine.auth.requestCancelAccountReset(phoneCodeHash: codeData.hash, phoneCode: code) |> deliverOnMainQueue).start(error: { error in updateState { state in var state = state diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift index 309a87b21c..46614f78d2 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift @@ -1545,7 +1545,7 @@ public final class VoiceChatController: ViewController { let controller = voiceChatTitleEditController(sharedContext: strongSelf.context.sharedContext, account: strongSelf.context.account, forceTheme: strongSelf.darkTheme, title: presentationData.strings.VoiceChat_EditBioTitle, text: presentationData.strings.VoiceChat_EditBioText, placeholder: presentationData.strings.VoiceChat_EditBioPlaceholder, doneButtonTitle: presentationData.strings.VoiceChat_EditBioSave, value: entry.about, maxLength: maxBioLength, apply: { bio in if let strongSelf = self, let bio = bio { if peer.id.namespace == Namespaces.Peer.CloudUser { - let _ = (updateAbout(account: strongSelf.context.account, about: bio) + let _ = (strongSelf.context.engine.accountData.updateAbout(about: bio) |> `catch` { _ -> Signal in return .complete() }).start() @@ -1575,7 +1575,7 @@ public final class VoiceChatController: ViewController { Queue.mainQueue().after(0.1) { let controller = voiceChatUserNameController(sharedContext: strongSelf.context.sharedContext, account: strongSelf.context.account, forceTheme: strongSelf.darkTheme, title: presentationData.strings.VoiceChat_ChangeNameTitle, firstNamePlaceholder: presentationData.strings.UserInfo_FirstNamePlaceholder, lastNamePlaceholder: presentationData.strings.UserInfo_LastNamePlaceholder, doneButtonTitle: presentationData.strings.VoiceChat_EditBioSave, firstName: peer.firstName, lastName: peer.lastName, maxLength: 128, apply: { firstAndLastName in if let strongSelf = self, let (firstName, lastName) = firstAndLastName { - let _ = updateAccountPeerName(account: context.account, firstName: firstName, lastName: lastName).start() + let _ = context.engine.accountData.updateAccountPeerName(firstName: firstName, lastName: lastName).start() strongSelf.presentUndoOverlay(content: .info(text: strongSelf.presentationData.strings.VoiceChat_EditNameSuccess), action: { _ in return false }) } diff --git a/submodules/TelegramCore/Sources/ChangeAccountPhoneNumber.swift b/submodules/TelegramCore/Sources/TelegramEngine/AccountData/ChangeAccountPhoneNumber.swift similarity index 88% rename from submodules/TelegramCore/Sources/ChangeAccountPhoneNumber.swift rename to submodules/TelegramCore/Sources/TelegramEngine/AccountData/ChangeAccountPhoneNumber.swift index 73fb23a566..8ceec98541 100644 --- a/submodules/TelegramCore/Sources/ChangeAccountPhoneNumber.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/AccountData/ChangeAccountPhoneNumber.swift @@ -37,7 +37,7 @@ public enum RequestChangeAccountPhoneNumberVerificationError { case generic } -public func requestChangeAccountPhoneNumberVerification(account: Account, phoneNumber: String) -> Signal { +func _internal_requestChangeAccountPhoneNumberVerification(account: Account, phoneNumber: String) -> Signal { return account.network.request(Api.functions.account.sendChangePhoneCode(phoneNumber: phoneNumber, settings: .codeSettings(flags: 0)), automaticFloodWait: false) |> mapError { error -> RequestChangeAccountPhoneNumberVerificationError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { @@ -64,7 +64,7 @@ public func requestChangeAccountPhoneNumberVerification(account: Account, phoneN } } -public func requestNextChangeAccountPhoneNumberVerification(account: Account, phoneNumber: String, phoneCodeHash: String) -> Signal { +func _internal_requestNextChangeAccountPhoneNumberVerification(account: Account, phoneNumber: String, phoneCodeHash: String) -> Signal { return account.network.request(Api.functions.auth.resendCode(phoneNumber: phoneNumber, phoneCodeHash: phoneCodeHash), automaticFloodWait: false) |> mapError { error -> RequestChangeAccountPhoneNumberVerificationError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { @@ -96,7 +96,7 @@ public enum ChangeAccountPhoneNumberError { case limitExceeded } -public func requestChangeAccountPhoneNumber(account: Account, phoneNumber: String, phoneCodeHash: String, phoneCode: String) -> Signal { +func _internal_requestChangeAccountPhoneNumber(account: Account, phoneNumber: String, phoneCodeHash: String, phoneCode: String) -> Signal { return account.network.request(Api.functions.account.changePhone(phoneNumber: phoneNumber, phoneCodeHash: phoneCodeHash, phoneCode: phoneCode), automaticFloodWait: false) |> mapError { error -> ChangeAccountPhoneNumberError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { diff --git a/submodules/TelegramCore/Sources/TelegramEngine/AccountData/TelegramEngineAccountData.swift b/submodules/TelegramCore/Sources/TelegramEngine/AccountData/TelegramEngineAccountData.swift index 38aec73575..f9a025c8b2 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/AccountData/TelegramEngineAccountData.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/AccountData/TelegramEngineAccountData.swift @@ -15,5 +15,25 @@ public extension TelegramEngine { public func resetAccountDueTermsOfService() -> Signal { return _internal_resetAccountDueTermsOfService(network: self.account.network) } + + public func requestChangeAccountPhoneNumberVerification(phoneNumber: String) -> Signal { + return _internal_requestChangeAccountPhoneNumberVerification(account: self.account, phoneNumber: phoneNumber) + } + + public func requestNextChangeAccountPhoneNumberVerification(phoneNumber: String, phoneCodeHash: String) -> Signal { + return _internal_requestNextChangeAccountPhoneNumberVerification(account: self.account, phoneNumber: phoneNumber, phoneCodeHash: phoneCodeHash) + } + + public func requestChangeAccountPhoneNumber(phoneNumber: String, phoneCodeHash: String, phoneCode: String) -> Signal { + return _internal_requestChangeAccountPhoneNumber(account: self.account, phoneNumber: phoneNumber, phoneCodeHash: phoneCodeHash, phoneCode: phoneCode) + } + + public func updateAccountPeerName(firstName: String, lastName: String) -> Signal { + return _internal_updateAccountPeerName(account: self.account, firstName: firstName, lastName: lastName) + } + + public func updateAbout(about: String?) -> Signal { + return _internal_updateAbout(account: self.account, about: about) + } } } diff --git a/submodules/TelegramCore/Sources/UpdateAccountPeerName.swift b/submodules/TelegramCore/Sources/TelegramEngine/AccountData/UpdateAccountPeerName.swift similarity index 88% rename from submodules/TelegramCore/Sources/UpdateAccountPeerName.swift rename to submodules/TelegramCore/Sources/TelegramEngine/AccountData/UpdateAccountPeerName.swift index f46bc43b89..533a240653 100644 --- a/submodules/TelegramCore/Sources/UpdateAccountPeerName.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/AccountData/UpdateAccountPeerName.swift @@ -6,7 +6,7 @@ import MtProtoKit import SyncCore -public func updateAccountPeerName(account: Account, firstName: String, lastName: String) -> Signal { +func _internal_updateAccountPeerName(account: Account, firstName: String, lastName: String) -> Signal { return account.network.request(Api.functions.account.updateProfile(flags: (1 << 0) | (1 << 1), firstName: firstName, lastName: lastName, about: nil)) |> map { result -> Api.User? in return result @@ -30,7 +30,7 @@ public enum UpdateAboutError { } -public func updateAbout(account: Account, about: String?) -> Signal { +func _internal_updateAbout(account: Account, about: String?) -> Signal { return account.network.request(Api.functions.account.updateProfile(flags: about == nil ? 0 : (1 << 2), firstName: nil, lastName: nil, about: about)) |> mapError { _ -> UpdateAboutError in return .generic diff --git a/submodules/TelegramCore/Sources/CancelAccountReset.swift b/submodules/TelegramCore/Sources/TelegramEngine/Auth/CancelAccountReset.swift similarity index 85% rename from submodules/TelegramCore/Sources/CancelAccountReset.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Auth/CancelAccountReset.swift index ef3215c26c..60e1b8e0ca 100644 --- a/submodules/TelegramCore/Sources/CancelAccountReset.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Auth/CancelAccountReset.swift @@ -18,7 +18,7 @@ public enum RequestCancelAccountResetDataError { case generic } -public func requestCancelAccountResetData(network: Network, hash: String) -> Signal { +func _internal_requestCancelAccountResetData(network: Network, hash: String) -> Signal { return network.request(Api.functions.account.sendConfirmPhoneCode(hash: hash, settings: .codeSettings(flags: 0)), automaticFloodWait: false) |> mapError { error -> RequestCancelAccountResetDataError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { @@ -39,7 +39,7 @@ public func requestCancelAccountResetData(network: Network, hash: String) -> Sig } } -public func requestNextCancelAccountResetOption(network: Network, phoneNumber: String, phoneCodeHash: String) -> Signal { +func _internal_requestNextCancelAccountResetOption(network: Network, phoneNumber: String, phoneCodeHash: String) -> Signal { return network.request(Api.functions.auth.resendCode(phoneNumber: phoneNumber, phoneCodeHash: phoneCodeHash), automaticFloodWait: false) |> mapError { error -> RequestCancelAccountResetDataError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { @@ -67,7 +67,7 @@ public enum CancelAccountResetError { case limitExceeded } -public func requestCancelAccountReset(network: Network, phoneCodeHash: String, phoneCode: String) -> Signal { +func _internal_requestCancelAccountReset(network: Network, phoneCodeHash: String, phoneCode: String) -> Signal { return network.request(Api.functions.account.confirmPhone(phoneCodeHash: phoneCodeHash, phoneCode: phoneCode)) |> mapError { error -> CancelAccountResetError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift index a23fcd2d02..e3cd9fe4d2 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift @@ -113,6 +113,18 @@ public extension TelegramEngine { public func declineTwoStepPasswordReset() -> Signal { return _internal_declineTwoStepPasswordReset(network: self.account.network) } + + public func requestCancelAccountResetData(hash: String) -> Signal { + return _internal_requestCancelAccountResetData(network: self.account.network, hash: hash) + } + + public func requestNextCancelAccountResetOption(phoneNumber: String, phoneCodeHash: String) -> Signal { + return _internal_requestNextCancelAccountResetOption(network: self.account.network, phoneNumber: phoneNumber, phoneCodeHash: phoneCodeHash) + } + + public func requestCancelAccountReset(phoneCodeHash: String, phoneCode: String) -> Signal { + return _internal_requestCancelAccountReset(network: self.account.network, phoneCodeHash: phoneCodeHash, phoneCode: phoneCode) + } } } diff --git a/submodules/TelegramUI/Sources/OpenResolvedUrl.swift b/submodules/TelegramUI/Sources/OpenResolvedUrl.swift index c191bab96e..320481e6ad 100644 --- a/submodules/TelegramUI/Sources/OpenResolvedUrl.swift +++ b/submodules/TelegramUI/Sources/OpenResolvedUrl.swift @@ -185,7 +185,7 @@ func openResolvedUrlImpl(_ resolvedUrl: ResolvedUrl, context: AccountContext, ur let presentationData = context.sharedContext.currentPresentationData.with { $0 } let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: nil)) present(controller, nil) - let _ = (requestCancelAccountResetData(network: context.account.network, hash: hash) + let _ = (context.engine.auth.requestCancelAccountResetData(hash: hash) |> deliverOnMainQueue).start(next: { [weak controller] data in controller?.dismiss() present(confirmPhoneNumberCodeController(context: context, phoneNumber: phone, codeData: data), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift index d8d38e7f28..a2c7a0f3d0 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift @@ -2472,12 +2472,12 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD var updateNameSignal: Signal = .complete() var hasProgress = false if peer.firstName != firstName || peer.lastName != lastName { - updateNameSignal = updateAccountPeerName(account: context.account, firstName: firstName, lastName: lastName) + updateNameSignal = context.engine.accountData.updateAccountPeerName(firstName: firstName, lastName: lastName) hasProgress = true } var updateBioSignal: Signal = .complete() if let bio = bio, bio != cachedData.about { - updateBioSignal = updateAbout(account: context.account, about: bio) + updateBioSignal = context.engine.accountData.updateAbout(about: bio) |> `catch` { _ -> Signal in return .complete() } From a2f0f5b1ce4946ddec7637f8bc992d4123320e92 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 6 Jul 2021 03:27:53 +0400 Subject: [PATCH 18/26] Password reset fixes --- .../Telegram-iOS/en.lproj/Localizable.strings | 1 + .../Sources/BotCheckoutControllerNode.swift | 6 +- .../Sources/SecureIdAuthController.swift | 2 +- .../Sources/ResetPasswordController.swift | 4 +- ...tupTwoStepVerificationControllerNode.swift | 1 + .../TwoFactorAuthDataInputScreen.swift | 342 +- .../Sources/TwoFactorAuthSplashScreen.swift | 28 +- .../TwoStepVerificationResetController.swift | 260 - .../TwoStepVerificationUnlockController.swift | 40 +- .../TelegramCore/Sources/Authorization.swift | 84 +- .../Auth/TelegramEngineAuth.swift | 35 +- .../Auth/TwoStepVerification.swift | 48 +- .../Sources/PresentationStrings.swift | 8903 +++++++++-------- .../Resources/PresentationStrings.mapping | Bin 174825 -> 174875 bytes .../AuthorizationSequenceController.swift | 103 +- 15 files changed, 4885 insertions(+), 4972 deletions(-) delete mode 100644 submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index a148cede8d..f6c7c4178e 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -6549,3 +6549,4 @@ Sorry for the inconvenience."; "TwoStepAuth.CancelResetTitle" = "Cancel Reset"; "TwoStepAuth.ResetAction" = "Reset Password"; "TwoStepAuth.CancelResetText" = "Cancel the password resetting process? If you proceed, the expired part of the 7-day delay will be lost."; +"TwoStepAuth.RecoveryEmailResetNoAccess" = "No access"; diff --git a/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift b/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift index bef77594c3..2f44761fc7 100644 --- a/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift +++ b/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift @@ -686,7 +686,7 @@ final class BotCheckoutControllerNode: ItemListControllerNode, PKPaymentAuthoriz controller.dismiss() } switch update { - case .noPassword, .awaitingEmailConfirmation: + case .noPassword, .awaitingEmailConfirmation, .pendingPasswordReset: break case .passwordSet: var updatedToken = webToken @@ -754,7 +754,7 @@ final class BotCheckoutControllerNode: ItemListControllerNode, PKPaymentAuthoriz controller.dismiss() } switch update { - case .noPassword, .awaitingEmailConfirmation: + case .noPassword, .awaitingEmailConfirmation, .pendingPasswordReset: break case .passwordSet: var updatedToken = webToken @@ -810,7 +810,7 @@ final class BotCheckoutControllerNode: ItemListControllerNode, PKPaymentAuthoriz controller.dismiss() } switch update { - case .noPassword, .awaitingEmailConfirmation: + case .noPassword, .awaitingEmailConfirmation, .pendingPasswordReset: break case .passwordSet: var updatedToken = token diff --git a/submodules/PassportUI/Sources/SecureIdAuthController.swift b/submodules/PassportUI/Sources/SecureIdAuthController.swift index 0a2febc1b9..6e224c3a08 100644 --- a/submodules/PassportUI/Sources/SecureIdAuthController.swift +++ b/submodules/PassportUI/Sources/SecureIdAuthController.swift @@ -558,7 +558,7 @@ public final class SecureIdAuthController: ViewController, StandalonePresentable return } switch update { - case .noPassword: + case .noPassword, .pendingPasswordReset: strongSelf.updateState(animated: false, { state in var state = state if let verificationState = state.verificationState, case .noChallenge = verificationState { diff --git a/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift b/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift index 2b9d5e155a..18b071b38f 100644 --- a/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift +++ b/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift @@ -179,7 +179,7 @@ public func resetPasswordController(context: AccountContext, emailPattern: Strin state.checking = true return state } - saveDisposable.set((context.engine.auth.recoverTwoStepVerificationPassword(code: state.code) + saveDisposable.set((context.engine.auth.performPasswordRecovery(code: state.code, updatedPassword: .none) |> deliverOnMainQueue).start(error: { error in updateState { state in var state = state @@ -190,7 +190,7 @@ public func resetPasswordController(context: AccountContext, emailPattern: Strin switch error { case .invalidCode: text = presentationData.strings.TwoStepAuth_RecoveryCodeInvalid - case .codeExpired: + case .expired: text = presentationData.strings.TwoStepAuth_RecoveryCodeExpired case .limitExceeded: text = presentationData.strings.TwoStepAuth_FloodError diff --git a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift index 0b1605df28..8fe2f2b704 100644 --- a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift +++ b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift @@ -138,6 +138,7 @@ public enum SetupTwoStepVerificationStateUpdate { case noPassword case awaitingEmailConfirmation(password: String, pattern: String, codeLength: Int32?) case passwordSet(password: String?, hasRecoveryEmail: Bool, hasSecureValues: Bool) + case pendingPasswordReset } final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { diff --git a/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift b/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift index 2d882e5c0c..032e4eb2c4 100644 --- a/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift +++ b/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift @@ -14,18 +14,27 @@ import AnimatedStickerNode public enum TwoFactorDataInputMode { public struct Recovery { - public var code: String - public var syncContacts: Bool - public var account: UnauthorizedAccount + public enum Mode { + case notAuthorized(syncContacts: Bool) + case authorized + } - public init(code: String, syncContacts: Bool, account: UnauthorizedAccount) { + public var code: String + public var mode: Mode + + public init(code: String, mode: Mode) { self.code = code - self.syncContacts = syncContacts - self.account = account + self.mode = mode } } + public enum PasswordRecoveryEmailMode { + case notAuthorized(syncContacts: Bool) + case authorized + } + case password + case passwordRecoveryEmail(emailPattern: String, mode: PasswordRecoveryEmailMode) case passwordRecovery(Recovery) case emailAddress(password: String, hint: String) case updateEmailAddress(password: String) @@ -39,8 +48,9 @@ public final class TwoFactorDataInputScreen: ViewController { private var presentationData: PresentationData private let mode: TwoFactorDataInputMode private let stateUpdated: (SetupTwoStepVerificationStateUpdate) -> Void + private let actionDisposable = MetaDisposable() - public init(sharedContext: SharedAccountContext, engine: SomeTelegramEngine, mode: TwoFactorDataInputMode, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate) -> Void) { + public init(sharedContext: SharedAccountContext, engine: SomeTelegramEngine, mode: TwoFactorDataInputMode, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate) -> Void, presentation: ViewControllerNavigationPresentation = .modalInLargeLayout) { self.sharedContext = sharedContext self.engine = engine self.mode = mode @@ -54,7 +64,7 @@ public final class TwoFactorDataInputScreen: ViewController { super.init(navigationBarPresentationData: NavigationBarPresentationData(theme: navigationBarTheme, strings: NavigationBarStrings(back: self.presentationData.strings.Common_Back, close: self.presentationData.strings.Common_Close))) self.statusBar.statusBarStyle = self.presentationData.theme.rootController.statusBarStyle.style - self.navigationPresentation = .modalInLargeLayout + self.navigationPresentation = presentation self.supportedOrientations = ViewControllerSupportedOrientations(regularSize: .all, compactSize: .portrait) self.navigationBar?.intrinsicCanTransitionInline = false @@ -64,6 +74,10 @@ public final class TwoFactorDataInputScreen: ViewController { required init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } + + deinit { + self.actionDisposable.dispose() + } @objc private func backPressed() { self.dismiss() @@ -101,8 +115,57 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .passwordHint(recovery: nil, password: values[0]), stateUpdated: strongSelf.stateUpdated)) + controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .passwordHint(recovery: nil, password: values[0]), stateUpdated: strongSelf.stateUpdated, presentation: strongSelf.navigationPresentation)) navigationController.setViewControllers(controllers, animated: true) + case let .passwordRecoveryEmail(_, mode): + guard let text = (strongSelf.displayNode as! TwoFactorDataInputScreenNode).inputText.first, !text.isEmpty else { + return + } + let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) + strongSelf.present(statusController, in: .window(.root)) + + strongSelf.actionDisposable.set((strongSelf.engine.auth.checkPasswordRecoveryCode(code: text) + |> deliverOnMainQueue).start(error: { [weak statusController] error in + statusController?.dismiss() + guard let strongSelf = self else { + return + } + + let text: String + switch error { + case .limitExceeded: + text = strongSelf.presentationData.strings.LoginPassword_FloodError + case .invalidCode: + text = strongSelf.presentationData.strings.Login_InvalidCodeError + case .expired: + text = strongSelf.presentationData.strings.Login_CodeExpiredError + case .generic: + text = strongSelf.presentationData.strings.Login_UnknownError + } + + strongSelf.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: strongSelf.presentationData), title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }, completed: { [weak statusController] in + statusController?.dismiss() + + guard let strongSelf = self else { + return + } + + let mappedMode: TwoFactorDataInputMode.Recovery.Mode + switch mode { + case .authorized: + mappedMode = .authorized + case let .notAuthorized(syncContacts): + mappedMode = .notAuthorized(syncContacts: syncContacts) + } + + let setupController = TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .passwordRecovery(TwoFactorDataInputMode.Recovery(code: text, mode: mappedMode)), stateUpdated: strongSelf.stateUpdated, presentation: strongSelf.navigationPresentation) + + guard let navigationController = strongSelf.navigationController as? NavigationController else { + return + } + navigationController.replaceController(strongSelf, with: setupController, animated: true) + })) case let .passwordRecovery(recovery): let values = (strongSelf.displayNode as! TwoFactorDataInputScreenNode).inputText if values.count != 2 { @@ -120,17 +183,7 @@ public final class TwoFactorDataInputScreen: ViewController { guard let navigationController = strongSelf.navigationController as? NavigationController else { return } - var controllers = navigationController.viewControllers.filter { controller in - if controller is TwoFactorAuthSplashScreen { - return false - } - if controller is TwoFactorDataInputScreen && controller !== strongSelf { - return false - } - return true - } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .passwordHint(recovery: recovery, password: values[0]), stateUpdated: strongSelf.stateUpdated)) - navigationController.setViewControllers(controllers, animated: true) + navigationController.replaceController(strongSelf, with: TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .passwordHint(recovery: recovery, password: values[0]), stateUpdated: strongSelf.stateUpdated, presentation: strongSelf.navigationPresentation), animated: true) case let .emailAddress(password, hint): guard let text = (strongSelf.displayNode as! TwoFactorDataInputScreenNode).inputText.first, !text.isEmpty else { return @@ -163,7 +216,7 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailConfirmation(passwordAndHint: (password, hint), emailPattern: text, codeLength: pendingEmail.codeLength.flatMap(Int.init)), stateUpdated: strongSelf.stateUpdated)) + controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailConfirmation(passwordAndHint: (password, hint), emailPattern: text, codeLength: pendingEmail.codeLength.flatMap(Int.init)), stateUpdated: strongSelf.stateUpdated, presentation: strongSelf.navigationPresentation)) navigationController.setViewControllers(controllers, animated: true) } else { guard let navigationController = strongSelf.navigationController as? NavigationController else { @@ -337,7 +390,7 @@ public final class TwoFactorDataInputScreen: ViewController { if let recovery = recovery { strongSelf.performRecovery(recovery: recovery, password: password, hint: value) } else { - strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailAddress(password: password, hint: value), stateUpdated: strongSelf.stateUpdated)) + strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailAddress(password: password, hint: value), stateUpdated: strongSelf.stateUpdated, presentation: strongSelf.navigationPresentation)) } } }, skipAction: { [weak self] in @@ -405,7 +458,7 @@ public final class TwoFactorDataInputScreen: ViewController { if let recovery = recovery { strongSelf.performRecovery(recovery: recovery, password: password, hint: "") } else { - strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailAddress(password: password, hint: ""), stateUpdated: strongSelf.stateUpdated)) + strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailAddress(password: password, hint: ""), stateUpdated: strongSelf.stateUpdated, presentation: strongSelf.navigationPresentation)) } case let .passwordRecovery(recovery): strongSelf.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: strongSelf.presentationData), title: strongSelf.presentationData.strings.TwoFactorSetup_PasswordRecovery_SkipAlertTitle, text: strongSelf.presentationData.strings.TwoFactorSetup_PasswordRecovery_SkipAlertText, actions: [ @@ -439,10 +492,32 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailAddress(password: password, hint: hint), stateUpdated: strongSelf.stateUpdated)) + controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailAddress(password: password, hint: hint), stateUpdated: strongSelf.stateUpdated, presentation: strongSelf.navigationPresentation)) navigationController.setViewControllers(controllers, animated: true) } else { } + case .passwordRecoveryEmail: + switch strongSelf.engine { + case let .authorized(engine): + strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: strongSelf.presentationData.strings.TwoStepAuth_RecoveryUnavailableResetTitle, text: strongSelf.presentationData.strings.TwoStepAuth_RecoveryEmailResetText, actions: [TextAlertAction(type: .genericAction, title: strongSelf.presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.TwoStepAuth_RecoveryUnavailableResetAction, action: { + let _ = (engine.auth.requestTwoStepPasswordReset() + |> deliverOnMainQueue).start(next: { result in + guard let strongSelf = self else { + return + } + switch result { + case .done, .waitingForReset: + strongSelf.stateUpdated(.pendingPasswordReset) + case .declined: + break + case let .error(reason): + break + } + }) + })]), in: .window(.root)) + case .unauthorized: + strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.TwoStepAuth_RecoveryFailed, actions: [TextAlertAction(type: .genericAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + } default: break } @@ -450,29 +525,57 @@ public final class TwoFactorDataInputScreen: ViewController { guard let strongSelf = self else { return } - - let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) - strongSelf.present(statusController, in: .window(.root)) + switch strongSelf.mode { + case .passwordRecoveryEmail: + let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) + strongSelf.present(statusController, in: .window(.root)) - let _ = (strongSelf.engine.auth.resendTwoStepRecoveryEmail() - |> deliverOnMainQueue).start(error: { [weak statusController] error in - statusController?.dismiss() - - guard let strongSelf = self else { + let _ = (strongSelf.engine.auth.requestTwoStepVerificationPasswordRecoveryCode() + |> deliverOnMainQueue).start(error: { [weak statusController] error in + statusController?.dismiss() + + guard let strongSelf = self else { + return + } + + let text: String + switch error { + case .limitExceeded: + text = strongSelf.presentationData.strings.TwoStepAuth_FloodError + case .generic: + text = strongSelf.presentationData.strings.Login_UnknownError + } + strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }, completed: { [weak statusController] in + statusController?.dismiss() + }) + default: + guard case let .authorized(engine) = strongSelf.engine else { return } - - let text: String - switch error { - case .flood: - text = strongSelf.presentationData.strings.TwoStepAuth_FloodError - case .generic: - text = strongSelf.presentationData.strings.Login_UnknownError - } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) - }, completed: { [weak statusController] in - statusController?.dismiss() - }) + let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) + strongSelf.present(statusController, in: .window(.root)) + + let _ = (engine.auth.resendTwoStepRecoveryEmail() + |> deliverOnMainQueue).start(error: { [weak statusController] error in + statusController?.dismiss() + + guard let strongSelf = self else { + return + } + + let text: String + switch error { + case .flood: + text = strongSelf.presentationData.strings.TwoStepAuth_FloodError + case .generic: + text = strongSelf.presentationData.strings.Login_UnknownError + } + strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }, completed: { [weak statusController] in + statusController?.dismiss() + }) + } }) self.displayNodeDidLoad() @@ -485,42 +588,93 @@ public final class TwoFactorDataInputScreen: ViewController { } private func performRecovery(recovery: TwoFactorDataInputMode.Recovery, password: String, hint: String) { - guard case let .unauthorized(engine) = self.engine else { - return - } let statusController = OverlayStatusController(theme: self.presentationData.theme, type: .loading(cancelled: nil)) self.present(statusController, in: .window(.root)) - let _ = (engine.auth.performPasswordRecovery(accountManager: self.sharedContext.accountManager, code: recovery.code, syncContacts: recovery.syncContacts, updatedPassword: password.isEmpty ? .none : .password(password: password, hint: hint, email: nil)) - |> deliverOnMainQueue).start(error: { [weak self, weak statusController] error in - statusController?.dismiss() - - guard let strongSelf = self else { - return + switch self.engine { + case let .unauthorized(engine): + var syncContacts = false + switch recovery.mode { + case let .notAuthorized(syncContactsValue): + syncContacts = syncContactsValue + case .authorized: + break } + let _ = (engine.auth.performPasswordRecovery(code: recovery.code, updatedPassword: password.isEmpty ? .none : .password(password: password, hint: hint, email: nil)) + |> deliverOnMainQueue).start(next: { [weak self, weak statusController] recoveredAccountData in + statusController?.dismiss() - let text: String - switch error { - case .limitExceeded: - text = strongSelf.presentationData.strings.LoginPassword_FloodError - case .invalidCode: - text = strongSelf.presentationData.strings.Login_InvalidCodeError - case .expired: - text = strongSelf.presentationData.strings.Login_CodeExpiredError - case .generic: - text = strongSelf.presentationData.strings.Login_UnknownError - } + guard let strongSelf = self else { + return + } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) - }, completed: { [weak self, weak statusController] in - statusController?.dismiss() + if password.isEmpty { + strongSelf.stateUpdated(.noPassword) + } else { + strongSelf.stateUpdated(.passwordSet(password: password, hasRecoveryEmail: true, hasSecureValues: false)) + } - guard let strongSelf = self else { - return - } + (strongSelf.navigationController as? NavigationController)?.replaceController(strongSelf, with: TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .recoveryDone(recoveredAccountData: recoveredAccountData, syncContacts: syncContacts)), animated: true) + }, error: { [weak self, weak statusController] error in + statusController?.dismiss() - strongSelf.dismiss() - }) + guard let strongSelf = self else { + return + } + + let text: String + switch error { + case .limitExceeded: + text = strongSelf.presentationData.strings.LoginPassword_FloodError + case .invalidCode: + text = strongSelf.presentationData.strings.Login_InvalidCodeError + case .expired: + text = strongSelf.presentationData.strings.Login_CodeExpiredError + case .generic: + text = strongSelf.presentationData.strings.Login_UnknownError + } + + strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }, completed: { [weak self, weak statusController] in + statusController?.dismiss() + }) + case let .authorized(engine): + let _ = (engine.auth.performPasswordRecovery(code: recovery.code, updatedPassword: password.isEmpty ? .none : .password(password: password, hint: hint, email: nil)) + |> deliverOnMainQueue).start(error: { [weak self, weak statusController] error in + statusController?.dismiss() + + guard let strongSelf = self else { + return + } + + let text: String + switch error { + case .limitExceeded: + text = strongSelf.presentationData.strings.LoginPassword_FloodError + case .invalidCode: + text = strongSelf.presentationData.strings.Login_InvalidCodeError + case .expired: + text = strongSelf.presentationData.strings.Login_CodeExpiredError + case .generic: + text = strongSelf.presentationData.strings.Login_UnknownError + } + + strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }, completed: { [weak self, weak statusController] in + statusController?.dismiss() + + guard let strongSelf = self else { + return + } + + if password.isEmpty { + strongSelf.stateUpdated(.noPassword) + } else { + strongSelf.stateUpdated(.passwordSet(password: password, hasRecoveryEmail: true, hasSecureValues: false)) + } + strongSelf.dismiss() + }) + } } } @@ -805,7 +959,7 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS self.scrollNode.canCancelAllTouchesInViews = true switch mode { - case .password, .passwordRecovery, .emailAddress, .updateEmailAddress: + case .password, .passwordRecovery, .passwordRecoveryEmail, .emailAddress, .updateEmailAddress: self.monkeyNode = ManagedMonkeyAnimationNode() case .emailConfirmation: if let path = getAppBundle().path(forResource: "TwoFactorSetupMail", ofType: "tgs") { @@ -909,6 +1063,33 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS toggleTextHidden?(node) }), ] + case let .passwordRecoveryEmail(emailPattern, _): + title = presentationData.strings.TwoFactorSetup_EmailVerification_Title + let (rawText, ranges) = presentationData.strings.TwoFactorSetup_EmailVerification_Text(emailPattern) + + let string = NSMutableAttributedString() + string.append(NSAttributedString(string: rawText, font: Font.regular(16.0), textColor: presentationData.theme.list.itemPrimaryTextColor)) + for (_, range) in ranges { + string.addAttribute(.font, value: Font.semibold(16.0), range: range) + } + + text = string + + buttonText = presentationData.strings.TwoFactorSetup_EmailVerification_Action + skipActionText = "" + changeEmailActionText = presentationData.strings.TwoStepAuth_RecoveryEmailResetNoAccess + resendCodeActionText = presentationData.strings.TwoFactorSetup_EmailVerification_ResendAction + inputNodes = [ + TwoFactorDataInputTextNode(theme: presentationData.theme, mode: .code, placeholder: presentationData.strings.TwoFactorSetup_EmailVerification_Placeholder, focusUpdated: { node, focused in + focusUpdated?(node, focused) + }, next: { node in + next?(node) + }, updated: { node in + updated?(node) + }, toggleTextHidden: { node in + toggleTextHidden?(node) + }), + ] case let .emailConfirmation(_, emailPattern, _): title = presentationData.strings.TwoFactorSetup_EmailVerification_Title let (rawText, ranges) = presentationData.strings.TwoFactorSetup_EmailVerification_Text(emailPattern) @@ -985,7 +1166,6 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS self.changeEmailActionTitleNode.attributedText = NSAttributedString(string: changeEmailActionText, font: Font.regular(16.0), textColor: self.presentationData.theme.list.itemAccentColor) self.changeEmailActionButtonNode = HighlightTrackingButtonNode() self.changeEmailActionButtonNode.isHidden = changeEmailActionText.isEmpty - self.changeEmailActionButtonNode.isHidden = changeEmailActionText.isEmpty self.resendCodeActionTitleNode = ImmediateTextNode() self.resendCodeActionTitleNode.isUserInteractionEnabled = false @@ -1129,7 +1309,7 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS break } } - focusUpdated = { [weak self] node, _ in + focusUpdated = { node, _ in DispatchQueue.main.async { updateAnimations() } @@ -1156,6 +1336,18 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS if let codeLength = codeLength, text.count == codeLength { action() } + case .passwordRecoveryEmail: + let text = strongSelf.inputNodes[0].text + let hasText = !text.isEmpty + strongSelf.buttonNode.isHidden = !hasText + strongSelf.changeEmailActionTitleNode.isHidden = hasText + strongSelf.changeEmailActionButtonNode.isHidden = hasText + strongSelf.resendCodeActionTitleNode.isHidden = hasText + strongSelf.resendCodeActionButtonNode.isHidden = hasText + + if text.count == 6 { + action() + } case .passwordHint: let hasText = strongSelf.inputNodes.contains(where: { !$0.text.isEmpty }) strongSelf.buttonNode.isHidden = !hasText diff --git a/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift b/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift index 8f62595254..51e8e7d2b1 100644 --- a/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift +++ b/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift @@ -15,6 +15,7 @@ import TelegramCore public enum TwoFactorAuthSplashMode { case intro case done + case recoveryDone(recoveredAccountData: RecoveredAccountData, syncContacts: Bool) } public final class TwoFactorAuthSplashScreen: ViewController { @@ -23,7 +24,7 @@ public final class TwoFactorAuthSplashScreen: ViewController { private var presentationData: PresentationData private var mode: TwoFactorAuthSplashMode - public init(sharedContext: SharedAccountContext, engine: SomeTelegramEngine, mode: TwoFactorAuthSplashMode) { + public init(sharedContext: SharedAccountContext, engine: SomeTelegramEngine, mode: TwoFactorAuthSplashMode, presentation: ViewControllerNavigationPresentation = .modalInLargeLayout) { self.sharedContext = sharedContext self.engine = engine self.mode = mode @@ -34,9 +35,10 @@ public final class TwoFactorAuthSplashScreen: ViewController { let navigationBarTheme = NavigationBarTheme(buttonColor: defaultTheme.buttonColor, disabledButtonColor: defaultTheme.disabledButtonColor, primaryTextColor: defaultTheme.primaryTextColor, backgroundColor: .clear, enableBackgroundBlur: false, separatorColor: .clear, badgeBackgroundColor: defaultTheme.badgeBackgroundColor, badgeStrokeColor: defaultTheme.badgeStrokeColor, badgeTextColor: defaultTheme.badgeTextColor) super.init(navigationBarPresentationData: NavigationBarPresentationData(theme: navigationBarTheme, strings: NavigationBarStrings(back: self.presentationData.strings.Common_Back, close: self.presentationData.strings.Common_Close))) + + self.navigationPresentation = presentation self.statusBar.statusBarStyle = self.presentationData.theme.rootController.statusBarStyle.style - self.navigationPresentation = .modalInLargeLayout self.supportedOrientations = ViewControllerSupportedOrientations(regularSize: .all, compactSize: .portrait) self.navigationBar?.intrinsicCanTransitionInline = false @@ -58,12 +60,22 @@ public final class TwoFactorAuthSplashScreen: ViewController { switch strongSelf.mode { case .intro: strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .password, stateUpdated: { _ in - })) + }, presentation: strongSelf.navigationPresentation)) case .done: guard let navigationController = strongSelf.navigationController as? NavigationController else { return } navigationController.filterController(strongSelf, animated: true) + case let .recoveryDone(recoveredAccountData, syncContacts): + guard let navigationController = strongSelf.navigationController as? NavigationController else { + return + } + switch strongSelf.engine { + case let .unauthorized(engine): + let _ = loginWithRecoveredAccountData(accountManager: strongSelf.sharedContext.accountManager, account: engine.account, recoveredAccountData: recoveredAccountData, syncContacts: syncContacts).start() + case .authorized: + navigationController.filterController(strongSelf, animated: true) + } } }) @@ -124,6 +136,16 @@ private final class TwoFactorAuthSplashScreenNode: ViewControllerTracingNode { text = NSAttributedString(string: self.presentationData.strings.TwoFactorSetup_Done_Text, font: textFont, textColor: textColor) buttonText = self.presentationData.strings.TwoFactorSetup_Done_Action + if let path = getAppBundle().path(forResource: "TwoFactorSetupDone", ofType: "tgs") { + self.animationNode.setup(source: AnimatedStickerNodeLocalFileSource(path: path), width: 248, height: 248, mode: .direct(cachePathPrefix: nil)) + self.animationSize = CGSize(width: 124.0, height: 124.0) + self.animationNode.visibility = true + } + case .recoveryDone: + title = self.presentationData.strings.TwoFactorSetup_Done_Title + text = NSAttributedString(string: self.presentationData.strings.TwoFactorSetup_Done_Text, font: textFont, textColor: textColor) + buttonText = self.presentationData.strings.TwoFactorSetup_Done_Action + if let path = getAppBundle().path(forResource: "TwoFactorSetupDone", ofType: "tgs") { self.animationNode.setup(source: AnimatedStickerNodeLocalFileSource(path: path), width: 248, height: 248, mode: .direct(cachePathPrefix: nil)) self.animationSize = CGSize(width: 124.0, height: 124.0) diff --git a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift deleted file mode 100644 index e5e271efb4..0000000000 --- a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift +++ /dev/null @@ -1,260 +0,0 @@ -import Foundation -import UIKit -import Display -import SwiftSignalKit -import Postbox -import TelegramCore -import SyncCore -import TelegramPresentationData -import ItemListUI -import PresentationDataUtils -import TextFormat -import AccountContext -import AlertUI -import PresentationDataUtils -import Markdown - -private final class TwoStepVerificationResetControllerArguments { - let updateEntryText: (String) -> Void - let next: () -> Void - let openEmailInaccessible: () -> Void - - init(updateEntryText: @escaping (String) -> Void, next: @escaping () -> Void, openEmailInaccessible: @escaping () -> Void) { - self.updateEntryText = updateEntryText - self.next = next - self.openEmailInaccessible = openEmailInaccessible - } -} - -private enum TwoStepVerificationResetSection: Int32 { - case password -} - -private enum TwoStepVerificationResetTag: ItemListItemTag { - case input - - func isEqual(to other: ItemListItemTag) -> Bool { - if let other = other as? TwoStepVerificationResetTag { - switch self { - case .input: - if case .input = other { - return true - } else { - return false - } - } - } else { - return false - } - } -} - -private enum TwoStepVerificationResetEntry: ItemListNodeEntry { - case codeEntry(PresentationTheme, PresentationStrings, String, String) - case codeInfo(PresentationTheme, String) - - var section: ItemListSectionId { - return TwoStepVerificationResetSection.password.rawValue - } - - var stableId: Int32 { - switch self { - case .codeEntry: - return 0 - case .codeInfo: - return 1 - } - } - - static func ==(lhs: TwoStepVerificationResetEntry, rhs: TwoStepVerificationResetEntry) -> Bool { - switch lhs { - case let .codeEntry(lhsTheme, lhsStrings, lhsPlaceholder, lhsText): - if case let .codeEntry(rhsTheme, rhsStrings, rhsPlaceholder, rhsText) = rhs, lhsTheme === rhsTheme, lhsStrings === rhsStrings, lhsPlaceholder == rhsPlaceholder, lhsText == rhsText { - return true - } else { - return false - } - case let .codeInfo(lhsTheme, lhsText): - if case let .codeInfo(rhsTheme, rhsText) = rhs, lhsTheme === rhsTheme, lhsText == rhsText { - return true - } else { - return false - } - } - } - - static func <(lhs: TwoStepVerificationResetEntry, rhs: TwoStepVerificationResetEntry) -> Bool { - return lhs.stableId < rhs.stableId - } - - func item(presentationData: ItemListPresentationData, arguments: Any) -> ListViewItem { - let arguments = arguments as! TwoStepVerificationResetControllerArguments - switch self { - case let .codeEntry(theme, strings, placeholder, text): - return ItemListSingleLineInputItem(presentationData: presentationData, title: NSAttributedString(string: placeholder, textColor: theme.list.itemPrimaryTextColor), text: text, placeholder: "", type: .password, spacing: 10.0, tag: TwoStepVerificationResetTag.input, sectionId: self.section, textUpdated: { updatedText in - arguments.updateEntryText(updatedText) - }, action: { - arguments.next() - }) - case let .codeInfo(theme, text): - return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section) - } - } -} - -private struct TwoStepVerificationResetControllerState: Equatable { - let codeText: String - let checking: Bool - - init(codeText: String, checking: Bool) { - self.codeText = codeText - self.checking = checking - } - - static func ==(lhs: TwoStepVerificationResetControllerState, rhs: TwoStepVerificationResetControllerState) -> Bool { - if lhs.codeText != rhs.codeText { - return false - } - if lhs.checking != rhs.checking { - return false - } - - return true - } - - func withUpdatedCodeText(_ codeText: String) -> TwoStepVerificationResetControllerState { - return TwoStepVerificationResetControllerState(codeText: codeText, checking: self.checking) - } - - func withUpdatedChecking(_ checking: Bool) -> TwoStepVerificationResetControllerState { - return TwoStepVerificationResetControllerState(codeText: self.codeText, checking: checking) - } -} - -private func twoStepVerificationResetControllerEntries(presentationData: PresentationData, state: TwoStepVerificationResetControllerState, emailPattern: String) -> [TwoStepVerificationResetEntry] { - var entries: [TwoStepVerificationResetEntry] = [] - - entries.append(.codeEntry(presentationData.theme, presentationData.strings, presentationData.strings.TwoStepAuth_RecoveryCode, state.codeText)) - entries.append(.codeInfo(presentationData.theme, "\(presentationData.strings.TwoStepAuth_RecoveryCodeHelp)\n\n[\(presentationData.strings.TwoStepAuth_RecoveryEmailUnavailable(escapedPlaintextForMarkdown(emailPattern)).0)]()")) - - return entries -} - -func twoStepVerificationResetController(context: AccountContext, emailPattern: String, result: Promise, requestedRecoveryReset: @escaping () -> Void) -> ViewController { - let initialState = TwoStepVerificationResetControllerState(codeText: "", checking: false) - - let statePromise = ValuePromise(initialState, ignoreRepeated: true) - let stateValue = Atomic(value: initialState) - let updateState: ((TwoStepVerificationResetControllerState) -> TwoStepVerificationResetControllerState) -> Void = { f in - statePromise.set(stateValue.modify { f($0) }) - } - - var dismissImpl: (() -> Void)? - var presentControllerImpl: ((ViewController, ViewControllerPresentationArguments) -> Void)? - - let actionsDisposable = DisposableSet() - - let resetPasswordDisposable = MetaDisposable() - actionsDisposable.add(resetPasswordDisposable) - - let checkCode: () -> Void = { - var code: String? - updateState { state in - if state.checking || state.codeText.isEmpty { - return state - } else { - code = state.codeText - return state.withUpdatedChecking(true) - } - } - if let code = code { - resetPasswordDisposable.set((context.engine.auth.recoverTwoStepVerificationPassword(code: code) |> deliverOnMainQueue).start(error: { error in - updateState { - return $0.withUpdatedChecking(false) - } - let presentationData = context.sharedContext.currentPresentationData.with { $0 } - let alertText: String - switch error { - case .generic: - alertText = presentationData.strings.Login_UnknownError - case .invalidCode: - alertText = presentationData.strings.Login_InvalidCodeError - case .codeExpired: - alertText = presentationData.strings.Login_CodeExpiredError - case .limitExceeded: - alertText = presentationData.strings.Login_CodeFloodError - } - presentControllerImpl?(textAlertController(context: context, title: nil, text: alertText, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) - }, completed: { - updateState { - return $0.withUpdatedChecking(false) - } - result.set(.single(true)) - })) - } - } - - let arguments = TwoStepVerificationResetControllerArguments(updateEntryText: { updatedText in - updateState { - $0.withUpdatedCodeText(updatedText) - } - }, next: { - checkCode() - }, openEmailInaccessible: { - let presentationData = context.sharedContext.currentPresentationData.with { $0 } - - presentControllerImpl?(textAlertController(context: context, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetTitle, text: presentationData.strings.TwoStepAuth_RecoveryEmailResetText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetAction, action: { - let _ = (context.engine.auth.requestTwoStepPasswordReset() - |> deliverOnMainQueue).start(next: { result in - switch result { - case .done, .waitingForReset: - requestedRecoveryReset() - case .declined: - break - case let .error(reason): - break - } - }) - })]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) - }) - - let signal = combineLatest(context.sharedContext.presentationData, statePromise.get()) |> deliverOnMainQueue - |> map { presentationData, state -> (ItemListControllerState, (ItemListNodeState, Any)) in - - let leftNavigationButton = ItemListNavigationButton(content: .text(presentationData.strings.Common_Cancel), style: .regular, enabled: true, action: { - dismissImpl?() - }) - - var rightNavigationButton: ItemListNavigationButton? - if state.checking { - rightNavigationButton = ItemListNavigationButton(content: .none, style: .activity, enabled: true, action: {}) - } else { - var nextEnabled = true - if state.codeText.isEmpty { - nextEnabled = false - } - rightNavigationButton = ItemListNavigationButton(content: .text(presentationData.strings.Common_Next), style: .bold, enabled: nextEnabled, action: { - checkCode() - }) - } - - let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(presentationData.strings.TwoStepAuth_RecoveryTitle), leftNavigationButton: leftNavigationButton, rightNavigationButton: rightNavigationButton, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: false) - let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: twoStepVerificationResetControllerEntries(presentationData: presentationData, state: state, emailPattern: emailPattern), style: .blocks, focusItemTag: TwoStepVerificationResetTag.input, emptyStateItem: nil, animateChanges: false) - - return (controllerState, (listState, arguments)) - } |> afterDisposed { - actionsDisposable.dispose() - } - - let controller = ItemListController(context: context, state: signal) - presentControllerImpl = { [weak controller] c, p in - if let controller = controller { - controller.present(c, in: .window(.root), with: p) - } - } - dismissImpl = { [weak controller] in - controller?.dismiss() - } - - return controller -} diff --git a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift index 727eff38c6..f2788e4e83 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift @@ -293,6 +293,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: var replaceControllerImpl: ((ViewController, Bool) -> Void)? var presentControllerImpl: ((ViewController, ViewControllerPresentationArguments?) -> Void)? + var pushControllerImpl: ((ViewController) -> Void)? var dismissImpl: (() -> Void)? let actionsDisposable = DisposableSet() @@ -507,8 +508,28 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: state.checking = false return state } + + var stateUpdated: ((SetupTwoStepVerificationStateUpdate) -> Void)? + let controller = TwoFactorDataInputScreen(sharedContext: context.sharedContext, engine: .authorized(context.engine), mode: .passwordRecoveryEmail(emailPattern: emailPattern, mode: .authorized), stateUpdated: { state in + stateUpdated?(state) + }) + stateUpdated = { [weak controller] state in + controller?.view.endEditing(true) + controller?.dismiss() + + switch state { + case .noPassword, .awaitingEmailConfirmation, .passwordSet: + controller?.dismiss() + + dismissImpl?() + case .pendingPasswordReset: + dataPromise.set(context.engine.auth.twoStepVerificationConfiguration() + |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) + }) + } + } - var completionImpl: ((Bool) -> Void)? + /*var completionImpl: ((Bool) -> Void)? let controller = resetPasswordController(context: context, emailPattern: emailPattern, completion: { result in completionImpl?(result) }) @@ -527,8 +548,8 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: let presentationData = context.sharedContext.currentPresentationData.with { $0 } presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.TwoStepAuth_DisableSuccess, false)), nil) } - } - presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + }*/ + pushControllerImpl?(controller) }, error: { _ in updateState { state in var state = state @@ -592,6 +613,8 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: case .notSet: let controller = SetupTwoStepVerificationController(context: context, initialState: .createPassword, stateUpdated: { update, shouldDismiss, controller in switch update { + case .pendingPasswordReset: + break case .noPassword: dataPromise.set(.single(.access(configuration: .notSet(pendingEmail: nil)))) case let .awaitingEmailConfirmation(password, pattern, codeLength): @@ -623,6 +646,8 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: case let .manage(password, hasRecovery, pendingEmail, hasSecureValues): let controller = SetupTwoStepVerificationController(context: context, initialState: .updatePassword(current: password, hasRecoveryEmail: hasRecovery, hasSecureValues: hasSecureValues), stateUpdated: { update, shouldDismiss, controller in switch update { + case .pendingPasswordReset: + break case .noPassword: dataPromise.set(.single(.access(configuration: .notSet(pendingEmail: nil)))) case .awaitingEmailConfirmation: @@ -712,10 +737,10 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: case .access: break case let .manage(password, emailSet, _, hasSecureValues): - //let controller = TwoFactorDataInputScreen(context: context, mode: .updateEmailAddress(password: password)) - let controller = SetupTwoStepVerificationController(context: context, initialState: .addEmail(hadRecoveryEmail: emailSet, hasSecureValues: hasSecureValues, password: password), stateUpdated: { update, shouldDismiss, controller in switch update { + case .pendingPasswordReset: + break case .noPassword: assertionFailure() break @@ -803,6 +828,8 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: } let controller = SetupTwoStepVerificationController(context: context, initialState: .confirmEmail(password: password, hasSecureValues: hasSecureValues, pattern: pendingEmail.pattern, codeLength: pendingEmail.codeLength), stateUpdated: { update, shouldDismiss, controller in switch update { + case .pendingPasswordReset: + break case .noPassword: assertionFailure() break @@ -941,6 +968,9 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: controller.present(c, in: .window(.root), with: p) } } + pushControllerImpl = { [weak controller] c in + controller?.push(c) + } dismissImpl = { [weak controller] in controller?.dismiss() } diff --git a/submodules/TelegramCore/Sources/Authorization.swift b/submodules/TelegramCore/Sources/Authorization.swift index ef1acec2b7..6a402cc7d0 100644 --- a/submodules/TelegramCore/Sources/Authorization.swift +++ b/submodules/TelegramCore/Sources/Authorization.swift @@ -342,30 +342,6 @@ public enum PasswordRecoveryOption { case email(pattern: String) } -public func requestPasswordRecovery(account: UnauthorizedAccount) -> Signal { - return account.network.request(Api.functions.auth.requestPasswordRecovery()) - |> map(Optional.init) - |> `catch` { error -> Signal in - if error.errorDescription.hasPrefix("FLOOD_WAIT") { - return .fail(.limitExceeded) - } else if error.errorDescription.hasPrefix("PASSWORD_RECOVERY_NA") { - return .single(nil) - } else { - return .fail(.generic) - } - } - |> map { result -> PasswordRecoveryOption in - if let result = result { - switch result { - case let .passwordRecovery(emailPattern): - return .email(pattern: emailPattern) - } - } else { - return .none - } - } -} - public enum PasswordRecoveryError { case invalidCode case limitExceeded @@ -373,7 +349,7 @@ public enum PasswordRecoveryError { case generic } -public func checkPasswordRecoveryCode(network: Network, code: String) -> Signal { +func _internal_checkPasswordRecoveryCode(network: Network, code: String) -> Signal { return network.request(Api.functions.auth.checkRecoveryPassword(code: code), automaticFloodWait: false) |> mapError { error -> PasswordRecoveryError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { @@ -389,12 +365,40 @@ public func checkPasswordRecoveryCode(network: Network, code: String) -> Signal< } } -func _internal_performPasswordRecovery(accountManager: AccountManager, account: UnauthorizedAccount, code: String, syncContacts: Bool, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { - return _internal_twoStepAuthData(account.network) +public final class RecoveredAccountData { + let authorization: Api.auth.Authorization + + init(authorization: Api.auth.Authorization) { + self.authorization = authorization + } +} + +public func loginWithRecoveredAccountData(accountManager: AccountManager, account: UnauthorizedAccount, recoveredAccountData: RecoveredAccountData, syncContacts: Bool) -> Signal { + return account.postbox.transaction { transaction -> Signal in + switch recoveredAccountData.authorization { + case let .authorization(_, _, user): + let user = TelegramUser(user: user) + let state = AuthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, peerId: user.id, state: nil) + + initializedAppSettingsAfterLogin(transaction: transaction, appVersion: account.networkArguments.appVersion, syncContacts: syncContacts) + transaction.setState(state) + return accountManager.transaction { transaction -> Void in + switchToAuthorizedAccount(transaction: transaction, account: account) + } + case .authorizationSignUpRequired: + return .complete() + } + } + |> switchToLatest + |> ignoreValues +} + +func _internal_performPasswordRecovery(network: Network, code: String, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + return _internal_twoStepAuthData(network) |> mapError { _ -> PasswordRecoveryError in return .generic } - |> mapToSignal { authData -> Signal in + |> mapToSignal { authData -> Signal in let newSettings: Api.account.PasswordInputSettings? switch updatedPassword { case .none: @@ -405,7 +409,7 @@ func _internal_performPasswordRecovery(accountManager: AccountManager, account: flags |= (1 << 1) } - guard let (updatedPasswordHash, updatedPasswordDerivation) = passwordUpdateKDF(encryptionProvider: account.network.encryptionProvider, password: password, derivation: authData.nextPasswordDerivation) else { + guard let (updatedPasswordHash, updatedPasswordDerivation) = passwordUpdateKDF(encryptionProvider: network.encryptionProvider, password: password, derivation: authData.nextPasswordDerivation) else { return .fail(.invalidCode) } @@ -416,7 +420,7 @@ func _internal_performPasswordRecovery(accountManager: AccountManager, account: if newSettings != nil { flags |= 1 << 0 } - return account.network.request(Api.functions.auth.recoverPassword(flags: flags, code: code, newSettings: newSettings), automaticFloodWait: false) + return network.request(Api.functions.auth.recoverPassword(flags: flags, code: code, newSettings: newSettings), automaticFloodWait: false) |> mapError { error -> PasswordRecoveryError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { return .limitExceeded @@ -426,24 +430,8 @@ func _internal_performPasswordRecovery(accountManager: AccountManager, account: return .invalidCode } } - |> mapToSignal { result -> Signal in - return account.postbox.transaction { transaction -> Signal in - switch result { - case let .authorization(_, _, user): - let user = TelegramUser(user: user) - let state = AuthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, peerId: user.id, state: nil) - - initializedAppSettingsAfterLogin(transaction: transaction, appVersion: account.networkArguments.appVersion, syncContacts: syncContacts) - transaction.setState(state) - return accountManager.transaction { transaction -> Void in - switchToAuthorizedAccount(transaction: transaction, account: account) - } - case .authorizationSignUpRequired: - return .complete() - } - } - |> switchToLatest - |> mapError { _ -> PasswordRecoveryError in } + |> mapToSignal { result -> Signal in + return .single(RecoveredAccountData(authorization: result)) } } } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift index e3cd9fe4d2..2b1e5a2ae2 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift @@ -24,8 +24,16 @@ public extension TelegramEngineUnauthorized { return _internal_updateTwoStepVerificationPassword(network: self.account.network, currentPassword: currentPassword, updatedPassword: updatedPassword) } - public func performPasswordRecovery(accountManager: AccountManager, code: String, syncContacts: Bool, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { - return _internal_performPasswordRecovery(accountManager: accountManager, account: self.account, code: code, syncContacts: syncContacts, updatedPassword: updatedPassword) + public func requestTwoStepVerificationPasswordRecoveryCode() -> Signal { + return _internal_requestTwoStepVerificationPasswordRecoveryCode(network: self.account.network) + } + + public func checkPasswordRecoveryCode(code: String) -> Signal { + return _internal_checkPasswordRecoveryCode(network: self.account.network, code: code) + } + + public func performPasswordRecovery(code: String, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + return _internal_performPasswordRecovery(network: self.account.network, code: code, updatedPassword: updatedPassword) } public func resendTwoStepRecoveryEmail() -> Signal { @@ -90,8 +98,8 @@ public extension TelegramEngine { return _internal_requestTwoStepVerificationPasswordRecoveryCode(network: self.account.network) } - public func recoverTwoStepVerificationPassword(code: String) -> Signal { - return _internal_recoverTwoStepVerificationPassword(network: self.account.network, code: code) + public func performPasswordRecovery(code: String, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + return _internal_performPasswordRecovery(network: self.account.network, code: code, updatedPassword: updatedPassword) } public func cachedTwoStepPasswordToken() -> Signal { @@ -106,6 +114,10 @@ public extension TelegramEngine { return _internal_requestTemporaryTwoStepPasswordToken(account: self.account, password: password, period: period, requiresBiometrics: requiresBiometrics) } + public func checkPasswordRecoveryCode(code: String) -> Signal { + return _internal_checkPasswordRecoveryCode(network: self.account.network, code: code) + } + public func requestTwoStepPasswordReset() -> Signal { return _internal_requestTwoStepPasswordReset(network: self.account.network) } @@ -154,12 +166,21 @@ public extension SomeTelegramEngine { } } - public func resendTwoStepRecoveryEmail() -> Signal { + public func requestTwoStepVerificationPasswordRecoveryCode() -> Signal { switch self.engine { case let .authorized(engine): - return engine.auth.resendTwoStepRecoveryEmail() + return engine.auth.requestTwoStepVerificationPasswordRecoveryCode() case let .unauthorized(engine): - return engine.auth.resendTwoStepRecoveryEmail() + return engine.auth.requestTwoStepVerificationPasswordRecoveryCode() + } + } + + public func checkPasswordRecoveryCode(code: String) -> Signal { + switch self.engine { + case let .authorized(engine): + return engine.auth.checkPasswordRecoveryCode(code: code) + case let .unauthorized(engine): + return engine.auth.checkPasswordRecoveryCode(code: code) } } } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Auth/TwoStepVerification.swift b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TwoStepVerification.swift index e48acb914b..2dc76580fc 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Auth/TwoStepVerification.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TwoStepVerification.swift @@ -312,19 +312,26 @@ func _internal_updateTwoStepVerificationEmail(network: Network, currentPassword: public enum RequestTwoStepVerificationPasswordRecoveryCodeError { case generic + case limitExceeded } func _internal_requestTwoStepVerificationPasswordRecoveryCode(network: Network) -> Signal { return network.request(Api.functions.auth.requestPasswordRecovery(), automaticFloodWait: false) - |> mapError { _ -> RequestTwoStepVerificationPasswordRecoveryCodeError in + |> mapError { error -> RequestTwoStepVerificationPasswordRecoveryCodeError in + if error.errorDescription.hasPrefix("FLOOD_WAIT") { + return .limitExceeded + } else if error.errorDescription.hasPrefix("PASSWORD_RECOVERY_NA") { + return .generic + } else { return .generic } - |> map { result -> String in - switch result { - case let .passwordRecovery(emailPattern): - return emailPattern - } + } + |> map { result -> String in + switch result { + case let .passwordRecovery(emailPattern): + return emailPattern } + } } public enum RecoverTwoStepVerificationPasswordError { @@ -334,35 +341,6 @@ public enum RecoverTwoStepVerificationPasswordError { case invalidCode } -func _internal_recoverTwoStepVerificationPassword(network: Network, code: String) -> Signal { - return _internal_twoStepAuthData(network) - |> mapError { _ -> RecoverTwoStepVerificationPasswordError in - return .generic - } - |> mapToSignal { authData -> Signal in - var flags: Int32 = (1 << 1) - if authData.currentPasswordDerivation != nil { - flags |= (1 << 0) - } - - return network.request(Api.functions.auth.recoverPassword(flags: 0, code: code, newSettings: nil), automaticFloodWait: false) - |> mapError { error -> RecoverTwoStepVerificationPasswordError in - if error.errorDescription.hasPrefix("FLOOD_WAIT_") { - return .limitExceeded - } else if error.errorDescription == "PASSWORD_RECOVERY_EXPIRED" { - return .codeExpired - } else if error.errorDescription == "CODE_INVALID" { - return .invalidCode - } else { - return .generic - } - } - |> mapToSignal { _ -> Signal in - return .complete() - } - } -} - func _internal_cachedTwoStepPasswordToken(postbox: Postbox) -> Signal { return postbox.transaction { transaction -> TemporaryTwoStepPasswordToken? in let key = ValueBoxKey(length: 1) diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index ebbc549339..18b48dbdc7 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -865,4841 +865,4843 @@ public final class PresentationStrings: Equatable { public var StickerSettings_MaskContextInfo: String { return self._s[622]! } public var InviteLink_Create_EditTitle: String { return self._s[623]! } public var SocksProxySetup_ProxyStatusChecking: String { return self._s[624]! } - public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[627]! } - public var ChatImportActivity_Success: String { return self._s[629]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[630]! } - public var NotificationsSound_Popcorn: String { return self._s[631]! } - public var FeatureDisabled_Oops: String { return self._s[632]! } + public var TwoStepAuth_RecoveryEmailResetNoAccess: String { return self._s[625]! } + public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[628]! } + public var ChatImportActivity_Success: String { return self._s[630]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[631]! } + public var NotificationsSound_Popcorn: String { return self._s[632]! } + public var FeatureDisabled_Oops: String { return self._s[633]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[633]!, self._r[633]!, [_0]) + return formatWithArgumentRanges(self._s[634]!, self._r[634]!, [_0]) } - public var Notification_PinnedMessage: String { return self._s[634]! } - public var Tour_Title4: String { return self._s[635]! } + public var Notification_PinnedMessage: String { return self._s[635]! } + public var Tour_Title4: String { return self._s[636]! } public func Notification_VoiceChatInvitationForYou(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[636]!, self._r[636]!, [_1]) + return formatWithArgumentRanges(self._s[637]!, self._r[637]!, [_1]) } - public var Watch_Suggestion_OK: String { return self._s[637]! } - public var Compose_TokenListPlaceholder: String { return self._s[638]! } - public var InviteLink_PermanentLink: String { return self._s[639]! } - public var EditTheme_Edit_TopInfo: String { return self._s[640]! } - public var Gif_NoGifsFound: String { return self._s[641]! } - public var Login_InvalidCountryCode: String { return self._s[642]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[643]! } - public var Call_VoiceOver_VideoCallMissed: String { return self._s[644]! } - public var VoiceChat_ChangeNameTitle: String { return self._s[646]! } + public var Watch_Suggestion_OK: String { return self._s[638]! } + public var Compose_TokenListPlaceholder: String { return self._s[639]! } + public var InviteLink_PermanentLink: String { return self._s[640]! } + public var EditTheme_Edit_TopInfo: String { return self._s[641]! } + public var Gif_NoGifsFound: String { return self._s[642]! } + public var Login_InvalidCountryCode: String { return self._s[643]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[644]! } + public var Call_VoiceOver_VideoCallMissed: String { return self._s[645]! } + public var VoiceChat_ChangeNameTitle: String { return self._s[647]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[647]!, self._r[647]!, [_1]) + return formatWithArgumentRanges(self._s[648]!, self._r[648]!, [_1]) } - public var Profile_CreateNewContact: String { return self._s[648]! } - public var AutoDownloadSettings_DataUsageLow: String { return self._s[649]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[650]! } - public var Group_Setup_TypePublic: String { return self._s[651]! } - public var Weekday_ShortSaturday: String { return self._s[652]! } + public var Profile_CreateNewContact: String { return self._s[649]! } + public var AutoDownloadSettings_DataUsageLow: String { return self._s[650]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[651]! } + public var Group_Setup_TypePublic: String { return self._s[652]! } + public var Weekday_ShortSaturday: String { return self._s[653]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[653]!, self._r[653]!, [_0]) + return formatWithArgumentRanges(self._s[654]!, self._r[654]!, [_0]) } - public var LiveLocation_MenuStopAll: String { return self._s[654]! } + public var LiveLocation_MenuStopAll: String { return self._s[655]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[655]!, self._r[655]!, [_0]) + return formatWithArgumentRanges(self._s[656]!, self._r[656]!, [_0]) } - public var ChatListFolder_NamePlaceholder: String { return self._s[656]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[657]! } + public var ChatListFolder_NamePlaceholder: String { return self._s[657]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[658]! } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[658]!, self._r[658]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[659]!, self._r[659]!, [_1, _2, _3]) } - public var VoiceChat_ChatFullAlertText: String { return self._s[659]! } - public var Chat_GenericPsaTooltip: String { return self._s[661]! } - public var ChannelInfo_CreateVoiceChat: String { return self._s[662]! } + public var VoiceChat_ChatFullAlertText: String { return self._s[660]! } + public var Chat_GenericPsaTooltip: String { return self._s[662]! } + public var ChannelInfo_CreateVoiceChat: String { return self._s[663]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[663]!, self._r[663]!, [_0]) + return formatWithArgumentRanges(self._s[664]!, self._r[664]!, [_0]) } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[664]! } - public var Login_PhoneAndCountryHelp: String { return self._s[665]! } - public var SaveIncomingPhotosSettings_From: String { return self._s[667]! } - public var Conversation_JumpToDate: String { return self._s[668]! } - public var AuthSessions_AddDevice: String { return self._s[669]! } - public var Settings_FAQ: String { return self._s[671]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[665]! } + public var Login_PhoneAndCountryHelp: String { return self._s[666]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[668]! } + public var Conversation_JumpToDate: String { return self._s[669]! } + public var AuthSessions_AddDevice: String { return self._s[670]! } + public var Settings_FAQ: String { return self._s[672]! } public func ChatImport_CreateGroupAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[672]!, self._r[672]!, [_0]) + return formatWithArgumentRanges(self._s[673]!, self._r[673]!, [_0]) } - public var Username_Title: String { return self._s[673]! } - public var DialogList_Read: String { return self._s[674]! } - public var Conversation_InstantPagePreview: String { return self._s[675]! } - public var Report_Succeed: String { return self._s[677]! } - public var Login_ResetAccountProtected_Title: String { return self._s[678]! } - public var CallFeedback_ReasonDistortedSpeech: String { return self._s[679]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[680]! } + public var Username_Title: String { return self._s[674]! } + public var DialogList_Read: String { return self._s[675]! } + public var Conversation_InstantPagePreview: String { return self._s[676]! } + public var Report_Succeed: String { return self._s[678]! } + public var Login_ResetAccountProtected_Title: String { return self._s[679]! } + public var CallFeedback_ReasonDistortedSpeech: String { return self._s[680]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[681]! } public func Channel_AdminLog_MessageRankUsername(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[681]!, self._r[681]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[682]!, self._r[682]!, [_1, _2, _3]) } - public var WallpaperPreview_PreviewBottomText: String { return self._s[683]! } - public var Privacy_SecretChatsTitle: String { return self._s[686]! } + public var WallpaperPreview_PreviewBottomText: String { return self._s[684]! } + public var Privacy_SecretChatsTitle: String { return self._s[687]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[687]!, self._r[687]!, [_1, _2]) + return formatWithArgumentRanges(self._s[688]!, self._r[688]!, [_1, _2]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[688]! } - public var Conversation_ClousStorageInfo_Description4: String { return self._s[689]! } - public var PasscodeSettings_TurnPasscodeOn: String { return self._s[690]! } - public var Message_ReplyActionButtonShowReceipt: String { return self._s[691]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[689]! } + public var Conversation_ClousStorageInfo_Description4: String { return self._s[690]! } + public var PasscodeSettings_TurnPasscodeOn: String { return self._s[691]! } + public var Message_ReplyActionButtonShowReceipt: String { return self._s[692]! } public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[692]!, self._r[692]!, [_0]) + return formatWithArgumentRanges(self._s[693]!, self._r[693]!, [_0]) } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[694]! } - public var TwoStepAuth_ConfirmationAbort: String { return self._s[695]! } - public var PrivacySettings_LastSeenEverybody: String { return self._s[696]! } - public var CallFeedback_ReasonDropped: String { return self._s[697]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[695]! } + public var TwoStepAuth_ConfirmationAbort: String { return self._s[696]! } + public var PrivacySettings_LastSeenEverybody: String { return self._s[697]! } + public var CallFeedback_ReasonDropped: String { return self._s[698]! } public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[698]!, self._r[698]!, [_0]) + return formatWithArgumentRanges(self._s[699]!, self._r[699]!, [_0]) } - public var WebSearch_Images: String { return self._s[699]! } - public var Passport_Identity_Surname: String { return self._s[700]! } - public var Channel_Stickers_CreateYourOwn: String { return self._s[701]! } - public var TwoFactorSetup_Email_Title: String { return self._s[702]! } - public var Cache_ClearEmpty: String { return self._s[703]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[704]! } - public var Theme_Context_Apply: String { return self._s[705]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[706]! } - public var CallList_DeleteAllForEveryone: String { return self._s[707]! } + public var WebSearch_Images: String { return self._s[700]! } + public var Passport_Identity_Surname: String { return self._s[701]! } + public var Channel_Stickers_CreateYourOwn: String { return self._s[702]! } + public var TwoFactorSetup_Email_Title: String { return self._s[703]! } + public var Cache_ClearEmpty: String { return self._s[704]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[705]! } + public var Theme_Context_Apply: String { return self._s[706]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[707]! } + public var CallList_DeleteAllForEveryone: String { return self._s[708]! } public func BroadcastGroups_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[708]!, self._r[708]!, [_0]) + return formatWithArgumentRanges(self._s[709]!, self._r[709]!, [_0]) } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[709]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[710]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[710]!, self._r[710]!, [_0]) + return formatWithArgumentRanges(self._s[711]!, self._r[711]!, [_0]) } - public var Call_StatusRinging: String { return self._s[711]! } + public var Call_StatusRinging: String { return self._s[712]! } public func Map_DistanceAway(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[712]!, self._r[712]!, [_0]) - } - public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[713]!, self._r[713]!, [_0]) } - public var Cache_ClearNone: String { return self._s[714]! } - public var PrivacyPolicy_Accept: String { return self._s[715]! } - public var Contacts_PhoneNumber: String { return self._s[716]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[717]! } - public var PhotoEditor_HighlightsTint: String { return self._s[719]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[720]! } - public var Checkout_PaymentMethod_Title: String { return self._s[723]! } - public var Month_GenAugust: String { return self._s[725]! } - public var DialogList_Draft: String { return self._s[726]! } - public var ChatList_EmptyChatListFilterText: String { return self._s[727]! } - public var PeopleNearby_Description: String { return self._s[728]! } - public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[729]! } - public var VoiceChat_InviteLink_CopyListenerLink: String { return self._s[730]! } - public var VoiceChat_EditTitleRemoveSuccess: String { return self._s[731]! } - public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[733]! } - public var Watch_Message_ForwardedFrom: String { return self._s[734]! } - public var Notification_Mute1h: String { return self._s[735]! } - public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[736]! } - public var SettingsSearch_Synonyms_Privacy_AuthSessions: String { return self._s[738]! } - public var Channel_Edit_LinkItem: String { return self._s[739]! } - public var Presence_online: String { return self._s[740]! } - public var AutoDownloadSettings_Title: String { return self._s[741]! } - public var Conversation_MessageDialogRetry: String { return self._s[742]! } - public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[744]! } - public var Channel_About_Placeholder: String { return self._s[746]! } - public var Passport_Language_sl: String { return self._s[747]! } - public var AppleWatch_Title: String { return self._s[749]! } - public var RepliesChat_DescriptionText: String { return self._s[751]! } - public var Stats_Message_PrivateShares: String { return self._s[752]! } - public var Settings_ViewPhoto: String { return self._s[753]! } - public var Conversation_ForwardTooltip_SavedMessages_One: String { return self._s[754]! } - public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[755]! } - public var Cache_ClearProgress: String { return self._s[756]! } - public var Cache_Music: String { return self._s[757]! } - public var Conversation_ContextMenuShare: String { return self._s[759]! } - public var AutoDownloadSettings_Unlimited: String { return self._s[760]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[761]! } - public var Contacts_PermissionsAllow: String { return self._s[762]! } - public var Passport_Language_vi: String { return self._s[764]! } - public var TwoFactorSetup_PasswordRecovery_PlaceholderPassword: String { return self._s[765]! } + public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[714]!, self._r[714]!, [_0]) + } + public var Cache_ClearNone: String { return self._s[715]! } + public var PrivacyPolicy_Accept: String { return self._s[716]! } + public var Contacts_PhoneNumber: String { return self._s[717]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[718]! } + public var PhotoEditor_HighlightsTint: String { return self._s[720]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[721]! } + public var Checkout_PaymentMethod_Title: String { return self._s[724]! } + public var Month_GenAugust: String { return self._s[726]! } + public var DialogList_Draft: String { return self._s[727]! } + public var ChatList_EmptyChatListFilterText: String { return self._s[728]! } + public var PeopleNearby_Description: String { return self._s[729]! } + public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[730]! } + public var VoiceChat_InviteLink_CopyListenerLink: String { return self._s[731]! } + public var VoiceChat_EditTitleRemoveSuccess: String { return self._s[732]! } + public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[734]! } + public var Watch_Message_ForwardedFrom: String { return self._s[735]! } + public var Notification_Mute1h: String { return self._s[736]! } + public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[737]! } + public var SettingsSearch_Synonyms_Privacy_AuthSessions: String { return self._s[739]! } + public var Channel_Edit_LinkItem: String { return self._s[740]! } + public var Presence_online: String { return self._s[741]! } + public var AutoDownloadSettings_Title: String { return self._s[742]! } + public var Conversation_MessageDialogRetry: String { return self._s[743]! } + public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[745]! } + public var Channel_About_Placeholder: String { return self._s[747]! } + public var Passport_Language_sl: String { return self._s[748]! } + public var AppleWatch_Title: String { return self._s[750]! } + public var RepliesChat_DescriptionText: String { return self._s[752]! } + public var Stats_Message_PrivateShares: String { return self._s[753]! } + public var Settings_ViewPhoto: String { return self._s[754]! } + public var Conversation_ForwardTooltip_SavedMessages_One: String { return self._s[755]! } + public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[756]! } + public var Cache_ClearProgress: String { return self._s[757]! } + public var Cache_Music: String { return self._s[758]! } + public var Conversation_ContextMenuShare: String { return self._s[760]! } + public var AutoDownloadSettings_Unlimited: String { return self._s[761]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[762]! } + public var Contacts_PermissionsAllow: String { return self._s[763]! } + public var Passport_Language_vi: String { return self._s[765]! } + public var TwoFactorSetup_PasswordRecovery_PlaceholderPassword: String { return self._s[766]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[768]!, self._r[768]!, [_1, _2]) + return formatWithArgumentRanges(self._s[769]!, self._r[769]!, [_1, _2]) } - public var Passport_Language_de: String { return self._s[769]! } - public var Notifications_PermissionsText: String { return self._s[771]! } - public var GroupRemoved_AddToGroup: String { return self._s[772]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[773]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[774]! } - public var Login_TermsOfServiceAgree: String { return self._s[775]! } - public var VoiceOver_Navigation_ProxySettings: String { return self._s[776]! } + public var Passport_Language_de: String { return self._s[770]! } + public var Notifications_PermissionsText: String { return self._s[772]! } + public var GroupRemoved_AddToGroup: String { return self._s[773]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[774]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[775]! } + public var Login_TermsOfServiceAgree: String { return self._s[776]! } + public var VoiceOver_Navigation_ProxySettings: String { return self._s[777]! } public func PUSH_CHAT_JOINED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[777]!, self._r[777]!, [_1, _2]) + return formatWithArgumentRanges(self._s[778]!, self._r[778]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[779]! } - public var VoiceChat_VideoPreviewStopScreenSharing: String { return self._s[780]! } + public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[780]! } + public var VoiceChat_VideoPreviewStopScreenSharing: String { return self._s[781]! } public func PUSH_CHAT_VOICECHAT_START(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[781]!, self._r[781]!, [_1, _2]) + return formatWithArgumentRanges(self._s[782]!, self._r[782]!, [_1, _2]) } - public var ChatListFolder_NameGroups: String { return self._s[782]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[783]! } - public var VoiceChat_EditDescriptionSave: String { return self._s[784]! } + public var ChatListFolder_NameGroups: String { return self._s[783]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[784]! } + public var VoiceChat_EditDescriptionSave: String { return self._s[785]! } public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[785]!, self._r[785]!, [_1, _2]) + return formatWithArgumentRanges(self._s[786]!, self._r[786]!, [_1, _2]) } - public var Watch_Suggestion_TalkLater: String { return self._s[786]! } - public var Checkout_ShippingOption_Title: String { return self._s[787]! } - public var Conversation_TitleRepliesEmpty: String { return self._s[788]! } - public var CreatePoll_TextHeader: String { return self._s[789]! } - public var VoiceOver_Chat_Message: String { return self._s[791]! } - public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[792]! } - public var ContactInfo_Note: String { return self._s[794]! } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[795]! } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[796]! } - public var AutoDownloadSettings_Photos: String { return self._s[797]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[798]! } + public var Watch_Suggestion_TalkLater: String { return self._s[787]! } + public var Checkout_ShippingOption_Title: String { return self._s[788]! } + public var Conversation_TitleRepliesEmpty: String { return self._s[789]! } + public var CreatePoll_TextHeader: String { return self._s[790]! } + public var VoiceOver_Chat_Message: String { return self._s[792]! } + public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[793]! } + public var ContactInfo_Note: String { return self._s[795]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[796]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[797]! } + public var AutoDownloadSettings_Photos: String { return self._s[798]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[799]! } public func Conversation_ForwardTooltip_Chat_One(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[799]!, self._r[799]!, [_0]) + return formatWithArgumentRanges(self._s[800]!, self._r[800]!, [_0]) } - public var Channel_Info_Subscribers: String { return self._s[800]! } - public var ChatList_DeleteForCurrentUser: String { return self._s[801]! } - public var ChatListFolderSettings_FoldersSection: String { return self._s[802]! } - public var ChannelInfo_ScheduleVoiceChat: String { return self._s[803]! } - public var VoiceOver_ChatList_OutgoingMessage: String { return self._s[804]! } + public var Channel_Info_Subscribers: String { return self._s[801]! } + public var ChatList_DeleteForCurrentUser: String { return self._s[802]! } + public var ChatListFolderSettings_FoldersSection: String { return self._s[803]! } + public var ChannelInfo_ScheduleVoiceChat: String { return self._s[804]! } + public var VoiceOver_ChatList_OutgoingMessage: String { return self._s[805]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[808]!, self._r[808]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[809]!, self._r[809]!, [_1, _2, _3]) } - public var AutoNightTheme_System: String { return self._s[809]! } - public var Call_StatusWaiting: String { return self._s[810]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[811]! } + public var AutoNightTheme_System: String { return self._s[810]! } + public var Call_StatusWaiting: String { return self._s[811]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[812]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[812]!, self._r[812]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[813]!, self._r[813]!, [_1, _2, _3]) } - public var Conversation_ContextMenuCopy: String { return self._s[814]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[815]! } - public var Notifications_InAppNotificationsVibrate: String { return self._s[816]! } + public var Conversation_ContextMenuCopy: String { return self._s[815]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[816]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[817]! } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[817]!, self._r[817]!, [_0]) + return formatWithArgumentRanges(self._s[818]!, self._r[818]!, [_0]) } - public var Group_Status: String { return self._s[819]! } - public var Group_Setup_HistoryVisible: String { return self._s[820]! } - public var Conversation_UploadFileTooLarge: String { return self._s[821]! } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[822]! } - public var Paint_Edit: String { return self._s[823]! } - public var PeerInfo_AutoremoveMessages: String { return self._s[824]! } + public var Group_Status: String { return self._s[820]! } + public var Group_Setup_HistoryVisible: String { return self._s[821]! } + public var Conversation_UploadFileTooLarge: String { return self._s[822]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[823]! } + public var Paint_Edit: String { return self._s[824]! } + public var PeerInfo_AutoremoveMessages: String { return self._s[825]! } public func ChatImport_SelectionConfirmationGroupWithoutTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[826]!, self._r[826]!, [_0]) + return formatWithArgumentRanges(self._s[827]!, self._r[827]!, [_0]) } - public var Channel_EditAdmin_CannotEdit: String { return self._s[827]! } - public var Username_InvalidTooShort: String { return self._s[828]! } - public var ClearCache_StorageOtherApps: String { return self._s[830]! } - public var Conversation_ViewMessage: String { return self._s[831]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[833]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[828]! } + public var Username_InvalidTooShort: String { return self._s[829]! } + public var ClearCache_StorageOtherApps: String { return self._s[831]! } + public var Conversation_ViewMessage: String { return self._s[832]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[834]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[834]!, self._r[834]!, [_0]) + return formatWithArgumentRanges(self._s[835]!, self._r[835]!, [_0]) } - public var CallSettings_Title: String { return self._s[835]! } + public var CallSettings_Title: String { return self._s[836]! } public func Conversation_BotInteractiveUrlAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[836]!, self._r[836]!, [_0]) + return formatWithArgumentRanges(self._s[837]!, self._r[837]!, [_0]) } public func VoiceOver_Chat_ContactFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[839]!, self._r[839]!, [_0]) + return formatWithArgumentRanges(self._s[840]!, self._r[840]!, [_0]) } - public var PUSH_SENDER_YOU: String { return self._s[842]! } + public var PUSH_SENDER_YOU: String { return self._s[843]! } public func Conversation_DeletedFromContacts(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[843]!, self._r[843]!, [_0]) + return formatWithArgumentRanges(self._s[844]!, self._r[844]!, [_0]) } - public var Profile_ShareContactButton: String { return self._s[844]! } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[845]! } + public var Profile_ShareContactButton: String { return self._s[845]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[846]! } public func VoiceOver_Chat_StickerFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[846]!, self._r[846]!, [_0]) + return formatWithArgumentRanges(self._s[847]!, self._r[847]!, [_0]) } - public var Map_ShareLiveLocation: String { return self._s[847]! } - public var ChatListFolder_TitleEdit: String { return self._s[848]! } + public var Map_ShareLiveLocation: String { return self._s[848]! } + public var ChatListFolder_TitleEdit: String { return self._s[849]! } public func VoiceOver_Chat_AnimatedStickerFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[849]!, self._r[849]!, [_0]) + return formatWithArgumentRanges(self._s[850]!, self._r[850]!, [_0]) } - public var Passport_Address_Address: String { return self._s[851]! } - public var LastSeen_JustNow: String { return self._s[853]! } + public var Passport_Address_Address: String { return self._s[852]! } + public var LastSeen_JustNow: String { return self._s[854]! } public func SecretImage_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[854]!, self._r[854]!, [_0]) + return formatWithArgumentRanges(self._s[855]!, self._r[855]!, [_0]) } - public var ContactInfo_PhoneLabelOther: String { return self._s[855]! } - public var PasscodeSettings_DoNotMatch: String { return self._s[856]! } - public var Weekday_Today: String { return self._s[859]! } - public var DialogList_Title: String { return self._s[860]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[861]! } - public var Cache_ClearCache: String { return self._s[862]! } - public var CreatePoll_ExplanationInfo: String { return self._s[863]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[865]! } - public var Stats_MessageTitle: String { return self._s[866]! } - public var Passport_Address_Street: String { return self._s[868]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[856]! } + public var PasscodeSettings_DoNotMatch: String { return self._s[857]! } + public var Weekday_Today: String { return self._s[860]! } + public var DialogList_Title: String { return self._s[861]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[862]! } + public var Cache_ClearCache: String { return self._s[863]! } + public var CreatePoll_ExplanationInfo: String { return self._s[864]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[866]! } + public var Stats_MessageTitle: String { return self._s[867]! } + public var Passport_Address_Street: String { return self._s[869]! } public func Channel_AdminLog_MessageRemovedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[869]!, self._r[869]!, [_0]) + return formatWithArgumentRanges(self._s[870]!, self._r[870]!, [_0]) } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[870]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[871]! } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[871]!, self._r[871]!, [_0]) + return formatWithArgumentRanges(self._s[872]!, self._r[872]!, [_0]) } - public var TwoStepAuth_Email: String { return self._s[873]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[874]! } - public var PrivacySettings_PasscodeOn: String { return self._s[875]! } - public var Camera_SquareMode: String { return self._s[877]! } - public var SocksProxySetup_Port: String { return self._s[878]! } - public var Watch_LastSeen_JustNow: String { return self._s[880]! } + public var TwoStepAuth_Email: String { return self._s[874]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[875]! } + public var PrivacySettings_PasscodeOn: String { return self._s[876]! } + public var Camera_SquareMode: String { return self._s[878]! } + public var SocksProxySetup_Port: String { return self._s[879]! } + public var Watch_LastSeen_JustNow: String { return self._s[881]! } public func Location_ProximityAlertSetText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[881]!, self._r[881]!, [_1, _2]) - } - public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[882]!, self._r[882]!, [_1, _2]) } + public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[883]!, self._r[883]!, [_1, _2]) + } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[883]!, self._r[883]!, [_0]) + return formatWithArgumentRanges(self._s[884]!, self._r[884]!, [_0]) } - public var VoiceChat_CancelVoiceChat: String { return self._s[884]! } - public var EditTheme_Expand_Preview_OutgoingText: String { return self._s[885]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[886]! } - public var Watch_Suggestion_HoldOn: String { return self._s[889]! } + public var VoiceChat_CancelVoiceChat: String { return self._s[885]! } + public var EditTheme_Expand_Preview_OutgoingText: String { return self._s[886]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[887]! } + public var Watch_Suggestion_HoldOn: String { return self._s[890]! } public func PUSH_CHANNEL_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[890]!, self._r[890]!, [_1]) + return formatWithArgumentRanges(self._s[891]!, self._r[891]!, [_1]) } - public var CallSettings_TabIcon: String { return self._s[891]! } - public var ScheduledMessages_SendNow: String { return self._s[892]! } - public var Stats_GroupTopWeekdaysTitle: String { return self._s[893]! } - public var ImportStickerPack_NamePlaceholder: String { return self._s[894]! } - public var UserInfo_PhoneCall: String { return self._s[895]! } - public var Month_GenMarch: String { return self._s[896]! } - public var Camera_Discard: String { return self._s[897]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[898]! } - public var Passport_RequestedInformation: String { return self._s[899]! } - public var VoiceChat_RecordingTitlePlaceholder: String { return self._s[901]! } + public var CallSettings_TabIcon: String { return self._s[892]! } + public var ScheduledMessages_SendNow: String { return self._s[893]! } + public var Stats_GroupTopWeekdaysTitle: String { return self._s[894]! } + public var ImportStickerPack_NamePlaceholder: String { return self._s[895]! } + public var UserInfo_PhoneCall: String { return self._s[896]! } + public var Month_GenMarch: String { return self._s[897]! } + public var Camera_Discard: String { return self._s[898]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[899]! } + public var Passport_RequestedInformation: String { return self._s[900]! } + public var VoiceChat_RecordingTitlePlaceholder: String { return self._s[902]! } public func Notification_ProximityYouReached(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[902]!, self._r[902]!, [_1, _2]) + return formatWithArgumentRanges(self._s[903]!, self._r[903]!, [_1, _2]) } - public var Passport_Language_ro: String { return self._s[903]! } + public var Passport_Language_ro: String { return self._s[904]! } public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[904]!, self._r[904]!, [_1, _2]) + return formatWithArgumentRanges(self._s[905]!, self._r[905]!, [_1, _2]) } - public var AutoDownloadSettings_ResetHelp: String { return self._s[905]! } - public var Passport_Identity_DocumentDetails: String { return self._s[907]! } - public var Passport_Address_ScansHelp: String { return self._s[908]! } - public var Location_LiveLocationRequired_Title: String { return self._s[909]! } - public var WallpaperPreview_PreviewBottomTextAnimatable: String { return self._s[910]! } - public var ClearCache_StorageCache: String { return self._s[911]! } - public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[912]! } - public var Conversation_RestrictedText: String { return self._s[913]! } - public var Notifications_MessageNotifications: String { return self._s[915]! } - public var Passport_Scans: String { return self._s[916]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[906]! } + public var Passport_Identity_DocumentDetails: String { return self._s[908]! } + public var Passport_Address_ScansHelp: String { return self._s[909]! } + public var Location_LiveLocationRequired_Title: String { return self._s[910]! } + public var WallpaperPreview_PreviewBottomTextAnimatable: String { return self._s[911]! } + public var ClearCache_StorageCache: String { return self._s[912]! } + public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[913]! } + public var Conversation_RestrictedText: String { return self._s[914]! } + public var Notifications_MessageNotifications: String { return self._s[916]! } + public var Passport_Scans: String { return self._s[917]! } public func VoiceChat_StatusStartsIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[918]!, self._r[918]!, [_0]) + return formatWithArgumentRanges(self._s[919]!, self._r[919]!, [_0]) } - public var TwoStepAuth_SetupHintTitle: String { return self._s[919]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[920]! } - public var Passport_Identity_SelfieHelp: String { return self._s[921]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[922]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[923]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[924]! } - public var PeerInfo_ButtonSearch: String { return self._s[925]! } + public var TwoStepAuth_SetupHintTitle: String { return self._s[920]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[921]! } + public var Passport_Identity_SelfieHelp: String { return self._s[922]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[923]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[924]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[925]! } + public var PeerInfo_ButtonSearch: String { return self._s[926]! } public func Notification_ProximityReachedYou(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[928]!, self._r[928]!, [_1, _2]) + return formatWithArgumentRanges(self._s[929]!, self._r[929]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[929]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[931]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[932]! } - public var Month_GenSeptember: String { return self._s[933]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[930]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[932]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[933]! } + public var Month_GenSeptember: String { return self._s[934]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[935]!, self._r[935]!, [_1, _2]) + return formatWithArgumentRanges(self._s[936]!, self._r[936]!, [_1, _2]) } - public var StickerPacksSettings_ArchivedPacks: String { return self._s[936]! } + public var StickerPacksSettings_ArchivedPacks: String { return self._s[937]! } public func Notification_VoiceChatInvitation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[938]!, self._r[938]!, [_1, _2]) + return formatWithArgumentRanges(self._s[939]!, self._r[939]!, [_1, _2]) } public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[939]!, self._r[939]!, [_0]) + return formatWithArgumentRanges(self._s[940]!, self._r[940]!, [_0]) } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[941]!, self._r[941]!, [_1, _2]) - } - public func PUSH_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[942]!, self._r[942]!, [_1, _2]) } - public var Calls_NotNow: String { return self._s[944]! } - public var Settings_ChatFolders: String { return self._s[949]! } - public var Login_PadPhoneHelpTitle: String { return self._s[950]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[951]! } - public var Widget_MessageAutoremoveTimerRemoved: String { return self._s[952]! } - public var VoiceChat_RecordingSaved: String { return self._s[953]! } - public var Settings_ChatBackground: String { return self._s[954]! } + public func PUSH_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[943]!, self._r[943]!, [_1, _2]) + } + public var Calls_NotNow: String { return self._s[945]! } + public var Settings_ChatFolders: String { return self._s[950]! } + public var Login_PadPhoneHelpTitle: String { return self._s[951]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[952]! } + public var Widget_MessageAutoremoveTimerRemoved: String { return self._s[953]! } + public var VoiceChat_RecordingSaved: String { return self._s[954]! } + public var Settings_ChatBackground: String { return self._s[955]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[956]!, self._r[956]!, [_1, _2]) + return formatWithArgumentRanges(self._s[957]!, self._r[957]!, [_1, _2]) } - public var ProxyServer_VoiceOver_Active: String { return self._s[957]! } - public var Call_StatusBusy: String { return self._s[958]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[959]! } - public var Login_NetworkError: String { return self._s[961]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[962]! } - public var Privacy_Calls_Integration: String { return self._s[963]! } - public var DialogList_SearchSectionMessages: String { return self._s[964]! } - public var AutoDownloadSettings_VideosTitle: String { return self._s[965]! } - public var Preview_DeletePhoto: String { return self._s[966]! } - public var VoiceChat_Video: String { return self._s[967]! } - public var PrivacySettings_PhoneNumber: String { return self._s[969]! } - public var Forward_ErrorDisabledForChat: String { return self._s[970]! } - public var Watch_Compose_CurrentLocation: String { return self._s[971]! } - public var Settings_CallSettings: String { return self._s[972]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[973]! } - public var Conversation_StickerRemovedFromFavorites: String { return self._s[974]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[975]! } - public var ChatSettings_AutoPlayAnimations: String { return self._s[976]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[977]! } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[978]! } - public var Map_LiveLocationFor1Hour: String { return self._s[979]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[958]! } + public var Call_StatusBusy: String { return self._s[959]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[960]! } + public var Login_NetworkError: String { return self._s[962]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[963]! } + public var Privacy_Calls_Integration: String { return self._s[964]! } + public var DialogList_SearchSectionMessages: String { return self._s[965]! } + public var AutoDownloadSettings_VideosTitle: String { return self._s[966]! } + public var Preview_DeletePhoto: String { return self._s[967]! } + public var VoiceChat_Video: String { return self._s[968]! } + public var PrivacySettings_PhoneNumber: String { return self._s[970]! } + public var Forward_ErrorDisabledForChat: String { return self._s[971]! } + public var Watch_Compose_CurrentLocation: String { return self._s[972]! } + public var Settings_CallSettings: String { return self._s[973]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[974]! } + public var Conversation_StickerRemovedFromFavorites: String { return self._s[975]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[976]! } + public var ChatSettings_AutoPlayAnimations: String { return self._s[977]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[978]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[979]! } + public var Map_LiveLocationFor1Hour: String { return self._s[980]! } public func Privacy_GroupsAndChannels_InviteToGroupError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[980]!, self._r[980]!, [_0, _1]) + return formatWithArgumentRanges(self._s[981]!, self._r[981]!, [_0, _1]) } - public var VoiceChat_MutedByAdmin: String { return self._s[981]! } + public var VoiceChat_MutedByAdmin: String { return self._s[982]! } public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[982]!, self._r[982]!, [_0]) + return formatWithArgumentRanges(self._s[983]!, self._r[983]!, [_0]) } - public var Conversation_UnvotePoll: String { return self._s[983]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[984]! } + public var Conversation_UnvotePoll: String { return self._s[984]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[985]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[985]!, self._r[985]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[986]!, self._r[986]!, [_1, "\(_2)"]) } - public var Passport_InfoTitle: String { return self._s[986]! } + public var Passport_InfoTitle: String { return self._s[987]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[987]!, self._r[987]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[988]!, self._r[988]!, ["\(_0)"]) } - public var AccentColor_Title: String { return self._s[988]! } + public var AccentColor_Title: String { return self._s[989]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[989]!, self._r[989]!, [_1, _2]) + return formatWithArgumentRanges(self._s[990]!, self._r[990]!, [_1, _2]) } public func Notification_JoinedChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[992]!, self._r[992]!, [_0]) + return formatWithArgumentRanges(self._s[993]!, self._r[993]!, [_0]) } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[993]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[994]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[995]! } - public var VoiceOver_Editing_ClearText: String { return self._s[996]! } - public var Conversation_Unarchive: String { return self._s[997]! } - public var Notification_CallOutgoing: String { return self._s[998]! } - public var Channel_Setup_PublicNoLink: String { return self._s[999]! } - public var Passport_Identity_GenderPlaceholder: String { return self._s[1000]! } - public var Message_Animation: String { return self._s[1001]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[1002]! } - public var ChatSettings_ConnectionType_Title: String { return self._s[1003]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[994]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[995]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[996]! } + public var VoiceOver_Editing_ClearText: String { return self._s[997]! } + public var Conversation_Unarchive: String { return self._s[998]! } + public var Notification_CallOutgoing: String { return self._s[999]! } + public var Channel_Setup_PublicNoLink: String { return self._s[1000]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1001]! } + public var Message_Animation: String { return self._s[1002]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[1003]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[1004]! } public func Watch_Time_ShortFullAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1004]!, self._r[1004]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1005]!, self._r[1005]!, [_1, _2]) } public func VoiceChat_StatusSpeakingVolume(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1005]!, self._r[1005]!, [_0]) + return formatWithArgumentRanges(self._s[1006]!, self._r[1006]!, [_0]) } - public var Notification_CallBack: String { return self._s[1006]! } - public var Appearance_Title: String { return self._s[1009]! } - public var NotificationsSound_Glass: String { return self._s[1011]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[1013]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[1015]! } - public var ChatSearch_SearchPlaceholder: String { return self._s[1016]! } - public var Passport_Identity_AddPassport: String { return self._s[1017]! } - public var GroupPermission_NoAddMembers: String { return self._s[1019]! } - public var ContactList_Context_SendMessage: String { return self._s[1020]! } - public var PhotoEditor_GrainTool: String { return self._s[1021]! } - public var Settings_CopyPhoneNumber: String { return self._s[1022]! } - public var Passport_Address_City: String { return self._s[1023]! } - public var VoiceChat_LeaveAndCancelVoiceChat: String { return self._s[1024]! } - public var ChannelRemoved_RemoveInfo: String { return self._s[1025]! } - public var SocksProxySetup_Password: String { return self._s[1027]! } - public var Settings_Passport: String { return self._s[1028]! } - public var Channel_MessagePhotoUpdated: String { return self._s[1030]! } - public var Stats_LanguagesTitle: String { return self._s[1031]! } - public var ChatList_PeerTypeGroup: String { return self._s[1032]! } - public var Privacy_Calls_P2PHelp: String { return self._s[1033]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[1034]! } - public var Embed_PlayingInPIP: String { return self._s[1035]! } - public var ImportStickerPack_GeneratingLink: String { return self._s[1037]! } - public var BlockedUsers_BlockUser: String { return self._s[1039]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[1040]! } + public var Notification_CallBack: String { return self._s[1007]! } + public var Appearance_Title: String { return self._s[1010]! } + public var NotificationsSound_Glass: String { return self._s[1012]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[1014]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[1016]! } + public var ChatSearch_SearchPlaceholder: String { return self._s[1017]! } + public var Passport_Identity_AddPassport: String { return self._s[1018]! } + public var GroupPermission_NoAddMembers: String { return self._s[1020]! } + public var ContactList_Context_SendMessage: String { return self._s[1021]! } + public var PhotoEditor_GrainTool: String { return self._s[1022]! } + public var Settings_CopyPhoneNumber: String { return self._s[1023]! } + public var Passport_Address_City: String { return self._s[1024]! } + public var VoiceChat_LeaveAndCancelVoiceChat: String { return self._s[1025]! } + public var ChannelRemoved_RemoveInfo: String { return self._s[1026]! } + public var SocksProxySetup_Password: String { return self._s[1028]! } + public var Settings_Passport: String { return self._s[1029]! } + public var Channel_MessagePhotoUpdated: String { return self._s[1031]! } + public var Stats_LanguagesTitle: String { return self._s[1032]! } + public var ChatList_PeerTypeGroup: String { return self._s[1033]! } + public var Privacy_Calls_P2PHelp: String { return self._s[1034]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[1035]! } + public var Embed_PlayingInPIP: String { return self._s[1036]! } + public var ImportStickerPack_GeneratingLink: String { return self._s[1038]! } + public var BlockedUsers_BlockUser: String { return self._s[1040]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[1041]! } public func PUSH_CHANNEL_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1041]!, self._r[1041]!, [_1]) + return formatWithArgumentRanges(self._s[1042]!, self._r[1042]!, [_1]) } - public var AuthSessions_LoggedIn: String { return self._s[1042]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[1043]! } - public var Activity_UploadingDocument: String { return self._s[1044]! } - public var PeopleNearby_NoMembers: String { return self._s[1045]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1048]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[1049]! } - public var VoiceOver_Chat_OpenLinkHint: String { return self._s[1050]! } - public var InstantPage_VoiceOver_IncreaseFontSize: String { return self._s[1051]! } - public var Settings_ViewVideo: String { return self._s[1052]! } - public var Map_ShowPlaces: String { return self._s[1054]! } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1055]! } - public var InviteLink_Create_Title: String { return self._s[1056]! } - public var Notification_CreatedGroup: String { return self._s[1057]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[1058]! } + public var AuthSessions_LoggedIn: String { return self._s[1043]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[1044]! } + public var Activity_UploadingDocument: String { return self._s[1045]! } + public var PeopleNearby_NoMembers: String { return self._s[1046]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1049]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[1050]! } + public var VoiceOver_Chat_OpenLinkHint: String { return self._s[1051]! } + public var InstantPage_VoiceOver_IncreaseFontSize: String { return self._s[1052]! } + public var Settings_ViewVideo: String { return self._s[1053]! } + public var Map_ShowPlaces: String { return self._s[1055]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1056]! } + public var InviteLink_Create_Title: String { return self._s[1057]! } + public var Notification_CreatedGroup: String { return self._s[1058]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[1059]! } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1059]!, self._r[1059]!, [_0]) + return formatWithArgumentRanges(self._s[1060]!, self._r[1060]!, [_0]) } - public var Conversation_StatusLeftGroup: String { return self._s[1060]! } - public var Theme_Colors_Messages: String { return self._s[1061]! } - public var AuthSessions_EmptyText: String { return self._s[1062]! } + public var Conversation_StatusLeftGroup: String { return self._s[1061]! } + public var Theme_Colors_Messages: String { return self._s[1062]! } + public var AuthSessions_EmptyText: String { return self._s[1063]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1063]!, self._r[1063]!, [_1]) + return formatWithArgumentRanges(self._s[1064]!, self._r[1064]!, [_1]) } - public var UserInfo_StartSecretChat: String { return self._s[1064]! } - public var ChatListFolderSettings_EditFoldersInfo: String { return self._s[1065]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[1066]! } - public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1067]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[1069]! } - public var PeerInfo_PaneFiles: String { return self._s[1070]! } - public var VoiceChat_DisplayAs: String { return self._s[1071]! } - public var PrivacySettings_AutoArchive: String { return self._s[1072]! } - public var Camera_VideoMode: String { return self._s[1073]! } - public var NotificationsSound_Alert: String { return self._s[1074]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1075]! } - public var Appearance_AutoNightTheme: String { return self._s[1076]! } - public var Passport_Language_he: String { return self._s[1077]! } - public var Passport_InvalidPasswordError: String { return self._s[1078]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1079]! } - public var UserInfo_InviteBotToGroup: String { return self._s[1080]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[1081]! } - public var Common_TakePhoto: String { return self._s[1082]! } + public var UserInfo_StartSecretChat: String { return self._s[1065]! } + public var ChatListFolderSettings_EditFoldersInfo: String { return self._s[1066]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[1067]! } + public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1068]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[1070]! } + public var PeerInfo_PaneFiles: String { return self._s[1071]! } + public var VoiceChat_DisplayAs: String { return self._s[1072]! } + public var PrivacySettings_AutoArchive: String { return self._s[1073]! } + public var Camera_VideoMode: String { return self._s[1074]! } + public var NotificationsSound_Alert: String { return self._s[1075]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1076]! } + public var Appearance_AutoNightTheme: String { return self._s[1077]! } + public var Passport_Language_he: String { return self._s[1078]! } + public var Passport_InvalidPasswordError: String { return self._s[1079]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1080]! } + public var UserInfo_InviteBotToGroup: String { return self._s[1081]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[1082]! } + public var Common_TakePhoto: String { return self._s[1083]! } public func Channel_AdminLog_RevokedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1083]!, self._r[1083]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1084]!, self._r[1084]!, [_1, _2]) } - public var Passport_Email_UseTelegramEmailHelp: String { return self._s[1084]! } - public var ChatList_Context_JoinChannel: String { return self._s[1085]! } - public var MediaPlayer_UnknownArtist: String { return self._s[1086]! } - public var VoiceChat_EditDescriptionText: String { return self._s[1087]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[1090]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[1091]! } - public var EditTheme_UploadEditedTheme: String { return self._s[1092]! } - public var Settings_SetProfilePhotoOrVideo: String { return self._s[1094]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[1095]! } - public var MessagePoll_ViewResults: String { return self._s[1096]! } - public var Group_Setup_TypePrivateHelp: String { return self._s[1097]! } + public var Passport_Email_UseTelegramEmailHelp: String { return self._s[1085]! } + public var ChatList_Context_JoinChannel: String { return self._s[1086]! } + public var MediaPlayer_UnknownArtist: String { return self._s[1087]! } + public var VoiceChat_EditDescriptionText: String { return self._s[1088]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[1091]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[1092]! } + public var EditTheme_UploadEditedTheme: String { return self._s[1093]! } + public var Settings_SetProfilePhotoOrVideo: String { return self._s[1095]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[1096]! } + public var MessagePoll_ViewResults: String { return self._s[1097]! } + public var Group_Setup_TypePrivateHelp: String { return self._s[1098]! } public func UserInfo_ContactForwardTooltip_Chat_One(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1098]!, self._r[1098]!, [_0]) + return formatWithArgumentRanges(self._s[1099]!, self._r[1099]!, [_0]) } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1099]! } - public var Privacy_PaymentsClear_ShippingInfoCleared: String { return self._s[1100]! } - public var ChatList_Search_ShowLess: String { return self._s[1101]! } - public var InviteLink_Create_UsersLimitNoLimit: String { return self._s[1102]! } - public var UserInfo_ShareBot: String { return self._s[1103]! } - public var Privacy_Calls_P2P: String { return self._s[1105]! } - public var WebBrowser_InAppSafari: String { return self._s[1106]! } - public var SharedMedia_EmptyFilesText: String { return self._s[1109]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[1110]! } - public var GroupInfo_SetSound: String { return self._s[1111]! } - public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1112]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1100]! } + public var Privacy_PaymentsClear_ShippingInfoCleared: String { return self._s[1101]! } + public var ChatList_Search_ShowLess: String { return self._s[1102]! } + public var InviteLink_Create_UsersLimitNoLimit: String { return self._s[1103]! } + public var UserInfo_ShareBot: String { return self._s[1104]! } + public var Privacy_Calls_P2P: String { return self._s[1106]! } + public var WebBrowser_InAppSafari: String { return self._s[1107]! } + public var SharedMedia_EmptyFilesText: String { return self._s[1110]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[1111]! } + public var GroupInfo_SetSound: String { return self._s[1112]! } + public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1113]! } public func Conversation_AutoremoveRemainingTime(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1113]!, self._r[1113]!, [_0]) + return formatWithArgumentRanges(self._s[1114]!, self._r[1114]!, [_0]) } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1114]! } - public var Channel_AdminLogFilter_EventsAll: String { return self._s[1115]! } - public var CallSettings_UseLessData: String { return self._s[1116]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[1117]! } - public var NotificationsSound_Chord: String { return self._s[1118]! } - public var PhotoEditor_CurvesTool: String { return self._s[1119]! } - public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1120]! } - public var Resolve_ErrorNotFound: String { return self._s[1121]! } - public var Activity_PlayingGame: String { return self._s[1122]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1115]! } + public var Channel_AdminLogFilter_EventsAll: String { return self._s[1116]! } + public var CallSettings_UseLessData: String { return self._s[1117]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[1118]! } + public var NotificationsSound_Chord: String { return self._s[1119]! } + public var PhotoEditor_CurvesTool: String { return self._s[1120]! } + public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1121]! } + public var Resolve_ErrorNotFound: String { return self._s[1122]! } + public var Activity_PlayingGame: String { return self._s[1123]! } public func VoiceChat_InvitedPeerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1126]!, self._r[1126]!, [_0]) + return formatWithArgumentRanges(self._s[1127]!, self._r[1127]!, [_0]) } - public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1127]! } + public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1128]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1128]!, self._r[1128]!, [_1]) + return formatWithArgumentRanges(self._s[1129]!, self._r[1129]!, [_1]) } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[1129]! } - public var Notification_CallIncoming: String { return self._s[1130]! } - public var Stats_EnabledNotifications: String { return self._s[1131]! } - public var Notification_VoiceChatStartedChannel: String { return self._s[1132]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[1133]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1134]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[1130]! } + public var Notification_CallIncoming: String { return self._s[1131]! } + public var Stats_EnabledNotifications: String { return self._s[1132]! } + public var Notification_VoiceChatStartedChannel: String { return self._s[1133]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[1134]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1135]! } public func Activity_RemindAboutChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1135]!, self._r[1135]!, [_0]) + return formatWithArgumentRanges(self._s[1136]!, self._r[1136]!, [_0]) } - public var VoiceChat_StatusMutedYou: String { return self._s[1136]! } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[1137]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[1138]! } - public var StickerPacksSettings_Title: String { return self._s[1139]! } + public var VoiceChat_StatusMutedYou: String { return self._s[1137]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[1138]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[1139]! } + public var StickerPacksSettings_Title: String { return self._s[1140]! } public func Channel_AdminLog_MessageGroupPreHistoryVisible(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1140]!, self._r[1140]!, [_0]) + return formatWithArgumentRanges(self._s[1141]!, self._r[1141]!, [_0]) } - public var Watch_NoConnection: String { return self._s[1141]! } - public var EncryptionKey_Title: String { return self._s[1142]! } - public var Widget_AuthRequired: String { return self._s[1143]! } + public var Watch_NoConnection: String { return self._s[1142]! } + public var EncryptionKey_Title: String { return self._s[1143]! } + public var Widget_AuthRequired: String { return self._s[1144]! } public func PUSH_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1144]!, self._r[1144]!, [_1]) + return formatWithArgumentRanges(self._s[1145]!, self._r[1145]!, [_1]) } - public var Notifications_ExceptionsTitle: String { return self._s[1145]! } - public var EditTheme_Expand_TopInfo: String { return self._s[1146]! } + public var Notifications_ExceptionsTitle: String { return self._s[1146]! } + public var EditTheme_Expand_TopInfo: String { return self._s[1147]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1147]!, self._r[1147]!, [_0]) + return formatWithArgumentRanges(self._s[1148]!, self._r[1148]!, [_0]) } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[1149]! } - public var Notifications_GroupNotificationsSound: String { return self._s[1150]! } - public var VoiceChat_SpeakPermissionAdmin: String { return self._s[1151]! } - public var Passport_Email_EnterOtherEmail: String { return self._s[1152]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[1150]! } + public var Notifications_GroupNotificationsSound: String { return self._s[1151]! } + public var VoiceChat_SpeakPermissionAdmin: String { return self._s[1152]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[1153]! } public func VoiceChat_RemovePeerConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1155]!, self._r[1155]!, [_0]) + return formatWithArgumentRanges(self._s[1156]!, self._r[1156]!, [_0]) } - public var Conversation_AddToContacts: String { return self._s[1156]! } - public var AutoDownloadSettings_DataUsageMedium: String { return self._s[1157]! } - public var AuthSessions_LogOutApplications: String { return self._s[1159]! } - public var VoiceChat_LeaveVoiceChat: String { return self._s[1160]! } - public var ChatList_Context_Unpin: String { return self._s[1161]! } - public var PeopleNearby_DiscoverDescription: String { return self._s[1162]! } - public var UserInfo_FakeBotWarning: String { return self._s[1163]! } - public var Notification_MessageLifetime1d: String { return self._s[1164]! } - public var PrivacyLastSeenSettings_NeverShareWith_Title: String { return self._s[1165]! } - public var ChatListFolder_CategoryChannels: String { return self._s[1166]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[1167]! } - public var Notifications_PermissionsAllow: String { return self._s[1168]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[1169]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1171]! } - public var VoiceChat_ImproveYourProfileText: String { return self._s[1172]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1173]! } - public var ChatImportActivity_ErrorInvalidChatType: String { return self._s[1174]! } + public var Conversation_AddToContacts: String { return self._s[1157]! } + public var AutoDownloadSettings_DataUsageMedium: String { return self._s[1158]! } + public var AuthSessions_LogOutApplications: String { return self._s[1160]! } + public var VoiceChat_LeaveVoiceChat: String { return self._s[1161]! } + public var ChatList_Context_Unpin: String { return self._s[1162]! } + public var PeopleNearby_DiscoverDescription: String { return self._s[1163]! } + public var UserInfo_FakeBotWarning: String { return self._s[1164]! } + public var Notification_MessageLifetime1d: String { return self._s[1165]! } + public var PrivacyLastSeenSettings_NeverShareWith_Title: String { return self._s[1166]! } + public var ChatListFolder_CategoryChannels: String { return self._s[1167]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[1168]! } + public var Notifications_PermissionsAllow: String { return self._s[1169]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[1170]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1172]! } + public var VoiceChat_ImproveYourProfileText: String { return self._s[1173]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1174]! } + public var ChatImportActivity_ErrorInvalidChatType: String { return self._s[1175]! } public func Conversation_ScheduledVoiceChatStartsToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1175]!, self._r[1175]!, [_0]) - } - public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1176]!, self._r[1176]!, [_0]) } - public var Conversation_AutoremoveTimerRemovedChannel: String { return self._s[1178]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[1180]! } - public var WallpaperSearch_ColorPink: String { return self._s[1181]! } - public var ContactInfo_PhoneNumberHidden: String { return self._s[1182]! } - public var Passport_Identity_IssueDate: String { return self._s[1184]! } + public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1177]!, self._r[1177]!, [_0]) + } + public var Conversation_AutoremoveTimerRemovedChannel: String { return self._s[1179]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[1181]! } + public var WallpaperSearch_ColorPink: String { return self._s[1182]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[1183]! } + public var Passport_Identity_IssueDate: String { return self._s[1185]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1185]!, self._r[1185]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1186]!, self._r[1186]!, [_1, _2]) } - public var ChatList_DeleteForAllSubscribersConfirmationText: String { return self._s[1186]! } - public var Channel_Info_Description: String { return self._s[1187]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1188]! } - public var Weekday_ShortTuesday: String { return self._s[1189]! } - public var Common_Back: String { return self._s[1190]! } - public var Chat_PinnedMessagesHiddenTitle: String { return self._s[1192]! } - public var ChatListFolder_AddChats: String { return self._s[1193]! } - public var Common_Close: String { return self._s[1195]! } - public var Map_OpenIn: String { return self._s[1196]! } - public var Group_Setup_HistoryTitle: String { return self._s[1197]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1198]! } - public var Notification_MessageLifetime1h: String { return self._s[1199]! } + public var ChatList_DeleteForAllSubscribersConfirmationText: String { return self._s[1187]! } + public var Channel_Info_Description: String { return self._s[1188]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1189]! } + public var Weekday_ShortTuesday: String { return self._s[1190]! } + public var Common_Back: String { return self._s[1191]! } + public var Chat_PinnedMessagesHiddenTitle: String { return self._s[1193]! } + public var ChatListFolder_AddChats: String { return self._s[1194]! } + public var Common_Close: String { return self._s[1196]! } + public var Map_OpenIn: String { return self._s[1197]! } + public var Group_Setup_HistoryTitle: String { return self._s[1198]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1199]! } + public var Notification_MessageLifetime1h: String { return self._s[1200]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1200]!, self._r[1200]!, [_0]) + return formatWithArgumentRanges(self._s[1201]!, self._r[1201]!, [_0]) } - public var Watch_Contacts_NoResults: String { return self._s[1202]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1203]! } - public var Checkout_Phone: String { return self._s[1204]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[1205]! } + public var Watch_Contacts_NoResults: String { return self._s[1203]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1204]! } + public var Checkout_Phone: String { return self._s[1205]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[1206]! } public func Channel_CommentsGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1206]!, self._r[1206]!, [_0]) + return formatWithArgumentRanges(self._s[1207]!, self._r[1207]!, [_0]) } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1207]!, self._r[1207]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1208]!, self._r[1208]!, ["\(_0)"]) } - public var Conversation_AudioRateTooltipSpeedUp: String { return self._s[1208]! } - public var ChatAdmins_Title: String { return self._s[1209]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[1210]! } + public var Conversation_AudioRateTooltipSpeedUp: String { return self._s[1209]! } + public var ChatAdmins_Title: String { return self._s[1210]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[1211]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1211]!, self._r[1211]!, [_1]) + return formatWithArgumentRanges(self._s[1212]!, self._r[1212]!, [_1]) } - public var Common_Done: String { return self._s[1212]! } - public var ChatList_HeaderImportIntoAnExistingGroup: String { return self._s[1213]! } - public var Appearance_AppIconNew2: String { return self._s[1214]! } + public var Common_Done: String { return self._s[1213]! } + public var ChatList_HeaderImportIntoAnExistingGroup: String { return self._s[1214]! } + public var Appearance_AppIconNew2: String { return self._s[1215]! } public func PUSH_PINNED_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1218]!, self._r[1218]!, [_1]) + return formatWithArgumentRanges(self._s[1219]!, self._r[1219]!, [_1]) } - public var Appearance_ThemeCarouselNight: String { return self._s[1219]! } - public var InviteLink_Expired: String { return self._s[1221]! } - public var Preview_OpenInInstagram: String { return self._s[1222]! } - public var Wallpaper_SetColor: String { return self._s[1227]! } - public var VoiceOver_Media_PlaybackRate: String { return self._s[1228]! } - public var ChatSettings_Groups: String { return self._s[1229]! } + public var Appearance_ThemeCarouselNight: String { return self._s[1220]! } + public var InviteLink_Expired: String { return self._s[1222]! } + public var Preview_OpenInInstagram: String { return self._s[1223]! } + public var Wallpaper_SetColor: String { return self._s[1228]! } + public var VoiceOver_Media_PlaybackRate: String { return self._s[1229]! } + public var ChatSettings_Groups: String { return self._s[1230]! } public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1230]!, self._r[1230]!, [_0]) + return formatWithArgumentRanges(self._s[1231]!, self._r[1231]!, [_0]) } - public var Contacts_SortedByName: String { return self._s[1231]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1232]! } - public var Channel_Management_LabelCreator: String { return self._s[1233]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1234]! } + public var Contacts_SortedByName: String { return self._s[1232]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1233]! } + public var Channel_Management_LabelCreator: String { return self._s[1234]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1235]! } public func PrivacySettings_LastSeenContactsMinusPlus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1235]!, self._r[1235]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1236]!, self._r[1236]!, [_0, _1]) } - public var Group_GroupMembersHeader: String { return self._s[1236]! } - public var Group_PublicLink_Title: String { return self._s[1237]! } - public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1238]! } - public var VoiceOver_Chat_Photo: String { return self._s[1239]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[1240]! } - public var IntentsSettings_SuggestBy: String { return self._s[1241]! } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[1242]! } - public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1243]! } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[1244]! } - public var LogoutOptions_SetPasscodeText: String { return self._s[1245]! } - public var Map_OpenInMaps: String { return self._s[1246]! } - public var ContactInfo_PhoneLabelWorkFax: String { return self._s[1247]! } - public var BlockedUsers_Unblock: String { return self._s[1248]! } + public var Group_GroupMembersHeader: String { return self._s[1237]! } + public var Group_PublicLink_Title: String { return self._s[1238]! } + public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1239]! } + public var VoiceOver_Chat_Photo: String { return self._s[1240]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[1241]! } + public var IntentsSettings_SuggestBy: String { return self._s[1242]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[1243]! } + public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1244]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[1245]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[1246]! } + public var Map_OpenInMaps: String { return self._s[1247]! } + public var ContactInfo_PhoneLabelWorkFax: String { return self._s[1248]! } + public var BlockedUsers_Unblock: String { return self._s[1249]! } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1249]!, self._r[1249]!, [_1, _2]) - } - public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1250]!, self._r[1250]!, [_1, _2]) } - public var ChatImport_CreateGroupAlertTitle: String { return self._s[1252]! } - public var Conversation_Block: String { return self._s[1253]! } - public var VoiceChat_PersonalAccount: String { return self._s[1254]! } - public var Passport_Scans_UploadNew: String { return self._s[1255]! } - public var Share_Title: String { return self._s[1256]! } - public var Conversation_ApplyLocalization: String { return self._s[1257]! } - public var SharedMedia_EmptyLinksText: String { return self._s[1258]! } - public var Settings_NotificationsAndSounds: String { return self._s[1259]! } - public var Stats_ViewsByHoursTitle: String { return self._s[1260]! } - public var PhotoEditor_QualityMedium: String { return self._s[1261]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[1262]! } + public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1251]!, self._r[1251]!, [_1, _2]) + } + public var ChatImport_CreateGroupAlertTitle: String { return self._s[1253]! } + public var Conversation_Block: String { return self._s[1254]! } + public var VoiceChat_PersonalAccount: String { return self._s[1255]! } + public var Passport_Scans_UploadNew: String { return self._s[1256]! } + public var Share_Title: String { return self._s[1257]! } + public var Conversation_ApplyLocalization: String { return self._s[1258]! } + public var SharedMedia_EmptyLinksText: String { return self._s[1259]! } + public var Settings_NotificationsAndSounds: String { return self._s[1260]! } + public var Stats_ViewsByHoursTitle: String { return self._s[1261]! } + public var PhotoEditor_QualityMedium: String { return self._s[1262]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[1263]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1263]!, self._r[1263]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1264]!, self._r[1264]!, [_1, _2]) } - public var Conversation_RestrictedInline: String { return self._s[1264]! } - public var Passport_Language_tr: String { return self._s[1265]! } - public var Call_Mute: String { return self._s[1266]! } + public var Conversation_RestrictedInline: String { return self._s[1265]! } + public var Passport_Language_tr: String { return self._s[1266]! } + public var Call_Mute: String { return self._s[1267]! } public func Conversation_NoticeInvitedByInGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1267]!, self._r[1267]!, [_0]) + return formatWithArgumentRanges(self._s[1268]!, self._r[1268]!, [_0]) } - public var Passport_Language_bn: String { return self._s[1268]! } - public var Common_Save: String { return self._s[1270]! } - public var AccessDenied_LocationTracking: String { return self._s[1272]! } - public var Month_ShortOctober: String { return self._s[1273]! } - public var AutoDownloadSettings_WiFi: String { return self._s[1274]! } - public var ProfilePhoto_SetMainPhoto: String { return self._s[1276]! } - public var ChangePhoneNumberNumber_NewNumber: String { return self._s[1277]! } + public var Passport_Language_bn: String { return self._s[1269]! } + public var Common_Save: String { return self._s[1271]! } + public var AccessDenied_LocationTracking: String { return self._s[1273]! } + public var Month_ShortOctober: String { return self._s[1274]! } + public var AutoDownloadSettings_WiFi: String { return self._s[1275]! } + public var ProfilePhoto_SetMainPhoto: String { return self._s[1277]! } + public var ChangePhoneNumberNumber_NewNumber: String { return self._s[1278]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1278]!, self._r[1278]!, [_0]) + return formatWithArgumentRanges(self._s[1279]!, self._r[1279]!, [_0]) } - public var Watch_ChannelInfo_Title: String { return self._s[1279]! } - public var State_Updating: String { return self._s[1280]! } - public var Conversation_UnblockUser: String { return self._s[1281]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1282]! } - public var Map_GetDirections: String { return self._s[1283]! } - public var Watch_Compose_AddContact: String { return self._s[1285]! } - public var Conversation_Dice_u26BD: String { return self._s[1286]! } - public var AccessDenied_PhotosRestricted: String { return self._s[1287]! } + public var Watch_ChannelInfo_Title: String { return self._s[1280]! } + public var State_Updating: String { return self._s[1281]! } + public var Conversation_UnblockUser: String { return self._s[1282]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1283]! } + public var Map_GetDirections: String { return self._s[1284]! } + public var Watch_Compose_AddContact: String { return self._s[1286]! } + public var Conversation_Dice_u26BD: String { return self._s[1287]! } + public var AccessDenied_PhotosRestricted: String { return self._s[1288]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1288]!, self._r[1288]!, [_1]) + return formatWithArgumentRanges(self._s[1289]!, self._r[1289]!, [_1]) } - public var Map_LoadError: String { return self._s[1290]! } - public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[1291]! } - public var PhotoEditor_CropAuto: String { return self._s[1292]! } + public var Map_LoadError: String { return self._s[1291]! } + public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[1292]! } + public var PhotoEditor_CropAuto: String { return self._s[1293]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1295]!, self._r[1295]!, [_0]) + return formatWithArgumentRanges(self._s[1296]!, self._r[1296]!, [_0]) } - public var Username_TooManyPublicUsernamesError: String { return self._s[1297]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[1298]! } public func PUSH_PINNED_GAME(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1298]!, self._r[1298]!, [_1]) + return formatWithArgumentRanges(self._s[1299]!, self._r[1299]!, [_1]) } - public var Settings_PhoneNumber: String { return self._s[1299]! } + public var Settings_PhoneNumber: String { return self._s[1300]! } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1300]!, self._r[1300]!, [_1]) + return formatWithArgumentRanges(self._s[1301]!, self._r[1301]!, [_1]) } - public var Month_GenJune: String { return self._s[1302]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[1303]! } - public var ChatListFolder_CategoryRead: String { return self._s[1304]! } - public var LoginPassword_ResetAccount: String { return self._s[1305]! } + public var Month_GenJune: String { return self._s[1303]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[1304]! } + public var ChatListFolder_CategoryRead: String { return self._s[1305]! } + public var LoginPassword_ResetAccount: String { return self._s[1306]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1306]!, self._r[1306]!, [_0]) + return formatWithArgumentRanges(self._s[1307]!, self._r[1307]!, [_0]) } - public var Call_CameraConfirmationConfirm: String { return self._s[1307]! } - public var Notification_RenamedChannel: String { return self._s[1308]! } + public var Call_CameraConfirmationConfirm: String { return self._s[1308]! } + public var Notification_RenamedChannel: String { return self._s[1309]! } public func Channel_AdminLog_MessageUnpinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1309]!, self._r[1309]!, [_0]) + return formatWithArgumentRanges(self._s[1310]!, self._r[1310]!, [_0]) } - public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[1310]! } - public var IntentsSettings_Title: String { return self._s[1312]! } - public var CallList_DeleteAllForMe: String { return self._s[1313]! } - public var Settings_AppleWatch: String { return self._s[1314]! } - public var Conversation_LinkCopied: String { return self._s[1315]! } - public var DialogList_NoMessagesText: String { return self._s[1316]! } + public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[1311]! } + public var IntentsSettings_Title: String { return self._s[1313]! } + public var CallList_DeleteAllForMe: String { return self._s[1314]! } + public var Settings_AppleWatch: String { return self._s[1315]! } + public var Conversation_LinkCopied: String { return self._s[1316]! } + public var DialogList_NoMessagesText: String { return self._s[1317]! } public func VoiceChat_SendPublicLinkText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1317]!, self._r[1317]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1318]!, self._r[1318]!, [_1, _2]) } - public var GroupPermission_NoChangeInfo: String { return self._s[1318]! } - public var Channel_ErrorAccessDenied: String { return self._s[1320]! } - public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1321]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1319]! } + public var Channel_ErrorAccessDenied: String { return self._s[1321]! } + public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1322]! } public func Message_StickerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1322]!, self._r[1322]!, [_0]) + return formatWithArgumentRanges(self._s[1323]!, self._r[1323]!, [_0]) } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1323]! } - public var StickerPacksSettings_AnimatedStickers: String { return self._s[1324]! } - public var Month_ShortJanuary: String { return self._s[1325]! } - public var Conversation_UnreadMessages: String { return self._s[1326]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[1328]! } - public var Call_VoiceOver_VideoCallCanceled: String { return self._s[1329]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[1331]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1332]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1324]! } + public var StickerPacksSettings_AnimatedStickers: String { return self._s[1325]! } + public var Month_ShortJanuary: String { return self._s[1326]! } + public var Conversation_UnreadMessages: String { return self._s[1327]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[1329]! } + public var Call_VoiceOver_VideoCallCanceled: String { return self._s[1330]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[1332]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1333]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1336]!, self._r[1336]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1337]!, self._r[1337]!, [_1, _2]) } - public var Widget_ApplicationLocked: String { return self._s[1337]! } + public var Widget_ApplicationLocked: String { return self._s[1338]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1338]!, self._r[1338]!, [_0]) + return formatWithArgumentRanges(self._s[1339]!, self._r[1339]!, [_0]) } - public var Common_TakePhotoOrVideo: String { return self._s[1339]! } - public var Passport_Language_ru: String { return self._s[1341]! } - public var MediaPicker_VideoMuteDescription: String { return self._s[1342]! } - public var EditTheme_ErrorLinkTaken: String { return self._s[1343]! } + public var Common_TakePhotoOrVideo: String { return self._s[1340]! } + public var Passport_Language_ru: String { return self._s[1342]! } + public var MediaPicker_VideoMuteDescription: String { return self._s[1343]! } + public var EditTheme_ErrorLinkTaken: String { return self._s[1344]! } public func Group_EditAdmin_RankInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1345]!, self._r[1345]!, [_0]) + return formatWithArgumentRanges(self._s[1346]!, self._r[1346]!, [_0]) } - public var VoiceChat_ShareShort: String { return self._s[1346]! } - public var Channel_Members_AddAdminErrorBlacklisted: String { return self._s[1347]! } - public var Conversation_Owner: String { return self._s[1349]! } - public var Settings_FAQ_Intro: String { return self._s[1350]! } - public var PhotoEditor_QualityLow: String { return self._s[1352]! } - public var Widget_GalleryTitle: String { return self._s[1353]! } - public var Call_End: String { return self._s[1354]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[1356]! } - public var Privacy_ContactsSyncHelp: String { return self._s[1357]! } - public var OldChannels_NoticeUpgradeText: String { return self._s[1361]! } - public var Conversation_Call: String { return self._s[1363]! } - public var Watch_MessageView_Title: String { return self._s[1364]! } + public var VoiceChat_ShareShort: String { return self._s[1347]! } + public var Channel_Members_AddAdminErrorBlacklisted: String { return self._s[1348]! } + public var Conversation_Owner: String { return self._s[1350]! } + public var Settings_FAQ_Intro: String { return self._s[1351]! } + public var PhotoEditor_QualityLow: String { return self._s[1353]! } + public var Widget_GalleryTitle: String { return self._s[1354]! } + public var Call_End: String { return self._s[1355]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[1357]! } + public var Privacy_ContactsSyncHelp: String { return self._s[1358]! } + public var OldChannels_NoticeUpgradeText: String { return self._s[1362]! } + public var Conversation_Call: String { return self._s[1364]! } + public var Watch_MessageView_Title: String { return self._s[1365]! } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1365]!, self._r[1365]!, [_0]) + return formatWithArgumentRanges(self._s[1366]!, self._r[1366]!, [_0]) } - public var Passport_PasswordCompleteSetup: String { return self._s[1366]! } + public var Passport_PasswordCompleteSetup: String { return self._s[1367]! } public func Notification_ChangedGroupVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1367]!, self._r[1367]!, [_0]) + return formatWithArgumentRanges(self._s[1368]!, self._r[1368]!, [_0]) } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1369]!, self._r[1369]!, [_0]) + return formatWithArgumentRanges(self._s[1370]!, self._r[1370]!, [_0]) } - public var Map_Location: String { return self._s[1370]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1371]! } - public var Login_CountryCode: String { return self._s[1372]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[1374]! } - public var ChatState_ConnectingToProxy: String { return self._s[1375]! } - public var Login_CallRequestState3: String { return self._s[1376]! } - public var NetworkUsageSettings_MediaAudioDataSection: String { return self._s[1379]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1380]! } - public var Widget_ChatsGalleryDescription: String { return self._s[1382]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[1384]! } - public var InstantPage_FontSanFrancisco: String { return self._s[1385]! } - public var Call_StatusEnded: String { return self._s[1386]! } + public var Map_Location: String { return self._s[1371]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1372]! } + public var Login_CountryCode: String { return self._s[1373]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[1375]! } + public var ChatState_ConnectingToProxy: String { return self._s[1376]! } + public var Login_CallRequestState3: String { return self._s[1377]! } + public var NetworkUsageSettings_MediaAudioDataSection: String { return self._s[1380]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1381]! } + public var Widget_ChatsGalleryDescription: String { return self._s[1383]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[1385]! } + public var InstantPage_FontSanFrancisco: String { return self._s[1386]! } + public var Call_StatusEnded: String { return self._s[1387]! } public func Checkout_SuccessfulTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1389]!, self._r[1389]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1390]!, self._r[1390]!, [_1, _2]) } - public var MusicPlayer_VoiceNote: String { return self._s[1390]! } - public var ChatImportActivity_ErrorUserBlocked: String { return self._s[1391]! } + public var MusicPlayer_VoiceNote: String { return self._s[1391]! } + public var ChatImportActivity_ErrorUserBlocked: String { return self._s[1392]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1392]!, self._r[1392]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1393]!, self._r[1393]!, [_1, _2]) } - public var VoiceOver_MessageContextShare: String { return self._s[1393]! } - public var ProfilePhoto_SearchWeb: String { return self._s[1394]! } - public var EditProfile_Title: String { return self._s[1395]! } + public var VoiceOver_MessageContextShare: String { return self._s[1394]! } + public var ProfilePhoto_SearchWeb: String { return self._s[1395]! } + public var EditProfile_Title: String { return self._s[1396]! } public func Notification_PinnedQuizMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1396]!, self._r[1396]!, [_0]) + return formatWithArgumentRanges(self._s[1397]!, self._r[1397]!, [_0]) } - public var VoiceChat_Unmute: String { return self._s[1397]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[1398]! } - public var NetworkUsageSettings_ResetStats: String { return self._s[1400]! } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[1401]! } - public var StickerPackActionInfo_AddedTitle: String { return self._s[1402]! } - public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[1403]! } + public var VoiceChat_Unmute: String { return self._s[1398]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[1399]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[1401]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[1402]! } + public var StickerPackActionInfo_AddedTitle: String { return self._s[1403]! } + public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[1404]! } public func Call_ParticipantVideoVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1404]!, self._r[1404]!, [_0]) + return formatWithArgumentRanges(self._s[1405]!, self._r[1405]!, [_0]) } - public var Location_ProximityNotification_Title: String { return self._s[1405]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[1406]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1409]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[1410]! } - public var Stats_GroupMembersTitle: String { return self._s[1411]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[1412]! } - public var InviteLink_InviteLinkRevoked: String { return self._s[1413]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1414]! } - public var OpenFile_PotentiallyDangerousContentAlert: String { return self._s[1415]! } - public var Settings_SetUsername: String { return self._s[1416]! } - public var GroupInfo_ActionRestrict: String { return self._s[1417]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1418]! } + public var Location_ProximityNotification_Title: String { return self._s[1406]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[1407]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[1410]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[1411]! } + public var Stats_GroupMembersTitle: String { return self._s[1412]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[1413]! } + public var InviteLink_InviteLinkRevoked: String { return self._s[1414]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1415]! } + public var OpenFile_PotentiallyDangerousContentAlert: String { return self._s[1416]! } + public var Settings_SetUsername: String { return self._s[1417]! } + public var GroupInfo_ActionRestrict: String { return self._s[1418]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1419]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1419]!, self._r[1419]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1420]!, self._r[1420]!, [_1, _2, _3]) } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1421]! } - public var Notification_Exceptions_AlwaysOff: String { return self._s[1422]! } - public var Conversation_ContextMenuDelete: String { return self._s[1423]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[1424]! } - public var ChatList_PsaAlert_covid: String { return self._s[1427]! } - public var VoiceOver_SilentPostOn: String { return self._s[1428]! } - public var DialogList_Pin: String { return self._s[1429]! } - public var Channel_AdminLog_CanInviteUsersViaLink: String { return self._s[1430]! } - public var PrivacySettings_SecurityTitle: String { return self._s[1431]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[1432]! } - public var PeopleNearby_Groups: String { return self._s[1433]! } - public var Message_File: String { return self._s[1434]! } - public var Calls_NoCallsPlaceholder: String { return self._s[1435]! } - public var ChatList_GenericPsaLabel: String { return self._s[1438]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[1439]! } - public var IntentsSettings_Reset: String { return self._s[1441]! } - public var Call_ConnectionErrorTitle: String { return self._s[1442]! } - public var PhotoEditor_SaturationTool: String { return self._s[1443]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[1444]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1445]! } - public var Conversation_SearchNoResults: String { return self._s[1446]! } - public var Channel_DiscussionGroup_PrivateChannel: String { return self._s[1447]! } - public var Map_OpenInWaze: String { return self._s[1448]! } - public var InviteLink_PeopleJoinedNone: String { return self._s[1449]! } - public var WallpaperPreview_Title: String { return self._s[1450]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1422]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[1423]! } + public var Conversation_ContextMenuDelete: String { return self._s[1424]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[1425]! } + public var ChatList_PsaAlert_covid: String { return self._s[1428]! } + public var VoiceOver_SilentPostOn: String { return self._s[1429]! } + public var DialogList_Pin: String { return self._s[1430]! } + public var Channel_AdminLog_CanInviteUsersViaLink: String { return self._s[1431]! } + public var PrivacySettings_SecurityTitle: String { return self._s[1432]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[1433]! } + public var PeopleNearby_Groups: String { return self._s[1434]! } + public var Message_File: String { return self._s[1435]! } + public var Calls_NoCallsPlaceholder: String { return self._s[1436]! } + public var ChatList_GenericPsaLabel: String { return self._s[1439]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[1440]! } + public var IntentsSettings_Reset: String { return self._s[1442]! } + public var Call_ConnectionErrorTitle: String { return self._s[1443]! } + public var PhotoEditor_SaturationTool: String { return self._s[1444]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[1445]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1446]! } + public var Conversation_SearchNoResults: String { return self._s[1447]! } + public var Channel_DiscussionGroup_PrivateChannel: String { return self._s[1448]! } + public var Map_OpenInWaze: String { return self._s[1449]! } + public var InviteLink_PeopleJoinedNone: String { return self._s[1450]! } + public var WallpaperPreview_Title: String { return self._s[1451]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1452]!, self._r[1452]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1453]!, self._r[1453]!, [_1, _2]) } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[1453]! } - public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[1454]! } - public var VoiceOver_Chat_ChannelInfo: String { return self._s[1455]! } - public var Conversation_ImageCopied: String { return self._s[1456]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[1457]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[1459]! } - public var Stats_Total: String { return self._s[1462]! } - public var Stats_GroupMessages: String { return self._s[1463]! } - public var TwoFactorSetup_Email_SkipAction: String { return self._s[1464]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[1465]! } - public var VoiceChat_You: String { return self._s[1466]! } - public var VoiceChat_DisplayAsInfoGroup: String { return self._s[1467]! } - public var Passport_Identity_Translation: String { return self._s[1468]! } - public var Notifications_TextTone: String { return self._s[1471]! } - public var Settings_RemoveConfirmation: String { return self._s[1473]! } - public var ScheduledMessages_Delete: String { return self._s[1474]! } - public var Channel_AdminLog_BanEmbedLinks: String { return self._s[1475]! } - public var Passport_PasswordNext: String { return self._s[1476]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[1454]! } + public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[1455]! } + public var VoiceOver_Chat_ChannelInfo: String { return self._s[1456]! } + public var Conversation_ImageCopied: String { return self._s[1457]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[1458]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[1460]! } + public var Stats_Total: String { return self._s[1463]! } + public var Stats_GroupMessages: String { return self._s[1464]! } + public var TwoFactorSetup_Email_SkipAction: String { return self._s[1465]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[1466]! } + public var VoiceChat_You: String { return self._s[1467]! } + public var VoiceChat_DisplayAsInfoGroup: String { return self._s[1468]! } + public var Passport_Identity_Translation: String { return self._s[1469]! } + public var Notifications_TextTone: String { return self._s[1472]! } + public var Settings_RemoveConfirmation: String { return self._s[1474]! } + public var ScheduledMessages_Delete: String { return self._s[1475]! } + public var Channel_AdminLog_BanEmbedLinks: String { return self._s[1476]! } + public var Passport_PasswordNext: String { return self._s[1477]! } public func PUSH_ENCRYPTED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1477]!, self._r[1477]!, [_1]) + return formatWithArgumentRanges(self._s[1478]!, self._r[1478]!, [_1]) } - public var Passport_Address_EditBankStatement: String { return self._s[1478]! } - public var PhotoEditor_ShadowsTool: String { return self._s[1479]! } - public var Notification_VideoCallMissed: String { return self._s[1480]! } - public var AccessDenied_CameraDisabled: String { return self._s[1482]! } - public var AuthSessions_AddDevice_ScanInfo: String { return self._s[1483]! } - public var Notifications_ExceptionsMuted: String { return self._s[1484]! } - public var VoiceChat_TapToViewScreenVideo: String { return self._s[1485]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[1486]! } - public var Channel_BlackList_Title: String { return self._s[1487]! } - public var PasscodeSettings_4DigitCode: String { return self._s[1488]! } - public var NotificationsSound_Bamboo: String { return self._s[1489]! } - public var Conversation_InputMenu: String { return self._s[1490]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[1491]! } - public var Passport_Address_TypeUtilityBill: String { return self._s[1492]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[1493]! } - public var GroupPermission_SectionTitle: String { return self._s[1494]! } - public var InviteLink_ContextRevoke: String { return self._s[1495]! } + public var Passport_Address_EditBankStatement: String { return self._s[1479]! } + public var PhotoEditor_ShadowsTool: String { return self._s[1480]! } + public var Notification_VideoCallMissed: String { return self._s[1481]! } + public var AccessDenied_CameraDisabled: String { return self._s[1483]! } + public var AuthSessions_AddDevice_ScanInfo: String { return self._s[1484]! } + public var Notifications_ExceptionsMuted: String { return self._s[1485]! } + public var VoiceChat_TapToViewScreenVideo: String { return self._s[1486]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[1487]! } + public var Channel_BlackList_Title: String { return self._s[1488]! } + public var PasscodeSettings_4DigitCode: String { return self._s[1489]! } + public var NotificationsSound_Bamboo: String { return self._s[1490]! } + public var Conversation_InputMenu: String { return self._s[1491]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[1492]! } + public var Passport_Address_TypeUtilityBill: String { return self._s[1493]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[1494]! } + public var GroupPermission_SectionTitle: String { return self._s[1495]! } + public var InviteLink_ContextRevoke: String { return self._s[1496]! } public func Notification_InvitedMultiple(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1496]!, self._r[1496]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1497]!, self._r[1497]!, [_0, _1]) } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1497]! } - public var Channel_LeaveChannel: String { return self._s[1498]! } - public var Watch_Notification_Joined: String { return self._s[1499]! } - public var PeerInfo_ButtonMore: String { return self._s[1500]! } - public var Passport_FieldEmailHelp: String { return self._s[1501]! } - public var ChatList_Context_Pin: String { return self._s[1502]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1498]! } + public var Channel_LeaveChannel: String { return self._s[1499]! } + public var Watch_Notification_Joined: String { return self._s[1500]! } + public var PeerInfo_ButtonMore: String { return self._s[1501]! } + public var Passport_FieldEmailHelp: String { return self._s[1502]! } + public var ChatList_Context_Pin: String { return self._s[1503]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1503]!, self._r[1503]!, [_0]) + return formatWithArgumentRanges(self._s[1504]!, self._r[1504]!, [_0]) } - public var Group_Location_CreateInThisPlace: String { return self._s[1504]! } - public var PhotoEditor_QualityVeryHigh: String { return self._s[1505]! } - public var Tour_Title5: String { return self._s[1506]! } + public var Group_Location_CreateInThisPlace: String { return self._s[1505]! } + public var PhotoEditor_QualityVeryHigh: String { return self._s[1506]! } + public var Tour_Title5: String { return self._s[1507]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1507]!, self._r[1507]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1508]!, self._r[1508]!, [_1, _2]) } - public var Passport_Language_en: String { return self._s[1508]! } - public var Checkout_Name: String { return self._s[1509]! } - public var ChatImport_Title: String { return self._s[1510]! } + public var Passport_Language_en: String { return self._s[1509]! } + public var Checkout_Name: String { return self._s[1510]! } + public var ChatImport_Title: String { return self._s[1511]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1511]!, self._r[1511]!, [_0]) + return formatWithArgumentRanges(self._s[1512]!, self._r[1512]!, [_0]) } - public var PhotoEditor_EnhanceTool: String { return self._s[1512]! } + public var PhotoEditor_EnhanceTool: String { return self._s[1513]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1513]!, self._r[1513]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1514]!, self._r[1514]!, [_1, _2]) } public func VoiceChat_UserCanNowSpeak(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1514]!, self._r[1514]!, [_0]) + return formatWithArgumentRanges(self._s[1515]!, self._r[1515]!, [_0]) } - public var PeerInfo_CustomizeNotifications: String { return self._s[1515]! } + public var PeerInfo_CustomizeNotifications: String { return self._s[1516]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1516]!, self._r[1516]!, [_0]) + return formatWithArgumentRanges(self._s[1517]!, self._r[1517]!, [_0]) } - public var Group_ErrorSendRestrictedMedia: String { return self._s[1517]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[1518]! } public func UserInfo_NotificationsDefaultSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1518]!, self._r[1518]!, [_0]) + return formatWithArgumentRanges(self._s[1519]!, self._r[1519]!, [_0]) } - public var Login_UnknownError: String { return self._s[1519]! } - public var Conversation_ImportedMessageHint: String { return self._s[1521]! } + public var Login_UnknownError: String { return self._s[1520]! } + public var Conversation_ImportedMessageHint: String { return self._s[1522]! } public func VoiceChat_ForwardTooltip_Chat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1522]!, self._r[1522]!, [_0]) + return formatWithArgumentRanges(self._s[1523]!, self._r[1523]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[1524]! } - public var ChatList_AutoarchiveSuggestion_Title: String { return self._s[1525]! } - public var Watch_PhotoView_Title: String { return self._s[1526]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[1527]! } - public var Checkout_TotalAmount: String { return self._s[1528]! } - public var ChatList_RemoveFolderAction: String { return self._s[1529]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[1525]! } + public var ChatList_AutoarchiveSuggestion_Title: String { return self._s[1526]! } + public var Watch_PhotoView_Title: String { return self._s[1527]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[1528]! } + public var Checkout_TotalAmount: String { return self._s[1529]! } + public var ChatList_RemoveFolderAction: String { return self._s[1530]! } public func GroupInfo_Permissions_BroadcastConvertInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1530]!, self._r[1530]!, [_0]) + return formatWithArgumentRanges(self._s[1531]!, self._r[1531]!, [_0]) } - public var GroupInfo_SetGroupPhoto: String { return self._s[1531]! } - public var Watch_AppName: String { return self._s[1532]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[1532]! } + public var Watch_AppName: String { return self._s[1533]! } public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1533]!, self._r[1533]!, [_1]) + return formatWithArgumentRanges(self._s[1534]!, self._r[1534]!, [_1]) } - public var Channel_Username_CheckingUsername: String { return self._s[1534]! } - public var ContactList_Context_Call: String { return self._s[1535]! } - public var ChatList_ReorderTabs: String { return self._s[1536]! } - public var Watch_ChatList_Compose: String { return self._s[1537]! } + public var Channel_Username_CheckingUsername: String { return self._s[1535]! } + public var ContactList_Context_Call: String { return self._s[1536]! } + public var ChatList_ReorderTabs: String { return self._s[1537]! } + public var Watch_ChatList_Compose: String { return self._s[1538]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1538]!, self._r[1538]!, [_0]) + return formatWithArgumentRanges(self._s[1539]!, self._r[1539]!, [_0]) } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[1539]! } - public var ArchivedChats_IntroTitle1: String { return self._s[1540]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[1540]! } + public var ArchivedChats_IntroTitle1: String { return self._s[1541]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1541]!, self._r[1541]!, [_1]) + return formatWithArgumentRanges(self._s[1542]!, self._r[1542]!, [_1]) } - public var Call_StatusRequesting: String { return self._s[1543]! } - public var Checkout_TotalPaidAmount: String { return self._s[1544]! } - public var Weekday_Friday: String { return self._s[1546]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[1547]! } + public var Call_StatusRequesting: String { return self._s[1544]! } + public var Checkout_TotalPaidAmount: String { return self._s[1545]! } + public var Weekday_Friday: String { return self._s[1547]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[1548]! } public func ChatImport_SelectionConfirmationUserWithoutTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1548]!, self._r[1548]!, [_0]) + return formatWithArgumentRanges(self._s[1549]!, self._r[1549]!, [_0]) } - public var Watch_ChatList_NoConversationsText: String { return self._s[1549]! } - public var Group_Members_AddMembersHelp: String { return self._s[1550]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[1550]! } + public var Group_Members_AddMembersHelp: String { return self._s[1551]! } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1551]!, self._r[1551]!, [_0]) + return formatWithArgumentRanges(self._s[1552]!, self._r[1552]!, [_0]) } - public var SecretVideo_Title: String { return self._s[1552]! } + public var SecretVideo_Title: String { return self._s[1553]! } public func Notification_PinnedStickerMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1555]!, self._r[1555]!, [_0]) + return formatWithArgumentRanges(self._s[1556]!, self._r[1556]!, [_0]) } - public var Undo_Undo: String { return self._s[1556]! } - public var Watch_Microphone_Access: String { return self._s[1557]! } + public var Undo_Undo: String { return self._s[1557]! } + public var Watch_Microphone_Access: String { return self._s[1558]! } public func ChatImport_SelectionConfirmationGroupWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1558]!, self._r[1558]!, [_1, _2]) - } - public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1559]!, self._r[1559]!, [_1, _2]) } - public func ChatList_Search_NoResultsQueryDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1560]!, self._r[1560]!, [_0]) + public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1560]!, self._r[1560]!, [_1, _2]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[1562]! } - public var TwoFactorSetup_Intro_Action: String { return self._s[1563]! } - public var Passport_Language_ne: String { return self._s[1564]! } - public var TwoStepAuth_EmailHelp: String { return self._s[1566]! } - public var Profile_MessageLifetime2s: String { return self._s[1567]! } + public func ChatList_Search_NoResultsQueryDescription(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1561]!, self._r[1561]!, [_0]) + } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[1563]! } + public var TwoFactorSetup_Intro_Action: String { return self._s[1564]! } + public var Passport_Language_ne: String { return self._s[1565]! } + public var TwoStepAuth_EmailHelp: String { return self._s[1567]! } + public var Profile_MessageLifetime2s: String { return self._s[1568]! } public func Conversation_MessageDialogRetryAll(_ _1: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1569]!, self._r[1569]!, ["\(_1)"]) + return formatWithArgumentRanges(self._s[1570]!, self._r[1570]!, ["\(_1)"]) } public func Items_NOfM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1570]!, self._r[1570]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1571]!, self._r[1571]!, [_1, _2]) } - public var VoiceChat_SendPublicLinkSend: String { return self._s[1571]! } - public var Media_LimitedAccessText: String { return self._s[1572]! } + public var VoiceChat_SendPublicLinkSend: String { return self._s[1572]! } + public var Media_LimitedAccessText: String { return self._s[1573]! } public func PUSH_CHAT_TITLE_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1573]!, self._r[1573]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1574]!, self._r[1574]!, [_1, _2]) } - public var GroupPermission_NoPinMessages: String { return self._s[1574]! } + public var GroupPermission_NoPinMessages: String { return self._s[1575]! } public func Notification_VoiceChatStarted(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1575]!, self._r[1575]!, [_1]) + return formatWithArgumentRanges(self._s[1576]!, self._r[1576]!, [_1]) } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1576]!, self._r[1576]!, [_0]) + return formatWithArgumentRanges(self._s[1577]!, self._r[1577]!, [_0]) } - public var FastTwoStepSetup_HintHelp: String { return self._s[1577]! } - public var VoiceOver_SilentPostOff: String { return self._s[1578]! } - public var WallpaperSearch_ColorRed: String { return self._s[1579]! } - public var Watch_ConnectionDescription: String { return self._s[1580]! } - public var Notification_Exceptions_AddException: String { return self._s[1581]! } - public var LocalGroup_IrrelevantWarning: String { return self._s[1582]! } - public var VoiceOver_MessageContextDelete: String { return self._s[1583]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1584]! } - public var Passport_PasswordPlaceholder: String { return self._s[1585]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[1586]! } - public var Stats_MessageInteractionsTitle: String { return self._s[1587]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[1588]! } - public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1590]! } - public var Channel_AdminLog_PinMessages: String { return self._s[1591]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[1593]! } - public var Watch_Message_Game: String { return self._s[1594]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1595]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[1596]! } - public var EditTheme_FileReadError: String { return self._s[1597]! } - public var Group_ErrorAddBlocked: String { return self._s[1598]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1599]! } + public var FastTwoStepSetup_HintHelp: String { return self._s[1578]! } + public var VoiceOver_SilentPostOff: String { return self._s[1579]! } + public var WallpaperSearch_ColorRed: String { return self._s[1580]! } + public var Watch_ConnectionDescription: String { return self._s[1581]! } + public var Notification_Exceptions_AddException: String { return self._s[1582]! } + public var LocalGroup_IrrelevantWarning: String { return self._s[1583]! } + public var VoiceOver_MessageContextDelete: String { return self._s[1584]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1585]! } + public var Passport_PasswordPlaceholder: String { return self._s[1586]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[1587]! } + public var Stats_MessageInteractionsTitle: String { return self._s[1588]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[1589]! } + public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1591]! } + public var Channel_AdminLog_PinMessages: String { return self._s[1592]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[1594]! } + public var Watch_Message_Game: String { return self._s[1595]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1596]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[1597]! } + public var EditTheme_FileReadError: String { return self._s[1598]! } + public var Group_ErrorAddBlocked: String { return self._s[1599]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1600]! } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1601]!, self._r[1601]!, [_1]) + return formatWithArgumentRanges(self._s[1602]!, self._r[1602]!, [_1]) } - public var GroupRemoved_ViewChannelInfo: String { return self._s[1602]! } + public var GroupRemoved_ViewChannelInfo: String { return self._s[1603]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1603]!, self._r[1603]!, [_0]) + return formatWithArgumentRanges(self._s[1604]!, self._r[1604]!, [_0]) } - public var CheckoutInfo_ShippingInfoAddress2Placeholder: String { return self._s[1604]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[1605]! } + public var CheckoutInfo_ShippingInfoAddress2Placeholder: String { return self._s[1605]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[1606]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1606]!, self._r[1606]!, [_0]) + return formatWithArgumentRanges(self._s[1607]!, self._r[1607]!, [_0]) } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[1607]! } - public var Bot_GroupStatusReadsHistory: String { return self._s[1608]! } - public var PhotoEditor_CurvesRed: String { return self._s[1609]! } - public var InstantPage_TapToOpenLink: String { return self._s[1610]! } - public var InviteLink_PeopleJoinedShortNoneExpired: String { return self._s[1611]! } - public var FastTwoStepSetup_PasswordHelp: String { return self._s[1612]! } - public var Conversation_DiscussionNotStarted: String { return self._s[1613]! } - public var Notification_CallMissedShort: String { return self._s[1614]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[1608]! } + public var Bot_GroupStatusReadsHistory: String { return self._s[1609]! } + public var PhotoEditor_CurvesRed: String { return self._s[1610]! } + public var InstantPage_TapToOpenLink: String { return self._s[1611]! } + public var InviteLink_PeopleJoinedShortNoneExpired: String { return self._s[1612]! } + public var FastTwoStepSetup_PasswordHelp: String { return self._s[1613]! } + public var Conversation_DiscussionNotStarted: String { return self._s[1614]! } + public var Notification_CallMissedShort: String { return self._s[1615]! } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1615]!, self._r[1615]!, [_0]) + return formatWithArgumentRanges(self._s[1616]!, self._r[1616]!, [_0]) } - public var Conversation_DeleteMessagesForEveryone: String { return self._s[1616]! } - public var VoiceChat_UnpinVideo: String { return self._s[1617]! } - public var Permissions_SiriTitle_v0: String { return self._s[1618]! } - public var GroupInfo_AddUserLeftError: String { return self._s[1619]! } - public var Conversation_SendMessage_SendSilently: String { return self._s[1620]! } - public var Paint_Duplicate: String { return self._s[1621]! } - public var AttachmentMenu_WebSearch: String { return self._s[1622]! } - public var Bot_Stop: String { return self._s[1624]! } - public var Conversation_PrivateChannelTimeLimitedAlertTitle: String { return self._s[1625]! } - public var ReportGroupLocation_Report: String { return self._s[1626]! } - public var Compose_Create: String { return self._s[1627]! } - public var Stats_GroupViewers: String { return self._s[1628]! } - public var AutoDownloadSettings_Channels: String { return self._s[1629]! } - public var PhotoEditor_QualityHigh: String { return self._s[1630]! } - public var VoiceChat_Leave: String { return self._s[1631]! } - public var Call_Speaker: String { return self._s[1632]! } + public var Conversation_DeleteMessagesForEveryone: String { return self._s[1617]! } + public var VoiceChat_UnpinVideo: String { return self._s[1618]! } + public var Permissions_SiriTitle_v0: String { return self._s[1619]! } + public var GroupInfo_AddUserLeftError: String { return self._s[1620]! } + public var Conversation_SendMessage_SendSilently: String { return self._s[1621]! } + public var Paint_Duplicate: String { return self._s[1622]! } + public var AttachmentMenu_WebSearch: String { return self._s[1623]! } + public var Bot_Stop: String { return self._s[1625]! } + public var Conversation_PrivateChannelTimeLimitedAlertTitle: String { return self._s[1626]! } + public var ReportGroupLocation_Report: String { return self._s[1627]! } + public var Compose_Create: String { return self._s[1628]! } + public var Stats_GroupViewers: String { return self._s[1629]! } + public var AutoDownloadSettings_Channels: String { return self._s[1630]! } + public var PhotoEditor_QualityHigh: String { return self._s[1631]! } + public var VoiceChat_Leave: String { return self._s[1632]! } + public var Call_Speaker: String { return self._s[1633]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1633]!, self._r[1633]!, [_0]) + return formatWithArgumentRanges(self._s[1634]!, self._r[1634]!, [_0]) } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[1634]! } - public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1635]! } - public var ChatList_Context_AddToFolder: String { return self._s[1636]! } - public var InviteLink_QRCode_Info: String { return self._s[1637]! } - public var AutoremoveSetup_Title: String { return self._s[1638]! } - public var ChatList_DeleteForAllMembersConfirmationText: String { return self._s[1639]! } - public var Conversation_Unblock: String { return self._s[1640]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[1641]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[1635]! } + public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1636]! } + public var ChatList_Context_AddToFolder: String { return self._s[1637]! } + public var InviteLink_QRCode_Info: String { return self._s[1638]! } + public var AutoremoveSetup_Title: String { return self._s[1639]! } + public var ChatList_DeleteForAllMembersConfirmationText: String { return self._s[1640]! } + public var Conversation_Unblock: String { return self._s[1641]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[1642]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1642]!, self._r[1642]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1643]!, self._r[1643]!, [_1, _2, _3]) } - public var Conversation_ContextMenuReply: String { return self._s[1643]! } - public var Contacts_SearchLabel: String { return self._s[1644]! } - public var Forward_ErrorPublicQuizDisabledInChannels: String { return self._s[1645]! } - public var Stats_GroupMessagesTitle: String { return self._s[1647]! } - public var VoiceChat_NoiseSuppression: String { return self._s[1648]! } - public var Notification_CallCanceled: String { return self._s[1649]! } - public var VoiceOver_Chat_Selected: String { return self._s[1650]! } - public var NotificationsSound_Tremolo: String { return self._s[1652]! } - public var VoiceOver_AuthSessions_CurrentSession: String { return self._s[1653]! } - public var ChatList_Search_NoResultsDescription: String { return self._s[1654]! } - public var AccessDenied_PhotosAndVideos: String { return self._s[1655]! } - public var LogoutOptions_ClearCacheText: String { return self._s[1656]! } + public var Conversation_ContextMenuReply: String { return self._s[1644]! } + public var Contacts_SearchLabel: String { return self._s[1645]! } + public var Forward_ErrorPublicQuizDisabledInChannels: String { return self._s[1646]! } + public var Stats_GroupMessagesTitle: String { return self._s[1648]! } + public var VoiceChat_NoiseSuppression: String { return self._s[1649]! } + public var Notification_CallCanceled: String { return self._s[1650]! } + public var VoiceOver_Chat_Selected: String { return self._s[1651]! } + public var NotificationsSound_Tremolo: String { return self._s[1653]! } + public var VoiceOver_AuthSessions_CurrentSession: String { return self._s[1654]! } + public var ChatList_Search_NoResultsDescription: String { return self._s[1655]! } + public var AccessDenied_PhotosAndVideos: String { return self._s[1656]! } + public var LogoutOptions_ClearCacheText: String { return self._s[1657]! } public func VoiceChat_DisplayAsSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1658]!, self._r[1658]!, [_0]) + return formatWithArgumentRanges(self._s[1659]!, self._r[1659]!, [_0]) } - public var VoiceOver_Chat_Sticker: String { return self._s[1659]! } - public var ChatListFolder_NameUnread: String { return self._s[1660]! } - public var PeerInfo_ButtonMessage: String { return self._s[1662]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[1663]! } - public var Settings_KeepPassword: String { return self._s[1664]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[1665]! } - public var ChatSettings_Other: String { return self._s[1666]! } - public var UserInfo_NotificationsEnabled: String { return self._s[1667]! } - public var CreatePoll_OptionsHeader: String { return self._s[1668]! } - public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1671]! } - public var Channel_Moderator_Title: String { return self._s[1672]! } + public var VoiceOver_Chat_Sticker: String { return self._s[1660]! } + public var ChatListFolder_NameUnread: String { return self._s[1661]! } + public var PeerInfo_ButtonMessage: String { return self._s[1663]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[1664]! } + public var Settings_KeepPassword: String { return self._s[1665]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[1666]! } + public var ChatSettings_Other: String { return self._s[1667]! } + public var UserInfo_NotificationsEnabled: String { return self._s[1668]! } + public var CreatePoll_OptionsHeader: String { return self._s[1669]! } + public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1672]! } + public var Channel_Moderator_Title: String { return self._s[1673]! } public func Conversation_ForwardTooltip_Chat_Many(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1673]!, self._r[1673]!, [_0]) + return formatWithArgumentRanges(self._s[1674]!, self._r[1674]!, [_0]) } public func UserInfo_ContactForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1674]!, self._r[1674]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1675]!, self._r[1675]!, [_0, _1]) } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[1675]! } - public var WallpaperColors_Title: String { return self._s[1676]! } - public var InviteLink_InviteLink: String { return self._s[1678]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[1679]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[1680]! } - public var Your_card_was_declined: String { return self._s[1681]! } - public var SettingsSearch_FAQ: String { return self._s[1683]! } - public var EditTheme_Expand_Preview_IncomingReplyName: String { return self._s[1684]! } - public var Conversation_ReportSpamConfirmation: String { return self._s[1685]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[1687]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1688]! } - public var Settings_About_Help: String { return self._s[1689]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[1676]! } + public var WallpaperColors_Title: String { return self._s[1677]! } + public var InviteLink_InviteLink: String { return self._s[1679]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[1680]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[1681]! } + public var Your_card_was_declined: String { return self._s[1682]! } + public var SettingsSearch_FAQ: String { return self._s[1684]! } + public var EditTheme_Expand_Preview_IncomingReplyName: String { return self._s[1685]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[1686]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[1688]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1689]! } + public var Settings_About_Help: String { return self._s[1690]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1690]!, self._r[1690]!, [_0]) + return formatWithArgumentRanges(self._s[1691]!, self._r[1691]!, [_0]) } - public var Settings_Proxy: String { return self._s[1691]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1692]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[1694]! } - public var NotificationsSound_Bell: String { return self._s[1695]! } - public var PrivacySettings_Title: String { return self._s[1697]! } - public var PrivacySettings_DataSettings: String { return self._s[1698]! } - public var ConversationMedia_Title: String { return self._s[1699]! } + public var Settings_Proxy: String { return self._s[1692]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1693]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[1695]! } + public var NotificationsSound_Bell: String { return self._s[1696]! } + public var PrivacySettings_Title: String { return self._s[1698]! } + public var PrivacySettings_DataSettings: String { return self._s[1699]! } + public var ConversationMedia_Title: String { return self._s[1700]! } public func Channel_AdminLog_MessageAddedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1700]!, self._r[1700]!, [_1]) + return formatWithArgumentRanges(self._s[1701]!, self._r[1701]!, [_1]) } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1701]!, self._r[1701]!, [_0]) + return formatWithArgumentRanges(self._s[1702]!, self._r[1702]!, [_0]) } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[1702]! } - public var ReportPeer_ReasonPornography: String { return self._s[1704]! } - public var Privacy_Calls: String { return self._s[1706]! } - public var TwoFactorSetup_Email_Text: String { return self._s[1707]! } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1708]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[1703]! } + public var ReportPeer_ReasonPornography: String { return self._s[1705]! } + public var Privacy_Calls: String { return self._s[1707]! } + public var TwoFactorSetup_Email_Text: String { return self._s[1708]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1709]! } public func VoiceOver_Chat_MusicTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1709]!, self._r[1709]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1710]!, self._r[1710]!, [_1, _2]) } - public var Passport_Identity_FrontSideHelp: String { return self._s[1710]! } - public var InstantPage_VoiceOver_DecreaseFontSize: String { return self._s[1711]! } - public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1713]! } - public var ContactList_Context_VideoCall: String { return self._s[1714]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1715]! } - public var Passport_Identity_MiddleName: String { return self._s[1716]! } - public var MessagePoll_QuizNoUsers: String { return self._s[1717]! } + public var Passport_Identity_FrontSideHelp: String { return self._s[1711]! } + public var InstantPage_VoiceOver_DecreaseFontSize: String { return self._s[1712]! } + public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1714]! } + public var ContactList_Context_VideoCall: String { return self._s[1715]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1716]! } + public var Passport_Identity_MiddleName: String { return self._s[1717]! } + public var MessagePoll_QuizNoUsers: String { return self._s[1718]! } public func Channel_AdminLog_MutedParticipant(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1718]!, self._r[1718]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1719]!, self._r[1719]!, [_1, _2]) } - public var OldChannels_ChannelFormat: String { return self._s[1719]! } - public var Watch_Message_Call: String { return self._s[1720]! } - public var VoiceChat_OpenChannel: String { return self._s[1721]! } - public var Wallpaper_Title: String { return self._s[1722]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[1723]! } - public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1724]! } - public var ReportGroupLocation_Text: String { return self._s[1725]! } - public var InviteText_URL: String { return self._s[1726]! } - public var ClearCache_StorageServiceFiles: String { return self._s[1727]! } - public var MessageTimer_Custom: String { return self._s[1728]! } - public var Message_PinnedLocationMessage: String { return self._s[1729]! } + public var OldChannels_ChannelFormat: String { return self._s[1720]! } + public var Watch_Message_Call: String { return self._s[1721]! } + public var VoiceChat_OpenChannel: String { return self._s[1722]! } + public var Wallpaper_Title: String { return self._s[1723]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[1724]! } + public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1725]! } + public var ReportGroupLocation_Text: String { return self._s[1726]! } + public var InviteText_URL: String { return self._s[1727]! } + public var ClearCache_StorageServiceFiles: String { return self._s[1728]! } + public var MessageTimer_Custom: String { return self._s[1729]! } + public var Message_PinnedLocationMessage: String { return self._s[1730]! } public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1730]!, self._r[1730]!, [_0]) + return formatWithArgumentRanges(self._s[1731]!, self._r[1731]!, [_0]) } - public var EditTheme_UploadNewTheme: String { return self._s[1731]! } - public var ChatImportActivity_ErrorLimitExceeded: String { return self._s[1734]! } + public var EditTheme_UploadNewTheme: String { return self._s[1732]! } + public var ChatImportActivity_ErrorLimitExceeded: String { return self._s[1735]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1735]!, self._r[1735]!, [_0]) + return formatWithArgumentRanges(self._s[1736]!, self._r[1736]!, [_0]) } - public var Login_CodeSentCall: String { return self._s[1737]! } + public var Login_CodeSentCall: String { return self._s[1738]! } public func Conversation_AutoremoveTimerSetUser(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1738]!, self._r[1738]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1739]!, self._r[1739]!, [_1, _2]) } - public var Conversation_Report: String { return self._s[1739]! } - public var NotificationSettings_ContactJoined: String { return self._s[1740]! } + public var Conversation_Report: String { return self._s[1740]! } + public var NotificationSettings_ContactJoined: String { return self._s[1741]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1741]!, self._r[1741]!, [_1]) + return formatWithArgumentRanges(self._s[1742]!, self._r[1742]!, [_1]) } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[1742]! } - public var BroadcastGroups_IntroText: String { return self._s[1743]! } - public var IntentsSettings_SuggestByAll: String { return self._s[1745]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[1746]! } - public var AuthSessions_Title: String { return self._s[1747]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[1743]! } + public var BroadcastGroups_IntroText: String { return self._s[1744]! } + public var IntentsSettings_SuggestByAll: String { return self._s[1746]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[1747]! } + public var AuthSessions_Title: String { return self._s[1748]! } public func Notification_VoiceChatEnded(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1748]!, self._r[1748]!, [_0]) + return formatWithArgumentRanges(self._s[1749]!, self._r[1749]!, [_0]) } - public var Settings_Tips: String { return self._s[1749]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1750]! } - public var WallpaperPreview_WallpaperColors: String { return self._s[1751]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1752]! } - public var VoiceChat_YouCanNowSpeak: String { return self._s[1755]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[1757]! } + public var Settings_Tips: String { return self._s[1750]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1751]! } + public var WallpaperPreview_WallpaperColors: String { return self._s[1752]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1753]! } + public var VoiceChat_YouCanNowSpeak: String { return self._s[1756]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[1758]! } public func UserInfo_LinkForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1758]!, self._r[1758]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1759]!, self._r[1759]!, [_0, _1]) } - public var AutoDownloadSettings_MaxVideoSize: String { return self._s[1759]! } - public var ExplicitContent_AlertTitle: String { return self._s[1760]! } - public var Channel_UpdatePhotoItem: String { return self._s[1762]! } - public var ChatList_AutoarchiveSuggestion_Text: String { return self._s[1764]! } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[1765]! } + public var AutoDownloadSettings_MaxVideoSize: String { return self._s[1760]! } + public var ExplicitContent_AlertTitle: String { return self._s[1761]! } + public var Channel_UpdatePhotoItem: String { return self._s[1763]! } + public var ChatList_AutoarchiveSuggestion_Text: String { return self._s[1765]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[1766]! } public func Call_BatteryLow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1766]!, self._r[1766]!, [_0]) + return formatWithArgumentRanges(self._s[1767]!, self._r[1767]!, [_0]) } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[1767]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[1768]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1769]! } - public var CommentsGroup_ErrorAccessDenied: String { return self._s[1770]! } - public var Appearance_AccentColor: String { return self._s[1772]! } - public var GroupInfo_SharedMedia: String { return self._s[1773]! } - public var Login_PhonePlaceholder: String { return self._s[1774]! } - public var Appearance_TextSize_Automatic: String { return self._s[1775]! } - public var EmptyGroupInfo_Line2: String { return self._s[1776]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[1768]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[1769]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1770]! } + public var CommentsGroup_ErrorAccessDenied: String { return self._s[1771]! } + public var Appearance_AccentColor: String { return self._s[1773]! } + public var GroupInfo_SharedMedia: String { return self._s[1774]! } + public var Login_PhonePlaceholder: String { return self._s[1775]! } + public var Appearance_TextSize_Automatic: String { return self._s[1776]! } + public var EmptyGroupInfo_Line2: String { return self._s[1777]! } public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1777]!, self._r[1777]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1778]!, self._r[1778]!, [_1, _2]) } - public var VoiceChat_TapToAddPhotoOrBio: String { return self._s[1778]! } - public var Conversation_ClearChannel: String { return self._s[1779]! } - public var Conversation_MessageDoesntExist: String { return self._s[1780]! } - public var Appearance_AppIconDefaultX: String { return self._s[1782]! } - public var EditProfile_NameAndPhotoOrVideoHelp: String { return self._s[1783]! } - public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[1784]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1785]! } + public var VoiceChat_TapToAddPhotoOrBio: String { return self._s[1779]! } + public var Conversation_ClearChannel: String { return self._s[1780]! } + public var Conversation_MessageDoesntExist: String { return self._s[1781]! } + public var Appearance_AppIconDefaultX: String { return self._s[1783]! } + public var EditProfile_NameAndPhotoOrVideoHelp: String { return self._s[1784]! } + public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[1785]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1786]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1786]!, self._r[1786]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1787]!, self._r[1787]!, [_1, _2]) } - public var ChatList_EmptyChatListEditFilter: String { return self._s[1787]! } - public var ChatSettings_ConnectionType_UseProxy: String { return self._s[1790]! } - public var Chat_PinnedMessagesHiddenText: String { return self._s[1791]! } + public var ChatList_EmptyChatListEditFilter: String { return self._s[1788]! } + public var ChatSettings_ConnectionType_UseProxy: String { return self._s[1791]! } + public var Chat_PinnedMessagesHiddenText: String { return self._s[1792]! } public func Message_PinnedGenericMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1792]!, self._r[1792]!, [_0]) - } - public func Location_ProximityTip(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1793]!, self._r[1793]!, [_0]) } - public var UserInfo_NotificationsEnable: String { return self._s[1794]! } - public var Checkout_PayWithTouchId: String { return self._s[1795]! } - public var SharedMedia_ViewInChat: String { return self._s[1796]! } - public func Notification_CreatedChatWithTitle(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1797]!, self._r[1797]!, [_0, _1]) + public func Location_ProximityTip(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1794]!, self._r[1794]!, [_0]) } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1798]! } + public var UserInfo_NotificationsEnable: String { return self._s[1795]! } + public var Checkout_PayWithTouchId: String { return self._s[1796]! } + public var SharedMedia_ViewInChat: String { return self._s[1797]! } + public func Notification_CreatedChatWithTitle(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1798]!, self._r[1798]!, [_0, _1]) + } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1799]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1799]!, self._r[1799]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1800]!, self._r[1800]!, [_1, _2]) } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1801]!, self._r[1801]!, [_0]) + return formatWithArgumentRanges(self._s[1802]!, self._r[1802]!, [_0]) } - public var Conversation_PeerNearbyText: String { return self._s[1803]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[1804]! } - public var PhotoEditor_Skip: String { return self._s[1805]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[1806]! } - public var ChatList_EmptyChatList: String { return self._s[1807]! } - public var Channel_BanUser_Unban: String { return self._s[1808]! } + public var Conversation_PeerNearbyText: String { return self._s[1804]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[1805]! } + public var PhotoEditor_Skip: String { return self._s[1806]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[1807]! } + public var ChatList_EmptyChatList: String { return self._s[1808]! } + public var Channel_BanUser_Unban: String { return self._s[1809]! } public func Message_GenericForwardedPsa(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1809]!, self._r[1809]!, [_0]) + return formatWithArgumentRanges(self._s[1810]!, self._r[1810]!, [_0]) } - public var Appearance_TextSize_Apply: String { return self._s[1810]! } + public var Appearance_TextSize_Apply: String { return self._s[1811]! } public func Conversation_MessageViewCommentsFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1811]!, self._r[1811]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1812]!, self._r[1812]!, [_1, _2]) } - public var Login_InfoFirstNamePlaceholder: String { return self._s[1812]! } - public var VoiceOver_Chat_YourSticker: String { return self._s[1813]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1814]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1816]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1817]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[1818]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[1813]! } + public var VoiceOver_Chat_YourSticker: String { return self._s[1814]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1815]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1817]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1818]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[1819]! } public func PUSH_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1819]!, self._r[1819]!, [_1]) + return formatWithArgumentRanges(self._s[1820]!, self._r[1820]!, [_1]) } - public var VoiceOver_Chat_GoToOriginalMessage: String { return self._s[1821]! } - public var State_WaitingForNetwork: String { return self._s[1822]! } - public var AccessDenied_CameraRestricted: String { return self._s[1823]! } - public var ChatSettings_Appearance: String { return self._s[1824]! } - public var ScheduledMessages_BotActionUnavailable: String { return self._s[1825]! } - public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[1826]! } - public var Channel_DiscussionGroupAdd: String { return self._s[1827]! } - public var Conversation_SelectMessages: String { return self._s[1829]! } - public var Map_NoPlacesNearby: String { return self._s[1830]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1831]! } - public var GroupRemoved_Title: String { return self._s[1832]! } - public var ImportStickerPack_RemoveFromImport: String { return self._s[1833]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1835]! } - public var VoiceChat_Mute: String { return self._s[1836]! } - public var Paint_Marker: String { return self._s[1837]! } - public var Widget_ChatsGalleryTitle: String { return self._s[1838]! } + public var VoiceOver_Chat_GoToOriginalMessage: String { return self._s[1822]! } + public var State_WaitingForNetwork: String { return self._s[1823]! } + public var AccessDenied_CameraRestricted: String { return self._s[1824]! } + public var ChatSettings_Appearance: String { return self._s[1825]! } + public var ScheduledMessages_BotActionUnavailable: String { return self._s[1826]! } + public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[1827]! } + public var Channel_DiscussionGroupAdd: String { return self._s[1828]! } + public var Conversation_SelectMessages: String { return self._s[1830]! } + public var Map_NoPlacesNearby: String { return self._s[1831]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1832]! } + public var GroupRemoved_Title: String { return self._s[1833]! } + public var ImportStickerPack_RemoveFromImport: String { return self._s[1834]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1836]! } + public var VoiceChat_Mute: String { return self._s[1837]! } + public var Paint_Marker: String { return self._s[1838]! } + public var Widget_ChatsGalleryTitle: String { return self._s[1839]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1839]!, self._r[1839]!, [_1]) + return formatWithArgumentRanges(self._s[1840]!, self._r[1840]!, [_1]) } - public var SocksProxySetup_ShareProxyList: String { return self._s[1840]! } - public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[1841]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[1841]! } + public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[1842]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1842]!, self._r[1842]!, [_0]) + return formatWithArgumentRanges(self._s[1843]!, self._r[1843]!, [_0]) } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[1843]! } - public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[1844]! } - public var Notifications_GroupNotificationsAlert: String { return self._s[1845]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[1846]! } - public var Compose_NewGroup: String { return self._s[1848]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[1844]! } + public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[1845]! } + public var Notifications_GroupNotificationsAlert: String { return self._s[1846]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[1847]! } + public var Compose_NewGroup: String { return self._s[1849]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1849]!, self._r[1849]!, [_0]) + return formatWithArgumentRanges(self._s[1850]!, self._r[1850]!, [_0]) } - public var Location_LiveLocationRequired_Description: String { return self._s[1851]! } - public var Conversation_ClearGroupHistory: String { return self._s[1852]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1855]! } - public var VoiceOver_BotKeyboard: String { return self._s[1856]! } - public var Channel_BanUser_BlockFor: String { return self._s[1857]! } - public var Bot_Start: String { return self._s[1858]! } - public var Your_card_has_expired: String { return self._s[1859]! } - public var Channel_About_Title: String { return self._s[1860]! } - public var VoiceChat_EditTitleTitle: String { return self._s[1861]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1862]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[1864]! } - public var Conversation_FileDropbox: String { return self._s[1865]! } - public var ChatList_Search_NoResultsFitlerMusic: String { return self._s[1866]! } - public var Month_GenNovember: String { return self._s[1867]! } - public var IntentsSettings_SuggestByShare: String { return self._s[1868]! } + public var Location_LiveLocationRequired_Description: String { return self._s[1852]! } + public var Conversation_ClearGroupHistory: String { return self._s[1853]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1856]! } + public var VoiceOver_BotKeyboard: String { return self._s[1857]! } + public var Channel_BanUser_BlockFor: String { return self._s[1858]! } + public var Bot_Start: String { return self._s[1859]! } + public var Your_card_has_expired: String { return self._s[1860]! } + public var Channel_About_Title: String { return self._s[1861]! } + public var VoiceChat_EditTitleTitle: String { return self._s[1862]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1863]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[1865]! } + public var Conversation_FileDropbox: String { return self._s[1866]! } + public var ChatList_Search_NoResultsFitlerMusic: String { return self._s[1867]! } + public var Month_GenNovember: String { return self._s[1868]! } + public var IntentsSettings_SuggestByShare: String { return self._s[1869]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1869]!, self._r[1869]!, [_0]) + return formatWithArgumentRanges(self._s[1870]!, self._r[1870]!, [_0]) } - public var StickerPack_Add: String { return self._s[1870]! } - public var Theme_ErrorNotFound: String { return self._s[1871]! } - public var Wallpaper_SearchShort: String { return self._s[1873]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1874]! } - public var ConversationProfile_UsersTooMuchError: String { return self._s[1875]! } - public var ChatList_FolderAllChats: String { return self._s[1876]! } - public var VoiceChat_EndConfirmationEnd: String { return self._s[1877]! } - public var Passport_Authorize: String { return self._s[1878]! } + public var StickerPack_Add: String { return self._s[1871]! } + public var Theme_ErrorNotFound: String { return self._s[1872]! } + public var Wallpaper_SearchShort: String { return self._s[1874]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1875]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[1876]! } + public var ChatList_FolderAllChats: String { return self._s[1877]! } + public var VoiceChat_EndConfirmationEnd: String { return self._s[1878]! } + public var Passport_Authorize: String { return self._s[1879]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1879]!, self._r[1879]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1880]!, self._r[1880]!, [_1, _2]) } - public var GroupInfo_GroupHistoryVisible: String { return self._s[1880]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[1881]! } public func PUSH_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1881]!, self._r[1881]!, [_1]) + return formatWithArgumentRanges(self._s[1882]!, self._r[1882]!, [_1]) } - public var LocalGroup_ButtonTitle: String { return self._s[1882]! } - public var VoiceOver_Stickers: String { return self._s[1884]! } - public var UserInfo_GroupsInCommon: String { return self._s[1885]! } - public var LoginPassword_Title: String { return self._s[1887]! } - public var Wallpaper_Set: String { return self._s[1888]! } - public var Stats_InteractionsTitle: String { return self._s[1889]! } + public var LocalGroup_ButtonTitle: String { return self._s[1883]! } + public var VoiceOver_Stickers: String { return self._s[1885]! } + public var UserInfo_GroupsInCommon: String { return self._s[1886]! } + public var LoginPassword_Title: String { return self._s[1888]! } + public var Wallpaper_Set: String { return self._s[1889]! } + public var Stats_InteractionsTitle: String { return self._s[1890]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1891]!, self._r[1891]!, [_0]) + return formatWithArgumentRanges(self._s[1892]!, self._r[1892]!, [_0]) } - public var Conversation_MessageDialogEdit: String { return self._s[1892]! } - public var Paint_Outlined: String { return self._s[1893]! } + public var Conversation_MessageDialogEdit: String { return self._s[1893]! } + public var Paint_Outlined: String { return self._s[1894]! } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1894]!, self._r[1894]!, [_0]) - } - public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1895]!, self._r[1895]!, [_0]) } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1896]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1897]! } - public var Appearance_ColorThemeNight: String { return self._s[1898]! } - public var ChannelInfo_Stats: String { return self._s[1899]! } - public var Widget_ShortcutsGalleryTitle: String { return self._s[1900]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1901]! } - public var MediaPicker_TimerTooltip: String { return self._s[1902]! } - public var ChatImportActivity_ErrorNotAdmin: String { return self._s[1903]! } - public var Common_ChoosePhoto: String { return self._s[1904]! } - public var Media_LimitedAccessTitle: String { return self._s[1905]! } - public var ChatSettings_AutoDownloadVideos: String { return self._s[1906]! } - public var PeerInfo_PaneGroups: String { return self._s[1907]! } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[1909]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1910]! } - public var ContactInfo_PhoneLabelMobile: String { return self._s[1911]! } - public var OldChannels_ChannelsHeader: String { return self._s[1912]! } - public var MuteFor_Forever: String { return self._s[1913]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[1914]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1916]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1917]! } - public var ContactInfo_Job: String { return self._s[1918]! } - public var Passport_Language_mk: String { return self._s[1919]! } - public var EditTheme_ShortLink: String { return self._s[1920]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1923]! } - public var Month_GenApril: String { return self._s[1925]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[1927]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1928]! } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[1929]! } - public var EditTheme_Title: String { return self._s[1930]! } - public var Conversation_LinkDialogCopy: String { return self._s[1931]! } + public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1896]!, self._r[1896]!, [_0]) + } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1897]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1898]! } + public var Appearance_ColorThemeNight: String { return self._s[1899]! } + public var ChannelInfo_Stats: String { return self._s[1900]! } + public var Widget_ShortcutsGalleryTitle: String { return self._s[1901]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1902]! } + public var MediaPicker_TimerTooltip: String { return self._s[1903]! } + public var ChatImportActivity_ErrorNotAdmin: String { return self._s[1904]! } + public var Common_ChoosePhoto: String { return self._s[1905]! } + public var Media_LimitedAccessTitle: String { return self._s[1906]! } + public var ChatSettings_AutoDownloadVideos: String { return self._s[1907]! } + public var PeerInfo_PaneGroups: String { return self._s[1908]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[1910]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1911]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[1912]! } + public var OldChannels_ChannelsHeader: String { return self._s[1913]! } + public var MuteFor_Forever: String { return self._s[1914]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[1915]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1917]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1918]! } + public var ContactInfo_Job: String { return self._s[1919]! } + public var Passport_Language_mk: String { return self._s[1920]! } + public var EditTheme_ShortLink: String { return self._s[1921]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1924]! } + public var Month_GenApril: String { return self._s[1926]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[1928]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1929]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[1930]! } + public var EditTheme_Title: String { return self._s[1931]! } + public var Conversation_LinkDialogCopy: String { return self._s[1932]! } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1932]!, self._r[1932]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1933]!, self._r[1933]!, [_1, _2]) } - public var Passport_ForgottenPassword: String { return self._s[1933]! } - public var WallpaperSearch_Recent: String { return self._s[1934]! } - public var ChatSettings_Title: String { return self._s[1939]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1940]! } + public var Passport_ForgottenPassword: String { return self._s[1934]! } + public var WallpaperSearch_Recent: String { return self._s[1935]! } + public var ChatSettings_Title: String { return self._s[1940]! } + public var Appearance_ReduceMotionInfo: String { return self._s[1941]! } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1941]!, self._r[1941]!, [_0]) + return formatWithArgumentRanges(self._s[1942]!, self._r[1942]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[1942]! } - public var LastSeen_WithinAMonth: String { return self._s[1943]! } - public var VoiceChat_Live: String { return self._s[1944]! } - public var PeerInfo_ButtonCall: String { return self._s[1945]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[1946]! } - public var Group_Username_InvalidStartsWithNumber: String { return self._s[1947]! } - public var Call_AudioRouteHide: String { return self._s[1948]! } - public var DialogList_SavedMessages: String { return self._s[1949]! } - public var ChatList_Context_Mute: String { return self._s[1950]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[1951]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[1943]! } + public var LastSeen_WithinAMonth: String { return self._s[1944]! } + public var VoiceChat_Live: String { return self._s[1945]! } + public var PeerInfo_ButtonCall: String { return self._s[1946]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[1947]! } + public var Group_Username_InvalidStartsWithNumber: String { return self._s[1948]! } + public var Call_AudioRouteHide: String { return self._s[1949]! } + public var DialogList_SavedMessages: String { return self._s[1950]! } + public var ChatList_Context_Mute: String { return self._s[1951]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[1952]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1952]!, self._r[1952]!, [_0]) + return formatWithArgumentRanges(self._s[1953]!, self._r[1953]!, [_0]) } - public var VoiceChat_StatusMutedForYou: String { return self._s[1953]! } - public var Passport_Language_et: String { return self._s[1954]! } - public var Conversation_MessageLeaveCommentShort: String { return self._s[1955]! } - public var PhotoEditor_CropReset: String { return self._s[1956]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[1957]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[1958]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[1959]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1962]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1964]! } - public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[1965]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[1967]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[1969]! } - public var Map_YouAreHere: String { return self._s[1971]! } - public var Core_ServiceUserStatus: String { return self._s[1972]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1975]! } - public var VoiceChat_StartRecording: String { return self._s[1976]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[1977]! } - public var MediaPicker_Videos: String { return self._s[1979]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[1981]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1982]! } - public var SharedMedia_CategoryMedia: String { return self._s[1983]! } + public var VoiceChat_StatusMutedForYou: String { return self._s[1954]! } + public var Passport_Language_et: String { return self._s[1955]! } + public var Conversation_MessageLeaveCommentShort: String { return self._s[1956]! } + public var PhotoEditor_CropReset: String { return self._s[1957]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[1958]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[1959]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[1960]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1963]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1965]! } + public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[1966]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[1968]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[1970]! } + public var Map_YouAreHere: String { return self._s[1972]! } + public var Core_ServiceUserStatus: String { return self._s[1973]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1976]! } + public var VoiceChat_StartRecording: String { return self._s[1977]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[1978]! } + public var MediaPicker_Videos: String { return self._s[1980]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[1982]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1983]! } + public var SharedMedia_CategoryMedia: String { return self._s[1984]! } public func MediaPicker_Nof(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1984]!, self._r[1984]!, [_0]) + return formatWithArgumentRanges(self._s[1985]!, self._r[1985]!, [_0]) } - public var ChatSettings_AutoPlayGifs: String { return self._s[1985]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[1986]! } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[1987]! } - public var Conversation_JoinVoiceChatAsListener: String { return self._s[1988]! } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1989]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[1986]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[1987]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[1988]! } + public var Conversation_JoinVoiceChatAsListener: String { return self._s[1989]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1990]! } public func Chat_SlowmodeTooltip(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1990]!, self._r[1990]!, [_0]) + return formatWithArgumentRanges(self._s[1991]!, self._r[1991]!, [_0]) } - public var Web_Error: String { return self._s[1991]! } - public var PhotoEditor_SkinTool: String { return self._s[1992]! } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[1993]! } - public var AutoremoveSetup_TimerInfoChat: String { return self._s[1994]! } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[1996]! } - public var PasscodeSettings_Help: String { return self._s[1997]! } - public var Appearance_ColorTheme: String { return self._s[1998]! } + public var Web_Error: String { return self._s[1992]! } + public var PhotoEditor_SkinTool: String { return self._s[1993]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[1994]! } + public var AutoremoveSetup_TimerInfoChat: String { return self._s[1995]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[1997]! } + public var PasscodeSettings_Help: String { return self._s[1998]! } + public var Appearance_ColorTheme: String { return self._s[1999]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1999]!, self._r[1999]!, [_0]) + return formatWithArgumentRanges(self._s[2000]!, self._r[2000]!, [_0]) } - public var InviteLink_DeleteAllRevokedLinks: String { return self._s[2000]! } + public var InviteLink_DeleteAllRevokedLinks: String { return self._s[2001]! } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2001]!, self._r[2001]!, [_1]) + return formatWithArgumentRanges(self._s[2002]!, self._r[2002]!, [_1]) } - public var InviteLink_QRCode_Title: String { return self._s[2002]! } - public var GroupInfo_LeftStatus: String { return self._s[2003]! } - public var EditTheme_Preview: String { return self._s[2004]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[2005]! } + public var InviteLink_QRCode_Title: String { return self._s[2003]! } + public var GroupInfo_LeftStatus: String { return self._s[2004]! } + public var EditTheme_Preview: String { return self._s[2005]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[2006]! } public func AutoDownloadSettings_PreloadVideoInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2006]!, self._r[2006]!, [_0]) + return formatWithArgumentRanges(self._s[2007]!, self._r[2007]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[2007]! } - public var VoiceChat_StatusWantsToSpeak: String { return self._s[2008]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[2009]! } - public var ChatList_Context_MarkAsUnread: String { return self._s[2010]! } - public var DialogList_AdNoticeAlert: String { return self._s[2011]! } - public var UserInfo_Invite: String { return self._s[2012]! } - public var Checkout_Email: String { return self._s[2013]! } - public var Stats_GroupActionsTitle: String { return self._s[2014]! } - public var Coub_TapForSound: String { return self._s[2015]! } - public var Conversation_AutoremoveTimerRemovedUserYou: String { return self._s[2016]! } - public var Theme_ThemeChangedText: String { return self._s[2017]! } - public var Call_ExternalCallInProgressMessage: String { return self._s[2018]! } - public var AutoremoveSetup_TimerInfoChannel: String { return self._s[2019]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[2020]! } - public var ScheduledMessages_ScheduledToday: String { return self._s[2021]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[2022]! } + public var NotificationsSound_Keys: String { return self._s[2008]! } + public var VoiceChat_StatusWantsToSpeak: String { return self._s[2009]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[2010]! } + public var ChatList_Context_MarkAsUnread: String { return self._s[2011]! } + public var DialogList_AdNoticeAlert: String { return self._s[2012]! } + public var UserInfo_Invite: String { return self._s[2013]! } + public var Checkout_Email: String { return self._s[2014]! } + public var Stats_GroupActionsTitle: String { return self._s[2015]! } + public var Coub_TapForSound: String { return self._s[2016]! } + public var Conversation_AutoremoveTimerRemovedUserYou: String { return self._s[2017]! } + public var Theme_ThemeChangedText: String { return self._s[2018]! } + public var Call_ExternalCallInProgressMessage: String { return self._s[2019]! } + public var AutoremoveSetup_TimerInfoChannel: String { return self._s[2020]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[2021]! } + public var ScheduledMessages_ScheduledToday: String { return self._s[2022]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[2023]! } public func VoiceChat_InviteMemberToChannelFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2023]!, self._r[2023]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2024]!, self._r[2024]!, [_1, _2]) } - public var Call_ReportIncludeLogDescription: String { return self._s[2024]! } - public var Settings_FrequentlyAskedQuestions: String { return self._s[2026]! } - public var Call_VoiceOver_VoiceCallMissed: String { return self._s[2027]! } - public var Channel_MessagePhotoRemoved: String { return self._s[2028]! } - public var Passport_Email_Delete: String { return self._s[2029]! } + public var Call_ReportIncludeLogDescription: String { return self._s[2025]! } + public var Settings_FrequentlyAskedQuestions: String { return self._s[2027]! } + public var Call_VoiceOver_VoiceCallMissed: String { return self._s[2028]! } + public var Channel_MessagePhotoRemoved: String { return self._s[2029]! } + public var Passport_Email_Delete: String { return self._s[2030]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2030]!, self._r[2030]!, [_1]) + return formatWithArgumentRanges(self._s[2031]!, self._r[2031]!, [_1]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2031]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2032]! } public func Conversation_AutoremoveTimerRemovedUser(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2032]!, self._r[2032]!, [_1]) + return formatWithArgumentRanges(self._s[2033]!, self._r[2033]!, [_1]) } - public var Channel_AdminLog_CanAddAdmins: String { return self._s[2033]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[2035]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[2036]! } - public var Common_of: String { return self._s[2037]! } - public var VoiceChat_CreateNewVoiceChatText: String { return self._s[2038]! } - public var VoiceChat_StartRecordingStart: String { return self._s[2039]! } - public var PeerInfo_ButtonUnmute: String { return self._s[2042]! } + public var Channel_AdminLog_CanAddAdmins: String { return self._s[2034]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[2036]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[2037]! } + public var Common_of: String { return self._s[2038]! } + public var VoiceChat_CreateNewVoiceChatText: String { return self._s[2039]! } + public var VoiceChat_StartRecordingStart: String { return self._s[2040]! } + public var PeerInfo_ButtonUnmute: String { return self._s[2043]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2043]!, self._r[2043]!, [_0]) + return formatWithArgumentRanges(self._s[2044]!, self._r[2044]!, [_0]) } - public var Privacy_ContactsReset_ContactsDeleted: String { return self._s[2044]! } - public var ChatList_AddChatsToFolder: String { return self._s[2045]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2046]! } - public var Settings_Title: String { return self._s[2048]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2050]! } - public var Appearance_BubbleCornersSetting: String { return self._s[2051]! } - public var InviteLink_OtherAdminsLinks: String { return self._s[2052]! } - public var Privacy_Calls_AlwaysAllow: String { return self._s[2053]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[2055]! } - public var WallpaperPreview_CropBottomText: String { return self._s[2056]! } - public var SecretTimer_VideoDescription: String { return self._s[2057]! } - public var VoiceOver_Chat_AnimatedSticker: String { return self._s[2058]! } - public var WallpaperPreview_Blurred: String { return self._s[2059]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2060]! } - public var ChatListFolder_ExcludedSectionHeader: String { return self._s[2062]! } - public var Conversation_CancelForwardSelectChat: String { return self._s[2063]! } - public var DialogList_PasscodeLockHelp: String { return self._s[2064]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2065]! } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2066]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2067]! } - public var Passport_FieldAddressTranslationHelp: String { return self._s[2068]! } - public var SocksProxySetup_Connection: String { return self._s[2069]! } - public var Passport_Address_TypePassportRegistration: String { return self._s[2070]! } - public var Contacts_PermissionsAllowInSettings: String { return self._s[2071]! } - public var Conversation_Unpin: String { return self._s[2072]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[2073]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[2074]! } - public var Call_ReportSkip: String { return self._s[2075]! } + public var Privacy_ContactsReset_ContactsDeleted: String { return self._s[2045]! } + public var ChatList_AddChatsToFolder: String { return self._s[2046]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2047]! } + public var Settings_Title: String { return self._s[2049]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2051]! } + public var Appearance_BubbleCornersSetting: String { return self._s[2052]! } + public var InviteLink_OtherAdminsLinks: String { return self._s[2053]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[2054]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[2056]! } + public var WallpaperPreview_CropBottomText: String { return self._s[2057]! } + public var SecretTimer_VideoDescription: String { return self._s[2058]! } + public var VoiceOver_Chat_AnimatedSticker: String { return self._s[2059]! } + public var WallpaperPreview_Blurred: String { return self._s[2060]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2061]! } + public var ChatListFolder_ExcludedSectionHeader: String { return self._s[2063]! } + public var Conversation_CancelForwardSelectChat: String { return self._s[2064]! } + public var DialogList_PasscodeLockHelp: String { return self._s[2065]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2066]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2067]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2068]! } + public var Passport_FieldAddressTranslationHelp: String { return self._s[2069]! } + public var SocksProxySetup_Connection: String { return self._s[2070]! } + public var Passport_Address_TypePassportRegistration: String { return self._s[2071]! } + public var Contacts_PermissionsAllowInSettings: String { return self._s[2072]! } + public var Conversation_Unpin: String { return self._s[2073]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[2074]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[2075]! } + public var Call_ReportSkip: String { return self._s[2076]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2076]!, self._r[2076]!, [_0]) + return formatWithArgumentRanges(self._s[2077]!, self._r[2077]!, [_0]) } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2078]!, self._r[2078]!, [_0]) + return formatWithArgumentRanges(self._s[2079]!, self._r[2079]!, [_0]) } - public var AutoNightTheme_Automatic: String { return self._s[2079]! } - public var Passport_Language_az: String { return self._s[2081]! } + public var AutoNightTheme_Automatic: String { return self._s[2080]! } + public var Passport_Language_az: String { return self._s[2082]! } public func Conversation_AutoremoveChanged(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2082]!, self._r[2082]!, [_0]) + return formatWithArgumentRanges(self._s[2083]!, self._r[2083]!, [_0]) } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[2083]! } - public var Watch_UserInfo_Unmute: String { return self._s[2084]! } - public var Channel_Stickers_YourStickers: String { return self._s[2085]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2086]! } - public var PeerInfo_AutoremoveMessagesDisabled: String { return self._s[2087]! } - public var Tour_Text1: String { return self._s[2088]! } - public var Common_Delete: String { return self._s[2089]! } - public var Settings_EditPhoto: String { return self._s[2090]! } - public var Common_Edit: String { return self._s[2091]! } - public var ShareMenu_ShareTo: String { return self._s[2093]! } - public var Passport_Identity_ExpiryDate: String { return self._s[2094]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[2084]! } + public var Watch_UserInfo_Unmute: String { return self._s[2085]! } + public var Channel_Stickers_YourStickers: String { return self._s[2086]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2087]! } + public var PeerInfo_AutoremoveMessagesDisabled: String { return self._s[2088]! } + public var Tour_Text1: String { return self._s[2089]! } + public var Common_Delete: String { return self._s[2090]! } + public var Settings_EditPhoto: String { return self._s[2091]! } + public var Common_Edit: String { return self._s[2092]! } + public var ShareMenu_ShareTo: String { return self._s[2094]! } + public var Passport_Identity_ExpiryDate: String { return self._s[2095]! } public func Channel_AdminLog_MutedNewMembers(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2095]!, self._r[2095]!, [_1]) + return formatWithArgumentRanges(self._s[2096]!, self._r[2096]!, [_1]) } - public var Preview_DeleteGif: String { return self._s[2096]! } - public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2097]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2098]! } - public var Conversation_ViewReply: String { return self._s[2099]! } - public var Stats_LoadingText: String { return self._s[2100]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[2101]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2102]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[2103]! } + public var Preview_DeleteGif: String { return self._s[2097]! } + public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2098]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2099]! } + public var Conversation_ViewReply: String { return self._s[2100]! } + public var Stats_LoadingText: String { return self._s[2101]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[2102]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2103]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[2104]! } public func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2104]!, self._r[2104]!, [_0]) - } - public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2105]!, self._r[2105]!, [_0]) } + public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2106]!, self._r[2106]!, [_0]) + } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2107]!, self._r[2107]!, [_0]) + return formatWithArgumentRanges(self._s[2108]!, self._r[2108]!, [_0]) } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[2108]! } - public var InviteLink_Share: String { return self._s[2110]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[2109]! } + public var InviteLink_Share: String { return self._s[2111]! } public func Conversation_ImportProgress(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2112]!, self._r[2112]!, [_0]) + return formatWithArgumentRanges(self._s[2113]!, self._r[2113]!, [_0]) } - public var IntentsSettings_MainAccount: String { return self._s[2113]! } - public var Group_MessagePhotoRemoved: String { return self._s[2116]! } - public var Conversation_ContextMenuSelect: String { return self._s[2117]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2119]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[2120]! } - public var Contacts_PermissionsEnable: String { return self._s[2121]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[2122]! } - public var Common_NotNow: String { return self._s[2123]! } - public var Notification_CreatedChannel: String { return self._s[2124]! } - public var Stats_ViewsBySourceTitle: String { return self._s[2126]! } - public var InviteLink_ContextShare: String { return self._s[2127]! } - public var Appearance_AppIconClassic: String { return self._s[2128]! } - public var PhotoEditor_QualityTool: String { return self._s[2129]! } - public var ClearCache_ClearCache: String { return self._s[2130]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[2131]! } - public var AutoDownloadSettings_Videos: String { return self._s[2132]! } - public var GroupPermission_Duration: String { return self._s[2133]! } - public var ChatList_Read: String { return self._s[2134]! } + public var IntentsSettings_MainAccount: String { return self._s[2114]! } + public var Group_MessagePhotoRemoved: String { return self._s[2117]! } + public var Conversation_ContextMenuSelect: String { return self._s[2118]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2120]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[2121]! } + public var Contacts_PermissionsEnable: String { return self._s[2122]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[2123]! } + public var Common_NotNow: String { return self._s[2124]! } + public var Notification_CreatedChannel: String { return self._s[2125]! } + public var Stats_ViewsBySourceTitle: String { return self._s[2127]! } + public var InviteLink_ContextShare: String { return self._s[2128]! } + public var Appearance_AppIconClassic: String { return self._s[2129]! } + public var PhotoEditor_QualityTool: String { return self._s[2130]! } + public var ClearCache_ClearCache: String { return self._s[2131]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[2132]! } + public var AutoDownloadSettings_Videos: String { return self._s[2133]! } + public var GroupPermission_Duration: String { return self._s[2134]! } + public var ChatList_Read: String { return self._s[2135]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_1, _2]) } public func ScheduleVoiceChat_ScheduleTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_0]) + return formatWithArgumentRanges(self._s[2137]!, self._r[2137]!, [_0]) } - public var CallFeedback_Send: String { return self._s[2137]! } - public var Channel_Stickers_Searching: String { return self._s[2138]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[2139]! } - public var FastTwoStepSetup_HintSection: String { return self._s[2140]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2141]! } - public var EditTheme_CreateTitle: String { return self._s[2143]! } - public var Application_Name: String { return self._s[2144]! } - public var Paint_Stickers: String { return self._s[2145]! } - public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[2146]! } - public var Call_StatusFailed: String { return self._s[2147]! } - public var Stickers_FavoriteStickers: String { return self._s[2148]! } - public var ClearCache_Clear: String { return self._s[2149]! } - public var Passport_Language_mn: String { return self._s[2150]! } - public var WallpaperPreview_PreviewTopText: String { return self._s[2151]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[2152]! } - public var Call_VoiceOver_VideoCallOutgoing: String { return self._s[2154]! } - public var TwoFactorSetup_Hint_Text: String { return self._s[2156]! } - public var WallpaperPreview_PatternIntensity: String { return self._s[2157]! } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2158]! } - public var Passport_Address_AddBankStatement: String { return self._s[2159]! } + public var CallFeedback_Send: String { return self._s[2138]! } + public var Channel_Stickers_Searching: String { return self._s[2139]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[2140]! } + public var FastTwoStepSetup_HintSection: String { return self._s[2141]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2142]! } + public var EditTheme_CreateTitle: String { return self._s[2144]! } + public var Application_Name: String { return self._s[2145]! } + public var Paint_Stickers: String { return self._s[2146]! } + public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[2147]! } + public var Call_StatusFailed: String { return self._s[2148]! } + public var Stickers_FavoriteStickers: String { return self._s[2149]! } + public var ClearCache_Clear: String { return self._s[2150]! } + public var Passport_Language_mn: String { return self._s[2151]! } + public var WallpaperPreview_PreviewTopText: String { return self._s[2152]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[2153]! } + public var Call_VoiceOver_VideoCallOutgoing: String { return self._s[2155]! } + public var TwoFactorSetup_Hint_Text: String { return self._s[2157]! } + public var WallpaperPreview_PatternIntensity: String { return self._s[2158]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2159]! } + public var Passport_Address_AddBankStatement: String { return self._s[2160]! } public func Conversation_TitleRepliesFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2162]!, self._r[2162]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2163]!, self._r[2163]!, [_1, _2]) } - public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2163]! } - public var UserInfo_ShareContact: String { return self._s[2164]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[2165]! } - public var Channel_ErrorAdminsTooMuch: String { return self._s[2167]! } - public var Call_RateCall: String { return self._s[2168]! } - public var Contacts_AccessDeniedError: String { return self._s[2169]! } - public var Invite_ChannelsTooMuch: String { return self._s[2170]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[2171]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[2172]! } - public var InviteLink_Create_TimeLimitInfo: String { return self._s[2173]! } - public var Cache_NoLimit: String { return self._s[2176]! } - public var Conversation_EmptyPlaceholder: String { return self._s[2177]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2181]! } - public var Notification_Exceptions_MessagePreviewAlwaysOff: String { return self._s[2182]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2183]! } - public var Privacy_PaymentsClear_AllInfoCleared: String { return self._s[2184]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[2185]! } + public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2164]! } + public var UserInfo_ShareContact: String { return self._s[2165]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[2166]! } + public var Channel_ErrorAdminsTooMuch: String { return self._s[2168]! } + public var Call_RateCall: String { return self._s[2169]! } + public var Contacts_AccessDeniedError: String { return self._s[2170]! } + public var Invite_ChannelsTooMuch: String { return self._s[2171]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[2172]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[2173]! } + public var InviteLink_Create_TimeLimitInfo: String { return self._s[2174]! } + public var Cache_NoLimit: String { return self._s[2177]! } + public var Conversation_EmptyPlaceholder: String { return self._s[2178]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2182]! } + public var Notification_Exceptions_MessagePreviewAlwaysOff: String { return self._s[2183]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2184]! } + public var Privacy_PaymentsClear_AllInfoCleared: String { return self._s[2185]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[2186]! } public func PUSH_VIDEO_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2186]!, self._r[2186]!, [_1]) + return formatWithArgumentRanges(self._s[2187]!, self._r[2187]!, [_1]) } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2187]! } - public var Theme_ThemeChanged: String { return self._s[2188]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2190]! } - public var AutoDownloadSettings_MediaTypes: String { return self._s[2191]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2188]! } + public var Theme_ThemeChanged: String { return self._s[2189]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2191]! } + public var AutoDownloadSettings_MediaTypes: String { return self._s[2192]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2192]!, self._r[2192]!, [_0]) + return formatWithArgumentRanges(self._s[2193]!, self._r[2193]!, [_0]) } - public var Channel_AdminLog_InfoPanelTitle: String { return self._s[2193]! } - public var Passport_Language_da: String { return self._s[2195]! } - public var Chat_SlowmodeSendError: String { return self._s[2196]! } - public var Application_Update: String { return self._s[2198]! } - public var SocksProxySetup_SaveProxy: String { return self._s[2199]! } + public var Channel_AdminLog_InfoPanelTitle: String { return self._s[2194]! } + public var Passport_Language_da: String { return self._s[2196]! } + public var Chat_SlowmodeSendError: String { return self._s[2197]! } + public var Application_Update: String { return self._s[2199]! } + public var SocksProxySetup_SaveProxy: String { return self._s[2200]! } public func PUSH_AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2200]!, self._r[2200]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2201]!, self._r[2201]!, [_1, _2]) } - public var Privacy_AddNewPeer: String { return self._s[2202]! } - public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[2204]! } - public var Channel_Members_Title: String { return self._s[2205]! } - public var StickerPacks_ActionDelete: String { return self._s[2206]! } - public var Conversation_ScheduledVoiceChat: String { return self._s[2207]! } - public var Settings_LogoutConfirmationText: String { return self._s[2209]! } - public var Chat_UnsendMyMessages: String { return self._s[2210]! } - public var PeerInfo_ReportProfilePhoto: String { return self._s[2211]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2213]! } - public var ChatListFilter_AddChatsTitle: String { return self._s[2214]! } - public var Passport_FloodError: String { return self._s[2215]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[2216]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2217]! } - public var CallSettings_TabIconDescription: String { return self._s[2218]! } - public var Group_Setup_HistoryHeader: String { return self._s[2220]! } + public var Privacy_AddNewPeer: String { return self._s[2203]! } + public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[2205]! } + public var Channel_Members_Title: String { return self._s[2206]! } + public var StickerPacks_ActionDelete: String { return self._s[2207]! } + public var Conversation_ScheduledVoiceChat: String { return self._s[2208]! } + public var Settings_LogoutConfirmationText: String { return self._s[2210]! } + public var Chat_UnsendMyMessages: String { return self._s[2211]! } + public var PeerInfo_ReportProfilePhoto: String { return self._s[2212]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2214]! } + public var ChatListFilter_AddChatsTitle: String { return self._s[2215]! } + public var Passport_FloodError: String { return self._s[2216]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[2217]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2218]! } + public var CallSettings_TabIconDescription: String { return self._s[2219]! } + public var Group_Setup_HistoryHeader: String { return self._s[2221]! } public func Channel_AdminLog_AllowedNewMembersToSpeak(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2221]!, self._r[2221]!, [_1]) + return formatWithArgumentRanges(self._s[2222]!, self._r[2222]!, [_1]) } - public var TwoStepAuth_EmailTitle: String { return self._s[2222]! } - public var GroupInfo_Permissions_Removed: String { return self._s[2223]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[2224]! } - public var Contacts_Title: String { return self._s[2226]! } + public var TwoStepAuth_EmailTitle: String { return self._s[2223]! } + public var GroupInfo_Permissions_Removed: String { return self._s[2224]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[2225]! } + public var Contacts_Title: String { return self._s[2227]! } public func Notification_Invited(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2227]!, self._r[2227]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2228]!, self._r[2228]!, [_0, _1]) } - public var ChatList_PeerTypeBot: String { return self._s[2230]! } + public var ChatList_PeerTypeBot: String { return self._s[2231]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2231]!, self._r[2231]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2232]!, self._r[2232]!, [_1, _2]) } - public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[2232]! } + public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[2233]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2233]!, self._r[2233]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2234]!, self._r[2234]!, [_1, _2, _3]) } - public var Camera_PhotoMode: String { return self._s[2235]! } + public var Camera_PhotoMode: String { return self._s[2236]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2236]!, self._r[2236]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2237]!, self._r[2237]!, [_1, _2, _3]) } - public var ContactInfo_PhoneLabelPager: String { return self._s[2237]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[2238]! } - public var Call_CallAgain: String { return self._s[2239]! } - public var TwoStepAuth_PasswordSet: String { return self._s[2240]! } - public var VoiceChat_EditDescriptionPlaceholder: String { return self._s[2241]! } + public var ContactInfo_PhoneLabelPager: String { return self._s[2238]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[2239]! } + public var Call_CallAgain: String { return self._s[2240]! } + public var TwoStepAuth_PasswordSet: String { return self._s[2241]! } + public var VoiceChat_EditDescriptionPlaceholder: String { return self._s[2242]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2242]!, self._r[2242]!, [_0]) + return formatWithArgumentRanges(self._s[2243]!, self._r[2243]!, [_0]) } - public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[2243]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2244]! } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2245]! } - public var Group_LeaveGroup: String { return self._s[2246]! } - public var Channel_Setup_LinkTypePrivate: String { return self._s[2248]! } - public var GroupInfo_LabelAdmin: String { return self._s[2250]! } - public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2252]! } - public var Notification_PassportValuePersonalDetails: String { return self._s[2253]! } + public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[2244]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2245]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2246]! } + public var Group_LeaveGroup: String { return self._s[2247]! } + public var Channel_Setup_LinkTypePrivate: String { return self._s[2249]! } + public var GroupInfo_LabelAdmin: String { return self._s[2251]! } + public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2253]! } + public var Notification_PassportValuePersonalDetails: String { return self._s[2254]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2254]!, self._r[2254]!, [_0]) + return formatWithArgumentRanges(self._s[2255]!, self._r[2255]!, [_0]) } - public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2255]! } - public var Appearance_Preview: String { return self._s[2256]! } - public var VoiceOver_Chat_Contact: String { return self._s[2257]! } - public var Passport_Language_th: String { return self._s[2258]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2260]! } - public var LastSeen_Offline: String { return self._s[2263]! } - public var Map_OpenInHereMaps: String { return self._s[2264]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[2265]! } - public var InviteLink_ContextEdit: String { return self._s[2267]! } - public var AutoDownloadSettings_Reset: String { return self._s[2268]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[2269]! } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[2270]! } + public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2256]! } + public var Appearance_Preview: String { return self._s[2257]! } + public var VoiceOver_Chat_Contact: String { return self._s[2258]! } + public var Passport_Language_th: String { return self._s[2259]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2261]! } + public var LastSeen_Offline: String { return self._s[2264]! } + public var Map_OpenInHereMaps: String { return self._s[2265]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[2266]! } + public var InviteLink_ContextEdit: String { return self._s[2268]! } + public var AutoDownloadSettings_Reset: String { return self._s[2269]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[2270]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[2271]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2271]!, self._r[2271]!, [_0]) - } - public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2272]!, self._r[2272]!, [_0]) } - public var Passport_Identity_EditDriversLicense: String { return self._s[2273]! } - public var ChatListFolder_NameNonMuted: String { return self._s[2274]! } - public var Username_Placeholder: String { return self._s[2275]! } + public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2273]!, self._r[2273]!, [_0]) + } + public var Passport_Identity_EditDriversLicense: String { return self._s[2274]! } + public var ChatListFolder_NameNonMuted: String { return self._s[2275]! } + public var Username_Placeholder: String { return self._s[2276]! } public func PUSH_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2276]!, self._r[2276]!, [_1]) + return formatWithArgumentRanges(self._s[2277]!, self._r[2277]!, [_1]) } - public var Passport_Language_it: String { return self._s[2277]! } - public var Checkout_NewCard_SaveInfo: String { return self._s[2278]! } + public var Passport_Language_it: String { return self._s[2278]! } + public var Checkout_NewCard_SaveInfo: String { return self._s[2279]! } public func Channel_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2279]!, self._r[2279]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2280]!, self._r[2280]!, [_1, _2]) } - public var NotificationsSound_Pulse: String { return self._s[2280]! } - public var VoiceOver_DismissContextMenu: String { return self._s[2282]! } - public var MessagePoll_NoVotes: String { return self._s[2285]! } - public var Message_Wallpaper: String { return self._s[2286]! } - public var Conversation_JoinVoiceChat: String { return self._s[2287]! } - public var Appearance_Other: String { return self._s[2288]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[2290]! } - public var Group_PublicLink_Placeholder: String { return self._s[2294]! } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[2295]! } - public var VoiceOver_Recording_StopAndPreview: String { return self._s[2296]! } - public var ChatListFolder_NameBots: String { return self._s[2297]! } - public var Conversation_StopPollConfirmation: String { return self._s[2298]! } - public var UserInfo_DeleteContact: String { return self._s[2299]! } + public var NotificationsSound_Pulse: String { return self._s[2281]! } + public var VoiceOver_DismissContextMenu: String { return self._s[2283]! } + public var MessagePoll_NoVotes: String { return self._s[2286]! } + public var Message_Wallpaper: String { return self._s[2287]! } + public var Conversation_JoinVoiceChat: String { return self._s[2288]! } + public var Appearance_Other: String { return self._s[2289]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[2291]! } + public var Group_PublicLink_Placeholder: String { return self._s[2295]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[2296]! } + public var VoiceOver_Recording_StopAndPreview: String { return self._s[2297]! } + public var ChatListFolder_NameBots: String { return self._s[2298]! } + public var Conversation_StopPollConfirmation: String { return self._s[2299]! } + public var UserInfo_DeleteContact: String { return self._s[2300]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2300]!, self._r[2300]!, [_0]) + return formatWithArgumentRanges(self._s[2301]!, self._r[2301]!, [_0]) } - public var Wallpaper_Wallpaper: String { return self._s[2302]! } + public var Wallpaper_Wallpaper: String { return self._s[2303]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2303]!, self._r[2303]!, [_1]) + return formatWithArgumentRanges(self._s[2304]!, self._r[2304]!, [_1]) } - public var LoginPassword_ForgotPassword: String { return self._s[2304]! } - public var FeaturedStickerPacks_Title: String { return self._s[2305]! } - public var Paint_Pen: String { return self._s[2306]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2307]! } - public var ChatListFolderSettings_Info: String { return self._s[2308]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2309]! } - public var PhotoEditor_CurvesAll: String { return self._s[2311]! } + public var LoginPassword_ForgotPassword: String { return self._s[2305]! } + public var FeaturedStickerPacks_Title: String { return self._s[2306]! } + public var Paint_Pen: String { return self._s[2307]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2308]! } + public var ChatListFolderSettings_Info: String { return self._s[2309]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2310]! } + public var PhotoEditor_CurvesAll: String { return self._s[2312]! } public func Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2313]!, self._r[2313]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2314]!, self._r[2314]!, [_1, _2, _3]) } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2315]! } - public var Message_ImageExpired: String { return self._s[2316]! } - public var Call_ConnectionErrorMessage: String { return self._s[2317]! } - public var SearchImages_NoImagesFound: String { return self._s[2319]! } - public var PeerInfo_PaneGifs: String { return self._s[2320]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2321]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2322]! } - public var PhotoEditor_VignetteTool: String { return self._s[2323]! } - public var Passport_Language_dz: String { return self._s[2324]! } - public var Notifications_ChannelNotificationsHelp: String { return self._s[2325]! } - public var Conversation_BlockUser: String { return self._s[2326]! } - public var GroupPermission_PermissionDisabledByDefault: String { return self._s[2329]! } - public var TwoStepAuth_CancelResetText: String { return self._s[2331]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2332]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2316]! } + public var Message_ImageExpired: String { return self._s[2317]! } + public var Call_ConnectionErrorMessage: String { return self._s[2318]! } + public var SearchImages_NoImagesFound: String { return self._s[2320]! } + public var PeerInfo_PaneGifs: String { return self._s[2321]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2322]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2323]! } + public var PhotoEditor_VignetteTool: String { return self._s[2324]! } + public var Passport_Language_dz: String { return self._s[2325]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[2326]! } + public var Conversation_BlockUser: String { return self._s[2327]! } + public var GroupPermission_PermissionDisabledByDefault: String { return self._s[2330]! } + public var TwoStepAuth_CancelResetText: String { return self._s[2332]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2333]! } public func Time_MonthOfYear_m8(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2333]!, self._r[2333]!, [_0]) + return formatWithArgumentRanges(self._s[2334]!, self._r[2334]!, [_0]) } - public var KeyCommand_NewMessage: String { return self._s[2334]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2337]! } + public var KeyCommand_NewMessage: String { return self._s[2335]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2338]! } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2339]!, self._r[2339]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2340]!, self._r[2340]!, [_1, _2]) } - public var ContactList_Context_StartSecretChat: String { return self._s[2340]! } - public var VoiceOver_Chat_File: String { return self._s[2341]! } - public var ChatList_EditFolder: String { return self._s[2343]! } - public var Appearance_BubbleCorners_Title: String { return self._s[2344]! } - public var PeerInfo_PaneAudio: String { return self._s[2345]! } - public var ChatListFolder_CategoryContacts: String { return self._s[2347]! } - public var VoiceOver_ScheduledMessages: String { return self._s[2348]! } + public var ContactList_Context_StartSecretChat: String { return self._s[2341]! } + public var VoiceOver_Chat_File: String { return self._s[2342]! } + public var ChatList_EditFolder: String { return self._s[2344]! } + public var Appearance_BubbleCorners_Title: String { return self._s[2345]! } + public var PeerInfo_PaneAudio: String { return self._s[2346]! } + public var ChatListFolder_CategoryContacts: String { return self._s[2348]! } + public var VoiceOver_ScheduledMessages: String { return self._s[2349]! } public func Login_InvalidPhoneEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2349]!, self._r[2349]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[2350]!, self._r[2350]!, [_1, _2, _3, _4, _5]) } - public var ChatList_PeerTypeChannel: String { return self._s[2350]! } - public var VoiceOver_Navigation_Search: String { return self._s[2351]! } - public var Settings_Search: String { return self._s[2352]! } - public var WallpaperSearch_ColorYellow: String { return self._s[2353]! } - public var Login_PhoneBannedError: String { return self._s[2354]! } - public var KeyCommand_JumpToNextChat: String { return self._s[2355]! } - public var Passport_Language_fa: String { return self._s[2356]! } - public var Settings_About: String { return self._s[2357]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[2358]! } - public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[2359]! } - public var AutoDownloadSettings_DataUsageHigh: String { return self._s[2360]! } + public var ChatList_PeerTypeChannel: String { return self._s[2351]! } + public var VoiceOver_Navigation_Search: String { return self._s[2352]! } + public var Settings_Search: String { return self._s[2353]! } + public var WallpaperSearch_ColorYellow: String { return self._s[2354]! } + public var Login_PhoneBannedError: String { return self._s[2355]! } + public var KeyCommand_JumpToNextChat: String { return self._s[2356]! } + public var Passport_Language_fa: String { return self._s[2357]! } + public var Settings_About: String { return self._s[2358]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[2359]! } + public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[2360]! } + public var AutoDownloadSettings_DataUsageHigh: String { return self._s[2361]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2361]!, self._r[2361]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2362]!, self._r[2362]!, [_1, _2, _3]) } - public var Common_OK: String { return self._s[2362]! } - public var Contacts_SortBy: String { return self._s[2363]! } - public var ImportStickerPack_LinkTaken: String { return self._s[2364]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[2365]! } + public var Common_OK: String { return self._s[2363]! } + public var Contacts_SortBy: String { return self._s[2364]! } + public var ImportStickerPack_LinkTaken: String { return self._s[2365]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[2366]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2367]!, self._r[2367]!, [_0]) + return formatWithArgumentRanges(self._s[2368]!, self._r[2368]!, [_0]) } - public var CallFeedback_IncludeLogs: String { return self._s[2370]! } + public var CallFeedback_IncludeLogs: String { return self._s[2371]! } public func External_OpenIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2371]!, self._r[2371]!, [_0]) + return formatWithArgumentRanges(self._s[2372]!, self._r[2372]!, [_0]) } - public var ImportStickerPack_ChooseLink: String { return self._s[2373]! } - public var Passcode_AppLockedAlert: String { return self._s[2374]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2375]! } - public var Channel_NotificationLoading: String { return self._s[2377]! } - public var Passport_Identity_DocumentNumber: String { return self._s[2378]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2379]! } - public var VoiceOver_Chat_OpenHint: String { return self._s[2380]! } - public var Weekday_ShortFriday: String { return self._s[2381]! } - public var Conversation_TitleMute: String { return self._s[2382]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2383]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[2384]! } - public var DialogList_LanguageTooltip: String { return self._s[2386]! } - public var BroadcastGroups_IntroTitle: String { return self._s[2387]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[2388]! } + public var ImportStickerPack_ChooseLink: String { return self._s[2374]! } + public var Passcode_AppLockedAlert: String { return self._s[2375]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2376]! } + public var Channel_NotificationLoading: String { return self._s[2378]! } + public var Passport_Identity_DocumentNumber: String { return self._s[2379]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2380]! } + public var VoiceOver_Chat_OpenHint: String { return self._s[2381]! } + public var Weekday_ShortFriday: String { return self._s[2382]! } + public var Conversation_TitleMute: String { return self._s[2383]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2384]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[2385]! } + public var DialogList_LanguageTooltip: String { return self._s[2387]! } + public var BroadcastGroups_IntroTitle: String { return self._s[2388]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[2389]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2389]!, self._r[2389]!, [_0]) + return formatWithArgumentRanges(self._s[2390]!, self._r[2390]!, [_0]) } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[2391]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[2392]! } - public var Settings_EditVideo: String { return self._s[2393]! } - public var VoiceOver_Common_Off: String { return self._s[2394]! } - public var Stickers_FrequentlyUsed: String { return self._s[2395]! } - public var GroupPermission_Title: String { return self._s[2396]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[2397]! } - public var Appearance_ThemeCarouselDay: String { return self._s[2398]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[2392]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[2393]! } + public var Settings_EditVideo: String { return self._s[2394]! } + public var VoiceOver_Common_Off: String { return self._s[2395]! } + public var Stickers_FrequentlyUsed: String { return self._s[2396]! } + public var GroupPermission_Title: String { return self._s[2397]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[2398]! } + public var Appearance_ThemeCarouselDay: String { return self._s[2399]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2399]!, self._r[2399]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2400]!, self._r[2400]!, [_1, _2]) } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2400]! } - public var Tour_Title6: String { return self._s[2401]! } - public var EmptyGroupInfo_Title: String { return self._s[2402]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2401]! } + public var Tour_Title6: String { return self._s[2402]! } + public var EmptyGroupInfo_Title: String { return self._s[2403]! } public func Channel_AdminLog_MessageToggleSignaturesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2403]!, self._r[2403]!, [_0]) + return formatWithArgumentRanges(self._s[2404]!, self._r[2404]!, [_0]) } - public var Passport_Language_sk: String { return self._s[2404]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[2405]! } - public var Preview_SaveToCameraRoll: String { return self._s[2406]! } + public var Passport_Language_sk: String { return self._s[2405]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[2406]! } + public var Preview_SaveToCameraRoll: String { return self._s[2407]! } public func VoiceChat_YouCanNowSpeakIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2407]!, self._r[2407]!, [_0]) + return formatWithArgumentRanges(self._s[2408]!, self._r[2408]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[2408]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2409]! } - public var Conversation_ContextMenuMore: String { return self._s[2410]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2411]! } - public var Channel_AdminLog_CanBeAnonymous: String { return self._s[2412]! } - public var CallFeedback_ReasonSilentLocal: String { return self._s[2414]! } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[2409]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2410]! } + public var Conversation_ContextMenuMore: String { return self._s[2411]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2412]! } + public var Channel_AdminLog_CanBeAnonymous: String { return self._s[2413]! } + public var CallFeedback_ReasonSilentLocal: String { return self._s[2415]! } public func Channel_AdminLog_UnmutedMutedParticipant(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2415]!, self._r[2415]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2416]!, self._r[2416]!, [_1, _2]) } - public var UserInfo_NotificationsDisable: String { return self._s[2416]! } + public var UserInfo_NotificationsDisable: String { return self._s[2417]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2418]!, self._r[2418]!, [_0]) + return formatWithArgumentRanges(self._s[2419]!, self._r[2419]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2419]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2420]! } public func Date_ChatDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2421]!, self._r[2421]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2422]!, self._r[2422]!, [_1, _2]) } - public var WallpaperSearch_ColorPrefix: String { return self._s[2422]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2423]! } public func Message_ForwardedPsa_covid(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2423]!, self._r[2423]!, [_0]) + return formatWithArgumentRanges(self._s[2424]!, self._r[2424]!, [_0]) } - public var VoiceChat_NoiseSuppressionDisabled: String { return self._s[2425]! } - public var Conversation_RestrictedMedia: String { return self._s[2426]! } - public var Group_MessageVideoUpdated: String { return self._s[2427]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2428]! } - public var GroupInfo_DeleteAndExit: String { return self._s[2429]! } - public var TwoFactorSetup_Email_Action: String { return self._s[2430]! } - public var Media_ShareThisVideo: String { return self._s[2432]! } - public var DialogList_Replies: String { return self._s[2434]! } + public var VoiceChat_NoiseSuppressionDisabled: String { return self._s[2426]! } + public var Conversation_RestrictedMedia: String { return self._s[2427]! } + public var Group_MessageVideoUpdated: String { return self._s[2428]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2429]! } + public var GroupInfo_DeleteAndExit: String { return self._s[2430]! } + public var TwoFactorSetup_Email_Action: String { return self._s[2431]! } + public var Media_ShareThisVideo: String { return self._s[2433]! } + public var DialogList_Replies: String { return self._s[2435]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2435]!, self._r[2435]!, [_0]) + return formatWithArgumentRanges(self._s[2436]!, self._r[2436]!, [_0]) } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2436]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[2437]! } - public var ImportStickerPack_ImportingStickers: String { return self._s[2438]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2439]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2437]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[2438]! } + public var ImportStickerPack_ImportingStickers: String { return self._s[2439]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2440]! } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2440]!, self._r[2440]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2441]!, self._r[2441]!, [_1, _2]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2441]!, self._r[2441]!, [_0]) + return formatWithArgumentRanges(self._s[2442]!, self._r[2442]!, [_0]) } - public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[2442]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2443]! } - public var ChatList_Search_NoResultsFitlerMedia: String { return self._s[2444]! } - public var Channel_Members_InviteLink: String { return self._s[2445]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[2446]! } - public var WatchRemote_AlertText: String { return self._s[2447]! } + public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[2443]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2444]! } + public var ChatList_Search_NoResultsFitlerMedia: String { return self._s[2445]! } + public var Channel_Members_InviteLink: String { return self._s[2446]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[2447]! } + public var WatchRemote_AlertText: String { return self._s[2448]! } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2448]!, self._r[2448]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2449]!, self._r[2449]!, [_1, _2]) } - public var Conversation_Pin: String { return self._s[2449]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2450]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2451]! } - public var Conversation_CancelForwardTitle: String { return self._s[2452]! } + public var Conversation_Pin: String { return self._s[2450]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2451]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2452]! } + public var Conversation_CancelForwardTitle: String { return self._s[2453]! } public func Notification_PinnedPollMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2453]!, self._r[2453]!, [_0]) + return formatWithArgumentRanges(self._s[2454]!, self._r[2454]!, [_0]) } - public var Appearance_AppIconFilled: String { return self._s[2454]! } - public var StickerPack_ErrorNotFound: String { return self._s[2455]! } + public var Appearance_AppIconFilled: String { return self._s[2455]! } + public var StickerPack_ErrorNotFound: String { return self._s[2456]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2456]!, self._r[2456]!, [_1]) + return formatWithArgumentRanges(self._s[2457]!, self._r[2457]!, [_1]) } - public var Passport_Identity_AddIdentityCard: String { return self._s[2457]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[2458]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2459]!, self._r[2459]!, [_1]) + return formatWithArgumentRanges(self._s[2460]!, self._r[2460]!, [_1]) } - public var Call_Camera: String { return self._s[2460]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2461]! } - public var Group_Location_Info: String { return self._s[2462]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[2463]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[2464]! } + public var Call_Camera: String { return self._s[2461]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2462]! } + public var Group_Location_Info: String { return self._s[2463]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[2464]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[2465]! } public func DialogList_PinLimitError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2465]!, self._r[2465]!, [_0]) + return formatWithArgumentRanges(self._s[2466]!, self._r[2466]!, [_0]) } - public var Weekday_Yesterday: String { return self._s[2466]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[2467]! } - public var InviteLink_Create_UsersLimit: String { return self._s[2468]! } + public var Weekday_Yesterday: String { return self._s[2467]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[2468]! } + public var InviteLink_Create_UsersLimit: String { return self._s[2469]! } public func Notification_VoiceChatScheduledTodayChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2469]!, self._r[2469]!, [_0]) + return formatWithArgumentRanges(self._s[2470]!, self._r[2470]!, [_0]) } - public var ArchivedPacksAlert_Title: String { return self._s[2470]! } - public var PeerInfo_PaneMembers: String { return self._s[2471]! } - public var PhotoEditor_SelectCoverFrame: String { return self._s[2472]! } + public var ArchivedPacksAlert_Title: String { return self._s[2471]! } + public var PeerInfo_PaneMembers: String { return self._s[2472]! } + public var PhotoEditor_SelectCoverFrame: String { return self._s[2473]! } public func Location_ProximityAlertSetTextGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2473]!, self._r[2473]!, [_0]) + return formatWithArgumentRanges(self._s[2474]!, self._r[2474]!, [_0]) } - public var ContactInfo_PhoneLabelMain: String { return self._s[2474]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[2475]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2475]!, self._r[2475]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2476]!, self._r[2476]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[2476]! } - public var Channel_DiscussionGroup: String { return self._s[2477]! } - public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[2478]! } - public var InviteLink_Create_TimeLimit: String { return self._s[2480]! } - public var Channel_EditAdmin_PermissionsHeader: String { return self._s[2481]! } - public var VoiceOver_MessageContextForward: String { return self._s[2482]! } - public var SocksProxySetup_TypeNone: String { return self._s[2483]! } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[2485]! } - public var ProfilePhoto_OpenInEditor: String { return self._s[2487]! } - public var WallpaperSearch_ColorPurple: String { return self._s[2488]! } - public var ChatListFolder_IncludeChatsTitle: String { return self._s[2489]! } - public var Group_Username_InvalidTooShort: String { return self._s[2490]! } - public var Location_ProximityNotification_DistanceM: String { return self._s[2491]! } - public var VoiceChat_EditTitleText: String { return self._s[2492]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[2477]! } + public var Channel_DiscussionGroup: String { return self._s[2478]! } + public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[2479]! } + public var InviteLink_Create_TimeLimit: String { return self._s[2481]! } + public var Channel_EditAdmin_PermissionsHeader: String { return self._s[2482]! } + public var VoiceOver_MessageContextForward: String { return self._s[2483]! } + public var SocksProxySetup_TypeNone: String { return self._s[2484]! } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[2486]! } + public var ProfilePhoto_OpenInEditor: String { return self._s[2488]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2489]! } + public var ChatListFolder_IncludeChatsTitle: String { return self._s[2490]! } + public var Group_Username_InvalidTooShort: String { return self._s[2491]! } + public var Location_ProximityNotification_DistanceM: String { return self._s[2492]! } + public var VoiceChat_EditTitleText: String { return self._s[2493]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2493]!, self._r[2493]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2494]!, self._r[2494]!, [_0, _1, _2]) } - public var Passport_Language_tk: String { return self._s[2494]! } - public var ConvertToSupergroup_Title: String { return self._s[2495]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[2496]! } - public var Cache_KeepMediaHelp: String { return self._s[2497]! } - public var Channel_Management_Title: String { return self._s[2498]! } + public var Passport_Language_tk: String { return self._s[2495]! } + public var ConvertToSupergroup_Title: String { return self._s[2496]! } + public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[2497]! } + public var Cache_KeepMediaHelp: String { return self._s[2498]! } + public var Channel_Management_Title: String { return self._s[2499]! } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2499]!, self._r[2499]!, [_1]) + return formatWithArgumentRanges(self._s[2500]!, self._r[2500]!, [_1]) } - public var Conversation_ForwardChats: String { return self._s[2500]! } - public var Passport_Language_bg: String { return self._s[2501]! } - public var SocksProxySetup_TypeSocks: String { return self._s[2502]! } - public var Permissions_PrivacyPolicy: String { return self._s[2503]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2504]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2505]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2506]! } - public var Conversation_ContextMenuOpenChannel: String { return self._s[2507]! } - public var Report_AdditionalDetailsPlaceholder: String { return self._s[2508]! } - public var Activity_UploadingVideo: String { return self._s[2509]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[2511]! } - public var Widget_LongTapToEdit: String { return self._s[2512]! } - public var VoiceChat_InviteLink_Listener: String { return self._s[2514]! } - public var SocksProxySetup_Credentials: String { return self._s[2515]! } - public var Preview_SaveGif: String { return self._s[2516]! } - public var Cache_Photos: String { return self._s[2517]! } - public var Channel_AdminLogFilter_EventsCalls: String { return self._s[2518]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[2519]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[2520]! } + public var Conversation_ForwardChats: String { return self._s[2501]! } + public var Passport_Language_bg: String { return self._s[2502]! } + public var SocksProxySetup_TypeSocks: String { return self._s[2503]! } + public var Permissions_PrivacyPolicy: String { return self._s[2504]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2505]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2506]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2507]! } + public var Conversation_ContextMenuOpenChannel: String { return self._s[2508]! } + public var Report_AdditionalDetailsPlaceholder: String { return self._s[2509]! } + public var Activity_UploadingVideo: String { return self._s[2510]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[2512]! } + public var Widget_LongTapToEdit: String { return self._s[2513]! } + public var VoiceChat_InviteLink_Listener: String { return self._s[2515]! } + public var SocksProxySetup_Credentials: String { return self._s[2516]! } + public var Preview_SaveGif: String { return self._s[2517]! } + public var Cache_Photos: String { return self._s[2518]! } + public var Channel_AdminLogFilter_EventsCalls: String { return self._s[2519]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[2520]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[2521]! } public func VoiceChat_RemoveAndBanPeerConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2521]!, self._r[2521]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2522]!, self._r[2522]!, [_1, _2]) } - public var Passport_Language_lt: String { return self._s[2522]! } - public var Passport_DeleteDocument: String { return self._s[2524]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2525]! } + public var Passport_Language_lt: String { return self._s[2523]! } + public var Passport_DeleteDocument: String { return self._s[2525]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2526]! } public func Location_ProximityNotification_NotifyLong(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2526]!, self._r[2526]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2527]!, self._r[2527]!, [_1, _2]) } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[2527]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[2528]! } public func PeopleNearby_VisibleUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2528]!, self._r[2528]!, [_0]) + return formatWithArgumentRanges(self._s[2529]!, self._r[2529]!, [_0]) } - public var AccessDenied_VideoCallCamera: String { return self._s[2529]! } + public var AccessDenied_VideoCallCamera: String { return self._s[2530]! } public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2530]!, self._r[2530]!, [_0]) + return formatWithArgumentRanges(self._s[2531]!, self._r[2531]!, [_0]) } - public var PhotoEditor_SharpenTool: String { return self._s[2531]! } + public var PhotoEditor_SharpenTool: String { return self._s[2532]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2532]!, self._r[2532]!, [_1]) + return formatWithArgumentRanges(self._s[2533]!, self._r[2533]!, [_1]) } - public var DialogList_Unpin: String { return self._s[2533]! } - public var Stickers_NoStickersFound: String { return self._s[2534]! } - public var UserInfo_AddContact: String { return self._s[2536]! } + public var DialogList_Unpin: String { return self._s[2534]! } + public var Stickers_NoStickersFound: String { return self._s[2535]! } + public var UserInfo_AddContact: String { return self._s[2537]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2538]!, self._r[2538]!, [_0]) - } - public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2539]!, self._r[2539]!, [_0]) } - public var CallFeedback_VideoReasonDistorted: String { return self._s[2540]! } - public var Tour_Text2: String { return self._s[2541]! } + public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2540]!, self._r[2540]!, [_0]) + } + public var CallFeedback_VideoReasonDistorted: String { return self._s[2541]! } + public var Tour_Text2: String { return self._s[2542]! } public func Conversation_TitleCommentsFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2543]!, self._r[2543]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2544]!, self._r[2544]!, [_1, _2]) } - public var InviteLink_DeleteAllRevokedLinksAlert_Text: String { return self._s[2545]! } - public var Paint_Delete: String { return self._s[2546]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Text: String { return self._s[2546]! } + public var Paint_Delete: String { return self._s[2547]! } public func Call_VoiceChatInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2547]!, self._r[2547]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2548]!, self._r[2548]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2548]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2549]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2550]!, self._r[2550]!, [_0]) + return formatWithArgumentRanges(self._s[2551]!, self._r[2551]!, [_0]) } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[2551]! } - public var Notification_CallOutgoingShort: String { return self._s[2552]! } - public var Checkout_PasswordEntry_Title: String { return self._s[2553]! } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[2554]! } - public var Notification_MessageLifetime1m: String { return self._s[2555]! } - public var BlockedUsers_AddNew: String { return self._s[2557]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2558]! } - public var Settings_SaveEditedPhotos: String { return self._s[2559]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[2560]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[2552]! } + public var Notification_CallOutgoingShort: String { return self._s[2553]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2554]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[2555]! } + public var Notification_MessageLifetime1m: String { return self._s[2556]! } + public var BlockedUsers_AddNew: String { return self._s[2558]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2559]! } + public var Settings_SaveEditedPhotos: String { return self._s[2560]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[2561]! } public func ImportStickerPack_Of(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2561]!, self._r[2561]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2562]!, self._r[2562]!, [_1, _2]) } - public var Channel_AboutItem: String { return self._s[2562]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[2563]! } - public var Privacy_Calls_P2PNever: String { return self._s[2565]! } - public var Passport_Language_uk: String { return self._s[2566]! } - public var NetworkUsageSettings_Wifi: String { return self._s[2567]! } - public var Conversation_Moderate_Report: String { return self._s[2568]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2569]! } - public var VoiceOver_Chat_SeenByRecipients: String { return self._s[2570]! } - public var Permissions_SiriText_v0: String { return self._s[2571]! } - public var Theme_Colors_Background: String { return self._s[2572]! } - public var Notification_CallMissed: String { return self._s[2573]! } - public var Stats_ZoomOut: String { return self._s[2574]! } - public var Profile_AddToExisting: String { return self._s[2575]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2578]! } - public var VoiceChat_RemovePeerRemove: String { return self._s[2579]! } - public var Undo_DeletedChannel: String { return self._s[2580]! } + public var Channel_AboutItem: String { return self._s[2563]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[2564]! } + public var Privacy_Calls_P2PNever: String { return self._s[2566]! } + public var Passport_Language_uk: String { return self._s[2567]! } + public var NetworkUsageSettings_Wifi: String { return self._s[2568]! } + public var Conversation_Moderate_Report: String { return self._s[2569]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2570]! } + public var VoiceOver_Chat_SeenByRecipients: String { return self._s[2571]! } + public var Permissions_SiriText_v0: String { return self._s[2572]! } + public var Theme_Colors_Background: String { return self._s[2573]! } + public var Notification_CallMissed: String { return self._s[2574]! } + public var Stats_ZoomOut: String { return self._s[2575]! } + public var Profile_AddToExisting: String { return self._s[2576]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2579]! } + public var VoiceChat_RemovePeerRemove: String { return self._s[2580]! } + public var Undo_DeletedChannel: String { return self._s[2581]! } public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2581]!, self._r[2581]!, [_0]) + return formatWithArgumentRanges(self._s[2582]!, self._r[2582]!, [_0]) } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2582]! } - public var Map_LiveLocationGroupDescription: String { return self._s[2583]! } - public var Passport_InfoFAQ_URL: String { return self._s[2584]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2587]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2583]! } + public var Map_LiveLocationGroupDescription: String { return self._s[2584]! } + public var Passport_InfoFAQ_URL: String { return self._s[2585]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2588]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2588]!, self._r[2588]!, [_1]) + return formatWithArgumentRanges(self._s[2589]!, self._r[2589]!, [_1]) } - public var State_connecting: String { return self._s[2589]! } - public var Passport_Identity_Country: String { return self._s[2590]! } - public var Passport_PasswordDescription: String { return self._s[2591]! } - public var ChatList_PsaLabel_covid: String { return self._s[2592]! } + public var State_connecting: String { return self._s[2590]! } + public var Passport_Identity_Country: String { return self._s[2591]! } + public var Passport_PasswordDescription: String { return self._s[2592]! } + public var ChatList_PsaLabel_covid: String { return self._s[2593]! } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2593]!, self._r[2593]!, [_1]) + return formatWithArgumentRanges(self._s[2594]!, self._r[2594]!, [_1]) } - public var Contacts_AddPeopleNearby: String { return self._s[2594]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[2595]! } - public var ClearCache_Description: String { return self._s[2596]! } - public var Localization_LanguageName: String { return self._s[2597]! } + public var Contacts_AddPeopleNearby: String { return self._s[2595]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[2596]! } + public var ClearCache_Description: String { return self._s[2597]! } + public var Localization_LanguageName: String { return self._s[2598]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2598]!, self._r[2598]!, [_0]) + return formatWithArgumentRanges(self._s[2599]!, self._r[2599]!, [_0]) } - public var Conversation_AddMembers: String { return self._s[2599]! } - public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[2600]! } - public var UserInfo_CreateNewContact: String { return self._s[2601]! } - public var Channel_Stickers_NotFound: String { return self._s[2603]! } - public var Message_FakeAccount: String { return self._s[2604]! } - public var Watch_Message_Poll: String { return self._s[2605]! } - public var Group_Members_Title: String { return self._s[2606]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2607]! } + public var Conversation_AddMembers: String { return self._s[2600]! } + public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[2601]! } + public var UserInfo_CreateNewContact: String { return self._s[2602]! } + public var Channel_Stickers_NotFound: String { return self._s[2604]! } + public var Message_FakeAccount: String { return self._s[2605]! } + public var Watch_Message_Poll: String { return self._s[2606]! } + public var Group_Members_Title: String { return self._s[2607]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2608]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2608]!, self._r[2608]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2609]!, self._r[2609]!, [_0, _1]) } - public var VoiceChat_CancelConfirmationText: String { return self._s[2609]! } - public var BroadcastGroups_Convert: String { return self._s[2610]! } - public var Login_InfoDeletePhoto: String { return self._s[2611]! } - public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[2612]! } - public var InstantPage_FeedbackButton: String { return self._s[2613]! } - public var Appearance_PreviewReplyText: String { return self._s[2614]! } - public var Passport_FieldPhoneHelp: String { return self._s[2615]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2616]! } - public var Media_SendingOptionsTooltip: String { return self._s[2617]! } - public var ScheduledMessages_ScheduledOnline: String { return self._s[2618]! } - public var Notifications_Badge: String { return self._s[2619]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[2620]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2621]! } + public var VoiceChat_CancelConfirmationText: String { return self._s[2610]! } + public var BroadcastGroups_Convert: String { return self._s[2611]! } + public var Login_InfoDeletePhoto: String { return self._s[2612]! } + public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[2613]! } + public var InstantPage_FeedbackButton: String { return self._s[2614]! } + public var Appearance_PreviewReplyText: String { return self._s[2615]! } + public var Passport_FieldPhoneHelp: String { return self._s[2616]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2617]! } + public var Media_SendingOptionsTooltip: String { return self._s[2618]! } + public var ScheduledMessages_ScheduledOnline: String { return self._s[2619]! } + public var Notifications_Badge: String { return self._s[2620]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[2621]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2622]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2623]!, self._r[2623]!, [_0]) + return formatWithArgumentRanges(self._s[2624]!, self._r[2624]!, [_0]) } - public var Passport_InfoLearnMore: String { return self._s[2624]! } - public var EnterPasscode_EnterTitle: String { return self._s[2625]! } - public var Appearance_EditTheme: String { return self._s[2626]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2627]! } - public var Stats_FollowersTitle: String { return self._s[2628]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[2629]! } - public var Channel_Subscribers_Title: String { return self._s[2630]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2631]! } - public var ChatImportActivity_ErrorGeneric: String { return self._s[2632]! } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[2633]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2634]! } - public var Conversation_AddToReadingList: String { return self._s[2635]! } - public var VoiceChat_EditBioPlaceholder: String { return self._s[2636]! } + public var Passport_InfoLearnMore: String { return self._s[2625]! } + public var EnterPasscode_EnterTitle: String { return self._s[2626]! } + public var Appearance_EditTheme: String { return self._s[2627]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2628]! } + public var Stats_FollowersTitle: String { return self._s[2629]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[2630]! } + public var Channel_Subscribers_Title: String { return self._s[2631]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2632]! } + public var ChatImportActivity_ErrorGeneric: String { return self._s[2633]! } + public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[2634]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2635]! } + public var Conversation_AddToReadingList: String { return self._s[2636]! } + public var VoiceChat_EditBioPlaceholder: String { return self._s[2637]! } public func Notifications_ExceptionsChangeSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2637]!, self._r[2637]!, [_0]) + return formatWithArgumentRanges(self._s[2638]!, self._r[2638]!, [_0]) } - public var Group_AdminLog_EmptyText: String { return self._s[2638]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[2639]! } - public var Watch_Location_Current: String { return self._s[2640]! } - public var Appearance_AppIconNew1: String { return self._s[2641]! } - public var PrivacyPolicy_Title: String { return self._s[2642]! } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2649]! } - public var Channel_TypeSetup_Title: String { return self._s[2653]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[2654]! } - public var Passport_Language_ja: String { return self._s[2655]! } - public var ReportPeer_ReasonSpam: String { return self._s[2656]! } - public var Widget_GalleryDescription: String { return self._s[2657]! } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2658]! } - public var VoiceChat_ChangePhoto: String { return self._s[2660]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[2661]! } - public var Channel_AdminLog_ChangeInfo: String { return self._s[2662]! } - public var ChatListFolder_NameNonContacts: String { return self._s[2663]! } + public var Group_AdminLog_EmptyText: String { return self._s[2639]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[2640]! } + public var Watch_Location_Current: String { return self._s[2641]! } + public var Appearance_AppIconNew1: String { return self._s[2642]! } + public var PrivacyPolicy_Title: String { return self._s[2643]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2650]! } + public var Channel_TypeSetup_Title: String { return self._s[2654]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[2655]! } + public var Passport_Language_ja: String { return self._s[2656]! } + public var ReportPeer_ReasonSpam: String { return self._s[2657]! } + public var Widget_GalleryDescription: String { return self._s[2658]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2659]! } + public var VoiceChat_ChangePhoto: String { return self._s[2661]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[2662]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[2663]! } + public var ChatListFolder_NameNonContacts: String { return self._s[2664]! } public func InviteLink_ExpiresIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2664]!, self._r[2664]!, [_0]) + return formatWithArgumentRanges(self._s[2665]!, self._r[2665]!, [_0]) } - public var Call_Audio: String { return self._s[2665]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2666]! } - public var ChatList_Search_NoResultsFitlerFiles: String { return self._s[2667]! } - public var Settings_PrivacySettings: String { return self._s[2668]! } - public var InviteLink_UsageLimitReached: String { return self._s[2669]! } - public var Stats_Followers: String { return self._s[2670]! } - public var Notifications_AddExceptionTitle: String { return self._s[2671]! } - public var TwoFactorSetup_Password_Title: String { return self._s[2672]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2673]! } - public var OldChannels_NoticeText: String { return self._s[2674]! } - public var Conversation_SavedMessages: String { return self._s[2675]! } - public var Intents_ErrorLockedText: String { return self._s[2676]! } + public var Call_Audio: String { return self._s[2666]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2667]! } + public var ChatList_Search_NoResultsFitlerFiles: String { return self._s[2668]! } + public var Settings_PrivacySettings: String { return self._s[2669]! } + public var InviteLink_UsageLimitReached: String { return self._s[2670]! } + public var Stats_Followers: String { return self._s[2671]! } + public var Notifications_AddExceptionTitle: String { return self._s[2672]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2673]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2674]! } + public var OldChannels_NoticeText: String { return self._s[2675]! } + public var Conversation_SavedMessages: String { return self._s[2676]! } + public var Intents_ErrorLockedText: String { return self._s[2677]! } public func Conversation_PeerNearbyTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2678]!, self._r[2678]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2679]!, self._r[2679]!, [_1, _2]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2679]! } - public var Appearance_ThemeNightBlue: String { return self._s[2680]! } - public var Notification_ChannelInviterSelf: String { return self._s[2681]! } - public var Conversation_ForwardTooltip_SavedMessages_Many: String { return self._s[2682]! } - public var InviteLink_Create_TimeLimitExpiryDateNever: String { return self._s[2684]! } - public var Watch_UserInfo_Service: String { return self._s[2685]! } - public var ChatList_Context_Back: String { return self._s[2686]! } - public var Passport_Email_Title: String { return self._s[2687]! } - public var ImportStickerPack_AddToExistingStickerSet: String { return self._s[2688]! } - public var Stats_GroupTopAdmin_Promote: String { return self._s[2689]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2680]! } + public var Appearance_ThemeNightBlue: String { return self._s[2681]! } + public var Notification_ChannelInviterSelf: String { return self._s[2682]! } + public var Conversation_ForwardTooltip_SavedMessages_Many: String { return self._s[2683]! } + public var InviteLink_Create_TimeLimitExpiryDateNever: String { return self._s[2685]! } + public var Watch_UserInfo_Service: String { return self._s[2686]! } + public var ChatList_Context_Back: String { return self._s[2687]! } + public var Passport_Email_Title: String { return self._s[2688]! } + public var ImportStickerPack_AddToExistingStickerSet: String { return self._s[2689]! } + public var Stats_GroupTopAdmin_Promote: String { return self._s[2690]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2690]!, self._r[2690]!, [_1]) + return formatWithArgumentRanges(self._s[2691]!, self._r[2691]!, [_1]) } - public var Conversation_UnsupportedMedia: String { return self._s[2691]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2692]! } - public var Privacy_TopPeersHelp: String { return self._s[2694]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[2695]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2696]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[2697]! } + public var Conversation_UnsupportedMedia: String { return self._s[2692]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2693]! } + public var Privacy_TopPeersHelp: String { return self._s[2695]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[2696]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2697]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[2698]! } public func Location_ProximityNotification_AlreadyClose(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2698]!, self._r[2698]!, [_0]) + return formatWithArgumentRanges(self._s[2699]!, self._r[2699]!, [_0]) } - public var Notification_PassportValueProofOfAddress: String { return self._s[2699]! } - public var Map_Map: String { return self._s[2700]! } - public var WallpaperSearch_ColorBlue: String { return self._s[2701]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[2702]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2703]! } - public var ChatList_Search_FilterMusic: String { return self._s[2704]! } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[2705]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2706]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[2708]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[2700]! } + public var Map_Map: String { return self._s[2701]! } + public var WallpaperSearch_ColorBlue: String { return self._s[2702]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[2703]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2704]! } + public var ChatList_Search_FilterMusic: String { return self._s[2705]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[2706]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2707]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[2709]! } public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2709]!, self._r[2709]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2710]!, self._r[2710]!, [_1, _2]) } public func Notification_ChangedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2710]!, self._r[2710]!, [_0]) + return formatWithArgumentRanges(self._s[2711]!, self._r[2711]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2711]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2712]! } - public var VoiceOver_ChatList_MessageEmpty: String { return self._s[2714]! } - public var GroupInfo_Location: String { return self._s[2715]! } - public var Passport_Language_ka: String { return self._s[2716]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2712]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2713]! } + public var VoiceOver_ChatList_MessageEmpty: String { return self._s[2715]! } + public var GroupInfo_Location: String { return self._s[2716]! } + public var Passport_Language_ka: String { return self._s[2717]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2717]!, self._r[2717]!, [_0]) + return formatWithArgumentRanges(self._s[2718]!, self._r[2718]!, [_0]) } - public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2718]! } - public var ChatImport_SelectionConfirmationAlertTitle: String { return self._s[2720]! } - public var ScheduledMessages_ClearAllConfirmation: String { return self._s[2722]! } - public var DialogList_SearchSectionRecent: String { return self._s[2723]! } - public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2724]! } - public var Conversation_Timer_Send: String { return self._s[2725]! } + public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2719]! } + public var ChatImport_SelectionConfirmationAlertTitle: String { return self._s[2721]! } + public var ScheduledMessages_ClearAllConfirmation: String { return self._s[2723]! } + public var DialogList_SearchSectionRecent: String { return self._s[2724]! } + public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2725]! } + public var Conversation_Timer_Send: String { return self._s[2726]! } public func VoiceOver_ScrollStatus(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2727]!, self._r[2727]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2728]!, self._r[2728]!, [_1, _2]) } - public var ChatState_Updating: String { return self._s[2728]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[2729]! } - public var ChannelInfo_DeleteGroup: String { return self._s[2730]! } - public var TwoStepAuth_RecoveryFailed: String { return self._s[2731]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2732]! } - public var InviteLink_Create_TimeLimitExpiryTime: String { return self._s[2733]! } - public var ChannelInfo_InviteLink_RevokeAlert_Text: String { return self._s[2734]! } - public var ChatList_Search_NoResults: String { return self._s[2735]! } - public var ChatListFolderSettings_AddRecommended: String { return self._s[2737]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2738]! } - public var PeerInfo_GroupAboutItem: String { return self._s[2739]! } - public var VoiceOver_SelfDestructTimerOff: String { return self._s[2741]! } + public var ChatState_Updating: String { return self._s[2729]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[2730]! } + public var ChannelInfo_DeleteGroup: String { return self._s[2731]! } + public var TwoStepAuth_RecoveryFailed: String { return self._s[2732]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2733]! } + public var InviteLink_Create_TimeLimitExpiryTime: String { return self._s[2734]! } + public var ChannelInfo_InviteLink_RevokeAlert_Text: String { return self._s[2735]! } + public var ChatList_Search_NoResults: String { return self._s[2736]! } + public var ChatListFolderSettings_AddRecommended: String { return self._s[2738]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2739]! } + public var PeerInfo_GroupAboutItem: String { return self._s[2740]! } + public var VoiceOver_SelfDestructTimerOff: String { return self._s[2742]! } public func Channel_AdminLog_DeletedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2742]!, self._r[2742]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2743]!, self._r[2743]!, [_1, _2]) } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2743]!, self._r[2743]!, [_0]) + return formatWithArgumentRanges(self._s[2744]!, self._r[2744]!, [_0]) } - public var PrivacySettings_AuthSessions: String { return self._s[2744]! } - public var Passport_Address_Postcode: String { return self._s[2745]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2746]! } + public var PrivacySettings_AuthSessions: String { return self._s[2745]! } + public var Passport_Address_Postcode: String { return self._s[2746]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2747]! } public func VoiceChat_ForwardTooltip_ManyChats(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2747]!, self._r[2747]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2748]!, self._r[2748]!, [_0, _1]) } - public var Passport_Address_Street2Placeholder: String { return self._s[2748]! } - public var Group_Location_Title: String { return self._s[2749]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[2750]! } - public var PeopleNearby_UsersEmpty: String { return self._s[2751]! } - public var Conversation_ContextMenuSpeak: String { return self._s[2753]! } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[2754]! } + public var Passport_Address_Street2Placeholder: String { return self._s[2749]! } + public var Group_Location_Title: String { return self._s[2750]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[2751]! } + public var PeopleNearby_UsersEmpty: String { return self._s[2752]! } + public var Conversation_ContextMenuSpeak: String { return self._s[2754]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[2755]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2756]!, self._r[2756]!, [_0]) + return formatWithArgumentRanges(self._s[2757]!, self._r[2757]!, [_0]) } - public var Proxy_TooltipUnavailable: String { return self._s[2757]! } - public var Map_Search: String { return self._s[2758]! } - public var VoiceChat_CancelConfirmationTitle: String { return self._s[2759]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[2760]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2761]! } + public var Proxy_TooltipUnavailable: String { return self._s[2758]! } + public var Map_Search: String { return self._s[2759]! } + public var VoiceChat_CancelConfirmationTitle: String { return self._s[2760]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[2761]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2762]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2762]!, self._r[2762]!, [_0]) + return formatWithArgumentRanges(self._s[2763]!, self._r[2763]!, [_0]) } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[2763]! } - public var ProfilePhoto_MainPhoto: String { return self._s[2764]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2765]! } - public var SharedMedia_EmptyMusicText: String { return self._s[2766]! } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[2767]! } - public var NetworkUsageSettings_BytesReceived: String { return self._s[2768]! } - public var Channel_AdminLog_EmptyText: String { return self._s[2769]! } - public var ImportStickerPack_InProgress: String { return self._s[2770]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2771]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[2772]! } - public var Notifications_GroupNotifications: String { return self._s[2773]! } - public var AccessDenied_SaveMedia: String { return self._s[2774]! } - public var InviteLink_Create_Revoke: String { return self._s[2775]! } - public var GroupInfo_LabelOwner: String { return self._s[2776]! } - public var TwoFactorSetup_PasswordRecovery_Action: String { return self._s[2777]! } - public var Passport_Language_id: String { return self._s[2779]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2780]! } - public var Conversation_UnpinMessageAlert: String { return self._s[2781]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[2764]! } + public var ProfilePhoto_MainPhoto: String { return self._s[2765]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2766]! } + public var SharedMedia_EmptyMusicText: String { return self._s[2767]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[2768]! } + public var NetworkUsageSettings_BytesReceived: String { return self._s[2769]! } + public var Channel_AdminLog_EmptyText: String { return self._s[2770]! } + public var ImportStickerPack_InProgress: String { return self._s[2771]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2772]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[2773]! } + public var Notifications_GroupNotifications: String { return self._s[2774]! } + public var AccessDenied_SaveMedia: String { return self._s[2775]! } + public var InviteLink_Create_Revoke: String { return self._s[2776]! } + public var GroupInfo_LabelOwner: String { return self._s[2777]! } + public var TwoFactorSetup_PasswordRecovery_Action: String { return self._s[2778]! } + public var Passport_Language_id: String { return self._s[2780]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2781]! } + public var Conversation_UnpinMessageAlert: String { return self._s[2782]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2782]!, self._r[2782]!, [_0]) - } - public func Call_RemoteVideoPaused(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2783]!, self._r[2783]!, [_0]) } - public var TwoFactorSetup_Done_Text: String { return self._s[2784]! } + public func Call_RemoteVideoPaused(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2784]!, self._r[2784]!, [_0]) + } + public var TwoFactorSetup_Done_Text: String { return self._s[2785]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2785]!, self._r[2785]!, [_0]) + return formatWithArgumentRanges(self._s[2786]!, self._r[2786]!, [_0]) } - public var NetworkUsageSettings_BytesSent: String { return self._s[2786]! } - public var Conversation_AudioRateTooltipNormal: String { return self._s[2787]! } - public var VoiceChat_EditDescriptionSuccess: String { return self._s[2788]! } - public var OwnershipTransfer_Transfer: String { return self._s[2789]! } + public var NetworkUsageSettings_BytesSent: String { return self._s[2787]! } + public var Conversation_AudioRateTooltipNormal: String { return self._s[2788]! } + public var VoiceChat_EditDescriptionSuccess: String { return self._s[2789]! } + public var OwnershipTransfer_Transfer: String { return self._s[2790]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2790]!, self._r[2790]!, [_0]) + return formatWithArgumentRanges(self._s[2791]!, self._r[2791]!, [_0]) } - public var Passport_Language_pt: String { return self._s[2791]! } - public var PrivacySettings_WebSessions: String { return self._s[2792]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[2794]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2795]! } + public var Passport_Language_pt: String { return self._s[2792]! } + public var PrivacySettings_WebSessions: String { return self._s[2793]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[2795]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2796]! } public func Notification_Joined(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2796]!, self._r[2796]!, [_0]) + return formatWithArgumentRanges(self._s[2797]!, self._r[2797]!, [_0]) } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2797]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2798]! } - public var AutoNightTheme_Scheduled: String { return self._s[2799]! } - public var CreatePoll_ExplanationHeader: String { return self._s[2800]! } - public var Calls_TabTitle: String { return self._s[2801]! } - public var VoiceChat_RecordingInProgress: String { return self._s[2802]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[2803]! } - public var Notification_VideoCallCanceled: String { return self._s[2804]! } - public var Login_CodeSentInternal: String { return self._s[2805]! } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[2806]! } - public var Call_RecordingDisabledMessage: String { return self._s[2808]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2798]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2799]! } + public var AutoNightTheme_Scheduled: String { return self._s[2800]! } + public var CreatePoll_ExplanationHeader: String { return self._s[2801]! } + public var Calls_TabTitle: String { return self._s[2802]! } + public var VoiceChat_RecordingInProgress: String { return self._s[2803]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[2804]! } + public var Notification_VideoCallCanceled: String { return self._s[2805]! } + public var Login_CodeSentInternal: String { return self._s[2806]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[2807]! } + public var Call_RecordingDisabledMessage: String { return self._s[2809]! } public func VoiceChat_RemovedPeerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2809]!, self._r[2809]!, [_0]) + return formatWithArgumentRanges(self._s[2810]!, self._r[2810]!, [_0]) } - public var Conversation_UsersTooMuchError: String { return self._s[2811]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[2812]! } - public var VoiceChat_StopScreenSharingShort: String { return self._s[2813]! } - public var Channel_Info_Stickers: String { return self._s[2814]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[2815]! } + public var Conversation_UsersTooMuchError: String { return self._s[2812]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[2813]! } + public var VoiceChat_StopScreenSharingShort: String { return self._s[2814]! } + public var Channel_Info_Stickers: String { return self._s[2815]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[2816]! } public func Conversation_PeerNearbyDistance(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2816]!, self._r[2816]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2817]!, self._r[2817]!, [_1, _2]) } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[2817]! } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[2818]! } public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2818]!, self._r[2818]!, [_0]) + return formatWithArgumentRanges(self._s[2819]!, self._r[2819]!, [_0]) } - public var Passport_DiscardMessageTitle: String { return self._s[2819]! } - public var Call_VoiceOver_VideoCallIncoming: String { return self._s[2820]! } - public var Localization_LanguageOther: String { return self._s[2821]! } - public var Conversation_EncryptionCanceled: String { return self._s[2822]! } - public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2823]! } - public var ReportPeer_ReasonFake: String { return self._s[2825]! } + public var Passport_DiscardMessageTitle: String { return self._s[2820]! } + public var Call_VoiceOver_VideoCallIncoming: String { return self._s[2821]! } + public var Localization_LanguageOther: String { return self._s[2822]! } + public var Conversation_EncryptionCanceled: String { return self._s[2823]! } + public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2824]! } + public var ReportPeer_ReasonFake: String { return self._s[2826]! } public func Notification_SecretChatMessageScreenshot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2826]!, self._r[2826]!, [_0]) + return formatWithArgumentRanges(self._s[2827]!, self._r[2827]!, [_0]) } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2828]! } - public var SocksProxySetup_SavedProxies: String { return self._s[2829]! } - public var InviteLink_Create_UsersLimitNumberOfUsers: String { return self._s[2830]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2829]! } + public var SocksProxySetup_SavedProxies: String { return self._s[2830]! } + public var InviteLink_Create_UsersLimitNumberOfUsers: String { return self._s[2831]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2831]!, self._r[2831]!, [_1]) + return formatWithArgumentRanges(self._s[2832]!, self._r[2832]!, [_1]) } - public var Conversation_ScamWarning: String { return self._s[2833]! } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[2834]! } - public var LocalGroup_Title: String { return self._s[2835]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2837]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[2838]! } - public var VoiceChat_SelectAccount: String { return self._s[2839]! } - public var Login_PhoneFloodError: String { return self._s[2840]! } - public var Conversation_PinMessageAlert_PinAndNotifyMembers: String { return self._s[2841]! } - public var Username_InvalidTaken: String { return self._s[2843]! } - public var SocksProxySetup_AddProxy: String { return self._s[2845]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[2846]! } - public var MediaPicker_UngroupDescription: String { return self._s[2847]! } - public var Login_CodeExpired: String { return self._s[2848]! } - public var Localization_ChooseLanguage: String { return self._s[2849]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[2850]! } + public var Conversation_ScamWarning: String { return self._s[2834]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[2835]! } + public var LocalGroup_Title: String { return self._s[2836]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2838]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[2839]! } + public var VoiceChat_SelectAccount: String { return self._s[2840]! } + public var Login_PhoneFloodError: String { return self._s[2841]! } + public var Conversation_PinMessageAlert_PinAndNotifyMembers: String { return self._s[2842]! } + public var Username_InvalidTaken: String { return self._s[2844]! } + public var SocksProxySetup_AddProxy: String { return self._s[2846]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[2847]! } + public var MediaPicker_UngroupDescription: String { return self._s[2848]! } + public var Login_CodeExpired: String { return self._s[2849]! } + public var Localization_ChooseLanguage: String { return self._s[2850]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[2851]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2851]!, self._r[2851]!, [_0]) - } - public func Channel_DiscussionGroup_HeaderSet(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2852]!, self._r[2852]!, [_0]) } - public var ReportPeer_ReasonOther_Title: String { return self._s[2854]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[2855]! } + public func Channel_DiscussionGroup_HeaderSet(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2853]!, self._r[2853]!, [_0]) + } + public var ReportPeer_ReasonOther_Title: String { return self._s[2855]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[2856]! } public func VoiceChat_UserInvited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2856]!, self._r[2856]!, [_0]) + return formatWithArgumentRanges(self._s[2857]!, self._r[2857]!, [_0]) } - public var PeerInfo_ButtonDiscuss: String { return self._s[2857]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[2858]! } - public var Call_StatusNoAnswer: String { return self._s[2859]! } - public var ScheduledMessages_DeleteMany: String { return self._s[2861]! } - public var Channel_DiscussionGroupInfo: String { return self._s[2862]! } - public var Conversation_UnarchiveDone: String { return self._s[2863]! } - public var LogoutOptions_AddAccountText: String { return self._s[2864]! } - public var Message_PinnedContactMessage: String { return self._s[2865]! } + public var PeerInfo_ButtonDiscuss: String { return self._s[2858]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[2859]! } + public var Call_StatusNoAnswer: String { return self._s[2860]! } + public var ScheduledMessages_DeleteMany: String { return self._s[2862]! } + public var Channel_DiscussionGroupInfo: String { return self._s[2863]! } + public var Conversation_UnarchiveDone: String { return self._s[2864]! } + public var LogoutOptions_AddAccountText: String { return self._s[2865]! } + public var Message_PinnedContactMessage: String { return self._s[2866]! } public func ChatList_DeleteAndLeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2866]!, self._r[2866]!, [_0]) + return formatWithArgumentRanges(self._s[2867]!, self._r[2867]!, [_0]) } - public var VoiceChat_EditBioTitle: String { return self._s[2868]! } + public var VoiceChat_EditBioTitle: String { return self._s[2869]! } public func FileSize_GB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2869]!, self._r[2869]!, [_0]) + return formatWithArgumentRanges(self._s[2870]!, self._r[2870]!, [_0]) } - public var Stats_GroupLanguagesTitle: String { return self._s[2870]! } - public var Passport_FieldAddressHelp: String { return self._s[2871]! } + public var Stats_GroupLanguagesTitle: String { return self._s[2871]! } + public var Passport_FieldAddressHelp: String { return self._s[2872]! } public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2872]!, self._r[2872]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2873]!, self._r[2873]!, [_1, _2]) } - public var ChatSettings_OpenLinksIn: String { return self._s[2874]! } - public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2875]! } - public var Message_Photo: String { return self._s[2876]! } - public var Media_LimitedAccessManage: String { return self._s[2878]! } - public var MediaPicker_AddCaption: String { return self._s[2879]! } - public var LogoutOptions_Title: String { return self._s[2880]! } + public var ChatSettings_OpenLinksIn: String { return self._s[2875]! } + public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2876]! } + public var Message_Photo: String { return self._s[2877]! } + public var Media_LimitedAccessManage: String { return self._s[2879]! } + public var MediaPicker_AddCaption: String { return self._s[2880]! } + public var LogoutOptions_Title: String { return self._s[2881]! } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2881]!, self._r[2881]!, [_1]) + return formatWithArgumentRanges(self._s[2882]!, self._r[2882]!, [_1]) } - public var Conversation_StatusKickedFromGroup: String { return self._s[2882]! } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2883]! } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2884]! } - public var Channel_AdminLogFilter_Title: String { return self._s[2885]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[2886]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[2887]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2888]! } - public var ChannelIntro_Title: String { return self._s[2889]! } - public var Stats_Message_Views: String { return self._s[2890]! } - public var Stickers_Install: String { return self._s[2891]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[2883]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2884]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2885]! } + public var Channel_AdminLogFilter_Title: String { return self._s[2886]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[2887]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[2888]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2889]! } + public var ChannelIntro_Title: String { return self._s[2890]! } + public var Stats_Message_Views: String { return self._s[2891]! } + public var Stickers_Install: String { return self._s[2892]! } public func VoiceOver_Chat_FileFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2892]!, self._r[2892]!, [_0]) + return formatWithArgumentRanges(self._s[2893]!, self._r[2893]!, [_0]) } - public var EditTheme_Create_Preview_IncomingReplyText: String { return self._s[2893]! } - public var Conversation_SwipeToReplyHintTitle: String { return self._s[2895]! } - public var Settings_Username: String { return self._s[2898]! } - public var FastTwoStepSetup_Title: String { return self._s[2899]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2900]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[2901]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2903]! } - public var CallFeedback_ReasonEcho: String { return self._s[2904]! } + public var EditTheme_Create_Preview_IncomingReplyText: String { return self._s[2894]! } + public var Conversation_SwipeToReplyHintTitle: String { return self._s[2896]! } + public var Settings_Username: String { return self._s[2899]! } + public var FastTwoStepSetup_Title: String { return self._s[2900]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2901]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[2902]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2904]! } + public var CallFeedback_ReasonEcho: String { return self._s[2905]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2905]!, self._r[2905]!, [_0]) + return formatWithArgumentRanges(self._s[2906]!, self._r[2906]!, [_0]) } - public var Conversation_OpenBotLinkTitle: String { return self._s[2906]! } - public var SocksProxySetup_Title: String { return self._s[2907]! } - public var CallFeedback_Success: String { return self._s[2908]! } - public var WallpaperPreview_SwipeTopText: String { return self._s[2910]! } - public var InstantPage_AutoNightTheme: String { return self._s[2912]! } - public var Watch_Conversation_Reply: String { return self._s[2913]! } - public var VoiceChat_Share: String { return self._s[2915]! } - public var VoiceChat_AddPhoto: String { return self._s[2916]! } - public var Chat_PanelUnpinAllMessages: String { return self._s[2917]! } - public var WallpaperPreview_Pattern: String { return self._s[2918]! } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2919]! } + public var Conversation_OpenBotLinkTitle: String { return self._s[2907]! } + public var SocksProxySetup_Title: String { return self._s[2908]! } + public var CallFeedback_Success: String { return self._s[2909]! } + public var WallpaperPreview_SwipeTopText: String { return self._s[2911]! } + public var InstantPage_AutoNightTheme: String { return self._s[2913]! } + public var Watch_Conversation_Reply: String { return self._s[2914]! } + public var VoiceChat_Share: String { return self._s[2916]! } + public var VoiceChat_AddPhoto: String { return self._s[2917]! } + public var Chat_PanelUnpinAllMessages: String { return self._s[2918]! } + public var WallpaperPreview_Pattern: String { return self._s[2919]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2920]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2920]!, self._r[2920]!, [_0]) + return formatWithArgumentRanges(self._s[2921]!, self._r[2921]!, [_0]) } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[2921]! } - public var VoiceOver_Chat_GroupInfo: String { return self._s[2922]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[2924]! } - public var Update_Title: String { return self._s[2925]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[2926]! } - public var WallpaperPreview_CropTopText: String { return self._s[2929]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[2930]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2931]! } - public var ChatListFolder_DiscardCancel: String { return self._s[2932]! } - public var Message_PinnedPhotoMessage: String { return self._s[2933]! } - public var Appearance_ThemeDayClassic: String { return self._s[2934]! } - public var VoiceChat_ChangeName: String { return self._s[2935]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[2937]! } - public var VoiceChat_DisplayAsInfo: String { return self._s[2939]! } - public var AccessDenied_Wallpapers: String { return self._s[2944]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[2922]! } + public var VoiceOver_Chat_GroupInfo: String { return self._s[2923]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[2925]! } + public var Update_Title: String { return self._s[2926]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[2927]! } + public var WallpaperPreview_CropTopText: String { return self._s[2930]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[2931]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2932]! } + public var ChatListFolder_DiscardCancel: String { return self._s[2933]! } + public var Message_PinnedPhotoMessage: String { return self._s[2934]! } + public var Appearance_ThemeDayClassic: String { return self._s[2935]! } + public var VoiceChat_ChangeName: String { return self._s[2936]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[2938]! } + public var VoiceChat_DisplayAsInfo: String { return self._s[2940]! } + public var AccessDenied_Wallpapers: String { return self._s[2945]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2945]!, self._r[2945]!, [_0]) + return formatWithArgumentRanges(self._s[2946]!, self._r[2946]!, [_0]) } - public var Weekday_Sunday: String { return self._s[2946]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[2948]! } - public var PeopleNearby_MakeVisibleDescription: String { return self._s[2949]! } - public var AccessDenied_LocationDisabled: String { return self._s[2950]! } - public var Tour_Text3: String { return self._s[2951]! } - public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2952]! } + public var Weekday_Sunday: String { return self._s[2947]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[2949]! } + public var PeopleNearby_MakeVisibleDescription: String { return self._s[2950]! } + public var AccessDenied_LocationDisabled: String { return self._s[2951]! } + public var Tour_Text3: String { return self._s[2952]! } + public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2953]! } public func Time_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2953]!, self._r[2953]!, [_0]) + return formatWithArgumentRanges(self._s[2954]!, self._r[2954]!, [_0]) } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2954]! } - public var Conversation_ClearCache: String { return self._s[2955]! } - public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[2956]! } - public var ChatList_Tabs_AllChats: String { return self._s[2957]! } - public var DialogList_RecentTitlePeople: String { return self._s[2958]! } - public var Stickers_AddToFavorites: String { return self._s[2959]! } - public var ChatList_Context_RemoveFromFolder: String { return self._s[2960]! } - public var VoiceChat_CancelSpeakRequest: String { return self._s[2961]! } - public var Settings_RemoveVideo: String { return self._s[2962]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2963]! } - public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[2964]! } - public var VoiceOver_Chat_YourFile: String { return self._s[2965]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[2967]! } - public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[2968]! } - public var VoiceChat_TapToAddBio: String { return self._s[2969]! } - public var Channel_AdminLog_AddMembers: String { return self._s[2970]! } - public var Map_SendThisLocation: String { return self._s[2972]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[2974]! } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2975]! } - public var CloudStorage_Title: String { return self._s[2976]! } - public var TwoFactorSetup_Password_Action: String { return self._s[2977]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[2978]! } - public var Passport_Address_EditTemporaryRegistration: String { return self._s[2980]! } - public var Undo_LeftGroup: String { return self._s[2981]! } - public var Conversation_StopLiveLocation: String { return self._s[2982]! } - public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[2983]! } - public var Message_PinnedInvoice: String { return self._s[2984]! } - public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2985]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2955]! } + public var Conversation_ClearCache: String { return self._s[2956]! } + public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[2957]! } + public var ChatList_Tabs_AllChats: String { return self._s[2958]! } + public var DialogList_RecentTitlePeople: String { return self._s[2959]! } + public var Stickers_AddToFavorites: String { return self._s[2960]! } + public var ChatList_Context_RemoveFromFolder: String { return self._s[2961]! } + public var VoiceChat_CancelSpeakRequest: String { return self._s[2962]! } + public var Settings_RemoveVideo: String { return self._s[2963]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2964]! } + public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[2965]! } + public var VoiceOver_Chat_YourFile: String { return self._s[2966]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[2968]! } + public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[2969]! } + public var VoiceChat_TapToAddBio: String { return self._s[2970]! } + public var Channel_AdminLog_AddMembers: String { return self._s[2971]! } + public var Map_SendThisLocation: String { return self._s[2973]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[2975]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2976]! } + public var CloudStorage_Title: String { return self._s[2977]! } + public var TwoFactorSetup_Password_Action: String { return self._s[2978]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[2979]! } + public var Passport_Address_EditTemporaryRegistration: String { return self._s[2981]! } + public var Undo_LeftGroup: String { return self._s[2982]! } + public var Conversation_StopLiveLocation: String { return self._s[2983]! } + public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[2984]! } + public var Message_PinnedInvoice: String { return self._s[2985]! } + public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2986]! } public func PUSH_CHAT_MESSAGE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2987]!, self._r[2987]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2988]!, self._r[2988]!, [_1, _2]) } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2988]!, self._r[2988]!, [_0]) + return formatWithArgumentRanges(self._s[2989]!, self._r[2989]!, [_0]) } - public var TwoStepAuth_RecoveryUnavailableResetTitle: String { return self._s[2989]! } - public var Weekday_Tuesday: String { return self._s[2990]! } - public var ChangePhoneNumberCode_Code: String { return self._s[2991]! } - public var VoiceOver_Chat_YourMessage: String { return self._s[2992]! } - public var Calls_CallTabDescription: String { return self._s[2993]! } - public var ChatImport_SelectionErrorNotAdmin: String { return self._s[2994]! } - public var SocksProxySetup_UseProxy: String { return self._s[2996]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2997]! } - public var PasscodeSettings_AlphanumericCode: String { return self._s[2998]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[2999]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[3001]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[3002]! } - public var Exceptions_AddToExceptions: String { return self._s[3003]! } - public var UserInfo_Title: String { return self._s[3004]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[3006]! } - public var VoiceChat_EditDescription: String { return self._s[3008]! } - public var ChatList_Unmute: String { return self._s[3009]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[3010]! } + public var TwoStepAuth_RecoveryUnavailableResetTitle: String { return self._s[2990]! } + public var Weekday_Tuesday: String { return self._s[2991]! } + public var ChangePhoneNumberCode_Code: String { return self._s[2992]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2993]! } + public var Calls_CallTabDescription: String { return self._s[2994]! } + public var ChatImport_SelectionErrorNotAdmin: String { return self._s[2995]! } + public var SocksProxySetup_UseProxy: String { return self._s[2997]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2998]! } + public var PasscodeSettings_AlphanumericCode: String { return self._s[2999]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[3000]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[3002]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[3003]! } + public var Exceptions_AddToExceptions: String { return self._s[3004]! } + public var UserInfo_Title: String { return self._s[3005]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[3007]! } + public var VoiceChat_EditDescription: String { return self._s[3009]! } + public var ChatList_Unmute: String { return self._s[3010]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[3011]! } public func Channel_AdminLog_MessageChangedAutoremoveTimeoutSet(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3011]!, self._r[3011]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3012]!, self._r[3012]!, [_1, _2]) } - public var Stats_GroupTopPostersTitle: String { return self._s[3012]! } - public var Username_CheckingUsername: String { return self._s[3014]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3015]! } - public var PeerSelection_ImportIntoNewGroup: String { return self._s[3019]! } - public var Location_ProximityAlertSetTitle: String { return self._s[3020]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[3021]! } - public var Conversation_JoinVoiceChatAsSpeaker: String { return self._s[3022]! } - public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[3023]! } - public var Settings_ChangePhoneNumber: String { return self._s[3024]! } - public var PeerInfo_PaneLinks: String { return self._s[3025]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3028]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[3030]! } + public var Stats_GroupTopPostersTitle: String { return self._s[3013]! } + public var Username_CheckingUsername: String { return self._s[3015]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3016]! } + public var PeerSelection_ImportIntoNewGroup: String { return self._s[3020]! } + public var Location_ProximityAlertSetTitle: String { return self._s[3021]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[3022]! } + public var Conversation_JoinVoiceChatAsSpeaker: String { return self._s[3023]! } + public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[3024]! } + public var Settings_ChangePhoneNumber: String { return self._s[3025]! } + public var PeerInfo_PaneLinks: String { return self._s[3026]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3029]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[3031]! } public func PUSH_CHAT_VOICECHAT_INVITE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3031]!, self._r[3031]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3032]!, self._r[3032]!, [_1, _2]) } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3032]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3033]! } - public var VoiceChat_CancelConfirmationEnd: String { return self._s[3034]! } - public var BroadcastGroups_ConfirmationAlert_Title: String { return self._s[3035]! } - public var Stats_FollowersBySourceTitle: String { return self._s[3037]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3033]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3034]! } + public var VoiceChat_CancelConfirmationEnd: String { return self._s[3035]! } + public var BroadcastGroups_ConfirmationAlert_Title: String { return self._s[3036]! } + public var Stats_FollowersBySourceTitle: String { return self._s[3038]! } public func Conversation_ScheduleMessage_SendOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3038]!, self._r[3038]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3039]!, self._r[3039]!, [_0, _1]) } - public var Compose_NewEncryptedChatTitle: String { return self._s[3039]! } - public var Channel_CommentsGroup_Header: String { return self._s[3041]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3040]! } + public var Channel_CommentsGroup_Header: String { return self._s[3042]! } public func ShareFileTip_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3045]!, self._r[3045]!, [_0]) + return formatWithArgumentRanges(self._s[3046]!, self._r[3046]!, [_0]) } public func PUSH_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3046]!, self._r[3046]!, [_1]) + return formatWithArgumentRanges(self._s[3047]!, self._r[3047]!, [_1]) } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3048]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3049]! } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3049]!, self._r[3049]!, [_0]) + return formatWithArgumentRanges(self._s[3050]!, self._r[3050]!, [_0]) } - public var Conversation_ReportMessages: String { return self._s[3050]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3051]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3052]! } - public var PrivacySettings_LastSeen: String { return self._s[3054]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[3055]! } - public var Theme_Colors_Proceed: String { return self._s[3056]! } - public var UserInfo_ScamBotWarning: String { return self._s[3057]! } - public var LogoutOptions_LogOut: String { return self._s[3059]! } - public var Conversation_SendMessage: String { return self._s[3060]! } - public var Conversation_CancelForwardCancelForward: String { return self._s[3061]! } - public var VoiceChat_Scheduled: String { return self._s[3063]! } - public var Passport_Address_Region: String { return self._s[3064]! } - public var MediaPicker_CameraRoll: String { return self._s[3066]! } + public var Conversation_ReportMessages: String { return self._s[3051]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3052]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3053]! } + public var PrivacySettings_LastSeen: String { return self._s[3055]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[3056]! } + public var Theme_Colors_Proceed: String { return self._s[3057]! } + public var UserInfo_ScamBotWarning: String { return self._s[3058]! } + public var LogoutOptions_LogOut: String { return self._s[3060]! } + public var Conversation_SendMessage: String { return self._s[3061]! } + public var Conversation_CancelForwardCancelForward: String { return self._s[3062]! } + public var VoiceChat_Scheduled: String { return self._s[3064]! } + public var Passport_Address_Region: String { return self._s[3065]! } + public var MediaPicker_CameraRoll: String { return self._s[3067]! } public func VoiceOver_Chat_ForwardedFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3068]!, self._r[3068]!, [_0]) + return formatWithArgumentRanges(self._s[3069]!, self._r[3069]!, [_0]) } - public var Call_ReportSend: String { return self._s[3070]! } - public var VoiceOver_ChatList_Message: String { return self._s[3071]! } - public var Month_ShortJune: String { return self._s[3072]! } - public var AutoDownloadSettings_GroupChats: String { return self._s[3073]! } + public var Call_ReportSend: String { return self._s[3071]! } + public var VoiceOver_ChatList_Message: String { return self._s[3072]! } + public var Month_ShortJune: String { return self._s[3073]! } + public var AutoDownloadSettings_GroupChats: String { return self._s[3074]! } public func Channel_AdminLog_CaptionEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3076]!, self._r[3076]!, [_0]) + return formatWithArgumentRanges(self._s[3077]!, self._r[3077]!, [_0]) } - public var TwoStepAuth_DisableSuccess: String { return self._s[3077]! } - public var Cache_KeepMedia: String { return self._s[3078]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[3078]! } + public var Cache_KeepMedia: String { return self._s[3079]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3079]!, self._r[3079]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3080]!, self._r[3080]!, [_1, _2, _3]) } - public var Appearance_LargeEmoji: String { return self._s[3080]! } + public var Appearance_LargeEmoji: String { return self._s[3081]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3081]!, self._r[3081]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[3082]!, self._r[3082]!, [_1, _2, _3, _4, _5, _6]) } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[3082]! } - public var Privacy_PaymentsClear_PaymentInfoCleared: String { return self._s[3083]! } - public var Call_CameraConfirmationText: String { return self._s[3084]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[3083]! } + public var Privacy_PaymentsClear_PaymentInfoCleared: String { return self._s[3084]! } + public var Call_CameraConfirmationText: String { return self._s[3085]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3086]!, self._r[3086]!, [_0]) + return formatWithArgumentRanges(self._s[3087]!, self._r[3087]!, [_0]) } - public var DialogList_SearchSectionChats: String { return self._s[3087]! } - public var VoiceOver_MessageContextReport: String { return self._s[3089]! } - public var VoiceChat_RemovePeer: String { return self._s[3090]! } - public var ChatListFolder_ExcludeChatsTitle: String { return self._s[3091]! } - public var InviteLink_ContextCopy: String { return self._s[3092]! } - public var NotificationsSound_Tritone: String { return self._s[3094]! } - public var VoiceChat_YouAreSharingScreen: String { return self._s[3096]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3098]! } - public var Stats_GroupTopAdmin_Actions: String { return self._s[3099]! } - public var TwoFactorSetup_PasswordRecovery_SkipAlertText: String { return self._s[3100]! } - public var TwoStepAuth_ResetAction: String { return self._s[3101]! } - public var PeerInfo_AddToContacts: String { return self._s[3102]! } - public var VoiceChat_OpenChat: String { return self._s[3103]! } - public var AccessDenied_Title: String { return self._s[3104]! } - public var InviteLink_QRCode_InfoChannel: String { return self._s[3105]! } - public var Tour_Title1: String { return self._s[3106]! } - public var VoiceOver_AttachMedia: String { return self._s[3107]! } + public var DialogList_SearchSectionChats: String { return self._s[3088]! } + public var VoiceOver_MessageContextReport: String { return self._s[3090]! } + public var VoiceChat_RemovePeer: String { return self._s[3091]! } + public var ChatListFolder_ExcludeChatsTitle: String { return self._s[3092]! } + public var InviteLink_ContextCopy: String { return self._s[3093]! } + public var NotificationsSound_Tritone: String { return self._s[3095]! } + public var VoiceChat_YouAreSharingScreen: String { return self._s[3097]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3099]! } + public var Stats_GroupTopAdmin_Actions: String { return self._s[3100]! } + public var TwoFactorSetup_PasswordRecovery_SkipAlertText: String { return self._s[3101]! } + public var TwoStepAuth_ResetAction: String { return self._s[3102]! } + public var PeerInfo_AddToContacts: String { return self._s[3103]! } + public var VoiceChat_OpenChat: String { return self._s[3104]! } + public var AccessDenied_Title: String { return self._s[3105]! } + public var InviteLink_QRCode_InfoChannel: String { return self._s[3106]! } + public var Tour_Title1: String { return self._s[3107]! } + public var VoiceOver_AttachMedia: String { return self._s[3108]! } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3109]!, self._r[3109]!, [_0]) + return formatWithArgumentRanges(self._s[3110]!, self._r[3110]!, [_0]) } - public var Chat_Gifs_SavedSectionHeader: String { return self._s[3110]! } - public var Privacy_DeleteDrafts_DraftsDeleted: String { return self._s[3111]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[3112]! } + public var Chat_Gifs_SavedSectionHeader: String { return self._s[3111]! } + public var Privacy_DeleteDrafts_DraftsDeleted: String { return self._s[3112]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[3113]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3113]!, self._r[3113]!, [_0]) + return formatWithArgumentRanges(self._s[3114]!, self._r[3114]!, [_0]) } - public var Channel_AdminLog_MessagePreviousLink: String { return self._s[3114]! } - public var OldChannels_Title: String { return self._s[3115]! } - public var LoginPassword_FloodError: String { return self._s[3116]! } - public var ChatImportActivity_InProgress: String { return self._s[3118]! } - public var Checkout_ErrorPaymentFailed: String { return self._s[3119]! } + public var Channel_AdminLog_MessagePreviousLink: String { return self._s[3115]! } + public var OldChannels_Title: String { return self._s[3116]! } + public var LoginPassword_FloodError: String { return self._s[3117]! } + public var ChatImportActivity_InProgress: String { return self._s[3119]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[3120]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3120]!, self._r[3120]!, [_0]) + return formatWithArgumentRanges(self._s[3121]!, self._r[3121]!, [_0]) } - public var VoiceOver_Media_PlaybackPlay: String { return self._s[3123]! } - public var Passport_CorrectErrors: String { return self._s[3125]! } + public var VoiceOver_Media_PlaybackPlay: String { return self._s[3124]! } + public var Passport_CorrectErrors: String { return self._s[3126]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3126]!, self._r[3126]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3127]!, self._r[3127]!, [_1, _2]) } - public var ChatListFolderSettings_Title: String { return self._s[3127]! } + public var ChatListFolderSettings_Title: String { return self._s[3128]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3128]!, self._r[3128]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3129]!, self._r[3129]!, [_1, _2]) } - public var PhotoEditor_HighlightsTool: String { return self._s[3129]! } - public var Contacts_NotRegisteredSection: String { return self._s[3132]! } + public var PhotoEditor_HighlightsTool: String { return self._s[3130]! } + public var Contacts_NotRegisteredSection: String { return self._s[3133]! } public func Call_VoiceChatInProgressCallMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3133]!, self._r[3133]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3134]!, self._r[3134]!, [_1, _2]) } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3134]!, self._r[3134]!, [_1]) + return formatWithArgumentRanges(self._s[3135]!, self._r[3135]!, [_1]) } - public var InviteLink_Create_UsersLimitInfo: String { return self._s[3135]! } - public var User_DeletedAccount: String { return self._s[3136]! } - public var Conversation_ViewContactDetails: String { return self._s[3137]! } - public var Conversation_Dice_u1F3B3: String { return self._s[3138]! } - public var WebSearch_GIFs: String { return self._s[3139]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[3140]! } - public var Appearance_PreviewOutgoingText: String { return self._s[3141]! } - public var Calls_CallTabTitle: String { return self._s[3142]! } - public var Call_VoiceChatInProgressTitle: String { return self._s[3143]! } - public var Checkout_OptionalTipItem: String { return self._s[3144]! } + public var InviteLink_Create_UsersLimitInfo: String { return self._s[3136]! } + public var User_DeletedAccount: String { return self._s[3137]! } + public var Conversation_ViewContactDetails: String { return self._s[3138]! } + public var Conversation_Dice_u1F3B3: String { return self._s[3139]! } + public var WebSearch_GIFs: String { return self._s[3140]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[3141]! } + public var Appearance_PreviewOutgoingText: String { return self._s[3142]! } + public var Calls_CallTabTitle: String { return self._s[3143]! } + public var Call_VoiceChatInProgressTitle: String { return self._s[3144]! } + public var Checkout_OptionalTipItem: String { return self._s[3145]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3145]!, self._r[3145]!, [_0]) + return formatWithArgumentRanges(self._s[3146]!, self._r[3146]!, [_0]) } - public var Channel_Status: String { return self._s[3146]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[3148]! } - public var VoiceOver_Chat_OptionSelected: String { return self._s[3149]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3150]! } + public var Channel_Status: String { return self._s[3147]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[3149]! } + public var VoiceOver_Chat_OptionSelected: String { return self._s[3150]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3151]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3151]!, self._r[3151]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3152]!, self._r[3152]!, [_0, _1]) } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3153]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[3155]! } - public var Month_ShortDecember: String { return self._s[3156]! } - public var Username_Help: String { return self._s[3157]! } - public var Login_InfoAvatarAdd: String { return self._s[3158]! } - public var Month_ShortMay: String { return self._s[3159]! } - public var DialogList_UnknownPinLimitError: String { return self._s[3160]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[3161]! } - public var TwoStepAuth_EnabledSuccess: String { return self._s[3162]! } - public var VoiceChat_StopScreenSharing: String { return self._s[3163]! } - public var VoiceChat_AskedToSpeak: String { return self._s[3164]! } - public var Weekday_ShortSunday: String { return self._s[3165]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3166]! } - public var AuthSessions_TerminateSession: String { return self._s[3167]! } - public var Passport_Identity_FilesTitle: String { return self._s[3168]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3154]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[3156]! } + public var Month_ShortDecember: String { return self._s[3157]! } + public var Username_Help: String { return self._s[3158]! } + public var Login_InfoAvatarAdd: String { return self._s[3159]! } + public var Month_ShortMay: String { return self._s[3160]! } + public var DialogList_UnknownPinLimitError: String { return self._s[3161]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[3162]! } + public var TwoStepAuth_EnabledSuccess: String { return self._s[3163]! } + public var VoiceChat_StopScreenSharing: String { return self._s[3164]! } + public var VoiceChat_AskedToSpeak: String { return self._s[3165]! } + public var Weekday_ShortSunday: String { return self._s[3166]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3167]! } + public var AuthSessions_TerminateSession: String { return self._s[3168]! } + public var Passport_Identity_FilesTitle: String { return self._s[3169]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3169]!, self._r[3169]!, [_0]) + return formatWithArgumentRanges(self._s[3170]!, self._r[3170]!, [_0]) } - public var PeopleNearby_MakeVisible: String { return self._s[3171]! } + public var PeopleNearby_MakeVisible: String { return self._s[3172]! } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3172]!, self._r[3172]!, [_0]) + return formatWithArgumentRanges(self._s[3173]!, self._r[3173]!, [_0]) } - public var Widget_UpdatedAt: String { return self._s[3173]! } + public var Widget_UpdatedAt: String { return self._s[3174]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3174]!, self._r[3174]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3175]!, self._r[3175]!, [_1, _2]) } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3175]!, self._r[3175]!, [_0]) + return formatWithArgumentRanges(self._s[3176]!, self._r[3176]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3176]! } - public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3177]! } - public var ImportStickerPack_ChooseStickerSet: String { return self._s[3179]! } - public var Conversation_ContextMenuForward: String { return self._s[3180]! } - public var Channel_AdminLog_CanManageCalls: String { return self._s[3181]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3177]! } + public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3178]! } + public var ImportStickerPack_ChooseStickerSet: String { return self._s[3180]! } + public var Conversation_ContextMenuForward: String { return self._s[3181]! } + public var Channel_AdminLog_CanManageCalls: String { return self._s[3182]! } public func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3183]!, self._r[3183]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3184]!, self._r[3184]!, [_1, _2, _3]) } - public var Notification_GroupInviterSelf: String { return self._s[3185]! } - public var Privacy_Forwards_NeverLink: String { return self._s[3186]! } - public var AuthSessions_CurrentSession: String { return self._s[3187]! } - public var Passport_Address_EditPassportRegistration: String { return self._s[3188]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3189]! } - public var ChatSearch_ResultsTooltip: String { return self._s[3191]! } - public var CheckoutInfo_Pay: String { return self._s[3192]! } + public var Notification_GroupInviterSelf: String { return self._s[3186]! } + public var Privacy_Forwards_NeverLink: String { return self._s[3187]! } + public var AuthSessions_CurrentSession: String { return self._s[3188]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[3189]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3190]! } + public var ChatSearch_ResultsTooltip: String { return self._s[3192]! } + public var CheckoutInfo_Pay: String { return self._s[3193]! } public func Conversation_PinMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3194]!, self._r[3194]!, [_0]) + return formatWithArgumentRanges(self._s[3195]!, self._r[3195]!, [_0]) } - public var GroupInfo_AddParticipant: String { return self._s[3195]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[3196]! } + public var GroupInfo_AddParticipant: String { return self._s[3196]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[3197]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3197]!, self._r[3197]!, [_0]) + return formatWithArgumentRanges(self._s[3198]!, self._r[3198]!, [_0]) } - public var Localization_LanguageCustom: String { return self._s[3198]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[3199]! } - public var Settings_UsernameEmpty: String { return self._s[3200]! } - public var Settings_FAQ_URL: String { return self._s[3201]! } - public var ChatList_UndoArchiveText1: String { return self._s[3202]! } - public var Common_Select: String { return self._s[3204]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3205]! } - public var Notification_PassportValueAddress: String { return self._s[3206]! } - public var Conversation_MessageDialogDelete: String { return self._s[3207]! } - public var Map_OpenInYandexNavigator: String { return self._s[3209]! } - public var DialogList_SearchSectionDialogs: String { return self._s[3210]! } - public var AccessDenied_Contacts: String { return self._s[3211]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3213]! } - public var Passport_ScanPassportHelp: String { return self._s[3214]! } - public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3215]! } - public var ChatListFolder_NameChannels: String { return self._s[3216]! } - public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3217]! } + public var Localization_LanguageCustom: String { return self._s[3199]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[3200]! } + public var Settings_UsernameEmpty: String { return self._s[3201]! } + public var Settings_FAQ_URL: String { return self._s[3202]! } + public var ChatList_UndoArchiveText1: String { return self._s[3203]! } + public var Common_Select: String { return self._s[3205]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3206]! } + public var Notification_PassportValueAddress: String { return self._s[3207]! } + public var Conversation_MessageDialogDelete: String { return self._s[3208]! } + public var Map_OpenInYandexNavigator: String { return self._s[3210]! } + public var DialogList_SearchSectionDialogs: String { return self._s[3211]! } + public var AccessDenied_Contacts: String { return self._s[3212]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3214]! } + public var Passport_ScanPassportHelp: String { return self._s[3215]! } + public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3216]! } + public var ChatListFolder_NameChannels: String { return self._s[3217]! } + public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3218]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3218]!, self._r[3218]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3219]!, self._r[3219]!, [_1, _2]) } - public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3219]! } + public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3220]! } public func VoiceChat_InviteMemberToGroupFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3220]!, self._r[3220]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3221]!, self._r[3221]!, [_1, _2]) } - public var Conversation_GifTooltip: String { return self._s[3221]! } - public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3222]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3224]! } - public var VoiceChat_Connecting: String { return self._s[3225]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3226]! } + public var Conversation_GifTooltip: String { return self._s[3222]! } + public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3223]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3225]! } + public var VoiceChat_Connecting: String { return self._s[3226]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3227]! } public func Channel_AdminLog_CreatedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3227]!, self._r[3227]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3228]!, self._r[3228]!, [_1, _2]) } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3228]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3229]! } - public var CreatePoll_Quiz: String { return self._s[3230]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[3232]! } - public var Watch_Message_Invoice: String { return self._s[3233]! } - public var Settings_AddAnotherAccount_Help: String { return self._s[3234]! } - public var Watch_Message_Unsupported: String { return self._s[3235]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3229]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3230]! } + public var CreatePoll_Quiz: String { return self._s[3231]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[3233]! } + public var Watch_Message_Invoice: String { return self._s[3234]! } + public var Settings_AddAnotherAccount_Help: String { return self._s[3235]! } + public var Watch_Message_Unsupported: String { return self._s[3236]! } public func Call_CameraOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3237]!, self._r[3237]!, [_0]) + return formatWithArgumentRanges(self._s[3238]!, self._r[3238]!, [_0]) } - public var AuthSessions_TerminateOtherSessions: String { return self._s[3238]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[3240]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3241]! } - public var Call_IncomingVoiceCall: String { return self._s[3242]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[3239]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[3241]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3242]! } + public var Call_IncomingVoiceCall: String { return self._s[3243]! } public func Channel_AdminLog_MessageTransferedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3243]!, self._r[3243]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3244]!, self._r[3244]!, [_1, _2]) } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[3244]! } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3245]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3246]! } - public var Group_ErrorAccessDenied: String { return self._s[3247]! } - public var PasscodeSettings_HelpTop: String { return self._s[3248]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3249]! } - public var AddContact_SharedContactException: String { return self._s[3250]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[3251]! } - public var Privacy_TopPeers: String { return self._s[3252]! } - public var Web_OpenExternal: String { return self._s[3253]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[3254]! } - public var Channel_Management_LabelAdministrator: String { return self._s[3255]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[3245]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3246]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3247]! } + public var Group_ErrorAccessDenied: String { return self._s[3248]! } + public var PasscodeSettings_HelpTop: String { return self._s[3249]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3250]! } + public var AddContact_SharedContactException: String { return self._s[3251]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[3252]! } + public var Privacy_TopPeers: String { return self._s[3253]! } + public var Web_OpenExternal: String { return self._s[3254]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[3255]! } + public var Channel_Management_LabelAdministrator: String { return self._s[3256]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3256]!, self._r[3256]!, [_0]) + return formatWithArgumentRanges(self._s[3257]!, self._r[3257]!, [_0]) } - public var Conversation_PhoneCopied: String { return self._s[3257]! } - public var Permissions_Skip: String { return self._s[3258]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3259]! } + public var Conversation_PhoneCopied: String { return self._s[3258]! } + public var Permissions_Skip: String { return self._s[3259]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3260]! } public func VoiceChat_ForwardTooltip_TwoChats(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3260]!, self._r[3260]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3261]!, self._r[3261]!, [_0, _1]) } - public var PeopleNearby_Title: String { return self._s[3261]! } - public var GroupInfo_SharedMediaNone: String { return self._s[3262]! } + public var PeopleNearby_Title: String { return self._s[3262]! } + public var GroupInfo_SharedMediaNone: String { return self._s[3263]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3264]!, self._r[3264]!, [_1]) + return formatWithArgumentRanges(self._s[3265]!, self._r[3265]!, [_1]) } - public var Profile_MessageLifetime1w: String { return self._s[3265]! } + public var Profile_MessageLifetime1w: String { return self._s[3266]! } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3266]!, self._r[3266]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3267]!, self._r[3267]!, [_1, _2, _3]) } - public var WebBrowser_DefaultBrowser: String { return self._s[3267]! } - public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3269]! } - public var EditTheme_Edit_BottomInfo: String { return self._s[3270]! } - public var Privacy_Forwards_Preview: String { return self._s[3271]! } - public var Settings_EditAccount: String { return self._s[3272]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3268]! } + public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3270]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[3271]! } + public var Privacy_Forwards_Preview: String { return self._s[3272]! } + public var Settings_EditAccount: String { return self._s[3273]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3273]!, self._r[3273]!, [_0]) + return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_0]) } - public var TwoFactorSetup_Intro_Title: String { return self._s[3274]! } + public var TwoFactorSetup_Intro_Title: String { return self._s[3275]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3276]!, self._r[3276]!, [_1]) + return formatWithArgumentRanges(self._s[3277]!, self._r[3277]!, [_1]) } - public var PeerInfo_ButtonVideoCall: String { return self._s[3277]! } + public var PeerInfo_ButtonVideoCall: String { return self._s[3278]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3278]!, self._r[3278]!, [_0]) + return formatWithArgumentRanges(self._s[3279]!, self._r[3279]!, [_0]) } - public var Login_InfoHelp: String { return self._s[3279]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3280]! } - public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3281]! } - public var Profile_MessageLifetime1d: String { return self._s[3282]! } - public var Group_UpgradeConfirmation: String { return self._s[3283]! } + public var Login_InfoHelp: String { return self._s[3280]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3281]! } + public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3282]! } + public var Profile_MessageLifetime1d: String { return self._s[3283]! } + public var Group_UpgradeConfirmation: String { return self._s[3284]! } public func PUSH_PINNED_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3284]!, self._r[3284]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3285]!, self._r[3285]!, [_1, _2]) } - public var Appearance_RemoveThemeColor: String { return self._s[3285]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3286]! } + public var Appearance_RemoveThemeColor: String { return self._s[3286]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3287]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3287]!, self._r[3287]!, [_0]) + return formatWithArgumentRanges(self._s[3288]!, self._r[3288]!, [_0]) } - public var UserInfo_BotSettings: String { return self._s[3288]! } + public var UserInfo_BotSettings: String { return self._s[3289]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3290]!, self._r[3290]!, [_0]) + return formatWithArgumentRanges(self._s[3291]!, self._r[3291]!, [_0]) } - public var Permissions_ContactsText_v0: String { return self._s[3291]! } - public var Conversation_PinMessagesForMe: String { return self._s[3292]! } - public var VoiceChat_PanelJoin: String { return self._s[3293]! } - public var Conversation_DiscussionStarted: String { return self._s[3295]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3296]! } - public var SharedMedia_SearchNoResults: String { return self._s[3298]! } + public var Permissions_ContactsText_v0: String { return self._s[3292]! } + public var Conversation_PinMessagesForMe: String { return self._s[3293]! } + public var VoiceChat_PanelJoin: String { return self._s[3294]! } + public var Conversation_DiscussionStarted: String { return self._s[3296]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3297]! } + public var SharedMedia_SearchNoResults: String { return self._s[3299]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3300]!, self._r[3300]!, [_0]) + return formatWithArgumentRanges(self._s[3301]!, self._r[3301]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3302]!, self._r[3302]!, [_0]) + return formatWithArgumentRanges(self._s[3303]!, self._r[3303]!, [_0]) } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3303]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3304]! } public func TwoStepAuth_ResetPendingText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3304]!, self._r[3304]!, [_0]) + return formatWithArgumentRanges(self._s[3305]!, self._r[3305]!, [_0]) } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3305]! } - public var Call_AudioRouteHeadphones: String { return self._s[3306]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3306]! } + public var Call_AudioRouteHeadphones: String { return self._s[3307]! } public func Notification_VoiceChatScheduledTomorrowChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3308]!, self._r[3308]!, [_0]) + return formatWithArgumentRanges(self._s[3309]!, self._r[3309]!, [_0]) } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3309]!, self._r[3309]!, [_1]) + return formatWithArgumentRanges(self._s[3310]!, self._r[3310]!, [_1]) } - public var Passport_Identity_FilesView: String { return self._s[3310]! } - public var TwoStepAuth_SetupEmail: String { return self._s[3311]! } - public var Widget_ApplicationStartRequired: String { return self._s[3312]! } - public var PhotoEditor_Original: String { return self._s[3313]! } - public var Call_YourMicrophoneOff: String { return self._s[3314]! } - public var Permissions_ContactsAllow_v0: String { return self._s[3315]! } - public var Conversation_CardNumberCopied: String { return self._s[3316]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3317]! } - public var PrivacyPolicy_Decline: String { return self._s[3318]! } - public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3319]! } - public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3320]! } - public var ChatListFolder_IncludeSectionInfo: String { return self._s[3321]! } + public var Passport_Identity_FilesView: String { return self._s[3311]! } + public var TwoStepAuth_SetupEmail: String { return self._s[3312]! } + public var Widget_ApplicationStartRequired: String { return self._s[3313]! } + public var PhotoEditor_Original: String { return self._s[3314]! } + public var Call_YourMicrophoneOff: String { return self._s[3315]! } + public var Permissions_ContactsAllow_v0: String { return self._s[3316]! } + public var Conversation_CardNumberCopied: String { return self._s[3317]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3318]! } + public var PrivacyPolicy_Decline: String { return self._s[3319]! } + public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3320]! } + public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3321]! } + public var ChatListFolder_IncludeSectionInfo: String { return self._s[3322]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3322]!, self._r[3322]!, [_0]) + return formatWithArgumentRanges(self._s[3323]!, self._r[3323]!, [_0]) } - public var Passport_Identity_Name: String { return self._s[3323]! } - public var WallpaperPreview_PatternTitle: String { return self._s[3325]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3326]! } - public var WallpaperSearch_ColorOrange: String { return self._s[3328]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3329]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3330]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3331]! } - public var IntentsSettings_ResetAll: String { return self._s[3332]! } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3334]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3335]! } - public var ChatList_DeleteForAllSubscribers: String { return self._s[3336]! } - public var Notification_Exceptions_Add: String { return self._s[3337]! } - public var Group_DeleteGroup: String { return self._s[3338]! } - public var Cache_Help: String { return self._s[3339]! } - public var Call_AudioRouteMute: String { return self._s[3340]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3341]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[3342]! } + public var Passport_Identity_Name: String { return self._s[3324]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3326]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3327]! } + public var WallpaperSearch_ColorOrange: String { return self._s[3329]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3330]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3331]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3332]! } + public var IntentsSettings_ResetAll: String { return self._s[3333]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3335]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3336]! } + public var ChatList_DeleteForAllSubscribers: String { return self._s[3337]! } + public var Notification_Exceptions_Add: String { return self._s[3338]! } + public var Group_DeleteGroup: String { return self._s[3339]! } + public var Cache_Help: String { return self._s[3340]! } + public var Call_AudioRouteMute: String { return self._s[3341]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3342]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[3343]! } public func VoiceChat_Status_MembersFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3343]!, self._r[3343]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3344]!, self._r[3344]!, [_1, _2]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3344]!, self._r[3344]!, [_1]) + return formatWithArgumentRanges(self._s[3345]!, self._r[3345]!, [_1]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3345]!, self._r[3345]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3346]!, self._r[3346]!, [_1, _2]) } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3346]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[3347]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3347]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[3348]! } public func PUSH_CHAT_VOICECHAT_INVITE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3348]!, self._r[3348]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3349]!, self._r[3349]!, [_1, _2, _3]) } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3349]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3350]! } - public var ClearCache_StorageFree: String { return self._s[3351]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3350]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3351]! } + public var ClearCache_StorageFree: String { return self._s[3352]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3352]!, self._r[3352]!, [_0]) + return formatWithArgumentRanges(self._s[3353]!, self._r[3353]!, [_0]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[3353]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[3354]! } public func Channel_AdminLog_EditedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3355]!, self._r[3355]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, [_1, _2]) } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[3356]! } - public var DialogList_Typing: String { return self._s[3357]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[3357]! } + public var DialogList_Typing: String { return self._s[3358]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3358]!, self._r[3358]!, [_0]) + return formatWithArgumentRanges(self._s[3359]!, self._r[3359]!, [_0]) } - public var Target_SelectGroup: String { return self._s[3359]! } - public var AuthSessions_IncompleteAttempts: String { return self._s[3360]! } - public var TwoStepAuth_RecoveryEmailResetText: String { return self._s[3361]! } + public var Target_SelectGroup: String { return self._s[3360]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3361]! } + public var TwoStepAuth_RecoveryEmailResetText: String { return self._s[3362]! } public func Notification_ProximityReached(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3362]!, self._r[3362]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3363]!, self._r[3363]!, [_1, _2, _3]) } - public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3363]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3364]! } + public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3364]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3365]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3365]!, self._r[3365]!, [_0]) + return formatWithArgumentRanges(self._s[3366]!, self._r[3366]!, [_0]) } - public var Channel_AdminLog_CanSendMessages: String { return self._s[3366]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3367]! } - public var ChatSettings_TextSize: String { return self._s[3368]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3370]! } - public var Map_SendThisPlace: String { return self._s[3371]! } - public var Conversation_TextCopied: String { return self._s[3372]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3373]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3374]! } - public var Call_ShareStats: String { return self._s[3375]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[3367]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3368]! } + public var ChatSettings_TextSize: String { return self._s[3369]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3371]! } + public var Map_SendThisPlace: String { return self._s[3372]! } + public var Conversation_TextCopied: String { return self._s[3373]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3374]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3375]! } + public var Call_ShareStats: String { return self._s[3376]! } public func PUSH_CHAT_VOICECHAT_END(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3377]!, self._r[3377]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3378]!, self._r[3378]!, [_1, _2]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3378]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[3379]! } - public var Settings_Support: String { return self._s[3380]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3381]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3379]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[3380]! } + public var Settings_Support: String { return self._s[3381]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3382]! } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3383]!, self._r[3383]!, [_0]) + return formatWithArgumentRanges(self._s[3384]!, self._r[3384]!, [_0]) } - public var Watch_Conversation_GroupInfo: String { return self._s[3384]! } - public var Tour_Text4: String { return self._s[3385]! } - public var VoiceChat_CancelReminder: String { return self._s[3386]! } - public var Calls_StartNewCall: String { return self._s[3387]! } - public var UserInfo_FakeUserWarning: String { return self._s[3389]! } - public var PasscodeSettings_AutoLock: String { return self._s[3390]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3391]! } - public var Bot_DescriptionTitle: String { return self._s[3393]! } - public var Map_LocationTitle: String { return self._s[3394]! } - public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3395]! } - public var Conversation_HashtagCopied: String { return self._s[3396]! } + public var Watch_Conversation_GroupInfo: String { return self._s[3385]! } + public var Tour_Text4: String { return self._s[3386]! } + public var VoiceChat_CancelReminder: String { return self._s[3387]! } + public var Calls_StartNewCall: String { return self._s[3388]! } + public var UserInfo_FakeUserWarning: String { return self._s[3390]! } + public var PasscodeSettings_AutoLock: String { return self._s[3391]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3392]! } + public var Bot_DescriptionTitle: String { return self._s[3394]! } + public var Map_LocationTitle: String { return self._s[3395]! } + public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3396]! } + public var Conversation_HashtagCopied: String { return self._s[3397]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3397]!, self._r[3397]!, [_1]) + return formatWithArgumentRanges(self._s[3398]!, self._r[3398]!, [_1]) } - public var VoiceChat_ReminderNotify: String { return self._s[3398]! } - public var Login_EmailNotConfiguredError: String { return self._s[3399]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[3400]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[3401]! } - public var Permissions_CellularDataText_v0: String { return self._s[3402]! } - public var Conversation_EncryptionProcessing: String { return self._s[3403]! } - public var GroupPermission_Delete: String { return self._s[3405]! } - public var Contacts_SortByName: String { return self._s[3406]! } - public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3407]! } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[3408]! } - public var Group_Management_AddModeratorHelp: String { return self._s[3410]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3411]! } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3412]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[3414]! } + public var VoiceChat_ReminderNotify: String { return self._s[3399]! } + public var Login_EmailNotConfiguredError: String { return self._s[3400]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[3401]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[3402]! } + public var Permissions_CellularDataText_v0: String { return self._s[3403]! } + public var Conversation_EncryptionProcessing: String { return self._s[3404]! } + public var GroupPermission_Delete: String { return self._s[3406]! } + public var Contacts_SortByName: String { return self._s[3407]! } + public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3408]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[3409]! } + public var Group_Management_AddModeratorHelp: String { return self._s[3411]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3412]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3413]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[3415]! } public func PUSH_CHANNEL_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3415]!, self._r[3415]!, [_1]) + return formatWithArgumentRanges(self._s[3416]!, self._r[3416]!, [_1]) } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3416]!, self._r[3416]!, [_0]) + return formatWithArgumentRanges(self._s[3417]!, self._r[3417]!, [_0]) } - public var ChatList_Context_Delete: String { return self._s[3417]! } - public var VoiceChat_InviteMember: String { return self._s[3418]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3419]! } - public var Conversation_Processing: String { return self._s[3420]! } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[3421]! } - public var ChatSettings_Stickers: String { return self._s[3422]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3423]! } - public var Passport_Language_cs: String { return self._s[3424]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3426]! } - public var Conversation_Contact: String { return self._s[3427]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[3428]! } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[3430]! } - public var Theme_Unsupported: String { return self._s[3431]! } - public var Privacy_TopPeersWarning: String { return self._s[3432]! } + public var ChatList_Context_Delete: String { return self._s[3418]! } + public var VoiceChat_InviteMember: String { return self._s[3419]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3420]! } + public var Conversation_Processing: String { return self._s[3421]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[3422]! } + public var ChatSettings_Stickers: String { return self._s[3423]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3424]! } + public var Passport_Language_cs: String { return self._s[3425]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3427]! } + public var Conversation_Contact: String { return self._s[3428]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[3429]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[3431]! } + public var Theme_Unsupported: String { return self._s[3432]! } + public var Privacy_TopPeersWarning: String { return self._s[3433]! } public func Conversation_ScheduledVoiceChatStartsTodayShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3433]!, self._r[3433]!, [_0]) + return formatWithArgumentRanges(self._s[3434]!, self._r[3434]!, [_0]) } - public var InviteLink_Title: String { return self._s[3435]! } + public var InviteLink_Title: String { return self._s[3436]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3436]!, self._r[3436]!, [_0]) + return formatWithArgumentRanges(self._s[3437]!, self._r[3437]!, [_0]) } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3437]! } - public var TwoStepAuth_RemovePassword: String { return self._s[3438]! } - public var Settings_CheckPhoneNumberText: String { return self._s[3439]! } - public var PeopleNearby_Users: String { return self._s[3440]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3441]! } - public var Settings_SetProfilePhoto: String { return self._s[3442]! } - public var Conversation_ContextMenuBan: String { return self._s[3443]! } - public var KeyCommand_ScrollUp: String { return self._s[3444]! } - public var Settings_ChatSettings: String { return self._s[3446]! } - public var CallList_RecentCallsHeader: String { return self._s[3447]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3438]! } + public var TwoStepAuth_RemovePassword: String { return self._s[3439]! } + public var Settings_CheckPhoneNumberText: String { return self._s[3440]! } + public var PeopleNearby_Users: String { return self._s[3441]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3442]! } + public var Settings_SetProfilePhoto: String { return self._s[3443]! } + public var Conversation_ContextMenuBan: String { return self._s[3444]! } + public var KeyCommand_ScrollUp: String { return self._s[3445]! } + public var Settings_ChatSettings: String { return self._s[3447]! } + public var CallList_RecentCallsHeader: String { return self._s[3448]! } public func PUSH_CHAT_MESSAGE_VIDEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3448]!, self._r[3448]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3449]!, self._r[3449]!, [_1, _2]) } - public var Stats_GroupTopInvitersTitle: String { return self._s[3449]! } - public var Passport_Phone_EnterOtherNumber: String { return self._s[3450]! } - public var VoiceChat_StartRecordingTitle: String { return self._s[3451]! } + public var Stats_GroupTopInvitersTitle: String { return self._s[3450]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[3451]! } + public var VoiceChat_StartRecordingTitle: String { return self._s[3452]! } public func Notification_VoiceChatScheduledToday(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3452]!, self._r[3452]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3453]!, self._r[3453]!, [_1, _2]) } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3454]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3455]! } - public var VoiceOver_ChatList_MessageRead: String { return self._s[3457]! } - public var Stats_GroupTopPoster_Promote: String { return self._s[3460]! } - public var Cache_Title: String { return self._s[3461]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3455]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3456]! } + public var VoiceOver_ChatList_MessageRead: String { return self._s[3458]! } + public var Stats_GroupTopPoster_Promote: String { return self._s[3461]! } + public var Cache_Title: String { return self._s[3462]! } public func Conversation_AutoremoveTimerSetToastText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3462]!, self._r[3462]!, [_0]) + return formatWithArgumentRanges(self._s[3463]!, self._r[3463]!, [_0]) } - public var Clipboard_SendPhoto: String { return self._s[3463]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3465]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3466]! } - public var WatchRemote_AlertTitle: String { return self._s[3469]! } - public var Appearance_ReduceMotion: String { return self._s[3470]! } + public var Clipboard_SendPhoto: String { return self._s[3464]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3466]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3467]! } + public var WatchRemote_AlertTitle: String { return self._s[3470]! } + public var Appearance_ReduceMotion: String { return self._s[3471]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3473]!, self._r[3473]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3474]!, self._r[3474]!, [_1, _2]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[3474]! } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3475]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[3476]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[3475]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3476]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[3477]! } public func Call_CallInProgressVoiceChatMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3477]!, self._r[3477]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3478]!, self._r[3478]!, [_1, _2]) } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3479]!, self._r[3479]!, [_0]) + return formatWithArgumentRanges(self._s[3480]!, self._r[3480]!, [_0]) } - public var ChatListFolder_DiscardConfirmation: String { return self._s[3480]! } + public var ChatListFolder_DiscardConfirmation: String { return self._s[3481]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3482]!, self._r[3482]!, [_0]) + return formatWithArgumentRanges(self._s[3483]!, self._r[3483]!, [_0]) } - public var InstantPage_Search: String { return self._s[3483]! } - public var ChatState_WaitingForNetwork: String { return self._s[3484]! } - public var GroupInfo_Sound: String { return self._s[3485]! } - public var NotificationsSound_Telegraph: String { return self._s[3486]! } + public var InstantPage_Search: String { return self._s[3484]! } + public var ChatState_WaitingForNetwork: String { return self._s[3485]! } + public var GroupInfo_Sound: String { return self._s[3486]! } + public var NotificationsSound_Telegraph: String { return self._s[3487]! } public func VoiceChat_ParticipantIsSpeaking(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3487]!, self._r[3487]!, [_1]) + return formatWithArgumentRanges(self._s[3488]!, self._r[3488]!, [_1]) } - public var NotificationsSound_Hello: String { return self._s[3488]! } - public var VoiceChat_LeaveConfirmation: String { return self._s[3489]! } - public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3490]! } - public var Passport_FieldIdentityDetailsHelp: String { return self._s[3491]! } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3492]! } - public var Conversation_HoldForVideo: String { return self._s[3493]! } - public var Conversation_PinOlderMessageAlertText: String { return self._s[3494]! } - public var Appearance_ShareTheme: String { return self._s[3495]! } - public var TwoStepAuth_SetupHint: String { return self._s[3496]! } - public var Stats_GrowthTitle: String { return self._s[3499]! } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3500]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[3501]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3502]! } - public var GroupPermission_NoSendMessages: String { return self._s[3505]! } - public var Conversation_SetReminder_Title: String { return self._s[3506]! } - public var Privacy_Calls_CustomHelp: String { return self._s[3507]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3508]! } + public var NotificationsSound_Hello: String { return self._s[3489]! } + public var VoiceChat_LeaveConfirmation: String { return self._s[3490]! } + public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3491]! } + public var Passport_FieldIdentityDetailsHelp: String { return self._s[3492]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3493]! } + public var Conversation_HoldForVideo: String { return self._s[3494]! } + public var Conversation_PinOlderMessageAlertText: String { return self._s[3495]! } + public var Appearance_ShareTheme: String { return self._s[3496]! } + public var TwoStepAuth_SetupHint: String { return self._s[3497]! } + public var Stats_GrowthTitle: String { return self._s[3500]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3501]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[3502]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3503]! } + public var GroupPermission_NoSendMessages: String { return self._s[3506]! } + public var Conversation_SetReminder_Title: String { return self._s[3507]! } + public var Privacy_Calls_CustomHelp: String { return self._s[3508]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3509]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3509]!, self._r[3509]!, [_0]) + return formatWithArgumentRanges(self._s[3510]!, self._r[3510]!, [_0]) } - public var InviteLinks_InviteLinkExpired: String { return self._s[3511]! } - public var Undo_SecretChatDeleted: String { return self._s[3512]! } - public var PhotoEditor_ContrastTool: String { return self._s[3513]! } - public var Privacy_Forwards: String { return self._s[3514]! } - public var AuthSessions_LoggedInWithTelegram: String { return self._s[3515]! } - public var KeyCommand_SendMessage: String { return self._s[3517]! } - public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3518]! } + public var InviteLinks_InviteLinkExpired: String { return self._s[3512]! } + public var Undo_SecretChatDeleted: String { return self._s[3513]! } + public var PhotoEditor_ContrastTool: String { return self._s[3514]! } + public var Privacy_Forwards: String { return self._s[3515]! } + public var AuthSessions_LoggedInWithTelegram: String { return self._s[3516]! } + public var KeyCommand_SendMessage: String { return self._s[3518]! } + public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3519]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3519]!, self._r[3519]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3520]!, self._r[3520]!, [_1, _2]) } - public var VoiceChat_VideoPaused: String { return self._s[3520]! } - public var GroupPermission_NoSendGifs: String { return self._s[3521]! } + public var VoiceChat_VideoPaused: String { return self._s[3521]! } + public var GroupPermission_NoSendGifs: String { return self._s[3522]! } public func Notification_VoiceChatEndedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3522]!, self._r[3522]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3523]!, self._r[3523]!, [_1, _2]) } - public var Notification_MessageLifetime2s: String { return self._s[3523]! } - public var Message_Theme: String { return self._s[3524]! } - public var Conversation_Dice_u1F3AF: String { return self._s[3527]! } + public var Notification_MessageLifetime2s: String { return self._s[3524]! } + public var Message_Theme: String { return self._s[3525]! } + public var Conversation_Dice_u1F3AF: String { return self._s[3528]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3528]!, self._r[3528]!, [_0]) + return formatWithArgumentRanges(self._s[3529]!, self._r[3529]!, [_0]) } - public var Group_UpgradeNoticeHeader: String { return self._s[3530]! } - public var PeerInfo_BioExpand: String { return self._s[3531]! } - public var Passport_DeletePersonalDetails: String { return self._s[3532]! } - public var Widget_NoUsers: String { return self._s[3533]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[3534]! } - public var VoiceChat_VideoPreviewDescription: String { return self._s[3535]! } - public var Login_TermsOfServiceDecline: String { return self._s[3536]! } - public var VoiceChat_UnmuteSuggestion: String { return self._s[3537]! } - public var CreatePoll_QuizTip: String { return self._s[3539]! } - public var Watch_LastSeen_WithinAWeek: String { return self._s[3540]! } - public var MessagePoll_SubmitVote: String { return self._s[3542]! } - public var ChatSettings_AutoDownloadEnabled: String { return self._s[3543]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[3544]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3545]! } - public var Conversation_UpdateTelegram: String { return self._s[3546]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3531]! } + public var PeerInfo_BioExpand: String { return self._s[3532]! } + public var Passport_DeletePersonalDetails: String { return self._s[3533]! } + public var Widget_NoUsers: String { return self._s[3534]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[3535]! } + public var VoiceChat_VideoPreviewDescription: String { return self._s[3536]! } + public var Login_TermsOfServiceDecline: String { return self._s[3537]! } + public var VoiceChat_UnmuteSuggestion: String { return self._s[3538]! } + public var CreatePoll_QuizTip: String { return self._s[3540]! } + public var Watch_LastSeen_WithinAWeek: String { return self._s[3541]! } + public var MessagePoll_SubmitVote: String { return self._s[3543]! } + public var ChatSettings_AutoDownloadEnabled: String { return self._s[3544]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[3545]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3546]! } + public var Conversation_UpdateTelegram: String { return self._s[3547]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3547]!, self._r[3547]!, [_0]) + return formatWithArgumentRanges(self._s[3548]!, self._r[3548]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3548]! } - public var CallSettings_Always: String { return self._s[3549]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[3550]! } - public var VoiceChat_MutedByAdminHelp: String { return self._s[3551]! } - public var Login_TermsOfServiceHeader: String { return self._s[3552]! } - public var KeyCommand_ChatInfo: String { return self._s[3553]! } - public var MessagePoll_LabelPoll: String { return self._s[3554]! } - public var Paint_Clear: String { return self._s[3555]! } - public var PeerInfo_ButtonMute: String { return self._s[3556]! } - public var LastSeen_WithinAWeek: String { return self._s[3557]! } - public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3558]! } - public var Passport_Identity_FrontSide: String { return self._s[3559]! } - public var Stickers_GroupStickers: String { return self._s[3560]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3561]! } + public var UserInfo_About_Placeholder: String { return self._s[3549]! } + public var CallSettings_Always: String { return self._s[3550]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[3551]! } + public var VoiceChat_MutedByAdminHelp: String { return self._s[3552]! } + public var Login_TermsOfServiceHeader: String { return self._s[3553]! } + public var KeyCommand_ChatInfo: String { return self._s[3554]! } + public var MessagePoll_LabelPoll: String { return self._s[3555]! } + public var Paint_Clear: String { return self._s[3556]! } + public var PeerInfo_ButtonMute: String { return self._s[3557]! } + public var LastSeen_WithinAWeek: String { return self._s[3558]! } + public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3559]! } + public var Passport_Identity_FrontSide: String { return self._s[3560]! } + public var Stickers_GroupStickers: String { return self._s[3561]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3562]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3562]!, self._r[3562]!, [_0]) + return formatWithArgumentRanges(self._s[3563]!, self._r[3563]!, [_0]) } - public var VoiceOver_BotCommands: String { return self._s[3563]! } + public var VoiceOver_BotCommands: String { return self._s[3564]! } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3566]!, self._r[3566]!, [_1]) + return formatWithArgumentRanges(self._s[3567]!, self._r[3567]!, [_1]) } - public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3567]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[3568]! } - public var InviteLink_ContextDelete: String { return self._s[3569]! } + public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3568]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[3569]! } + public var InviteLink_ContextDelete: String { return self._s[3570]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3570]!, self._r[3570]!, [_0]) + return formatWithArgumentRanges(self._s[3571]!, self._r[3571]!, [_0]) } - public var WebSearch_SearchNoResults: String { return self._s[3572]! } - public var Channel_DiscussionGroup_Create: String { return self._s[3573]! } - public var Passport_Language_es: String { return self._s[3574]! } - public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3575]! } - public var Map_LiveLocationShowAll: String { return self._s[3576]! } - public var Cache_MaximumCacheSizeHelp: String { return self._s[3578]! } - public var Map_OpenInGoogleMaps: String { return self._s[3579]! } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3581]! } - public var EditTheme_Create_BottomInfo: String { return self._s[3582]! } - public var PhotoEditor_BlurToolLinear: String { return self._s[3583]! } + public var WebSearch_SearchNoResults: String { return self._s[3573]! } + public var Channel_DiscussionGroup_Create: String { return self._s[3574]! } + public var Passport_Language_es: String { return self._s[3575]! } + public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3576]! } + public var Map_LiveLocationShowAll: String { return self._s[3577]! } + public var Cache_MaximumCacheSizeHelp: String { return self._s[3579]! } + public var Map_OpenInGoogleMaps: String { return self._s[3580]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3582]! } + public var EditTheme_Create_BottomInfo: String { return self._s[3583]! } + public var PhotoEditor_BlurToolLinear: String { return self._s[3584]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3584]!, self._r[3584]!, [_0]) + return formatWithArgumentRanges(self._s[3585]!, self._r[3585]!, [_0]) } - public var Passport_Phone_Delete: String { return self._s[3585]! } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3586]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[3587]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3588]! } + public var Passport_Phone_Delete: String { return self._s[3586]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3587]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[3588]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3589]! } public func EncryptionKey_Description(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3589]!, self._r[3589]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3590]!, self._r[3590]!, [_1, _2]) } - public var LogoutOptions_LogOutInfo: String { return self._s[3590]! } - public var Cache_ByPeerHeader: String { return self._s[3592]! } - public var Username_InvalidCharacters: String { return self._s[3593]! } - public var Checkout_ShippingAddress: String { return self._s[3595]! } + public var LogoutOptions_LogOutInfo: String { return self._s[3591]! } + public var Cache_ByPeerHeader: String { return self._s[3593]! } + public var Username_InvalidCharacters: String { return self._s[3594]! } + public var Checkout_ShippingAddress: String { return self._s[3596]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3596]!, self._r[3596]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[3597]!, self._r[3597]!, [_1, _2, _3, _4]) } - public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3598]! } - public var Conversation_AddContact: String { return self._s[3599]! } - public var Passport_Address_EditUtilityBill: String { return self._s[3600]! } - public var InviteLink_ContextGetQRCode: String { return self._s[3601]! } - public var Conversation_ChecksTooltip_Delivered: String { return self._s[3603]! } + public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3599]! } + public var Conversation_AddContact: String { return self._s[3600]! } + public var Passport_Address_EditUtilityBill: String { return self._s[3601]! } + public var InviteLink_ContextGetQRCode: String { return self._s[3602]! } + public var Conversation_ChecksTooltip_Delivered: String { return self._s[3604]! } public func Channel_AdminLog_MessageAddedAdminNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3604]!, self._r[3604]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3605]!, self._r[3605]!, [_1, _2]) } - public var Message_Video: String { return self._s[3605]! } + public var Message_Video: String { return self._s[3606]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3606]!, self._r[3606]!, [_0]) + return formatWithArgumentRanges(self._s[3607]!, self._r[3607]!, [_0]) } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3607]!, self._r[3607]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[3608]!, self._r[3608]!, ["\(_0)"]) } - public var InviteLink_ReactivateLink: String { return self._s[3608]! } - public var Passport_Language_km: String { return self._s[3610]! } + public var InviteLink_ReactivateLink: String { return self._s[3609]! } + public var Passport_Language_km: String { return self._s[3611]! } public func PUSH_MESSAGE_CHANNEL_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3611]!, self._r[3611]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3612]!, self._r[3612]!, [_1, _2, _3]) } - public var EmptyGroupInfo_Line4: String { return self._s[3612]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3614]! } - public var Notification_CallCanceledShort: String { return self._s[3615]! } - public var PhotoEditor_FadeTool: String { return self._s[3616]! } - public var Group_PublicLink_Info: String { return self._s[3617]! } - public var Contacts_DeselectAll: String { return self._s[3618]! } - public var Conversation_Moderate_Delete: String { return self._s[3620]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3621]! } - public var NotificationsSound_Note: String { return self._s[3624]! } + public var EmptyGroupInfo_Line4: String { return self._s[3613]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3615]! } + public var Notification_CallCanceledShort: String { return self._s[3616]! } + public var PhotoEditor_FadeTool: String { return self._s[3617]! } + public var Group_PublicLink_Info: String { return self._s[3618]! } + public var Contacts_DeselectAll: String { return self._s[3619]! } + public var Conversation_Moderate_Delete: String { return self._s[3621]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3622]! } + public var NotificationsSound_Note: String { return self._s[3625]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3625]!, self._r[3625]!, [_0]) + return formatWithArgumentRanges(self._s[3626]!, self._r[3626]!, [_0]) } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3626]! } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3628]! } - public var DialogList_SearchSectionGlobal: String { return self._s[3629]! } - public var AccessDenied_Settings: String { return self._s[3630]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3631]! } - public var AuthSessions_EmptyTitle: String { return self._s[3632]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3633]! } - public var GroupInfo_GroupType: String { return self._s[3634]! } - public var Calls_Missed: String { return self._s[3635]! } - public var Contacts_VoiceOver_AddContact: String { return self._s[3636]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3638]! } - public var Passport_Language_uz: String { return self._s[3639]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3640]! } - public var PhotoEditor_BlurToolPortrait: String { return self._s[3641]! } - public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3642]! } - public var Map_ChooseLocationTitle: String { return self._s[3643]! } - public var Checkout_EnterPassword: String { return self._s[3644]! } - public var GroupInfo_ConvertToSupergroup: String { return self._s[3645]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3646]! } - public var NetworkUsageSettings_Title: String { return self._s[3647]! } - public var Location_ProximityAlertCancelled: String { return self._s[3648]! } - public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3649]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[3650]! } - public var Compose_NewChannel: String { return self._s[3651]! } - public var Privacy_PaymentsClearInfo: String { return self._s[3653]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3627]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3629]! } + public var DialogList_SearchSectionGlobal: String { return self._s[3630]! } + public var AccessDenied_Settings: String { return self._s[3631]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3632]! } + public var AuthSessions_EmptyTitle: String { return self._s[3633]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3634]! } + public var GroupInfo_GroupType: String { return self._s[3635]! } + public var Calls_Missed: String { return self._s[3636]! } + public var Contacts_VoiceOver_AddContact: String { return self._s[3637]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3639]! } + public var Passport_Language_uz: String { return self._s[3640]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3641]! } + public var PhotoEditor_BlurToolPortrait: String { return self._s[3642]! } + public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3643]! } + public var Map_ChooseLocationTitle: String { return self._s[3644]! } + public var Checkout_EnterPassword: String { return self._s[3645]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[3646]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3647]! } + public var NetworkUsageSettings_Title: String { return self._s[3648]! } + public var Location_ProximityAlertCancelled: String { return self._s[3649]! } + public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3650]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[3651]! } + public var Compose_NewChannel: String { return self._s[3652]! } + public var Privacy_PaymentsClearInfo: String { return self._s[3654]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3654]!, self._r[3654]!, [_1]) + return formatWithArgumentRanges(self._s[3655]!, self._r[3655]!, [_1]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3655]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3656]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[3659]! } - public var WallpaperSearch_ColorBrown: String { return self._s[3660]! } - public var Appearance_AppIconDefault: String { return self._s[3661]! } - public var StickerSettings_ContextInfo: String { return self._s[3664]! } - public var Channel_AddBotErrorNoRights: String { return self._s[3665]! } - public var Passport_FieldPhone: String { return self._s[3667]! } - public var Contacts_PermissionsTitle: String { return self._s[3668]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3669]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3656]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3657]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[3660]! } + public var WallpaperSearch_ColorBrown: String { return self._s[3661]! } + public var Appearance_AppIconDefault: String { return self._s[3662]! } + public var StickerSettings_ContextInfo: String { return self._s[3665]! } + public var Channel_AddBotErrorNoRights: String { return self._s[3666]! } + public var Passport_FieldPhone: String { return self._s[3668]! } + public var Contacts_PermissionsTitle: String { return self._s[3669]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3670]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3670]!, self._r[3670]!, [_0]) + return formatWithArgumentRanges(self._s[3671]!, self._r[3671]!, [_0]) } - public var Bot_Unblock: String { return self._s[3671]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[3672]! } - public var InviteLink_InviteLinkCopiedText: String { return self._s[3673]! } - public var Passport_PasswordHelp: String { return self._s[3674]! } - public var TwoFactorSetup_PasswordRecovery_PlaceholderConfirmPassword: String { return self._s[3675]! } - public var Watch_Conversation_UserInfo: String { return self._s[3676]! } + public var Bot_Unblock: String { return self._s[3672]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[3673]! } + public var InviteLink_InviteLinkCopiedText: String { return self._s[3674]! } + public var Passport_PasswordHelp: String { return self._s[3675]! } + public var TwoFactorSetup_PasswordRecovery_PlaceholderConfirmPassword: String { return self._s[3676]! } + public var Watch_Conversation_UserInfo: String { return self._s[3677]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3680]!, self._r[3680]!, [_0]) + return formatWithArgumentRanges(self._s[3681]!, self._r[3681]!, [_0]) } - public var State_Connecting: String { return self._s[3682]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3683]! } - public var TextFormat_AddLinkPlaceholder: String { return self._s[3684]! } - public var Conversation_Dice_u1F3B2: String { return self._s[3685]! } + public var State_Connecting: String { return self._s[3683]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3684]! } + public var TextFormat_AddLinkPlaceholder: String { return self._s[3685]! } + public var Conversation_Dice_u1F3B2: String { return self._s[3686]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3686]!, self._r[3686]!, [_0]) + return formatWithArgumentRanges(self._s[3687]!, self._r[3687]!, [_0]) } - public var Conversation_SendingOptionsTooltip: String { return self._s[3687]! } - public var ChatList_UndoArchiveTitle: String { return self._s[3688]! } - public var ChatList_EmptyChatListNewMessage: String { return self._s[3689]! } - public var WallpaperSearch_ColorGreen: String { return self._s[3691]! } - public var PhotoEditor_BlurToolOff: String { return self._s[3692]! } - public var Conversation_AutoremoveOff: String { return self._s[3693]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[3694]! } - public var Weekday_Saturday: String { return self._s[3695]! } - public var DialogList_Unread: String { return self._s[3696]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3697]! } - public var Stats_GroupPosters: String { return self._s[3698]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[3688]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3689]! } + public var ChatList_EmptyChatListNewMessage: String { return self._s[3690]! } + public var WallpaperSearch_ColorGreen: String { return self._s[3692]! } + public var PhotoEditor_BlurToolOff: String { return self._s[3693]! } + public var Conversation_AutoremoveOff: String { return self._s[3694]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[3695]! } + public var Weekday_Saturday: String { return self._s[3696]! } + public var DialogList_Unread: String { return self._s[3697]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3698]! } + public var Stats_GroupPosters: String { return self._s[3699]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3699]!, self._r[3699]!, [_1]) + return formatWithArgumentRanges(self._s[3700]!, self._r[3700]!, [_1]) } - public var Conversation_AlsoClearCacheTitle: String { return self._s[3700]! } + public var Conversation_AlsoClearCacheTitle: String { return self._s[3701]! } public func Conversation_ForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3702]!, self._r[3702]!, [_0, _1]) } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3704]!, self._r[3704]!, [_0]) + return formatWithArgumentRanges(self._s[3705]!, self._r[3705]!, [_0]) } - public var ReportPeer_ReasonChildAbuse: String { return self._s[3705]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[3706]! } public func Channel_AdminLog_MessageUnkickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3706]!, self._r[3706]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3707]!, self._r[3707]!, [_1, _2]) } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[3707]! } - public var Conversation_EmailCopied: String { return self._s[3709]! } - public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3710]! } - public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3711]! } - public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3712]! } - public var VoiceChat_LateBy: String { return self._s[3713]! } - public var Passport_Language_dv: String { return self._s[3714]! } - public var TwoFactorSetup_PasswordRecovery_Text: String { return self._s[3715]! } - public var GroupPermission_AddSuccess: String { return self._s[3717]! } - public var Passport_Email_Help: String { return self._s[3718]! } - public var Call_ReportPlaceholder: String { return self._s[3719]! } - public var CreatePoll_AddOption: String { return self._s[3720]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3722]! } - public var PeerInfo_ButtonLeave: String { return self._s[3723]! } - public var PhotoEditor_TiltShift: String { return self._s[3726]! } - public var SecretGif_Title: String { return self._s[3728]! } - public var GroupInfo_InviteLinks: String { return self._s[3729]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[3730]! } - public var SocksProxySetup_Connecting: String { return self._s[3732]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3733]! } - public var ContactInfo_PhoneLabelWork: String { return self._s[3734]! } - public var Stats_GroupTopHoursTitle: String { return self._s[3735]! } - public var Compose_NewMessage: String { return self._s[3736]! } - public var VoiceOver_Common_SwitchHint: String { return self._s[3737]! } - public var NotificationsSound_Synth: String { return self._s[3738]! } - public var ChatImport_UserErrorNotMutual: String { return self._s[3739]! } - public var Conversation_FileOpenIn: String { return self._s[3740]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[3741]! } - public var UserInfo_SendMessage: String { return self._s[3742]! } - public var Checkout_PayWithFaceId: String { return self._s[3743]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[3708]! } + public var Conversation_EmailCopied: String { return self._s[3710]! } + public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3711]! } + public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3712]! } + public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3713]! } + public var VoiceChat_LateBy: String { return self._s[3714]! } + public var Passport_Language_dv: String { return self._s[3715]! } + public var TwoFactorSetup_PasswordRecovery_Text: String { return self._s[3716]! } + public var GroupPermission_AddSuccess: String { return self._s[3718]! } + public var Passport_Email_Help: String { return self._s[3719]! } + public var Call_ReportPlaceholder: String { return self._s[3720]! } + public var CreatePoll_AddOption: String { return self._s[3721]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3723]! } + public var PeerInfo_ButtonLeave: String { return self._s[3724]! } + public var PhotoEditor_TiltShift: String { return self._s[3727]! } + public var SecretGif_Title: String { return self._s[3729]! } + public var GroupInfo_InviteLinks: String { return self._s[3730]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[3731]! } + public var SocksProxySetup_Connecting: String { return self._s[3733]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3734]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[3735]! } + public var Stats_GroupTopHoursTitle: String { return self._s[3736]! } + public var Compose_NewMessage: String { return self._s[3737]! } + public var VoiceOver_Common_SwitchHint: String { return self._s[3738]! } + public var NotificationsSound_Synth: String { return self._s[3739]! } + public var ChatImport_UserErrorNotMutual: String { return self._s[3740]! } + public var Conversation_FileOpenIn: String { return self._s[3741]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[3742]! } + public var UserInfo_SendMessage: String { return self._s[3743]! } + public var Checkout_PayWithFaceId: String { return self._s[3744]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3744]!, self._r[3744]!, [_0]) + return formatWithArgumentRanges(self._s[3745]!, self._r[3745]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[3745]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3746]! } - public var Conversation_ViewChannel: String { return self._s[3747]! } + public var TextFormat_Strikethrough: String { return self._s[3746]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3747]! } + public var Conversation_ViewChannel: String { return self._s[3748]! } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3748]!, self._r[3748]!, [_0]) + return formatWithArgumentRanges(self._s[3749]!, self._r[3749]!, [_0]) } - public var Channel_Stickers_Placeholder: String { return self._s[3749]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3750]! } - public var Message_ScamAccount: String { return self._s[3751]! } - public var Camera_FlashAuto: String { return self._s[3752]! } - public var Conversation_EncryptedDescription1: String { return self._s[3753]! } - public var LocalGroup_Text: String { return self._s[3754]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3755]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[3756]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[3757]! } - public var Conversation_EncryptedDescription2: String { return self._s[3758]! } - public var Conversation_CancelForwardText: String { return self._s[3759]! } - public var Notification_GroupActivated: String { return self._s[3760]! } - public var LastSeen_Lately: String { return self._s[3761]! } - public var Conversation_EncryptedDescription3: String { return self._s[3762]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3763]! } - public var TwoStepAuth_RecoveryUnavailableResetText: String { return self._s[3764]! } - public var Conversation_SwipeToReplyHintText: String { return self._s[3765]! } - public var Conversation_EncryptedDescription4: String { return self._s[3766]! } - public var SharedMedia_EmptyTitle: String { return self._s[3767]! } - public var Appearance_CreateTheme: String { return self._s[3769]! } - public var Stats_SharesPerPost: String { return self._s[3770]! } - public var Contacts_TabTitle: String { return self._s[3771]! } - public var Weekday_ShortThursday: String { return self._s[3772]! } - public var MessageTimer_Forever: String { return self._s[3773]! } - public var ChatListFolder_CategoryArchived: String { return self._s[3774]! } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3775]! } - public var EditTheme_Create_TopInfo: String { return self._s[3777]! } + public var Channel_Stickers_Placeholder: String { return self._s[3750]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3751]! } + public var Message_ScamAccount: String { return self._s[3752]! } + public var Camera_FlashAuto: String { return self._s[3753]! } + public var Conversation_EncryptedDescription1: String { return self._s[3754]! } + public var LocalGroup_Text: String { return self._s[3755]! } + public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3756]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[3757]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[3758]! } + public var Conversation_EncryptedDescription2: String { return self._s[3759]! } + public var Conversation_CancelForwardText: String { return self._s[3760]! } + public var Notification_GroupActivated: String { return self._s[3761]! } + public var LastSeen_Lately: String { return self._s[3762]! } + public var Conversation_EncryptedDescription3: String { return self._s[3763]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3764]! } + public var TwoStepAuth_RecoveryUnavailableResetText: String { return self._s[3765]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3766]! } + public var Conversation_EncryptedDescription4: String { return self._s[3767]! } + public var SharedMedia_EmptyTitle: String { return self._s[3768]! } + public var Appearance_CreateTheme: String { return self._s[3770]! } + public var Stats_SharesPerPost: String { return self._s[3771]! } + public var Contacts_TabTitle: String { return self._s[3772]! } + public var Weekday_ShortThursday: String { return self._s[3773]! } + public var MessageTimer_Forever: String { return self._s[3774]! } + public var ChatListFolder_CategoryArchived: String { return self._s[3775]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3776]! } + public var EditTheme_Create_TopInfo: String { return self._s[3778]! } public func VoiceOver_ChatList_MessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3778]!, self._r[3778]!, [_0]) + return formatWithArgumentRanges(self._s[3779]!, self._r[3779]!, [_0]) } - public var Month_GenDecember: String { return self._s[3779]! } - public var EnterPasscode_EnterPasscode: String { return self._s[3780]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3781]! } - public var PeopleNearby_CreateGroup: String { return self._s[3783]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3784]! } - public var Paint_ClearConfirm: String { return self._s[3785]! } - public var ChatList_ReadAll: String { return self._s[3786]! } - public var ChatSettings_IntentsSettings: String { return self._s[3787]! } - public var Passport_PassportInformation: String { return self._s[3789]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3791]! } - public var Location_ProximityNotification_DistanceMI: String { return self._s[3794]! } - public var PhotoEditor_ExposureTool: String { return self._s[3795]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3796]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[3797]! } - public var Stats_GroupTopPoster_History: String { return self._s[3798]! } - public var UserInfo_AddPhone: String { return self._s[3799]! } - public var Media_SendWithTimer: String { return self._s[3801]! } - public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3802]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3803]! } - public var GroupInfo_GroupHistoryShort: String { return self._s[3804]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3805]! } - public var ChatList_Context_Unarchive: String { return self._s[3807]! } + public var Month_GenDecember: String { return self._s[3780]! } + public var EnterPasscode_EnterPasscode: String { return self._s[3781]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3782]! } + public var PeopleNearby_CreateGroup: String { return self._s[3784]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3785]! } + public var Paint_ClearConfirm: String { return self._s[3786]! } + public var ChatList_ReadAll: String { return self._s[3787]! } + public var ChatSettings_IntentsSettings: String { return self._s[3788]! } + public var Passport_PassportInformation: String { return self._s[3790]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3792]! } + public var Location_ProximityNotification_DistanceMI: String { return self._s[3795]! } + public var PhotoEditor_ExposureTool: String { return self._s[3796]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3797]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[3798]! } + public var Stats_GroupTopPoster_History: String { return self._s[3799]! } + public var UserInfo_AddPhone: String { return self._s[3800]! } + public var Media_SendWithTimer: String { return self._s[3802]! } + public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3803]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3804]! } + public var GroupInfo_GroupHistoryShort: String { return self._s[3805]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3806]! } + public var ChatList_Context_Unarchive: String { return self._s[3808]! } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3808]!, self._r[3808]!, [_0]) + return formatWithArgumentRanges(self._s[3809]!, self._r[3809]!, [_0]) } - public var BlockedUsers_Title: String { return self._s[3810]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[3811]! } - public var Media_ShareThisPhoto: String { return self._s[3812]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3813]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[3814]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3818]! } - public var CallFeedback_ReasonNoise: String { return self._s[3820]! } - public var WebBrowser_Title: String { return self._s[3821]! } + public var BlockedUsers_Title: String { return self._s[3811]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[3812]! } + public var Media_ShareThisPhoto: String { return self._s[3813]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3814]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[3815]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3819]! } + public var CallFeedback_ReasonNoise: String { return self._s[3821]! } + public var WebBrowser_Title: String { return self._s[3822]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3822]!, self._r[3822]!, [_0]) + return formatWithArgumentRanges(self._s[3823]!, self._r[3823]!, [_0]) } - public var Notification_MessageLifetime5s: String { return self._s[3824]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3825]! } - public var Profile_MessageLifetime1m: String { return self._s[3827]! } - public var Passport_ScanPassport: String { return self._s[3828]! } - public var Stats_LoadingTitle: String { return self._s[3829]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3831]! } - public var Permissions_NotificationsAllow_v0: String { return self._s[3832]! } - public var Login_InvalidFirstNameError: String { return self._s[3833]! } - public var Undo_ChatCleared: String { return self._s[3835]! } + public var Notification_MessageLifetime5s: String { return self._s[3825]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3826]! } + public var Profile_MessageLifetime1m: String { return self._s[3828]! } + public var Passport_ScanPassport: String { return self._s[3829]! } + public var Stats_LoadingTitle: String { return self._s[3830]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3832]! } + public var Permissions_NotificationsAllow_v0: String { return self._s[3833]! } + public var Login_InvalidFirstNameError: String { return self._s[3834]! } + public var Undo_ChatCleared: String { return self._s[3836]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3837]!, self._r[3837]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3838]!, self._r[3838]!, [_1, _2]) } - public var Conversation_PinMessageAlertPin: String { return self._s[3838]! } + public var Conversation_PinMessageAlertPin: String { return self._s[3839]! } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3839]!, self._r[3839]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[3840]!, self._r[3840]!, [_1, _2, _3, _4, _5]) } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3840]!, self._r[3840]!, [_1]) + return formatWithArgumentRanges(self._s[3841]!, self._r[3841]!, [_1]) } - public var Share_MultipleMessagesDisabled: String { return self._s[3841]! } - public var TwoStepAuth_EmailInvalid: String { return self._s[3842]! } - public var EnterPasscode_ChangeTitle: String { return self._s[3844]! } - public var VoiceChat_InviteLink_Speaker: String { return self._s[3845]! } - public var CallSettings_RecentCalls: String { return self._s[3846]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[3847]! } - public var AuthSessions_OtherSessions: String { return self._s[3848]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3849]! } - public var Tour_Text5: String { return self._s[3850]! } - public var Login_PadPhoneHelp: String { return self._s[3851]! } - public var Wallpaper_PhotoLibrary: String { return self._s[3854]! } - public var Conversation_ViewGroup: String { return self._s[3855]! } - public var PeopleNearby_MakeVisibleTitle: String { return self._s[3857]! } - public var VoiceOver_Chat_YourContact: String { return self._s[3858]! } - public var Watch_AuthRequired: String { return self._s[3859]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3861]! } - public var Conversation_ForwardContacts: String { return self._s[3862]! } - public var Conversation_InputTextPlaceholder: String { return self._s[3863]! } + public var Share_MultipleMessagesDisabled: String { return self._s[3842]! } + public var TwoStepAuth_EmailInvalid: String { return self._s[3843]! } + public var EnterPasscode_ChangeTitle: String { return self._s[3845]! } + public var VoiceChat_InviteLink_Speaker: String { return self._s[3846]! } + public var CallSettings_RecentCalls: String { return self._s[3847]! } + public var GroupInfo_DeactivatedStatus: String { return self._s[3848]! } + public var AuthSessions_OtherSessions: String { return self._s[3849]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3850]! } + public var Tour_Text5: String { return self._s[3851]! } + public var Login_PadPhoneHelp: String { return self._s[3852]! } + public var Wallpaper_PhotoLibrary: String { return self._s[3855]! } + public var Conversation_ViewGroup: String { return self._s[3856]! } + public var PeopleNearby_MakeVisibleTitle: String { return self._s[3858]! } + public var VoiceOver_Chat_YourContact: String { return self._s[3859]! } + public var Watch_AuthRequired: String { return self._s[3860]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3862]! } + public var Conversation_ForwardContacts: String { return self._s[3863]! } + public var Conversation_InputTextPlaceholder: String { return self._s[3864]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3864]!, self._r[3864]!, [_1]) + return formatWithArgumentRanges(self._s[3865]!, self._r[3865]!, [_1]) } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3865]!, self._r[3865]!, [_0]) + return formatWithArgumentRanges(self._s[3866]!, self._r[3866]!, [_0]) } - public var Channel_Setup_TypePrivate: String { return self._s[3866]! } + public var Channel_Setup_TypePrivate: String { return self._s[3867]! } public func Conversation_NoticeInvitedByInChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3867]!, self._r[3867]!, [_0]) + return formatWithArgumentRanges(self._s[3868]!, self._r[3868]!, [_0]) } - public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3868]! } - public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3869]! } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[3870]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[3871]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[3872]! } - public var UserInfo_StartSecretChatStart: String { return self._s[3873]! } + public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3869]! } + public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3870]! } + public var InfoPlist_NSSiriUsageDescription: String { return self._s[3871]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[3872]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[3873]! } + public var UserInfo_StartSecretChatStart: String { return self._s[3874]! } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3874]!, self._r[3874]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3875]!, self._r[3875]!, [_1, _2]) } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3875]!, self._r[3875]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[3876]!, self._r[3876]!, [_0, _1, _2]) } public func Conversation_ForwardTooltip_TwoChats_Many(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3876]!, self._r[3876]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3877]!, self._r[3877]!, [_0, _1]) } - public var PrivacySettings_AutoArchiveTitle: String { return self._s[3877]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[3878]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3879]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[3881]! } - public var NewContact_Title: String { return self._s[3884]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3885]! } - public var VoiceChat_StatusSpeaking: String { return self._s[3886]! } - public var Notifications_PermissionsKeepDisabled: String { return self._s[3887]! } + public var PrivacySettings_AutoArchiveTitle: String { return self._s[3878]! } + public var GroupInfo_InviteLink_LinkSection: String { return self._s[3879]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3880]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[3882]! } + public var NewContact_Title: String { return self._s[3885]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3886]! } + public var VoiceChat_StatusSpeaking: String { return self._s[3887]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[3888]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3888]!, self._r[3888]!, [_0]) + return formatWithArgumentRanges(self._s[3889]!, self._r[3889]!, [_0]) } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3889]!, self._r[3889]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3890]!, self._r[3890]!, [_0, _1]) } - public var Chat_SlowmodeTooltipPending: String { return self._s[3890]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[3891]! } public func Time_MediumDate(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3892]!, self._r[3892]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3893]!, self._r[3893]!, [_1, _2]) } - public var ContactInfo_PhoneLabelHome: String { return self._s[3893]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3894]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3895]! } - public var Conversation_MessageEditedLabel: String { return self._s[3898]! } - public var CallList_ActiveVoiceChatsHeader: String { return self._s[3899]! } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3900]! } - public var ChatList_Context_AddToContacts: String { return self._s[3901]! } - public var Passport_Language_is: String { return self._s[3902]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[3903]! } - public var PhotoEditor_CurvesBlue: String { return self._s[3904]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[3894]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3895]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3896]! } + public var Conversation_MessageEditedLabel: String { return self._s[3899]! } + public var CallList_ActiveVoiceChatsHeader: String { return self._s[3900]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3901]! } + public var ChatList_Context_AddToContacts: String { return self._s[3902]! } + public var Passport_Language_is: String { return self._s[3903]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[3904]! } + public var PhotoEditor_CurvesBlue: String { return self._s[3905]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3905]!, self._r[3905]!, [_0]) + return formatWithArgumentRanges(self._s[3906]!, self._r[3906]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[3906]! } - public var Login_SmsRequestState3: String { return self._s[3907]! } - public var Message_PinnedVideoMessage: String { return self._s[3908]! } - public var SharedMedia_TitleLink: String { return self._s[3909]! } - public var Passport_FieldIdentity: String { return self._s[3910]! } - public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3912]! } + public var SocksProxySetup_Username: String { return self._s[3907]! } + public var Login_SmsRequestState3: String { return self._s[3908]! } + public var Message_PinnedVideoMessage: String { return self._s[3909]! } + public var SharedMedia_TitleLink: String { return self._s[3910]! } + public var Passport_FieldIdentity: String { return self._s[3911]! } + public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3913]! } public func Conversation_EncryptedPlaceholderTitleOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3915]!, self._r[3915]!, [_0]) + return formatWithArgumentRanges(self._s[3916]!, self._r[3916]!, [_0]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3918]! } - public var ReportSpam_DeleteThisChat: String { return self._s[3919]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3920]! } - public var Passport_Identity_DateOfBirth: String { return self._s[3921]! } - public var Call_StatusIncoming: String { return self._s[3922]! } - public var ChatAdmins_AdminLabel: String { return self._s[3923]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3919]! } + public var ReportSpam_DeleteThisChat: String { return self._s[3920]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3921]! } + public var Passport_Identity_DateOfBirth: String { return self._s[3922]! } + public var Call_StatusIncoming: String { return self._s[3923]! } + public var ChatAdmins_AdminLabel: String { return self._s[3924]! } public func InstantPage_OpenInBrowser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3924]!, self._r[3924]!, [_0]) + return formatWithArgumentRanges(self._s[3925]!, self._r[3925]!, [_0]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3926]!, self._r[3926]!, [_0]) + return formatWithArgumentRanges(self._s[3927]!, self._r[3927]!, [_0]) } - public var Message_PinnedAnimationMessage: String { return self._s[3927]! } - public var VoiceChat_TapToViewCameraVideo: String { return self._s[3928]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[3929]! } - public var Preview_CopyAddress: String { return self._s[3930]! } - public var MediaPlayer_UnknownTrack: String { return self._s[3932]! } - public var Login_CancelSignUpConfirmation: String { return self._s[3933]! } - public var Map_OpenInYandexMaps: String { return self._s[3935]! } + public var Message_PinnedAnimationMessage: String { return self._s[3928]! } + public var VoiceChat_TapToViewCameraVideo: String { return self._s[3929]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[3930]! } + public var Preview_CopyAddress: String { return self._s[3931]! } + public var MediaPlayer_UnknownTrack: String { return self._s[3933]! } + public var Login_CancelSignUpConfirmation: String { return self._s[3934]! } + public var Map_OpenInYandexMaps: String { return self._s[3936]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3938]!, self._r[3938]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3939]!, self._r[3939]!, [_1, _2, _3]) } - public var GroupRemoved_Remove: String { return self._s[3939]! } - public var ChatListFolder_TitleCreate: String { return self._s[3940]! } + public var GroupRemoved_Remove: String { return self._s[3940]! } + public var ChatListFolder_TitleCreate: String { return self._s[3941]! } public func InstantPage_AuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3942]!, self._r[3942]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3943]!, self._r[3943]!, [_1, _2]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[3943]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[3944]! } public func UserInfo_LinkForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3945]!, self._r[3945]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3946]!, self._r[3946]!, [_0, _1]) } - public var Group_UpgradeNoticeText2: String { return self._s[3946]! } - public var Stats_GroupGrowthTitle: String { return self._s[3947]! } - public var CreatePoll_CancelConfirmation: String { return self._s[3950]! } - public var Month_GenOctober: String { return self._s[3951]! } - public var Conversation_TitleCommentsEmpty: String { return self._s[3952]! } - public var Settings_Appearance: String { return self._s[3953]! } + public var Group_UpgradeNoticeText2: String { return self._s[3947]! } + public var Stats_GroupGrowthTitle: String { return self._s[3948]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3951]! } + public var Month_GenOctober: String { return self._s[3952]! } + public var Conversation_TitleCommentsEmpty: String { return self._s[3953]! } + public var Settings_Appearance: String { return self._s[3954]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3954]!, self._r[3954]!, [_0]) + return formatWithArgumentRanges(self._s[3955]!, self._r[3955]!, [_0]) } - public var UserInfo_AddToExisting: String { return self._s[3955]! } - public var Call_PhoneCallInProgressMessage: String { return self._s[3957]! } - public var Map_HomeAndWorkInfo: String { return self._s[3958]! } - public var VoiceChat_ContextAudio: String { return self._s[3959]! } - public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3960]! } - public var Paint_Arrow: String { return self._s[3961]! } - public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3962]! } + public var UserInfo_AddToExisting: String { return self._s[3956]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3958]! } + public var Map_HomeAndWorkInfo: String { return self._s[3959]! } + public var VoiceChat_ContextAudio: String { return self._s[3960]! } + public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3961]! } + public var Paint_Arrow: String { return self._s[3962]! } + public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3963]! } public func DialogList_MultipleTypingPair(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3963]!, self._r[3963]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3964]!, self._r[3964]!, [_0, _1]) } - public var CancelResetAccount_Title: String { return self._s[3964]! } - public var NotificationsSound_Circles: String { return self._s[3965]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3966]! } - public var ChatState_Connecting: String { return self._s[3968]! } - public var Profile_MessageLifetime5s: String { return self._s[3969]! } + public var CancelResetAccount_Title: String { return self._s[3965]! } + public var NotificationsSound_Circles: String { return self._s[3966]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3967]! } + public var ChatState_Connecting: String { return self._s[3969]! } + public var Profile_MessageLifetime5s: String { return self._s[3970]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3970]!, self._r[3970]!, [_0]) + return formatWithArgumentRanges(self._s[3971]!, self._r[3971]!, [_0]) } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3971]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3972]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3973]! } - public var Conversation_DefaultRestrictedStickers: String { return self._s[3975]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[3976]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3972]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3973]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3974]! } + public var Conversation_DefaultRestrictedStickers: String { return self._s[3976]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[3977]! } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3977]!, self._r[3977]!, [_0]) + return formatWithArgumentRanges(self._s[3978]!, self._r[3978]!, [_0]) } - public var Passport_Phone_Help: String { return self._s[3978]! } - public var Privacy_ContactsSync: String { return self._s[3979]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3980]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3982]! } - public var Map_SendMyCurrentLocation: String { return self._s[3983]! } - public var Map_AddressOnMap: String { return self._s[3984]! } - public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3986]! } - public var DialogList_SearchLabel: String { return self._s[3987]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3988]! } - public var GroupInfo_FakeGroupWarning: String { return self._s[3989]! } - public var Conversation_ChecksTooltip_Read: String { return self._s[3991]! } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3993]! } - public var ChatList_Search_ShowMore: String { return self._s[3994]! } - public var DialogList_EncryptionRejected: String { return self._s[3995]! } - public var VoiceChat_InviteLinkCopiedText: String { return self._s[3996]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[3997]! } - public var VoiceChat_StartRecordingText: String { return self._s[3998]! } - public var Privacy_TopPeersDelete: String { return self._s[3999]! } - public var AttachmentMenu_SendAsFile: String { return self._s[4001]! } - public var ChatList_GenericPsaAlert: String { return self._s[4003]! } - public var SecretTimer_ImageDescription: String { return self._s[4005]! } + public var Passport_Phone_Help: String { return self._s[3979]! } + public var Privacy_ContactsSync: String { return self._s[3980]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3981]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3983]! } + public var Map_SendMyCurrentLocation: String { return self._s[3984]! } + public var Map_AddressOnMap: String { return self._s[3985]! } + public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3987]! } + public var DialogList_SearchLabel: String { return self._s[3988]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3989]! } + public var GroupInfo_FakeGroupWarning: String { return self._s[3990]! } + public var Conversation_ChecksTooltip_Read: String { return self._s[3992]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3994]! } + public var ChatList_Search_ShowMore: String { return self._s[3995]! } + public var DialogList_EncryptionRejected: String { return self._s[3996]! } + public var VoiceChat_InviteLinkCopiedText: String { return self._s[3997]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[3998]! } + public var VoiceChat_StartRecordingText: String { return self._s[3999]! } + public var Privacy_TopPeersDelete: String { return self._s[4000]! } + public var AttachmentMenu_SendAsFile: String { return self._s[4002]! } + public var ChatList_GenericPsaAlert: String { return self._s[4004]! } + public var SecretTimer_ImageDescription: String { return self._s[4006]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4006]!, self._r[4006]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4007]!, self._r[4007]!, [_0, _1]) } - public var VoiceChat_EditNameSuccess: String { return self._s[4007]! } - public var ChatSettings_TextSizeUnits: String { return self._s[4008]! } - public var Notification_RenamedGroup: String { return self._s[4010]! } - public var Tour_Title2: String { return self._s[4011]! } - public var Settings_CopyUsername: String { return self._s[4012]! } - public var Compose_NewEncryptedChat: String { return self._s[4013]! } - public var Conversation_CloudStorageInfo_Title: String { return self._s[4014]! } - public var VoiceChat_SetReminder: String { return self._s[4015]! } - public var Month_ShortSeptember: String { return self._s[4016]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[4017]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[4018]! } - public var VoiceChat_StartNow: String { return self._s[4019]! } - public var Call_StatusConnecting: String { return self._s[4021]! } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[4022]! } - public var Map_ShareLiveLocationHelp: String { return self._s[4023]! } - public var Cache_Files: String { return self._s[4024]! } - public var Notifications_Reset: String { return self._s[4025]! } + public var VoiceChat_EditNameSuccess: String { return self._s[4008]! } + public var ChatSettings_TextSizeUnits: String { return self._s[4009]! } + public var Notification_RenamedGroup: String { return self._s[4011]! } + public var Tour_Title2: String { return self._s[4012]! } + public var Settings_CopyUsername: String { return self._s[4013]! } + public var Compose_NewEncryptedChat: String { return self._s[4014]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[4015]! } + public var VoiceChat_SetReminder: String { return self._s[4016]! } + public var Month_ShortSeptember: String { return self._s[4017]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[4018]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[4019]! } + public var VoiceChat_StartNow: String { return self._s[4020]! } + public var Call_StatusConnecting: String { return self._s[4022]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[4023]! } + public var Map_ShareLiveLocationHelp: String { return self._s[4024]! } + public var Cache_Files: String { return self._s[4025]! } + public var Notifications_Reset: String { return self._s[4026]! } public func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4026]!, self._r[4026]!, [_0]) + return formatWithArgumentRanges(self._s[4027]!, self._r[4027]!, [_0]) } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[4027]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[4028]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4028]!, self._r[4028]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4029]!, self._r[4029]!, [_1, _2]) } - public var Notification_CallIncomingShort: String { return self._s[4029]! } - public var UserInfo_BotPrivacy: String { return self._s[4032]! } - public var Appearance_BubbleCorners_Apply: String { return self._s[4033]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[4034]! } - public var Conversation_ContextMenuLookUp: String { return self._s[4036]! } - public var Calls_RatingTitle: String { return self._s[4037]! } - public var SecretImage_Title: String { return self._s[4038]! } - public var Weekday_Monday: String { return self._s[4039]! } + public var Notification_CallIncomingShort: String { return self._s[4030]! } + public var UserInfo_BotPrivacy: String { return self._s[4033]! } + public var Appearance_BubbleCorners_Apply: String { return self._s[4034]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[4035]! } + public var Conversation_ContextMenuLookUp: String { return self._s[4037]! } + public var Calls_RatingTitle: String { return self._s[4038]! } + public var SecretImage_Title: String { return self._s[4039]! } + public var Weekday_Monday: String { return self._s[4040]! } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4040]!, self._r[4040]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4041]!, self._r[4041]!, [_1, _2]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[4041]! } - public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[4042]! } - public var Invitation_JoinVoiceChatAsListener: String { return self._s[4043]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[4042]! } + public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[4043]! } + public var Invitation_JoinVoiceChatAsListener: String { return self._s[4044]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4045]!, self._r[4045]!, [_1, _2]) } - public var Stats_GroupMembers: String { return self._s[4045]! } - public var Camera_Retake: String { return self._s[4046]! } - public var Conversation_SearchPlaceholder: String { return self._s[4048]! } + public var Stats_GroupMembers: String { return self._s[4046]! } + public var Camera_Retake: String { return self._s[4047]! } + public var Conversation_SearchPlaceholder: String { return self._s[4049]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4049]!, self._r[4049]!, [_0]) + return formatWithArgumentRanges(self._s[4050]!, self._r[4050]!, [_0]) } - public var Channel_DiscussionGroup_Info: String { return self._s[4050]! } - public var SocksProxySetup_Hostname: String { return self._s[4051]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4052]! } - public var Privacy_DeleteDrafts: String { return self._s[4054]! } - public var Login_CancelPhoneVerification: String { return self._s[4056]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[4057]! } - public var VoiceOver_Chat_Profile: String { return self._s[4058]! } + public var Channel_DiscussionGroup_Info: String { return self._s[4051]! } + public var SocksProxySetup_Hostname: String { return self._s[4052]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4053]! } + public var Privacy_DeleteDrafts: String { return self._s[4055]! } + public var Login_CancelPhoneVerification: String { return self._s[4057]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[4058]! } + public var VoiceOver_Chat_Profile: String { return self._s[4059]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4059]!, self._r[4059]!, [_0]) + return formatWithArgumentRanges(self._s[4060]!, self._r[4060]!, [_0]) } - public var TwoStepAuth_EmailSent: String { return self._s[4060]! } - public var Cache_Indexing: String { return self._s[4061]! } - public var Notifications_ExceptionsNone: String { return self._s[4062]! } - public var MessagePoll_LabelQuiz: String { return self._s[4063]! } - public var Call_EncryptionKey_Title: String { return self._s[4064]! } - public var Common_Yes: String { return self._s[4065]! } - public var Channel_ErrorAddBlocked: String { return self._s[4066]! } - public var Month_GenJanuary: String { return self._s[4067]! } - public var Checkout_NewCard_Title: String { return self._s[4068]! } + public var TwoStepAuth_EmailSent: String { return self._s[4061]! } + public var Cache_Indexing: String { return self._s[4062]! } + public var Notifications_ExceptionsNone: String { return self._s[4063]! } + public var MessagePoll_LabelQuiz: String { return self._s[4064]! } + public var Call_EncryptionKey_Title: String { return self._s[4065]! } + public var Common_Yes: String { return self._s[4066]! } + public var Channel_ErrorAddBlocked: String { return self._s[4067]! } + public var Month_GenJanuary: String { return self._s[4068]! } + public var Checkout_NewCard_Title: String { return self._s[4069]! } public func TwoStepAuth_EnterPasswordHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4069]!, self._r[4069]!, [_0]) + return formatWithArgumentRanges(self._s[4070]!, self._r[4070]!, [_0]) } - public var Conversation_InputTextPlaceholderReply: String { return self._s[4071]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4072]! } - public var Conversation_SendDice: String { return self._s[4073]! } + public var Conversation_InputTextPlaceholderReply: String { return self._s[4072]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4073]! } + public var Conversation_SendDice: String { return self._s[4074]! } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4074]!, self._r[4074]!, [_0]) - } - public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4075]!, self._r[4075]!, [_0]) } - public var Weekday_Wednesday: String { return self._s[4076]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[4077]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[4078]! } - public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4079]! } - public var OldChannels_NoticeTitle: String { return self._s[4080]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[4081]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[4082]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4083]! } - public var Passport_Address_AddUtilityBill: String { return self._s[4084]! } + public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4076]!, self._r[4076]!, [_0]) + } + public var Weekday_Wednesday: String { return self._s[4077]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[4078]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[4079]! } + public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4080]! } + public var OldChannels_NoticeTitle: String { return self._s[4081]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[4082]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[4083]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4084]! } + public var Passport_Address_AddUtilityBill: String { return self._s[4085]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4086]!, self._r[4086]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4087]!, self._r[4087]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4088]! } - public var Stats_GroupTopAdminsTitle: String { return self._s[4089]! } - public var Paint_Regular: String { return self._s[4091]! } - public var Message_Contact: String { return self._s[4092]! } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4093]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[4094]! } - public var Notification_Mute1hMin: String { return self._s[4095]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4089]! } + public var Stats_GroupTopAdminsTitle: String { return self._s[4090]! } + public var Paint_Regular: String { return self._s[4092]! } + public var Message_Contact: String { return self._s[4093]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4094]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[4095]! } + public var Notification_Mute1hMin: String { return self._s[4096]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4096]!, self._r[4096]!, [_0]) + return formatWithArgumentRanges(self._s[4097]!, self._r[4097]!, [_0]) } - public var Profile_MessageLifetime1h: String { return self._s[4097]! } - public var TwoStepAuth_GenericHelp: String { return self._s[4098]! } - public var TwoFactorSetup_PasswordRecovery_Skip: String { return self._s[4099]! } - public var TextFormat_Monospace: String { return self._s[4100]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4102]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[4103]! } - public var ChatList_DeleteChat: String { return self._s[4104]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4107]! } + public var Profile_MessageLifetime1h: String { return self._s[4098]! } + public var TwoStepAuth_GenericHelp: String { return self._s[4099]! } + public var TwoFactorSetup_PasswordRecovery_Skip: String { return self._s[4100]! } + public var TextFormat_Monospace: String { return self._s[4101]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4103]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[4104]! } + public var ChatList_DeleteChat: String { return self._s[4105]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4108]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4108]!, self._r[4108]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[4109]!, self._r[4109]!, [_1, _2, _3, _4]) } - public var Login_CancelPhoneVerificationStop: String { return self._s[4109]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4110]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4111]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[4110]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4111]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4112]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4112]!, self._r[4112]!, [_0]) + return formatWithArgumentRanges(self._s[4113]!, self._r[4113]!, [_0]) } - public var Notifications_Badge_IncludeChannels: String { return self._s[4113]! } - public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4114]! } - public var StickerPack_ViewPack: String { return self._s[4117]! } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4119]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4120]! } - public var Notifications_Title: String { return self._s[4121]! } - public var Conversation_InputTextPlaceholderComment: String { return self._s[4122]! } - public var GroupInfo_PublicLink: String { return self._s[4123]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[4114]! } + public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4115]! } + public var StickerPack_ViewPack: String { return self._s[4118]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4120]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4121]! } + public var Notifications_Title: String { return self._s[4122]! } + public var Conversation_InputTextPlaceholderComment: String { return self._s[4123]! } + public var GroupInfo_PublicLink: String { return self._s[4124]! } public func ScheduleVoiceChat_GroupText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4124]!, self._r[4124]!, [_0]) + return formatWithArgumentRanges(self._s[4125]!, self._r[4125]!, [_0]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[4125]! } - public var Conversation_Moderate_Ban: String { return self._s[4129]! } - public var InviteLink_Manage: String { return self._s[4130]! } - public var InstantPage_FontNewYork: String { return self._s[4131]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[4126]! } + public var Conversation_Moderate_Ban: String { return self._s[4130]! } + public var InviteLink_Manage: String { return self._s[4131]! } + public var InstantPage_FontNewYork: String { return self._s[4132]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4132]!, self._r[4132]!, [_0]) + return formatWithArgumentRanges(self._s[4133]!, self._r[4133]!, [_0]) } - public var TextFormat_Underline: String { return self._s[4133]! } + public var TextFormat_Underline: String { return self._s[4134]! } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4134]!, self._r[4134]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4135]!, self._r[4135]!, [_0, _1]) } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4135]!, self._r[4135]!, [_1]) + return formatWithArgumentRanges(self._s[4136]!, self._r[4136]!, [_1]) } - public var PollResults_Collapse: String { return self._s[4137]! } - public var Contacts_GlobalSearch: String { return self._s[4138]! } + public var PollResults_Collapse: String { return self._s[4138]! } + public var Contacts_GlobalSearch: String { return self._s[4139]! } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4140]!, self._r[4140]!, [_0]) + return formatWithArgumentRanges(self._s[4141]!, self._r[4141]!, [_0]) } - public var Channel_Management_LabelEditor: String { return self._s[4141]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4143]! } - public var Conversation_Theme: String { return self._s[4144]! } + public var Channel_Management_LabelEditor: String { return self._s[4142]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4144]! } + public var Conversation_Theme: String { return self._s[4145]! } public func PUSH_CHANNEL_MESSAGE_DOCS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4145]!, self._r[4145]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4146]!, self._r[4146]!, [_1, "\(_2)"]) } - public var Conversation_LinkDialogSave: String { return self._s[4146]! } - public var EnterPasscode_TouchId: String { return self._s[4147]! } - public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4148]! } - public var Group_ErrorAdminsTooMuch: String { return self._s[4149]! } - public var Stats_MessageOverview: String { return self._s[4150]! } - public var Privacy_Calls_P2PAlways: String { return self._s[4152]! } - public var Message_Sticker: String { return self._s[4153]! } - public var TwoFactorSetup_PasswordRecovery_SkipAlertTitle: String { return self._s[4154]! } - public var Conversation_Mute: String { return self._s[4157]! } - public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4158]! } - public var ContactInfo_Title: String { return self._s[4159]! } + public var Conversation_LinkDialogSave: String { return self._s[4147]! } + public var EnterPasscode_TouchId: String { return self._s[4148]! } + public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4149]! } + public var Group_ErrorAdminsTooMuch: String { return self._s[4150]! } + public var Stats_MessageOverview: String { return self._s[4151]! } + public var Privacy_Calls_P2PAlways: String { return self._s[4153]! } + public var Message_Sticker: String { return self._s[4154]! } + public var TwoFactorSetup_PasswordRecovery_SkipAlertTitle: String { return self._s[4155]! } + public var Conversation_Mute: String { return self._s[4158]! } + public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4159]! } + public var ContactInfo_Title: String { return self._s[4160]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4160]!, self._r[4160]!, [_1]) + return formatWithArgumentRanges(self._s[4161]!, self._r[4161]!, [_1]) } - public var Channel_Setup_TypeHeader: String { return self._s[4161]! } - public var AuthSessions_LogOut: String { return self._s[4162]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[4163]! } - public var VoiceChat_PinVideo: String { return self._s[4164]! } - public var Group_Info_Members: String { return self._s[4166]! } - public var ChatListFolderSettings_NewFolder: String { return self._s[4167]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4168]! } - public var CreatePoll_Title: String { return self._s[4169]! } - public var EditTheme_EditTitle: String { return self._s[4170]! } - public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4171]! } - public var TwoStepAuth_SetPassword: String { return self._s[4172]! } + public var Channel_Setup_TypeHeader: String { return self._s[4162]! } + public var AuthSessions_LogOut: String { return self._s[4163]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[4164]! } + public var VoiceChat_PinVideo: String { return self._s[4165]! } + public var Group_Info_Members: String { return self._s[4167]! } + public var ChatListFolderSettings_NewFolder: String { return self._s[4168]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4169]! } + public var CreatePoll_Title: String { return self._s[4170]! } + public var EditTheme_EditTitle: String { return self._s[4171]! } + public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4172]! } + public var TwoStepAuth_SetPassword: String { return self._s[4173]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4173]!, self._r[4173]!, [_0]) + return formatWithArgumentRanges(self._s[4174]!, self._r[4174]!, [_0]) } - public var BlockedUsers_Info: String { return self._s[4174]! } - public var AuthSessions_Sessions: String { return self._s[4175]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4176]! } - public var Common_ActionNotAllowedError: String { return self._s[4177]! } - public var WebPreview_GettingLinkInfo: String { return self._s[4178]! } - public var Appearance_AppIconFilledX: String { return self._s[4179]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[4180]! } - public var FeaturedStickers_OtherSection: String { return self._s[4181]! } - public var VoiceChat_RecordingStarted: String { return self._s[4182]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4183]! } - public var Profile_Username: String { return self._s[4184]! } - public var Settings_TipsUsername: String { return self._s[4185]! } - public var Appearance_RemoveTheme: String { return self._s[4186]! } - public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4187]! } - public var Message_PinnedStickerMessage: String { return self._s[4188]! } - public var AccessDenied_VideoMicrophone: String { return self._s[4189]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[4190]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[4191]! } - public var Conversation_VoiceChat: String { return self._s[4192]! } - public var VoiceChat_EditBioSuccess: String { return self._s[4193]! } - public var ImportStickerPack_LinkAvailable: String { return self._s[4194]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4195]! } - public var TwoStepAuth_Title: String { return self._s[4196]! } - public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4197]! } - public var Checkout_WebConfirmation_Title: String { return self._s[4198]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4199]! } - public var ChatListFolder_CategoryGroups: String { return self._s[4201]! } - public var Stats_GroupTopInviter_Promote: String { return self._s[4202]! } - public var Conversation_EditingPhotoPanelTitle: String { return self._s[4203]! } - public var Month_GenJuly: String { return self._s[4204]! } - public var Passport_Identity_Gender: String { return self._s[4205]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4206]! } - public var Notification_Exceptions_DeleteAll: String { return self._s[4207]! } - public var VoiceChat_StopRecording: String { return self._s[4208]! } + public var BlockedUsers_Info: String { return self._s[4175]! } + public var AuthSessions_Sessions: String { return self._s[4176]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4177]! } + public var Common_ActionNotAllowedError: String { return self._s[4178]! } + public var WebPreview_GettingLinkInfo: String { return self._s[4179]! } + public var Appearance_AppIconFilledX: String { return self._s[4180]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[4181]! } + public var FeaturedStickers_OtherSection: String { return self._s[4182]! } + public var VoiceChat_RecordingStarted: String { return self._s[4183]! } + public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4184]! } + public var Profile_Username: String { return self._s[4185]! } + public var Settings_TipsUsername: String { return self._s[4186]! } + public var Appearance_RemoveTheme: String { return self._s[4187]! } + public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4188]! } + public var Message_PinnedStickerMessage: String { return self._s[4189]! } + public var AccessDenied_VideoMicrophone: String { return self._s[4190]! } + public var WallpaperPreview_CustomColorBottomText: String { return self._s[4191]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[4192]! } + public var Conversation_VoiceChat: String { return self._s[4193]! } + public var VoiceChat_EditBioSuccess: String { return self._s[4194]! } + public var ImportStickerPack_LinkAvailable: String { return self._s[4195]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4196]! } + public var TwoStepAuth_Title: String { return self._s[4197]! } + public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4198]! } + public var Checkout_WebConfirmation_Title: String { return self._s[4199]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4200]! } + public var ChatListFolder_CategoryGroups: String { return self._s[4202]! } + public var Stats_GroupTopInviter_Promote: String { return self._s[4203]! } + public var Conversation_EditingPhotoPanelTitle: String { return self._s[4204]! } + public var Month_GenJuly: String { return self._s[4205]! } + public var Passport_Identity_Gender: String { return self._s[4206]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4207]! } + public var Notification_Exceptions_DeleteAll: String { return self._s[4208]! } + public var VoiceChat_StopRecording: String { return self._s[4209]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4209]!, self._r[4209]!, [_0]) + return formatWithArgumentRanges(self._s[4210]!, self._r[4210]!, [_0]) } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4210]!, self._r[4210]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[4211]!, self._r[4211]!, [_0, _1, _2]) } - public var Login_CodeSentSms: String { return self._s[4211]! } + public var Login_CodeSentSms: String { return self._s[4212]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4212]!, self._r[4212]!, [_0]) + return formatWithArgumentRanges(self._s[4213]!, self._r[4213]!, [_0]) } - public var Login_CallRequestState2: String { return self._s[4213]! } - public var Channel_DiscussionGroup_Header: String { return self._s[4214]! } + public var Login_CallRequestState2: String { return self._s[4214]! } + public var Channel_DiscussionGroup_Header: String { return self._s[4215]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4215]!, self._r[4215]!, [_0]) + return formatWithArgumentRanges(self._s[4216]!, self._r[4216]!, [_0]) } - public var Passport_Language_ms: String { return self._s[4216]! } - public var PeopleNearby_MakeInvisible: String { return self._s[4218]! } - public var ImportStickerPack_CreateStickerSet: String { return self._s[4220]! } - public var ChatList_Search_FilterVoice: String { return self._s[4221]! } - public var Camera_TapAndHoldForVideo: String { return self._s[4223]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4224]! } + public var Passport_Language_ms: String { return self._s[4217]! } + public var PeopleNearby_MakeInvisible: String { return self._s[4219]! } + public var ImportStickerPack_CreateStickerSet: String { return self._s[4221]! } + public var ChatList_Search_FilterVoice: String { return self._s[4222]! } + public var Camera_TapAndHoldForVideo: String { return self._s[4224]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4225]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4225]!, self._r[4225]!, [_0]) + return formatWithArgumentRanges(self._s[4226]!, self._r[4226]!, [_0]) } public func Call_VoiceChatInProgressMessageCall(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4226]!, self._r[4226]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4227]!, self._r[4227]!, [_1, _2]) } - public var Map_Locating: String { return self._s[4227]! } + public var Map_Locating: String { return self._s[4228]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4229]!, self._r[4229]!, [_0]) + return formatWithArgumentRanges(self._s[4230]!, self._r[4230]!, [_0]) } - public var Passport_Identity_TypeInternalPassport: String { return self._s[4231]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4232]! } - public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4233]! } - public var Stickers_Installed: String { return self._s[4234]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[4235]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[4236]! } - public var CallSettings_Never: String { return self._s[4238]! } - public var Channel_Setup_TypePublicHelp: String { return self._s[4239]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[4232]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4233]! } + public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4234]! } + public var Stickers_Installed: String { return self._s[4235]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[4236]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[4237]! } + public var CallSettings_Never: String { return self._s[4239]! } + public var Channel_Setup_TypePublicHelp: String { return self._s[4240]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4241]!, self._r[4241]!, [_0]) + return formatWithArgumentRanges(self._s[4242]!, self._r[4242]!, [_0]) } - public var Message_Game: String { return self._s[4242]! } - public var Call_Message: String { return self._s[4243]! } + public var Message_Game: String { return self._s[4243]! } + public var Call_Message: String { return self._s[4244]! } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4244]!, self._r[4244]!, [_1]) + return formatWithArgumentRanges(self._s[4245]!, self._r[4245]!, [_1]) } - public var ChannelIntro_Text: String { return self._s[4245]! } - public var VoiceChat_NoiseSuppressionEnabled: String { return self._s[4246]! } - public var StickerPack_Send: String { return self._s[4247]! } - public var Share_AuthDescription: String { return self._s[4248]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4249]! } - public var CallFeedback_WhatWentWrong: String { return self._s[4250]! } - public var Common_Create: String { return self._s[4253]! } - public var Passport_Language_hy: String { return self._s[4254]! } - public var CreatePoll_Explanation: String { return self._s[4255]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[4256]! } - public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4257]! } - public var PeerInfo_ButtonVoiceChat: String { return self._s[4258]! } - public var Undo_ChatClearedForBothSides: String { return self._s[4259]! } - public var DialogList_NoMessagesTitle: String { return self._s[4260]! } - public var GroupInfo_Title: String { return self._s[4262]! } + public var ChannelIntro_Text: String { return self._s[4246]! } + public var VoiceChat_NoiseSuppressionEnabled: String { return self._s[4247]! } + public var StickerPack_Send: String { return self._s[4248]! } + public var Share_AuthDescription: String { return self._s[4249]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4250]! } + public var CallFeedback_WhatWentWrong: String { return self._s[4251]! } + public var Common_Create: String { return self._s[4254]! } + public var Passport_Language_hy: String { return self._s[4255]! } + public var CreatePoll_Explanation: String { return self._s[4256]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[4257]! } + public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4258]! } + public var PeerInfo_ButtonVoiceChat: String { return self._s[4259]! } + public var Undo_ChatClearedForBothSides: String { return self._s[4260]! } + public var DialogList_NoMessagesTitle: String { return self._s[4261]! } + public var GroupInfo_Title: String { return self._s[4263]! } public func ScheduleVoiceChat_ScheduleToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4263]!, self._r[4263]!, [_0]) + return formatWithArgumentRanges(self._s[4264]!, self._r[4264]!, [_0]) } - public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4264]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[4265]! } - public var PhoneNumberHelp_Help: String { return self._s[4266]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4267]! } - public var Settings_Logout: String { return self._s[4268]! } - public var Privacy_PaymentsTitle: String { return self._s[4269]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[4270]! } - public var Tour_Text6: String { return self._s[4271]! } - public var ChatImportActivity_Title: String { return self._s[4273]! } - public var Channel_Username_Help: String { return self._s[4274]! } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4275]! } - public var AttachmentMenu_Poll: String { return self._s[4276]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4277]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4278]! } - public var Passport_DeletePassport: String { return self._s[4279]! } - public var Login_Code: String { return self._s[4280]! } - public var Notification_SecretChatScreenshot: String { return self._s[4281]! } - public var VoiceChat_AddBio: String { return self._s[4282]! } - public var Login_CodeFloodError: String { return self._s[4283]! } + public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4265]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[4266]! } + public var PhoneNumberHelp_Help: String { return self._s[4267]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4268]! } + public var Settings_Logout: String { return self._s[4269]! } + public var Privacy_PaymentsTitle: String { return self._s[4270]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[4271]! } + public var Tour_Text6: String { return self._s[4272]! } + public var ChatImportActivity_Title: String { return self._s[4274]! } + public var Channel_Username_Help: String { return self._s[4275]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4276]! } + public var AttachmentMenu_Poll: String { return self._s[4277]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4278]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4279]! } + public var Passport_DeletePassport: String { return self._s[4280]! } + public var Login_Code: String { return self._s[4281]! } + public var Notification_SecretChatScreenshot: String { return self._s[4282]! } + public var VoiceChat_AddBio: String { return self._s[4283]! } + public var Login_CodeFloodError: String { return self._s[4284]! } public func Notification_PinnedAnimationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4284]!, self._r[4284]!, [_0]) - } - public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4285]!, self._r[4285]!, [_0]) } - public var Watch_Stickers_Recents: String { return self._s[4286]! } - public var Generic_ErrorMoreInfo: String { return self._s[4287]! } + public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4286]!, self._r[4286]!, [_0]) + } + public var Watch_Stickers_Recents: String { return self._s[4287]! } + public var Generic_ErrorMoreInfo: String { return self._s[4288]! } public func Call_AccountIsLoggedOnCurrentDevice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4288]!, self._r[4288]!, [_0]) + return formatWithArgumentRanges(self._s[4289]!, self._r[4289]!, [_0]) } - public var AutoDownloadSettings_DataUsage: String { return self._s[4289]! } - public var Conversation_ViewTheme: String { return self._s[4290]! } - public var Contacts_InviteSearchLabel: String { return self._s[4291]! } - public var Settings_CancelUpload: String { return self._s[4293]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[4294]! } + public var AutoDownloadSettings_DataUsage: String { return self._s[4290]! } + public var Conversation_ViewTheme: String { return self._s[4291]! } + public var Contacts_InviteSearchLabel: String { return self._s[4292]! } + public var Settings_CancelUpload: String { return self._s[4294]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[4295]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4295]!, self._r[4295]!, [_0]) + return formatWithArgumentRanges(self._s[4296]!, self._r[4296]!, [_0]) } - public var ChatList_AddFolder: String { return self._s[4296]! } - public var Conversation_Location: String { return self._s[4298]! } - public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4299]! } - public var DialogList_AdLabel: String { return self._s[4300]! } + public var ChatList_AddFolder: String { return self._s[4297]! } + public var Conversation_Location: String { return self._s[4299]! } + public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4300]! } + public var DialogList_AdLabel: String { return self._s[4301]! } public func Time_TomorrowAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4302]!, self._r[4302]!, [_0]) + return formatWithArgumentRanges(self._s[4303]!, self._r[4303]!, [_0]) } - public var Message_InvoiceLabel: String { return self._s[4303]! } - public var Channel_TooMuchBots: String { return self._s[4304]! } + public var Message_InvoiceLabel: String { return self._s[4304]! } + public var Channel_TooMuchBots: String { return self._s[4305]! } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4306]!, self._r[4306]!, [_0]) + return formatWithArgumentRanges(self._s[4307]!, self._r[4307]!, [_0]) } - public var Call_IncomingVideoCall: String { return self._s[4307]! } - public var Conversation_LiveLocation: String { return self._s[4308]! } - public var VoiceChat_AskedToSpeakHelp: String { return self._s[4309]! } - public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4310]! } - public var Passport_Identity_EditPassport: String { return self._s[4311]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[4313]! } - public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4314]! } - public var GroupInfo_Permissions_AddException: String { return self._s[4315]! } + public var Call_IncomingVideoCall: String { return self._s[4308]! } + public var Conversation_LiveLocation: String { return self._s[4309]! } + public var VoiceChat_AskedToSpeakHelp: String { return self._s[4310]! } + public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4311]! } + public var Passport_Identity_EditPassport: String { return self._s[4312]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[4314]! } + public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4315]! } + public var GroupInfo_Permissions_AddException: String { return self._s[4316]! } public func VoiceChat_RemovePeerConfirmationChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4317]!, self._r[4317]!, [_0]) + return formatWithArgumentRanges(self._s[4318]!, self._r[4318]!, [_0]) } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[4318]! } - public var Channel_MessageVideoUpdated: String { return self._s[4319]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4320]! } - public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4323]! } - public var AccessDenied_Camera: String { return self._s[4324]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[4319]! } + public var Channel_MessageVideoUpdated: String { return self._s[4320]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4321]! } + public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4324]! } + public var AccessDenied_Camera: String { return self._s[4325]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4325]!, self._r[4325]!, [_0]) + return formatWithArgumentRanges(self._s[4326]!, self._r[4326]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[4326]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[4327]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[4328]! } - public var Login_CodeExpiredError: String { return self._s[4329]! } - public var State_ConnectingToProxy: String { return self._s[4330]! } - public var TextFormat_Link: String { return self._s[4331]! } - public var Passport_Language_lv: String { return self._s[4333]! } - public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4334]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[4335]! } - public var WallpaperPreview_SwipeBottomText: String { return self._s[4336]! } - public var ProfilePhoto_SetMainVideo: String { return self._s[4337]! } - public var AutoDownloadSettings_Cellular: String { return self._s[4339]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4340]! } - public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4341]! } + public var Theme_Context_ChangeColors: String { return self._s[4327]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[4328]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[4329]! } + public var Login_CodeExpiredError: String { return self._s[4330]! } + public var State_ConnectingToProxy: String { return self._s[4331]! } + public var TextFormat_Link: String { return self._s[4332]! } + public var Passport_Language_lv: String { return self._s[4334]! } + public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4335]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[4336]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[4337]! } + public var ProfilePhoto_SetMainVideo: String { return self._s[4338]! } + public var AutoDownloadSettings_Cellular: String { return self._s[4340]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4341]! } + public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4342]! } public func Channel_AdminLog_MessageKickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4342]!, self._r[4342]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4343]!, self._r[4343]!, [_1, _2]) } - public var ChatList_EmptyChatListFilterTitle: String { return self._s[4343]! } - public var Checkout_PayNone: String { return self._s[4344]! } - public var NotificationsSound_Complete: String { return self._s[4346]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4347]! } - public var InviteLink_CreateInfo: String { return self._s[4348]! } - public var AuthSessions_DevicesTitle: String { return self._s[4349]! } + public var ChatList_EmptyChatListFilterTitle: String { return self._s[4344]! } + public var Checkout_PayNone: String { return self._s[4345]! } + public var NotificationsSound_Complete: String { return self._s[4347]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4348]! } + public var InviteLink_CreateInfo: String { return self._s[4349]! } + public var AuthSessions_DevicesTitle: String { return self._s[4350]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4350]!, self._r[4350]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4351]!, self._r[4351]!, [_0, _1]) } - public var Message_LiveLocation: String { return self._s[4351]! } - public var Watch_Suggestion_BRB: String { return self._s[4352]! } - public var Channel_BanUser_Title: String { return self._s[4353]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4354]! } - public var Conversation_Dice_u1F3C0: String { return self._s[4355]! } - public var Conversation_ClearSelfHistory: String { return self._s[4356]! } - public var ProfilePhoto_OpenGallery: String { return self._s[4357]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[4358]! } - public var Weekday_Thursday: String { return self._s[4359]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4360]! } - public var Privacy_ProfilePhoto: String { return self._s[4362]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4363]! } + public var Message_LiveLocation: String { return self._s[4352]! } + public var Watch_Suggestion_BRB: String { return self._s[4353]! } + public var Channel_BanUser_Title: String { return self._s[4354]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4355]! } + public var Conversation_Dice_u1F3C0: String { return self._s[4356]! } + public var Conversation_ClearSelfHistory: String { return self._s[4357]! } + public var ProfilePhoto_OpenGallery: String { return self._s[4358]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[4359]! } + public var Weekday_Thursday: String { return self._s[4360]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4361]! } + public var Privacy_ProfilePhoto: String { return self._s[4363]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4364]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4364]!, self._r[4364]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4365]!, self._r[4365]!, [_1, _2]) } - public var Message_Audio: String { return self._s[4365]! } - public var Conversation_Info: String { return self._s[4366]! } - public var Cache_Videos: String { return self._s[4367]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4368]! } - public var Channel_ErrorAddTooMuch: String { return self._s[4369]! } + public var Message_Audio: String { return self._s[4366]! } + public var Conversation_Info: String { return self._s[4367]! } + public var Cache_Videos: String { return self._s[4368]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4369]! } + public var Channel_ErrorAddTooMuch: String { return self._s[4370]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4370]!, self._r[4370]!, [_0]) + return formatWithArgumentRanges(self._s[4371]!, self._r[4371]!, [_0]) } - public var VoiceChat_EditBio: String { return self._s[4371]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4373]! } - public var VoiceChat_ShareScreen: String { return self._s[4376]! } - public var ScheduledMessages_Title: String { return self._s[4377]! } - public var ShareFileTip_Title: String { return self._s[4380]! } - public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4381]! } - public var ChatList_RemoveFolderConfirmation: String { return self._s[4382]! } + public var VoiceChat_EditBio: String { return self._s[4372]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4374]! } + public var VoiceChat_ShareScreen: String { return self._s[4377]! } + public var ScheduledMessages_Title: String { return self._s[4378]! } + public var ShareFileTip_Title: String { return self._s[4381]! } + public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4382]! } + public var ChatList_RemoveFolderConfirmation: String { return self._s[4383]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4383]!, self._r[4383]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4384]!, self._r[4384]!, [_1, _2]) } - public var Conversation_ContextViewStats: String { return self._s[4385]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4386]! } - public var PasscodeSettings_Title: String { return self._s[4387]! } - public var Channel_AdminLog_SendPolls: String { return self._s[4388]! } - public var LastSeen_ALongTimeAgo: String { return self._s[4389]! } + public var Conversation_ContextViewStats: String { return self._s[4386]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4387]! } + public var PasscodeSettings_Title: String { return self._s[4388]! } + public var Channel_AdminLog_SendPolls: String { return self._s[4389]! } + public var LastSeen_ALongTimeAgo: String { return self._s[4390]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4390]!, self._r[4390]!, [_1]) + return formatWithArgumentRanges(self._s[4391]!, self._r[4391]!, [_1]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4391]! } - public var ChannelInfo_FakeChannelWarning: String { return self._s[4392]! } - public var CallFeedback_VideoReasonLowQuality: String { return self._s[4393]! } - public var Conversation_PinnedPreviousMessage: String { return self._s[4394]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[4395]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[4396]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4392]! } + public var ChannelInfo_FakeChannelWarning: String { return self._s[4393]! } + public var CallFeedback_VideoReasonLowQuality: String { return self._s[4394]! } + public var Conversation_PinnedPreviousMessage: String { return self._s[4395]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[4396]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[4397]! } public func ChatList_RemovedFromFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4397]!, self._r[4397]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4398]!, self._r[4398]!, [_1, _2]) } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4398]!, self._r[4398]!, [_0]) + return formatWithArgumentRanges(self._s[4399]!, self._r[4399]!, [_0]) } - public var Passport_Identity_GenderFemale: String { return self._s[4399]! } - public var Location_ProximityNotification_DistanceKM: String { return self._s[4402]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[4403]! } + public var Passport_Identity_GenderFemale: String { return self._s[4400]! } + public var Location_ProximityNotification_DistanceKM: String { return self._s[4403]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[4404]! } public func Message_ImportedDateFormat(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4404]!, self._r[4404]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4405]!, self._r[4405]!, [_1, _2, _3]) } - public var VoiceChat_Audio: String { return self._s[4405]! } - public var SharedMedia_TitleAll: String { return self._s[4406]! } - public var Settings_Context_Logout: String { return self._s[4407]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4410]! } - public var Settings_About_Title: String { return self._s[4411]! } - public var StickerSettings_ContextHide: String { return self._s[4412]! } + public var VoiceChat_Audio: String { return self._s[4406]! } + public var SharedMedia_TitleAll: String { return self._s[4407]! } + public var Settings_Context_Logout: String { return self._s[4408]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4411]! } + public var Settings_About_Title: String { return self._s[4412]! } + public var StickerSettings_ContextHide: String { return self._s[4413]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4413]!, self._r[4413]!, [_0]) - } - public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4414]!, self._r[4414]!, [_0]) } - public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4416]! } - public var Common_Cancel: String { return self._s[4417]! } - public var CallFeedback_Title: String { return self._s[4419]! } - public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4420]!, self._r[4420]!, [_0]) + public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4415]!, self._r[4415]!, [_0]) } - public var Conversation_StickerAddedToFavorites: String { return self._s[4421]! } - public var Activity_UploadingVideoMessage: String { return self._s[4423]! } - public var MediaPicker_Send: String { return self._s[4424]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4425]! } - public var Conversation_LiveLocationYou: String { return self._s[4426]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[4427]! } + public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4417]! } + public var Common_Cancel: String { return self._s[4418]! } + public var CallFeedback_Title: String { return self._s[4420]! } + public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4421]!, self._r[4421]!, [_0]) + } + public var Conversation_StickerAddedToFavorites: String { return self._s[4422]! } + public var Activity_UploadingVideoMessage: String { return self._s[4424]! } + public var MediaPicker_Send: String { return self._s[4425]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4426]! } + public var Conversation_LiveLocationYou: String { return self._s[4427]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[4428]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4429]!, self._r[4429]!, [_0]) + return formatWithArgumentRanges(self._s[4430]!, self._r[4430]!, [_0]) } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4430]!, self._r[4430]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4431]!, self._r[4431]!, [_1, _2]) } - public var Checkout_PaymentLiabilityAlert: String { return self._s[4431]! } - public var Conversation_ViewBackground: String { return self._s[4432]! } - public var ChatSettings_PrivateChats: String { return self._s[4435]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[4436]! } - public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4437]! } - public var Appearance_ThemeNight: String { return self._s[4438]! } - public var Common_Search: String { return self._s[4439]! } - public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4440]! } - public var ChangePhoneNumberNumber_Help: String { return self._s[4442]! } - public var InviteLink_QRCode_Share: String { return self._s[4443]! } - public var Stickers_SuggestAdded: String { return self._s[4445]! } + public var Checkout_PaymentLiabilityAlert: String { return self._s[4432]! } + public var Conversation_ViewBackground: String { return self._s[4433]! } + public var ChatSettings_PrivateChats: String { return self._s[4436]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[4437]! } + public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4438]! } + public var Appearance_ThemeNight: String { return self._s[4439]! } + public var Common_Search: String { return self._s[4440]! } + public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4441]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[4443]! } + public var InviteLink_QRCode_Share: String { return self._s[4444]! } + public var Stickers_SuggestAdded: String { return self._s[4446]! } public func VoiceChat_VideoParticipantsLimitExceeded(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4447]!, self._r[4447]!, [_0]) + return formatWithArgumentRanges(self._s[4448]!, self._r[4448]!, [_0]) } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4449]! } - public var Widget_UpdatedTodayAt: String { return self._s[4450]! } - public var NetworkUsageSettings_Cellular: String { return self._s[4451]! } - public var CheckoutInfo_Title: String { return self._s[4452]! } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4453]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[4454]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4450]! } + public var Widget_UpdatedTodayAt: String { return self._s[4451]! } + public var NetworkUsageSettings_Cellular: String { return self._s[4452]! } + public var CheckoutInfo_Title: String { return self._s[4453]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4454]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[4455]! } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4455]!, self._r[4455]!, [_0]) + return formatWithArgumentRanges(self._s[4456]!, self._r[4456]!, [_0]) } - public var MaskStickerSettings_Info: String { return self._s[4457]! } - public var GroupRemoved_DeleteUser: String { return self._s[4459]! } - public var Contacts_ShareTelegram: String { return self._s[4460]! } - public var Group_UpgradeNoticeText1: String { return self._s[4461]! } + public var MaskStickerSettings_Info: String { return self._s[4458]! } + public var GroupRemoved_DeleteUser: String { return self._s[4460]! } + public var Contacts_ShareTelegram: String { return self._s[4461]! } + public var Group_UpgradeNoticeText1: String { return self._s[4462]! } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4462]!, self._r[4462]!, [_1]) + return formatWithArgumentRanges(self._s[4463]!, self._r[4463]!, [_1]) } - public var PrivacyLastSeenSettings_Title: String { return self._s[4463]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[4467]! } - public var PhotoEditor_TintTool: String { return self._s[4468]! } - public var ChatImportActivity_OpenApp: String { return self._s[4470]! } - public var GroupPermission_NoSendPolls: String { return self._s[4471]! } - public var NotificationsSound_None: String { return self._s[4472]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[4464]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[4468]! } + public var PhotoEditor_TintTool: String { return self._s[4469]! } + public var ChatImportActivity_OpenApp: String { return self._s[4471]! } + public var GroupPermission_NoSendPolls: String { return self._s[4472]! } + public var NotificationsSound_None: String { return self._s[4473]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4473]!, self._r[4473]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4474]!, self._r[4474]!, [_1, "\(_2)"]) } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4476]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4477]! } public func Conversation_AutoremoveTimerSetChannel(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4478]!, self._r[4478]!, [_1]) + return formatWithArgumentRanges(self._s[4479]!, self._r[4479]!, [_1]) } - public var ExplicitContent_AlertChannel: String { return self._s[4479]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[4480]! } - public var Contacts_SortedByPresence: String { return self._s[4481]! } - public var WallpaperSearch_ColorGray: String { return self._s[4482]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4483]! } - public var Conversation_ReportSpam: String { return self._s[4484]! } - public var ChatList_Search_NoResultsFilter: String { return self._s[4487]! } - public var WallpaperSearch_ColorBlack: String { return self._s[4488]! } - public var ArchivedChats_IntroTitle3: String { return self._s[4489]! } - public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4490]! } + public var ExplicitContent_AlertChannel: String { return self._s[4480]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[4481]! } + public var Contacts_SortedByPresence: String { return self._s[4482]! } + public var WallpaperSearch_ColorGray: String { return self._s[4483]! } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4484]! } + public var Conversation_ReportSpam: String { return self._s[4485]! } + public var ChatList_Search_NoResultsFilter: String { return self._s[4488]! } + public var WallpaperSearch_ColorBlack: String { return self._s[4489]! } + public var ArchivedChats_IntroTitle3: String { return self._s[4490]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4491]! } public func VoiceChat_PeerJoinedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4491]!, self._r[4491]!, [_0]) + return formatWithArgumentRanges(self._s[4492]!, self._r[4492]!, [_0]) } - public var Conversation_DefaultRestrictedText: String { return self._s[4492]! } - public var Settings_Devices: String { return self._s[4493]! } - public var Call_AudioRouteSpeaker: String { return self._s[4494]! } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[4495]! } - public var VoiceChat_StartsIn: String { return self._s[4496]! } - public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4497]! } - public var VoiceChat_EditDescriptionTitle: String { return self._s[4499]! } - public var Passport_Address_Country: String { return self._s[4500]! } - public var Cache_MaximumCacheSize: String { return self._s[4501]! } - public var Chat_PanelHidePinnedMessages: String { return self._s[4502]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[4503]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4505]! } - public var Login_TermsOfServiceLabel: String { return self._s[4506]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[4507]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4508]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4509]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[4510]! } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[4511]! } - public var ConvertToSupergroup_Note: String { return self._s[4513]! } - public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4514]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4515]! } - public var Common_More: String { return self._s[4516]! } - public var ShareMenu_SelectChats: String { return self._s[4518]! } + public var Conversation_DefaultRestrictedText: String { return self._s[4493]! } + public var Settings_Devices: String { return self._s[4494]! } + public var Call_AudioRouteSpeaker: String { return self._s[4495]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[4496]! } + public var VoiceChat_StartsIn: String { return self._s[4497]! } + public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4498]! } + public var VoiceChat_EditDescriptionTitle: String { return self._s[4500]! } + public var Passport_Address_Country: String { return self._s[4501]! } + public var Cache_MaximumCacheSize: String { return self._s[4502]! } + public var Chat_PanelHidePinnedMessages: String { return self._s[4503]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[4504]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4506]! } + public var Login_TermsOfServiceLabel: String { return self._s[4507]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[4508]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[4509]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4510]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[4511]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[4512]! } + public var ConvertToSupergroup_Note: String { return self._s[4514]! } + public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4515]! } + public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4516]! } + public var Common_More: String { return self._s[4517]! } + public var ShareMenu_SelectChats: String { return self._s[4519]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4519]!, self._r[4519]!, [_0]) - } - public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4520]!, self._r[4520]!, [_0]) } - public var Contacts_PermissionsKeepDisabled: String { return self._s[4522]! } - public var VoiceChat_EditBioText: String { return self._s[4523]! } + public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4521]!, self._r[4521]!, [_0]) + } + public var Contacts_PermissionsKeepDisabled: String { return self._s[4523]! } + public var VoiceChat_EditBioText: String { return self._s[4524]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4524]!, self._r[4524]!, [_0]) + return formatWithArgumentRanges(self._s[4525]!, self._r[4525]!, [_0]) } - public var WatchRemote_AlertOpen: String { return self._s[4525]! } + public var WatchRemote_AlertOpen: String { return self._s[4526]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4526]!, self._r[4526]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4527]!, self._r[4527]!, [_1, _2, _3]) } - public var Channel_Members_AddMembersHelp: String { return self._s[4527]! } - public var Shortcut_SwitchAccount: String { return self._s[4528]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4529]! } + public var Channel_Members_AddMembersHelp: String { return self._s[4528]! } + public var Shortcut_SwitchAccount: String { return self._s[4529]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4530]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4530]!, self._r[4530]!, [_0]) + return formatWithArgumentRanges(self._s[4531]!, self._r[4531]!, [_0]) } - public var Compose_NewGroupTitle: String { return self._s[4531]! } - public var DialogList_You: String { return self._s[4532]! } - public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4533]! } - public var ReportPeer_ReasonViolence: String { return self._s[4534]! } + public var Compose_NewGroupTitle: String { return self._s[4532]! } + public var DialogList_You: String { return self._s[4533]! } + public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4534]! } + public var ReportPeer_ReasonViolence: String { return self._s[4535]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4535]!, self._r[4535]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4536]!, self._r[4536]!, [_1, _2]) } - public var VoiceChat_Reconnecting: String { return self._s[4537]! } - public var KeyCommand_ScrollDown: String { return self._s[4540]! } - public var ChatSettings_DownloadInBackground: String { return self._s[4541]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4542]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[4543]! } - public var ArchivedChats_IntroText3: String { return self._s[4544]! } - public var HashtagSearch_AllChats: String { return self._s[4546]! } - public var VoiceChat_EndVoiceChat: String { return self._s[4547]! } - public var Conversation_MessageCopied: String { return self._s[4549]! } - public var Channel_Info_BlackList: String { return self._s[4550]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4551]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4552]! } - public var Paint_Neon: String { return self._s[4554]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4555]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[4556]! } - public var ImportStickerPack_CreateNewStickerSet: String { return self._s[4557]! } + public var VoiceChat_Reconnecting: String { return self._s[4538]! } + public var KeyCommand_ScrollDown: String { return self._s[4541]! } + public var ChatSettings_DownloadInBackground: String { return self._s[4542]! } + public var Wallpaper_ResetWallpapers: String { return self._s[4543]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[4544]! } + public var ArchivedChats_IntroText3: String { return self._s[4545]! } + public var HashtagSearch_AllChats: String { return self._s[4547]! } + public var VoiceChat_EndVoiceChat: String { return self._s[4548]! } + public var Conversation_MessageCopied: String { return self._s[4550]! } + public var Channel_Info_BlackList: String { return self._s[4551]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4552]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4553]! } + public var Paint_Neon: String { return self._s[4555]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4556]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[4557]! } + public var ImportStickerPack_CreateNewStickerSet: String { return self._s[4558]! } public func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4559]!, self._r[4559]!, [_0]) + return formatWithArgumentRanges(self._s[4560]!, self._r[4560]!, [_0]) } - public var Map_StopLiveLocation: String { return self._s[4560]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4561]! } - public var Channel_Username_InvalidCharacters: String { return self._s[4562]! } - public var InstantPage_Reference: String { return self._s[4564]! } - public var Group_Members_AddMembers: String { return self._s[4566]! } + public var Map_StopLiveLocation: String { return self._s[4561]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4562]! } + public var Channel_Username_InvalidCharacters: String { return self._s[4563]! } + public var InstantPage_Reference: String { return self._s[4565]! } + public var Group_Members_AddMembers: String { return self._s[4567]! } public func Conversation_ScheduledVoiceChatStartsOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4567]!, self._r[4567]!, [_0]) + return formatWithArgumentRanges(self._s[4568]!, self._r[4568]!, [_0]) } - public var ChatList_HideAction: String { return self._s[4568]! } - public var Conversation_FileICloudDrive: String { return self._s[4570]! } + public var ChatList_HideAction: String { return self._s[4569]! } + public var Conversation_FileICloudDrive: String { return self._s[4571]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4571]!, self._r[4571]!, [_1]) + return formatWithArgumentRanges(self._s[4572]!, self._r[4572]!, [_1]) } - public var Passport_PasswordReset: String { return self._s[4573]! } - public var ChatList_Context_UnhideArchive: String { return self._s[4575]! } - public var ConvertToSupergroup_HelpText: String { return self._s[4576]! } - public var Calls_AddTab: String { return self._s[4577]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4579]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4580]! } - public var Privacy_GroupsAndChannels: String { return self._s[4583]! } - public var Conversation_UsernameCopied: String { return self._s[4584]! } - public var AutoNightTheme_Disabled: String { return self._s[4585]! } - public var CreatePoll_MultipleChoice: String { return self._s[4586]! } + public var Passport_PasswordReset: String { return self._s[4574]! } + public var ChatList_Context_UnhideArchive: String { return self._s[4576]! } + public var ConvertToSupergroup_HelpText: String { return self._s[4577]! } + public var Calls_AddTab: String { return self._s[4578]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4580]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4581]! } + public var Privacy_GroupsAndChannels: String { return self._s[4584]! } + public var Conversation_UsernameCopied: String { return self._s[4585]! } + public var AutoNightTheme_Disabled: String { return self._s[4586]! } + public var CreatePoll_MultipleChoice: String { return self._s[4587]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4587]!, self._r[4587]!, [_1]) + return formatWithArgumentRanges(self._s[4588]!, self._r[4588]!, [_1]) } - public var Watch_Bot_Restart: String { return self._s[4589]! } + public var Watch_Bot_Restart: String { return self._s[4590]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4590]!, self._r[4590]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[4591]!, self._r[4591]!, ["\(_0)"]) } - public var GroupInfo_ScamGroupWarning: String { return self._s[4592]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[4593]! } - public var Appearance_PreviewIncomingText: String { return self._s[4594]! } - public var ChatSettings_WidgetSettings: String { return self._s[4595]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4596]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4598]! } - public var Stats_GroupOverview: String { return self._s[4600]! } - public var ScheduledMessages_EditTime: String { return self._s[4603]! } - public var Month_GenFebruary: String { return self._s[4604]! } - public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4605]! } - public var Stickers_ClearRecent: String { return self._s[4606]! } - public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4607]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4608]! } - public var Stats_Message_PublicShares: String { return self._s[4609]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[4593]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[4594]! } + public var Appearance_PreviewIncomingText: String { return self._s[4595]! } + public var ChatSettings_WidgetSettings: String { return self._s[4596]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4597]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4599]! } + public var Stats_GroupOverview: String { return self._s[4601]! } + public var ScheduledMessages_EditTime: String { return self._s[4604]! } + public var Month_GenFebruary: String { return self._s[4605]! } + public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4606]! } + public var Stickers_ClearRecent: String { return self._s[4607]! } + public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4608]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4609]! } + public var Stats_Message_PublicShares: String { return self._s[4610]! } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4610]!, self._r[4610]!, [_0]) + return formatWithArgumentRanges(self._s[4611]!, self._r[4611]!, [_0]) } - public var Login_TermsOfServiceSignupDecline: String { return self._s[4611]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4612]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[4613]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4614]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4616]! } - public var CreatePoll_Create: String { return self._s[4617]! } - public var ChatList_Search_FilterLinks: String { return self._s[4618]! } - public var Your_cards_number_is_invalid: String { return self._s[4619]! } - public var Month_ShortApril: String { return self._s[4620]! } - public var SocksProxySetup_UseForCalls: String { return self._s[4621]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[4622]! } - public var SocksProxySetup_Status: String { return self._s[4623]! } - public var VoiceChat_UnmuteForMe: String { return self._s[4624]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4625]! } - public var ChatListFolder_CategoryBots: String { return self._s[4626]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[4628]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4629]! } - public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4630]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[4631]! } - public var Conversation_TitleUnmute: String { return self._s[4632]! } - public var Group_Setup_TypeHeader: String { return self._s[4633]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[4612]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4613]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[4614]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4615]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4617]! } + public var CreatePoll_Create: String { return self._s[4618]! } + public var ChatList_Search_FilterLinks: String { return self._s[4619]! } + public var Your_cards_number_is_invalid: String { return self._s[4620]! } + public var Month_ShortApril: String { return self._s[4621]! } + public var SocksProxySetup_UseForCalls: String { return self._s[4622]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[4623]! } + public var SocksProxySetup_Status: String { return self._s[4624]! } + public var VoiceChat_UnmuteForMe: String { return self._s[4625]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4626]! } + public var ChatListFolder_CategoryBots: String { return self._s[4627]! } + public var Passport_FieldIdentitySelfieHelp: String { return self._s[4629]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4630]! } + public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4631]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[4632]! } + public var Conversation_TitleUnmute: String { return self._s[4633]! } + public var Group_Setup_TypeHeader: String { return self._s[4634]! } public func Conversation_ForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4634]!, self._r[4634]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4635]!, self._r[4635]!, [_0, _1]) } - public var Stats_ViewsPerPost: String { return self._s[4635]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4636]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4637]! } + public var Stats_ViewsPerPost: String { return self._s[4636]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4637]! } + public var Passport_Identity_TranslationHelp: String { return self._s[4638]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4638]!, self._r[4638]!, [_1]) + return formatWithArgumentRanges(self._s[4639]!, self._r[4639]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[4639]! } + public var GroupInfo_Administrators_Title: String { return self._s[4640]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4640]!, self._r[4640]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4641]!, self._r[4641]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4641]!, self._r[4641]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4642]!, self._r[4642]!, [_1, _2, _3]) } - public var CheckoutInfo_ShippingInfoState: String { return self._s[4642]! } - public var Passport_Language_my: String { return self._s[4644]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4645]! } - public var VoiceChat_Unpin: String { return self._s[4646]! } - public var Map_PlacesNearby: String { return self._s[4647]! } - public var Channel_About_Help: String { return self._s[4648]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[4649]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[4650]! } - public var Channel_Username_Title: String { return self._s[4651]! } - public var Activity_RecordingVideoMessage: String { return self._s[4652]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[4643]! } + public var Passport_Language_my: String { return self._s[4645]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4646]! } + public var VoiceChat_Unpin: String { return self._s[4647]! } + public var Map_PlacesNearby: String { return self._s[4648]! } + public var Channel_About_Help: String { return self._s[4649]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[4650]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[4651]! } + public var Channel_Username_Title: String { return self._s[4652]! } + public var Activity_RecordingVideoMessage: String { return self._s[4653]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4653]!, self._r[4653]!, [_0]) + return formatWithArgumentRanges(self._s[4654]!, self._r[4654]!, [_0]) } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[4654]! } - public var Passport_DiscardMessageDescription: String { return self._s[4655]! } - public var Conversation_LinkDialogOpen: String { return self._s[4656]! } - public var ChatList_Context_HideArchive: String { return self._s[4657]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[4655]! } + public var Passport_DiscardMessageDescription: String { return self._s[4656]! } + public var Conversation_LinkDialogOpen: String { return self._s[4657]! } + public var ChatList_Context_HideArchive: String { return self._s[4658]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4658]!, self._r[4658]!, [_0]) + return formatWithArgumentRanges(self._s[4659]!, self._r[4659]!, [_0]) } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4659]! } - public var Conversation_Admin: String { return self._s[4660]! } - public var DialogList_TabTitle: String { return self._s[4661]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4660]! } + public var Conversation_Admin: String { return self._s[4661]! } + public var DialogList_TabTitle: String { return self._s[4662]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4662]!, self._r[4662]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4663]!, self._r[4663]!, [_1, _2]) } - public var Notifications_PermissionsUnreachableText: String { return self._s[4663]! } - public var Passport_Identity_GenderMale: String { return self._s[4665]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[4664]! } + public var Passport_Identity_GenderMale: String { return self._s[4666]! } public func VoiceChat_EditTitleSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4667]!, self._r[4667]!, [_0]) + return formatWithArgumentRanges(self._s[4668]!, self._r[4668]!, [_0]) } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4668]! } - public var PhoneNumberHelp_Alert: String { return self._s[4669]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4670]! } - public var Notifications_InAppNotifications: String { return self._s[4671]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4669]! } + public var PhoneNumberHelp_Alert: String { return self._s[4670]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4671]! } + public var Notifications_InAppNotifications: String { return self._s[4672]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4672]!, self._r[4672]!, [_0]) + return formatWithArgumentRanges(self._s[4673]!, self._r[4673]!, [_0]) } - public var Notification_VideoCallOutgoing: String { return self._s[4673]! } - public var Login_InvalidCodeError: String { return self._s[4674]! } - public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4675]! } + public var Notification_VideoCallOutgoing: String { return self._s[4674]! } + public var Login_InvalidCodeError: String { return self._s[4675]! } + public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4676]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4677]!, self._r[4677]!, [_0]) + return formatWithArgumentRanges(self._s[4678]!, self._r[4678]!, [_0]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4678]! } - public var ReportPeer_Report: String { return self._s[4679]! } - public var Camera_FlashOff: String { return self._s[4682]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4685]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4679]! } + public var ReportPeer_Report: String { return self._s[4680]! } + public var Camera_FlashOff: String { return self._s[4683]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4686]! } public func Notification_VoiceChatScheduledTomorrow(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4686]!, self._r[4686]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4687]!, self._r[4687]!, [_1, _2]) } - public var PrivacyPolicy_DeclineTitle: String { return self._s[4689]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4690]! } - public var Passport_FieldEmail: String { return self._s[4691]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[4690]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4691]! } + public var Passport_FieldEmail: String { return self._s[4692]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4692]!, self._r[4692]!, [_1]) + return formatWithArgumentRanges(self._s[4693]!, self._r[4693]!, [_1]) } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[4693]! } - public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4694]! } - public var Group_OwnershipTransfer_Title: String { return self._s[4695]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[4696]! } - public var Login_PhoneNumberHelp: String { return self._s[4698]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4699]! } - public var Conversation_PinnedQuiz: String { return self._s[4700]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[4701]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4702]! } - public var Group_MessagePhotoUpdated: String { return self._s[4703]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[4704]! } - public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4705]! } - public var Passport_Identity_Translations: String { return self._s[4707]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4708]! } - public var ChannelInfo_DeleteChannel: String { return self._s[4710]! } - public var PasscodeSettings_HelpBottom: String { return self._s[4711]! } - public var Channel_Members_AddMembers: String { return self._s[4712]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[4713]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4715]! } - public var Conversation_HoldForAudio: String { return self._s[4716]! } - public var Media_LimitedAccessChangeSettings: String { return self._s[4718]! } - public var Watch_LastSeen_Lately: String { return self._s[4719]! } - public var ChatList_Context_MarkAsRead: String { return self._s[4720]! } - public var Conversation_PinnedMessage: String { return self._s[4721]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4722]! } - public var VoiceChat_StopRecordingStop: String { return self._s[4724]! } - public var Passport_UpdateRequiredError: String { return self._s[4725]! } - public var PrivacySettings_Passcode: String { return self._s[4726]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[4694]! } + public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4695]! } + public var Group_OwnershipTransfer_Title: String { return self._s[4696]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[4697]! } + public var Login_PhoneNumberHelp: String { return self._s[4699]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4700]! } + public var Conversation_PinnedQuiz: String { return self._s[4701]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[4702]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4703]! } + public var Group_MessagePhotoUpdated: String { return self._s[4704]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[4705]! } + public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4706]! } + public var Passport_Identity_Translations: String { return self._s[4708]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4709]! } + public var ChannelInfo_DeleteChannel: String { return self._s[4711]! } + public var PasscodeSettings_HelpBottom: String { return self._s[4712]! } + public var Channel_Members_AddMembers: String { return self._s[4713]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[4714]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4716]! } + public var Conversation_HoldForAudio: String { return self._s[4717]! } + public var Media_LimitedAccessChangeSettings: String { return self._s[4719]! } + public var Watch_LastSeen_Lately: String { return self._s[4720]! } + public var ChatList_Context_MarkAsRead: String { return self._s[4721]! } + public var Conversation_PinnedMessage: String { return self._s[4722]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4723]! } + public var VoiceChat_StopRecordingStop: String { return self._s[4725]! } + public var Passport_UpdateRequiredError: String { return self._s[4726]! } + public var PrivacySettings_Passcode: String { return self._s[4727]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4727]!, self._r[4727]!, [_0]) + return formatWithArgumentRanges(self._s[4728]!, self._r[4728]!, [_0]) } - public var AutoNightTheme_NotAvailable: String { return self._s[4728]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[4729]! } - public var VoiceOver_Common_On: String { return self._s[4730]! } - public var LoginPassword_InvalidPasswordError: String { return self._s[4731]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4732]! } - public var Channel_SignMessages_Help: String { return self._s[4733]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4734]! } - public var Conversation_TitleNoComments: String { return self._s[4735]! } - public var MediaPicker_LivePhotoDescription: String { return self._s[4736]! } - public var GroupInfo_Permissions: String { return self._s[4737]! } - public var GroupPermission_NoSendLinks: String { return self._s[4740]! } + public var AutoNightTheme_NotAvailable: String { return self._s[4729]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[4730]! } + public var VoiceOver_Common_On: String { return self._s[4731]! } + public var LoginPassword_InvalidPasswordError: String { return self._s[4732]! } + public var ChatListFolder_IncludedSectionHeader: String { return self._s[4733]! } + public var Channel_SignMessages_Help: String { return self._s[4734]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4735]! } + public var Conversation_TitleNoComments: String { return self._s[4736]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[4737]! } + public var GroupInfo_Permissions: String { return self._s[4738]! } + public var GroupPermission_NoSendLinks: String { return self._s[4741]! } public func Conversation_ScheduledVoiceChatStartsTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4741]!, self._r[4741]!, [_0]) + return formatWithArgumentRanges(self._s[4742]!, self._r[4742]!, [_0]) } - public var Passport_Identity_ResidenceCountry: String { return self._s[4742]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[4744]! } - public var ChatList_ArchiveAction: String { return self._s[4745]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[4743]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[4745]! } + public var ChatList_ArchiveAction: String { return self._s[4746]! } public func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4746]!, self._r[4746]!, [_0]) + return formatWithArgumentRanges(self._s[4747]!, self._r[4747]!, [_0]) } - public var GroupInfo_GroupHistory: String { return self._s[4747]! } + public var GroupInfo_GroupHistory: String { return self._s[4748]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4749]!, self._r[4749]!, [_0]) + return formatWithArgumentRanges(self._s[4750]!, self._r[4750]!, [_0]) } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4751]! } - public var Channel_Info_Banned: String { return self._s[4752]! } - public var Paint_RecentStickers: String { return self._s[4753]! } - public var VoiceOver_MessageContextSend: String { return self._s[4754]! } - public var Group_ErrorNotMutualContact: String { return self._s[4755]! } - public var ReportPeer_ReasonOther: String { return self._s[4757]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4758]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4760]! } - public var KeyCommand_Find: String { return self._s[4761]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4752]! } + public var Channel_Info_Banned: String { return self._s[4753]! } + public var Paint_RecentStickers: String { return self._s[4754]! } + public var VoiceOver_MessageContextSend: String { return self._s[4755]! } + public var Group_ErrorNotMutualContact: String { return self._s[4756]! } + public var ReportPeer_ReasonOther: String { return self._s[4758]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4759]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4761]! } + public var KeyCommand_Find: String { return self._s[4762]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4762]!, self._r[4762]!, [_0]) + return formatWithArgumentRanges(self._s[4763]!, self._r[4763]!, [_0]) } - public var ChatList_Context_Unmute: String { return self._s[4763]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4764]! } - public var Stickers_GroupStickersHelp: String { return self._s[4765]! } - public var Checkout_Title: String { return self._s[4766]! } - public var Activity_RecordingAudio: String { return self._s[4767]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4768]! } - public var BlockedUsers_BlockTitle: String { return self._s[4769]! } - public var DialogList_SavedMessagesHelp: String { return self._s[4771]! } - public var Calls_All: String { return self._s[4772]! } - public var Settings_FAQ_Button: String { return self._s[4774]! } - public var Conversation_Dice_u1F3B0: String { return self._s[4776]! } + public var ChatList_Context_Unmute: String { return self._s[4764]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4765]! } + public var Stickers_GroupStickersHelp: String { return self._s[4766]! } + public var Checkout_Title: String { return self._s[4767]! } + public var Activity_RecordingAudio: String { return self._s[4768]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4769]! } + public var BlockedUsers_BlockTitle: String { return self._s[4770]! } + public var DialogList_SavedMessagesHelp: String { return self._s[4772]! } + public var Calls_All: String { return self._s[4773]! } + public var Settings_FAQ_Button: String { return self._s[4775]! } + public var Conversation_Dice_u1F3B0: String { return self._s[4777]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4777]!, self._r[4777]!, [_0]) + return formatWithArgumentRanges(self._s[4778]!, self._r[4778]!, [_0]) } - public var Conversation_ReportGroupLocation: String { return self._s[4778]! } - public var Passport_Scans_Upload: String { return self._s[4779]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4781]! } - public var ChatList_UnarchiveAction: String { return self._s[4782]! } - public var Stats_GroupTopInviter_History: String { return self._s[4783]! } - public var GroupInfo_Permissions_Title: String { return self._s[4784]! } - public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4785]! } - public var Passport_Language_el: String { return self._s[4786]! } - public var Channel_DiscussionMessageUnavailable: String { return self._s[4787]! } + public var Conversation_ReportGroupLocation: String { return self._s[4779]! } + public var Passport_Scans_Upload: String { return self._s[4780]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4782]! } + public var ChatList_UnarchiveAction: String { return self._s[4783]! } + public var Stats_GroupTopInviter_History: String { return self._s[4784]! } + public var GroupInfo_Permissions_Title: String { return self._s[4785]! } + public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4786]! } + public var Passport_Language_el: String { return self._s[4787]! } + public var Channel_DiscussionMessageUnavailable: String { return self._s[4788]! } public func UserInfo_ContactForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4788]!, self._r[4788]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4789]!, self._r[4789]!, [_0, _1]) } - public var GroupInfo_ActionPromote: String { return self._s[4789]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4790]! } - public var Media_LimitedAccessSelectMore: String { return self._s[4791]! } + public var GroupInfo_ActionPromote: String { return self._s[4790]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4791]! } + public var Media_LimitedAccessSelectMore: String { return self._s[4792]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4792]!, self._r[4792]!, [_0]) + return formatWithArgumentRanges(self._s[4793]!, self._r[4793]!, [_0]) } - public var VoiceOver_Chat_Reply: String { return self._s[4793]! } - public var Month_GenMay: String { return self._s[4794]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4795]! } - public var Chat_PsaTooltip_covid: String { return self._s[4796]! } - public var Watch_Suggestion_CantTalk: String { return self._s[4797]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4798]! } - public var AppUpgrade_Running: String { return self._s[4799]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4802]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4803]! } - public var SharedMedia_EmptyText: String { return self._s[4804]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[4805]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4806]! } - public var Message_PinnedGame: String { return self._s[4807]! } - public var KeyCommand_SearchInChat: String { return self._s[4808]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[4809]! } - public var ChatList_Search_FilterMedia: String { return self._s[4810]! } - public var Message_PinnedAudioMessage: String { return self._s[4811]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[4813]! } + public var VoiceOver_Chat_Reply: String { return self._s[4794]! } + public var Month_GenMay: String { return self._s[4795]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4796]! } + public var Chat_PsaTooltip_covid: String { return self._s[4797]! } + public var Watch_Suggestion_CantTalk: String { return self._s[4798]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4799]! } + public var AppUpgrade_Running: String { return self._s[4800]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4803]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4804]! } + public var SharedMedia_EmptyText: String { return self._s[4805]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[4806]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4807]! } + public var Message_PinnedGame: String { return self._s[4808]! } + public var KeyCommand_SearchInChat: String { return self._s[4809]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[4810]! } + public var ChatList_Search_FilterMedia: String { return self._s[4811]! } + public var Message_PinnedAudioMessage: String { return self._s[4812]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[4814]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4814]!, self._r[4814]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4815]!, self._r[4815]!, [_1, _2]) } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4815]! } - public var InviteLink_Create: String { return self._s[4816]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4816]! } + public var InviteLink_Create: String { return self._s[4817]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4817]!, self._r[4817]!, [_0]) - } - public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4818]!, self._r[4818]!, [_0]) } - public var Settings_AddAccount: String { return self._s[4819]! } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4820]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4821]! } - public var Channel_JoinChannel: String { return self._s[4822]! } - public var Watch_UserInfo_Unblock: String { return self._s[4823]! } - public var PhoneLabel_Title: String { return self._s[4824]! } - public var VoiceChat_EditPermissions: String { return self._s[4826]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[4827]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4828]! } + public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4819]!, self._r[4819]!, [_0]) + } + public var Settings_AddAccount: String { return self._s[4820]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4821]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4822]! } + public var Channel_JoinChannel: String { return self._s[4823]! } + public var Watch_UserInfo_Unblock: String { return self._s[4824]! } + public var PhoneLabel_Title: String { return self._s[4825]! } + public var VoiceChat_EditPermissions: String { return self._s[4827]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[4828]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4829]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4829]!, self._r[4829]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[4830]!, self._r[4830]!, [_1, _2, _3, _4, _5, _6]) } - public var Channel_AddBotErrorHaveRights: String { return self._s[4830]! } - public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4831]! } - public var DialogList_EncryptionProcessing: String { return self._s[4832]! } - public var ChatList_Search_FilterChats: String { return self._s[4833]! } - public var WatchRemote_NotificationText: String { return self._s[4834]! } - public var EditTheme_ChangeColors: String { return self._s[4836]! } - public var GroupRemoved_ViewUserInfo: String { return self._s[4837]! } - public var CallSettings_OnMobile: String { return self._s[4839]! } - public var Month_ShortFebruary: String { return self._s[4841]! } - public var VoiceOver_MessageContextReply: String { return self._s[4842]! } - public var AutoremoveSetup_TimerValueNever: String { return self._s[4843]! } - public var Group_Location_ChangeLocation: String { return self._s[4845]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[4831]! } + public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4832]! } + public var DialogList_EncryptionProcessing: String { return self._s[4833]! } + public var ChatList_Search_FilterChats: String { return self._s[4834]! } + public var WatchRemote_NotificationText: String { return self._s[4835]! } + public var EditTheme_ChangeColors: String { return self._s[4837]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[4838]! } + public var CallSettings_OnMobile: String { return self._s[4840]! } + public var Month_ShortFebruary: String { return self._s[4842]! } + public var VoiceOver_MessageContextReply: String { return self._s[4843]! } + public var AutoremoveSetup_TimerValueNever: String { return self._s[4844]! } + public var Group_Location_ChangeLocation: String { return self._s[4846]! } public func PUSH_VIDEO_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4846]!, self._r[4846]!, [_1]) + return formatWithArgumentRanges(self._s[4847]!, self._r[4847]!, [_1]) } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4847]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[4848]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4849]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4848]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[4849]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4850]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4851]!, self._r[4851]!, [_0]) + return formatWithArgumentRanges(self._s[4852]!, self._r[4852]!, [_0]) } - public var PhotoEditor_WarmthTool: String { return self._s[4852]! } - public var Login_InfoAvatarPhoto: String { return self._s[4853]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4854]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4855]! } - public var Map_PlacesInThisArea: String { return self._s[4856]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[4857]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[4858]! } + public var PhotoEditor_WarmthTool: String { return self._s[4853]! } + public var Login_InfoAvatarPhoto: String { return self._s[4854]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4855]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4856]! } + public var Map_PlacesInThisArea: String { return self._s[4857]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[4858]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[4859]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4859]!, self._r[4859]!, [_1]) + return formatWithArgumentRanges(self._s[4860]!, self._r[4860]!, [_1]) } - public var PeerInfo_ReportProfileVideo: String { return self._s[4860]! } - public var ShareMenu_Send: String { return self._s[4861]! } - public var Username_InvalidStartsWithNumber: String { return self._s[4862]! } + public var PeerInfo_ReportProfileVideo: String { return self._s[4861]! } + public var ShareMenu_Send: String { return self._s[4862]! } + public var Username_InvalidStartsWithNumber: String { return self._s[4863]! } public func Channel_AdminLog_StartedVoiceChat(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4863]!, self._r[4863]!, [_1]) + return formatWithArgumentRanges(self._s[4864]!, self._r[4864]!, [_1]) } - public var Appearance_AppIconClassicX: String { return self._s[4864]! } - public var Report_Report: String { return self._s[4865]! } + public var Appearance_AppIconClassicX: String { return self._s[4865]! } + public var Report_Report: String { return self._s[4866]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4866]!, self._r[4866]!, [_1]) + return formatWithArgumentRanges(self._s[4867]!, self._r[4867]!, [_1]) } - public var Conversation_StopPoll: String { return self._s[4867]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4869]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[4870]! } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4871]! } - public var Conversation_Timer_Title: String { return self._s[4872]! } - public var Common_Next: String { return self._s[4873]! } - public var Notification_Exceptions_NewException: String { return self._s[4874]! } + public var Conversation_StopPoll: String { return self._s[4868]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4870]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[4871]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4872]! } + public var Conversation_Timer_Title: String { return self._s[4873]! } + public var Common_Next: String { return self._s[4874]! } + public var Notification_Exceptions_NewException: String { return self._s[4875]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4875]!, self._r[4875]!, [_0]) + return formatWithArgumentRanges(self._s[4876]!, self._r[4876]!, [_0]) } - public var AccessDenied_CallMicrophone: String { return self._s[4876]! } - public var VoiceChat_UnmutePeer: String { return self._s[4877]! } - public var ChatImportActivity_Retry: String { return self._s[4878]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4879]! } - public var ChangePhoneNumberCode_Help: String { return self._s[4880]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4881]! } - public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4882]! } - public var BlockedUsers_LeavePrefix: String { return self._s[4883]! } + public var AccessDenied_CallMicrophone: String { return self._s[4877]! } + public var VoiceChat_UnmutePeer: String { return self._s[4878]! } + public var ChatImportActivity_Retry: String { return self._s[4879]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4880]! } + public var ChangePhoneNumberCode_Help: String { return self._s[4881]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4882]! } + public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4883]! } + public var BlockedUsers_LeavePrefix: String { return self._s[4884]! } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4884]!, self._r[4884]!, [_0]) + return formatWithArgumentRanges(self._s[4885]!, self._r[4885]!, [_0]) } - public var Group_About_Help: String { return self._s[4885]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4886]! } - public var Tour_Title3: String { return self._s[4887]! } - public var Watch_Conversation_Unblock: String { return self._s[4888]! } - public var Watch_UserInfo_Block: String { return self._s[4889]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[4890]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[4891]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4892]! } - public var TextFormat_AddLinkTitle: String { return self._s[4893]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4894]! } + public var Group_About_Help: String { return self._s[4886]! } + public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4887]! } + public var Tour_Title3: String { return self._s[4888]! } + public var Watch_Conversation_Unblock: String { return self._s[4889]! } + public var Watch_UserInfo_Block: String { return self._s[4890]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[4891]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[4892]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4893]! } + public var TextFormat_AddLinkTitle: String { return self._s[4894]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4895]! } public func Notification_VoiceChatScheduled(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4895]!, self._r[4895]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4896]!, self._r[4896]!, [_1, _2]) } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4896]! } - public var FastTwoStepSetup_PasswordSection: String { return self._s[4898]! } - public var Compose_ChannelMembers: String { return self._s[4899]! } - public var Conversation_ForwardTitle: String { return self._s[4900]! } - public var Conversation_PinnedPoll: String { return self._s[4903]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4897]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[4899]! } + public var Compose_ChannelMembers: String { return self._s[4900]! } + public var Conversation_ForwardTitle: String { return self._s[4901]! } + public var Conversation_PinnedPoll: String { return self._s[4904]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4904]!, self._r[4904]!, [_0]) + return formatWithArgumentRanges(self._s[4905]!, self._r[4905]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4905]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4907]! } - public var Stats_Overview: String { return self._s[4908]! } - public var Map_HomeAndWorkTitle: String { return self._s[4909]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4906]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4908]! } + public var Stats_Overview: String { return self._s[4909]! } + public var Map_HomeAndWorkTitle: String { return self._s[4910]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4910]!, self._r[4910]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4911]!, self._r[4911]!, [_1, _2, _3]) } - public var Passport_Address_CityPlaceholder: String { return self._s[4911]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4912]! } - public var Privacy_PhoneNumber: String { return self._s[4913]! } - public var ChatList_Search_FilterFiles: String { return self._s[4914]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4915]! } - public var ChannelIntro_CreateChannel: String { return self._s[4916]! } - public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4917]! } + public var Passport_Address_CityPlaceholder: String { return self._s[4912]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4913]! } + public var Privacy_PhoneNumber: String { return self._s[4914]! } + public var ChatList_Search_FilterFiles: String { return self._s[4915]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4916]! } + public var ChannelIntro_CreateChannel: String { return self._s[4917]! } + public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4918]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4918]!, self._r[4918]!, [_0]) + return formatWithArgumentRanges(self._s[4919]!, self._r[4919]!, [_0]) } - public var Weekday_ShortMonday: String { return self._s[4919]! } - public var Passport_Language_ar: String { return self._s[4921]! } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4922]! } - public var TwoFactorSetup_Done_Title: String { return self._s[4923]! } - public var Calls_RatingFeedback: String { return self._s[4924]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4925]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[4928]! } + public var Weekday_ShortMonday: String { return self._s[4920]! } + public var Passport_Language_ar: String { return self._s[4922]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4923]! } + public var TwoFactorSetup_Done_Title: String { return self._s[4924]! } + public var Calls_RatingFeedback: String { return self._s[4925]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4926]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[4929]! } public func VoiceOver_SelfDestructTimerOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4929]!, self._r[4929]!, [_0]) + return formatWithArgumentRanges(self._s[4930]!, self._r[4930]!, [_0]) } - public var Watch_Compose_Send: String { return self._s[4930]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[4931]! } - public var WebSearch_RecentSectionClear: String { return self._s[4932]! } + public var Watch_Compose_Send: String { return self._s[4931]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[4932]! } + public var WebSearch_RecentSectionClear: String { return self._s[4933]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4933]!, self._r[4933]!, [_0]) + return formatWithArgumentRanges(self._s[4934]!, self._r[4934]!, [_0]) } - public var WallpaperSearch_ColorTeal: String { return self._s[4934]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4935]! } - public var Permissions_ContactsTitle_v0: String { return self._s[4936]! } - public var Checkout_PasswordEntry_Pay: String { return self._s[4938]! } - public var Settings_SavedMessages: String { return self._s[4939]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4940]! } - public var Month_ShortMarch: String { return self._s[4941]! } - public var Message_Location: String { return self._s[4942]! } + public var WallpaperSearch_ColorTeal: String { return self._s[4935]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4936]! } + public var Permissions_ContactsTitle_v0: String { return self._s[4937]! } + public var Checkout_PasswordEntry_Pay: String { return self._s[4939]! } + public var Settings_SavedMessages: String { return self._s[4940]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4941]! } + public var Month_ShortMarch: String { return self._s[4942]! } + public var Message_Location: String { return self._s[4943]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4943]!, self._r[4943]!, [_1]) - } - public func Channel_AdminLog_MessageRemovedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4944]!, self._r[4944]!, [_1]) } + public func Channel_AdminLog_MessageRemovedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4945]!, self._r[4945]!, [_1]) + } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4945]!, self._r[4945]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4946]!, self._r[4946]!, [_1, _2]) } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[4947]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[4948]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4948]!, self._r[4948]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4949]!, self._r[4949]!, [_1, _2]) } - public var GroupPermission_NoSendMedia: String { return self._s[4949]! } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[4950]! } - public var SharedMedia_CategoryDocs: String { return self._s[4951]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[4952]! } - public var Paint_Framed: String { return self._s[4953]! } - public var Channel_Setup_LinkTypePublic: String { return self._s[4954]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4955]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[4956]! } + public var GroupPermission_NoSendMedia: String { return self._s[4950]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[4951]! } + public var SharedMedia_CategoryDocs: String { return self._s[4952]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[4953]! } + public var Paint_Framed: String { return self._s[4954]! } + public var Channel_Setup_LinkTypePublic: String { return self._s[4955]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4956]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[4957]! } public func ChatImport_SelectionConfirmationUserWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4957]!, self._r[4957]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4958]!, self._r[4958]!, [_1, _2]) } - public var TwoStepAuth_RecoveryUnavailableResetAction: String { return self._s[4958]! } - public var Channel_SignMessages: String { return self._s[4959]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[4960]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4961]! } + public var TwoStepAuth_RecoveryUnavailableResetAction: String { return self._s[4959]! } + public var Channel_SignMessages: String { return self._s[4960]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[4961]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4962]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4962]!, self._r[4962]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4963]!, self._r[4963]!, [_1, _2]) } - public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4963]! } - public var ImportStickerPack_ChooseName: String { return self._s[4964]! } - public var GroupInfo_UpgradeButton: String { return self._s[4965]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4966]! } + public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4964]! } + public var ImportStickerPack_ChooseName: String { return self._s[4965]! } + public var GroupInfo_UpgradeButton: String { return self._s[4966]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4967]! } public func Conversation_ScheduledVoiceChatStartsTomorrowShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4967]!, self._r[4967]!, [_0]) + return formatWithArgumentRanges(self._s[4968]!, self._r[4968]!, [_0]) } - public var AutoDownloadSettings_Files: String { return self._s[4968]! } + public var AutoDownloadSettings_Files: String { return self._s[4969]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4969]!, self._r[4969]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4970]!, self._r[4970]!, [_0, _1]) } - public var Login_SendCodeViaSms: String { return self._s[4971]! } - public var Update_UpdateApp: String { return self._s[4972]! } - public var Channel_Setup_TypePublic: String { return self._s[4973]! } - public var Watch_Compose_CreateMessage: String { return self._s[4974]! } + public var Login_SendCodeViaSms: String { return self._s[4972]! } + public var Update_UpdateApp: String { return self._s[4973]! } + public var Channel_Setup_TypePublic: String { return self._s[4974]! } + public var Watch_Compose_CreateMessage: String { return self._s[4975]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4975]!, self._r[4975]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4976]!, self._r[4976]!, [_1, _2, _3]) } - public var StickerPacksSettings_ManagingHelp: String { return self._s[4976]! } - public var VoiceOver_Chat_Video: String { return self._s[4977]! } - public var Forward_ChannelReadOnly: String { return self._s[4978]! } - public var StickerPack_HideStickers: String { return self._s[4979]! } - public var ChatListFolder_NameContacts: String { return self._s[4980]! } - public var Profile_BotInfo: String { return self._s[4981]! } - public var Document_TargetConfirmationFormat: String { return self._s[4982]! } - public var GroupInfo_InviteByLink: String { return self._s[4983]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4984]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[4985]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[4986]! } - public var Passport_NotLoggedInMessage: String { return self._s[4987]! } - public var Conversation_StopQuizConfirmation: String { return self._s[4988]! } - public var Checkout_PaymentMethod: String { return self._s[4989]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[4994]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4995]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4996]! } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4997]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4998]! } - public var Conversation_GigagroupDescription: String { return self._s[4999]! } - public var Camera_Title: String { return self._s[5000]! } - public var Map_Directions: String { return self._s[5001]! } - public var Stats_MessagePublicForwardsTitle: String { return self._s[5003]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[5004]! } - public var Profile_EncryptionKey: String { return self._s[5005]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[4977]! } + public var VoiceOver_Chat_Video: String { return self._s[4978]! } + public var Forward_ChannelReadOnly: String { return self._s[4979]! } + public var StickerPack_HideStickers: String { return self._s[4980]! } + public var ChatListFolder_NameContacts: String { return self._s[4981]! } + public var Profile_BotInfo: String { return self._s[4982]! } + public var Document_TargetConfirmationFormat: String { return self._s[4983]! } + public var GroupInfo_InviteByLink: String { return self._s[4984]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4985]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[4986]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[4987]! } + public var Passport_NotLoggedInMessage: String { return self._s[4988]! } + public var Conversation_StopQuizConfirmation: String { return self._s[4989]! } + public var Checkout_PaymentMethod: String { return self._s[4990]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[4995]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4996]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4997]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4998]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4999]! } + public var Conversation_GigagroupDescription: String { return self._s[5000]! } + public var Camera_Title: String { return self._s[5001]! } + public var Map_Directions: String { return self._s[5002]! } + public var Stats_MessagePublicForwardsTitle: String { return self._s[5004]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[5005]! } + public var Profile_EncryptionKey: String { return self._s[5006]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5006]!, self._r[5006]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[5007]!, self._r[5007]!, [_1, "\(_2)"]) } - public var VoiceChat_VideoPreviewShareCamera: String { return self._s[5007]! } + public var VoiceChat_VideoPreviewShareCamera: String { return self._s[5008]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5008]!, self._r[5008]!, [_0, _1]) + return formatWithArgumentRanges(self._s[5009]!, self._r[5009]!, [_0, _1]) } - public var Passport_Identity_TypePassport: String { return self._s[5009]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[5011]! } - public var Common_No: String { return self._s[5012]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[5013]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[5014]! } - public var Settings_AboutEmpty: String { return self._s[5015]! } - public var TwoStepAuth_FloodError: String { return self._s[5017]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[5018]! } + public var Passport_Identity_TypePassport: String { return self._s[5010]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[5012]! } + public var Common_No: String { return self._s[5013]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[5014]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[5015]! } + public var Settings_AboutEmpty: String { return self._s[5016]! } + public var TwoStepAuth_FloodError: String { return self._s[5018]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[5019]! } public func Notification_VoiceChatScheduledChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5019]!, self._r[5019]!, [_0]) + return formatWithArgumentRanges(self._s[5020]!, self._r[5020]!, [_0]) } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5021]!, self._r[5021]!, [_1]) + return formatWithArgumentRanges(self._s[5022]!, self._r[5022]!, [_1]) } - public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[5024]! } - public var Conversation_Edit: String { return self._s[5025]! } - public var CheckoutInfo_SaveInfo: String { return self._s[5027]! } - public var VoiceOver_Chat_AnonymousPoll: String { return self._s[5028]! } - public var Call_CameraTooltip: String { return self._s[5030]! } - public var InstantPage_FeedbackButtonShort: String { return self._s[5031]! } - public var Contacts_InviteToTelegram: String { return self._s[5032]! } - public var Notifications_ResetAllNotifications: String { return self._s[5033]! } - public var Calls_NewCall: String { return self._s[5034]! } - public var VoiceOver_Chat_Music: String { return self._s[5037]! } - public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[5038]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[5039]! } - public var Channel_Edit_AboutItem: String { return self._s[5040]! } - public var Message_VideoExpired: String { return self._s[5041]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[5042]! } - public var Settings_TryEnterPassword: String { return self._s[5043]! } + public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[5025]! } + public var Conversation_Edit: String { return self._s[5026]! } + public var CheckoutInfo_SaveInfo: String { return self._s[5028]! } + public var VoiceOver_Chat_AnonymousPoll: String { return self._s[5029]! } + public var Call_CameraTooltip: String { return self._s[5031]! } + public var InstantPage_FeedbackButtonShort: String { return self._s[5032]! } + public var Contacts_InviteToTelegram: String { return self._s[5033]! } + public var Notifications_ResetAllNotifications: String { return self._s[5034]! } + public var Calls_NewCall: String { return self._s[5035]! } + public var VoiceOver_Chat_Music: String { return self._s[5038]! } + public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[5039]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[5040]! } + public var Channel_Edit_AboutItem: String { return self._s[5041]! } + public var Message_VideoExpired: String { return self._s[5042]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[5043]! } + public var Settings_TryEnterPassword: String { return self._s[5044]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5044]!, self._r[5044]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5045]!, self._r[5045]!, [_1, _2]) } - public var NotificationsSound_Input: String { return self._s[5046]! } - public var Notifications_ClassicTones: String { return self._s[5047]! } - public var Conversation_StatusTyping: String { return self._s[5048]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[5049]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[5050]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[5051]! } - public var Conversation_MessageLeaveComment: String { return self._s[5052]! } - public var UserInfo_TapToCall: String { return self._s[5053]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[5054]! } + public var NotificationsSound_Input: String { return self._s[5047]! } + public var Notifications_ClassicTones: String { return self._s[5048]! } + public var Conversation_StatusTyping: String { return self._s[5049]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[5050]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[5051]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[5052]! } + public var Conversation_MessageLeaveComment: String { return self._s[5053]! } + public var UserInfo_TapToCall: String { return self._s[5054]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[5055]! } public func ScheduleVoiceChat_ScheduleOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5055]!, self._r[5055]!, [_0, _1]) + return formatWithArgumentRanges(self._s[5056]!, self._r[5056]!, [_0, _1]) } - public var Conversation_ClearAll: String { return self._s[5057]! } - public var UserInfo_NotificationsDefault: String { return self._s[5058]! } - public var Location_ProximityGroupTip: String { return self._s[5059]! } - public var Map_ChooseAPlace: String { return self._s[5060]! } - public var GroupInfo_AddParticipantTitle: String { return self._s[5062]! } - public var ChatList_PeerTypeNonContact: String { return self._s[5063]! } - public var Conversation_SlideToCancel: String { return self._s[5064]! } - public var Month_ShortJuly: String { return self._s[5065]! } - public var SocksProxySetup_ProxyType: String { return self._s[5066]! } + public var Conversation_ClearAll: String { return self._s[5058]! } + public var UserInfo_NotificationsDefault: String { return self._s[5059]! } + public var Location_ProximityGroupTip: String { return self._s[5060]! } + public var Map_ChooseAPlace: String { return self._s[5061]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[5063]! } + public var ChatList_PeerTypeNonContact: String { return self._s[5064]! } + public var Conversation_SlideToCancel: String { return self._s[5065]! } + public var Month_ShortJuly: String { return self._s[5066]! } + public var SocksProxySetup_ProxyType: String { return self._s[5067]! } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5067]!, self._r[5067]!, [_0]) + return formatWithArgumentRanges(self._s[5068]!, self._r[5068]!, [_0]) } - public var StickerPacks_ActionArchive: String { return self._s[5068]! } - public var ChatList_EditFolders: String { return self._s[5069]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[5070]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[5072]! } + public var StickerPacks_ActionArchive: String { return self._s[5069]! } + public var ChatList_EditFolders: String { return self._s[5070]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[5071]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[5073]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5073]!, self._r[5073]!, [_0]) + return formatWithArgumentRanges(self._s[5074]!, self._r[5074]!, [_0]) } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5074]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[5075]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[5077]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5075]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[5076]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[5078]! } public func Conversation_ScheduledVoiceChatStartsOnShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5079]!, self._r[5079]!, [_0]) + return formatWithArgumentRanges(self._s[5080]!, self._r[5080]!, [_0]) } - public var Passport_DeleteAddress: String { return self._s[5080]! } - public var Passport_DeletePassportConfirmation: String { return self._s[5081]! } - public var Passport_Identity_ReverseSide: String { return self._s[5082]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5084]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[5085]! } - public var InviteLink_CreatedBy: String { return self._s[5086]! } - public var Passport_FieldAddress: String { return self._s[5087]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5088]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5091]! } - public var VoiceChat_Panel_TapToJoin: String { return self._s[5092]! } - public var Map_Home: String { return self._s[5093]! } - public var PollResults_Title: String { return self._s[5096]! } + public var Passport_DeleteAddress: String { return self._s[5081]! } + public var Passport_DeletePassportConfirmation: String { return self._s[5082]! } + public var Passport_Identity_ReverseSide: String { return self._s[5083]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5085]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[5086]! } + public var InviteLink_CreatedBy: String { return self._s[5087]! } + public var Passport_FieldAddress: String { return self._s[5088]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5089]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5092]! } + public var VoiceChat_Panel_TapToJoin: String { return self._s[5093]! } + public var Map_Home: String { return self._s[5094]! } + public var PollResults_Title: String { return self._s[5097]! } public func InviteLink_OtherPermanentLinkInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5097]!, self._r[5097]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5098]!, self._r[5098]!, [_1, _2]) } - public var ArchivedChats_IntroText2: String { return self._s[5099]! } - public var VoiceChat_VideoPreviewTitle: String { return self._s[5100]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5101]! } - public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5102]! } - public var VoiceChat_Muted: String { return self._s[5104]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[5105]! } - public var Passport_Identity_AddPersonalDetails: String { return self._s[5106]! } - public var Conversation_AutoremoveActionEnable: String { return self._s[5108]! } - public var Group_Info_AdminLog: String { return self._s[5109]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[5110]! } - public var Appearance_Animations: String { return self._s[5111]! } - public var Appearance_TextSizeSetting: String { return self._s[5112]! } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, _1, _2) + public var ArchivedChats_IntroText2: String { return self._s[5100]! } + public var VoiceChat_VideoPreviewTitle: String { return self._s[5101]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5102]! } + public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5103]! } + public var VoiceChat_Muted: String { return self._s[5105]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[5106]! } + public var Passport_Identity_AddPersonalDetails: String { return self._s[5107]! } + public var Conversation_AutoremoveActionEnable: String { return self._s[5109]! } + public var Group_Info_AdminLog: String { return self._s[5110]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[5111]! } + public var Appearance_Animations: String { return self._s[5112]! } + public var Appearance_TextSizeSetting: String { return self._s[5113]! } + public func Call_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, _1, _2) + public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func InstantPage_Views(_ value: Int32) -> String { + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Photo(_ value: Int32) -> String { + public func AttachmentMenu_SendGif(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + public func Call_Seconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Map_ETAMinutes(_ value: Int32) -> String { + public func VoiceChat_InviteLink_InviteSpeakers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + public func Map_ETAMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedAudios(_ value: Int32) -> String { + public func MessageTimer_Weeks(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) @@ -5709,820 +5711,819 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteLink_PeopleCanJoin(_ value: Int32) -> String { + public func PeopleNearby_ShowMorePeople(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedLocations(_ value: Int32) -> String { + public func VoiceChat_Panel_Members(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func ScheduledIn_Days(_ value: Int32) -> String { + public func ScheduledIn_Months(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedVideoMessages(_ value: Int32) -> String { + public func Conversation_SelectedMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { + public func QuickSend_Photos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteText_ContactsCountText(_ value: Int32) -> String { + public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPacks_DeleteStickerPacksConfirmation(_ value: Int32) -> String { + public func InviteLink_InviteLinks(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_Search_Messages(_ value: Int32) -> String { + public func Media_ShareItem(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Seconds(_ value: Int32) -> String { + public func StickerPack_AddMaskCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Days(_ value: Int32) -> String { + public func Stats_GroupShowMoreTopInviters(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Chat_MessagesUnpinned(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusOnline(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusMembers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessagePoll_QuizCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_MessagePhotos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPhotos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_ContextMenuSelectAll(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_InactiveWeek(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) - } - public func QuickSend_Photos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupShowMoreTopInviters(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ScheduledIn_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendVideo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) - } - public func UserCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) - } - public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceChat_Status_Members(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeletedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func OldChannels_InactiveMonth(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_MessagesSelected(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ChatListFilter_ShowMoreChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Theme_UsersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func VoiceChat_InviteLink_InviteListeners(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_ShareVideo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedStickers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceChat_InviteLink_InviteSpeakers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ForwardedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Weeks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_ContextViewReplies(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Contacts_ImportersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) - } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopPosterChars(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Link(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PeopleNearby_ShowMorePeople(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Years(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopAdminKicks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_Leave(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_ShareItem(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_Exceptions(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, _1, _2) } public func ForwardedGifs(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_SelectedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_MessageFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPacks_ArchiveStickerPacksConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_MessageForwards(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_AutoremoveRemainingDays(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Video(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_MessageMusic(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Weeks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_StickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_SelectedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_MessageViewComments(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Chat_TitlePinnedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupShowMoreTopPosters(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) } public func SharedMedia_Generic(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) } - public func Contacts_InviteContacts(_ value: Int32) -> String { + public func ChatList_Search_Messages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopInviterInvites(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_TitleReplies(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[124 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_SharePhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_TitleComments(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[126 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_MessageVideos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[127 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func VoiceChat_Panel_Members(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[129 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopAdminBans(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[130 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[131 * 6 + Int(form.rawValue)]!, stringValue) - } - public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[132 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) } public func OldChannels_GroupFormat(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) } - public func Passport_Scans(_ value: Int32) -> String { + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[134 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[135 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) } - public func ScheduledIn_Months(_ value: Int32) -> String { + public func ForwardedMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Hours(_ value: Int32) -> String { + public func SharedMedia_Video(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[137 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedContacts(_ value: Int32) -> String { + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[138 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + public func MuteFor_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[139 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_UnreadMessages(_ value: Int32) -> String { + public func ScheduledIn_Weeks(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[140 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_File(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[141 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[142 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[143 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteLink_PeopleRemaining(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[144 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Years(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[145 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PollResults_ShowMore(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[146 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteLink_PeopleJoined(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[147 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[148 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[149 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[150 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteLink_InviteLinks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[151 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[152 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_Months(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[153 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_MessageViews(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[154 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[155 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupShowMoreTopAdmins(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[156 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[157 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[158 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessagePoll_VotedCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[159 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ImportStickerPack_StickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[160 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) } public func OldChannels_InactiveYear(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[161 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteLink_PeopleJoinedShort(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[162 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[163 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[164 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[165 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[166 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[167 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) } public func Call_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[168 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_ShortMinutes(_ value: Int32) -> String { + public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_Years(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[169 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + public func ForwardedVideoMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[170 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortDays(_ value: Int32) -> String { + public func OldChannels_InactiveMonth(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[171 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MuteFor_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) + } + public func UserCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Stats_MessageForwards(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_MessageViewComments(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteLink_PeopleJoinedShort(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_Leave(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) } public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[172 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopPosterMessages(_ value: Int32) -> String { + public func ForwardedVideos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[173 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusOnline(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PollResults_ShowMore(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopAdminKicks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Passport_Scans(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAudios(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Stats_GroupShowMoreTopAdmins(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Months(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_File(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func InviteLink_PeopleRemaining(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessageVideos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_UnreadMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_SelectedChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_Exceptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusMembers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Map_ETAHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_ImportersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Conversation_AutoremoveRemainingDays(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteLink_PeopleCanJoin(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_InviteContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_UserInfo_Mute(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedStickers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_TitleReplies(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_MessageViews(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ChatList_MessagePhotos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPhotos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Media_ShareVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupShowMoreTopPosters(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopInviterInvites(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Chat_MessagesUnpinned(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MessageTimer_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ScheduledIn_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[124 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedLocations(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_MessagesSelected(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[126 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_ContextMenuSelectAll(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[127 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_ContextViewReplies(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[129 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[130 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_StickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[131 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeletedChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[132 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteText_ContactsCountText(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Chat_TitlePinnedMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[134 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessageMusic(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[135 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[137 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopPosterChars(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[138 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[139 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Years(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[140 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[141 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceChat_Status_Members(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[142 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_TitleComments(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[143 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[144 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[145 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func SharedMedia_Link(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[146 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InstantPage_Views(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[147 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_QuizCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[148 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPacks_ArchiveStickerPacksConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[149 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[150 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_SharePhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[151 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[152 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[153 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessageFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[154 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceChat_InviteLink_InviteListeners(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[155 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[156 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_InactiveWeek(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[157 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopAdminBans(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[158 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[159 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[160 * 6 + Int(form.rawValue)]!, stringValue) } public func Invitation_Members(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[161 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[162 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopPosterMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[163 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[164 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Theme_UsersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[165 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortDays(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[166 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteLink_PeopleJoined(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[167 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[168 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatListFilter_ShowMoreChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[169 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[170 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[171 * 6 + Int(form.rawValue)]!, stringValue) + } + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[172 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusSubscribers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[173 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPacks_DeleteStickerPacksConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[174 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Minutes(_ value: Int32) -> String { + public func MuteExpires_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[175 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + public func ImportStickerPack_StickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[176 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index 234afe85529d6fc919361c11eb5fa90b263c0052..0af439e007a278762dbc33eef3b3548936d5bb2b 100644 GIT binary patch delta 48289 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 E9~gt_UH||9 delta 47481 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 diff --git a/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift b/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift index f9530e9873..b7ff44efba 100644 --- a/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift +++ b/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift @@ -486,26 +486,26 @@ public final class AuthorizationSequenceController: NavigationController, MFMail controller.forgot = { [weak self, weak controller] in if let strongSelf = self, let strongController = controller { strongController.inProgress = true - strongSelf.actionDisposable.set((requestPasswordRecovery(account: strongSelf.account) - |> deliverOnMainQueue).start(next: { option in + strongSelf.actionDisposable.set((TelegramEngineUnauthorized(account: strongSelf.account).auth.requestTwoStepVerificationPasswordRecoveryCode() + |> deliverOnMainQueue).start(next: { pattern in if let strongSelf = self, let strongController = controller { strongController.inProgress = false - switch option { - case let .email(pattern): - let _ = (strongSelf.account.postbox.transaction { transaction -> Void in - if let state = transaction.getState() as? UnauthorizedAccountState, case let .passwordEntry(hint, number, code, _, syncContacts) = state.contents { - transaction.setState(UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .passwordRecovery(hint: hint, number: number, code: code, emailPattern: pattern, syncContacts: syncContacts))) - } - }).start() - case .none: - strongController.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: strongSelf.presentationData), title: nil, text: strongSelf.presentationData.strings.TwoStepAuth_RecoveryUnavailable, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) - strongController.didForgotWithNoRecovery = true - } + + let _ = (strongSelf.account.postbox.transaction { transaction -> Void in + if let state = transaction.getState() as? UnauthorizedAccountState, case let .passwordEntry(hint, number, code, _, syncContacts) = state.contents { + transaction.setState(UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .passwordRecovery(hint: hint, number: number, code: code, emailPattern: pattern, syncContacts: syncContacts))) + } + }).start() } }, error: { error in - if let strongController = controller { - strongController.inProgress = false + guard let strongController = controller else { + return } + + strongController.inProgress = false + + strongController.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: strongSelf.presentationData), title: nil, text: strongSelf.presentationData.strings.TwoStepAuth_RecoveryUnavailable, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + strongController.didForgotWithNoRecovery = true })) } } @@ -542,82 +542,21 @@ public final class AuthorizationSequenceController: NavigationController, MFMail return controller } - private func passwordRecoveryController(emailPattern: String, syncContacts: Bool) -> AuthorizationSequencePasswordRecoveryController { - var currentController: AuthorizationSequencePasswordRecoveryController? + private func passwordRecoveryController(emailPattern: String, syncContacts: Bool) -> TwoFactorDataInputScreen { + var currentController: TwoFactorDataInputScreen? for c in self.viewControllers { - if let c = c as? AuthorizationSequencePasswordRecoveryController { + if let c = c as? TwoFactorDataInputScreen { currentController = c break } } - let controller: AuthorizationSequencePasswordRecoveryController + let controller: TwoFactorDataInputScreen if let currentController = currentController { controller = currentController } else { - controller = AuthorizationSequencePasswordRecoveryController(strings: self.presentationData.strings, theme: self.presentationData.theme, back: { [weak self] in - guard let strongSelf = self else { - return - } - let countryCode = defaultCountryCode() - - let _ = (strongSelf.account.postbox.transaction { transaction -> Void in - transaction.setState(UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .phoneEntry(countryCode: countryCode, number: ""))) - }).start() - }) - controller.recoverWithCode = { [weak self, weak controller] code in - guard let strongSelf = self else { - return - } - - controller?.inProgress = true - - strongSelf.actionDisposable.set((checkPasswordRecoveryCode(network: strongSelf.account.network, code: code) - |> deliverOnMainQueue).start(error: { error in - guard let strongSelf = self, let controller = controller else { - return - } - controller.inProgress = false - - let text: String - switch error { - case .limitExceeded: - text = strongSelf.presentationData.strings.LoginPassword_FloodError - case .invalidCode: - text = strongSelf.presentationData.strings.Login_InvalidCodeError - case .expired: - text = strongSelf.presentationData.strings.Login_CodeExpiredError - case .generic: - text = strongSelf.presentationData.strings.Login_UnknownError - } - - controller.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: strongSelf.presentationData), title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) - }, completed: { - guard let strongSelf = self else { - return - } - controller?.inProgress = false - - let setupController = TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: .unauthorized(TelegramEngineUnauthorized(account: strongSelf.account)), mode: .passwordRecovery(TwoFactorDataInputMode.Recovery(code: code, syncContacts: syncContacts, account: strongSelf.account)), stateUpdated: { _ in - guard let _ = self else { - return - } - }) - strongSelf.setViewControllers(strongSelf.viewControllers + [setupController], animated: true) - })) - } - controller.noAccess = { [weak self, weak controller] in - if let strongSelf = self, let controller = controller { - controller.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: strongSelf.presentationData), title: nil, text: strongSelf.presentationData.strings.TwoStepAuth_RecoveryFailed, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) - let account = strongSelf.account - let _ = (strongSelf.account.postbox.transaction { transaction -> Void in - if let state = transaction.getState() as? UnauthorizedAccountState, case let .passwordRecovery(hint, number, code, _, syncContacts) = state.contents { - transaction.setState(UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .passwordEntry(hint: hint, number: number, code: code, suggestReset: true, syncContacts: syncContacts))) - } - }).start() - } - } + controller = TwoFactorDataInputScreen(sharedContext: self.sharedContext, engine: .unauthorized(TelegramEngineUnauthorized(account: self.account)), mode: .passwordRecoveryEmail(emailPattern: emailPattern, mode: .notAuthorized(syncContacts: syncContacts)), stateUpdated: { _ in + }, presentation: .default) } - controller.updateData(emailPattern: emailPattern) return controller } From 6dc39623076aff83d4f6afb4f8cfce4cd395418a Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 6 Jul 2021 03:29:25 +0400 Subject: [PATCH 19/26] Cleanup --- .../TwoStepVerificationUnlockController.swift | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift index f2788e4e83..e06aa8f753 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift @@ -529,26 +529,6 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: } } - /*var completionImpl: ((Bool) -> Void)? - let controller = resetPasswordController(context: context, emailPattern: emailPattern, completion: { result in - completionImpl?(result) - }) - completionImpl = { [weak controller] result in - if !result { - dataPromise.set(context.engine.auth.twoStepVerificationConfiguration() - |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) - }) - controller?.view.endEditing(true) - controller?.dismiss() - } else { - dataPromise.set(.single(TwoStepVerificationUnlockSettingsControllerData.access(configuration: .notSet(pendingEmail: nil)))) - controller?.view.endEditing(true) - controller?.dismiss() - - let presentationData = context.sharedContext.currentPresentationData.with { $0 } - presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.TwoStepAuth_DisableSuccess, false)), nil) - } - }*/ pushControllerImpl?(controller) }, error: { _ in updateState { state in From 862eb86caea44011cd0065ca462ede253773a3b1 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 6 Jul 2021 13:49:02 +0400 Subject: [PATCH 20/26] Password reset fixes --- .../Sources/TwoFactorAuthDataInputScreen.swift | 17 ++++++++++++----- .../AuthorizationSequenceController.swift | 13 ++++++++++++- ...izationSequencePasswordEntryController.swift | 4 ++-- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift b/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift index 032e4eb2c4..566c023e20 100644 --- a/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift +++ b/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift @@ -49,6 +49,8 @@ public final class TwoFactorDataInputScreen: ViewController { private let mode: TwoFactorDataInputMode private let stateUpdated: (SetupTwoStepVerificationStateUpdate) -> Void private let actionDisposable = MetaDisposable() + + public var passwordRecoveryFailed: (() -> Void)? public init(sharedContext: SharedAccountContext, engine: SomeTelegramEngine, mode: TwoFactorDataInputMode, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate) -> Void, presentation: ViewControllerNavigationPresentation = .modalInLargeLayout) { self.sharedContext = sharedContext @@ -516,7 +518,12 @@ public final class TwoFactorDataInputScreen: ViewController { }) })]), in: .window(.root)) case .unauthorized: - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.TwoStepAuth_RecoveryFailed, actions: [TextAlertAction(type: .genericAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.TwoStepAuth_RecoveryFailed, actions: [TextAlertAction(type: .genericAction, title: strongSelf.presentationData.strings.Common_OK, action: { + guard let strongSelf = self else { + return + } + strongSelf.passwordRecoveryFailed?() + })]), in: .window(.root)) } default: break @@ -959,9 +966,9 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS self.scrollNode.canCancelAllTouchesInViews = true switch mode { - case .password, .passwordRecovery, .passwordRecoveryEmail, .emailAddress, .updateEmailAddress: + case .password, .passwordRecovery, .emailAddress, .updateEmailAddress: self.monkeyNode = ManagedMonkeyAnimationNode() - case .emailConfirmation: + case .emailConfirmation, .passwordRecoveryEmail: if let path = getAppBundle().path(forResource: "TwoFactorSetupMail", ofType: "tgs") { let animatedStickerNode = AnimatedStickerNode() animatedStickerNode.setup(source: AnimatedStickerNodeLocalFileSource(path: path), width: 272, height: 272, playbackMode: .once, mode: .direct(cachePathPrefix: nil)) @@ -1268,7 +1275,7 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS return } switch strongSelf.mode { - case .password: + case .password, .passwordRecovery: if strongSelf.inputNodes[1].isFocused { let maxWidth = strongSelf.inputNodes[1].bounds.width @@ -1363,7 +1370,7 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS return } switch strongSelf.mode { - case .password: + case .password, .passwordRecovery: textHidden = !textHidden for node in strongSelf.inputNodes { node.updateTextHidden(textHidden) diff --git a/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift b/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift index b7ff44efba..3df08bd4d1 100644 --- a/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift +++ b/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift @@ -557,6 +557,17 @@ public final class AuthorizationSequenceController: NavigationController, MFMail controller = TwoFactorDataInputScreen(sharedContext: self.sharedContext, engine: .unauthorized(TelegramEngineUnauthorized(account: self.account)), mode: .passwordRecoveryEmail(emailPattern: emailPattern, mode: .notAuthorized(syncContacts: syncContacts)), stateUpdated: { _ in }, presentation: .default) } + controller.passwordRecoveryFailed = { [weak self] in + guard let strongSelf = self else { + return + } + + let _ = (strongSelf.account.postbox.transaction { transaction -> Void in + if let state = transaction.getState() as? UnauthorizedAccountState, case let .passwordRecovery(hint, number, code, _, syncContacts) = state.contents { + transaction.setState(UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .passwordEntry(hint: hint, number: number, code: code, suggestReset: true, syncContacts: syncContacts))) + } + }).start() + } return controller } @@ -773,7 +784,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail } controllers.append(self.passwordEntryController(hint: hint, suggestReset: suggestReset, syncContacts: syncContacts)) self.setViewControllers(controllers, animated: !self.viewControllers.isEmpty) - case let .passwordRecovery(_, _, _, emailPattern, syncContacts): + case let .passwordRecovery(hint, _, _, emailPattern, syncContacts): var controllers: [ViewController] = [] if !self.otherAccountPhoneNumbers.1.isEmpty { controllers.append(self.splashController()) diff --git a/submodules/TelegramUI/Sources/AuthorizationSequencePasswordEntryController.swift b/submodules/TelegramUI/Sources/AuthorizationSequencePasswordEntryController.swift index 6a6afd619a..76cac93c42 100644 --- a/submodules/TelegramUI/Sources/AuthorizationSequencePasswordEntryController.swift +++ b/submodules/TelegramUI/Sources/AuthorizationSequencePasswordEntryController.swift @@ -129,9 +129,9 @@ final class AuthorizationSequencePasswordEntryController: ViewController { } func forgotPressed() { - if self.suggestReset { + /*if self.suggestReset { self.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: self.presentationData), title: nil, text: self.presentationData.strings.TwoStepAuth_RecoveryFailed, actions: [TextAlertAction(type: .defaultAction, title: self.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) - } else if self.didForgotWithNoRecovery { + } else*/ if self.didForgotWithNoRecovery { self.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: self.presentationData), title: nil, text: self.presentationData.strings.TwoStepAuth_RecoveryUnavailable, actions: [TextAlertAction(type: .defaultAction, title: self.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) } else { self.forgot?() From 3c466c337de09a140e981af718bb8fe48dec0cfd Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 6 Jul 2021 15:11:26 +0400 Subject: [PATCH 21/26] Update generation --- .../Sources/MTDatacenterAuthMessageService.m | 50 +++++++++++-------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m b/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m index 3a057c7c67..bf41d5d14c 100644 --- a/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m +++ b/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m @@ -423,28 +423,31 @@ static NSData *encryptRSALegacy(id encryptionProvider, NSDat return encryptedData; } +static NSData *reversedBytes(NSData *data) { + NSMutableData *result = [[NSMutableData alloc] initWithLength:data.length]; + for (NSUInteger i = 0; i < result.length; i++) { + ((uint8_t *)result.mutableBytes)[i] = ((uint8_t *)data.bytes)[result.length - i - 1]; + } + return result; +} + static NSData *encryptRSAModernPadding(id encryptionProvider, NSData *pqInnerData, NSString *publicKey) { NSMutableData *dataWithPadding = [[NSMutableData alloc] init]; [dataWithPadding appendData:pqInnerData]; - if (dataWithPadding.length > 176) { + if (dataWithPadding.length > 192) { return nil; } - if (dataWithPadding.length != 176) { + if (dataWithPadding.length != 192) { int originalLength = (int)dataWithPadding.length; - int numPaddingBytes = 176 - originalLength; - [dataWithPadding setLength:176]; + int numPaddingBytes = 192 - originalLength; + [dataWithPadding setLength:192]; int randomResult = SecRandomCopyBytes(kSecRandomDefault, numPaddingBytes, ((uint8_t *)dataWithPadding.mutableBytes) + originalLength); if (randomResult != errSecSuccess) { return nil; } } - NSMutableData *dataWithHash = [[NSMutableData alloc] init]; - [dataWithHash appendData:dataWithPadding]; - [dataWithHash appendData:MTSha256(dataWithPadding)]; - if (dataWithHash.length != 208) { - return nil; - } + NSData *dataWithPaddingReversed = reversedBytes(dataWithPadding); while (true) { int randomResult = 0; @@ -454,33 +457,36 @@ static NSData *encryptRSAModernPadding(id encryptionProvider return nil; } - NSMutableData *tempIv = [[NSMutableData alloc] initWithLength:16]; - randomResult = SecRandomCopyBytes(kSecRandomDefault, tempIv.length, tempIv.mutableBytes); - if (randomResult != errSecSuccess) { + NSMutableData *tempKeyAndDataWithPadding = [[NSMutableData alloc] init]; + [tempKeyAndDataWithPadding appendData:tempKey]; + [tempKeyAndDataWithPadding appendData:dataWithPadding]; + + NSMutableData *dataWithHash = [[NSMutableData alloc] init]; + [dataWithHash appendData:dataWithPaddingReversed]; + [dataWithHash appendData:MTSha256(tempKeyAndDataWithPadding)]; + if (dataWithHash.length != 224) { return nil; } - NSData *aesEncrypted = aesCbcEncrypt(dataWithHash, tempKey, tempIv); + NSMutableData *zeroIv = [[NSMutableData alloc] initWithLength:32]; + memset(zeroIv.mutableBytes, 0, zeroIv.length); + + NSData *aesEncrypted = MTAesEncrypt(dataWithHash, tempKey, zeroIv); if (aesEncrypted == nil) { return nil; } - - NSMutableData *tempIvPlusAesEncrypted = [[NSMutableData alloc] init]; - [tempIvPlusAesEncrypted appendData:tempIv]; - [tempIvPlusAesEncrypted appendData:aesEncrypted]; - NSData *shaTempIvPlusAesEncrypted = MTSha256(tempIvPlusAesEncrypted); + NSData *shaAesEncrypted = MTSha256(aesEncrypted); NSMutableData *tempKeyXor = [[NSMutableData alloc] initWithLength:tempKey.length]; - if (tempKeyXor.length != shaTempIvPlusAesEncrypted.length) { + if (tempKeyXor.length != shaAesEncrypted.length) { return nil; } for (NSUInteger i = 0; i < tempKey.length; i++) { - ((uint8_t *)tempKeyXor.mutableBytes)[i] = ((uint8_t *)tempKey.bytes)[i] ^ ((uint8_t *)shaTempIvPlusAesEncrypted.bytes)[i]; + ((uint8_t *)tempKeyXor.mutableBytes)[i] = ((uint8_t *)tempKey.bytes)[i] ^ ((uint8_t *)shaAesEncrypted.bytes)[i]; } NSMutableData *keyAesEncrypted = [[NSMutableData alloc] init]; [keyAesEncrypted appendData:tempKeyXor]; - [keyAesEncrypted appendData:tempIv]; [keyAesEncrypted appendData:aesEncrypted]; if (keyAesEncrypted.length != 256) { return nil; From 48efebaec031bede4c86115c9064f5faa9d31b33 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 6 Jul 2021 15:43:39 +0400 Subject: [PATCH 22/26] Improve msg_wait --- .../MtProtoKit/Sources/MTRequestMessageService.m | 12 ++++++++++-- .../TelegramUI/Sources/ChatControllerNode.swift | 8 +++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/submodules/MtProtoKit/Sources/MTRequestMessageService.m b/submodules/MtProtoKit/Sources/MTRequestMessageService.m index 150b7dfc4f..0b91e6d40e 100644 --- a/submodules/MtProtoKit/Sources/MTRequestMessageService.m +++ b/submodules/MtProtoKit/Sources/MTRequestMessageService.m @@ -717,8 +717,16 @@ request.errorContext.minimalExecuteTime = MAX(request.errorContext.minimalExecuteTime, MTAbsoluteSystemTime() + 2.0); } } - else if (rpcError.errorCode == 400 && [rpcError.errorDescription isEqualToString:@"MSG_WAIT_TIMEOUT"]) - { + else if ( + ( + rpcError.errorCode == 400 && + [rpcError.errorDescription isEqualToString:@"MSG_WAIT_TIMEOUT"] + ) || + ( + rpcError.errorCode == 500 && + [rpcError.errorDescription isEqualToString:@"MSG_WAIT_FAILED"] + ) + ) { if (request.errorContext == nil) { request.errorContext = [[MTRequestErrorContext alloc] init]; } diff --git a/submodules/TelegramUI/Sources/ChatControllerNode.swift b/submodules/TelegramUI/Sources/ChatControllerNode.swift index b49f29d649..53558487a3 100644 --- a/submodules/TelegramUI/Sources/ChatControllerNode.swift +++ b/submodules/TelegramUI/Sources/ChatControllerNode.swift @@ -2336,9 +2336,11 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { #if DEBUG if text.string == "sleep" { - messages.append(messages[0]) - messages.append(messages[0]) - messages.append(messages[0]) + messages.removeAll() + + for i in 0 ..< 5 { + messages.append(.message(text: "sleep\(i)", attributes: [], mediaReference: nil, replyToMessageId: nil, localGroupingKey: nil, correlationId: nil)) + } } #endif } From 5b0aca61c5356340a03f325d3fac94cb0b3f4c03 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 6 Jul 2021 21:38:08 +0400 Subject: [PATCH 23/26] Implement screencast audio channel --- .../BroadcastUploadExtension.swift | 2 +- .../Sources/ShareControllerNode.swift | 2 +- submodules/TelegramApi/Sources/Api0.swift | 2 +- submodules/TelegramApi/Sources/Api2.swift | 18 +++++++++++------- .../Sources/PresentationGroupCall.swift | 18 +++++++++++++----- .../TelegramCore/Sources/GroupCalls.swift | 8 ++++++-- submodules/TgVoipWebrtc/tgcalls | 2 +- 7 files changed, 34 insertions(+), 18 deletions(-) diff --git a/Telegram/BroadcastUpload/BroadcastUploadExtension.swift b/Telegram/BroadcastUpload/BroadcastUploadExtension.swift index b2ce0189c5..d1c0696c6a 100644 --- a/Telegram/BroadcastUpload/BroadcastUploadExtension.swift +++ b/Telegram/BroadcastUpload/BroadcastUploadExtension.swift @@ -138,7 +138,7 @@ private func rootPathForBasePath(_ appGroupPath: String) -> String { self.audioConverter = CustomAudioConverter(asbd: asbd) } if let audioConverter = self.audioConverter { - if let data = audioConverter.convert(sampleBuffer: sampleBuffer) { + if let data = audioConverter.convert(sampleBuffer: sampleBuffer), !data.isEmpty { self.screencastBufferClientContext?.writeAudioData(data: data) } } diff --git a/submodules/ShareController/Sources/ShareControllerNode.swift b/submodules/ShareController/Sources/ShareControllerNode.swift index 4678c1d123..0aa3efa75b 100644 --- a/submodules/ShareController/Sources/ShareControllerNode.swift +++ b/submodules/ShareController/Sources/ShareControllerNode.swift @@ -379,7 +379,7 @@ final class ShareControllerNode: ViewControllerTracingNode, UIScrollViewDelegate let animation = contentNode.layer.makeAnimation(from: 0.0 as NSNumber, to: 1.0 as NSNumber, keyPath: "opacity", timingFunction: CAMediaTimingFunctionName.easeInEaseOut.rawValue, duration: 0.35) animation.fillMode = .both if !fastOut { - animation.beginTime = CACurrentMediaTime() + 0.1 + animation.beginTime = contentNode.layer.convertTime(CACurrentMediaTime(), from: nil) + 0.1 } contentNode.layer.add(animation, forKey: "opacity") } diff --git a/submodules/TelegramApi/Sources/Api0.swift b/submodules/TelegramApi/Sources/Api0.swift index 57f1f4c9d9..7bafaa580b 100644 --- a/submodules/TelegramApi/Sources/Api0.swift +++ b/submodules/TelegramApi/Sources/Api0.swift @@ -584,7 +584,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[-1160215659] = { return Api.InputMessage.parse_inputMessageReplyTo($0) } dict[-2037963464] = { return Api.InputMessage.parse_inputMessagePinned($0) } dict[-1392895362] = { return Api.InputMessage.parse_inputMessageCallbackQuery($0) } - dict[2028213859] = { return Api.GroupCallParticipantVideo.parse_groupCallParticipantVideo($0) } + dict[1735736008] = { return Api.GroupCallParticipantVideo.parse_groupCallParticipantVideo($0) } dict[-58224696] = { return Api.PhoneCallProtocol.parse_phoneCallProtocol($0) } dict[-1237848657] = { return Api.StatsDateRangeDays.parse_statsDateRangeDays($0) } dict[-275956116] = { return Api.messages.AffectedFoundMessages.parse_affectedFoundMessages($0) } diff --git a/submodules/TelegramApi/Sources/Api2.swift b/submodules/TelegramApi/Sources/Api2.swift index 597f5d0fe5..e17594636e 100644 --- a/submodules/TelegramApi/Sources/Api2.swift +++ b/submodules/TelegramApi/Sources/Api2.swift @@ -14978,13 +14978,13 @@ public extension Api { } public enum GroupCallParticipantVideo: TypeConstructorDescription { - case groupCallParticipantVideo(flags: Int32, endpoint: String, sourceGroups: [Api.GroupCallParticipantVideoSourceGroup]) + case groupCallParticipantVideo(flags: Int32, endpoint: String, sourceGroups: [Api.GroupCallParticipantVideoSourceGroup], audioSource: Int32?) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { switch self { - case .groupCallParticipantVideo(let flags, let endpoint, let sourceGroups): + case .groupCallParticipantVideo(let flags, let endpoint, let sourceGroups, let audioSource): if boxed { - buffer.appendInt32(2028213859) + buffer.appendInt32(1735736008) } serializeInt32(flags, buffer: buffer, boxed: false) serializeString(endpoint, buffer: buffer, boxed: false) @@ -14993,14 +14993,15 @@ public extension Api { for item in sourceGroups { item.serialize(buffer, true) } + if Int(flags) & Int(1 << 1) != 0 {serializeInt32(audioSource!, buffer: buffer, boxed: false)} break } } public func descriptionFields() -> (String, [(String, Any)]) { switch self { - case .groupCallParticipantVideo(let flags, let endpoint, let sourceGroups): - return ("groupCallParticipantVideo", [("flags", flags), ("endpoint", endpoint), ("sourceGroups", sourceGroups)]) + case .groupCallParticipantVideo(let flags, let endpoint, let sourceGroups, let audioSource): + return ("groupCallParticipantVideo", [("flags", flags), ("endpoint", endpoint), ("sourceGroups", sourceGroups), ("audioSource", audioSource)]) } } @@ -15013,11 +15014,14 @@ public extension Api { if let _ = reader.readInt32() { _3 = Api.parseVector(reader, elementSignature: 0, elementType: Api.GroupCallParticipantVideoSourceGroup.self) } + var _4: Int32? + if Int(_1!) & Int(1 << 1) != 0 {_4 = reader.readInt32() } let _c1 = _1 != nil let _c2 = _2 != nil let _c3 = _3 != nil - if _c1 && _c2 && _c3 { - return Api.GroupCallParticipantVideo.groupCallParticipantVideo(flags: _1!, endpoint: _2!, sourceGroups: _3!) + let _c4 = (Int(_1!) & Int(1 << 1) == 0) || _4 != nil + if _c1 && _c2 && _c3 && _c4 { + return Api.GroupCallParticipantVideo.groupCallParticipantVideo(flags: _1!, endpoint: _2!, sourceGroups: _3!, audioSource: _4) } else { return nil diff --git a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift index 2c362e1808..5d7cb5dc27 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift @@ -415,12 +415,8 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { private var screencastBufferServerContext: IpcGroupCallBufferAppContext? private var screencastCapturer: OngoingCallVideoCapturer? - //private var screencastIpcContext: IpcGroupCallAppContext? - private var ssrcMapping: [UInt32: PeerId] = [:] - private var requestedSsrcs = Set() - private var summaryInfoState = Promise(nil) private var summaryParticipantsState = Promise(nil) @@ -887,7 +883,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { guard let strongSelf = self else { return } - strongSelf.genericCallContext?.addExternalAudioData(data: data) + strongSelf.screencastCallContext?.addExternalAudioData(data: data) }) self.screencastStateDisposable = (screencastBufferServerContext.isActive |> distinctUntilChanged @@ -2050,6 +2046,18 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { videoDescription: nil )) } + + if let screencastSsrc = participant.presentationDescription?.audioSsrc { + if remainingSsrcs.contains(screencastSsrc) { + remainingSsrcs.remove(screencastSsrc) + + result.append(OngoingGroupCallContext.MediaChannelDescription( + kind: .audio, + audioSsrc: screencastSsrc, + videoDescription: nil + )) + } + } } } diff --git a/submodules/TelegramCore/Sources/GroupCalls.swift b/submodules/TelegramCore/Sources/GroupCalls.swift index e377ac0181..2d4a92a44d 100644 --- a/submodules/TelegramCore/Sources/GroupCalls.swift +++ b/submodules/TelegramCore/Sources/GroupCalls.swift @@ -855,6 +855,7 @@ public final class GroupCallParticipantsContext { public var endpointId: String public var ssrcGroups: [SsrcGroup] + public var audioSsrc: UInt32? public var isPaused: Bool } @@ -1527,6 +1528,9 @@ public final class GroupCallParticipantsContext { if let ssrc = participant.ssrc { existingSsrcs.insert(ssrc) } + if let presentationDescription = participant.presentationDescription, let presentationAudioSsrc = presentationDescription.audioSsrc { + existingSsrcs.insert(presentationAudioSsrc) + } } for ssrc in ssrcs { @@ -2488,7 +2492,7 @@ extension GroupCallParticipantsContext.Participant { private extension GroupCallParticipantsContext.Participant.VideoDescription { init(_ apiVideo: Api.GroupCallParticipantVideo) { switch apiVideo { - case let .groupCallParticipantVideo(flags, endpoint, sourceGroups): + case let .groupCallParticipantVideo(flags, endpoint, sourceGroups, audioSource): var parsedSsrcGroups: [SsrcGroup] = [] for group in sourceGroups { switch group { @@ -2497,7 +2501,7 @@ private extension GroupCallParticipantsContext.Participant.VideoDescription { } } let isPaused = (flags & (1 << 0)) != 0 - self.init(endpointId: endpoint, ssrcGroups: parsedSsrcGroups, isPaused: isPaused) + self.init(endpointId: endpoint, ssrcGroups: parsedSsrcGroups, audioSsrc: audioSource.flatMap(UInt32.init(bitPattern:)), isPaused: isPaused) } } } diff --git a/submodules/TgVoipWebrtc/tgcalls b/submodules/TgVoipWebrtc/tgcalls index 76d781c09c..3cf1822a70 160000 --- a/submodules/TgVoipWebrtc/tgcalls +++ b/submodules/TgVoipWebrtc/tgcalls @@ -1 +1 @@ -Subproject commit 76d781c09cd4d827e417a56cc7bc39b0d2217e78 +Subproject commit 3cf1822a70e3b84f6a762755e5249b26e915d321 From 004827938721b45aca7dc02dca5906b20c320de7 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 6 Jul 2021 22:12:21 +0400 Subject: [PATCH 24/26] Password reset UI fixes --- .../Telegram-iOS/en.lproj/Localizable.strings | 8 +- .../TwoFactorAuthDataInputScreen.swift | 4 +- .../Sources/TwoFactorAuthSplashScreen.swift | 6 +- .../Sources/PresentationStrings.swift | 8295 +++++++++-------- .../Resources/PresentationStrings.mapping | Bin 174875 -> 175001 bytes 5 files changed, 4160 insertions(+), 4153 deletions(-) diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index f6c7c4178e..d70f08f7fb 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -6532,7 +6532,7 @@ Sorry for the inconvenience."; "Settings.TryEnterPassword" = "Not sure, let me try"; "TwoFactorSetup.PasswordRecovery.Title" = "Create New Password"; -"TwoFactorSetup.PasswordRecovery.Text" = "You have successfully reset your password.\nPlease enter a new password to continue"; +"TwoFactorSetup.PasswordRecovery.Text" = "Your password has been reset.\nPlease enter a new password to continue"; "TwoFactorSetup.PasswordRecovery.PlaceholderPassword" = "New Password"; "TwoFactorSetup.PasswordRecovery.PlaceholderConfirmPassword" = "Re-enter New Password"; "TwoFactorSetup.PasswordRecovery.Action" = "Continue"; @@ -6549,4 +6549,8 @@ Sorry for the inconvenience."; "TwoStepAuth.CancelResetTitle" = "Cancel Reset"; "TwoStepAuth.ResetAction" = "Reset Password"; "TwoStepAuth.CancelResetText" = "Cancel the password resetting process? If you proceed, the expired part of the 7-day delay will be lost."; -"TwoStepAuth.RecoveryEmailResetNoAccess" = "No access"; +"TwoStepAuth.RecoveryEmailResetNoAccess" = "Lost access to your Email?"; + +"TwoFactorSetup.ResetDone.Title" = "New Password Set!"; +"TwoFactorSetup.ResetDone.Text" = "This password will be required when you log in on a new device in addition to the code you get via SMS."; +"TwoFactorSetup.ResetDone.Action" = "Continue"; diff --git a/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift b/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift index 566c023e20..75f2898ec9 100644 --- a/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift +++ b/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift @@ -1519,7 +1519,7 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS let buttonWidth = contentAreaSize.width - buttonSideInset * 2.0 - let maxButtonY = min(areaHeight - buttonSpacing, layout.size.height - buttonBottomInset) - buttonHeight + let maxButtonY = min(areaHeight - buttonSpacing, layout.size.height - buttonBottomInset) - buttonHeight * 2.0 let buttonFrame = CGRect(origin: CGPoint(x: floor((contentAreaSize.width - buttonWidth) / 2.0), y: max(contentHeight + buttonSpacing, maxButtonY)), size: CGSize(width: buttonWidth, height: buttonHeight)) transition.updateFrame(node: self.buttonNode, frame: buttonFrame) @@ -1537,7 +1537,7 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS let changeEmailActionButtonFrame: CGRect let resendCodeActionFrame: CGRect let resendCodeActionButtonFrame: CGRect - if changeEmailActionSize.width + resendCodeActionSize.width > layout.size.width - 24.0 { + if changeEmailActionSize.width + resendCodeActionSize.width > layout.size.width - buttonFrame.minX * 2.0 { changeEmailActionButtonFrame = CGRect(origin: CGPoint(x: buttonFrame.minX, y: buttonFrame.minY), size: CGSize(width: buttonFrame.width, height: buttonFrame.height)) changeEmailActionFrame = CGRect(origin: CGPoint(x: changeEmailActionButtonFrame.minX + floor((changeEmailActionButtonFrame.width - changeEmailActionSize.width) / 2.0), y: changeEmailActionButtonFrame.minY + floor((changeEmailActionButtonFrame.height - changeEmailActionSize.height) / 2.0)), size: changeEmailActionSize) resendCodeActionButtonFrame = CGRect(origin: CGPoint(x: buttonFrame.minX, y: buttonFrame.maxY), size: CGSize(width: buttonFrame.width, height: buttonFrame.height)) diff --git a/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift b/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift index 51e8e7d2b1..cf7c35d10d 100644 --- a/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift +++ b/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift @@ -142,9 +142,9 @@ private final class TwoFactorAuthSplashScreenNode: ViewControllerTracingNode { self.animationNode.visibility = true } case .recoveryDone: - title = self.presentationData.strings.TwoFactorSetup_Done_Title - text = NSAttributedString(string: self.presentationData.strings.TwoFactorSetup_Done_Text, font: textFont, textColor: textColor) - buttonText = self.presentationData.strings.TwoFactorSetup_Done_Action + title = self.presentationData.strings.TwoFactorSetup_ResetDone_Title + text = NSAttributedString(string: self.presentationData.strings.TwoFactorSetup_ResetDone_Text, font: textFont, textColor: textColor) + buttonText = self.presentationData.strings.TwoFactorSetup_ResetDone_Action if let path = getAppBundle().path(forResource: "TwoFactorSetupDone", ofType: "tgs") { self.animationNode.setup(source: AnimatedStickerNodeLocalFileSource(path: path), width: 248, height: 248, mode: .direct(cachePathPrefix: nil)) diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 18b48dbdc7..2ebc8a9090 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -1340,5190 +1340,5193 @@ public final class PresentationStrings: Equatable { public var UserInfo_StartSecretChat: String { return self._s[1065]! } public var ChatListFolderSettings_EditFoldersInfo: String { return self._s[1066]! } public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[1067]! } - public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1068]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[1070]! } - public var PeerInfo_PaneFiles: String { return self._s[1071]! } - public var VoiceChat_DisplayAs: String { return self._s[1072]! } - public var PrivacySettings_AutoArchive: String { return self._s[1073]! } - public var Camera_VideoMode: String { return self._s[1074]! } - public var NotificationsSound_Alert: String { return self._s[1075]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1076]! } - public var Appearance_AutoNightTheme: String { return self._s[1077]! } - public var Passport_Language_he: String { return self._s[1078]! } - public var Passport_InvalidPasswordError: String { return self._s[1079]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1080]! } - public var UserInfo_InviteBotToGroup: String { return self._s[1081]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[1082]! } - public var Common_TakePhoto: String { return self._s[1083]! } + public var TwoFactorSetup_ResetDone_Title: String { return self._s[1068]! } + public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1069]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[1071]! } + public var PeerInfo_PaneFiles: String { return self._s[1072]! } + public var VoiceChat_DisplayAs: String { return self._s[1073]! } + public var PrivacySettings_AutoArchive: String { return self._s[1074]! } + public var Camera_VideoMode: String { return self._s[1075]! } + public var NotificationsSound_Alert: String { return self._s[1076]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1077]! } + public var Appearance_AutoNightTheme: String { return self._s[1078]! } + public var Passport_Language_he: String { return self._s[1079]! } + public var Passport_InvalidPasswordError: String { return self._s[1080]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1081]! } + public var UserInfo_InviteBotToGroup: String { return self._s[1082]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[1083]! } + public var Common_TakePhoto: String { return self._s[1084]! } public func Channel_AdminLog_RevokedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1084]!, self._r[1084]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1085]!, self._r[1085]!, [_1, _2]) } - public var Passport_Email_UseTelegramEmailHelp: String { return self._s[1085]! } - public var ChatList_Context_JoinChannel: String { return self._s[1086]! } - public var MediaPlayer_UnknownArtist: String { return self._s[1087]! } - public var VoiceChat_EditDescriptionText: String { return self._s[1088]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[1091]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[1092]! } - public var EditTheme_UploadEditedTheme: String { return self._s[1093]! } - public var Settings_SetProfilePhotoOrVideo: String { return self._s[1095]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[1096]! } - public var MessagePoll_ViewResults: String { return self._s[1097]! } - public var Group_Setup_TypePrivateHelp: String { return self._s[1098]! } + public var Passport_Email_UseTelegramEmailHelp: String { return self._s[1086]! } + public var ChatList_Context_JoinChannel: String { return self._s[1087]! } + public var MediaPlayer_UnknownArtist: String { return self._s[1088]! } + public var VoiceChat_EditDescriptionText: String { return self._s[1089]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[1092]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[1093]! } + public var EditTheme_UploadEditedTheme: String { return self._s[1094]! } + public var Settings_SetProfilePhotoOrVideo: String { return self._s[1096]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[1097]! } + public var MessagePoll_ViewResults: String { return self._s[1098]! } + public var Group_Setup_TypePrivateHelp: String { return self._s[1099]! } public func UserInfo_ContactForwardTooltip_Chat_One(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1099]!, self._r[1099]!, [_0]) + return formatWithArgumentRanges(self._s[1100]!, self._r[1100]!, [_0]) } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1100]! } - public var Privacy_PaymentsClear_ShippingInfoCleared: String { return self._s[1101]! } - public var ChatList_Search_ShowLess: String { return self._s[1102]! } - public var InviteLink_Create_UsersLimitNoLimit: String { return self._s[1103]! } - public var UserInfo_ShareBot: String { return self._s[1104]! } - public var Privacy_Calls_P2P: String { return self._s[1106]! } - public var WebBrowser_InAppSafari: String { return self._s[1107]! } - public var SharedMedia_EmptyFilesText: String { return self._s[1110]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[1111]! } - public var GroupInfo_SetSound: String { return self._s[1112]! } - public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1113]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1101]! } + public var Privacy_PaymentsClear_ShippingInfoCleared: String { return self._s[1102]! } + public var ChatList_Search_ShowLess: String { return self._s[1103]! } + public var InviteLink_Create_UsersLimitNoLimit: String { return self._s[1104]! } + public var UserInfo_ShareBot: String { return self._s[1105]! } + public var Privacy_Calls_P2P: String { return self._s[1107]! } + public var WebBrowser_InAppSafari: String { return self._s[1108]! } + public var SharedMedia_EmptyFilesText: String { return self._s[1111]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[1112]! } + public var GroupInfo_SetSound: String { return self._s[1113]! } + public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1114]! } public func Conversation_AutoremoveRemainingTime(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1114]!, self._r[1114]!, [_0]) + return formatWithArgumentRanges(self._s[1115]!, self._r[1115]!, [_0]) } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1115]! } - public var Channel_AdminLogFilter_EventsAll: String { return self._s[1116]! } - public var CallSettings_UseLessData: String { return self._s[1117]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[1118]! } - public var NotificationsSound_Chord: String { return self._s[1119]! } - public var PhotoEditor_CurvesTool: String { return self._s[1120]! } - public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1121]! } - public var Resolve_ErrorNotFound: String { return self._s[1122]! } - public var Activity_PlayingGame: String { return self._s[1123]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1116]! } + public var Channel_AdminLogFilter_EventsAll: String { return self._s[1117]! } + public var CallSettings_UseLessData: String { return self._s[1118]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[1119]! } + public var NotificationsSound_Chord: String { return self._s[1120]! } + public var PhotoEditor_CurvesTool: String { return self._s[1121]! } + public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1122]! } + public var Resolve_ErrorNotFound: String { return self._s[1123]! } + public var Activity_PlayingGame: String { return self._s[1124]! } public func VoiceChat_InvitedPeerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1127]!, self._r[1127]!, [_0]) + return formatWithArgumentRanges(self._s[1128]!, self._r[1128]!, [_0]) } - public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1128]! } + public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1129]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1129]!, self._r[1129]!, [_1]) + return formatWithArgumentRanges(self._s[1130]!, self._r[1130]!, [_1]) } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[1130]! } - public var Notification_CallIncoming: String { return self._s[1131]! } - public var Stats_EnabledNotifications: String { return self._s[1132]! } - public var Notification_VoiceChatStartedChannel: String { return self._s[1133]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[1134]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1135]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[1131]! } + public var Notification_CallIncoming: String { return self._s[1132]! } + public var Stats_EnabledNotifications: String { return self._s[1133]! } + public var Notification_VoiceChatStartedChannel: String { return self._s[1134]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[1135]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1136]! } public func Activity_RemindAboutChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1136]!, self._r[1136]!, [_0]) + return formatWithArgumentRanges(self._s[1137]!, self._r[1137]!, [_0]) } - public var VoiceChat_StatusMutedYou: String { return self._s[1137]! } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[1138]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[1139]! } - public var StickerPacksSettings_Title: String { return self._s[1140]! } + public var VoiceChat_StatusMutedYou: String { return self._s[1138]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[1139]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[1140]! } + public var StickerPacksSettings_Title: String { return self._s[1141]! } public func Channel_AdminLog_MessageGroupPreHistoryVisible(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1141]!, self._r[1141]!, [_0]) + return formatWithArgumentRanges(self._s[1142]!, self._r[1142]!, [_0]) } - public var Watch_NoConnection: String { return self._s[1142]! } - public var EncryptionKey_Title: String { return self._s[1143]! } - public var Widget_AuthRequired: String { return self._s[1144]! } + public var Watch_NoConnection: String { return self._s[1143]! } + public var EncryptionKey_Title: String { return self._s[1144]! } + public var Widget_AuthRequired: String { return self._s[1145]! } public func PUSH_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1145]!, self._r[1145]!, [_1]) + return formatWithArgumentRanges(self._s[1146]!, self._r[1146]!, [_1]) } - public var Notifications_ExceptionsTitle: String { return self._s[1146]! } - public var EditTheme_Expand_TopInfo: String { return self._s[1147]! } + public var Notifications_ExceptionsTitle: String { return self._s[1147]! } + public var EditTheme_Expand_TopInfo: String { return self._s[1148]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1148]!, self._r[1148]!, [_0]) + return formatWithArgumentRanges(self._s[1149]!, self._r[1149]!, [_0]) } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[1150]! } - public var Notifications_GroupNotificationsSound: String { return self._s[1151]! } - public var VoiceChat_SpeakPermissionAdmin: String { return self._s[1152]! } - public var Passport_Email_EnterOtherEmail: String { return self._s[1153]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[1151]! } + public var Notifications_GroupNotificationsSound: String { return self._s[1152]! } + public var VoiceChat_SpeakPermissionAdmin: String { return self._s[1153]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[1154]! } public func VoiceChat_RemovePeerConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1156]!, self._r[1156]!, [_0]) + return formatWithArgumentRanges(self._s[1157]!, self._r[1157]!, [_0]) } - public var Conversation_AddToContacts: String { return self._s[1157]! } - public var AutoDownloadSettings_DataUsageMedium: String { return self._s[1158]! } - public var AuthSessions_LogOutApplications: String { return self._s[1160]! } - public var VoiceChat_LeaveVoiceChat: String { return self._s[1161]! } - public var ChatList_Context_Unpin: String { return self._s[1162]! } - public var PeopleNearby_DiscoverDescription: String { return self._s[1163]! } - public var UserInfo_FakeBotWarning: String { return self._s[1164]! } - public var Notification_MessageLifetime1d: String { return self._s[1165]! } - public var PrivacyLastSeenSettings_NeverShareWith_Title: String { return self._s[1166]! } - public var ChatListFolder_CategoryChannels: String { return self._s[1167]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[1168]! } - public var Notifications_PermissionsAllow: String { return self._s[1169]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[1170]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1172]! } - public var VoiceChat_ImproveYourProfileText: String { return self._s[1173]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1174]! } - public var ChatImportActivity_ErrorInvalidChatType: String { return self._s[1175]! } + public var Conversation_AddToContacts: String { return self._s[1158]! } + public var AutoDownloadSettings_DataUsageMedium: String { return self._s[1159]! } + public var AuthSessions_LogOutApplications: String { return self._s[1161]! } + public var VoiceChat_LeaveVoiceChat: String { return self._s[1162]! } + public var ChatList_Context_Unpin: String { return self._s[1163]! } + public var PeopleNearby_DiscoverDescription: String { return self._s[1164]! } + public var UserInfo_FakeBotWarning: String { return self._s[1165]! } + public var Notification_MessageLifetime1d: String { return self._s[1166]! } + public var PrivacyLastSeenSettings_NeverShareWith_Title: String { return self._s[1167]! } + public var ChatListFolder_CategoryChannels: String { return self._s[1168]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[1169]! } + public var Notifications_PermissionsAllow: String { return self._s[1170]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[1171]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1173]! } + public var VoiceChat_ImproveYourProfileText: String { return self._s[1174]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1175]! } + public var ChatImportActivity_ErrorInvalidChatType: String { return self._s[1176]! } public func Conversation_ScheduledVoiceChatStartsToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1176]!, self._r[1176]!, [_0]) - } - public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1177]!, self._r[1177]!, [_0]) } - public var Conversation_AutoremoveTimerRemovedChannel: String { return self._s[1179]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[1181]! } - public var WallpaperSearch_ColorPink: String { return self._s[1182]! } - public var ContactInfo_PhoneNumberHidden: String { return self._s[1183]! } - public var Passport_Identity_IssueDate: String { return self._s[1185]! } + public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1178]!, self._r[1178]!, [_0]) + } + public var Conversation_AutoremoveTimerRemovedChannel: String { return self._s[1180]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[1182]! } + public var WallpaperSearch_ColorPink: String { return self._s[1183]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[1184]! } + public var Passport_Identity_IssueDate: String { return self._s[1186]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1186]!, self._r[1186]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1187]!, self._r[1187]!, [_1, _2]) } - public var ChatList_DeleteForAllSubscribersConfirmationText: String { return self._s[1187]! } - public var Channel_Info_Description: String { return self._s[1188]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1189]! } - public var Weekday_ShortTuesday: String { return self._s[1190]! } - public var Common_Back: String { return self._s[1191]! } - public var Chat_PinnedMessagesHiddenTitle: String { return self._s[1193]! } - public var ChatListFolder_AddChats: String { return self._s[1194]! } - public var Common_Close: String { return self._s[1196]! } - public var Map_OpenIn: String { return self._s[1197]! } - public var Group_Setup_HistoryTitle: String { return self._s[1198]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1199]! } - public var Notification_MessageLifetime1h: String { return self._s[1200]! } + public var ChatList_DeleteForAllSubscribersConfirmationText: String { return self._s[1188]! } + public var Channel_Info_Description: String { return self._s[1189]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1190]! } + public var Weekday_ShortTuesday: String { return self._s[1191]! } + public var Common_Back: String { return self._s[1192]! } + public var Chat_PinnedMessagesHiddenTitle: String { return self._s[1194]! } + public var ChatListFolder_AddChats: String { return self._s[1195]! } + public var Common_Close: String { return self._s[1197]! } + public var Map_OpenIn: String { return self._s[1198]! } + public var Group_Setup_HistoryTitle: String { return self._s[1199]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1200]! } + public var Notification_MessageLifetime1h: String { return self._s[1201]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1201]!, self._r[1201]!, [_0]) + return formatWithArgumentRanges(self._s[1202]!, self._r[1202]!, [_0]) } - public var Watch_Contacts_NoResults: String { return self._s[1203]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1204]! } - public var Checkout_Phone: String { return self._s[1205]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[1206]! } + public var Watch_Contacts_NoResults: String { return self._s[1204]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1205]! } + public var Checkout_Phone: String { return self._s[1206]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[1207]! } public func Channel_CommentsGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1207]!, self._r[1207]!, [_0]) + return formatWithArgumentRanges(self._s[1208]!, self._r[1208]!, [_0]) } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1208]!, self._r[1208]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1209]!, self._r[1209]!, ["\(_0)"]) } - public var Conversation_AudioRateTooltipSpeedUp: String { return self._s[1209]! } - public var ChatAdmins_Title: String { return self._s[1210]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[1211]! } + public var Conversation_AudioRateTooltipSpeedUp: String { return self._s[1210]! } + public var ChatAdmins_Title: String { return self._s[1211]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[1212]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1212]!, self._r[1212]!, [_1]) + return formatWithArgumentRanges(self._s[1213]!, self._r[1213]!, [_1]) } - public var Common_Done: String { return self._s[1213]! } - public var ChatList_HeaderImportIntoAnExistingGroup: String { return self._s[1214]! } - public var Appearance_AppIconNew2: String { return self._s[1215]! } + public var Common_Done: String { return self._s[1214]! } + public var ChatList_HeaderImportIntoAnExistingGroup: String { return self._s[1215]! } + public var Appearance_AppIconNew2: String { return self._s[1216]! } public func PUSH_PINNED_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1219]!, self._r[1219]!, [_1]) + return formatWithArgumentRanges(self._s[1220]!, self._r[1220]!, [_1]) } - public var Appearance_ThemeCarouselNight: String { return self._s[1220]! } - public var InviteLink_Expired: String { return self._s[1222]! } - public var Preview_OpenInInstagram: String { return self._s[1223]! } - public var Wallpaper_SetColor: String { return self._s[1228]! } - public var VoiceOver_Media_PlaybackRate: String { return self._s[1229]! } - public var ChatSettings_Groups: String { return self._s[1230]! } + public var Appearance_ThemeCarouselNight: String { return self._s[1221]! } + public var InviteLink_Expired: String { return self._s[1223]! } + public var Preview_OpenInInstagram: String { return self._s[1224]! } + public var Wallpaper_SetColor: String { return self._s[1229]! } + public var VoiceOver_Media_PlaybackRate: String { return self._s[1230]! } + public var ChatSettings_Groups: String { return self._s[1231]! } public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1231]!, self._r[1231]!, [_0]) + return formatWithArgumentRanges(self._s[1232]!, self._r[1232]!, [_0]) } - public var Contacts_SortedByName: String { return self._s[1232]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1233]! } - public var Channel_Management_LabelCreator: String { return self._s[1234]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1235]! } + public var Contacts_SortedByName: String { return self._s[1233]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1234]! } + public var Channel_Management_LabelCreator: String { return self._s[1235]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1236]! } public func PrivacySettings_LastSeenContactsMinusPlus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1236]!, self._r[1236]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1237]!, self._r[1237]!, [_0, _1]) } - public var Group_GroupMembersHeader: String { return self._s[1237]! } - public var Group_PublicLink_Title: String { return self._s[1238]! } - public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1239]! } - public var VoiceOver_Chat_Photo: String { return self._s[1240]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[1241]! } - public var IntentsSettings_SuggestBy: String { return self._s[1242]! } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[1243]! } - public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1244]! } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[1245]! } - public var LogoutOptions_SetPasscodeText: String { return self._s[1246]! } - public var Map_OpenInMaps: String { return self._s[1247]! } - public var ContactInfo_PhoneLabelWorkFax: String { return self._s[1248]! } - public var BlockedUsers_Unblock: String { return self._s[1249]! } + public var Group_GroupMembersHeader: String { return self._s[1238]! } + public var Group_PublicLink_Title: String { return self._s[1239]! } + public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1240]! } + public var VoiceOver_Chat_Photo: String { return self._s[1241]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[1242]! } + public var IntentsSettings_SuggestBy: String { return self._s[1243]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[1244]! } + public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1245]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[1246]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[1247]! } + public var Map_OpenInMaps: String { return self._s[1248]! } + public var ContactInfo_PhoneLabelWorkFax: String { return self._s[1249]! } + public var BlockedUsers_Unblock: String { return self._s[1250]! } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1250]!, self._r[1250]!, [_1, _2]) - } - public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1251]!, self._r[1251]!, [_1, _2]) } - public var ChatImport_CreateGroupAlertTitle: String { return self._s[1253]! } - public var Conversation_Block: String { return self._s[1254]! } - public var VoiceChat_PersonalAccount: String { return self._s[1255]! } - public var Passport_Scans_UploadNew: String { return self._s[1256]! } - public var Share_Title: String { return self._s[1257]! } - public var Conversation_ApplyLocalization: String { return self._s[1258]! } - public var SharedMedia_EmptyLinksText: String { return self._s[1259]! } - public var Settings_NotificationsAndSounds: String { return self._s[1260]! } - public var Stats_ViewsByHoursTitle: String { return self._s[1261]! } - public var PhotoEditor_QualityMedium: String { return self._s[1262]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[1263]! } + public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1252]!, self._r[1252]!, [_1, _2]) + } + public var ChatImport_CreateGroupAlertTitle: String { return self._s[1254]! } + public var Conversation_Block: String { return self._s[1255]! } + public var VoiceChat_PersonalAccount: String { return self._s[1256]! } + public var Passport_Scans_UploadNew: String { return self._s[1257]! } + public var Share_Title: String { return self._s[1258]! } + public var Conversation_ApplyLocalization: String { return self._s[1259]! } + public var SharedMedia_EmptyLinksText: String { return self._s[1260]! } + public var Settings_NotificationsAndSounds: String { return self._s[1261]! } + public var Stats_ViewsByHoursTitle: String { return self._s[1262]! } + public var PhotoEditor_QualityMedium: String { return self._s[1263]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[1264]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1264]!, self._r[1264]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1265]!, self._r[1265]!, [_1, _2]) } - public var Conversation_RestrictedInline: String { return self._s[1265]! } - public var Passport_Language_tr: String { return self._s[1266]! } - public var Call_Mute: String { return self._s[1267]! } + public var Conversation_RestrictedInline: String { return self._s[1266]! } + public var Passport_Language_tr: String { return self._s[1267]! } + public var Call_Mute: String { return self._s[1268]! } public func Conversation_NoticeInvitedByInGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1268]!, self._r[1268]!, [_0]) + return formatWithArgumentRanges(self._s[1269]!, self._r[1269]!, [_0]) } - public var Passport_Language_bn: String { return self._s[1269]! } - public var Common_Save: String { return self._s[1271]! } - public var AccessDenied_LocationTracking: String { return self._s[1273]! } - public var Month_ShortOctober: String { return self._s[1274]! } - public var AutoDownloadSettings_WiFi: String { return self._s[1275]! } - public var ProfilePhoto_SetMainPhoto: String { return self._s[1277]! } - public var ChangePhoneNumberNumber_NewNumber: String { return self._s[1278]! } + public var Passport_Language_bn: String { return self._s[1270]! } + public var Common_Save: String { return self._s[1272]! } + public var AccessDenied_LocationTracking: String { return self._s[1274]! } + public var Month_ShortOctober: String { return self._s[1275]! } + public var AutoDownloadSettings_WiFi: String { return self._s[1276]! } + public var ProfilePhoto_SetMainPhoto: String { return self._s[1278]! } + public var ChangePhoneNumberNumber_NewNumber: String { return self._s[1279]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1279]!, self._r[1279]!, [_0]) + return formatWithArgumentRanges(self._s[1280]!, self._r[1280]!, [_0]) } - public var Watch_ChannelInfo_Title: String { return self._s[1280]! } - public var State_Updating: String { return self._s[1281]! } - public var Conversation_UnblockUser: String { return self._s[1282]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1283]! } - public var Map_GetDirections: String { return self._s[1284]! } - public var Watch_Compose_AddContact: String { return self._s[1286]! } - public var Conversation_Dice_u26BD: String { return self._s[1287]! } - public var AccessDenied_PhotosRestricted: String { return self._s[1288]! } + public var Watch_ChannelInfo_Title: String { return self._s[1281]! } + public var State_Updating: String { return self._s[1282]! } + public var Conversation_UnblockUser: String { return self._s[1283]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1284]! } + public var Map_GetDirections: String { return self._s[1285]! } + public var Watch_Compose_AddContact: String { return self._s[1287]! } + public var Conversation_Dice_u26BD: String { return self._s[1288]! } + public var AccessDenied_PhotosRestricted: String { return self._s[1289]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1289]!, self._r[1289]!, [_1]) + return formatWithArgumentRanges(self._s[1290]!, self._r[1290]!, [_1]) } - public var Map_LoadError: String { return self._s[1291]! } - public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[1292]! } - public var PhotoEditor_CropAuto: String { return self._s[1293]! } + public var Map_LoadError: String { return self._s[1292]! } + public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[1293]! } + public var PhotoEditor_CropAuto: String { return self._s[1294]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1296]!, self._r[1296]!, [_0]) + return formatWithArgumentRanges(self._s[1297]!, self._r[1297]!, [_0]) } - public var Username_TooManyPublicUsernamesError: String { return self._s[1298]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[1299]! } public func PUSH_PINNED_GAME(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1299]!, self._r[1299]!, [_1]) + return formatWithArgumentRanges(self._s[1300]!, self._r[1300]!, [_1]) } - public var Settings_PhoneNumber: String { return self._s[1300]! } + public var Settings_PhoneNumber: String { return self._s[1301]! } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1301]!, self._r[1301]!, [_1]) + return formatWithArgumentRanges(self._s[1302]!, self._r[1302]!, [_1]) } - public var Month_GenJune: String { return self._s[1303]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[1304]! } - public var ChatListFolder_CategoryRead: String { return self._s[1305]! } - public var LoginPassword_ResetAccount: String { return self._s[1306]! } + public var Month_GenJune: String { return self._s[1304]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[1305]! } + public var ChatListFolder_CategoryRead: String { return self._s[1306]! } + public var LoginPassword_ResetAccount: String { return self._s[1307]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1307]!, self._r[1307]!, [_0]) + return formatWithArgumentRanges(self._s[1308]!, self._r[1308]!, [_0]) } - public var Call_CameraConfirmationConfirm: String { return self._s[1308]! } - public var Notification_RenamedChannel: String { return self._s[1309]! } + public var Call_CameraConfirmationConfirm: String { return self._s[1309]! } + public var Notification_RenamedChannel: String { return self._s[1310]! } public func Channel_AdminLog_MessageUnpinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1310]!, self._r[1310]!, [_0]) + return formatWithArgumentRanges(self._s[1311]!, self._r[1311]!, [_0]) } - public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[1311]! } - public var IntentsSettings_Title: String { return self._s[1313]! } - public var CallList_DeleteAllForMe: String { return self._s[1314]! } - public var Settings_AppleWatch: String { return self._s[1315]! } - public var Conversation_LinkCopied: String { return self._s[1316]! } - public var DialogList_NoMessagesText: String { return self._s[1317]! } + public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[1312]! } + public var IntentsSettings_Title: String { return self._s[1314]! } + public var CallList_DeleteAllForMe: String { return self._s[1315]! } + public var Settings_AppleWatch: String { return self._s[1316]! } + public var Conversation_LinkCopied: String { return self._s[1317]! } + public var DialogList_NoMessagesText: String { return self._s[1318]! } public func VoiceChat_SendPublicLinkText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1318]!, self._r[1318]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1319]!, self._r[1319]!, [_1, _2]) } - public var GroupPermission_NoChangeInfo: String { return self._s[1319]! } - public var Channel_ErrorAccessDenied: String { return self._s[1321]! } - public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1322]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1320]! } + public var Channel_ErrorAccessDenied: String { return self._s[1322]! } + public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1323]! } public func Message_StickerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1323]!, self._r[1323]!, [_0]) + return formatWithArgumentRanges(self._s[1324]!, self._r[1324]!, [_0]) } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1324]! } - public var StickerPacksSettings_AnimatedStickers: String { return self._s[1325]! } - public var Month_ShortJanuary: String { return self._s[1326]! } - public var Conversation_UnreadMessages: String { return self._s[1327]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[1329]! } - public var Call_VoiceOver_VideoCallCanceled: String { return self._s[1330]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[1332]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1333]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1325]! } + public var StickerPacksSettings_AnimatedStickers: String { return self._s[1326]! } + public var Month_ShortJanuary: String { return self._s[1327]! } + public var Conversation_UnreadMessages: String { return self._s[1328]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[1330]! } + public var Call_VoiceOver_VideoCallCanceled: String { return self._s[1331]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[1333]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1334]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1337]!, self._r[1337]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1338]!, self._r[1338]!, [_1, _2]) } - public var Widget_ApplicationLocked: String { return self._s[1338]! } + public var Widget_ApplicationLocked: String { return self._s[1339]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1339]!, self._r[1339]!, [_0]) + return formatWithArgumentRanges(self._s[1340]!, self._r[1340]!, [_0]) } - public var Common_TakePhotoOrVideo: String { return self._s[1340]! } - public var Passport_Language_ru: String { return self._s[1342]! } - public var MediaPicker_VideoMuteDescription: String { return self._s[1343]! } - public var EditTheme_ErrorLinkTaken: String { return self._s[1344]! } + public var Common_TakePhotoOrVideo: String { return self._s[1341]! } + public var Passport_Language_ru: String { return self._s[1343]! } + public var MediaPicker_VideoMuteDescription: String { return self._s[1344]! } + public var EditTheme_ErrorLinkTaken: String { return self._s[1345]! } public func Group_EditAdmin_RankInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1346]!, self._r[1346]!, [_0]) + return formatWithArgumentRanges(self._s[1347]!, self._r[1347]!, [_0]) } - public var VoiceChat_ShareShort: String { return self._s[1347]! } - public var Channel_Members_AddAdminErrorBlacklisted: String { return self._s[1348]! } - public var Conversation_Owner: String { return self._s[1350]! } - public var Settings_FAQ_Intro: String { return self._s[1351]! } - public var PhotoEditor_QualityLow: String { return self._s[1353]! } - public var Widget_GalleryTitle: String { return self._s[1354]! } - public var Call_End: String { return self._s[1355]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[1357]! } - public var Privacy_ContactsSyncHelp: String { return self._s[1358]! } - public var OldChannels_NoticeUpgradeText: String { return self._s[1362]! } - public var Conversation_Call: String { return self._s[1364]! } - public var Watch_MessageView_Title: String { return self._s[1365]! } + public var VoiceChat_ShareShort: String { return self._s[1348]! } + public var Channel_Members_AddAdminErrorBlacklisted: String { return self._s[1349]! } + public var Conversation_Owner: String { return self._s[1351]! } + public var Settings_FAQ_Intro: String { return self._s[1352]! } + public var PhotoEditor_QualityLow: String { return self._s[1354]! } + public var Widget_GalleryTitle: String { return self._s[1355]! } + public var Call_End: String { return self._s[1356]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[1358]! } + public var Privacy_ContactsSyncHelp: String { return self._s[1359]! } + public var OldChannels_NoticeUpgradeText: String { return self._s[1363]! } + public var Conversation_Call: String { return self._s[1365]! } + public var Watch_MessageView_Title: String { return self._s[1366]! } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1366]!, self._r[1366]!, [_0]) + return formatWithArgumentRanges(self._s[1367]!, self._r[1367]!, [_0]) } - public var Passport_PasswordCompleteSetup: String { return self._s[1367]! } + public var Passport_PasswordCompleteSetup: String { return self._s[1368]! } public func Notification_ChangedGroupVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1368]!, self._r[1368]!, [_0]) + return formatWithArgumentRanges(self._s[1369]!, self._r[1369]!, [_0]) } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1370]!, self._r[1370]!, [_0]) + return formatWithArgumentRanges(self._s[1371]!, self._r[1371]!, [_0]) } - public var Map_Location: String { return self._s[1371]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1372]! } - public var Login_CountryCode: String { return self._s[1373]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[1375]! } - public var ChatState_ConnectingToProxy: String { return self._s[1376]! } - public var Login_CallRequestState3: String { return self._s[1377]! } - public var NetworkUsageSettings_MediaAudioDataSection: String { return self._s[1380]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1381]! } - public var Widget_ChatsGalleryDescription: String { return self._s[1383]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[1385]! } - public var InstantPage_FontSanFrancisco: String { return self._s[1386]! } - public var Call_StatusEnded: String { return self._s[1387]! } + public var Map_Location: String { return self._s[1372]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1373]! } + public var Login_CountryCode: String { return self._s[1374]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[1376]! } + public var ChatState_ConnectingToProxy: String { return self._s[1377]! } + public var Login_CallRequestState3: String { return self._s[1378]! } + public var NetworkUsageSettings_MediaAudioDataSection: String { return self._s[1381]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1382]! } + public var Widget_ChatsGalleryDescription: String { return self._s[1384]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[1386]! } + public var InstantPage_FontSanFrancisco: String { return self._s[1387]! } + public var Call_StatusEnded: String { return self._s[1388]! } public func Checkout_SuccessfulTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1390]!, self._r[1390]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1391]!, self._r[1391]!, [_1, _2]) } - public var MusicPlayer_VoiceNote: String { return self._s[1391]! } - public var ChatImportActivity_ErrorUserBlocked: String { return self._s[1392]! } + public var MusicPlayer_VoiceNote: String { return self._s[1392]! } + public var ChatImportActivity_ErrorUserBlocked: String { return self._s[1393]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1393]!, self._r[1393]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1394]!, self._r[1394]!, [_1, _2]) } - public var VoiceOver_MessageContextShare: String { return self._s[1394]! } - public var ProfilePhoto_SearchWeb: String { return self._s[1395]! } - public var EditProfile_Title: String { return self._s[1396]! } + public var VoiceOver_MessageContextShare: String { return self._s[1395]! } + public var ProfilePhoto_SearchWeb: String { return self._s[1396]! } + public var EditProfile_Title: String { return self._s[1397]! } public func Notification_PinnedQuizMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1397]!, self._r[1397]!, [_0]) + return formatWithArgumentRanges(self._s[1398]!, self._r[1398]!, [_0]) } - public var VoiceChat_Unmute: String { return self._s[1398]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[1399]! } - public var NetworkUsageSettings_ResetStats: String { return self._s[1401]! } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[1402]! } - public var StickerPackActionInfo_AddedTitle: String { return self._s[1403]! } - public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[1404]! } + public var VoiceChat_Unmute: String { return self._s[1399]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[1400]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[1402]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[1403]! } + public var StickerPackActionInfo_AddedTitle: String { return self._s[1404]! } + public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[1405]! } public func Call_ParticipantVideoVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1405]!, self._r[1405]!, [_0]) + return formatWithArgumentRanges(self._s[1406]!, self._r[1406]!, [_0]) } - public var Location_ProximityNotification_Title: String { return self._s[1406]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[1407]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1410]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[1411]! } - public var Stats_GroupMembersTitle: String { return self._s[1412]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[1413]! } - public var InviteLink_InviteLinkRevoked: String { return self._s[1414]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1415]! } - public var OpenFile_PotentiallyDangerousContentAlert: String { return self._s[1416]! } - public var Settings_SetUsername: String { return self._s[1417]! } - public var GroupInfo_ActionRestrict: String { return self._s[1418]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1419]! } + public var Location_ProximityNotification_Title: String { return self._s[1407]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[1408]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[1411]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[1412]! } + public var Stats_GroupMembersTitle: String { return self._s[1413]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[1414]! } + public var InviteLink_InviteLinkRevoked: String { return self._s[1415]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1416]! } + public var OpenFile_PotentiallyDangerousContentAlert: String { return self._s[1417]! } + public var Settings_SetUsername: String { return self._s[1418]! } + public var GroupInfo_ActionRestrict: String { return self._s[1419]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1420]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1420]!, self._r[1420]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1421]!, self._r[1421]!, [_1, _2, _3]) } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1422]! } - public var Notification_Exceptions_AlwaysOff: String { return self._s[1423]! } - public var Conversation_ContextMenuDelete: String { return self._s[1424]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[1425]! } - public var ChatList_PsaAlert_covid: String { return self._s[1428]! } - public var VoiceOver_SilentPostOn: String { return self._s[1429]! } - public var DialogList_Pin: String { return self._s[1430]! } - public var Channel_AdminLog_CanInviteUsersViaLink: String { return self._s[1431]! } - public var PrivacySettings_SecurityTitle: String { return self._s[1432]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[1433]! } - public var PeopleNearby_Groups: String { return self._s[1434]! } - public var Message_File: String { return self._s[1435]! } - public var Calls_NoCallsPlaceholder: String { return self._s[1436]! } - public var ChatList_GenericPsaLabel: String { return self._s[1439]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[1440]! } - public var IntentsSettings_Reset: String { return self._s[1442]! } - public var Call_ConnectionErrorTitle: String { return self._s[1443]! } - public var PhotoEditor_SaturationTool: String { return self._s[1444]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[1445]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1446]! } - public var Conversation_SearchNoResults: String { return self._s[1447]! } - public var Channel_DiscussionGroup_PrivateChannel: String { return self._s[1448]! } - public var Map_OpenInWaze: String { return self._s[1449]! } - public var InviteLink_PeopleJoinedNone: String { return self._s[1450]! } - public var WallpaperPreview_Title: String { return self._s[1451]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1423]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[1424]! } + public var Conversation_ContextMenuDelete: String { return self._s[1425]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[1426]! } + public var ChatList_PsaAlert_covid: String { return self._s[1429]! } + public var VoiceOver_SilentPostOn: String { return self._s[1430]! } + public var DialogList_Pin: String { return self._s[1431]! } + public var Channel_AdminLog_CanInviteUsersViaLink: String { return self._s[1432]! } + public var PrivacySettings_SecurityTitle: String { return self._s[1433]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[1434]! } + public var PeopleNearby_Groups: String { return self._s[1435]! } + public var Message_File: String { return self._s[1436]! } + public var Calls_NoCallsPlaceholder: String { return self._s[1437]! } + public var ChatList_GenericPsaLabel: String { return self._s[1440]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[1441]! } + public var IntentsSettings_Reset: String { return self._s[1443]! } + public var Call_ConnectionErrorTitle: String { return self._s[1444]! } + public var PhotoEditor_SaturationTool: String { return self._s[1445]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[1446]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1447]! } + public var Conversation_SearchNoResults: String { return self._s[1448]! } + public var Channel_DiscussionGroup_PrivateChannel: String { return self._s[1449]! } + public var Map_OpenInWaze: String { return self._s[1450]! } + public var InviteLink_PeopleJoinedNone: String { return self._s[1451]! } + public var WallpaperPreview_Title: String { return self._s[1452]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1453]!, self._r[1453]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1454]!, self._r[1454]!, [_1, _2]) } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[1454]! } - public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[1455]! } - public var VoiceOver_Chat_ChannelInfo: String { return self._s[1456]! } - public var Conversation_ImageCopied: String { return self._s[1457]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[1458]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[1460]! } - public var Stats_Total: String { return self._s[1463]! } - public var Stats_GroupMessages: String { return self._s[1464]! } - public var TwoFactorSetup_Email_SkipAction: String { return self._s[1465]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[1466]! } - public var VoiceChat_You: String { return self._s[1467]! } - public var VoiceChat_DisplayAsInfoGroup: String { return self._s[1468]! } - public var Passport_Identity_Translation: String { return self._s[1469]! } - public var Notifications_TextTone: String { return self._s[1472]! } - public var Settings_RemoveConfirmation: String { return self._s[1474]! } - public var ScheduledMessages_Delete: String { return self._s[1475]! } - public var Channel_AdminLog_BanEmbedLinks: String { return self._s[1476]! } - public var Passport_PasswordNext: String { return self._s[1477]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[1455]! } + public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[1456]! } + public var VoiceOver_Chat_ChannelInfo: String { return self._s[1457]! } + public var Conversation_ImageCopied: String { return self._s[1458]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[1459]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[1461]! } + public var Stats_Total: String { return self._s[1464]! } + public var Stats_GroupMessages: String { return self._s[1465]! } + public var TwoFactorSetup_Email_SkipAction: String { return self._s[1466]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[1467]! } + public var VoiceChat_You: String { return self._s[1468]! } + public var VoiceChat_DisplayAsInfoGroup: String { return self._s[1469]! } + public var Passport_Identity_Translation: String { return self._s[1470]! } + public var Notifications_TextTone: String { return self._s[1473]! } + public var Settings_RemoveConfirmation: String { return self._s[1475]! } + public var ScheduledMessages_Delete: String { return self._s[1476]! } + public var Channel_AdminLog_BanEmbedLinks: String { return self._s[1477]! } + public var Passport_PasswordNext: String { return self._s[1478]! } public func PUSH_ENCRYPTED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1478]!, self._r[1478]!, [_1]) + return formatWithArgumentRanges(self._s[1479]!, self._r[1479]!, [_1]) } - public var Passport_Address_EditBankStatement: String { return self._s[1479]! } - public var PhotoEditor_ShadowsTool: String { return self._s[1480]! } - public var Notification_VideoCallMissed: String { return self._s[1481]! } - public var AccessDenied_CameraDisabled: String { return self._s[1483]! } - public var AuthSessions_AddDevice_ScanInfo: String { return self._s[1484]! } - public var Notifications_ExceptionsMuted: String { return self._s[1485]! } - public var VoiceChat_TapToViewScreenVideo: String { return self._s[1486]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[1487]! } - public var Channel_BlackList_Title: String { return self._s[1488]! } - public var PasscodeSettings_4DigitCode: String { return self._s[1489]! } - public var NotificationsSound_Bamboo: String { return self._s[1490]! } - public var Conversation_InputMenu: String { return self._s[1491]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[1492]! } - public var Passport_Address_TypeUtilityBill: String { return self._s[1493]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[1494]! } - public var GroupPermission_SectionTitle: String { return self._s[1495]! } - public var InviteLink_ContextRevoke: String { return self._s[1496]! } + public var Passport_Address_EditBankStatement: String { return self._s[1480]! } + public var PhotoEditor_ShadowsTool: String { return self._s[1481]! } + public var Notification_VideoCallMissed: String { return self._s[1482]! } + public var AccessDenied_CameraDisabled: String { return self._s[1484]! } + public var AuthSessions_AddDevice_ScanInfo: String { return self._s[1485]! } + public var Notifications_ExceptionsMuted: String { return self._s[1486]! } + public var VoiceChat_TapToViewScreenVideo: String { return self._s[1487]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[1488]! } + public var Channel_BlackList_Title: String { return self._s[1489]! } + public var PasscodeSettings_4DigitCode: String { return self._s[1490]! } + public var NotificationsSound_Bamboo: String { return self._s[1491]! } + public var Conversation_InputMenu: String { return self._s[1492]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[1493]! } + public var Passport_Address_TypeUtilityBill: String { return self._s[1494]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[1495]! } + public var GroupPermission_SectionTitle: String { return self._s[1496]! } + public var InviteLink_ContextRevoke: String { return self._s[1497]! } public func Notification_InvitedMultiple(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1497]!, self._r[1497]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1498]!, self._r[1498]!, [_0, _1]) } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1498]! } - public var Channel_LeaveChannel: String { return self._s[1499]! } - public var Watch_Notification_Joined: String { return self._s[1500]! } - public var PeerInfo_ButtonMore: String { return self._s[1501]! } - public var Passport_FieldEmailHelp: String { return self._s[1502]! } - public var ChatList_Context_Pin: String { return self._s[1503]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1499]! } + public var Channel_LeaveChannel: String { return self._s[1500]! } + public var Watch_Notification_Joined: String { return self._s[1501]! } + public var PeerInfo_ButtonMore: String { return self._s[1502]! } + public var Passport_FieldEmailHelp: String { return self._s[1503]! } + public var ChatList_Context_Pin: String { return self._s[1504]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1504]!, self._r[1504]!, [_0]) + return formatWithArgumentRanges(self._s[1505]!, self._r[1505]!, [_0]) } - public var Group_Location_CreateInThisPlace: String { return self._s[1505]! } - public var PhotoEditor_QualityVeryHigh: String { return self._s[1506]! } - public var Tour_Title5: String { return self._s[1507]! } + public var Group_Location_CreateInThisPlace: String { return self._s[1506]! } + public var PhotoEditor_QualityVeryHigh: String { return self._s[1507]! } + public var Tour_Title5: String { return self._s[1508]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1508]!, self._r[1508]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1509]!, self._r[1509]!, [_1, _2]) } - public var Passport_Language_en: String { return self._s[1509]! } - public var Checkout_Name: String { return self._s[1510]! } - public var ChatImport_Title: String { return self._s[1511]! } + public var Passport_Language_en: String { return self._s[1510]! } + public var Checkout_Name: String { return self._s[1511]! } + public var ChatImport_Title: String { return self._s[1512]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1512]!, self._r[1512]!, [_0]) + return formatWithArgumentRanges(self._s[1513]!, self._r[1513]!, [_0]) } - public var PhotoEditor_EnhanceTool: String { return self._s[1513]! } + public var PhotoEditor_EnhanceTool: String { return self._s[1514]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1514]!, self._r[1514]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1515]!, self._r[1515]!, [_1, _2]) } public func VoiceChat_UserCanNowSpeak(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1515]!, self._r[1515]!, [_0]) + return formatWithArgumentRanges(self._s[1516]!, self._r[1516]!, [_0]) } - public var PeerInfo_CustomizeNotifications: String { return self._s[1516]! } + public var PeerInfo_CustomizeNotifications: String { return self._s[1517]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1517]!, self._r[1517]!, [_0]) + return formatWithArgumentRanges(self._s[1518]!, self._r[1518]!, [_0]) } - public var Group_ErrorSendRestrictedMedia: String { return self._s[1518]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[1519]! } public func UserInfo_NotificationsDefaultSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1519]!, self._r[1519]!, [_0]) + return formatWithArgumentRanges(self._s[1520]!, self._r[1520]!, [_0]) } - public var Login_UnknownError: String { return self._s[1520]! } - public var Conversation_ImportedMessageHint: String { return self._s[1522]! } + public var Login_UnknownError: String { return self._s[1521]! } + public var Conversation_ImportedMessageHint: String { return self._s[1523]! } public func VoiceChat_ForwardTooltip_Chat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1523]!, self._r[1523]!, [_0]) + return formatWithArgumentRanges(self._s[1524]!, self._r[1524]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[1525]! } - public var ChatList_AutoarchiveSuggestion_Title: String { return self._s[1526]! } - public var Watch_PhotoView_Title: String { return self._s[1527]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[1528]! } - public var Checkout_TotalAmount: String { return self._s[1529]! } - public var ChatList_RemoveFolderAction: String { return self._s[1530]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[1526]! } + public var ChatList_AutoarchiveSuggestion_Title: String { return self._s[1527]! } + public var Watch_PhotoView_Title: String { return self._s[1528]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[1529]! } + public var Checkout_TotalAmount: String { return self._s[1530]! } + public var ChatList_RemoveFolderAction: String { return self._s[1531]! } public func GroupInfo_Permissions_BroadcastConvertInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1531]!, self._r[1531]!, [_0]) + return formatWithArgumentRanges(self._s[1532]!, self._r[1532]!, [_0]) } - public var GroupInfo_SetGroupPhoto: String { return self._s[1532]! } - public var Watch_AppName: String { return self._s[1533]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[1533]! } + public var Watch_AppName: String { return self._s[1534]! } public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1534]!, self._r[1534]!, [_1]) + return formatWithArgumentRanges(self._s[1535]!, self._r[1535]!, [_1]) } - public var Channel_Username_CheckingUsername: String { return self._s[1535]! } - public var ContactList_Context_Call: String { return self._s[1536]! } - public var ChatList_ReorderTabs: String { return self._s[1537]! } - public var Watch_ChatList_Compose: String { return self._s[1538]! } + public var Channel_Username_CheckingUsername: String { return self._s[1536]! } + public var ContactList_Context_Call: String { return self._s[1537]! } + public var ChatList_ReorderTabs: String { return self._s[1538]! } + public var Watch_ChatList_Compose: String { return self._s[1539]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1539]!, self._r[1539]!, [_0]) + return formatWithArgumentRanges(self._s[1540]!, self._r[1540]!, [_0]) } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[1540]! } - public var ArchivedChats_IntroTitle1: String { return self._s[1541]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[1541]! } + public var ArchivedChats_IntroTitle1: String { return self._s[1542]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1542]!, self._r[1542]!, [_1]) + return formatWithArgumentRanges(self._s[1543]!, self._r[1543]!, [_1]) } - public var Call_StatusRequesting: String { return self._s[1544]! } - public var Checkout_TotalPaidAmount: String { return self._s[1545]! } - public var Weekday_Friday: String { return self._s[1547]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[1548]! } + public var Call_StatusRequesting: String { return self._s[1545]! } + public var Checkout_TotalPaidAmount: String { return self._s[1546]! } + public var Weekday_Friday: String { return self._s[1548]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[1549]! } public func ChatImport_SelectionConfirmationUserWithoutTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1549]!, self._r[1549]!, [_0]) + return formatWithArgumentRanges(self._s[1550]!, self._r[1550]!, [_0]) } - public var Watch_ChatList_NoConversationsText: String { return self._s[1550]! } - public var Group_Members_AddMembersHelp: String { return self._s[1551]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[1551]! } + public var Group_Members_AddMembersHelp: String { return self._s[1552]! } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1552]!, self._r[1552]!, [_0]) + return formatWithArgumentRanges(self._s[1553]!, self._r[1553]!, [_0]) } - public var SecretVideo_Title: String { return self._s[1553]! } + public var SecretVideo_Title: String { return self._s[1554]! } public func Notification_PinnedStickerMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1556]!, self._r[1556]!, [_0]) + return formatWithArgumentRanges(self._s[1557]!, self._r[1557]!, [_0]) } - public var Undo_Undo: String { return self._s[1557]! } - public var Watch_Microphone_Access: String { return self._s[1558]! } + public var Undo_Undo: String { return self._s[1558]! } + public var Watch_Microphone_Access: String { return self._s[1559]! } public func ChatImport_SelectionConfirmationGroupWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1559]!, self._r[1559]!, [_1, _2]) - } - public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1560]!, self._r[1560]!, [_1, _2]) } - public func ChatList_Search_NoResultsQueryDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1561]!, self._r[1561]!, [_0]) + public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1561]!, self._r[1561]!, [_1, _2]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[1563]! } - public var TwoFactorSetup_Intro_Action: String { return self._s[1564]! } - public var Passport_Language_ne: String { return self._s[1565]! } - public var TwoStepAuth_EmailHelp: String { return self._s[1567]! } - public var Profile_MessageLifetime2s: String { return self._s[1568]! } + public func ChatList_Search_NoResultsQueryDescription(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1562]!, self._r[1562]!, [_0]) + } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[1564]! } + public var TwoFactorSetup_Intro_Action: String { return self._s[1565]! } + public var Passport_Language_ne: String { return self._s[1566]! } + public var TwoStepAuth_EmailHelp: String { return self._s[1568]! } + public var Profile_MessageLifetime2s: String { return self._s[1569]! } public func Conversation_MessageDialogRetryAll(_ _1: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1570]!, self._r[1570]!, ["\(_1)"]) + return formatWithArgumentRanges(self._s[1571]!, self._r[1571]!, ["\(_1)"]) } public func Items_NOfM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1571]!, self._r[1571]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1572]!, self._r[1572]!, [_1, _2]) } - public var VoiceChat_SendPublicLinkSend: String { return self._s[1572]! } - public var Media_LimitedAccessText: String { return self._s[1573]! } + public var VoiceChat_SendPublicLinkSend: String { return self._s[1573]! } + public var Media_LimitedAccessText: String { return self._s[1574]! } public func PUSH_CHAT_TITLE_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1574]!, self._r[1574]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1575]!, self._r[1575]!, [_1, _2]) } - public var GroupPermission_NoPinMessages: String { return self._s[1575]! } + public var GroupPermission_NoPinMessages: String { return self._s[1576]! } public func Notification_VoiceChatStarted(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1576]!, self._r[1576]!, [_1]) + return formatWithArgumentRanges(self._s[1577]!, self._r[1577]!, [_1]) } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1577]!, self._r[1577]!, [_0]) + return formatWithArgumentRanges(self._s[1578]!, self._r[1578]!, [_0]) } - public var FastTwoStepSetup_HintHelp: String { return self._s[1578]! } - public var VoiceOver_SilentPostOff: String { return self._s[1579]! } - public var WallpaperSearch_ColorRed: String { return self._s[1580]! } - public var Watch_ConnectionDescription: String { return self._s[1581]! } - public var Notification_Exceptions_AddException: String { return self._s[1582]! } - public var LocalGroup_IrrelevantWarning: String { return self._s[1583]! } - public var VoiceOver_MessageContextDelete: String { return self._s[1584]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1585]! } - public var Passport_PasswordPlaceholder: String { return self._s[1586]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[1587]! } - public var Stats_MessageInteractionsTitle: String { return self._s[1588]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[1589]! } - public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1591]! } - public var Channel_AdminLog_PinMessages: String { return self._s[1592]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[1594]! } - public var Watch_Message_Game: String { return self._s[1595]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1596]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[1597]! } - public var EditTheme_FileReadError: String { return self._s[1598]! } - public var Group_ErrorAddBlocked: String { return self._s[1599]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1600]! } + public var FastTwoStepSetup_HintHelp: String { return self._s[1579]! } + public var VoiceOver_SilentPostOff: String { return self._s[1580]! } + public var WallpaperSearch_ColorRed: String { return self._s[1581]! } + public var Watch_ConnectionDescription: String { return self._s[1582]! } + public var Notification_Exceptions_AddException: String { return self._s[1583]! } + public var LocalGroup_IrrelevantWarning: String { return self._s[1584]! } + public var VoiceOver_MessageContextDelete: String { return self._s[1585]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1586]! } + public var Passport_PasswordPlaceholder: String { return self._s[1587]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[1588]! } + public var Stats_MessageInteractionsTitle: String { return self._s[1589]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[1590]! } + public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1592]! } + public var Channel_AdminLog_PinMessages: String { return self._s[1593]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[1595]! } + public var Watch_Message_Game: String { return self._s[1596]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1597]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[1598]! } + public var EditTheme_FileReadError: String { return self._s[1599]! } + public var Group_ErrorAddBlocked: String { return self._s[1600]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1601]! } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1602]!, self._r[1602]!, [_1]) + return formatWithArgumentRanges(self._s[1603]!, self._r[1603]!, [_1]) } - public var GroupRemoved_ViewChannelInfo: String { return self._s[1603]! } + public var GroupRemoved_ViewChannelInfo: String { return self._s[1604]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1604]!, self._r[1604]!, [_0]) + return formatWithArgumentRanges(self._s[1605]!, self._r[1605]!, [_0]) } - public var CheckoutInfo_ShippingInfoAddress2Placeholder: String { return self._s[1605]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[1606]! } + public var CheckoutInfo_ShippingInfoAddress2Placeholder: String { return self._s[1606]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[1607]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1607]!, self._r[1607]!, [_0]) + return formatWithArgumentRanges(self._s[1608]!, self._r[1608]!, [_0]) } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[1608]! } - public var Bot_GroupStatusReadsHistory: String { return self._s[1609]! } - public var PhotoEditor_CurvesRed: String { return self._s[1610]! } - public var InstantPage_TapToOpenLink: String { return self._s[1611]! } - public var InviteLink_PeopleJoinedShortNoneExpired: String { return self._s[1612]! } - public var FastTwoStepSetup_PasswordHelp: String { return self._s[1613]! } - public var Conversation_DiscussionNotStarted: String { return self._s[1614]! } - public var Notification_CallMissedShort: String { return self._s[1615]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[1609]! } + public var Bot_GroupStatusReadsHistory: String { return self._s[1610]! } + public var PhotoEditor_CurvesRed: String { return self._s[1611]! } + public var InstantPage_TapToOpenLink: String { return self._s[1612]! } + public var InviteLink_PeopleJoinedShortNoneExpired: String { return self._s[1613]! } + public var FastTwoStepSetup_PasswordHelp: String { return self._s[1614]! } + public var Conversation_DiscussionNotStarted: String { return self._s[1615]! } + public var Notification_CallMissedShort: String { return self._s[1616]! } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1616]!, self._r[1616]!, [_0]) + return formatWithArgumentRanges(self._s[1617]!, self._r[1617]!, [_0]) } - public var Conversation_DeleteMessagesForEveryone: String { return self._s[1617]! } - public var VoiceChat_UnpinVideo: String { return self._s[1618]! } - public var Permissions_SiriTitle_v0: String { return self._s[1619]! } - public var GroupInfo_AddUserLeftError: String { return self._s[1620]! } - public var Conversation_SendMessage_SendSilently: String { return self._s[1621]! } - public var Paint_Duplicate: String { return self._s[1622]! } - public var AttachmentMenu_WebSearch: String { return self._s[1623]! } - public var Bot_Stop: String { return self._s[1625]! } - public var Conversation_PrivateChannelTimeLimitedAlertTitle: String { return self._s[1626]! } - public var ReportGroupLocation_Report: String { return self._s[1627]! } - public var Compose_Create: String { return self._s[1628]! } - public var Stats_GroupViewers: String { return self._s[1629]! } - public var AutoDownloadSettings_Channels: String { return self._s[1630]! } - public var PhotoEditor_QualityHigh: String { return self._s[1631]! } - public var VoiceChat_Leave: String { return self._s[1632]! } - public var Call_Speaker: String { return self._s[1633]! } + public var Conversation_DeleteMessagesForEveryone: String { return self._s[1618]! } + public var VoiceChat_UnpinVideo: String { return self._s[1619]! } + public var Permissions_SiriTitle_v0: String { return self._s[1620]! } + public var GroupInfo_AddUserLeftError: String { return self._s[1621]! } + public var Conversation_SendMessage_SendSilently: String { return self._s[1622]! } + public var Paint_Duplicate: String { return self._s[1623]! } + public var AttachmentMenu_WebSearch: String { return self._s[1624]! } + public var Bot_Stop: String { return self._s[1626]! } + public var Conversation_PrivateChannelTimeLimitedAlertTitle: String { return self._s[1627]! } + public var ReportGroupLocation_Report: String { return self._s[1628]! } + public var Compose_Create: String { return self._s[1629]! } + public var Stats_GroupViewers: String { return self._s[1630]! } + public var AutoDownloadSettings_Channels: String { return self._s[1631]! } + public var PhotoEditor_QualityHigh: String { return self._s[1632]! } + public var VoiceChat_Leave: String { return self._s[1633]! } + public var Call_Speaker: String { return self._s[1634]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1634]!, self._r[1634]!, [_0]) + return formatWithArgumentRanges(self._s[1635]!, self._r[1635]!, [_0]) } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[1635]! } - public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1636]! } - public var ChatList_Context_AddToFolder: String { return self._s[1637]! } - public var InviteLink_QRCode_Info: String { return self._s[1638]! } - public var AutoremoveSetup_Title: String { return self._s[1639]! } - public var ChatList_DeleteForAllMembersConfirmationText: String { return self._s[1640]! } - public var Conversation_Unblock: String { return self._s[1641]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[1642]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[1636]! } + public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1637]! } + public var ChatList_Context_AddToFolder: String { return self._s[1638]! } + public var InviteLink_QRCode_Info: String { return self._s[1639]! } + public var AutoremoveSetup_Title: String { return self._s[1640]! } + public var ChatList_DeleteForAllMembersConfirmationText: String { return self._s[1641]! } + public var Conversation_Unblock: String { return self._s[1642]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[1643]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1643]!, self._r[1643]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1644]!, self._r[1644]!, [_1, _2, _3]) } - public var Conversation_ContextMenuReply: String { return self._s[1644]! } - public var Contacts_SearchLabel: String { return self._s[1645]! } - public var Forward_ErrorPublicQuizDisabledInChannels: String { return self._s[1646]! } - public var Stats_GroupMessagesTitle: String { return self._s[1648]! } - public var VoiceChat_NoiseSuppression: String { return self._s[1649]! } - public var Notification_CallCanceled: String { return self._s[1650]! } - public var VoiceOver_Chat_Selected: String { return self._s[1651]! } - public var NotificationsSound_Tremolo: String { return self._s[1653]! } - public var VoiceOver_AuthSessions_CurrentSession: String { return self._s[1654]! } - public var ChatList_Search_NoResultsDescription: String { return self._s[1655]! } - public var AccessDenied_PhotosAndVideos: String { return self._s[1656]! } - public var LogoutOptions_ClearCacheText: String { return self._s[1657]! } + public var Conversation_ContextMenuReply: String { return self._s[1645]! } + public var Contacts_SearchLabel: String { return self._s[1646]! } + public var Forward_ErrorPublicQuizDisabledInChannels: String { return self._s[1647]! } + public var Stats_GroupMessagesTitle: String { return self._s[1649]! } + public var VoiceChat_NoiseSuppression: String { return self._s[1650]! } + public var Notification_CallCanceled: String { return self._s[1651]! } + public var VoiceOver_Chat_Selected: String { return self._s[1652]! } + public var NotificationsSound_Tremolo: String { return self._s[1654]! } + public var VoiceOver_AuthSessions_CurrentSession: String { return self._s[1655]! } + public var ChatList_Search_NoResultsDescription: String { return self._s[1656]! } + public var AccessDenied_PhotosAndVideos: String { return self._s[1657]! } + public var LogoutOptions_ClearCacheText: String { return self._s[1658]! } public func VoiceChat_DisplayAsSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1659]!, self._r[1659]!, [_0]) + return formatWithArgumentRanges(self._s[1660]!, self._r[1660]!, [_0]) } - public var VoiceOver_Chat_Sticker: String { return self._s[1660]! } - public var ChatListFolder_NameUnread: String { return self._s[1661]! } - public var PeerInfo_ButtonMessage: String { return self._s[1663]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[1664]! } - public var Settings_KeepPassword: String { return self._s[1665]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[1666]! } - public var ChatSettings_Other: String { return self._s[1667]! } - public var UserInfo_NotificationsEnabled: String { return self._s[1668]! } - public var CreatePoll_OptionsHeader: String { return self._s[1669]! } - public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1672]! } - public var Channel_Moderator_Title: String { return self._s[1673]! } + public var VoiceOver_Chat_Sticker: String { return self._s[1661]! } + public var ChatListFolder_NameUnread: String { return self._s[1662]! } + public var PeerInfo_ButtonMessage: String { return self._s[1664]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[1665]! } + public var Settings_KeepPassword: String { return self._s[1666]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[1667]! } + public var ChatSettings_Other: String { return self._s[1668]! } + public var UserInfo_NotificationsEnabled: String { return self._s[1669]! } + public var CreatePoll_OptionsHeader: String { return self._s[1670]! } + public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1673]! } + public var Channel_Moderator_Title: String { return self._s[1674]! } public func Conversation_ForwardTooltip_Chat_Many(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1674]!, self._r[1674]!, [_0]) + return formatWithArgumentRanges(self._s[1675]!, self._r[1675]!, [_0]) } public func UserInfo_ContactForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1675]!, self._r[1675]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1676]!, self._r[1676]!, [_0, _1]) } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[1676]! } - public var WallpaperColors_Title: String { return self._s[1677]! } - public var InviteLink_InviteLink: String { return self._s[1679]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[1680]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[1681]! } - public var Your_card_was_declined: String { return self._s[1682]! } - public var SettingsSearch_FAQ: String { return self._s[1684]! } - public var EditTheme_Expand_Preview_IncomingReplyName: String { return self._s[1685]! } - public var Conversation_ReportSpamConfirmation: String { return self._s[1686]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[1688]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1689]! } - public var Settings_About_Help: String { return self._s[1690]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[1677]! } + public var WallpaperColors_Title: String { return self._s[1678]! } + public var InviteLink_InviteLink: String { return self._s[1680]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[1681]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[1682]! } + public var Your_card_was_declined: String { return self._s[1683]! } + public var SettingsSearch_FAQ: String { return self._s[1685]! } + public var EditTheme_Expand_Preview_IncomingReplyName: String { return self._s[1686]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[1687]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[1689]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1690]! } + public var Settings_About_Help: String { return self._s[1691]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1691]!, self._r[1691]!, [_0]) + return formatWithArgumentRanges(self._s[1692]!, self._r[1692]!, [_0]) } - public var Settings_Proxy: String { return self._s[1692]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1693]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[1695]! } - public var NotificationsSound_Bell: String { return self._s[1696]! } - public var PrivacySettings_Title: String { return self._s[1698]! } - public var PrivacySettings_DataSettings: String { return self._s[1699]! } - public var ConversationMedia_Title: String { return self._s[1700]! } + public var Settings_Proxy: String { return self._s[1693]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1694]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[1696]! } + public var NotificationsSound_Bell: String { return self._s[1697]! } + public var PrivacySettings_Title: String { return self._s[1699]! } + public var PrivacySettings_DataSettings: String { return self._s[1700]! } + public var ConversationMedia_Title: String { return self._s[1701]! } public func Channel_AdminLog_MessageAddedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1701]!, self._r[1701]!, [_1]) + return formatWithArgumentRanges(self._s[1702]!, self._r[1702]!, [_1]) } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1702]!, self._r[1702]!, [_0]) + return formatWithArgumentRanges(self._s[1703]!, self._r[1703]!, [_0]) } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[1703]! } - public var ReportPeer_ReasonPornography: String { return self._s[1705]! } - public var Privacy_Calls: String { return self._s[1707]! } - public var TwoFactorSetup_Email_Text: String { return self._s[1708]! } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1709]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[1704]! } + public var ReportPeer_ReasonPornography: String { return self._s[1706]! } + public var Privacy_Calls: String { return self._s[1708]! } + public var TwoFactorSetup_Email_Text: String { return self._s[1709]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1710]! } public func VoiceOver_Chat_MusicTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1710]!, self._r[1710]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1711]!, self._r[1711]!, [_1, _2]) } - public var Passport_Identity_FrontSideHelp: String { return self._s[1711]! } - public var InstantPage_VoiceOver_DecreaseFontSize: String { return self._s[1712]! } - public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1714]! } - public var ContactList_Context_VideoCall: String { return self._s[1715]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1716]! } - public var Passport_Identity_MiddleName: String { return self._s[1717]! } - public var MessagePoll_QuizNoUsers: String { return self._s[1718]! } + public var Passport_Identity_FrontSideHelp: String { return self._s[1712]! } + public var InstantPage_VoiceOver_DecreaseFontSize: String { return self._s[1713]! } + public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1715]! } + public var ContactList_Context_VideoCall: String { return self._s[1716]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1717]! } + public var Passport_Identity_MiddleName: String { return self._s[1718]! } + public var MessagePoll_QuizNoUsers: String { return self._s[1719]! } public func Channel_AdminLog_MutedParticipant(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1719]!, self._r[1719]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1720]!, self._r[1720]!, [_1, _2]) } - public var OldChannels_ChannelFormat: String { return self._s[1720]! } - public var Watch_Message_Call: String { return self._s[1721]! } - public var VoiceChat_OpenChannel: String { return self._s[1722]! } - public var Wallpaper_Title: String { return self._s[1723]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[1724]! } - public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1725]! } - public var ReportGroupLocation_Text: String { return self._s[1726]! } - public var InviteText_URL: String { return self._s[1727]! } - public var ClearCache_StorageServiceFiles: String { return self._s[1728]! } - public var MessageTimer_Custom: String { return self._s[1729]! } - public var Message_PinnedLocationMessage: String { return self._s[1730]! } + public var OldChannels_ChannelFormat: String { return self._s[1721]! } + public var Watch_Message_Call: String { return self._s[1722]! } + public var VoiceChat_OpenChannel: String { return self._s[1723]! } + public var Wallpaper_Title: String { return self._s[1724]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[1725]! } + public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1726]! } + public var ReportGroupLocation_Text: String { return self._s[1727]! } + public var InviteText_URL: String { return self._s[1728]! } + public var ClearCache_StorageServiceFiles: String { return self._s[1729]! } + public var MessageTimer_Custom: String { return self._s[1730]! } + public var Message_PinnedLocationMessage: String { return self._s[1731]! } public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1731]!, self._r[1731]!, [_0]) + return formatWithArgumentRanges(self._s[1732]!, self._r[1732]!, [_0]) } - public var EditTheme_UploadNewTheme: String { return self._s[1732]! } - public var ChatImportActivity_ErrorLimitExceeded: String { return self._s[1735]! } + public var EditTheme_UploadNewTheme: String { return self._s[1733]! } + public var ChatImportActivity_ErrorLimitExceeded: String { return self._s[1736]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1736]!, self._r[1736]!, [_0]) + return formatWithArgumentRanges(self._s[1737]!, self._r[1737]!, [_0]) } - public var Login_CodeSentCall: String { return self._s[1738]! } + public var Login_CodeSentCall: String { return self._s[1739]! } public func Conversation_AutoremoveTimerSetUser(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1739]!, self._r[1739]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1740]!, self._r[1740]!, [_1, _2]) } - public var Conversation_Report: String { return self._s[1740]! } - public var NotificationSettings_ContactJoined: String { return self._s[1741]! } + public var Conversation_Report: String { return self._s[1741]! } + public var NotificationSettings_ContactJoined: String { return self._s[1742]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1742]!, self._r[1742]!, [_1]) + return formatWithArgumentRanges(self._s[1743]!, self._r[1743]!, [_1]) } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[1743]! } - public var BroadcastGroups_IntroText: String { return self._s[1744]! } - public var IntentsSettings_SuggestByAll: String { return self._s[1746]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[1747]! } - public var AuthSessions_Title: String { return self._s[1748]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[1744]! } + public var BroadcastGroups_IntroText: String { return self._s[1745]! } + public var IntentsSettings_SuggestByAll: String { return self._s[1747]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[1748]! } + public var AuthSessions_Title: String { return self._s[1749]! } public func Notification_VoiceChatEnded(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1749]!, self._r[1749]!, [_0]) + return formatWithArgumentRanges(self._s[1750]!, self._r[1750]!, [_0]) } - public var Settings_Tips: String { return self._s[1750]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1751]! } - public var WallpaperPreview_WallpaperColors: String { return self._s[1752]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1753]! } - public var VoiceChat_YouCanNowSpeak: String { return self._s[1756]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[1758]! } + public var Settings_Tips: String { return self._s[1751]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1752]! } + public var WallpaperPreview_WallpaperColors: String { return self._s[1753]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1754]! } + public var VoiceChat_YouCanNowSpeak: String { return self._s[1757]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[1759]! } public func UserInfo_LinkForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1759]!, self._r[1759]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1760]!, self._r[1760]!, [_0, _1]) } - public var AutoDownloadSettings_MaxVideoSize: String { return self._s[1760]! } - public var ExplicitContent_AlertTitle: String { return self._s[1761]! } - public var Channel_UpdatePhotoItem: String { return self._s[1763]! } - public var ChatList_AutoarchiveSuggestion_Text: String { return self._s[1765]! } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[1766]! } + public var AutoDownloadSettings_MaxVideoSize: String { return self._s[1761]! } + public var ExplicitContent_AlertTitle: String { return self._s[1762]! } + public var Channel_UpdatePhotoItem: String { return self._s[1764]! } + public var ChatList_AutoarchiveSuggestion_Text: String { return self._s[1766]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[1767]! } public func Call_BatteryLow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1767]!, self._r[1767]!, [_0]) + return formatWithArgumentRanges(self._s[1768]!, self._r[1768]!, [_0]) } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[1768]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[1769]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1770]! } - public var CommentsGroup_ErrorAccessDenied: String { return self._s[1771]! } - public var Appearance_AccentColor: String { return self._s[1773]! } - public var GroupInfo_SharedMedia: String { return self._s[1774]! } - public var Login_PhonePlaceholder: String { return self._s[1775]! } - public var Appearance_TextSize_Automatic: String { return self._s[1776]! } - public var EmptyGroupInfo_Line2: String { return self._s[1777]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[1769]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[1770]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1771]! } + public var CommentsGroup_ErrorAccessDenied: String { return self._s[1772]! } + public var Appearance_AccentColor: String { return self._s[1774]! } + public var GroupInfo_SharedMedia: String { return self._s[1775]! } + public var Login_PhonePlaceholder: String { return self._s[1776]! } + public var Appearance_TextSize_Automatic: String { return self._s[1777]! } + public var EmptyGroupInfo_Line2: String { return self._s[1778]! } public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1778]!, self._r[1778]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1779]!, self._r[1779]!, [_1, _2]) } - public var VoiceChat_TapToAddPhotoOrBio: String { return self._s[1779]! } - public var Conversation_ClearChannel: String { return self._s[1780]! } - public var Conversation_MessageDoesntExist: String { return self._s[1781]! } - public var Appearance_AppIconDefaultX: String { return self._s[1783]! } - public var EditProfile_NameAndPhotoOrVideoHelp: String { return self._s[1784]! } - public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[1785]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1786]! } + public var VoiceChat_TapToAddPhotoOrBio: String { return self._s[1780]! } + public var Conversation_ClearChannel: String { return self._s[1781]! } + public var Conversation_MessageDoesntExist: String { return self._s[1782]! } + public var Appearance_AppIconDefaultX: String { return self._s[1784]! } + public var EditProfile_NameAndPhotoOrVideoHelp: String { return self._s[1785]! } + public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[1786]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1787]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1787]!, self._r[1787]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1788]!, self._r[1788]!, [_1, _2]) } - public var ChatList_EmptyChatListEditFilter: String { return self._s[1788]! } - public var ChatSettings_ConnectionType_UseProxy: String { return self._s[1791]! } - public var Chat_PinnedMessagesHiddenText: String { return self._s[1792]! } + public var ChatList_EmptyChatListEditFilter: String { return self._s[1789]! } + public var ChatSettings_ConnectionType_UseProxy: String { return self._s[1792]! } + public var Chat_PinnedMessagesHiddenText: String { return self._s[1793]! } public func Message_PinnedGenericMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1793]!, self._r[1793]!, [_0]) - } - public func Location_ProximityTip(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1794]!, self._r[1794]!, [_0]) } - public var UserInfo_NotificationsEnable: String { return self._s[1795]! } - public var Checkout_PayWithTouchId: String { return self._s[1796]! } - public var SharedMedia_ViewInChat: String { return self._s[1797]! } - public func Notification_CreatedChatWithTitle(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1798]!, self._r[1798]!, [_0, _1]) + public func Location_ProximityTip(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1795]!, self._r[1795]!, [_0]) } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1799]! } + public var UserInfo_NotificationsEnable: String { return self._s[1796]! } + public var Checkout_PayWithTouchId: String { return self._s[1797]! } + public var SharedMedia_ViewInChat: String { return self._s[1798]! } + public func Notification_CreatedChatWithTitle(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1799]!, self._r[1799]!, [_0, _1]) + } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1800]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1800]!, self._r[1800]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1801]!, self._r[1801]!, [_1, _2]) } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1802]!, self._r[1802]!, [_0]) + return formatWithArgumentRanges(self._s[1803]!, self._r[1803]!, [_0]) } - public var Conversation_PeerNearbyText: String { return self._s[1804]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[1805]! } - public var PhotoEditor_Skip: String { return self._s[1806]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[1807]! } - public var ChatList_EmptyChatList: String { return self._s[1808]! } - public var Channel_BanUser_Unban: String { return self._s[1809]! } + public var Conversation_PeerNearbyText: String { return self._s[1805]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[1806]! } + public var PhotoEditor_Skip: String { return self._s[1807]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[1808]! } + public var ChatList_EmptyChatList: String { return self._s[1809]! } + public var Channel_BanUser_Unban: String { return self._s[1810]! } public func Message_GenericForwardedPsa(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1810]!, self._r[1810]!, [_0]) + return formatWithArgumentRanges(self._s[1811]!, self._r[1811]!, [_0]) } - public var Appearance_TextSize_Apply: String { return self._s[1811]! } + public var Appearance_TextSize_Apply: String { return self._s[1812]! } public func Conversation_MessageViewCommentsFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1812]!, self._r[1812]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1813]!, self._r[1813]!, [_1, _2]) } - public var Login_InfoFirstNamePlaceholder: String { return self._s[1813]! } - public var VoiceOver_Chat_YourSticker: String { return self._s[1814]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1815]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1817]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1818]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[1819]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[1814]! } + public var VoiceOver_Chat_YourSticker: String { return self._s[1815]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1816]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1818]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1819]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[1820]! } public func PUSH_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1820]!, self._r[1820]!, [_1]) + return formatWithArgumentRanges(self._s[1821]!, self._r[1821]!, [_1]) } - public var VoiceOver_Chat_GoToOriginalMessage: String { return self._s[1822]! } - public var State_WaitingForNetwork: String { return self._s[1823]! } - public var AccessDenied_CameraRestricted: String { return self._s[1824]! } - public var ChatSettings_Appearance: String { return self._s[1825]! } - public var ScheduledMessages_BotActionUnavailable: String { return self._s[1826]! } - public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[1827]! } - public var Channel_DiscussionGroupAdd: String { return self._s[1828]! } - public var Conversation_SelectMessages: String { return self._s[1830]! } - public var Map_NoPlacesNearby: String { return self._s[1831]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1832]! } - public var GroupRemoved_Title: String { return self._s[1833]! } - public var ImportStickerPack_RemoveFromImport: String { return self._s[1834]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1836]! } - public var VoiceChat_Mute: String { return self._s[1837]! } - public var Paint_Marker: String { return self._s[1838]! } - public var Widget_ChatsGalleryTitle: String { return self._s[1839]! } + public var VoiceOver_Chat_GoToOriginalMessage: String { return self._s[1823]! } + public var State_WaitingForNetwork: String { return self._s[1824]! } + public var AccessDenied_CameraRestricted: String { return self._s[1825]! } + public var ChatSettings_Appearance: String { return self._s[1826]! } + public var ScheduledMessages_BotActionUnavailable: String { return self._s[1827]! } + public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[1828]! } + public var Channel_DiscussionGroupAdd: String { return self._s[1829]! } + public var Conversation_SelectMessages: String { return self._s[1831]! } + public var Map_NoPlacesNearby: String { return self._s[1832]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1833]! } + public var GroupRemoved_Title: String { return self._s[1834]! } + public var ImportStickerPack_RemoveFromImport: String { return self._s[1835]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1837]! } + public var VoiceChat_Mute: String { return self._s[1838]! } + public var Paint_Marker: String { return self._s[1839]! } + public var Widget_ChatsGalleryTitle: String { return self._s[1840]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1840]!, self._r[1840]!, [_1]) + return formatWithArgumentRanges(self._s[1841]!, self._r[1841]!, [_1]) } - public var SocksProxySetup_ShareProxyList: String { return self._s[1841]! } - public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[1842]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[1842]! } + public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[1843]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1843]!, self._r[1843]!, [_0]) + return formatWithArgumentRanges(self._s[1844]!, self._r[1844]!, [_0]) } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[1844]! } - public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[1845]! } - public var Notifications_GroupNotificationsAlert: String { return self._s[1846]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[1847]! } - public var Compose_NewGroup: String { return self._s[1849]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[1845]! } + public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[1846]! } + public var Notifications_GroupNotificationsAlert: String { return self._s[1847]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[1848]! } + public var Compose_NewGroup: String { return self._s[1850]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1850]!, self._r[1850]!, [_0]) + return formatWithArgumentRanges(self._s[1851]!, self._r[1851]!, [_0]) } - public var Location_LiveLocationRequired_Description: String { return self._s[1852]! } - public var Conversation_ClearGroupHistory: String { return self._s[1853]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1856]! } - public var VoiceOver_BotKeyboard: String { return self._s[1857]! } - public var Channel_BanUser_BlockFor: String { return self._s[1858]! } - public var Bot_Start: String { return self._s[1859]! } - public var Your_card_has_expired: String { return self._s[1860]! } - public var Channel_About_Title: String { return self._s[1861]! } - public var VoiceChat_EditTitleTitle: String { return self._s[1862]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1863]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[1865]! } - public var Conversation_FileDropbox: String { return self._s[1866]! } - public var ChatList_Search_NoResultsFitlerMusic: String { return self._s[1867]! } - public var Month_GenNovember: String { return self._s[1868]! } - public var IntentsSettings_SuggestByShare: String { return self._s[1869]! } + public var Location_LiveLocationRequired_Description: String { return self._s[1853]! } + public var Conversation_ClearGroupHistory: String { return self._s[1854]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1857]! } + public var VoiceOver_BotKeyboard: String { return self._s[1858]! } + public var Channel_BanUser_BlockFor: String { return self._s[1859]! } + public var Bot_Start: String { return self._s[1860]! } + public var Your_card_has_expired: String { return self._s[1861]! } + public var Channel_About_Title: String { return self._s[1862]! } + public var VoiceChat_EditTitleTitle: String { return self._s[1863]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1864]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[1866]! } + public var Conversation_FileDropbox: String { return self._s[1867]! } + public var ChatList_Search_NoResultsFitlerMusic: String { return self._s[1868]! } + public var Month_GenNovember: String { return self._s[1869]! } + public var IntentsSettings_SuggestByShare: String { return self._s[1870]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1870]!, self._r[1870]!, [_0]) + return formatWithArgumentRanges(self._s[1871]!, self._r[1871]!, [_0]) } - public var StickerPack_Add: String { return self._s[1871]! } - public var Theme_ErrorNotFound: String { return self._s[1872]! } - public var Wallpaper_SearchShort: String { return self._s[1874]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1875]! } - public var ConversationProfile_UsersTooMuchError: String { return self._s[1876]! } - public var ChatList_FolderAllChats: String { return self._s[1877]! } - public var VoiceChat_EndConfirmationEnd: String { return self._s[1878]! } - public var Passport_Authorize: String { return self._s[1879]! } + public var StickerPack_Add: String { return self._s[1872]! } + public var Theme_ErrorNotFound: String { return self._s[1873]! } + public var Wallpaper_SearchShort: String { return self._s[1875]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1876]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[1877]! } + public var ChatList_FolderAllChats: String { return self._s[1878]! } + public var VoiceChat_EndConfirmationEnd: String { return self._s[1879]! } + public var Passport_Authorize: String { return self._s[1880]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1880]!, self._r[1880]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1881]!, self._r[1881]!, [_1, _2]) } - public var GroupInfo_GroupHistoryVisible: String { return self._s[1881]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[1882]! } public func PUSH_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1882]!, self._r[1882]!, [_1]) + return formatWithArgumentRanges(self._s[1883]!, self._r[1883]!, [_1]) } - public var LocalGroup_ButtonTitle: String { return self._s[1883]! } - public var VoiceOver_Stickers: String { return self._s[1885]! } - public var UserInfo_GroupsInCommon: String { return self._s[1886]! } - public var LoginPassword_Title: String { return self._s[1888]! } - public var Wallpaper_Set: String { return self._s[1889]! } - public var Stats_InteractionsTitle: String { return self._s[1890]! } + public var LocalGroup_ButtonTitle: String { return self._s[1884]! } + public var VoiceOver_Stickers: String { return self._s[1886]! } + public var UserInfo_GroupsInCommon: String { return self._s[1887]! } + public var LoginPassword_Title: String { return self._s[1889]! } + public var Wallpaper_Set: String { return self._s[1890]! } + public var Stats_InteractionsTitle: String { return self._s[1891]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1892]!, self._r[1892]!, [_0]) + return formatWithArgumentRanges(self._s[1893]!, self._r[1893]!, [_0]) } - public var Conversation_MessageDialogEdit: String { return self._s[1893]! } - public var Paint_Outlined: String { return self._s[1894]! } + public var Conversation_MessageDialogEdit: String { return self._s[1894]! } + public var Paint_Outlined: String { return self._s[1895]! } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1895]!, self._r[1895]!, [_0]) - } - public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1896]!, self._r[1896]!, [_0]) } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1897]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1898]! } - public var Appearance_ColorThemeNight: String { return self._s[1899]! } - public var ChannelInfo_Stats: String { return self._s[1900]! } - public var Widget_ShortcutsGalleryTitle: String { return self._s[1901]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1902]! } - public var MediaPicker_TimerTooltip: String { return self._s[1903]! } - public var ChatImportActivity_ErrorNotAdmin: String { return self._s[1904]! } - public var Common_ChoosePhoto: String { return self._s[1905]! } - public var Media_LimitedAccessTitle: String { return self._s[1906]! } - public var ChatSettings_AutoDownloadVideos: String { return self._s[1907]! } - public var PeerInfo_PaneGroups: String { return self._s[1908]! } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[1910]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1911]! } - public var ContactInfo_PhoneLabelMobile: String { return self._s[1912]! } - public var OldChannels_ChannelsHeader: String { return self._s[1913]! } - public var MuteFor_Forever: String { return self._s[1914]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[1915]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1917]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1918]! } - public var ContactInfo_Job: String { return self._s[1919]! } - public var Passport_Language_mk: String { return self._s[1920]! } - public var EditTheme_ShortLink: String { return self._s[1921]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1924]! } - public var Month_GenApril: String { return self._s[1926]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[1928]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1929]! } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[1930]! } - public var EditTheme_Title: String { return self._s[1931]! } - public var Conversation_LinkDialogCopy: String { return self._s[1932]! } + public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1897]!, self._r[1897]!, [_0]) + } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1898]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1899]! } + public var Appearance_ColorThemeNight: String { return self._s[1900]! } + public var ChannelInfo_Stats: String { return self._s[1901]! } + public var Widget_ShortcutsGalleryTitle: String { return self._s[1902]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1903]! } + public var MediaPicker_TimerTooltip: String { return self._s[1904]! } + public var ChatImportActivity_ErrorNotAdmin: String { return self._s[1905]! } + public var Common_ChoosePhoto: String { return self._s[1906]! } + public var Media_LimitedAccessTitle: String { return self._s[1907]! } + public var ChatSettings_AutoDownloadVideos: String { return self._s[1908]! } + public var PeerInfo_PaneGroups: String { return self._s[1909]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[1911]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1912]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[1913]! } + public var OldChannels_ChannelsHeader: String { return self._s[1914]! } + public var MuteFor_Forever: String { return self._s[1915]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[1916]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1918]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1919]! } + public var ContactInfo_Job: String { return self._s[1920]! } + public var Passport_Language_mk: String { return self._s[1921]! } + public var EditTheme_ShortLink: String { return self._s[1922]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1925]! } + public var Month_GenApril: String { return self._s[1927]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[1929]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1930]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[1931]! } + public var EditTheme_Title: String { return self._s[1932]! } + public var Conversation_LinkDialogCopy: String { return self._s[1933]! } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1933]!, self._r[1933]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1934]!, self._r[1934]!, [_1, _2]) } - public var Passport_ForgottenPassword: String { return self._s[1934]! } - public var WallpaperSearch_Recent: String { return self._s[1935]! } - public var ChatSettings_Title: String { return self._s[1940]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1941]! } + public var Passport_ForgottenPassword: String { return self._s[1935]! } + public var WallpaperSearch_Recent: String { return self._s[1936]! } + public var ChatSettings_Title: String { return self._s[1941]! } + public var Appearance_ReduceMotionInfo: String { return self._s[1942]! } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1942]!, self._r[1942]!, [_0]) + return formatWithArgumentRanges(self._s[1943]!, self._r[1943]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[1943]! } - public var LastSeen_WithinAMonth: String { return self._s[1944]! } - public var VoiceChat_Live: String { return self._s[1945]! } - public var PeerInfo_ButtonCall: String { return self._s[1946]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[1947]! } - public var Group_Username_InvalidStartsWithNumber: String { return self._s[1948]! } - public var Call_AudioRouteHide: String { return self._s[1949]! } - public var DialogList_SavedMessages: String { return self._s[1950]! } - public var ChatList_Context_Mute: String { return self._s[1951]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[1952]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[1944]! } + public var LastSeen_WithinAMonth: String { return self._s[1945]! } + public var VoiceChat_Live: String { return self._s[1946]! } + public var PeerInfo_ButtonCall: String { return self._s[1947]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[1948]! } + public var Group_Username_InvalidStartsWithNumber: String { return self._s[1949]! } + public var Call_AudioRouteHide: String { return self._s[1950]! } + public var DialogList_SavedMessages: String { return self._s[1951]! } + public var ChatList_Context_Mute: String { return self._s[1952]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[1953]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1953]!, self._r[1953]!, [_0]) + return formatWithArgumentRanges(self._s[1954]!, self._r[1954]!, [_0]) } - public var VoiceChat_StatusMutedForYou: String { return self._s[1954]! } - public var Passport_Language_et: String { return self._s[1955]! } - public var Conversation_MessageLeaveCommentShort: String { return self._s[1956]! } - public var PhotoEditor_CropReset: String { return self._s[1957]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[1958]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[1959]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[1960]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1963]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1965]! } - public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[1966]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[1968]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[1970]! } - public var Map_YouAreHere: String { return self._s[1972]! } - public var Core_ServiceUserStatus: String { return self._s[1973]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1976]! } - public var VoiceChat_StartRecording: String { return self._s[1977]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[1978]! } - public var MediaPicker_Videos: String { return self._s[1980]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[1982]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1983]! } - public var SharedMedia_CategoryMedia: String { return self._s[1984]! } + public var VoiceChat_StatusMutedForYou: String { return self._s[1955]! } + public var Passport_Language_et: String { return self._s[1956]! } + public var Conversation_MessageLeaveCommentShort: String { return self._s[1957]! } + public var PhotoEditor_CropReset: String { return self._s[1958]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[1959]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[1960]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[1961]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1964]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1966]! } + public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[1967]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[1969]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[1971]! } + public var Map_YouAreHere: String { return self._s[1973]! } + public var Core_ServiceUserStatus: String { return self._s[1974]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1977]! } + public var VoiceChat_StartRecording: String { return self._s[1978]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[1979]! } + public var MediaPicker_Videos: String { return self._s[1981]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[1983]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1984]! } + public var SharedMedia_CategoryMedia: String { return self._s[1985]! } public func MediaPicker_Nof(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1985]!, self._r[1985]!, [_0]) + return formatWithArgumentRanges(self._s[1986]!, self._r[1986]!, [_0]) } - public var ChatSettings_AutoPlayGifs: String { return self._s[1986]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[1987]! } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[1988]! } - public var Conversation_JoinVoiceChatAsListener: String { return self._s[1989]! } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1990]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[1987]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[1988]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[1989]! } + public var Conversation_JoinVoiceChatAsListener: String { return self._s[1990]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1991]! } public func Chat_SlowmodeTooltip(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1991]!, self._r[1991]!, [_0]) + return formatWithArgumentRanges(self._s[1992]!, self._r[1992]!, [_0]) } - public var Web_Error: String { return self._s[1992]! } - public var PhotoEditor_SkinTool: String { return self._s[1993]! } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[1994]! } - public var AutoremoveSetup_TimerInfoChat: String { return self._s[1995]! } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[1997]! } - public var PasscodeSettings_Help: String { return self._s[1998]! } - public var Appearance_ColorTheme: String { return self._s[1999]! } + public var Web_Error: String { return self._s[1993]! } + public var PhotoEditor_SkinTool: String { return self._s[1994]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[1995]! } + public var AutoremoveSetup_TimerInfoChat: String { return self._s[1996]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[1998]! } + public var PasscodeSettings_Help: String { return self._s[1999]! } + public var Appearance_ColorTheme: String { return self._s[2000]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2000]!, self._r[2000]!, [_0]) + return formatWithArgumentRanges(self._s[2001]!, self._r[2001]!, [_0]) } - public var InviteLink_DeleteAllRevokedLinks: String { return self._s[2001]! } + public var InviteLink_DeleteAllRevokedLinks: String { return self._s[2002]! } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2002]!, self._r[2002]!, [_1]) + return formatWithArgumentRanges(self._s[2003]!, self._r[2003]!, [_1]) } - public var InviteLink_QRCode_Title: String { return self._s[2003]! } - public var GroupInfo_LeftStatus: String { return self._s[2004]! } - public var EditTheme_Preview: String { return self._s[2005]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[2006]! } + public var InviteLink_QRCode_Title: String { return self._s[2004]! } + public var GroupInfo_LeftStatus: String { return self._s[2005]! } + public var EditTheme_Preview: String { return self._s[2006]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[2007]! } public func AutoDownloadSettings_PreloadVideoInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2007]!, self._r[2007]!, [_0]) + return formatWithArgumentRanges(self._s[2008]!, self._r[2008]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[2008]! } - public var VoiceChat_StatusWantsToSpeak: String { return self._s[2009]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[2010]! } - public var ChatList_Context_MarkAsUnread: String { return self._s[2011]! } - public var DialogList_AdNoticeAlert: String { return self._s[2012]! } - public var UserInfo_Invite: String { return self._s[2013]! } - public var Checkout_Email: String { return self._s[2014]! } - public var Stats_GroupActionsTitle: String { return self._s[2015]! } - public var Coub_TapForSound: String { return self._s[2016]! } - public var Conversation_AutoremoveTimerRemovedUserYou: String { return self._s[2017]! } - public var Theme_ThemeChangedText: String { return self._s[2018]! } - public var Call_ExternalCallInProgressMessage: String { return self._s[2019]! } - public var AutoremoveSetup_TimerInfoChannel: String { return self._s[2020]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[2021]! } - public var ScheduledMessages_ScheduledToday: String { return self._s[2022]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[2023]! } + public var NotificationsSound_Keys: String { return self._s[2009]! } + public var VoiceChat_StatusWantsToSpeak: String { return self._s[2010]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[2011]! } + public var ChatList_Context_MarkAsUnread: String { return self._s[2012]! } + public var DialogList_AdNoticeAlert: String { return self._s[2013]! } + public var UserInfo_Invite: String { return self._s[2014]! } + public var Checkout_Email: String { return self._s[2015]! } + public var Stats_GroupActionsTitle: String { return self._s[2016]! } + public var Coub_TapForSound: String { return self._s[2017]! } + public var Conversation_AutoremoveTimerRemovedUserYou: String { return self._s[2018]! } + public var Theme_ThemeChangedText: String { return self._s[2019]! } + public var Call_ExternalCallInProgressMessage: String { return self._s[2020]! } + public var AutoremoveSetup_TimerInfoChannel: String { return self._s[2021]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[2022]! } + public var ScheduledMessages_ScheduledToday: String { return self._s[2023]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[2024]! } public func VoiceChat_InviteMemberToChannelFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2024]!, self._r[2024]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2025]!, self._r[2025]!, [_1, _2]) } - public var Call_ReportIncludeLogDescription: String { return self._s[2025]! } - public var Settings_FrequentlyAskedQuestions: String { return self._s[2027]! } - public var Call_VoiceOver_VoiceCallMissed: String { return self._s[2028]! } - public var Channel_MessagePhotoRemoved: String { return self._s[2029]! } - public var Passport_Email_Delete: String { return self._s[2030]! } + public var Call_ReportIncludeLogDescription: String { return self._s[2026]! } + public var Settings_FrequentlyAskedQuestions: String { return self._s[2028]! } + public var Call_VoiceOver_VoiceCallMissed: String { return self._s[2029]! } + public var Channel_MessagePhotoRemoved: String { return self._s[2030]! } + public var Passport_Email_Delete: String { return self._s[2031]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2031]!, self._r[2031]!, [_1]) + return formatWithArgumentRanges(self._s[2032]!, self._r[2032]!, [_1]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2032]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2033]! } public func Conversation_AutoremoveTimerRemovedUser(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2033]!, self._r[2033]!, [_1]) + return formatWithArgumentRanges(self._s[2034]!, self._r[2034]!, [_1]) } - public var Channel_AdminLog_CanAddAdmins: String { return self._s[2034]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[2036]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[2037]! } - public var Common_of: String { return self._s[2038]! } - public var VoiceChat_CreateNewVoiceChatText: String { return self._s[2039]! } - public var VoiceChat_StartRecordingStart: String { return self._s[2040]! } - public var PeerInfo_ButtonUnmute: String { return self._s[2043]! } + public var Channel_AdminLog_CanAddAdmins: String { return self._s[2035]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[2037]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[2038]! } + public var Common_of: String { return self._s[2039]! } + public var VoiceChat_CreateNewVoiceChatText: String { return self._s[2040]! } + public var VoiceChat_StartRecordingStart: String { return self._s[2041]! } + public var PeerInfo_ButtonUnmute: String { return self._s[2044]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2044]!, self._r[2044]!, [_0]) + return formatWithArgumentRanges(self._s[2045]!, self._r[2045]!, [_0]) } - public var Privacy_ContactsReset_ContactsDeleted: String { return self._s[2045]! } - public var ChatList_AddChatsToFolder: String { return self._s[2046]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2047]! } - public var Settings_Title: String { return self._s[2049]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2051]! } - public var Appearance_BubbleCornersSetting: String { return self._s[2052]! } - public var InviteLink_OtherAdminsLinks: String { return self._s[2053]! } - public var Privacy_Calls_AlwaysAllow: String { return self._s[2054]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[2056]! } - public var WallpaperPreview_CropBottomText: String { return self._s[2057]! } - public var SecretTimer_VideoDescription: String { return self._s[2058]! } - public var VoiceOver_Chat_AnimatedSticker: String { return self._s[2059]! } - public var WallpaperPreview_Blurred: String { return self._s[2060]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2061]! } - public var ChatListFolder_ExcludedSectionHeader: String { return self._s[2063]! } - public var Conversation_CancelForwardSelectChat: String { return self._s[2064]! } - public var DialogList_PasscodeLockHelp: String { return self._s[2065]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2066]! } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2067]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2068]! } - public var Passport_FieldAddressTranslationHelp: String { return self._s[2069]! } - public var SocksProxySetup_Connection: String { return self._s[2070]! } - public var Passport_Address_TypePassportRegistration: String { return self._s[2071]! } - public var Contacts_PermissionsAllowInSettings: String { return self._s[2072]! } - public var Conversation_Unpin: String { return self._s[2073]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[2074]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[2075]! } - public var Call_ReportSkip: String { return self._s[2076]! } + public var Privacy_ContactsReset_ContactsDeleted: String { return self._s[2046]! } + public var ChatList_AddChatsToFolder: String { return self._s[2047]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2048]! } + public var Settings_Title: String { return self._s[2050]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2052]! } + public var Appearance_BubbleCornersSetting: String { return self._s[2053]! } + public var InviteLink_OtherAdminsLinks: String { return self._s[2054]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[2055]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[2057]! } + public var WallpaperPreview_CropBottomText: String { return self._s[2058]! } + public var SecretTimer_VideoDescription: String { return self._s[2059]! } + public var VoiceOver_Chat_AnimatedSticker: String { return self._s[2060]! } + public var WallpaperPreview_Blurred: String { return self._s[2061]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2062]! } + public var ChatListFolder_ExcludedSectionHeader: String { return self._s[2064]! } + public var Conversation_CancelForwardSelectChat: String { return self._s[2065]! } + public var DialogList_PasscodeLockHelp: String { return self._s[2066]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2067]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2068]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2069]! } + public var Passport_FieldAddressTranslationHelp: String { return self._s[2070]! } + public var SocksProxySetup_Connection: String { return self._s[2071]! } + public var Passport_Address_TypePassportRegistration: String { return self._s[2072]! } + public var Contacts_PermissionsAllowInSettings: String { return self._s[2073]! } + public var Conversation_Unpin: String { return self._s[2074]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[2075]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[2076]! } + public var Call_ReportSkip: String { return self._s[2077]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2077]!, self._r[2077]!, [_0]) + return formatWithArgumentRanges(self._s[2078]!, self._r[2078]!, [_0]) } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2079]!, self._r[2079]!, [_0]) + return formatWithArgumentRanges(self._s[2080]!, self._r[2080]!, [_0]) } - public var AutoNightTheme_Automatic: String { return self._s[2080]! } - public var Passport_Language_az: String { return self._s[2082]! } + public var AutoNightTheme_Automatic: String { return self._s[2081]! } + public var Passport_Language_az: String { return self._s[2083]! } public func Conversation_AutoremoveChanged(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2083]!, self._r[2083]!, [_0]) + return formatWithArgumentRanges(self._s[2084]!, self._r[2084]!, [_0]) } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[2084]! } - public var Watch_UserInfo_Unmute: String { return self._s[2085]! } - public var Channel_Stickers_YourStickers: String { return self._s[2086]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2087]! } - public var PeerInfo_AutoremoveMessagesDisabled: String { return self._s[2088]! } - public var Tour_Text1: String { return self._s[2089]! } - public var Common_Delete: String { return self._s[2090]! } - public var Settings_EditPhoto: String { return self._s[2091]! } - public var Common_Edit: String { return self._s[2092]! } - public var ShareMenu_ShareTo: String { return self._s[2094]! } - public var Passport_Identity_ExpiryDate: String { return self._s[2095]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[2085]! } + public var Watch_UserInfo_Unmute: String { return self._s[2086]! } + public var Channel_Stickers_YourStickers: String { return self._s[2087]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2088]! } + public var PeerInfo_AutoremoveMessagesDisabled: String { return self._s[2089]! } + public var Tour_Text1: String { return self._s[2090]! } + public var Common_Delete: String { return self._s[2091]! } + public var Settings_EditPhoto: String { return self._s[2092]! } + public var Common_Edit: String { return self._s[2093]! } + public var ShareMenu_ShareTo: String { return self._s[2095]! } + public var Passport_Identity_ExpiryDate: String { return self._s[2096]! } public func Channel_AdminLog_MutedNewMembers(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2096]!, self._r[2096]!, [_1]) + return formatWithArgumentRanges(self._s[2097]!, self._r[2097]!, [_1]) } - public var Preview_DeleteGif: String { return self._s[2097]! } - public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2098]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2099]! } - public var Conversation_ViewReply: String { return self._s[2100]! } - public var Stats_LoadingText: String { return self._s[2101]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[2102]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2103]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[2104]! } + public var Preview_DeleteGif: String { return self._s[2098]! } + public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2099]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2100]! } + public var Conversation_ViewReply: String { return self._s[2101]! } + public var Stats_LoadingText: String { return self._s[2102]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[2103]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2104]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[2105]! } public func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2105]!, self._r[2105]!, [_0]) - } - public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2106]!, self._r[2106]!, [_0]) } + public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2107]!, self._r[2107]!, [_0]) + } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2108]!, self._r[2108]!, [_0]) + return formatWithArgumentRanges(self._s[2109]!, self._r[2109]!, [_0]) } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[2109]! } - public var InviteLink_Share: String { return self._s[2111]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[2110]! } + public var InviteLink_Share: String { return self._s[2112]! } public func Conversation_ImportProgress(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2113]!, self._r[2113]!, [_0]) + return formatWithArgumentRanges(self._s[2114]!, self._r[2114]!, [_0]) } - public var IntentsSettings_MainAccount: String { return self._s[2114]! } - public var Group_MessagePhotoRemoved: String { return self._s[2117]! } - public var Conversation_ContextMenuSelect: String { return self._s[2118]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2120]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[2121]! } - public var Contacts_PermissionsEnable: String { return self._s[2122]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[2123]! } - public var Common_NotNow: String { return self._s[2124]! } - public var Notification_CreatedChannel: String { return self._s[2125]! } - public var Stats_ViewsBySourceTitle: String { return self._s[2127]! } - public var InviteLink_ContextShare: String { return self._s[2128]! } - public var Appearance_AppIconClassic: String { return self._s[2129]! } - public var PhotoEditor_QualityTool: String { return self._s[2130]! } - public var ClearCache_ClearCache: String { return self._s[2131]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[2132]! } - public var AutoDownloadSettings_Videos: String { return self._s[2133]! } - public var GroupPermission_Duration: String { return self._s[2134]! } - public var ChatList_Read: String { return self._s[2135]! } + public var IntentsSettings_MainAccount: String { return self._s[2115]! } + public var Group_MessagePhotoRemoved: String { return self._s[2118]! } + public var Conversation_ContextMenuSelect: String { return self._s[2119]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2121]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[2122]! } + public var Contacts_PermissionsEnable: String { return self._s[2123]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[2124]! } + public var Common_NotNow: String { return self._s[2125]! } + public var Notification_CreatedChannel: String { return self._s[2126]! } + public var Stats_ViewsBySourceTitle: String { return self._s[2128]! } + public var InviteLink_ContextShare: String { return self._s[2129]! } + public var Appearance_AppIconClassic: String { return self._s[2130]! } + public var PhotoEditor_QualityTool: String { return self._s[2131]! } + public var ClearCache_ClearCache: String { return self._s[2132]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[2133]! } + public var AutoDownloadSettings_Videos: String { return self._s[2134]! } + public var GroupPermission_Duration: String { return self._s[2135]! } + public var ChatList_Read: String { return self._s[2136]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2137]!, self._r[2137]!, [_1, _2]) } public func ScheduleVoiceChat_ScheduleTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2137]!, self._r[2137]!, [_0]) + return formatWithArgumentRanges(self._s[2138]!, self._r[2138]!, [_0]) } - public var CallFeedback_Send: String { return self._s[2138]! } - public var Channel_Stickers_Searching: String { return self._s[2139]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[2140]! } - public var FastTwoStepSetup_HintSection: String { return self._s[2141]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2142]! } - public var EditTheme_CreateTitle: String { return self._s[2144]! } - public var Application_Name: String { return self._s[2145]! } - public var Paint_Stickers: String { return self._s[2146]! } - public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[2147]! } - public var Call_StatusFailed: String { return self._s[2148]! } - public var Stickers_FavoriteStickers: String { return self._s[2149]! } - public var ClearCache_Clear: String { return self._s[2150]! } - public var Passport_Language_mn: String { return self._s[2151]! } - public var WallpaperPreview_PreviewTopText: String { return self._s[2152]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[2153]! } - public var Call_VoiceOver_VideoCallOutgoing: String { return self._s[2155]! } - public var TwoFactorSetup_Hint_Text: String { return self._s[2157]! } - public var WallpaperPreview_PatternIntensity: String { return self._s[2158]! } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2159]! } - public var Passport_Address_AddBankStatement: String { return self._s[2160]! } + public var CallFeedback_Send: String { return self._s[2139]! } + public var Channel_Stickers_Searching: String { return self._s[2140]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[2141]! } + public var FastTwoStepSetup_HintSection: String { return self._s[2142]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2143]! } + public var EditTheme_CreateTitle: String { return self._s[2145]! } + public var Application_Name: String { return self._s[2146]! } + public var Paint_Stickers: String { return self._s[2147]! } + public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[2148]! } + public var Call_StatusFailed: String { return self._s[2149]! } + public var Stickers_FavoriteStickers: String { return self._s[2150]! } + public var ClearCache_Clear: String { return self._s[2151]! } + public var Passport_Language_mn: String { return self._s[2152]! } + public var WallpaperPreview_PreviewTopText: String { return self._s[2153]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[2154]! } + public var Call_VoiceOver_VideoCallOutgoing: String { return self._s[2156]! } + public var TwoFactorSetup_Hint_Text: String { return self._s[2158]! } + public var WallpaperPreview_PatternIntensity: String { return self._s[2159]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2160]! } + public var Passport_Address_AddBankStatement: String { return self._s[2161]! } public func Conversation_TitleRepliesFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2163]!, self._r[2163]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2164]!, self._r[2164]!, [_1, _2]) } - public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2164]! } - public var UserInfo_ShareContact: String { return self._s[2165]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[2166]! } - public var Channel_ErrorAdminsTooMuch: String { return self._s[2168]! } - public var Call_RateCall: String { return self._s[2169]! } - public var Contacts_AccessDeniedError: String { return self._s[2170]! } - public var Invite_ChannelsTooMuch: String { return self._s[2171]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[2172]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[2173]! } - public var InviteLink_Create_TimeLimitInfo: String { return self._s[2174]! } - public var Cache_NoLimit: String { return self._s[2177]! } - public var Conversation_EmptyPlaceholder: String { return self._s[2178]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2182]! } - public var Notification_Exceptions_MessagePreviewAlwaysOff: String { return self._s[2183]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2184]! } - public var Privacy_PaymentsClear_AllInfoCleared: String { return self._s[2185]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[2186]! } + public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2165]! } + public var UserInfo_ShareContact: String { return self._s[2166]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[2167]! } + public var Channel_ErrorAdminsTooMuch: String { return self._s[2169]! } + public var Call_RateCall: String { return self._s[2170]! } + public var Contacts_AccessDeniedError: String { return self._s[2171]! } + public var Invite_ChannelsTooMuch: String { return self._s[2172]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[2173]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[2174]! } + public var InviteLink_Create_TimeLimitInfo: String { return self._s[2175]! } + public var Cache_NoLimit: String { return self._s[2178]! } + public var Conversation_EmptyPlaceholder: String { return self._s[2179]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2183]! } + public var Notification_Exceptions_MessagePreviewAlwaysOff: String { return self._s[2184]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2185]! } + public var Privacy_PaymentsClear_AllInfoCleared: String { return self._s[2186]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[2187]! } public func PUSH_VIDEO_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2187]!, self._r[2187]!, [_1]) + return formatWithArgumentRanges(self._s[2188]!, self._r[2188]!, [_1]) } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2188]! } - public var Theme_ThemeChanged: String { return self._s[2189]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2191]! } - public var AutoDownloadSettings_MediaTypes: String { return self._s[2192]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2189]! } + public var Theme_ThemeChanged: String { return self._s[2190]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2192]! } + public var AutoDownloadSettings_MediaTypes: String { return self._s[2193]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2193]!, self._r[2193]!, [_0]) + return formatWithArgumentRanges(self._s[2194]!, self._r[2194]!, [_0]) } - public var Channel_AdminLog_InfoPanelTitle: String { return self._s[2194]! } - public var Passport_Language_da: String { return self._s[2196]! } - public var Chat_SlowmodeSendError: String { return self._s[2197]! } - public var Application_Update: String { return self._s[2199]! } - public var SocksProxySetup_SaveProxy: String { return self._s[2200]! } + public var Channel_AdminLog_InfoPanelTitle: String { return self._s[2195]! } + public var Passport_Language_da: String { return self._s[2197]! } + public var Chat_SlowmodeSendError: String { return self._s[2198]! } + public var Application_Update: String { return self._s[2200]! } + public var SocksProxySetup_SaveProxy: String { return self._s[2201]! } public func PUSH_AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2201]!, self._r[2201]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2202]!, self._r[2202]!, [_1, _2]) } - public var Privacy_AddNewPeer: String { return self._s[2203]! } - public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[2205]! } - public var Channel_Members_Title: String { return self._s[2206]! } - public var StickerPacks_ActionDelete: String { return self._s[2207]! } - public var Conversation_ScheduledVoiceChat: String { return self._s[2208]! } - public var Settings_LogoutConfirmationText: String { return self._s[2210]! } - public var Chat_UnsendMyMessages: String { return self._s[2211]! } - public var PeerInfo_ReportProfilePhoto: String { return self._s[2212]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2214]! } - public var ChatListFilter_AddChatsTitle: String { return self._s[2215]! } - public var Passport_FloodError: String { return self._s[2216]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[2217]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2218]! } - public var CallSettings_TabIconDescription: String { return self._s[2219]! } - public var Group_Setup_HistoryHeader: String { return self._s[2221]! } + public var Privacy_AddNewPeer: String { return self._s[2204]! } + public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[2206]! } + public var Channel_Members_Title: String { return self._s[2207]! } + public var StickerPacks_ActionDelete: String { return self._s[2208]! } + public var Conversation_ScheduledVoiceChat: String { return self._s[2209]! } + public var Settings_LogoutConfirmationText: String { return self._s[2211]! } + public var Chat_UnsendMyMessages: String { return self._s[2212]! } + public var PeerInfo_ReportProfilePhoto: String { return self._s[2213]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2215]! } + public var ChatListFilter_AddChatsTitle: String { return self._s[2216]! } + public var Passport_FloodError: String { return self._s[2217]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[2218]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2219]! } + public var CallSettings_TabIconDescription: String { return self._s[2220]! } + public var Group_Setup_HistoryHeader: String { return self._s[2222]! } public func Channel_AdminLog_AllowedNewMembersToSpeak(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2222]!, self._r[2222]!, [_1]) + return formatWithArgumentRanges(self._s[2223]!, self._r[2223]!, [_1]) } - public var TwoStepAuth_EmailTitle: String { return self._s[2223]! } - public var GroupInfo_Permissions_Removed: String { return self._s[2224]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[2225]! } - public var Contacts_Title: String { return self._s[2227]! } + public var TwoStepAuth_EmailTitle: String { return self._s[2224]! } + public var GroupInfo_Permissions_Removed: String { return self._s[2225]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[2226]! } + public var Contacts_Title: String { return self._s[2228]! } public func Notification_Invited(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2228]!, self._r[2228]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2229]!, self._r[2229]!, [_0, _1]) } - public var ChatList_PeerTypeBot: String { return self._s[2231]! } + public var ChatList_PeerTypeBot: String { return self._s[2232]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2232]!, self._r[2232]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2233]!, self._r[2233]!, [_1, _2]) } - public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[2233]! } + public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[2234]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2234]!, self._r[2234]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2235]!, self._r[2235]!, [_1, _2, _3]) } - public var Camera_PhotoMode: String { return self._s[2236]! } + public var Camera_PhotoMode: String { return self._s[2237]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2237]!, self._r[2237]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2238]!, self._r[2238]!, [_1, _2, _3]) } - public var ContactInfo_PhoneLabelPager: String { return self._s[2238]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[2239]! } - public var Call_CallAgain: String { return self._s[2240]! } - public var TwoStepAuth_PasswordSet: String { return self._s[2241]! } - public var VoiceChat_EditDescriptionPlaceholder: String { return self._s[2242]! } + public var ContactInfo_PhoneLabelPager: String { return self._s[2239]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[2240]! } + public var Call_CallAgain: String { return self._s[2241]! } + public var TwoStepAuth_PasswordSet: String { return self._s[2242]! } + public var VoiceChat_EditDescriptionPlaceholder: String { return self._s[2243]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2243]!, self._r[2243]!, [_0]) + return formatWithArgumentRanges(self._s[2244]!, self._r[2244]!, [_0]) } - public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[2244]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2245]! } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2246]! } - public var Group_LeaveGroup: String { return self._s[2247]! } - public var Channel_Setup_LinkTypePrivate: String { return self._s[2249]! } - public var GroupInfo_LabelAdmin: String { return self._s[2251]! } - public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2253]! } - public var Notification_PassportValuePersonalDetails: String { return self._s[2254]! } + public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[2245]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2246]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2247]! } + public var Group_LeaveGroup: String { return self._s[2248]! } + public var Channel_Setup_LinkTypePrivate: String { return self._s[2250]! } + public var GroupInfo_LabelAdmin: String { return self._s[2252]! } + public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2254]! } + public var Notification_PassportValuePersonalDetails: String { return self._s[2255]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2255]!, self._r[2255]!, [_0]) + return formatWithArgumentRanges(self._s[2256]!, self._r[2256]!, [_0]) } - public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2256]! } - public var Appearance_Preview: String { return self._s[2257]! } - public var VoiceOver_Chat_Contact: String { return self._s[2258]! } - public var Passport_Language_th: String { return self._s[2259]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2261]! } - public var LastSeen_Offline: String { return self._s[2264]! } - public var Map_OpenInHereMaps: String { return self._s[2265]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[2266]! } - public var InviteLink_ContextEdit: String { return self._s[2268]! } - public var AutoDownloadSettings_Reset: String { return self._s[2269]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[2270]! } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[2271]! } + public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2257]! } + public var Appearance_Preview: String { return self._s[2258]! } + public var VoiceOver_Chat_Contact: String { return self._s[2259]! } + public var Passport_Language_th: String { return self._s[2260]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2262]! } + public var LastSeen_Offline: String { return self._s[2265]! } + public var Map_OpenInHereMaps: String { return self._s[2266]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[2267]! } + public var InviteLink_ContextEdit: String { return self._s[2269]! } + public var AutoDownloadSettings_Reset: String { return self._s[2270]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[2271]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[2272]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2272]!, self._r[2272]!, [_0]) - } - public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2273]!, self._r[2273]!, [_0]) } - public var Passport_Identity_EditDriversLicense: String { return self._s[2274]! } - public var ChatListFolder_NameNonMuted: String { return self._s[2275]! } - public var Username_Placeholder: String { return self._s[2276]! } + public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2274]!, self._r[2274]!, [_0]) + } + public var Passport_Identity_EditDriversLicense: String { return self._s[2275]! } + public var ChatListFolder_NameNonMuted: String { return self._s[2276]! } + public var Username_Placeholder: String { return self._s[2277]! } public func PUSH_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2277]!, self._r[2277]!, [_1]) + return formatWithArgumentRanges(self._s[2278]!, self._r[2278]!, [_1]) } - public var Passport_Language_it: String { return self._s[2278]! } - public var Checkout_NewCard_SaveInfo: String { return self._s[2279]! } + public var Passport_Language_it: String { return self._s[2279]! } + public var Checkout_NewCard_SaveInfo: String { return self._s[2280]! } public func Channel_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2280]!, self._r[2280]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2281]!, self._r[2281]!, [_1, _2]) } - public var NotificationsSound_Pulse: String { return self._s[2281]! } - public var VoiceOver_DismissContextMenu: String { return self._s[2283]! } - public var MessagePoll_NoVotes: String { return self._s[2286]! } - public var Message_Wallpaper: String { return self._s[2287]! } - public var Conversation_JoinVoiceChat: String { return self._s[2288]! } - public var Appearance_Other: String { return self._s[2289]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[2291]! } - public var Group_PublicLink_Placeholder: String { return self._s[2295]! } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[2296]! } - public var VoiceOver_Recording_StopAndPreview: String { return self._s[2297]! } - public var ChatListFolder_NameBots: String { return self._s[2298]! } - public var Conversation_StopPollConfirmation: String { return self._s[2299]! } - public var UserInfo_DeleteContact: String { return self._s[2300]! } + public var NotificationsSound_Pulse: String { return self._s[2282]! } + public var VoiceOver_DismissContextMenu: String { return self._s[2284]! } + public var MessagePoll_NoVotes: String { return self._s[2287]! } + public var Message_Wallpaper: String { return self._s[2288]! } + public var Conversation_JoinVoiceChat: String { return self._s[2289]! } + public var Appearance_Other: String { return self._s[2290]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[2292]! } + public var Group_PublicLink_Placeholder: String { return self._s[2296]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[2297]! } + public var VoiceOver_Recording_StopAndPreview: String { return self._s[2298]! } + public var ChatListFolder_NameBots: String { return self._s[2299]! } + public var Conversation_StopPollConfirmation: String { return self._s[2300]! } + public var UserInfo_DeleteContact: String { return self._s[2301]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2301]!, self._r[2301]!, [_0]) + return formatWithArgumentRanges(self._s[2302]!, self._r[2302]!, [_0]) } - public var Wallpaper_Wallpaper: String { return self._s[2303]! } + public var Wallpaper_Wallpaper: String { return self._s[2304]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2304]!, self._r[2304]!, [_1]) + return formatWithArgumentRanges(self._s[2305]!, self._r[2305]!, [_1]) } - public var LoginPassword_ForgotPassword: String { return self._s[2305]! } - public var FeaturedStickerPacks_Title: String { return self._s[2306]! } - public var Paint_Pen: String { return self._s[2307]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2308]! } - public var ChatListFolderSettings_Info: String { return self._s[2309]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2310]! } - public var PhotoEditor_CurvesAll: String { return self._s[2312]! } + public var LoginPassword_ForgotPassword: String { return self._s[2306]! } + public var FeaturedStickerPacks_Title: String { return self._s[2307]! } + public var Paint_Pen: String { return self._s[2308]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2309]! } + public var ChatListFolderSettings_Info: String { return self._s[2310]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2311]! } + public var PhotoEditor_CurvesAll: String { return self._s[2313]! } public func Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2314]!, self._r[2314]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2315]!, self._r[2315]!, [_1, _2, _3]) } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2316]! } - public var Message_ImageExpired: String { return self._s[2317]! } - public var Call_ConnectionErrorMessage: String { return self._s[2318]! } - public var SearchImages_NoImagesFound: String { return self._s[2320]! } - public var PeerInfo_PaneGifs: String { return self._s[2321]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2322]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2323]! } - public var PhotoEditor_VignetteTool: String { return self._s[2324]! } - public var Passport_Language_dz: String { return self._s[2325]! } - public var Notifications_ChannelNotificationsHelp: String { return self._s[2326]! } - public var Conversation_BlockUser: String { return self._s[2327]! } - public var GroupPermission_PermissionDisabledByDefault: String { return self._s[2330]! } - public var TwoStepAuth_CancelResetText: String { return self._s[2332]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2333]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2317]! } + public var Message_ImageExpired: String { return self._s[2318]! } + public var Call_ConnectionErrorMessage: String { return self._s[2319]! } + public var SearchImages_NoImagesFound: String { return self._s[2321]! } + public var PeerInfo_PaneGifs: String { return self._s[2322]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2323]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2324]! } + public var PhotoEditor_VignetteTool: String { return self._s[2325]! } + public var Passport_Language_dz: String { return self._s[2326]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[2327]! } + public var Conversation_BlockUser: String { return self._s[2328]! } + public var GroupPermission_PermissionDisabledByDefault: String { return self._s[2331]! } + public var TwoStepAuth_CancelResetText: String { return self._s[2333]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2334]! } public func Time_MonthOfYear_m8(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2334]!, self._r[2334]!, [_0]) + return formatWithArgumentRanges(self._s[2335]!, self._r[2335]!, [_0]) } - public var KeyCommand_NewMessage: String { return self._s[2335]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2338]! } + public var KeyCommand_NewMessage: String { return self._s[2336]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2339]! } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2340]!, self._r[2340]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2341]!, self._r[2341]!, [_1, _2]) } - public var ContactList_Context_StartSecretChat: String { return self._s[2341]! } - public var VoiceOver_Chat_File: String { return self._s[2342]! } - public var ChatList_EditFolder: String { return self._s[2344]! } - public var Appearance_BubbleCorners_Title: String { return self._s[2345]! } - public var PeerInfo_PaneAudio: String { return self._s[2346]! } - public var ChatListFolder_CategoryContacts: String { return self._s[2348]! } - public var VoiceOver_ScheduledMessages: String { return self._s[2349]! } + public var ContactList_Context_StartSecretChat: String { return self._s[2342]! } + public var VoiceOver_Chat_File: String { return self._s[2343]! } + public var ChatList_EditFolder: String { return self._s[2345]! } + public var Appearance_BubbleCorners_Title: String { return self._s[2346]! } + public var PeerInfo_PaneAudio: String { return self._s[2347]! } + public var ChatListFolder_CategoryContacts: String { return self._s[2349]! } + public var VoiceOver_ScheduledMessages: String { return self._s[2350]! } public func Login_InvalidPhoneEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2350]!, self._r[2350]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[2351]!, self._r[2351]!, [_1, _2, _3, _4, _5]) } - public var ChatList_PeerTypeChannel: String { return self._s[2351]! } - public var VoiceOver_Navigation_Search: String { return self._s[2352]! } - public var Settings_Search: String { return self._s[2353]! } - public var WallpaperSearch_ColorYellow: String { return self._s[2354]! } - public var Login_PhoneBannedError: String { return self._s[2355]! } - public var KeyCommand_JumpToNextChat: String { return self._s[2356]! } - public var Passport_Language_fa: String { return self._s[2357]! } - public var Settings_About: String { return self._s[2358]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[2359]! } - public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[2360]! } - public var AutoDownloadSettings_DataUsageHigh: String { return self._s[2361]! } + public var ChatList_PeerTypeChannel: String { return self._s[2352]! } + public var VoiceOver_Navigation_Search: String { return self._s[2353]! } + public var Settings_Search: String { return self._s[2354]! } + public var WallpaperSearch_ColorYellow: String { return self._s[2355]! } + public var Login_PhoneBannedError: String { return self._s[2356]! } + public var KeyCommand_JumpToNextChat: String { return self._s[2357]! } + public var Passport_Language_fa: String { return self._s[2358]! } + public var Settings_About: String { return self._s[2359]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[2360]! } + public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[2361]! } + public var AutoDownloadSettings_DataUsageHigh: String { return self._s[2362]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2362]!, self._r[2362]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2363]!, self._r[2363]!, [_1, _2, _3]) } - public var Common_OK: String { return self._s[2363]! } - public var Contacts_SortBy: String { return self._s[2364]! } - public var ImportStickerPack_LinkTaken: String { return self._s[2365]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[2366]! } + public var Common_OK: String { return self._s[2364]! } + public var Contacts_SortBy: String { return self._s[2365]! } + public var ImportStickerPack_LinkTaken: String { return self._s[2366]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[2367]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2368]!, self._r[2368]!, [_0]) + return formatWithArgumentRanges(self._s[2369]!, self._r[2369]!, [_0]) } - public var CallFeedback_IncludeLogs: String { return self._s[2371]! } + public var CallFeedback_IncludeLogs: String { return self._s[2372]! } public func External_OpenIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2372]!, self._r[2372]!, [_0]) + return formatWithArgumentRanges(self._s[2373]!, self._r[2373]!, [_0]) } - public var ImportStickerPack_ChooseLink: String { return self._s[2374]! } - public var Passcode_AppLockedAlert: String { return self._s[2375]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2376]! } - public var Channel_NotificationLoading: String { return self._s[2378]! } - public var Passport_Identity_DocumentNumber: String { return self._s[2379]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2380]! } - public var VoiceOver_Chat_OpenHint: String { return self._s[2381]! } - public var Weekday_ShortFriday: String { return self._s[2382]! } - public var Conversation_TitleMute: String { return self._s[2383]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2384]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[2385]! } - public var DialogList_LanguageTooltip: String { return self._s[2387]! } - public var BroadcastGroups_IntroTitle: String { return self._s[2388]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[2389]! } + public var ImportStickerPack_ChooseLink: String { return self._s[2375]! } + public var Passcode_AppLockedAlert: String { return self._s[2376]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2377]! } + public var Channel_NotificationLoading: String { return self._s[2379]! } + public var Passport_Identity_DocumentNumber: String { return self._s[2380]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2381]! } + public var VoiceOver_Chat_OpenHint: String { return self._s[2382]! } + public var Weekday_ShortFriday: String { return self._s[2383]! } + public var Conversation_TitleMute: String { return self._s[2384]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2385]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[2386]! } + public var DialogList_LanguageTooltip: String { return self._s[2388]! } + public var BroadcastGroups_IntroTitle: String { return self._s[2389]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[2390]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2390]!, self._r[2390]!, [_0]) + return formatWithArgumentRanges(self._s[2391]!, self._r[2391]!, [_0]) } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[2392]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[2393]! } - public var Settings_EditVideo: String { return self._s[2394]! } - public var VoiceOver_Common_Off: String { return self._s[2395]! } - public var Stickers_FrequentlyUsed: String { return self._s[2396]! } - public var GroupPermission_Title: String { return self._s[2397]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[2398]! } - public var Appearance_ThemeCarouselDay: String { return self._s[2399]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[2393]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[2394]! } + public var Settings_EditVideo: String { return self._s[2395]! } + public var VoiceOver_Common_Off: String { return self._s[2396]! } + public var Stickers_FrequentlyUsed: String { return self._s[2397]! } + public var GroupPermission_Title: String { return self._s[2398]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[2399]! } + public var Appearance_ThemeCarouselDay: String { return self._s[2400]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2400]!, self._r[2400]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2401]!, self._r[2401]!, [_1, _2]) } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2401]! } - public var Tour_Title6: String { return self._s[2402]! } - public var EmptyGroupInfo_Title: String { return self._s[2403]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2402]! } + public var Tour_Title6: String { return self._s[2403]! } + public var EmptyGroupInfo_Title: String { return self._s[2404]! } public func Channel_AdminLog_MessageToggleSignaturesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2404]!, self._r[2404]!, [_0]) + return formatWithArgumentRanges(self._s[2405]!, self._r[2405]!, [_0]) } - public var Passport_Language_sk: String { return self._s[2405]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[2406]! } - public var Preview_SaveToCameraRoll: String { return self._s[2407]! } + public var Passport_Language_sk: String { return self._s[2406]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[2407]! } + public var Preview_SaveToCameraRoll: String { return self._s[2408]! } public func VoiceChat_YouCanNowSpeakIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2408]!, self._r[2408]!, [_0]) + return formatWithArgumentRanges(self._s[2409]!, self._r[2409]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[2409]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2410]! } - public var Conversation_ContextMenuMore: String { return self._s[2411]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2412]! } - public var Channel_AdminLog_CanBeAnonymous: String { return self._s[2413]! } - public var CallFeedback_ReasonSilentLocal: String { return self._s[2415]! } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[2410]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2411]! } + public var Conversation_ContextMenuMore: String { return self._s[2412]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2413]! } + public var Channel_AdminLog_CanBeAnonymous: String { return self._s[2414]! } + public var CallFeedback_ReasonSilentLocal: String { return self._s[2416]! } public func Channel_AdminLog_UnmutedMutedParticipant(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2416]!, self._r[2416]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2417]!, self._r[2417]!, [_1, _2]) } - public var UserInfo_NotificationsDisable: String { return self._s[2417]! } + public var UserInfo_NotificationsDisable: String { return self._s[2418]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2419]!, self._r[2419]!, [_0]) + return formatWithArgumentRanges(self._s[2420]!, self._r[2420]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2420]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2421]! } public func Date_ChatDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2422]!, self._r[2422]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2423]!, self._r[2423]!, [_1, _2]) } - public var WallpaperSearch_ColorPrefix: String { return self._s[2423]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2424]! } public func Message_ForwardedPsa_covid(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2424]!, self._r[2424]!, [_0]) + return formatWithArgumentRanges(self._s[2425]!, self._r[2425]!, [_0]) } - public var VoiceChat_NoiseSuppressionDisabled: String { return self._s[2426]! } - public var Conversation_RestrictedMedia: String { return self._s[2427]! } - public var Group_MessageVideoUpdated: String { return self._s[2428]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2429]! } - public var GroupInfo_DeleteAndExit: String { return self._s[2430]! } - public var TwoFactorSetup_Email_Action: String { return self._s[2431]! } - public var Media_ShareThisVideo: String { return self._s[2433]! } - public var DialogList_Replies: String { return self._s[2435]! } + public var VoiceChat_NoiseSuppressionDisabled: String { return self._s[2427]! } + public var Conversation_RestrictedMedia: String { return self._s[2428]! } + public var Group_MessageVideoUpdated: String { return self._s[2429]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2430]! } + public var GroupInfo_DeleteAndExit: String { return self._s[2431]! } + public var TwoFactorSetup_Email_Action: String { return self._s[2432]! } + public var Media_ShareThisVideo: String { return self._s[2434]! } + public var DialogList_Replies: String { return self._s[2436]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2436]!, self._r[2436]!, [_0]) + return formatWithArgumentRanges(self._s[2437]!, self._r[2437]!, [_0]) } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2437]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[2438]! } - public var ImportStickerPack_ImportingStickers: String { return self._s[2439]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2440]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2438]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[2439]! } + public var ImportStickerPack_ImportingStickers: String { return self._s[2440]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2441]! } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2441]!, self._r[2441]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2442]!, self._r[2442]!, [_1, _2]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2442]!, self._r[2442]!, [_0]) + return formatWithArgumentRanges(self._s[2443]!, self._r[2443]!, [_0]) } - public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[2443]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2444]! } - public var ChatList_Search_NoResultsFitlerMedia: String { return self._s[2445]! } - public var Channel_Members_InviteLink: String { return self._s[2446]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[2447]! } - public var WatchRemote_AlertText: String { return self._s[2448]! } + public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[2444]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2445]! } + public var ChatList_Search_NoResultsFitlerMedia: String { return self._s[2446]! } + public var Channel_Members_InviteLink: String { return self._s[2447]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[2448]! } + public var WatchRemote_AlertText: String { return self._s[2449]! } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2449]!, self._r[2449]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2450]!, self._r[2450]!, [_1, _2]) } - public var Conversation_Pin: String { return self._s[2450]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2451]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2452]! } - public var Conversation_CancelForwardTitle: String { return self._s[2453]! } + public var Conversation_Pin: String { return self._s[2451]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2452]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2453]! } + public var Conversation_CancelForwardTitle: String { return self._s[2454]! } public func Notification_PinnedPollMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2454]!, self._r[2454]!, [_0]) + return formatWithArgumentRanges(self._s[2455]!, self._r[2455]!, [_0]) } - public var Appearance_AppIconFilled: String { return self._s[2455]! } - public var StickerPack_ErrorNotFound: String { return self._s[2456]! } + public var Appearance_AppIconFilled: String { return self._s[2456]! } + public var StickerPack_ErrorNotFound: String { return self._s[2457]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2457]!, self._r[2457]!, [_1]) + return formatWithArgumentRanges(self._s[2458]!, self._r[2458]!, [_1]) } - public var Passport_Identity_AddIdentityCard: String { return self._s[2458]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[2459]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2460]!, self._r[2460]!, [_1]) + return formatWithArgumentRanges(self._s[2461]!, self._r[2461]!, [_1]) } - public var Call_Camera: String { return self._s[2461]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2462]! } - public var Group_Location_Info: String { return self._s[2463]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[2464]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[2465]! } + public var Call_Camera: String { return self._s[2462]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2463]! } + public var Group_Location_Info: String { return self._s[2464]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[2465]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[2466]! } public func DialogList_PinLimitError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2466]!, self._r[2466]!, [_0]) + return formatWithArgumentRanges(self._s[2467]!, self._r[2467]!, [_0]) } - public var Weekday_Yesterday: String { return self._s[2467]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[2468]! } - public var InviteLink_Create_UsersLimit: String { return self._s[2469]! } + public var Weekday_Yesterday: String { return self._s[2468]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[2469]! } + public var InviteLink_Create_UsersLimit: String { return self._s[2470]! } public func Notification_VoiceChatScheduledTodayChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2470]!, self._r[2470]!, [_0]) + return formatWithArgumentRanges(self._s[2471]!, self._r[2471]!, [_0]) } - public var ArchivedPacksAlert_Title: String { return self._s[2471]! } - public var PeerInfo_PaneMembers: String { return self._s[2472]! } - public var PhotoEditor_SelectCoverFrame: String { return self._s[2473]! } + public var ArchivedPacksAlert_Title: String { return self._s[2472]! } + public var PeerInfo_PaneMembers: String { return self._s[2473]! } + public var PhotoEditor_SelectCoverFrame: String { return self._s[2474]! } public func Location_ProximityAlertSetTextGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2474]!, self._r[2474]!, [_0]) + return formatWithArgumentRanges(self._s[2475]!, self._r[2475]!, [_0]) } - public var ContactInfo_PhoneLabelMain: String { return self._s[2475]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[2476]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2476]!, self._r[2476]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2477]!, self._r[2477]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[2477]! } - public var Channel_DiscussionGroup: String { return self._s[2478]! } - public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[2479]! } - public var InviteLink_Create_TimeLimit: String { return self._s[2481]! } - public var Channel_EditAdmin_PermissionsHeader: String { return self._s[2482]! } - public var VoiceOver_MessageContextForward: String { return self._s[2483]! } - public var SocksProxySetup_TypeNone: String { return self._s[2484]! } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[2486]! } - public var ProfilePhoto_OpenInEditor: String { return self._s[2488]! } - public var WallpaperSearch_ColorPurple: String { return self._s[2489]! } - public var ChatListFolder_IncludeChatsTitle: String { return self._s[2490]! } - public var Group_Username_InvalidTooShort: String { return self._s[2491]! } - public var Location_ProximityNotification_DistanceM: String { return self._s[2492]! } - public var VoiceChat_EditTitleText: String { return self._s[2493]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[2478]! } + public var Channel_DiscussionGroup: String { return self._s[2479]! } + public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[2480]! } + public var InviteLink_Create_TimeLimit: String { return self._s[2482]! } + public var Channel_EditAdmin_PermissionsHeader: String { return self._s[2483]! } + public var VoiceOver_MessageContextForward: String { return self._s[2484]! } + public var SocksProxySetup_TypeNone: String { return self._s[2485]! } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[2487]! } + public var ProfilePhoto_OpenInEditor: String { return self._s[2489]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2490]! } + public var ChatListFolder_IncludeChatsTitle: String { return self._s[2491]! } + public var Group_Username_InvalidTooShort: String { return self._s[2492]! } + public var Location_ProximityNotification_DistanceM: String { return self._s[2493]! } + public var VoiceChat_EditTitleText: String { return self._s[2494]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2494]!, self._r[2494]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2495]!, self._r[2495]!, [_0, _1, _2]) } - public var Passport_Language_tk: String { return self._s[2495]! } - public var ConvertToSupergroup_Title: String { return self._s[2496]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[2497]! } - public var Cache_KeepMediaHelp: String { return self._s[2498]! } - public var Channel_Management_Title: String { return self._s[2499]! } + public var Passport_Language_tk: String { return self._s[2496]! } + public var ConvertToSupergroup_Title: String { return self._s[2497]! } + public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[2498]! } + public var Cache_KeepMediaHelp: String { return self._s[2499]! } + public var Channel_Management_Title: String { return self._s[2500]! } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2500]!, self._r[2500]!, [_1]) + return formatWithArgumentRanges(self._s[2501]!, self._r[2501]!, [_1]) } - public var Conversation_ForwardChats: String { return self._s[2501]! } - public var Passport_Language_bg: String { return self._s[2502]! } - public var SocksProxySetup_TypeSocks: String { return self._s[2503]! } - public var Permissions_PrivacyPolicy: String { return self._s[2504]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2505]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2506]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2507]! } - public var Conversation_ContextMenuOpenChannel: String { return self._s[2508]! } - public var Report_AdditionalDetailsPlaceholder: String { return self._s[2509]! } - public var Activity_UploadingVideo: String { return self._s[2510]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[2512]! } - public var Widget_LongTapToEdit: String { return self._s[2513]! } - public var VoiceChat_InviteLink_Listener: String { return self._s[2515]! } - public var SocksProxySetup_Credentials: String { return self._s[2516]! } - public var Preview_SaveGif: String { return self._s[2517]! } - public var Cache_Photos: String { return self._s[2518]! } - public var Channel_AdminLogFilter_EventsCalls: String { return self._s[2519]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[2520]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[2521]! } + public var Conversation_ForwardChats: String { return self._s[2502]! } + public var Passport_Language_bg: String { return self._s[2503]! } + public var SocksProxySetup_TypeSocks: String { return self._s[2504]! } + public var Permissions_PrivacyPolicy: String { return self._s[2505]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2506]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2507]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2508]! } + public var Conversation_ContextMenuOpenChannel: String { return self._s[2509]! } + public var Report_AdditionalDetailsPlaceholder: String { return self._s[2510]! } + public var Activity_UploadingVideo: String { return self._s[2511]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[2513]! } + public var Widget_LongTapToEdit: String { return self._s[2514]! } + public var VoiceChat_InviteLink_Listener: String { return self._s[2516]! } + public var SocksProxySetup_Credentials: String { return self._s[2517]! } + public var Preview_SaveGif: String { return self._s[2518]! } + public var Cache_Photos: String { return self._s[2519]! } + public var Channel_AdminLogFilter_EventsCalls: String { return self._s[2520]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[2521]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[2522]! } public func VoiceChat_RemoveAndBanPeerConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2522]!, self._r[2522]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2523]!, self._r[2523]!, [_1, _2]) } - public var Passport_Language_lt: String { return self._s[2523]! } - public var Passport_DeleteDocument: String { return self._s[2525]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2526]! } + public var Passport_Language_lt: String { return self._s[2524]! } + public var Passport_DeleteDocument: String { return self._s[2526]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2527]! } public func Location_ProximityNotification_NotifyLong(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2527]!, self._r[2527]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2528]!, self._r[2528]!, [_1, _2]) } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[2528]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[2529]! } public func PeopleNearby_VisibleUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2529]!, self._r[2529]!, [_0]) + return formatWithArgumentRanges(self._s[2530]!, self._r[2530]!, [_0]) } - public var AccessDenied_VideoCallCamera: String { return self._s[2530]! } + public var AccessDenied_VideoCallCamera: String { return self._s[2531]! } public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2531]!, self._r[2531]!, [_0]) + return formatWithArgumentRanges(self._s[2532]!, self._r[2532]!, [_0]) } - public var PhotoEditor_SharpenTool: String { return self._s[2532]! } + public var PhotoEditor_SharpenTool: String { return self._s[2533]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2533]!, self._r[2533]!, [_1]) + return formatWithArgumentRanges(self._s[2534]!, self._r[2534]!, [_1]) } - public var DialogList_Unpin: String { return self._s[2534]! } - public var Stickers_NoStickersFound: String { return self._s[2535]! } - public var UserInfo_AddContact: String { return self._s[2537]! } + public var DialogList_Unpin: String { return self._s[2535]! } + public var Stickers_NoStickersFound: String { return self._s[2536]! } + public var UserInfo_AddContact: String { return self._s[2538]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2539]!, self._r[2539]!, [_0]) - } - public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2540]!, self._r[2540]!, [_0]) } - public var CallFeedback_VideoReasonDistorted: String { return self._s[2541]! } - public var Tour_Text2: String { return self._s[2542]! } + public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2541]!, self._r[2541]!, [_0]) + } + public var CallFeedback_VideoReasonDistorted: String { return self._s[2542]! } + public var Tour_Text2: String { return self._s[2543]! } public func Conversation_TitleCommentsFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2544]!, self._r[2544]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2545]!, self._r[2545]!, [_1, _2]) } - public var InviteLink_DeleteAllRevokedLinksAlert_Text: String { return self._s[2546]! } - public var Paint_Delete: String { return self._s[2547]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Text: String { return self._s[2547]! } + public var Paint_Delete: String { return self._s[2548]! } public func Call_VoiceChatInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2548]!, self._r[2548]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2549]!, self._r[2549]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2549]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2550]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2551]!, self._r[2551]!, [_0]) + return formatWithArgumentRanges(self._s[2552]!, self._r[2552]!, [_0]) } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[2552]! } - public var Notification_CallOutgoingShort: String { return self._s[2553]! } - public var Checkout_PasswordEntry_Title: String { return self._s[2554]! } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[2555]! } - public var Notification_MessageLifetime1m: String { return self._s[2556]! } - public var BlockedUsers_AddNew: String { return self._s[2558]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2559]! } - public var Settings_SaveEditedPhotos: String { return self._s[2560]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[2561]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[2553]! } + public var Notification_CallOutgoingShort: String { return self._s[2554]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2555]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[2556]! } + public var Notification_MessageLifetime1m: String { return self._s[2557]! } + public var BlockedUsers_AddNew: String { return self._s[2559]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2560]! } + public var Settings_SaveEditedPhotos: String { return self._s[2561]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[2562]! } public func ImportStickerPack_Of(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2562]!, self._r[2562]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2563]!, self._r[2563]!, [_1, _2]) } - public var Channel_AboutItem: String { return self._s[2563]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[2564]! } - public var Privacy_Calls_P2PNever: String { return self._s[2566]! } - public var Passport_Language_uk: String { return self._s[2567]! } - public var NetworkUsageSettings_Wifi: String { return self._s[2568]! } - public var Conversation_Moderate_Report: String { return self._s[2569]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2570]! } - public var VoiceOver_Chat_SeenByRecipients: String { return self._s[2571]! } - public var Permissions_SiriText_v0: String { return self._s[2572]! } - public var Theme_Colors_Background: String { return self._s[2573]! } - public var Notification_CallMissed: String { return self._s[2574]! } - public var Stats_ZoomOut: String { return self._s[2575]! } - public var Profile_AddToExisting: String { return self._s[2576]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2579]! } - public var VoiceChat_RemovePeerRemove: String { return self._s[2580]! } - public var Undo_DeletedChannel: String { return self._s[2581]! } + public var Channel_AboutItem: String { return self._s[2564]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[2565]! } + public var Privacy_Calls_P2PNever: String { return self._s[2567]! } + public var Passport_Language_uk: String { return self._s[2568]! } + public var NetworkUsageSettings_Wifi: String { return self._s[2569]! } + public var Conversation_Moderate_Report: String { return self._s[2570]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2571]! } + public var VoiceOver_Chat_SeenByRecipients: String { return self._s[2572]! } + public var Permissions_SiriText_v0: String { return self._s[2573]! } + public var Theme_Colors_Background: String { return self._s[2574]! } + public var Notification_CallMissed: String { return self._s[2575]! } + public var Stats_ZoomOut: String { return self._s[2576]! } + public var Profile_AddToExisting: String { return self._s[2577]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2580]! } + public var VoiceChat_RemovePeerRemove: String { return self._s[2581]! } + public var Undo_DeletedChannel: String { return self._s[2582]! } public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2582]!, self._r[2582]!, [_0]) + return formatWithArgumentRanges(self._s[2583]!, self._r[2583]!, [_0]) } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2583]! } - public var Map_LiveLocationGroupDescription: String { return self._s[2584]! } - public var Passport_InfoFAQ_URL: String { return self._s[2585]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2588]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2584]! } + public var Map_LiveLocationGroupDescription: String { return self._s[2585]! } + public var Passport_InfoFAQ_URL: String { return self._s[2586]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2589]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2589]!, self._r[2589]!, [_1]) + return formatWithArgumentRanges(self._s[2590]!, self._r[2590]!, [_1]) } - public var State_connecting: String { return self._s[2590]! } - public var Passport_Identity_Country: String { return self._s[2591]! } - public var Passport_PasswordDescription: String { return self._s[2592]! } - public var ChatList_PsaLabel_covid: String { return self._s[2593]! } + public var State_connecting: String { return self._s[2591]! } + public var Passport_Identity_Country: String { return self._s[2592]! } + public var Passport_PasswordDescription: String { return self._s[2593]! } + public var ChatList_PsaLabel_covid: String { return self._s[2594]! } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2594]!, self._r[2594]!, [_1]) + return formatWithArgumentRanges(self._s[2595]!, self._r[2595]!, [_1]) } - public var Contacts_AddPeopleNearby: String { return self._s[2595]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[2596]! } - public var ClearCache_Description: String { return self._s[2597]! } - public var Localization_LanguageName: String { return self._s[2598]! } + public var Contacts_AddPeopleNearby: String { return self._s[2596]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[2597]! } + public var ClearCache_Description: String { return self._s[2598]! } + public var Localization_LanguageName: String { return self._s[2599]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2599]!, self._r[2599]!, [_0]) + return formatWithArgumentRanges(self._s[2600]!, self._r[2600]!, [_0]) } - public var Conversation_AddMembers: String { return self._s[2600]! } - public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[2601]! } - public var UserInfo_CreateNewContact: String { return self._s[2602]! } - public var Channel_Stickers_NotFound: String { return self._s[2604]! } - public var Message_FakeAccount: String { return self._s[2605]! } - public var Watch_Message_Poll: String { return self._s[2606]! } - public var Group_Members_Title: String { return self._s[2607]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2608]! } + public var Conversation_AddMembers: String { return self._s[2601]! } + public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[2602]! } + public var UserInfo_CreateNewContact: String { return self._s[2603]! } + public var Channel_Stickers_NotFound: String { return self._s[2605]! } + public var Message_FakeAccount: String { return self._s[2606]! } + public var Watch_Message_Poll: String { return self._s[2607]! } + public var Group_Members_Title: String { return self._s[2608]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2609]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2609]!, self._r[2609]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2610]!, self._r[2610]!, [_0, _1]) } - public var VoiceChat_CancelConfirmationText: String { return self._s[2610]! } - public var BroadcastGroups_Convert: String { return self._s[2611]! } - public var Login_InfoDeletePhoto: String { return self._s[2612]! } - public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[2613]! } - public var InstantPage_FeedbackButton: String { return self._s[2614]! } - public var Appearance_PreviewReplyText: String { return self._s[2615]! } - public var Passport_FieldPhoneHelp: String { return self._s[2616]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2617]! } - public var Media_SendingOptionsTooltip: String { return self._s[2618]! } - public var ScheduledMessages_ScheduledOnline: String { return self._s[2619]! } - public var Notifications_Badge: String { return self._s[2620]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[2621]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2622]! } + public var VoiceChat_CancelConfirmationText: String { return self._s[2611]! } + public var BroadcastGroups_Convert: String { return self._s[2612]! } + public var Login_InfoDeletePhoto: String { return self._s[2613]! } + public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[2614]! } + public var InstantPage_FeedbackButton: String { return self._s[2615]! } + public var Appearance_PreviewReplyText: String { return self._s[2616]! } + public var Passport_FieldPhoneHelp: String { return self._s[2617]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2618]! } + public var Media_SendingOptionsTooltip: String { return self._s[2619]! } + public var ScheduledMessages_ScheduledOnline: String { return self._s[2620]! } + public var Notifications_Badge: String { return self._s[2621]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[2622]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2623]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2624]!, self._r[2624]!, [_0]) + return formatWithArgumentRanges(self._s[2625]!, self._r[2625]!, [_0]) } - public var Passport_InfoLearnMore: String { return self._s[2625]! } - public var EnterPasscode_EnterTitle: String { return self._s[2626]! } - public var Appearance_EditTheme: String { return self._s[2627]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2628]! } - public var Stats_FollowersTitle: String { return self._s[2629]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[2630]! } - public var Channel_Subscribers_Title: String { return self._s[2631]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2632]! } - public var ChatImportActivity_ErrorGeneric: String { return self._s[2633]! } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[2634]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2635]! } - public var Conversation_AddToReadingList: String { return self._s[2636]! } - public var VoiceChat_EditBioPlaceholder: String { return self._s[2637]! } + public var Passport_InfoLearnMore: String { return self._s[2626]! } + public var EnterPasscode_EnterTitle: String { return self._s[2627]! } + public var Appearance_EditTheme: String { return self._s[2628]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2629]! } + public var Stats_FollowersTitle: String { return self._s[2630]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[2631]! } + public var Channel_Subscribers_Title: String { return self._s[2632]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2633]! } + public var ChatImportActivity_ErrorGeneric: String { return self._s[2634]! } + public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[2635]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2636]! } + public var Conversation_AddToReadingList: String { return self._s[2637]! } + public var VoiceChat_EditBioPlaceholder: String { return self._s[2638]! } public func Notifications_ExceptionsChangeSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2638]!, self._r[2638]!, [_0]) + return formatWithArgumentRanges(self._s[2639]!, self._r[2639]!, [_0]) } - public var Group_AdminLog_EmptyText: String { return self._s[2639]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[2640]! } - public var Watch_Location_Current: String { return self._s[2641]! } - public var Appearance_AppIconNew1: String { return self._s[2642]! } - public var PrivacyPolicy_Title: String { return self._s[2643]! } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2650]! } - public var Channel_TypeSetup_Title: String { return self._s[2654]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[2655]! } - public var Passport_Language_ja: String { return self._s[2656]! } - public var ReportPeer_ReasonSpam: String { return self._s[2657]! } - public var Widget_GalleryDescription: String { return self._s[2658]! } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2659]! } - public var VoiceChat_ChangePhoto: String { return self._s[2661]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[2662]! } - public var Channel_AdminLog_ChangeInfo: String { return self._s[2663]! } - public var ChatListFolder_NameNonContacts: String { return self._s[2664]! } + public var Group_AdminLog_EmptyText: String { return self._s[2640]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[2641]! } + public var Watch_Location_Current: String { return self._s[2642]! } + public var Appearance_AppIconNew1: String { return self._s[2643]! } + public var PrivacyPolicy_Title: String { return self._s[2644]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2651]! } + public var Channel_TypeSetup_Title: String { return self._s[2655]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[2656]! } + public var Passport_Language_ja: String { return self._s[2657]! } + public var ReportPeer_ReasonSpam: String { return self._s[2658]! } + public var Widget_GalleryDescription: String { return self._s[2659]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2660]! } + public var VoiceChat_ChangePhoto: String { return self._s[2662]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[2663]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[2664]! } + public var ChatListFolder_NameNonContacts: String { return self._s[2665]! } public func InviteLink_ExpiresIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2665]!, self._r[2665]!, [_0]) + return formatWithArgumentRanges(self._s[2666]!, self._r[2666]!, [_0]) } - public var Call_Audio: String { return self._s[2666]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2667]! } - public var ChatList_Search_NoResultsFitlerFiles: String { return self._s[2668]! } - public var Settings_PrivacySettings: String { return self._s[2669]! } - public var InviteLink_UsageLimitReached: String { return self._s[2670]! } - public var Stats_Followers: String { return self._s[2671]! } - public var Notifications_AddExceptionTitle: String { return self._s[2672]! } - public var TwoFactorSetup_Password_Title: String { return self._s[2673]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2674]! } - public var OldChannels_NoticeText: String { return self._s[2675]! } - public var Conversation_SavedMessages: String { return self._s[2676]! } - public var Intents_ErrorLockedText: String { return self._s[2677]! } + public var Call_Audio: String { return self._s[2667]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2668]! } + public var ChatList_Search_NoResultsFitlerFiles: String { return self._s[2669]! } + public var Settings_PrivacySettings: String { return self._s[2670]! } + public var InviteLink_UsageLimitReached: String { return self._s[2671]! } + public var Stats_Followers: String { return self._s[2672]! } + public var Notifications_AddExceptionTitle: String { return self._s[2673]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2674]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2675]! } + public var OldChannels_NoticeText: String { return self._s[2676]! } + public var Conversation_SavedMessages: String { return self._s[2677]! } + public var Intents_ErrorLockedText: String { return self._s[2678]! } public func Conversation_PeerNearbyTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2679]!, self._r[2679]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2680]!, self._r[2680]!, [_1, _2]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2680]! } - public var Appearance_ThemeNightBlue: String { return self._s[2681]! } - public var Notification_ChannelInviterSelf: String { return self._s[2682]! } - public var Conversation_ForwardTooltip_SavedMessages_Many: String { return self._s[2683]! } - public var InviteLink_Create_TimeLimitExpiryDateNever: String { return self._s[2685]! } - public var Watch_UserInfo_Service: String { return self._s[2686]! } - public var ChatList_Context_Back: String { return self._s[2687]! } - public var Passport_Email_Title: String { return self._s[2688]! } - public var ImportStickerPack_AddToExistingStickerSet: String { return self._s[2689]! } - public var Stats_GroupTopAdmin_Promote: String { return self._s[2690]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2681]! } + public var Appearance_ThemeNightBlue: String { return self._s[2682]! } + public var Notification_ChannelInviterSelf: String { return self._s[2683]! } + public var Conversation_ForwardTooltip_SavedMessages_Many: String { return self._s[2684]! } + public var InviteLink_Create_TimeLimitExpiryDateNever: String { return self._s[2686]! } + public var Watch_UserInfo_Service: String { return self._s[2687]! } + public var ChatList_Context_Back: String { return self._s[2688]! } + public var Passport_Email_Title: String { return self._s[2689]! } + public var ImportStickerPack_AddToExistingStickerSet: String { return self._s[2690]! } + public var Stats_GroupTopAdmin_Promote: String { return self._s[2691]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2691]!, self._r[2691]!, [_1]) + return formatWithArgumentRanges(self._s[2692]!, self._r[2692]!, [_1]) } - public var Conversation_UnsupportedMedia: String { return self._s[2692]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2693]! } - public var Privacy_TopPeersHelp: String { return self._s[2695]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[2696]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2697]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[2698]! } + public var Conversation_UnsupportedMedia: String { return self._s[2693]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2694]! } + public var Privacy_TopPeersHelp: String { return self._s[2696]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[2697]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2698]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[2699]! } public func Location_ProximityNotification_AlreadyClose(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2699]!, self._r[2699]!, [_0]) + return formatWithArgumentRanges(self._s[2700]!, self._r[2700]!, [_0]) } - public var Notification_PassportValueProofOfAddress: String { return self._s[2700]! } - public var Map_Map: String { return self._s[2701]! } - public var WallpaperSearch_ColorBlue: String { return self._s[2702]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[2703]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2704]! } - public var ChatList_Search_FilterMusic: String { return self._s[2705]! } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[2706]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2707]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[2709]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[2701]! } + public var Map_Map: String { return self._s[2702]! } + public var WallpaperSearch_ColorBlue: String { return self._s[2703]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[2704]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2705]! } + public var ChatList_Search_FilterMusic: String { return self._s[2706]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[2707]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2708]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[2710]! } public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2710]!, self._r[2710]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2711]!, self._r[2711]!, [_1, _2]) } public func Notification_ChangedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2711]!, self._r[2711]!, [_0]) + return formatWithArgumentRanges(self._s[2712]!, self._r[2712]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2712]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2713]! } - public var VoiceOver_ChatList_MessageEmpty: String { return self._s[2715]! } - public var GroupInfo_Location: String { return self._s[2716]! } - public var Passport_Language_ka: String { return self._s[2717]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2713]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2714]! } + public var VoiceOver_ChatList_MessageEmpty: String { return self._s[2716]! } + public var GroupInfo_Location: String { return self._s[2717]! } + public var Passport_Language_ka: String { return self._s[2718]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2718]!, self._r[2718]!, [_0]) + return formatWithArgumentRanges(self._s[2719]!, self._r[2719]!, [_0]) } - public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2719]! } - public var ChatImport_SelectionConfirmationAlertTitle: String { return self._s[2721]! } - public var ScheduledMessages_ClearAllConfirmation: String { return self._s[2723]! } - public var DialogList_SearchSectionRecent: String { return self._s[2724]! } - public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2725]! } - public var Conversation_Timer_Send: String { return self._s[2726]! } + public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2720]! } + public var ChatImport_SelectionConfirmationAlertTitle: String { return self._s[2722]! } + public var ScheduledMessages_ClearAllConfirmation: String { return self._s[2724]! } + public var DialogList_SearchSectionRecent: String { return self._s[2725]! } + public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2726]! } + public var Conversation_Timer_Send: String { return self._s[2727]! } public func VoiceOver_ScrollStatus(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2728]!, self._r[2728]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2729]!, self._r[2729]!, [_1, _2]) } - public var ChatState_Updating: String { return self._s[2729]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[2730]! } - public var ChannelInfo_DeleteGroup: String { return self._s[2731]! } - public var TwoStepAuth_RecoveryFailed: String { return self._s[2732]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2733]! } - public var InviteLink_Create_TimeLimitExpiryTime: String { return self._s[2734]! } - public var ChannelInfo_InviteLink_RevokeAlert_Text: String { return self._s[2735]! } - public var ChatList_Search_NoResults: String { return self._s[2736]! } - public var ChatListFolderSettings_AddRecommended: String { return self._s[2738]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2739]! } - public var PeerInfo_GroupAboutItem: String { return self._s[2740]! } - public var VoiceOver_SelfDestructTimerOff: String { return self._s[2742]! } + public var ChatState_Updating: String { return self._s[2730]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[2731]! } + public var ChannelInfo_DeleteGroup: String { return self._s[2732]! } + public var TwoStepAuth_RecoveryFailed: String { return self._s[2733]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2734]! } + public var InviteLink_Create_TimeLimitExpiryTime: String { return self._s[2735]! } + public var ChannelInfo_InviteLink_RevokeAlert_Text: String { return self._s[2736]! } + public var ChatList_Search_NoResults: String { return self._s[2737]! } + public var ChatListFolderSettings_AddRecommended: String { return self._s[2739]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2740]! } + public var PeerInfo_GroupAboutItem: String { return self._s[2741]! } + public var VoiceOver_SelfDestructTimerOff: String { return self._s[2743]! } public func Channel_AdminLog_DeletedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2743]!, self._r[2743]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2744]!, self._r[2744]!, [_1, _2]) } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2744]!, self._r[2744]!, [_0]) + return formatWithArgumentRanges(self._s[2745]!, self._r[2745]!, [_0]) } - public var PrivacySettings_AuthSessions: String { return self._s[2745]! } - public var Passport_Address_Postcode: String { return self._s[2746]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2747]! } + public var PrivacySettings_AuthSessions: String { return self._s[2746]! } + public var Passport_Address_Postcode: String { return self._s[2747]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2748]! } public func VoiceChat_ForwardTooltip_ManyChats(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2748]!, self._r[2748]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2749]!, self._r[2749]!, [_0, _1]) } - public var Passport_Address_Street2Placeholder: String { return self._s[2749]! } - public var Group_Location_Title: String { return self._s[2750]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[2751]! } - public var PeopleNearby_UsersEmpty: String { return self._s[2752]! } - public var Conversation_ContextMenuSpeak: String { return self._s[2754]! } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[2755]! } + public var Passport_Address_Street2Placeholder: String { return self._s[2750]! } + public var Group_Location_Title: String { return self._s[2751]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[2752]! } + public var PeopleNearby_UsersEmpty: String { return self._s[2753]! } + public var Conversation_ContextMenuSpeak: String { return self._s[2755]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[2756]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2757]!, self._r[2757]!, [_0]) + return formatWithArgumentRanges(self._s[2758]!, self._r[2758]!, [_0]) } - public var Proxy_TooltipUnavailable: String { return self._s[2758]! } - public var Map_Search: String { return self._s[2759]! } - public var VoiceChat_CancelConfirmationTitle: String { return self._s[2760]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[2761]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2762]! } + public var Proxy_TooltipUnavailable: String { return self._s[2759]! } + public var Map_Search: String { return self._s[2760]! } + public var VoiceChat_CancelConfirmationTitle: String { return self._s[2761]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[2762]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2763]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2763]!, self._r[2763]!, [_0]) + return formatWithArgumentRanges(self._s[2764]!, self._r[2764]!, [_0]) } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[2764]! } - public var ProfilePhoto_MainPhoto: String { return self._s[2765]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2766]! } - public var SharedMedia_EmptyMusicText: String { return self._s[2767]! } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[2768]! } - public var NetworkUsageSettings_BytesReceived: String { return self._s[2769]! } - public var Channel_AdminLog_EmptyText: String { return self._s[2770]! } - public var ImportStickerPack_InProgress: String { return self._s[2771]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2772]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[2773]! } - public var Notifications_GroupNotifications: String { return self._s[2774]! } - public var AccessDenied_SaveMedia: String { return self._s[2775]! } - public var InviteLink_Create_Revoke: String { return self._s[2776]! } - public var GroupInfo_LabelOwner: String { return self._s[2777]! } - public var TwoFactorSetup_PasswordRecovery_Action: String { return self._s[2778]! } - public var Passport_Language_id: String { return self._s[2780]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2781]! } - public var Conversation_UnpinMessageAlert: String { return self._s[2782]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[2765]! } + public var ProfilePhoto_MainPhoto: String { return self._s[2766]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2767]! } + public var SharedMedia_EmptyMusicText: String { return self._s[2768]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[2769]! } + public var NetworkUsageSettings_BytesReceived: String { return self._s[2770]! } + public var Channel_AdminLog_EmptyText: String { return self._s[2771]! } + public var ImportStickerPack_InProgress: String { return self._s[2772]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2773]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[2774]! } + public var Notifications_GroupNotifications: String { return self._s[2775]! } + public var AccessDenied_SaveMedia: String { return self._s[2776]! } + public var InviteLink_Create_Revoke: String { return self._s[2777]! } + public var GroupInfo_LabelOwner: String { return self._s[2778]! } + public var TwoFactorSetup_PasswordRecovery_Action: String { return self._s[2779]! } + public var Passport_Language_id: String { return self._s[2781]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2782]! } + public var Conversation_UnpinMessageAlert: String { return self._s[2783]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2783]!, self._r[2783]!, [_0]) - } - public func Call_RemoteVideoPaused(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2784]!, self._r[2784]!, [_0]) } - public var TwoFactorSetup_Done_Text: String { return self._s[2785]! } + public func Call_RemoteVideoPaused(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2785]!, self._r[2785]!, [_0]) + } + public var TwoFactorSetup_Done_Text: String { return self._s[2786]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2786]!, self._r[2786]!, [_0]) + return formatWithArgumentRanges(self._s[2787]!, self._r[2787]!, [_0]) } - public var NetworkUsageSettings_BytesSent: String { return self._s[2787]! } - public var Conversation_AudioRateTooltipNormal: String { return self._s[2788]! } - public var VoiceChat_EditDescriptionSuccess: String { return self._s[2789]! } - public var OwnershipTransfer_Transfer: String { return self._s[2790]! } + public var NetworkUsageSettings_BytesSent: String { return self._s[2788]! } + public var Conversation_AudioRateTooltipNormal: String { return self._s[2789]! } + public var VoiceChat_EditDescriptionSuccess: String { return self._s[2790]! } + public var OwnershipTransfer_Transfer: String { return self._s[2791]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2791]!, self._r[2791]!, [_0]) + return formatWithArgumentRanges(self._s[2792]!, self._r[2792]!, [_0]) } - public var Passport_Language_pt: String { return self._s[2792]! } - public var PrivacySettings_WebSessions: String { return self._s[2793]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[2795]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2796]! } + public var Passport_Language_pt: String { return self._s[2793]! } + public var PrivacySettings_WebSessions: String { return self._s[2794]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[2796]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2797]! } public func Notification_Joined(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2797]!, self._r[2797]!, [_0]) + return formatWithArgumentRanges(self._s[2798]!, self._r[2798]!, [_0]) } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2798]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2799]! } - public var AutoNightTheme_Scheduled: String { return self._s[2800]! } - public var CreatePoll_ExplanationHeader: String { return self._s[2801]! } - public var Calls_TabTitle: String { return self._s[2802]! } - public var VoiceChat_RecordingInProgress: String { return self._s[2803]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[2804]! } - public var Notification_VideoCallCanceled: String { return self._s[2805]! } - public var Login_CodeSentInternal: String { return self._s[2806]! } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[2807]! } - public var Call_RecordingDisabledMessage: String { return self._s[2809]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2799]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2800]! } + public var AutoNightTheme_Scheduled: String { return self._s[2801]! } + public var CreatePoll_ExplanationHeader: String { return self._s[2802]! } + public var Calls_TabTitle: String { return self._s[2803]! } + public var VoiceChat_RecordingInProgress: String { return self._s[2804]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[2805]! } + public var Notification_VideoCallCanceled: String { return self._s[2806]! } + public var Login_CodeSentInternal: String { return self._s[2807]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[2808]! } + public var Call_RecordingDisabledMessage: String { return self._s[2810]! } public func VoiceChat_RemovedPeerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2810]!, self._r[2810]!, [_0]) + return formatWithArgumentRanges(self._s[2811]!, self._r[2811]!, [_0]) } - public var Conversation_UsersTooMuchError: String { return self._s[2812]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[2813]! } - public var VoiceChat_StopScreenSharingShort: String { return self._s[2814]! } - public var Channel_Info_Stickers: String { return self._s[2815]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[2816]! } + public var Conversation_UsersTooMuchError: String { return self._s[2813]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[2814]! } + public var VoiceChat_StopScreenSharingShort: String { return self._s[2815]! } + public var Channel_Info_Stickers: String { return self._s[2816]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[2817]! } public func Conversation_PeerNearbyDistance(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2817]!, self._r[2817]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2818]!, self._r[2818]!, [_1, _2]) } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[2818]! } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[2819]! } public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2819]!, self._r[2819]!, [_0]) + return formatWithArgumentRanges(self._s[2820]!, self._r[2820]!, [_0]) } - public var Passport_DiscardMessageTitle: String { return self._s[2820]! } - public var Call_VoiceOver_VideoCallIncoming: String { return self._s[2821]! } - public var Localization_LanguageOther: String { return self._s[2822]! } - public var Conversation_EncryptionCanceled: String { return self._s[2823]! } - public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2824]! } - public var ReportPeer_ReasonFake: String { return self._s[2826]! } + public var Passport_DiscardMessageTitle: String { return self._s[2821]! } + public var Call_VoiceOver_VideoCallIncoming: String { return self._s[2822]! } + public var Localization_LanguageOther: String { return self._s[2823]! } + public var Conversation_EncryptionCanceled: String { return self._s[2824]! } + public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2825]! } + public var ReportPeer_ReasonFake: String { return self._s[2827]! } public func Notification_SecretChatMessageScreenshot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2827]!, self._r[2827]!, [_0]) + return formatWithArgumentRanges(self._s[2828]!, self._r[2828]!, [_0]) } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2829]! } - public var SocksProxySetup_SavedProxies: String { return self._s[2830]! } - public var InviteLink_Create_UsersLimitNumberOfUsers: String { return self._s[2831]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2830]! } + public var SocksProxySetup_SavedProxies: String { return self._s[2831]! } + public var InviteLink_Create_UsersLimitNumberOfUsers: String { return self._s[2832]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2832]!, self._r[2832]!, [_1]) + return formatWithArgumentRanges(self._s[2833]!, self._r[2833]!, [_1]) } - public var Conversation_ScamWarning: String { return self._s[2834]! } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[2835]! } - public var LocalGroup_Title: String { return self._s[2836]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2838]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[2839]! } - public var VoiceChat_SelectAccount: String { return self._s[2840]! } - public var Login_PhoneFloodError: String { return self._s[2841]! } - public var Conversation_PinMessageAlert_PinAndNotifyMembers: String { return self._s[2842]! } - public var Username_InvalidTaken: String { return self._s[2844]! } - public var SocksProxySetup_AddProxy: String { return self._s[2846]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[2847]! } - public var MediaPicker_UngroupDescription: String { return self._s[2848]! } - public var Login_CodeExpired: String { return self._s[2849]! } - public var Localization_ChooseLanguage: String { return self._s[2850]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[2851]! } + public var Conversation_ScamWarning: String { return self._s[2835]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[2836]! } + public var LocalGroup_Title: String { return self._s[2837]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2839]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[2840]! } + public var VoiceChat_SelectAccount: String { return self._s[2841]! } + public var Login_PhoneFloodError: String { return self._s[2842]! } + public var Conversation_PinMessageAlert_PinAndNotifyMembers: String { return self._s[2843]! } + public var Username_InvalidTaken: String { return self._s[2845]! } + public var SocksProxySetup_AddProxy: String { return self._s[2847]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[2848]! } + public var MediaPicker_UngroupDescription: String { return self._s[2849]! } + public var Login_CodeExpired: String { return self._s[2850]! } + public var Localization_ChooseLanguage: String { return self._s[2851]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[2852]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2852]!, self._r[2852]!, [_0]) - } - public func Channel_DiscussionGroup_HeaderSet(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2853]!, self._r[2853]!, [_0]) } - public var ReportPeer_ReasonOther_Title: String { return self._s[2855]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[2856]! } + public func Channel_DiscussionGroup_HeaderSet(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2854]!, self._r[2854]!, [_0]) + } + public var ReportPeer_ReasonOther_Title: String { return self._s[2856]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[2857]! } public func VoiceChat_UserInvited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2857]!, self._r[2857]!, [_0]) + return formatWithArgumentRanges(self._s[2858]!, self._r[2858]!, [_0]) } - public var PeerInfo_ButtonDiscuss: String { return self._s[2858]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[2859]! } - public var Call_StatusNoAnswer: String { return self._s[2860]! } - public var ScheduledMessages_DeleteMany: String { return self._s[2862]! } - public var Channel_DiscussionGroupInfo: String { return self._s[2863]! } - public var Conversation_UnarchiveDone: String { return self._s[2864]! } - public var LogoutOptions_AddAccountText: String { return self._s[2865]! } - public var Message_PinnedContactMessage: String { return self._s[2866]! } + public var PeerInfo_ButtonDiscuss: String { return self._s[2859]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[2860]! } + public var Call_StatusNoAnswer: String { return self._s[2861]! } + public var ScheduledMessages_DeleteMany: String { return self._s[2863]! } + public var Channel_DiscussionGroupInfo: String { return self._s[2864]! } + public var Conversation_UnarchiveDone: String { return self._s[2865]! } + public var LogoutOptions_AddAccountText: String { return self._s[2866]! } + public var Message_PinnedContactMessage: String { return self._s[2867]! } public func ChatList_DeleteAndLeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2867]!, self._r[2867]!, [_0]) + return formatWithArgumentRanges(self._s[2868]!, self._r[2868]!, [_0]) } - public var VoiceChat_EditBioTitle: String { return self._s[2869]! } + public var VoiceChat_EditBioTitle: String { return self._s[2870]! } public func FileSize_GB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2870]!, self._r[2870]!, [_0]) + return formatWithArgumentRanges(self._s[2871]!, self._r[2871]!, [_0]) } - public var Stats_GroupLanguagesTitle: String { return self._s[2871]! } - public var Passport_FieldAddressHelp: String { return self._s[2872]! } + public var Stats_GroupLanguagesTitle: String { return self._s[2872]! } + public var Passport_FieldAddressHelp: String { return self._s[2873]! } public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2873]!, self._r[2873]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2874]!, self._r[2874]!, [_1, _2]) } - public var ChatSettings_OpenLinksIn: String { return self._s[2875]! } - public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2876]! } - public var Message_Photo: String { return self._s[2877]! } - public var Media_LimitedAccessManage: String { return self._s[2879]! } - public var MediaPicker_AddCaption: String { return self._s[2880]! } - public var LogoutOptions_Title: String { return self._s[2881]! } + public var ChatSettings_OpenLinksIn: String { return self._s[2876]! } + public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2877]! } + public var Message_Photo: String { return self._s[2878]! } + public var Media_LimitedAccessManage: String { return self._s[2880]! } + public var MediaPicker_AddCaption: String { return self._s[2881]! } + public var LogoutOptions_Title: String { return self._s[2882]! } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2882]!, self._r[2882]!, [_1]) + return formatWithArgumentRanges(self._s[2883]!, self._r[2883]!, [_1]) } - public var Conversation_StatusKickedFromGroup: String { return self._s[2883]! } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2884]! } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2885]! } - public var Channel_AdminLogFilter_Title: String { return self._s[2886]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[2887]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[2888]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2889]! } - public var ChannelIntro_Title: String { return self._s[2890]! } - public var Stats_Message_Views: String { return self._s[2891]! } - public var Stickers_Install: String { return self._s[2892]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[2884]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2885]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2886]! } + public var Channel_AdminLogFilter_Title: String { return self._s[2887]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[2888]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[2889]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2890]! } + public var ChannelIntro_Title: String { return self._s[2891]! } + public var Stats_Message_Views: String { return self._s[2892]! } + public var Stickers_Install: String { return self._s[2893]! } public func VoiceOver_Chat_FileFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2893]!, self._r[2893]!, [_0]) + return formatWithArgumentRanges(self._s[2894]!, self._r[2894]!, [_0]) } - public var EditTheme_Create_Preview_IncomingReplyText: String { return self._s[2894]! } - public var Conversation_SwipeToReplyHintTitle: String { return self._s[2896]! } - public var Settings_Username: String { return self._s[2899]! } - public var FastTwoStepSetup_Title: String { return self._s[2900]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2901]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[2902]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2904]! } - public var CallFeedback_ReasonEcho: String { return self._s[2905]! } + public var EditTheme_Create_Preview_IncomingReplyText: String { return self._s[2895]! } + public var Conversation_SwipeToReplyHintTitle: String { return self._s[2897]! } + public var Settings_Username: String { return self._s[2900]! } + public var FastTwoStepSetup_Title: String { return self._s[2901]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2902]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[2903]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2905]! } + public var CallFeedback_ReasonEcho: String { return self._s[2906]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2906]!, self._r[2906]!, [_0]) + return formatWithArgumentRanges(self._s[2907]!, self._r[2907]!, [_0]) } - public var Conversation_OpenBotLinkTitle: String { return self._s[2907]! } - public var SocksProxySetup_Title: String { return self._s[2908]! } - public var CallFeedback_Success: String { return self._s[2909]! } - public var WallpaperPreview_SwipeTopText: String { return self._s[2911]! } - public var InstantPage_AutoNightTheme: String { return self._s[2913]! } - public var Watch_Conversation_Reply: String { return self._s[2914]! } - public var VoiceChat_Share: String { return self._s[2916]! } - public var VoiceChat_AddPhoto: String { return self._s[2917]! } - public var Chat_PanelUnpinAllMessages: String { return self._s[2918]! } - public var WallpaperPreview_Pattern: String { return self._s[2919]! } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2920]! } + public var Conversation_OpenBotLinkTitle: String { return self._s[2908]! } + public var SocksProxySetup_Title: String { return self._s[2909]! } + public var CallFeedback_Success: String { return self._s[2910]! } + public var WallpaperPreview_SwipeTopText: String { return self._s[2912]! } + public var InstantPage_AutoNightTheme: String { return self._s[2914]! } + public var Watch_Conversation_Reply: String { return self._s[2915]! } + public var VoiceChat_Share: String { return self._s[2917]! } + public var VoiceChat_AddPhoto: String { return self._s[2918]! } + public var Chat_PanelUnpinAllMessages: String { return self._s[2919]! } + public var WallpaperPreview_Pattern: String { return self._s[2920]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2921]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2921]!, self._r[2921]!, [_0]) + return formatWithArgumentRanges(self._s[2922]!, self._r[2922]!, [_0]) } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[2922]! } - public var VoiceOver_Chat_GroupInfo: String { return self._s[2923]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[2925]! } - public var Update_Title: String { return self._s[2926]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[2927]! } - public var WallpaperPreview_CropTopText: String { return self._s[2930]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[2931]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2932]! } - public var ChatListFolder_DiscardCancel: String { return self._s[2933]! } - public var Message_PinnedPhotoMessage: String { return self._s[2934]! } - public var Appearance_ThemeDayClassic: String { return self._s[2935]! } - public var VoiceChat_ChangeName: String { return self._s[2936]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[2938]! } - public var VoiceChat_DisplayAsInfo: String { return self._s[2940]! } - public var AccessDenied_Wallpapers: String { return self._s[2945]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[2923]! } + public var VoiceOver_Chat_GroupInfo: String { return self._s[2924]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[2926]! } + public var Update_Title: String { return self._s[2927]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[2928]! } + public var WallpaperPreview_CropTopText: String { return self._s[2931]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[2932]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2933]! } + public var ChatListFolder_DiscardCancel: String { return self._s[2934]! } + public var Message_PinnedPhotoMessage: String { return self._s[2935]! } + public var Appearance_ThemeDayClassic: String { return self._s[2936]! } + public var VoiceChat_ChangeName: String { return self._s[2937]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[2939]! } + public var VoiceChat_DisplayAsInfo: String { return self._s[2941]! } + public var AccessDenied_Wallpapers: String { return self._s[2946]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2946]!, self._r[2946]!, [_0]) + return formatWithArgumentRanges(self._s[2947]!, self._r[2947]!, [_0]) } - public var Weekday_Sunday: String { return self._s[2947]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[2949]! } - public var PeopleNearby_MakeVisibleDescription: String { return self._s[2950]! } - public var AccessDenied_LocationDisabled: String { return self._s[2951]! } - public var Tour_Text3: String { return self._s[2952]! } - public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2953]! } + public var Weekday_Sunday: String { return self._s[2948]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[2950]! } + public var PeopleNearby_MakeVisibleDescription: String { return self._s[2951]! } + public var AccessDenied_LocationDisabled: String { return self._s[2952]! } + public var Tour_Text3: String { return self._s[2953]! } + public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2954]! } public func Time_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2954]!, self._r[2954]!, [_0]) + return formatWithArgumentRanges(self._s[2955]!, self._r[2955]!, [_0]) } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2955]! } - public var Conversation_ClearCache: String { return self._s[2956]! } - public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[2957]! } - public var ChatList_Tabs_AllChats: String { return self._s[2958]! } - public var DialogList_RecentTitlePeople: String { return self._s[2959]! } - public var Stickers_AddToFavorites: String { return self._s[2960]! } - public var ChatList_Context_RemoveFromFolder: String { return self._s[2961]! } - public var VoiceChat_CancelSpeakRequest: String { return self._s[2962]! } - public var Settings_RemoveVideo: String { return self._s[2963]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2964]! } - public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[2965]! } - public var VoiceOver_Chat_YourFile: String { return self._s[2966]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[2968]! } - public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[2969]! } - public var VoiceChat_TapToAddBio: String { return self._s[2970]! } - public var Channel_AdminLog_AddMembers: String { return self._s[2971]! } - public var Map_SendThisLocation: String { return self._s[2973]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[2975]! } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2976]! } - public var CloudStorage_Title: String { return self._s[2977]! } - public var TwoFactorSetup_Password_Action: String { return self._s[2978]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[2979]! } - public var Passport_Address_EditTemporaryRegistration: String { return self._s[2981]! } - public var Undo_LeftGroup: String { return self._s[2982]! } - public var Conversation_StopLiveLocation: String { return self._s[2983]! } - public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[2984]! } - public var Message_PinnedInvoice: String { return self._s[2985]! } - public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2986]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2956]! } + public var Conversation_ClearCache: String { return self._s[2957]! } + public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[2958]! } + public var ChatList_Tabs_AllChats: String { return self._s[2959]! } + public var DialogList_RecentTitlePeople: String { return self._s[2960]! } + public var Stickers_AddToFavorites: String { return self._s[2961]! } + public var ChatList_Context_RemoveFromFolder: String { return self._s[2962]! } + public var VoiceChat_CancelSpeakRequest: String { return self._s[2963]! } + public var Settings_RemoveVideo: String { return self._s[2964]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2965]! } + public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[2966]! } + public var VoiceOver_Chat_YourFile: String { return self._s[2967]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[2969]! } + public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[2970]! } + public var VoiceChat_TapToAddBio: String { return self._s[2971]! } + public var Channel_AdminLog_AddMembers: String { return self._s[2972]! } + public var Map_SendThisLocation: String { return self._s[2974]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[2976]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2977]! } + public var CloudStorage_Title: String { return self._s[2978]! } + public var TwoFactorSetup_Password_Action: String { return self._s[2979]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[2980]! } + public var Passport_Address_EditTemporaryRegistration: String { return self._s[2982]! } + public var Undo_LeftGroup: String { return self._s[2983]! } + public var Conversation_StopLiveLocation: String { return self._s[2984]! } + public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[2985]! } + public var Message_PinnedInvoice: String { return self._s[2986]! } + public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2987]! } public func PUSH_CHAT_MESSAGE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2988]!, self._r[2988]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2989]!, self._r[2989]!, [_1, _2]) } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2989]!, self._r[2989]!, [_0]) + return formatWithArgumentRanges(self._s[2990]!, self._r[2990]!, [_0]) } - public var TwoStepAuth_RecoveryUnavailableResetTitle: String { return self._s[2990]! } - public var Weekday_Tuesday: String { return self._s[2991]! } - public var ChangePhoneNumberCode_Code: String { return self._s[2992]! } - public var VoiceOver_Chat_YourMessage: String { return self._s[2993]! } - public var Calls_CallTabDescription: String { return self._s[2994]! } - public var ChatImport_SelectionErrorNotAdmin: String { return self._s[2995]! } - public var SocksProxySetup_UseProxy: String { return self._s[2997]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2998]! } - public var PasscodeSettings_AlphanumericCode: String { return self._s[2999]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[3000]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[3002]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[3003]! } - public var Exceptions_AddToExceptions: String { return self._s[3004]! } - public var UserInfo_Title: String { return self._s[3005]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[3007]! } - public var VoiceChat_EditDescription: String { return self._s[3009]! } - public var ChatList_Unmute: String { return self._s[3010]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[3011]! } + public var TwoStepAuth_RecoveryUnavailableResetTitle: String { return self._s[2991]! } + public var Weekday_Tuesday: String { return self._s[2992]! } + public var ChangePhoneNumberCode_Code: String { return self._s[2993]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2994]! } + public var Calls_CallTabDescription: String { return self._s[2995]! } + public var ChatImport_SelectionErrorNotAdmin: String { return self._s[2996]! } + public var SocksProxySetup_UseProxy: String { return self._s[2998]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2999]! } + public var PasscodeSettings_AlphanumericCode: String { return self._s[3000]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[3001]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[3003]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[3004]! } + public var Exceptions_AddToExceptions: String { return self._s[3005]! } + public var UserInfo_Title: String { return self._s[3006]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[3008]! } + public var VoiceChat_EditDescription: String { return self._s[3010]! } + public var ChatList_Unmute: String { return self._s[3011]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[3012]! } public func Channel_AdminLog_MessageChangedAutoremoveTimeoutSet(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3012]!, self._r[3012]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3013]!, self._r[3013]!, [_1, _2]) } - public var Stats_GroupTopPostersTitle: String { return self._s[3013]! } - public var Username_CheckingUsername: String { return self._s[3015]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3016]! } - public var PeerSelection_ImportIntoNewGroup: String { return self._s[3020]! } - public var Location_ProximityAlertSetTitle: String { return self._s[3021]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[3022]! } - public var Conversation_JoinVoiceChatAsSpeaker: String { return self._s[3023]! } - public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[3024]! } - public var Settings_ChangePhoneNumber: String { return self._s[3025]! } - public var PeerInfo_PaneLinks: String { return self._s[3026]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3029]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[3031]! } + public var Stats_GroupTopPostersTitle: String { return self._s[3014]! } + public var Username_CheckingUsername: String { return self._s[3016]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3017]! } + public var PeerSelection_ImportIntoNewGroup: String { return self._s[3021]! } + public var Location_ProximityAlertSetTitle: String { return self._s[3022]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[3023]! } + public var Conversation_JoinVoiceChatAsSpeaker: String { return self._s[3024]! } + public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[3025]! } + public var Settings_ChangePhoneNumber: String { return self._s[3026]! } + public var PeerInfo_PaneLinks: String { return self._s[3027]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3030]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[3032]! } public func PUSH_CHAT_VOICECHAT_INVITE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3032]!, self._r[3032]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3033]!, self._r[3033]!, [_1, _2]) } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3033]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3034]! } - public var VoiceChat_CancelConfirmationEnd: String { return self._s[3035]! } - public var BroadcastGroups_ConfirmationAlert_Title: String { return self._s[3036]! } - public var Stats_FollowersBySourceTitle: String { return self._s[3038]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3034]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3035]! } + public var VoiceChat_CancelConfirmationEnd: String { return self._s[3036]! } + public var BroadcastGroups_ConfirmationAlert_Title: String { return self._s[3037]! } + public var Stats_FollowersBySourceTitle: String { return self._s[3039]! } public func Conversation_ScheduleMessage_SendOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3039]!, self._r[3039]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3040]!, self._r[3040]!, [_0, _1]) } - public var Compose_NewEncryptedChatTitle: String { return self._s[3040]! } - public var Channel_CommentsGroup_Header: String { return self._s[3042]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3041]! } + public var Channel_CommentsGroup_Header: String { return self._s[3043]! } public func ShareFileTip_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3046]!, self._r[3046]!, [_0]) + return formatWithArgumentRanges(self._s[3047]!, self._r[3047]!, [_0]) } public func PUSH_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3047]!, self._r[3047]!, [_1]) + return formatWithArgumentRanges(self._s[3048]!, self._r[3048]!, [_1]) } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3049]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3050]! } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3050]!, self._r[3050]!, [_0]) + return formatWithArgumentRanges(self._s[3051]!, self._r[3051]!, [_0]) } - public var Conversation_ReportMessages: String { return self._s[3051]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3052]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3053]! } - public var PrivacySettings_LastSeen: String { return self._s[3055]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[3056]! } - public var Theme_Colors_Proceed: String { return self._s[3057]! } - public var UserInfo_ScamBotWarning: String { return self._s[3058]! } - public var LogoutOptions_LogOut: String { return self._s[3060]! } - public var Conversation_SendMessage: String { return self._s[3061]! } - public var Conversation_CancelForwardCancelForward: String { return self._s[3062]! } - public var VoiceChat_Scheduled: String { return self._s[3064]! } - public var Passport_Address_Region: String { return self._s[3065]! } - public var MediaPicker_CameraRoll: String { return self._s[3067]! } + public var Conversation_ReportMessages: String { return self._s[3052]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3053]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3054]! } + public var PrivacySettings_LastSeen: String { return self._s[3056]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[3057]! } + public var Theme_Colors_Proceed: String { return self._s[3058]! } + public var UserInfo_ScamBotWarning: String { return self._s[3059]! } + public var LogoutOptions_LogOut: String { return self._s[3061]! } + public var Conversation_SendMessage: String { return self._s[3062]! } + public var Conversation_CancelForwardCancelForward: String { return self._s[3063]! } + public var VoiceChat_Scheduled: String { return self._s[3065]! } + public var Passport_Address_Region: String { return self._s[3066]! } + public var MediaPicker_CameraRoll: String { return self._s[3068]! } public func VoiceOver_Chat_ForwardedFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3069]!, self._r[3069]!, [_0]) + return formatWithArgumentRanges(self._s[3070]!, self._r[3070]!, [_0]) } - public var Call_ReportSend: String { return self._s[3071]! } - public var VoiceOver_ChatList_Message: String { return self._s[3072]! } - public var Month_ShortJune: String { return self._s[3073]! } - public var AutoDownloadSettings_GroupChats: String { return self._s[3074]! } + public var Call_ReportSend: String { return self._s[3072]! } + public var VoiceOver_ChatList_Message: String { return self._s[3073]! } + public var Month_ShortJune: String { return self._s[3074]! } + public var AutoDownloadSettings_GroupChats: String { return self._s[3075]! } public func Channel_AdminLog_CaptionEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3077]!, self._r[3077]!, [_0]) + return formatWithArgumentRanges(self._s[3078]!, self._r[3078]!, [_0]) } - public var TwoStepAuth_DisableSuccess: String { return self._s[3078]! } - public var Cache_KeepMedia: String { return self._s[3079]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[3079]! } + public var Cache_KeepMedia: String { return self._s[3080]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3080]!, self._r[3080]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3081]!, self._r[3081]!, [_1, _2, _3]) } - public var Appearance_LargeEmoji: String { return self._s[3081]! } + public var Appearance_LargeEmoji: String { return self._s[3082]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3082]!, self._r[3082]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[3083]!, self._r[3083]!, [_1, _2, _3, _4, _5, _6]) } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[3083]! } - public var Privacy_PaymentsClear_PaymentInfoCleared: String { return self._s[3084]! } - public var Call_CameraConfirmationText: String { return self._s[3085]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[3084]! } + public var Privacy_PaymentsClear_PaymentInfoCleared: String { return self._s[3085]! } + public var Call_CameraConfirmationText: String { return self._s[3086]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3087]!, self._r[3087]!, [_0]) + return formatWithArgumentRanges(self._s[3088]!, self._r[3088]!, [_0]) } - public var DialogList_SearchSectionChats: String { return self._s[3088]! } - public var VoiceOver_MessageContextReport: String { return self._s[3090]! } - public var VoiceChat_RemovePeer: String { return self._s[3091]! } - public var ChatListFolder_ExcludeChatsTitle: String { return self._s[3092]! } - public var InviteLink_ContextCopy: String { return self._s[3093]! } - public var NotificationsSound_Tritone: String { return self._s[3095]! } - public var VoiceChat_YouAreSharingScreen: String { return self._s[3097]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3099]! } - public var Stats_GroupTopAdmin_Actions: String { return self._s[3100]! } - public var TwoFactorSetup_PasswordRecovery_SkipAlertText: String { return self._s[3101]! } - public var TwoStepAuth_ResetAction: String { return self._s[3102]! } - public var PeerInfo_AddToContacts: String { return self._s[3103]! } - public var VoiceChat_OpenChat: String { return self._s[3104]! } - public var AccessDenied_Title: String { return self._s[3105]! } - public var InviteLink_QRCode_InfoChannel: String { return self._s[3106]! } - public var Tour_Title1: String { return self._s[3107]! } - public var VoiceOver_AttachMedia: String { return self._s[3108]! } + public var DialogList_SearchSectionChats: String { return self._s[3089]! } + public var VoiceOver_MessageContextReport: String { return self._s[3091]! } + public var VoiceChat_RemovePeer: String { return self._s[3092]! } + public var ChatListFolder_ExcludeChatsTitle: String { return self._s[3093]! } + public var InviteLink_ContextCopy: String { return self._s[3094]! } + public var NotificationsSound_Tritone: String { return self._s[3096]! } + public var VoiceChat_YouAreSharingScreen: String { return self._s[3098]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3100]! } + public var Stats_GroupTopAdmin_Actions: String { return self._s[3101]! } + public var TwoFactorSetup_PasswordRecovery_SkipAlertText: String { return self._s[3102]! } + public var TwoStepAuth_ResetAction: String { return self._s[3103]! } + public var PeerInfo_AddToContacts: String { return self._s[3104]! } + public var VoiceChat_OpenChat: String { return self._s[3105]! } + public var AccessDenied_Title: String { return self._s[3106]! } + public var InviteLink_QRCode_InfoChannel: String { return self._s[3107]! } + public var Tour_Title1: String { return self._s[3108]! } + public var VoiceOver_AttachMedia: String { return self._s[3109]! } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3110]!, self._r[3110]!, [_0]) + return formatWithArgumentRanges(self._s[3111]!, self._r[3111]!, [_0]) } - public var Chat_Gifs_SavedSectionHeader: String { return self._s[3111]! } - public var Privacy_DeleteDrafts_DraftsDeleted: String { return self._s[3112]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[3113]! } + public var Chat_Gifs_SavedSectionHeader: String { return self._s[3112]! } + public var Privacy_DeleteDrafts_DraftsDeleted: String { return self._s[3113]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[3114]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3114]!, self._r[3114]!, [_0]) + return formatWithArgumentRanges(self._s[3115]!, self._r[3115]!, [_0]) } - public var Channel_AdminLog_MessagePreviousLink: String { return self._s[3115]! } - public var OldChannels_Title: String { return self._s[3116]! } - public var LoginPassword_FloodError: String { return self._s[3117]! } - public var ChatImportActivity_InProgress: String { return self._s[3119]! } - public var Checkout_ErrorPaymentFailed: String { return self._s[3120]! } + public var Channel_AdminLog_MessagePreviousLink: String { return self._s[3116]! } + public var OldChannels_Title: String { return self._s[3117]! } + public var LoginPassword_FloodError: String { return self._s[3118]! } + public var ChatImportActivity_InProgress: String { return self._s[3120]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[3121]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3121]!, self._r[3121]!, [_0]) + return formatWithArgumentRanges(self._s[3122]!, self._r[3122]!, [_0]) } - public var VoiceOver_Media_PlaybackPlay: String { return self._s[3124]! } - public var Passport_CorrectErrors: String { return self._s[3126]! } + public var VoiceOver_Media_PlaybackPlay: String { return self._s[3125]! } + public var Passport_CorrectErrors: String { return self._s[3127]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3127]!, self._r[3127]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3128]!, self._r[3128]!, [_1, _2]) } - public var ChatListFolderSettings_Title: String { return self._s[3128]! } + public var ChatListFolderSettings_Title: String { return self._s[3129]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3129]!, self._r[3129]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3130]!, self._r[3130]!, [_1, _2]) } - public var PhotoEditor_HighlightsTool: String { return self._s[3130]! } - public var Contacts_NotRegisteredSection: String { return self._s[3133]! } + public var PhotoEditor_HighlightsTool: String { return self._s[3131]! } + public var Contacts_NotRegisteredSection: String { return self._s[3134]! } public func Call_VoiceChatInProgressCallMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3134]!, self._r[3134]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3135]!, self._r[3135]!, [_1, _2]) } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3135]!, self._r[3135]!, [_1]) + return formatWithArgumentRanges(self._s[3136]!, self._r[3136]!, [_1]) } - public var InviteLink_Create_UsersLimitInfo: String { return self._s[3136]! } - public var User_DeletedAccount: String { return self._s[3137]! } - public var Conversation_ViewContactDetails: String { return self._s[3138]! } - public var Conversation_Dice_u1F3B3: String { return self._s[3139]! } - public var WebSearch_GIFs: String { return self._s[3140]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[3141]! } - public var Appearance_PreviewOutgoingText: String { return self._s[3142]! } - public var Calls_CallTabTitle: String { return self._s[3143]! } - public var Call_VoiceChatInProgressTitle: String { return self._s[3144]! } - public var Checkout_OptionalTipItem: String { return self._s[3145]! } + public var InviteLink_Create_UsersLimitInfo: String { return self._s[3137]! } + public var User_DeletedAccount: String { return self._s[3138]! } + public var Conversation_ViewContactDetails: String { return self._s[3139]! } + public var Conversation_Dice_u1F3B3: String { return self._s[3140]! } + public var WebSearch_GIFs: String { return self._s[3141]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[3142]! } + public var Appearance_PreviewOutgoingText: String { return self._s[3143]! } + public var Calls_CallTabTitle: String { return self._s[3144]! } + public var Call_VoiceChatInProgressTitle: String { return self._s[3145]! } + public var Checkout_OptionalTipItem: String { return self._s[3146]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3146]!, self._r[3146]!, [_0]) + return formatWithArgumentRanges(self._s[3147]!, self._r[3147]!, [_0]) } - public var Channel_Status: String { return self._s[3147]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[3149]! } - public var VoiceOver_Chat_OptionSelected: String { return self._s[3150]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3151]! } + public var Channel_Status: String { return self._s[3148]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[3150]! } + public var VoiceOver_Chat_OptionSelected: String { return self._s[3151]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3152]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3152]!, self._r[3152]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3153]!, self._r[3153]!, [_0, _1]) } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3154]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[3156]! } - public var Month_ShortDecember: String { return self._s[3157]! } - public var Username_Help: String { return self._s[3158]! } - public var Login_InfoAvatarAdd: String { return self._s[3159]! } - public var Month_ShortMay: String { return self._s[3160]! } - public var DialogList_UnknownPinLimitError: String { return self._s[3161]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[3162]! } - public var TwoStepAuth_EnabledSuccess: String { return self._s[3163]! } - public var VoiceChat_StopScreenSharing: String { return self._s[3164]! } - public var VoiceChat_AskedToSpeak: String { return self._s[3165]! } - public var Weekday_ShortSunday: String { return self._s[3166]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3167]! } - public var AuthSessions_TerminateSession: String { return self._s[3168]! } - public var Passport_Identity_FilesTitle: String { return self._s[3169]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3155]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[3157]! } + public var Month_ShortDecember: String { return self._s[3158]! } + public var Username_Help: String { return self._s[3159]! } + public var Login_InfoAvatarAdd: String { return self._s[3160]! } + public var Month_ShortMay: String { return self._s[3161]! } + public var DialogList_UnknownPinLimitError: String { return self._s[3162]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[3163]! } + public var TwoStepAuth_EnabledSuccess: String { return self._s[3164]! } + public var VoiceChat_StopScreenSharing: String { return self._s[3165]! } + public var VoiceChat_AskedToSpeak: String { return self._s[3166]! } + public var Weekday_ShortSunday: String { return self._s[3167]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3168]! } + public var AuthSessions_TerminateSession: String { return self._s[3169]! } + public var Passport_Identity_FilesTitle: String { return self._s[3170]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3170]!, self._r[3170]!, [_0]) + return formatWithArgumentRanges(self._s[3171]!, self._r[3171]!, [_0]) } - public var PeopleNearby_MakeVisible: String { return self._s[3172]! } + public var PeopleNearby_MakeVisible: String { return self._s[3173]! } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3173]!, self._r[3173]!, [_0]) + return formatWithArgumentRanges(self._s[3174]!, self._r[3174]!, [_0]) } - public var Widget_UpdatedAt: String { return self._s[3174]! } + public var Widget_UpdatedAt: String { return self._s[3175]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3175]!, self._r[3175]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3176]!, self._r[3176]!, [_1, _2]) } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3176]!, self._r[3176]!, [_0]) + return formatWithArgumentRanges(self._s[3177]!, self._r[3177]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3177]! } - public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3178]! } - public var ImportStickerPack_ChooseStickerSet: String { return self._s[3180]! } - public var Conversation_ContextMenuForward: String { return self._s[3181]! } - public var Channel_AdminLog_CanManageCalls: String { return self._s[3182]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3178]! } + public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3179]! } + public var ImportStickerPack_ChooseStickerSet: String { return self._s[3181]! } + public var Conversation_ContextMenuForward: String { return self._s[3182]! } + public var Channel_AdminLog_CanManageCalls: String { return self._s[3183]! } public func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3184]!, self._r[3184]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3185]!, self._r[3185]!, [_1, _2, _3]) } - public var Notification_GroupInviterSelf: String { return self._s[3186]! } - public var Privacy_Forwards_NeverLink: String { return self._s[3187]! } - public var AuthSessions_CurrentSession: String { return self._s[3188]! } - public var Passport_Address_EditPassportRegistration: String { return self._s[3189]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3190]! } - public var ChatSearch_ResultsTooltip: String { return self._s[3192]! } - public var CheckoutInfo_Pay: String { return self._s[3193]! } + public var Notification_GroupInviterSelf: String { return self._s[3187]! } + public var Privacy_Forwards_NeverLink: String { return self._s[3188]! } + public var AuthSessions_CurrentSession: String { return self._s[3189]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[3190]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3191]! } + public var ChatSearch_ResultsTooltip: String { return self._s[3193]! } + public var CheckoutInfo_Pay: String { return self._s[3194]! } public func Conversation_PinMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3195]!, self._r[3195]!, [_0]) + return formatWithArgumentRanges(self._s[3196]!, self._r[3196]!, [_0]) } - public var GroupInfo_AddParticipant: String { return self._s[3196]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[3197]! } + public var GroupInfo_AddParticipant: String { return self._s[3197]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[3198]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3198]!, self._r[3198]!, [_0]) + return formatWithArgumentRanges(self._s[3199]!, self._r[3199]!, [_0]) } - public var Localization_LanguageCustom: String { return self._s[3199]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[3200]! } - public var Settings_UsernameEmpty: String { return self._s[3201]! } - public var Settings_FAQ_URL: String { return self._s[3202]! } - public var ChatList_UndoArchiveText1: String { return self._s[3203]! } - public var Common_Select: String { return self._s[3205]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3206]! } - public var Notification_PassportValueAddress: String { return self._s[3207]! } - public var Conversation_MessageDialogDelete: String { return self._s[3208]! } - public var Map_OpenInYandexNavigator: String { return self._s[3210]! } - public var DialogList_SearchSectionDialogs: String { return self._s[3211]! } - public var AccessDenied_Contacts: String { return self._s[3212]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3214]! } - public var Passport_ScanPassportHelp: String { return self._s[3215]! } - public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3216]! } - public var ChatListFolder_NameChannels: String { return self._s[3217]! } - public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3218]! } + public var Localization_LanguageCustom: String { return self._s[3200]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[3201]! } + public var Settings_UsernameEmpty: String { return self._s[3202]! } + public var Settings_FAQ_URL: String { return self._s[3203]! } + public var ChatList_UndoArchiveText1: String { return self._s[3204]! } + public var Common_Select: String { return self._s[3206]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3207]! } + public var Notification_PassportValueAddress: String { return self._s[3208]! } + public var Conversation_MessageDialogDelete: String { return self._s[3209]! } + public var Map_OpenInYandexNavigator: String { return self._s[3211]! } + public var DialogList_SearchSectionDialogs: String { return self._s[3212]! } + public var AccessDenied_Contacts: String { return self._s[3213]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3215]! } + public var Passport_ScanPassportHelp: String { return self._s[3216]! } + public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3217]! } + public var ChatListFolder_NameChannels: String { return self._s[3218]! } + public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3219]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3219]!, self._r[3219]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3220]!, self._r[3220]!, [_1, _2]) } - public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3220]! } + public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3221]! } public func VoiceChat_InviteMemberToGroupFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3221]!, self._r[3221]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3222]!, self._r[3222]!, [_1, _2]) } - public var Conversation_GifTooltip: String { return self._s[3222]! } - public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3223]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3225]! } - public var VoiceChat_Connecting: String { return self._s[3226]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3227]! } + public var Conversation_GifTooltip: String { return self._s[3223]! } + public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3224]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3226]! } + public var VoiceChat_Connecting: String { return self._s[3227]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3228]! } public func Channel_AdminLog_CreatedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3228]!, self._r[3228]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3229]!, self._r[3229]!, [_1, _2]) } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3229]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3230]! } - public var CreatePoll_Quiz: String { return self._s[3231]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[3233]! } - public var Watch_Message_Invoice: String { return self._s[3234]! } - public var Settings_AddAnotherAccount_Help: String { return self._s[3235]! } - public var Watch_Message_Unsupported: String { return self._s[3236]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3230]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3231]! } + public var CreatePoll_Quiz: String { return self._s[3232]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[3234]! } + public var Watch_Message_Invoice: String { return self._s[3235]! } + public var Settings_AddAnotherAccount_Help: String { return self._s[3236]! } + public var Watch_Message_Unsupported: String { return self._s[3237]! } public func Call_CameraOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3238]!, self._r[3238]!, [_0]) + return formatWithArgumentRanges(self._s[3239]!, self._r[3239]!, [_0]) } - public var AuthSessions_TerminateOtherSessions: String { return self._s[3239]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[3241]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3242]! } - public var Call_IncomingVoiceCall: String { return self._s[3243]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[3240]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[3242]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3243]! } + public var Call_IncomingVoiceCall: String { return self._s[3244]! } public func Channel_AdminLog_MessageTransferedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3244]!, self._r[3244]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3245]!, self._r[3245]!, [_1, _2]) } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[3245]! } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3246]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3247]! } - public var Group_ErrorAccessDenied: String { return self._s[3248]! } - public var PasscodeSettings_HelpTop: String { return self._s[3249]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3250]! } - public var AddContact_SharedContactException: String { return self._s[3251]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[3252]! } - public var Privacy_TopPeers: String { return self._s[3253]! } - public var Web_OpenExternal: String { return self._s[3254]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[3255]! } - public var Channel_Management_LabelAdministrator: String { return self._s[3256]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[3246]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3247]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3248]! } + public var Group_ErrorAccessDenied: String { return self._s[3249]! } + public var PasscodeSettings_HelpTop: String { return self._s[3250]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3251]! } + public var AddContact_SharedContactException: String { return self._s[3252]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[3253]! } + public var Privacy_TopPeers: String { return self._s[3254]! } + public var Web_OpenExternal: String { return self._s[3255]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[3256]! } + public var Channel_Management_LabelAdministrator: String { return self._s[3257]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3257]!, self._r[3257]!, [_0]) + return formatWithArgumentRanges(self._s[3258]!, self._r[3258]!, [_0]) } - public var Conversation_PhoneCopied: String { return self._s[3258]! } - public var Permissions_Skip: String { return self._s[3259]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3260]! } + public var Conversation_PhoneCopied: String { return self._s[3259]! } + public var Permissions_Skip: String { return self._s[3260]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3261]! } public func VoiceChat_ForwardTooltip_TwoChats(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3261]!, self._r[3261]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3262]!, self._r[3262]!, [_0, _1]) } - public var PeopleNearby_Title: String { return self._s[3262]! } - public var GroupInfo_SharedMediaNone: String { return self._s[3263]! } + public var PeopleNearby_Title: String { return self._s[3263]! } + public var GroupInfo_SharedMediaNone: String { return self._s[3264]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3265]!, self._r[3265]!, [_1]) + return formatWithArgumentRanges(self._s[3266]!, self._r[3266]!, [_1]) } - public var Profile_MessageLifetime1w: String { return self._s[3266]! } + public var Profile_MessageLifetime1w: String { return self._s[3267]! } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3267]!, self._r[3267]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3268]!, self._r[3268]!, [_1, _2, _3]) } - public var WebBrowser_DefaultBrowser: String { return self._s[3268]! } - public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3270]! } - public var EditTheme_Edit_BottomInfo: String { return self._s[3271]! } - public var Privacy_Forwards_Preview: String { return self._s[3272]! } - public var Settings_EditAccount: String { return self._s[3273]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3269]! } + public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3271]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[3272]! } + public var Privacy_Forwards_Preview: String { return self._s[3273]! } + public var Settings_EditAccount: String { return self._s[3274]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_0]) + return formatWithArgumentRanges(self._s[3275]!, self._r[3275]!, [_0]) } - public var TwoFactorSetup_Intro_Title: String { return self._s[3275]! } + public var TwoFactorSetup_Intro_Title: String { return self._s[3276]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3277]!, self._r[3277]!, [_1]) + return formatWithArgumentRanges(self._s[3278]!, self._r[3278]!, [_1]) } - public var PeerInfo_ButtonVideoCall: String { return self._s[3278]! } + public var PeerInfo_ButtonVideoCall: String { return self._s[3279]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3279]!, self._r[3279]!, [_0]) + return formatWithArgumentRanges(self._s[3280]!, self._r[3280]!, [_0]) } - public var Login_InfoHelp: String { return self._s[3280]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3281]! } - public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3282]! } - public var Profile_MessageLifetime1d: String { return self._s[3283]! } - public var Group_UpgradeConfirmation: String { return self._s[3284]! } + public var Login_InfoHelp: String { return self._s[3281]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3282]! } + public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3283]! } + public var Profile_MessageLifetime1d: String { return self._s[3284]! } + public var Group_UpgradeConfirmation: String { return self._s[3285]! } public func PUSH_PINNED_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3285]!, self._r[3285]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3286]!, self._r[3286]!, [_1, _2]) } - public var Appearance_RemoveThemeColor: String { return self._s[3286]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3287]! } + public var Appearance_RemoveThemeColor: String { return self._s[3287]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3288]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3288]!, self._r[3288]!, [_0]) + return formatWithArgumentRanges(self._s[3289]!, self._r[3289]!, [_0]) } - public var UserInfo_BotSettings: String { return self._s[3289]! } + public var UserInfo_BotSettings: String { return self._s[3290]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3291]!, self._r[3291]!, [_0]) + return formatWithArgumentRanges(self._s[3292]!, self._r[3292]!, [_0]) } - public var Permissions_ContactsText_v0: String { return self._s[3292]! } - public var Conversation_PinMessagesForMe: String { return self._s[3293]! } - public var VoiceChat_PanelJoin: String { return self._s[3294]! } - public var Conversation_DiscussionStarted: String { return self._s[3296]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3297]! } - public var SharedMedia_SearchNoResults: String { return self._s[3299]! } + public var Permissions_ContactsText_v0: String { return self._s[3293]! } + public var Conversation_PinMessagesForMe: String { return self._s[3294]! } + public var VoiceChat_PanelJoin: String { return self._s[3295]! } + public var Conversation_DiscussionStarted: String { return self._s[3297]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3298]! } + public var SharedMedia_SearchNoResults: String { return self._s[3300]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3301]!, self._r[3301]!, [_0]) + return formatWithArgumentRanges(self._s[3302]!, self._r[3302]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3303]!, self._r[3303]!, [_0]) + return formatWithArgumentRanges(self._s[3304]!, self._r[3304]!, [_0]) } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3304]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3305]! } public func TwoStepAuth_ResetPendingText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3305]!, self._r[3305]!, [_0]) + return formatWithArgumentRanges(self._s[3306]!, self._r[3306]!, [_0]) } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3306]! } - public var Call_AudioRouteHeadphones: String { return self._s[3307]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3307]! } + public var Call_AudioRouteHeadphones: String { return self._s[3308]! } public func Notification_VoiceChatScheduledTomorrowChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3309]!, self._r[3309]!, [_0]) + return formatWithArgumentRanges(self._s[3310]!, self._r[3310]!, [_0]) } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3310]!, self._r[3310]!, [_1]) + return formatWithArgumentRanges(self._s[3311]!, self._r[3311]!, [_1]) } - public var Passport_Identity_FilesView: String { return self._s[3311]! } - public var TwoStepAuth_SetupEmail: String { return self._s[3312]! } - public var Widget_ApplicationStartRequired: String { return self._s[3313]! } - public var PhotoEditor_Original: String { return self._s[3314]! } - public var Call_YourMicrophoneOff: String { return self._s[3315]! } - public var Permissions_ContactsAllow_v0: String { return self._s[3316]! } - public var Conversation_CardNumberCopied: String { return self._s[3317]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3318]! } - public var PrivacyPolicy_Decline: String { return self._s[3319]! } - public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3320]! } - public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3321]! } - public var ChatListFolder_IncludeSectionInfo: String { return self._s[3322]! } + public var Passport_Identity_FilesView: String { return self._s[3312]! } + public var TwoStepAuth_SetupEmail: String { return self._s[3313]! } + public var Widget_ApplicationStartRequired: String { return self._s[3314]! } + public var PhotoEditor_Original: String { return self._s[3315]! } + public var Call_YourMicrophoneOff: String { return self._s[3316]! } + public var Permissions_ContactsAllow_v0: String { return self._s[3317]! } + public var Conversation_CardNumberCopied: String { return self._s[3318]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3319]! } + public var PrivacyPolicy_Decline: String { return self._s[3320]! } + public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3321]! } + public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3322]! } + public var ChatListFolder_IncludeSectionInfo: String { return self._s[3323]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3323]!, self._r[3323]!, [_0]) + return formatWithArgumentRanges(self._s[3324]!, self._r[3324]!, [_0]) } - public var Passport_Identity_Name: String { return self._s[3324]! } - public var WallpaperPreview_PatternTitle: String { return self._s[3326]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3327]! } - public var WallpaperSearch_ColorOrange: String { return self._s[3329]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3330]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3331]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3332]! } - public var IntentsSettings_ResetAll: String { return self._s[3333]! } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3335]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3336]! } - public var ChatList_DeleteForAllSubscribers: String { return self._s[3337]! } - public var Notification_Exceptions_Add: String { return self._s[3338]! } - public var Group_DeleteGroup: String { return self._s[3339]! } - public var Cache_Help: String { return self._s[3340]! } - public var Call_AudioRouteMute: String { return self._s[3341]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3342]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[3343]! } + public var Passport_Identity_Name: String { return self._s[3325]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3327]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3328]! } + public var WallpaperSearch_ColorOrange: String { return self._s[3330]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3331]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3332]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3333]! } + public var IntentsSettings_ResetAll: String { return self._s[3334]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3336]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3337]! } + public var ChatList_DeleteForAllSubscribers: String { return self._s[3338]! } + public var Notification_Exceptions_Add: String { return self._s[3339]! } + public var Group_DeleteGroup: String { return self._s[3340]! } + public var Cache_Help: String { return self._s[3341]! } + public var Call_AudioRouteMute: String { return self._s[3342]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3343]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[3344]! } public func VoiceChat_Status_MembersFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3344]!, self._r[3344]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3345]!, self._r[3345]!, [_1, _2]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3345]!, self._r[3345]!, [_1]) + return formatWithArgumentRanges(self._s[3346]!, self._r[3346]!, [_1]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3346]!, self._r[3346]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3347]!, self._r[3347]!, [_1, _2]) } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3347]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[3348]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3348]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[3349]! } public func PUSH_CHAT_VOICECHAT_INVITE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3349]!, self._r[3349]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3350]!, self._r[3350]!, [_1, _2, _3]) } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3350]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3351]! } - public var ClearCache_StorageFree: String { return self._s[3352]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3351]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3352]! } + public var ClearCache_StorageFree: String { return self._s[3353]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3353]!, self._r[3353]!, [_0]) + return formatWithArgumentRanges(self._s[3354]!, self._r[3354]!, [_0]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[3354]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[3355]! } public func Channel_AdminLog_EditedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3357]!, self._r[3357]!, [_1, _2]) } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[3357]! } - public var DialogList_Typing: String { return self._s[3358]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[3358]! } + public var DialogList_Typing: String { return self._s[3359]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3359]!, self._r[3359]!, [_0]) + return formatWithArgumentRanges(self._s[3360]!, self._r[3360]!, [_0]) } - public var Target_SelectGroup: String { return self._s[3360]! } - public var AuthSessions_IncompleteAttempts: String { return self._s[3361]! } - public var TwoStepAuth_RecoveryEmailResetText: String { return self._s[3362]! } + public var Target_SelectGroup: String { return self._s[3361]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3362]! } + public var TwoStepAuth_RecoveryEmailResetText: String { return self._s[3363]! } public func Notification_ProximityReached(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3363]!, self._r[3363]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3364]!, self._r[3364]!, [_1, _2, _3]) } - public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3364]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3365]! } + public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3365]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3366]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3366]!, self._r[3366]!, [_0]) + return formatWithArgumentRanges(self._s[3367]!, self._r[3367]!, [_0]) } - public var Channel_AdminLog_CanSendMessages: String { return self._s[3367]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3368]! } - public var ChatSettings_TextSize: String { return self._s[3369]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3371]! } - public var Map_SendThisPlace: String { return self._s[3372]! } - public var Conversation_TextCopied: String { return self._s[3373]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3374]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3375]! } - public var Call_ShareStats: String { return self._s[3376]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[3368]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3369]! } + public var ChatSettings_TextSize: String { return self._s[3370]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3372]! } + public var Map_SendThisPlace: String { return self._s[3373]! } + public var Conversation_TextCopied: String { return self._s[3374]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3375]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3376]! } + public var Call_ShareStats: String { return self._s[3377]! } public func PUSH_CHAT_VOICECHAT_END(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3378]!, self._r[3378]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3379]!, self._r[3379]!, [_1, _2]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3379]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[3380]! } - public var Settings_Support: String { return self._s[3381]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3382]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3380]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[3381]! } + public var Settings_Support: String { return self._s[3382]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3383]! } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3384]!, self._r[3384]!, [_0]) + return formatWithArgumentRanges(self._s[3385]!, self._r[3385]!, [_0]) } - public var Watch_Conversation_GroupInfo: String { return self._s[3385]! } - public var Tour_Text4: String { return self._s[3386]! } - public var VoiceChat_CancelReminder: String { return self._s[3387]! } - public var Calls_StartNewCall: String { return self._s[3388]! } - public var UserInfo_FakeUserWarning: String { return self._s[3390]! } - public var PasscodeSettings_AutoLock: String { return self._s[3391]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3392]! } - public var Bot_DescriptionTitle: String { return self._s[3394]! } - public var Map_LocationTitle: String { return self._s[3395]! } - public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3396]! } - public var Conversation_HashtagCopied: String { return self._s[3397]! } + public var Watch_Conversation_GroupInfo: String { return self._s[3386]! } + public var Tour_Text4: String { return self._s[3387]! } + public var VoiceChat_CancelReminder: String { return self._s[3388]! } + public var Calls_StartNewCall: String { return self._s[3389]! } + public var UserInfo_FakeUserWarning: String { return self._s[3391]! } + public var PasscodeSettings_AutoLock: String { return self._s[3392]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3393]! } + public var Bot_DescriptionTitle: String { return self._s[3395]! } + public var Map_LocationTitle: String { return self._s[3396]! } + public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3397]! } + public var Conversation_HashtagCopied: String { return self._s[3398]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3398]!, self._r[3398]!, [_1]) + return formatWithArgumentRanges(self._s[3399]!, self._r[3399]!, [_1]) } - public var VoiceChat_ReminderNotify: String { return self._s[3399]! } - public var Login_EmailNotConfiguredError: String { return self._s[3400]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[3401]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[3402]! } - public var Permissions_CellularDataText_v0: String { return self._s[3403]! } - public var Conversation_EncryptionProcessing: String { return self._s[3404]! } - public var GroupPermission_Delete: String { return self._s[3406]! } - public var Contacts_SortByName: String { return self._s[3407]! } - public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3408]! } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[3409]! } - public var Group_Management_AddModeratorHelp: String { return self._s[3411]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3412]! } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3413]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[3415]! } + public var VoiceChat_ReminderNotify: String { return self._s[3400]! } + public var Login_EmailNotConfiguredError: String { return self._s[3401]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[3402]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[3403]! } + public var Permissions_CellularDataText_v0: String { return self._s[3404]! } + public var Conversation_EncryptionProcessing: String { return self._s[3405]! } + public var GroupPermission_Delete: String { return self._s[3407]! } + public var Contacts_SortByName: String { return self._s[3408]! } + public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3409]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[3410]! } + public var Group_Management_AddModeratorHelp: String { return self._s[3412]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3413]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3414]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[3416]! } public func PUSH_CHANNEL_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3416]!, self._r[3416]!, [_1]) + return formatWithArgumentRanges(self._s[3417]!, self._r[3417]!, [_1]) } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3417]!, self._r[3417]!, [_0]) + return formatWithArgumentRanges(self._s[3418]!, self._r[3418]!, [_0]) } - public var ChatList_Context_Delete: String { return self._s[3418]! } - public var VoiceChat_InviteMember: String { return self._s[3419]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3420]! } - public var Conversation_Processing: String { return self._s[3421]! } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[3422]! } - public var ChatSettings_Stickers: String { return self._s[3423]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3424]! } - public var Passport_Language_cs: String { return self._s[3425]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3427]! } - public var Conversation_Contact: String { return self._s[3428]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[3429]! } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[3431]! } - public var Theme_Unsupported: String { return self._s[3432]! } - public var Privacy_TopPeersWarning: String { return self._s[3433]! } + public var ChatList_Context_Delete: String { return self._s[3419]! } + public var VoiceChat_InviteMember: String { return self._s[3420]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3421]! } + public var Conversation_Processing: String { return self._s[3422]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[3423]! } + public var ChatSettings_Stickers: String { return self._s[3424]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3425]! } + public var Passport_Language_cs: String { return self._s[3426]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3428]! } + public var Conversation_Contact: String { return self._s[3429]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[3430]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[3432]! } + public var Theme_Unsupported: String { return self._s[3433]! } + public var Privacy_TopPeersWarning: String { return self._s[3434]! } public func Conversation_ScheduledVoiceChatStartsTodayShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3434]!, self._r[3434]!, [_0]) + return formatWithArgumentRanges(self._s[3435]!, self._r[3435]!, [_0]) } - public var InviteLink_Title: String { return self._s[3436]! } + public var InviteLink_Title: String { return self._s[3437]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3437]!, self._r[3437]!, [_0]) + return formatWithArgumentRanges(self._s[3438]!, self._r[3438]!, [_0]) } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3438]! } - public var TwoStepAuth_RemovePassword: String { return self._s[3439]! } - public var Settings_CheckPhoneNumberText: String { return self._s[3440]! } - public var PeopleNearby_Users: String { return self._s[3441]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3442]! } - public var Settings_SetProfilePhoto: String { return self._s[3443]! } - public var Conversation_ContextMenuBan: String { return self._s[3444]! } - public var KeyCommand_ScrollUp: String { return self._s[3445]! } - public var Settings_ChatSettings: String { return self._s[3447]! } - public var CallList_RecentCallsHeader: String { return self._s[3448]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3439]! } + public var TwoStepAuth_RemovePassword: String { return self._s[3440]! } + public var Settings_CheckPhoneNumberText: String { return self._s[3441]! } + public var PeopleNearby_Users: String { return self._s[3442]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3443]! } + public var Settings_SetProfilePhoto: String { return self._s[3444]! } + public var Conversation_ContextMenuBan: String { return self._s[3445]! } + public var KeyCommand_ScrollUp: String { return self._s[3446]! } + public var Settings_ChatSettings: String { return self._s[3448]! } + public var CallList_RecentCallsHeader: String { return self._s[3449]! } public func PUSH_CHAT_MESSAGE_VIDEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3449]!, self._r[3449]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3450]!, self._r[3450]!, [_1, _2]) } - public var Stats_GroupTopInvitersTitle: String { return self._s[3450]! } - public var Passport_Phone_EnterOtherNumber: String { return self._s[3451]! } - public var VoiceChat_StartRecordingTitle: String { return self._s[3452]! } + public var Stats_GroupTopInvitersTitle: String { return self._s[3451]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[3452]! } + public var VoiceChat_StartRecordingTitle: String { return self._s[3453]! } public func Notification_VoiceChatScheduledToday(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3453]!, self._r[3453]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3454]!, self._r[3454]!, [_1, _2]) } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3455]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3456]! } - public var VoiceOver_ChatList_MessageRead: String { return self._s[3458]! } - public var Stats_GroupTopPoster_Promote: String { return self._s[3461]! } - public var Cache_Title: String { return self._s[3462]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3456]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3457]! } + public var VoiceOver_ChatList_MessageRead: String { return self._s[3459]! } + public var Stats_GroupTopPoster_Promote: String { return self._s[3462]! } + public var Cache_Title: String { return self._s[3463]! } public func Conversation_AutoremoveTimerSetToastText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3463]!, self._r[3463]!, [_0]) + return formatWithArgumentRanges(self._s[3464]!, self._r[3464]!, [_0]) } - public var Clipboard_SendPhoto: String { return self._s[3464]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3466]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3467]! } - public var WatchRemote_AlertTitle: String { return self._s[3470]! } - public var Appearance_ReduceMotion: String { return self._s[3471]! } + public var Clipboard_SendPhoto: String { return self._s[3465]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3467]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3468]! } + public var WatchRemote_AlertTitle: String { return self._s[3471]! } + public var Appearance_ReduceMotion: String { return self._s[3472]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3474]!, self._r[3474]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3475]!, self._r[3475]!, [_1, _2]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[3475]! } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3476]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[3477]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[3476]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3477]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[3478]! } public func Call_CallInProgressVoiceChatMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3478]!, self._r[3478]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3479]!, self._r[3479]!, [_1, _2]) } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3480]!, self._r[3480]!, [_0]) + return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_0]) } - public var ChatListFolder_DiscardConfirmation: String { return self._s[3481]! } + public var ChatListFolder_DiscardConfirmation: String { return self._s[3482]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3483]!, self._r[3483]!, [_0]) + return formatWithArgumentRanges(self._s[3484]!, self._r[3484]!, [_0]) } - public var InstantPage_Search: String { return self._s[3484]! } - public var ChatState_WaitingForNetwork: String { return self._s[3485]! } - public var GroupInfo_Sound: String { return self._s[3486]! } - public var NotificationsSound_Telegraph: String { return self._s[3487]! } + public var InstantPage_Search: String { return self._s[3485]! } + public var ChatState_WaitingForNetwork: String { return self._s[3486]! } + public var GroupInfo_Sound: String { return self._s[3487]! } + public var NotificationsSound_Telegraph: String { return self._s[3488]! } public func VoiceChat_ParticipantIsSpeaking(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3488]!, self._r[3488]!, [_1]) + return formatWithArgumentRanges(self._s[3489]!, self._r[3489]!, [_1]) } - public var NotificationsSound_Hello: String { return self._s[3489]! } - public var VoiceChat_LeaveConfirmation: String { return self._s[3490]! } - public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3491]! } - public var Passport_FieldIdentityDetailsHelp: String { return self._s[3492]! } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3493]! } - public var Conversation_HoldForVideo: String { return self._s[3494]! } - public var Conversation_PinOlderMessageAlertText: String { return self._s[3495]! } - public var Appearance_ShareTheme: String { return self._s[3496]! } - public var TwoStepAuth_SetupHint: String { return self._s[3497]! } - public var Stats_GrowthTitle: String { return self._s[3500]! } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3501]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[3502]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3503]! } - public var GroupPermission_NoSendMessages: String { return self._s[3506]! } - public var Conversation_SetReminder_Title: String { return self._s[3507]! } - public var Privacy_Calls_CustomHelp: String { return self._s[3508]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3509]! } + public var NotificationsSound_Hello: String { return self._s[3490]! } + public var VoiceChat_LeaveConfirmation: String { return self._s[3491]! } + public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3492]! } + public var Passport_FieldIdentityDetailsHelp: String { return self._s[3493]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3494]! } + public var Conversation_HoldForVideo: String { return self._s[3495]! } + public var Conversation_PinOlderMessageAlertText: String { return self._s[3496]! } + public var Appearance_ShareTheme: String { return self._s[3497]! } + public var TwoStepAuth_SetupHint: String { return self._s[3498]! } + public var Stats_GrowthTitle: String { return self._s[3501]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3502]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[3503]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3504]! } + public var GroupPermission_NoSendMessages: String { return self._s[3507]! } + public var Conversation_SetReminder_Title: String { return self._s[3508]! } + public var Privacy_Calls_CustomHelp: String { return self._s[3509]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3510]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3510]!, self._r[3510]!, [_0]) + return formatWithArgumentRanges(self._s[3511]!, self._r[3511]!, [_0]) } - public var InviteLinks_InviteLinkExpired: String { return self._s[3512]! } - public var Undo_SecretChatDeleted: String { return self._s[3513]! } - public var PhotoEditor_ContrastTool: String { return self._s[3514]! } - public var Privacy_Forwards: String { return self._s[3515]! } - public var AuthSessions_LoggedInWithTelegram: String { return self._s[3516]! } - public var KeyCommand_SendMessage: String { return self._s[3518]! } - public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3519]! } + public var InviteLinks_InviteLinkExpired: String { return self._s[3513]! } + public var Undo_SecretChatDeleted: String { return self._s[3514]! } + public var PhotoEditor_ContrastTool: String { return self._s[3515]! } + public var Privacy_Forwards: String { return self._s[3516]! } + public var AuthSessions_LoggedInWithTelegram: String { return self._s[3517]! } + public var KeyCommand_SendMessage: String { return self._s[3519]! } + public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3520]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3520]!, self._r[3520]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3521]!, self._r[3521]!, [_1, _2]) } - public var VoiceChat_VideoPaused: String { return self._s[3521]! } - public var GroupPermission_NoSendGifs: String { return self._s[3522]! } + public var VoiceChat_VideoPaused: String { return self._s[3522]! } + public var GroupPermission_NoSendGifs: String { return self._s[3523]! } public func Notification_VoiceChatEndedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3523]!, self._r[3523]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3524]!, self._r[3524]!, [_1, _2]) } - public var Notification_MessageLifetime2s: String { return self._s[3524]! } - public var Message_Theme: String { return self._s[3525]! } - public var Conversation_Dice_u1F3AF: String { return self._s[3528]! } + public var Notification_MessageLifetime2s: String { return self._s[3525]! } + public var Message_Theme: String { return self._s[3526]! } + public var Conversation_Dice_u1F3AF: String { return self._s[3529]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3529]!, self._r[3529]!, [_0]) + return formatWithArgumentRanges(self._s[3530]!, self._r[3530]!, [_0]) } - public var Group_UpgradeNoticeHeader: String { return self._s[3531]! } - public var PeerInfo_BioExpand: String { return self._s[3532]! } - public var Passport_DeletePersonalDetails: String { return self._s[3533]! } - public var Widget_NoUsers: String { return self._s[3534]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[3535]! } - public var VoiceChat_VideoPreviewDescription: String { return self._s[3536]! } - public var Login_TermsOfServiceDecline: String { return self._s[3537]! } - public var VoiceChat_UnmuteSuggestion: String { return self._s[3538]! } - public var CreatePoll_QuizTip: String { return self._s[3540]! } - public var Watch_LastSeen_WithinAWeek: String { return self._s[3541]! } - public var MessagePoll_SubmitVote: String { return self._s[3543]! } - public var ChatSettings_AutoDownloadEnabled: String { return self._s[3544]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[3545]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3546]! } - public var Conversation_UpdateTelegram: String { return self._s[3547]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3532]! } + public var PeerInfo_BioExpand: String { return self._s[3533]! } + public var Passport_DeletePersonalDetails: String { return self._s[3534]! } + public var Widget_NoUsers: String { return self._s[3535]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[3536]! } + public var VoiceChat_VideoPreviewDescription: String { return self._s[3537]! } + public var Login_TermsOfServiceDecline: String { return self._s[3538]! } + public var VoiceChat_UnmuteSuggestion: String { return self._s[3539]! } + public var CreatePoll_QuizTip: String { return self._s[3541]! } + public var Watch_LastSeen_WithinAWeek: String { return self._s[3542]! } + public var MessagePoll_SubmitVote: String { return self._s[3544]! } + public var ChatSettings_AutoDownloadEnabled: String { return self._s[3545]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[3546]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3547]! } + public var Conversation_UpdateTelegram: String { return self._s[3548]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3548]!, self._r[3548]!, [_0]) + return formatWithArgumentRanges(self._s[3549]!, self._r[3549]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3549]! } - public var CallSettings_Always: String { return self._s[3550]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[3551]! } - public var VoiceChat_MutedByAdminHelp: String { return self._s[3552]! } - public var Login_TermsOfServiceHeader: String { return self._s[3553]! } - public var KeyCommand_ChatInfo: String { return self._s[3554]! } - public var MessagePoll_LabelPoll: String { return self._s[3555]! } - public var Paint_Clear: String { return self._s[3556]! } - public var PeerInfo_ButtonMute: String { return self._s[3557]! } - public var LastSeen_WithinAWeek: String { return self._s[3558]! } - public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3559]! } - public var Passport_Identity_FrontSide: String { return self._s[3560]! } - public var Stickers_GroupStickers: String { return self._s[3561]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3562]! } + public var UserInfo_About_Placeholder: String { return self._s[3550]! } + public var CallSettings_Always: String { return self._s[3551]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[3552]! } + public var VoiceChat_MutedByAdminHelp: String { return self._s[3553]! } + public var Login_TermsOfServiceHeader: String { return self._s[3554]! } + public var KeyCommand_ChatInfo: String { return self._s[3555]! } + public var MessagePoll_LabelPoll: String { return self._s[3556]! } + public var Paint_Clear: String { return self._s[3557]! } + public var PeerInfo_ButtonMute: String { return self._s[3558]! } + public var LastSeen_WithinAWeek: String { return self._s[3559]! } + public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3560]! } + public var Passport_Identity_FrontSide: String { return self._s[3561]! } + public var Stickers_GroupStickers: String { return self._s[3562]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3563]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3563]!, self._r[3563]!, [_0]) + return formatWithArgumentRanges(self._s[3564]!, self._r[3564]!, [_0]) } - public var VoiceOver_BotCommands: String { return self._s[3564]! } + public var VoiceOver_BotCommands: String { return self._s[3565]! } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3567]!, self._r[3567]!, [_1]) + return formatWithArgumentRanges(self._s[3568]!, self._r[3568]!, [_1]) } - public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3568]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[3569]! } - public var InviteLink_ContextDelete: String { return self._s[3570]! } + public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3569]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[3570]! } + public var InviteLink_ContextDelete: String { return self._s[3571]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3571]!, self._r[3571]!, [_0]) + return formatWithArgumentRanges(self._s[3572]!, self._r[3572]!, [_0]) } - public var WebSearch_SearchNoResults: String { return self._s[3573]! } - public var Channel_DiscussionGroup_Create: String { return self._s[3574]! } - public var Passport_Language_es: String { return self._s[3575]! } - public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3576]! } - public var Map_LiveLocationShowAll: String { return self._s[3577]! } - public var Cache_MaximumCacheSizeHelp: String { return self._s[3579]! } - public var Map_OpenInGoogleMaps: String { return self._s[3580]! } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3582]! } - public var EditTheme_Create_BottomInfo: String { return self._s[3583]! } - public var PhotoEditor_BlurToolLinear: String { return self._s[3584]! } + public var WebSearch_SearchNoResults: String { return self._s[3574]! } + public var Channel_DiscussionGroup_Create: String { return self._s[3575]! } + public var Passport_Language_es: String { return self._s[3576]! } + public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3577]! } + public var Map_LiveLocationShowAll: String { return self._s[3578]! } + public var Cache_MaximumCacheSizeHelp: String { return self._s[3580]! } + public var Map_OpenInGoogleMaps: String { return self._s[3581]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3583]! } + public var EditTheme_Create_BottomInfo: String { return self._s[3584]! } + public var PhotoEditor_BlurToolLinear: String { return self._s[3585]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3585]!, self._r[3585]!, [_0]) + return formatWithArgumentRanges(self._s[3586]!, self._r[3586]!, [_0]) } - public var Passport_Phone_Delete: String { return self._s[3586]! } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3587]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[3588]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3589]! } + public var Passport_Phone_Delete: String { return self._s[3587]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3588]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[3589]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3590]! } public func EncryptionKey_Description(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3590]!, self._r[3590]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3591]!, self._r[3591]!, [_1, _2]) } - public var LogoutOptions_LogOutInfo: String { return self._s[3591]! } - public var Cache_ByPeerHeader: String { return self._s[3593]! } - public var Username_InvalidCharacters: String { return self._s[3594]! } - public var Checkout_ShippingAddress: String { return self._s[3596]! } + public var LogoutOptions_LogOutInfo: String { return self._s[3592]! } + public var Cache_ByPeerHeader: String { return self._s[3594]! } + public var Username_InvalidCharacters: String { return self._s[3595]! } + public var Checkout_ShippingAddress: String { return self._s[3597]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3597]!, self._r[3597]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[3598]!, self._r[3598]!, [_1, _2, _3, _4]) } - public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3599]! } - public var Conversation_AddContact: String { return self._s[3600]! } - public var Passport_Address_EditUtilityBill: String { return self._s[3601]! } - public var InviteLink_ContextGetQRCode: String { return self._s[3602]! } - public var Conversation_ChecksTooltip_Delivered: String { return self._s[3604]! } + public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3600]! } + public var Conversation_AddContact: String { return self._s[3601]! } + public var Passport_Address_EditUtilityBill: String { return self._s[3602]! } + public var InviteLink_ContextGetQRCode: String { return self._s[3603]! } + public var Conversation_ChecksTooltip_Delivered: String { return self._s[3605]! } public func Channel_AdminLog_MessageAddedAdminNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3605]!, self._r[3605]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3606]!, self._r[3606]!, [_1, _2]) } - public var Message_Video: String { return self._s[3606]! } + public var Message_Video: String { return self._s[3607]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3607]!, self._r[3607]!, [_0]) + return formatWithArgumentRanges(self._s[3608]!, self._r[3608]!, [_0]) } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3608]!, self._r[3608]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[3609]!, self._r[3609]!, ["\(_0)"]) } - public var InviteLink_ReactivateLink: String { return self._s[3609]! } - public var Passport_Language_km: String { return self._s[3611]! } + public var InviteLink_ReactivateLink: String { return self._s[3610]! } + public var Passport_Language_km: String { return self._s[3612]! } public func PUSH_MESSAGE_CHANNEL_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3612]!, self._r[3612]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3613]!, self._r[3613]!, [_1, _2, _3]) } - public var EmptyGroupInfo_Line4: String { return self._s[3613]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3615]! } - public var Notification_CallCanceledShort: String { return self._s[3616]! } - public var PhotoEditor_FadeTool: String { return self._s[3617]! } - public var Group_PublicLink_Info: String { return self._s[3618]! } - public var Contacts_DeselectAll: String { return self._s[3619]! } - public var Conversation_Moderate_Delete: String { return self._s[3621]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3622]! } - public var NotificationsSound_Note: String { return self._s[3625]! } + public var EmptyGroupInfo_Line4: String { return self._s[3614]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3616]! } + public var Notification_CallCanceledShort: String { return self._s[3617]! } + public var PhotoEditor_FadeTool: String { return self._s[3618]! } + public var Group_PublicLink_Info: String { return self._s[3619]! } + public var Contacts_DeselectAll: String { return self._s[3620]! } + public var Conversation_Moderate_Delete: String { return self._s[3622]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3623]! } + public var NotificationsSound_Note: String { return self._s[3626]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3626]!, self._r[3626]!, [_0]) + return formatWithArgumentRanges(self._s[3627]!, self._r[3627]!, [_0]) } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3627]! } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3629]! } - public var DialogList_SearchSectionGlobal: String { return self._s[3630]! } - public var AccessDenied_Settings: String { return self._s[3631]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3632]! } - public var AuthSessions_EmptyTitle: String { return self._s[3633]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3634]! } - public var GroupInfo_GroupType: String { return self._s[3635]! } - public var Calls_Missed: String { return self._s[3636]! } - public var Contacts_VoiceOver_AddContact: String { return self._s[3637]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3639]! } - public var Passport_Language_uz: String { return self._s[3640]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3641]! } - public var PhotoEditor_BlurToolPortrait: String { return self._s[3642]! } - public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3643]! } - public var Map_ChooseLocationTitle: String { return self._s[3644]! } - public var Checkout_EnterPassword: String { return self._s[3645]! } - public var GroupInfo_ConvertToSupergroup: String { return self._s[3646]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3647]! } - public var NetworkUsageSettings_Title: String { return self._s[3648]! } - public var Location_ProximityAlertCancelled: String { return self._s[3649]! } - public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3650]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[3651]! } - public var Compose_NewChannel: String { return self._s[3652]! } - public var Privacy_PaymentsClearInfo: String { return self._s[3654]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3628]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3630]! } + public var DialogList_SearchSectionGlobal: String { return self._s[3631]! } + public var AccessDenied_Settings: String { return self._s[3632]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3633]! } + public var AuthSessions_EmptyTitle: String { return self._s[3634]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3635]! } + public var GroupInfo_GroupType: String { return self._s[3636]! } + public var Calls_Missed: String { return self._s[3637]! } + public var Contacts_VoiceOver_AddContact: String { return self._s[3638]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3640]! } + public var Passport_Language_uz: String { return self._s[3641]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3642]! } + public var PhotoEditor_BlurToolPortrait: String { return self._s[3643]! } + public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3644]! } + public var Map_ChooseLocationTitle: String { return self._s[3645]! } + public var Checkout_EnterPassword: String { return self._s[3646]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[3647]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3648]! } + public var NetworkUsageSettings_Title: String { return self._s[3649]! } + public var Location_ProximityAlertCancelled: String { return self._s[3650]! } + public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3651]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[3652]! } + public var Compose_NewChannel: String { return self._s[3653]! } + public var Privacy_PaymentsClearInfo: String { return self._s[3655]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3655]!, self._r[3655]!, [_1]) + return formatWithArgumentRanges(self._s[3656]!, self._r[3656]!, [_1]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3656]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3657]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[3660]! } - public var WallpaperSearch_ColorBrown: String { return self._s[3661]! } - public var Appearance_AppIconDefault: String { return self._s[3662]! } - public var StickerSettings_ContextInfo: String { return self._s[3665]! } - public var Channel_AddBotErrorNoRights: String { return self._s[3666]! } - public var Passport_FieldPhone: String { return self._s[3668]! } - public var Contacts_PermissionsTitle: String { return self._s[3669]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3670]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3657]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3658]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[3661]! } + public var WallpaperSearch_ColorBrown: String { return self._s[3662]! } + public var Appearance_AppIconDefault: String { return self._s[3663]! } + public var StickerSettings_ContextInfo: String { return self._s[3666]! } + public var Channel_AddBotErrorNoRights: String { return self._s[3667]! } + public var Passport_FieldPhone: String { return self._s[3669]! } + public var Contacts_PermissionsTitle: String { return self._s[3670]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3671]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3671]!, self._r[3671]!, [_0]) + return formatWithArgumentRanges(self._s[3672]!, self._r[3672]!, [_0]) } - public var Bot_Unblock: String { return self._s[3672]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[3673]! } - public var InviteLink_InviteLinkCopiedText: String { return self._s[3674]! } - public var Passport_PasswordHelp: String { return self._s[3675]! } - public var TwoFactorSetup_PasswordRecovery_PlaceholderConfirmPassword: String { return self._s[3676]! } - public var Watch_Conversation_UserInfo: String { return self._s[3677]! } + public var Bot_Unblock: String { return self._s[3673]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[3674]! } + public var InviteLink_InviteLinkCopiedText: String { return self._s[3675]! } + public var Passport_PasswordHelp: String { return self._s[3676]! } + public var TwoFactorSetup_PasswordRecovery_PlaceholderConfirmPassword: String { return self._s[3677]! } + public var Watch_Conversation_UserInfo: String { return self._s[3678]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3681]!, self._r[3681]!, [_0]) + return formatWithArgumentRanges(self._s[3682]!, self._r[3682]!, [_0]) } - public var State_Connecting: String { return self._s[3683]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3684]! } - public var TextFormat_AddLinkPlaceholder: String { return self._s[3685]! } - public var Conversation_Dice_u1F3B2: String { return self._s[3686]! } + public var State_Connecting: String { return self._s[3684]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3685]! } + public var TextFormat_AddLinkPlaceholder: String { return self._s[3686]! } + public var Conversation_Dice_u1F3B2: String { return self._s[3687]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3687]!, self._r[3687]!, [_0]) + return formatWithArgumentRanges(self._s[3688]!, self._r[3688]!, [_0]) } - public var Conversation_SendingOptionsTooltip: String { return self._s[3688]! } - public var ChatList_UndoArchiveTitle: String { return self._s[3689]! } - public var ChatList_EmptyChatListNewMessage: String { return self._s[3690]! } - public var WallpaperSearch_ColorGreen: String { return self._s[3692]! } - public var PhotoEditor_BlurToolOff: String { return self._s[3693]! } - public var Conversation_AutoremoveOff: String { return self._s[3694]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[3695]! } - public var Weekday_Saturday: String { return self._s[3696]! } - public var DialogList_Unread: String { return self._s[3697]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3698]! } - public var Stats_GroupPosters: String { return self._s[3699]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[3689]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3690]! } + public var ChatList_EmptyChatListNewMessage: String { return self._s[3691]! } + public var WallpaperSearch_ColorGreen: String { return self._s[3693]! } + public var PhotoEditor_BlurToolOff: String { return self._s[3694]! } + public var Conversation_AutoremoveOff: String { return self._s[3695]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[3696]! } + public var Weekday_Saturday: String { return self._s[3697]! } + public var DialogList_Unread: String { return self._s[3698]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3699]! } + public var Stats_GroupPosters: String { return self._s[3700]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3700]!, self._r[3700]!, [_1]) + return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_1]) } - public var Conversation_AlsoClearCacheTitle: String { return self._s[3701]! } + public var Conversation_AlsoClearCacheTitle: String { return self._s[3702]! } public func Conversation_ForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3702]!, self._r[3702]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3703]!, self._r[3703]!, [_0, _1]) } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3705]!, self._r[3705]!, [_0]) + return formatWithArgumentRanges(self._s[3706]!, self._r[3706]!, [_0]) } - public var ReportPeer_ReasonChildAbuse: String { return self._s[3706]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[3707]! } public func Channel_AdminLog_MessageUnkickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3707]!, self._r[3707]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3708]!, self._r[3708]!, [_1, _2]) } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[3708]! } - public var Conversation_EmailCopied: String { return self._s[3710]! } - public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3711]! } - public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3712]! } - public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3713]! } - public var VoiceChat_LateBy: String { return self._s[3714]! } - public var Passport_Language_dv: String { return self._s[3715]! } - public var TwoFactorSetup_PasswordRecovery_Text: String { return self._s[3716]! } - public var GroupPermission_AddSuccess: String { return self._s[3718]! } - public var Passport_Email_Help: String { return self._s[3719]! } - public var Call_ReportPlaceholder: String { return self._s[3720]! } - public var CreatePoll_AddOption: String { return self._s[3721]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3723]! } - public var PeerInfo_ButtonLeave: String { return self._s[3724]! } - public var PhotoEditor_TiltShift: String { return self._s[3727]! } - public var SecretGif_Title: String { return self._s[3729]! } - public var GroupInfo_InviteLinks: String { return self._s[3730]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[3731]! } - public var SocksProxySetup_Connecting: String { return self._s[3733]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3734]! } - public var ContactInfo_PhoneLabelWork: String { return self._s[3735]! } - public var Stats_GroupTopHoursTitle: String { return self._s[3736]! } - public var Compose_NewMessage: String { return self._s[3737]! } - public var VoiceOver_Common_SwitchHint: String { return self._s[3738]! } - public var NotificationsSound_Synth: String { return self._s[3739]! } - public var ChatImport_UserErrorNotMutual: String { return self._s[3740]! } - public var Conversation_FileOpenIn: String { return self._s[3741]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[3742]! } - public var UserInfo_SendMessage: String { return self._s[3743]! } - public var Checkout_PayWithFaceId: String { return self._s[3744]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[3709]! } + public var Conversation_EmailCopied: String { return self._s[3711]! } + public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3712]! } + public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3713]! } + public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3714]! } + public var VoiceChat_LateBy: String { return self._s[3715]! } + public var Passport_Language_dv: String { return self._s[3716]! } + public var TwoFactorSetup_PasswordRecovery_Text: String { return self._s[3717]! } + public var GroupPermission_AddSuccess: String { return self._s[3719]! } + public var Passport_Email_Help: String { return self._s[3720]! } + public var Call_ReportPlaceholder: String { return self._s[3721]! } + public var CreatePoll_AddOption: String { return self._s[3722]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3724]! } + public var PeerInfo_ButtonLeave: String { return self._s[3725]! } + public var PhotoEditor_TiltShift: String { return self._s[3728]! } + public var SecretGif_Title: String { return self._s[3730]! } + public var GroupInfo_InviteLinks: String { return self._s[3731]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[3732]! } + public var SocksProxySetup_Connecting: String { return self._s[3734]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3735]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[3736]! } + public var Stats_GroupTopHoursTitle: String { return self._s[3737]! } + public var Compose_NewMessage: String { return self._s[3738]! } + public var VoiceOver_Common_SwitchHint: String { return self._s[3739]! } + public var NotificationsSound_Synth: String { return self._s[3740]! } + public var ChatImport_UserErrorNotMutual: String { return self._s[3741]! } + public var Conversation_FileOpenIn: String { return self._s[3742]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[3743]! } + public var UserInfo_SendMessage: String { return self._s[3744]! } + public var Checkout_PayWithFaceId: String { return self._s[3745]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3745]!, self._r[3745]!, [_0]) + return formatWithArgumentRanges(self._s[3746]!, self._r[3746]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[3746]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3747]! } - public var Conversation_ViewChannel: String { return self._s[3748]! } + public var TextFormat_Strikethrough: String { return self._s[3747]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3748]! } + public var Conversation_ViewChannel: String { return self._s[3749]! } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3749]!, self._r[3749]!, [_0]) + return formatWithArgumentRanges(self._s[3750]!, self._r[3750]!, [_0]) } - public var Channel_Stickers_Placeholder: String { return self._s[3750]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3751]! } - public var Message_ScamAccount: String { return self._s[3752]! } - public var Camera_FlashAuto: String { return self._s[3753]! } - public var Conversation_EncryptedDescription1: String { return self._s[3754]! } - public var LocalGroup_Text: String { return self._s[3755]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3756]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[3757]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[3758]! } - public var Conversation_EncryptedDescription2: String { return self._s[3759]! } - public var Conversation_CancelForwardText: String { return self._s[3760]! } - public var Notification_GroupActivated: String { return self._s[3761]! } - public var LastSeen_Lately: String { return self._s[3762]! } - public var Conversation_EncryptedDescription3: String { return self._s[3763]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3764]! } - public var TwoStepAuth_RecoveryUnavailableResetText: String { return self._s[3765]! } - public var Conversation_SwipeToReplyHintText: String { return self._s[3766]! } - public var Conversation_EncryptedDescription4: String { return self._s[3767]! } - public var SharedMedia_EmptyTitle: String { return self._s[3768]! } - public var Appearance_CreateTheme: String { return self._s[3770]! } - public var Stats_SharesPerPost: String { return self._s[3771]! } - public var Contacts_TabTitle: String { return self._s[3772]! } - public var Weekday_ShortThursday: String { return self._s[3773]! } - public var MessageTimer_Forever: String { return self._s[3774]! } - public var ChatListFolder_CategoryArchived: String { return self._s[3775]! } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3776]! } - public var EditTheme_Create_TopInfo: String { return self._s[3778]! } + public var Channel_Stickers_Placeholder: String { return self._s[3751]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3752]! } + public var Message_ScamAccount: String { return self._s[3753]! } + public var Camera_FlashAuto: String { return self._s[3754]! } + public var Conversation_EncryptedDescription1: String { return self._s[3755]! } + public var LocalGroup_Text: String { return self._s[3756]! } + public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3757]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[3758]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[3759]! } + public var Conversation_EncryptedDescription2: String { return self._s[3760]! } + public var Conversation_CancelForwardText: String { return self._s[3761]! } + public var Notification_GroupActivated: String { return self._s[3762]! } + public var LastSeen_Lately: String { return self._s[3763]! } + public var Conversation_EncryptedDescription3: String { return self._s[3764]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3765]! } + public var TwoStepAuth_RecoveryUnavailableResetText: String { return self._s[3766]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3767]! } + public var Conversation_EncryptedDescription4: String { return self._s[3768]! } + public var SharedMedia_EmptyTitle: String { return self._s[3769]! } + public var Appearance_CreateTheme: String { return self._s[3771]! } + public var Stats_SharesPerPost: String { return self._s[3772]! } + public var Contacts_TabTitle: String { return self._s[3773]! } + public var Weekday_ShortThursday: String { return self._s[3774]! } + public var MessageTimer_Forever: String { return self._s[3775]! } + public var ChatListFolder_CategoryArchived: String { return self._s[3776]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3777]! } + public var EditTheme_Create_TopInfo: String { return self._s[3779]! } public func VoiceOver_ChatList_MessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3779]!, self._r[3779]!, [_0]) + return formatWithArgumentRanges(self._s[3780]!, self._r[3780]!, [_0]) } - public var Month_GenDecember: String { return self._s[3780]! } - public var EnterPasscode_EnterPasscode: String { return self._s[3781]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3782]! } - public var PeopleNearby_CreateGroup: String { return self._s[3784]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3785]! } - public var Paint_ClearConfirm: String { return self._s[3786]! } - public var ChatList_ReadAll: String { return self._s[3787]! } - public var ChatSettings_IntentsSettings: String { return self._s[3788]! } - public var Passport_PassportInformation: String { return self._s[3790]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3792]! } - public var Location_ProximityNotification_DistanceMI: String { return self._s[3795]! } - public var PhotoEditor_ExposureTool: String { return self._s[3796]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3797]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[3798]! } - public var Stats_GroupTopPoster_History: String { return self._s[3799]! } - public var UserInfo_AddPhone: String { return self._s[3800]! } - public var Media_SendWithTimer: String { return self._s[3802]! } - public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3803]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3804]! } - public var GroupInfo_GroupHistoryShort: String { return self._s[3805]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3806]! } - public var ChatList_Context_Unarchive: String { return self._s[3808]! } + public var Month_GenDecember: String { return self._s[3781]! } + public var EnterPasscode_EnterPasscode: String { return self._s[3782]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3783]! } + public var PeopleNearby_CreateGroup: String { return self._s[3785]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3786]! } + public var Paint_ClearConfirm: String { return self._s[3787]! } + public var ChatList_ReadAll: String { return self._s[3788]! } + public var ChatSettings_IntentsSettings: String { return self._s[3789]! } + public var Passport_PassportInformation: String { return self._s[3791]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3793]! } + public var Location_ProximityNotification_DistanceMI: String { return self._s[3796]! } + public var PhotoEditor_ExposureTool: String { return self._s[3797]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3798]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[3799]! } + public var Stats_GroupTopPoster_History: String { return self._s[3800]! } + public var UserInfo_AddPhone: String { return self._s[3801]! } + public var Media_SendWithTimer: String { return self._s[3803]! } + public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3804]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3805]! } + public var GroupInfo_GroupHistoryShort: String { return self._s[3806]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3807]! } + public var ChatList_Context_Unarchive: String { return self._s[3809]! } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3809]!, self._r[3809]!, [_0]) + return formatWithArgumentRanges(self._s[3810]!, self._r[3810]!, [_0]) } - public var BlockedUsers_Title: String { return self._s[3811]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[3812]! } - public var Media_ShareThisPhoto: String { return self._s[3813]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3814]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[3815]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3819]! } - public var CallFeedback_ReasonNoise: String { return self._s[3821]! } - public var WebBrowser_Title: String { return self._s[3822]! } + public var BlockedUsers_Title: String { return self._s[3812]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[3813]! } + public var Media_ShareThisPhoto: String { return self._s[3814]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3815]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[3816]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3820]! } + public var CallFeedback_ReasonNoise: String { return self._s[3822]! } + public var WebBrowser_Title: String { return self._s[3823]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3823]!, self._r[3823]!, [_0]) + return formatWithArgumentRanges(self._s[3824]!, self._r[3824]!, [_0]) } - public var Notification_MessageLifetime5s: String { return self._s[3825]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3826]! } - public var Profile_MessageLifetime1m: String { return self._s[3828]! } - public var Passport_ScanPassport: String { return self._s[3829]! } - public var Stats_LoadingTitle: String { return self._s[3830]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3832]! } - public var Permissions_NotificationsAllow_v0: String { return self._s[3833]! } - public var Login_InvalidFirstNameError: String { return self._s[3834]! } - public var Undo_ChatCleared: String { return self._s[3836]! } + public var Notification_MessageLifetime5s: String { return self._s[3826]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3827]! } + public var Profile_MessageLifetime1m: String { return self._s[3829]! } + public var Passport_ScanPassport: String { return self._s[3830]! } + public var Stats_LoadingTitle: String { return self._s[3831]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3833]! } + public var Permissions_NotificationsAllow_v0: String { return self._s[3834]! } + public var Login_InvalidFirstNameError: String { return self._s[3835]! } + public var Undo_ChatCleared: String { return self._s[3837]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3838]!, self._r[3838]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3839]!, self._r[3839]!, [_1, _2]) } - public var Conversation_PinMessageAlertPin: String { return self._s[3839]! } + public var Conversation_PinMessageAlertPin: String { return self._s[3840]! } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3840]!, self._r[3840]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[3841]!, self._r[3841]!, [_1, _2, _3, _4, _5]) } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3841]!, self._r[3841]!, [_1]) + return formatWithArgumentRanges(self._s[3842]!, self._r[3842]!, [_1]) } - public var Share_MultipleMessagesDisabled: String { return self._s[3842]! } - public var TwoStepAuth_EmailInvalid: String { return self._s[3843]! } - public var EnterPasscode_ChangeTitle: String { return self._s[3845]! } - public var VoiceChat_InviteLink_Speaker: String { return self._s[3846]! } - public var CallSettings_RecentCalls: String { return self._s[3847]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[3848]! } - public var AuthSessions_OtherSessions: String { return self._s[3849]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3850]! } - public var Tour_Text5: String { return self._s[3851]! } - public var Login_PadPhoneHelp: String { return self._s[3852]! } - public var Wallpaper_PhotoLibrary: String { return self._s[3855]! } - public var Conversation_ViewGroup: String { return self._s[3856]! } - public var PeopleNearby_MakeVisibleTitle: String { return self._s[3858]! } - public var VoiceOver_Chat_YourContact: String { return self._s[3859]! } - public var Watch_AuthRequired: String { return self._s[3860]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3862]! } - public var Conversation_ForwardContacts: String { return self._s[3863]! } - public var Conversation_InputTextPlaceholder: String { return self._s[3864]! } + public var Share_MultipleMessagesDisabled: String { return self._s[3843]! } + public var TwoStepAuth_EmailInvalid: String { return self._s[3844]! } + public var EnterPasscode_ChangeTitle: String { return self._s[3846]! } + public var VoiceChat_InviteLink_Speaker: String { return self._s[3847]! } + public var CallSettings_RecentCalls: String { return self._s[3848]! } + public var GroupInfo_DeactivatedStatus: String { return self._s[3849]! } + public var AuthSessions_OtherSessions: String { return self._s[3850]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3851]! } + public var Tour_Text5: String { return self._s[3852]! } + public var Login_PadPhoneHelp: String { return self._s[3853]! } + public var Wallpaper_PhotoLibrary: String { return self._s[3856]! } + public var Conversation_ViewGroup: String { return self._s[3857]! } + public var PeopleNearby_MakeVisibleTitle: String { return self._s[3859]! } + public var VoiceOver_Chat_YourContact: String { return self._s[3860]! } + public var Watch_AuthRequired: String { return self._s[3861]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3863]! } + public var Conversation_ForwardContacts: String { return self._s[3864]! } + public var Conversation_InputTextPlaceholder: String { return self._s[3865]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3865]!, self._r[3865]!, [_1]) + return formatWithArgumentRanges(self._s[3866]!, self._r[3866]!, [_1]) } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3866]!, self._r[3866]!, [_0]) + return formatWithArgumentRanges(self._s[3867]!, self._r[3867]!, [_0]) } - public var Channel_Setup_TypePrivate: String { return self._s[3867]! } + public var Channel_Setup_TypePrivate: String { return self._s[3868]! } public func Conversation_NoticeInvitedByInChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3868]!, self._r[3868]!, [_0]) + return formatWithArgumentRanges(self._s[3869]!, self._r[3869]!, [_0]) } - public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3869]! } - public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3870]! } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[3871]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[3872]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[3873]! } - public var UserInfo_StartSecretChatStart: String { return self._s[3874]! } + public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3870]! } + public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3871]! } + public var InfoPlist_NSSiriUsageDescription: String { return self._s[3872]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[3873]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[3874]! } + public var UserInfo_StartSecretChatStart: String { return self._s[3875]! } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3875]!, self._r[3875]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3876]!, self._r[3876]!, [_1, _2]) } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3876]!, self._r[3876]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[3877]!, self._r[3877]!, [_0, _1, _2]) } public func Conversation_ForwardTooltip_TwoChats_Many(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3877]!, self._r[3877]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3878]!, self._r[3878]!, [_0, _1]) } - public var PrivacySettings_AutoArchiveTitle: String { return self._s[3878]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[3879]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3880]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[3882]! } - public var NewContact_Title: String { return self._s[3885]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3886]! } - public var VoiceChat_StatusSpeaking: String { return self._s[3887]! } - public var Notifications_PermissionsKeepDisabled: String { return self._s[3888]! } + public var PrivacySettings_AutoArchiveTitle: String { return self._s[3879]! } + public var GroupInfo_InviteLink_LinkSection: String { return self._s[3880]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3881]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[3883]! } + public var NewContact_Title: String { return self._s[3886]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3887]! } + public var VoiceChat_StatusSpeaking: String { return self._s[3888]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[3889]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3889]!, self._r[3889]!, [_0]) + return formatWithArgumentRanges(self._s[3890]!, self._r[3890]!, [_0]) } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3890]!, self._r[3890]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3891]!, self._r[3891]!, [_0, _1]) } - public var Chat_SlowmodeTooltipPending: String { return self._s[3891]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[3892]! } public func Time_MediumDate(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3893]!, self._r[3893]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3894]!, self._r[3894]!, [_1, _2]) } - public var ContactInfo_PhoneLabelHome: String { return self._s[3894]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3895]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3896]! } - public var Conversation_MessageEditedLabel: String { return self._s[3899]! } - public var CallList_ActiveVoiceChatsHeader: String { return self._s[3900]! } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3901]! } - public var ChatList_Context_AddToContacts: String { return self._s[3902]! } - public var Passport_Language_is: String { return self._s[3903]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[3904]! } - public var PhotoEditor_CurvesBlue: String { return self._s[3905]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[3895]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3896]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3897]! } + public var Conversation_MessageEditedLabel: String { return self._s[3900]! } + public var CallList_ActiveVoiceChatsHeader: String { return self._s[3901]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3902]! } + public var ChatList_Context_AddToContacts: String { return self._s[3903]! } + public var Passport_Language_is: String { return self._s[3904]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[3905]! } + public var PhotoEditor_CurvesBlue: String { return self._s[3906]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3906]!, self._r[3906]!, [_0]) + return formatWithArgumentRanges(self._s[3907]!, self._r[3907]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[3907]! } - public var Login_SmsRequestState3: String { return self._s[3908]! } - public var Message_PinnedVideoMessage: String { return self._s[3909]! } - public var SharedMedia_TitleLink: String { return self._s[3910]! } - public var Passport_FieldIdentity: String { return self._s[3911]! } - public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3913]! } + public var SocksProxySetup_Username: String { return self._s[3908]! } + public var Login_SmsRequestState3: String { return self._s[3909]! } + public var Message_PinnedVideoMessage: String { return self._s[3910]! } + public var SharedMedia_TitleLink: String { return self._s[3911]! } + public var Passport_FieldIdentity: String { return self._s[3912]! } + public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3914]! } public func Conversation_EncryptedPlaceholderTitleOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3916]!, self._r[3916]!, [_0]) + return formatWithArgumentRanges(self._s[3917]!, self._r[3917]!, [_0]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3919]! } - public var ReportSpam_DeleteThisChat: String { return self._s[3920]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3921]! } - public var Passport_Identity_DateOfBirth: String { return self._s[3922]! } - public var Call_StatusIncoming: String { return self._s[3923]! } - public var ChatAdmins_AdminLabel: String { return self._s[3924]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3920]! } + public var ReportSpam_DeleteThisChat: String { return self._s[3921]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3922]! } + public var Passport_Identity_DateOfBirth: String { return self._s[3923]! } + public var Call_StatusIncoming: String { return self._s[3924]! } + public var ChatAdmins_AdminLabel: String { return self._s[3925]! } public func InstantPage_OpenInBrowser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3925]!, self._r[3925]!, [_0]) + return formatWithArgumentRanges(self._s[3926]!, self._r[3926]!, [_0]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3927]!, self._r[3927]!, [_0]) + return formatWithArgumentRanges(self._s[3928]!, self._r[3928]!, [_0]) } - public var Message_PinnedAnimationMessage: String { return self._s[3928]! } - public var VoiceChat_TapToViewCameraVideo: String { return self._s[3929]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[3930]! } - public var Preview_CopyAddress: String { return self._s[3931]! } - public var MediaPlayer_UnknownTrack: String { return self._s[3933]! } - public var Login_CancelSignUpConfirmation: String { return self._s[3934]! } - public var Map_OpenInYandexMaps: String { return self._s[3936]! } + public var Message_PinnedAnimationMessage: String { return self._s[3929]! } + public var VoiceChat_TapToViewCameraVideo: String { return self._s[3930]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[3931]! } + public var Preview_CopyAddress: String { return self._s[3932]! } + public var MediaPlayer_UnknownTrack: String { return self._s[3934]! } + public var Login_CancelSignUpConfirmation: String { return self._s[3935]! } + public var Map_OpenInYandexMaps: String { return self._s[3937]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3939]!, self._r[3939]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3940]!, self._r[3940]!, [_1, _2, _3]) } - public var GroupRemoved_Remove: String { return self._s[3940]! } - public var ChatListFolder_TitleCreate: String { return self._s[3941]! } + public var GroupRemoved_Remove: String { return self._s[3941]! } + public var ChatListFolder_TitleCreate: String { return self._s[3942]! } public func InstantPage_AuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3943]!, self._r[3943]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3944]!, self._r[3944]!, [_1, _2]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[3944]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[3945]! } public func UserInfo_LinkForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3946]!, self._r[3946]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3947]!, self._r[3947]!, [_0, _1]) } - public var Group_UpgradeNoticeText2: String { return self._s[3947]! } - public var Stats_GroupGrowthTitle: String { return self._s[3948]! } - public var CreatePoll_CancelConfirmation: String { return self._s[3951]! } - public var Month_GenOctober: String { return self._s[3952]! } - public var Conversation_TitleCommentsEmpty: String { return self._s[3953]! } - public var Settings_Appearance: String { return self._s[3954]! } + public var Group_UpgradeNoticeText2: String { return self._s[3948]! } + public var Stats_GroupGrowthTitle: String { return self._s[3949]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3952]! } + public var Month_GenOctober: String { return self._s[3953]! } + public var Conversation_TitleCommentsEmpty: String { return self._s[3954]! } + public var Settings_Appearance: String { return self._s[3955]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3955]!, self._r[3955]!, [_0]) + return formatWithArgumentRanges(self._s[3956]!, self._r[3956]!, [_0]) } - public var UserInfo_AddToExisting: String { return self._s[3956]! } - public var Call_PhoneCallInProgressMessage: String { return self._s[3958]! } - public var Map_HomeAndWorkInfo: String { return self._s[3959]! } - public var VoiceChat_ContextAudio: String { return self._s[3960]! } - public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3961]! } - public var Paint_Arrow: String { return self._s[3962]! } - public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3963]! } + public var UserInfo_AddToExisting: String { return self._s[3957]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3959]! } + public var Map_HomeAndWorkInfo: String { return self._s[3960]! } + public var VoiceChat_ContextAudio: String { return self._s[3961]! } + public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3962]! } + public var Paint_Arrow: String { return self._s[3963]! } + public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3964]! } public func DialogList_MultipleTypingPair(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3964]!, self._r[3964]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3965]!, self._r[3965]!, [_0, _1]) } - public var CancelResetAccount_Title: String { return self._s[3965]! } - public var NotificationsSound_Circles: String { return self._s[3966]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3967]! } - public var ChatState_Connecting: String { return self._s[3969]! } - public var Profile_MessageLifetime5s: String { return self._s[3970]! } + public var CancelResetAccount_Title: String { return self._s[3966]! } + public var NotificationsSound_Circles: String { return self._s[3967]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3968]! } + public var ChatState_Connecting: String { return self._s[3970]! } + public var Profile_MessageLifetime5s: String { return self._s[3971]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3971]!, self._r[3971]!, [_0]) + return formatWithArgumentRanges(self._s[3972]!, self._r[3972]!, [_0]) } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3972]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3973]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3974]! } - public var Conversation_DefaultRestrictedStickers: String { return self._s[3976]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[3977]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3973]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3974]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3975]! } + public var Conversation_DefaultRestrictedStickers: String { return self._s[3977]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[3978]! } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3978]!, self._r[3978]!, [_0]) + return formatWithArgumentRanges(self._s[3979]!, self._r[3979]!, [_0]) } - public var Passport_Phone_Help: String { return self._s[3979]! } - public var Privacy_ContactsSync: String { return self._s[3980]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3981]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3983]! } - public var Map_SendMyCurrentLocation: String { return self._s[3984]! } - public var Map_AddressOnMap: String { return self._s[3985]! } - public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3987]! } - public var DialogList_SearchLabel: String { return self._s[3988]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3989]! } - public var GroupInfo_FakeGroupWarning: String { return self._s[3990]! } - public var Conversation_ChecksTooltip_Read: String { return self._s[3992]! } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3994]! } - public var ChatList_Search_ShowMore: String { return self._s[3995]! } - public var DialogList_EncryptionRejected: String { return self._s[3996]! } - public var VoiceChat_InviteLinkCopiedText: String { return self._s[3997]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[3998]! } - public var VoiceChat_StartRecordingText: String { return self._s[3999]! } - public var Privacy_TopPeersDelete: String { return self._s[4000]! } - public var AttachmentMenu_SendAsFile: String { return self._s[4002]! } - public var ChatList_GenericPsaAlert: String { return self._s[4004]! } - public var SecretTimer_ImageDescription: String { return self._s[4006]! } + public var Passport_Phone_Help: String { return self._s[3980]! } + public var Privacy_ContactsSync: String { return self._s[3981]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3982]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3984]! } + public var Map_SendMyCurrentLocation: String { return self._s[3985]! } + public var Map_AddressOnMap: String { return self._s[3986]! } + public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3988]! } + public var DialogList_SearchLabel: String { return self._s[3989]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3990]! } + public var GroupInfo_FakeGroupWarning: String { return self._s[3991]! } + public var Conversation_ChecksTooltip_Read: String { return self._s[3993]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3995]! } + public var ChatList_Search_ShowMore: String { return self._s[3996]! } + public var DialogList_EncryptionRejected: String { return self._s[3997]! } + public var VoiceChat_InviteLinkCopiedText: String { return self._s[3998]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[3999]! } + public var VoiceChat_StartRecordingText: String { return self._s[4000]! } + public var Privacy_TopPeersDelete: String { return self._s[4001]! } + public var AttachmentMenu_SendAsFile: String { return self._s[4003]! } + public var ChatList_GenericPsaAlert: String { return self._s[4005]! } + public var SecretTimer_ImageDescription: String { return self._s[4007]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4007]!, self._r[4007]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4008]!, self._r[4008]!, [_0, _1]) } - public var VoiceChat_EditNameSuccess: String { return self._s[4008]! } - public var ChatSettings_TextSizeUnits: String { return self._s[4009]! } - public var Notification_RenamedGroup: String { return self._s[4011]! } - public var Tour_Title2: String { return self._s[4012]! } - public var Settings_CopyUsername: String { return self._s[4013]! } - public var Compose_NewEncryptedChat: String { return self._s[4014]! } - public var Conversation_CloudStorageInfo_Title: String { return self._s[4015]! } - public var VoiceChat_SetReminder: String { return self._s[4016]! } - public var Month_ShortSeptember: String { return self._s[4017]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[4018]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[4019]! } - public var VoiceChat_StartNow: String { return self._s[4020]! } - public var Call_StatusConnecting: String { return self._s[4022]! } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[4023]! } - public var Map_ShareLiveLocationHelp: String { return self._s[4024]! } - public var Cache_Files: String { return self._s[4025]! } - public var Notifications_Reset: String { return self._s[4026]! } + public var VoiceChat_EditNameSuccess: String { return self._s[4009]! } + public var ChatSettings_TextSizeUnits: String { return self._s[4010]! } + public var Notification_RenamedGroup: String { return self._s[4012]! } + public var Tour_Title2: String { return self._s[4013]! } + public var Settings_CopyUsername: String { return self._s[4014]! } + public var Compose_NewEncryptedChat: String { return self._s[4015]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[4016]! } + public var VoiceChat_SetReminder: String { return self._s[4017]! } + public var Month_ShortSeptember: String { return self._s[4018]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[4019]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[4020]! } + public var VoiceChat_StartNow: String { return self._s[4021]! } + public var Call_StatusConnecting: String { return self._s[4023]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[4024]! } + public var Map_ShareLiveLocationHelp: String { return self._s[4025]! } + public var Cache_Files: String { return self._s[4026]! } + public var Notifications_Reset: String { return self._s[4027]! } public func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4027]!, self._r[4027]!, [_0]) + return formatWithArgumentRanges(self._s[4028]!, self._r[4028]!, [_0]) } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[4028]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[4029]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4029]!, self._r[4029]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4030]!, self._r[4030]!, [_1, _2]) } - public var Notification_CallIncomingShort: String { return self._s[4030]! } - public var UserInfo_BotPrivacy: String { return self._s[4033]! } - public var Appearance_BubbleCorners_Apply: String { return self._s[4034]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[4035]! } - public var Conversation_ContextMenuLookUp: String { return self._s[4037]! } - public var Calls_RatingTitle: String { return self._s[4038]! } - public var SecretImage_Title: String { return self._s[4039]! } - public var Weekday_Monday: String { return self._s[4040]! } + public var Notification_CallIncomingShort: String { return self._s[4031]! } + public var UserInfo_BotPrivacy: String { return self._s[4034]! } + public var Appearance_BubbleCorners_Apply: String { return self._s[4035]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[4036]! } + public var Conversation_ContextMenuLookUp: String { return self._s[4038]! } + public var Calls_RatingTitle: String { return self._s[4039]! } + public var SecretImage_Title: String { return self._s[4040]! } + public var Weekday_Monday: String { return self._s[4041]! } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4041]!, self._r[4041]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4042]!, self._r[4042]!, [_1, _2]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[4042]! } - public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[4043]! } - public var Invitation_JoinVoiceChatAsListener: String { return self._s[4044]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[4043]! } + public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[4044]! } + public var Invitation_JoinVoiceChatAsListener: String { return self._s[4045]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4045]!, self._r[4045]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4046]!, self._r[4046]!, [_1, _2]) } - public var Stats_GroupMembers: String { return self._s[4046]! } - public var Camera_Retake: String { return self._s[4047]! } - public var Conversation_SearchPlaceholder: String { return self._s[4049]! } + public var Stats_GroupMembers: String { return self._s[4047]! } + public var Camera_Retake: String { return self._s[4048]! } + public var Conversation_SearchPlaceholder: String { return self._s[4050]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4050]!, self._r[4050]!, [_0]) + return formatWithArgumentRanges(self._s[4051]!, self._r[4051]!, [_0]) } - public var Channel_DiscussionGroup_Info: String { return self._s[4051]! } - public var SocksProxySetup_Hostname: String { return self._s[4052]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4053]! } - public var Privacy_DeleteDrafts: String { return self._s[4055]! } - public var Login_CancelPhoneVerification: String { return self._s[4057]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[4058]! } - public var VoiceOver_Chat_Profile: String { return self._s[4059]! } + public var Channel_DiscussionGroup_Info: String { return self._s[4052]! } + public var SocksProxySetup_Hostname: String { return self._s[4053]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4054]! } + public var Privacy_DeleteDrafts: String { return self._s[4056]! } + public var Login_CancelPhoneVerification: String { return self._s[4058]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[4059]! } + public var VoiceOver_Chat_Profile: String { return self._s[4060]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4060]!, self._r[4060]!, [_0]) + return formatWithArgumentRanges(self._s[4061]!, self._r[4061]!, [_0]) } - public var TwoStepAuth_EmailSent: String { return self._s[4061]! } - public var Cache_Indexing: String { return self._s[4062]! } - public var Notifications_ExceptionsNone: String { return self._s[4063]! } - public var MessagePoll_LabelQuiz: String { return self._s[4064]! } - public var Call_EncryptionKey_Title: String { return self._s[4065]! } - public var Common_Yes: String { return self._s[4066]! } - public var Channel_ErrorAddBlocked: String { return self._s[4067]! } - public var Month_GenJanuary: String { return self._s[4068]! } - public var Checkout_NewCard_Title: String { return self._s[4069]! } + public var TwoStepAuth_EmailSent: String { return self._s[4062]! } + public var Cache_Indexing: String { return self._s[4063]! } + public var Notifications_ExceptionsNone: String { return self._s[4064]! } + public var MessagePoll_LabelQuiz: String { return self._s[4065]! } + public var Call_EncryptionKey_Title: String { return self._s[4066]! } + public var Common_Yes: String { return self._s[4067]! } + public var Channel_ErrorAddBlocked: String { return self._s[4068]! } + public var Month_GenJanuary: String { return self._s[4069]! } + public var Checkout_NewCard_Title: String { return self._s[4070]! } public func TwoStepAuth_EnterPasswordHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4070]!, self._r[4070]!, [_0]) + return formatWithArgumentRanges(self._s[4071]!, self._r[4071]!, [_0]) } - public var Conversation_InputTextPlaceholderReply: String { return self._s[4072]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4073]! } - public var Conversation_SendDice: String { return self._s[4074]! } + public var Conversation_InputTextPlaceholderReply: String { return self._s[4073]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4074]! } + public var Conversation_SendDice: String { return self._s[4075]! } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4075]!, self._r[4075]!, [_0]) - } - public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4076]!, self._r[4076]!, [_0]) } - public var Weekday_Wednesday: String { return self._s[4077]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[4078]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[4079]! } - public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4080]! } - public var OldChannels_NoticeTitle: String { return self._s[4081]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[4082]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[4083]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4084]! } - public var Passport_Address_AddUtilityBill: String { return self._s[4085]! } + public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4077]!, self._r[4077]!, [_0]) + } + public var Weekday_Wednesday: String { return self._s[4078]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[4079]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[4080]! } + public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4081]! } + public var OldChannels_NoticeTitle: String { return self._s[4082]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[4083]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[4084]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4085]! } + public var Passport_Address_AddUtilityBill: String { return self._s[4086]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4087]!, self._r[4087]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4088]!, self._r[4088]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4089]! } - public var Stats_GroupTopAdminsTitle: String { return self._s[4090]! } - public var Paint_Regular: String { return self._s[4092]! } - public var Message_Contact: String { return self._s[4093]! } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4094]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[4095]! } - public var Notification_Mute1hMin: String { return self._s[4096]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4090]! } + public var Stats_GroupTopAdminsTitle: String { return self._s[4091]! } + public var Paint_Regular: String { return self._s[4093]! } + public var Message_Contact: String { return self._s[4094]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4095]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[4096]! } + public var Notification_Mute1hMin: String { return self._s[4097]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4097]!, self._r[4097]!, [_0]) + return formatWithArgumentRanges(self._s[4098]!, self._r[4098]!, [_0]) } - public var Profile_MessageLifetime1h: String { return self._s[4098]! } - public var TwoStepAuth_GenericHelp: String { return self._s[4099]! } - public var TwoFactorSetup_PasswordRecovery_Skip: String { return self._s[4100]! } - public var TextFormat_Monospace: String { return self._s[4101]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4103]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[4104]! } - public var ChatList_DeleteChat: String { return self._s[4105]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4108]! } + public var Profile_MessageLifetime1h: String { return self._s[4099]! } + public var TwoStepAuth_GenericHelp: String { return self._s[4100]! } + public var TwoFactorSetup_PasswordRecovery_Skip: String { return self._s[4101]! } + public var TextFormat_Monospace: String { return self._s[4102]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4104]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[4105]! } + public var ChatList_DeleteChat: String { return self._s[4106]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4109]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4109]!, self._r[4109]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[4110]!, self._r[4110]!, [_1, _2, _3, _4]) } - public var Login_CancelPhoneVerificationStop: String { return self._s[4110]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4111]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4112]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[4111]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4112]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4113]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4113]!, self._r[4113]!, [_0]) + return formatWithArgumentRanges(self._s[4114]!, self._r[4114]!, [_0]) } - public var Notifications_Badge_IncludeChannels: String { return self._s[4114]! } - public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4115]! } - public var StickerPack_ViewPack: String { return self._s[4118]! } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4120]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4121]! } - public var Notifications_Title: String { return self._s[4122]! } - public var Conversation_InputTextPlaceholderComment: String { return self._s[4123]! } - public var GroupInfo_PublicLink: String { return self._s[4124]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[4115]! } + public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4116]! } + public var StickerPack_ViewPack: String { return self._s[4119]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4121]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4122]! } + public var Notifications_Title: String { return self._s[4123]! } + public var Conversation_InputTextPlaceholderComment: String { return self._s[4124]! } + public var GroupInfo_PublicLink: String { return self._s[4125]! } public func ScheduleVoiceChat_GroupText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4125]!, self._r[4125]!, [_0]) + return formatWithArgumentRanges(self._s[4126]!, self._r[4126]!, [_0]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[4126]! } - public var Conversation_Moderate_Ban: String { return self._s[4130]! } - public var InviteLink_Manage: String { return self._s[4131]! } - public var InstantPage_FontNewYork: String { return self._s[4132]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[4127]! } + public var Conversation_Moderate_Ban: String { return self._s[4131]! } + public var InviteLink_Manage: String { return self._s[4132]! } + public var InstantPage_FontNewYork: String { return self._s[4133]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4133]!, self._r[4133]!, [_0]) + return formatWithArgumentRanges(self._s[4134]!, self._r[4134]!, [_0]) } - public var TextFormat_Underline: String { return self._s[4134]! } + public var TextFormat_Underline: String { return self._s[4135]! } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4135]!, self._r[4135]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4136]!, self._r[4136]!, [_0, _1]) } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4136]!, self._r[4136]!, [_1]) + return formatWithArgumentRanges(self._s[4137]!, self._r[4137]!, [_1]) } - public var PollResults_Collapse: String { return self._s[4138]! } - public var Contacts_GlobalSearch: String { return self._s[4139]! } + public var PollResults_Collapse: String { return self._s[4139]! } + public var Contacts_GlobalSearch: String { return self._s[4140]! } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4141]!, self._r[4141]!, [_0]) + return formatWithArgumentRanges(self._s[4142]!, self._r[4142]!, [_0]) } - public var Channel_Management_LabelEditor: String { return self._s[4142]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4144]! } - public var Conversation_Theme: String { return self._s[4145]! } + public var Channel_Management_LabelEditor: String { return self._s[4143]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4145]! } + public var Conversation_Theme: String { return self._s[4146]! } public func PUSH_CHANNEL_MESSAGE_DOCS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4146]!, self._r[4146]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4147]!, self._r[4147]!, [_1, "\(_2)"]) } - public var Conversation_LinkDialogSave: String { return self._s[4147]! } - public var EnterPasscode_TouchId: String { return self._s[4148]! } - public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4149]! } - public var Group_ErrorAdminsTooMuch: String { return self._s[4150]! } - public var Stats_MessageOverview: String { return self._s[4151]! } - public var Privacy_Calls_P2PAlways: String { return self._s[4153]! } - public var Message_Sticker: String { return self._s[4154]! } - public var TwoFactorSetup_PasswordRecovery_SkipAlertTitle: String { return self._s[4155]! } - public var Conversation_Mute: String { return self._s[4158]! } - public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4159]! } - public var ContactInfo_Title: String { return self._s[4160]! } + public var Conversation_LinkDialogSave: String { return self._s[4148]! } + public var EnterPasscode_TouchId: String { return self._s[4149]! } + public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4150]! } + public var Group_ErrorAdminsTooMuch: String { return self._s[4151]! } + public var Stats_MessageOverview: String { return self._s[4152]! } + public var Privacy_Calls_P2PAlways: String { return self._s[4154]! } + public var Message_Sticker: String { return self._s[4155]! } + public var TwoFactorSetup_PasswordRecovery_SkipAlertTitle: String { return self._s[4156]! } + public var Conversation_Mute: String { return self._s[4159]! } + public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4160]! } + public var ContactInfo_Title: String { return self._s[4161]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4161]!, self._r[4161]!, [_1]) + return formatWithArgumentRanges(self._s[4162]!, self._r[4162]!, [_1]) } - public var Channel_Setup_TypeHeader: String { return self._s[4162]! } - public var AuthSessions_LogOut: String { return self._s[4163]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[4164]! } - public var VoiceChat_PinVideo: String { return self._s[4165]! } - public var Group_Info_Members: String { return self._s[4167]! } - public var ChatListFolderSettings_NewFolder: String { return self._s[4168]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4169]! } - public var CreatePoll_Title: String { return self._s[4170]! } - public var EditTheme_EditTitle: String { return self._s[4171]! } - public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4172]! } - public var TwoStepAuth_SetPassword: String { return self._s[4173]! } + public var Channel_Setup_TypeHeader: String { return self._s[4163]! } + public var AuthSessions_LogOut: String { return self._s[4164]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[4165]! } + public var VoiceChat_PinVideo: String { return self._s[4166]! } + public var Group_Info_Members: String { return self._s[4168]! } + public var ChatListFolderSettings_NewFolder: String { return self._s[4169]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4170]! } + public var CreatePoll_Title: String { return self._s[4171]! } + public var EditTheme_EditTitle: String { return self._s[4172]! } + public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4173]! } + public var TwoStepAuth_SetPassword: String { return self._s[4174]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4174]!, self._r[4174]!, [_0]) + return formatWithArgumentRanges(self._s[4175]!, self._r[4175]!, [_0]) } - public var BlockedUsers_Info: String { return self._s[4175]! } - public var AuthSessions_Sessions: String { return self._s[4176]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4177]! } - public var Common_ActionNotAllowedError: String { return self._s[4178]! } - public var WebPreview_GettingLinkInfo: String { return self._s[4179]! } - public var Appearance_AppIconFilledX: String { return self._s[4180]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[4181]! } - public var FeaturedStickers_OtherSection: String { return self._s[4182]! } - public var VoiceChat_RecordingStarted: String { return self._s[4183]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4184]! } - public var Profile_Username: String { return self._s[4185]! } - public var Settings_TipsUsername: String { return self._s[4186]! } - public var Appearance_RemoveTheme: String { return self._s[4187]! } - public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4188]! } - public var Message_PinnedStickerMessage: String { return self._s[4189]! } - public var AccessDenied_VideoMicrophone: String { return self._s[4190]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[4191]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[4192]! } - public var Conversation_VoiceChat: String { return self._s[4193]! } - public var VoiceChat_EditBioSuccess: String { return self._s[4194]! } - public var ImportStickerPack_LinkAvailable: String { return self._s[4195]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4196]! } - public var TwoStepAuth_Title: String { return self._s[4197]! } - public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4198]! } - public var Checkout_WebConfirmation_Title: String { return self._s[4199]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4200]! } - public var ChatListFolder_CategoryGroups: String { return self._s[4202]! } - public var Stats_GroupTopInviter_Promote: String { return self._s[4203]! } - public var Conversation_EditingPhotoPanelTitle: String { return self._s[4204]! } - public var Month_GenJuly: String { return self._s[4205]! } - public var Passport_Identity_Gender: String { return self._s[4206]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4207]! } - public var Notification_Exceptions_DeleteAll: String { return self._s[4208]! } - public var VoiceChat_StopRecording: String { return self._s[4209]! } + public var BlockedUsers_Info: String { return self._s[4176]! } + public var AuthSessions_Sessions: String { return self._s[4177]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4178]! } + public var Common_ActionNotAllowedError: String { return self._s[4179]! } + public var WebPreview_GettingLinkInfo: String { return self._s[4180]! } + public var Appearance_AppIconFilledX: String { return self._s[4181]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[4182]! } + public var FeaturedStickers_OtherSection: String { return self._s[4183]! } + public var VoiceChat_RecordingStarted: String { return self._s[4184]! } + public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4185]! } + public var Profile_Username: String { return self._s[4186]! } + public var Settings_TipsUsername: String { return self._s[4187]! } + public var Appearance_RemoveTheme: String { return self._s[4188]! } + public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4189]! } + public var Message_PinnedStickerMessage: String { return self._s[4190]! } + public var AccessDenied_VideoMicrophone: String { return self._s[4191]! } + public var WallpaperPreview_CustomColorBottomText: String { return self._s[4192]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[4193]! } + public var Conversation_VoiceChat: String { return self._s[4194]! } + public var VoiceChat_EditBioSuccess: String { return self._s[4195]! } + public var ImportStickerPack_LinkAvailable: String { return self._s[4196]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4197]! } + public var TwoStepAuth_Title: String { return self._s[4198]! } + public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4199]! } + public var Checkout_WebConfirmation_Title: String { return self._s[4200]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4201]! } + public var ChatListFolder_CategoryGroups: String { return self._s[4203]! } + public var Stats_GroupTopInviter_Promote: String { return self._s[4204]! } + public var Conversation_EditingPhotoPanelTitle: String { return self._s[4205]! } + public var Month_GenJuly: String { return self._s[4206]! } + public var Passport_Identity_Gender: String { return self._s[4207]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4208]! } + public var Notification_Exceptions_DeleteAll: String { return self._s[4209]! } + public var VoiceChat_StopRecording: String { return self._s[4210]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4210]!, self._r[4210]!, [_0]) + return formatWithArgumentRanges(self._s[4211]!, self._r[4211]!, [_0]) } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4211]!, self._r[4211]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[4212]!, self._r[4212]!, [_0, _1, _2]) } - public var Login_CodeSentSms: String { return self._s[4212]! } + public var Login_CodeSentSms: String { return self._s[4213]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4213]!, self._r[4213]!, [_0]) + return formatWithArgumentRanges(self._s[4214]!, self._r[4214]!, [_0]) } - public var Login_CallRequestState2: String { return self._s[4214]! } - public var Channel_DiscussionGroup_Header: String { return self._s[4215]! } + public var Login_CallRequestState2: String { return self._s[4215]! } + public var Channel_DiscussionGroup_Header: String { return self._s[4216]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4216]!, self._r[4216]!, [_0]) + return formatWithArgumentRanges(self._s[4217]!, self._r[4217]!, [_0]) } - public var Passport_Language_ms: String { return self._s[4217]! } - public var PeopleNearby_MakeInvisible: String { return self._s[4219]! } - public var ImportStickerPack_CreateStickerSet: String { return self._s[4221]! } - public var ChatList_Search_FilterVoice: String { return self._s[4222]! } - public var Camera_TapAndHoldForVideo: String { return self._s[4224]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4225]! } + public var Passport_Language_ms: String { return self._s[4218]! } + public var PeopleNearby_MakeInvisible: String { return self._s[4220]! } + public var ImportStickerPack_CreateStickerSet: String { return self._s[4222]! } + public var ChatList_Search_FilterVoice: String { return self._s[4223]! } + public var Camera_TapAndHoldForVideo: String { return self._s[4225]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4226]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4226]!, self._r[4226]!, [_0]) + return formatWithArgumentRanges(self._s[4227]!, self._r[4227]!, [_0]) } public func Call_VoiceChatInProgressMessageCall(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4227]!, self._r[4227]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4228]!, self._r[4228]!, [_1, _2]) } - public var Map_Locating: String { return self._s[4228]! } + public var Map_Locating: String { return self._s[4229]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4230]!, self._r[4230]!, [_0]) + return formatWithArgumentRanges(self._s[4231]!, self._r[4231]!, [_0]) } - public var Passport_Identity_TypeInternalPassport: String { return self._s[4232]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4233]! } - public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4234]! } - public var Stickers_Installed: String { return self._s[4235]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[4236]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[4237]! } - public var CallSettings_Never: String { return self._s[4239]! } - public var Channel_Setup_TypePublicHelp: String { return self._s[4240]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[4233]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4234]! } + public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4235]! } + public var Stickers_Installed: String { return self._s[4236]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[4237]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[4238]! } + public var CallSettings_Never: String { return self._s[4240]! } + public var Channel_Setup_TypePublicHelp: String { return self._s[4241]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4242]!, self._r[4242]!, [_0]) + return formatWithArgumentRanges(self._s[4243]!, self._r[4243]!, [_0]) } - public var Message_Game: String { return self._s[4243]! } - public var Call_Message: String { return self._s[4244]! } + public var Message_Game: String { return self._s[4244]! } + public var Call_Message: String { return self._s[4245]! } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4245]!, self._r[4245]!, [_1]) + return formatWithArgumentRanges(self._s[4246]!, self._r[4246]!, [_1]) } - public var ChannelIntro_Text: String { return self._s[4246]! } - public var VoiceChat_NoiseSuppressionEnabled: String { return self._s[4247]! } - public var StickerPack_Send: String { return self._s[4248]! } - public var Share_AuthDescription: String { return self._s[4249]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4250]! } - public var CallFeedback_WhatWentWrong: String { return self._s[4251]! } - public var Common_Create: String { return self._s[4254]! } - public var Passport_Language_hy: String { return self._s[4255]! } - public var CreatePoll_Explanation: String { return self._s[4256]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[4257]! } - public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4258]! } - public var PeerInfo_ButtonVoiceChat: String { return self._s[4259]! } - public var Undo_ChatClearedForBothSides: String { return self._s[4260]! } - public var DialogList_NoMessagesTitle: String { return self._s[4261]! } - public var GroupInfo_Title: String { return self._s[4263]! } + public var ChannelIntro_Text: String { return self._s[4247]! } + public var VoiceChat_NoiseSuppressionEnabled: String { return self._s[4248]! } + public var StickerPack_Send: String { return self._s[4249]! } + public var Share_AuthDescription: String { return self._s[4250]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4251]! } + public var CallFeedback_WhatWentWrong: String { return self._s[4252]! } + public var Common_Create: String { return self._s[4255]! } + public var Passport_Language_hy: String { return self._s[4256]! } + public var CreatePoll_Explanation: String { return self._s[4257]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[4258]! } + public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4259]! } + public var PeerInfo_ButtonVoiceChat: String { return self._s[4260]! } + public var Undo_ChatClearedForBothSides: String { return self._s[4261]! } + public var DialogList_NoMessagesTitle: String { return self._s[4262]! } + public var GroupInfo_Title: String { return self._s[4264]! } public func ScheduleVoiceChat_ScheduleToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4264]!, self._r[4264]!, [_0]) + return formatWithArgumentRanges(self._s[4265]!, self._r[4265]!, [_0]) } - public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4265]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[4266]! } - public var PhoneNumberHelp_Help: String { return self._s[4267]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4268]! } - public var Settings_Logout: String { return self._s[4269]! } - public var Privacy_PaymentsTitle: String { return self._s[4270]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[4271]! } - public var Tour_Text6: String { return self._s[4272]! } - public var ChatImportActivity_Title: String { return self._s[4274]! } - public var Channel_Username_Help: String { return self._s[4275]! } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4276]! } - public var AttachmentMenu_Poll: String { return self._s[4277]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4278]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4279]! } - public var Passport_DeletePassport: String { return self._s[4280]! } - public var Login_Code: String { return self._s[4281]! } - public var Notification_SecretChatScreenshot: String { return self._s[4282]! } - public var VoiceChat_AddBio: String { return self._s[4283]! } - public var Login_CodeFloodError: String { return self._s[4284]! } + public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4266]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[4267]! } + public var PhoneNumberHelp_Help: String { return self._s[4268]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4269]! } + public var Settings_Logout: String { return self._s[4270]! } + public var Privacy_PaymentsTitle: String { return self._s[4271]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[4272]! } + public var Tour_Text6: String { return self._s[4273]! } + public var ChatImportActivity_Title: String { return self._s[4275]! } + public var Channel_Username_Help: String { return self._s[4276]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4277]! } + public var AttachmentMenu_Poll: String { return self._s[4278]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4279]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4280]! } + public var Passport_DeletePassport: String { return self._s[4281]! } + public var Login_Code: String { return self._s[4282]! } + public var Notification_SecretChatScreenshot: String { return self._s[4283]! } + public var VoiceChat_AddBio: String { return self._s[4284]! } + public var Login_CodeFloodError: String { return self._s[4285]! } public func Notification_PinnedAnimationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4285]!, self._r[4285]!, [_0]) - } - public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4286]!, self._r[4286]!, [_0]) } - public var Watch_Stickers_Recents: String { return self._s[4287]! } - public var Generic_ErrorMoreInfo: String { return self._s[4288]! } + public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4287]!, self._r[4287]!, [_0]) + } + public var Watch_Stickers_Recents: String { return self._s[4288]! } + public var Generic_ErrorMoreInfo: String { return self._s[4289]! } public func Call_AccountIsLoggedOnCurrentDevice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4289]!, self._r[4289]!, [_0]) + return formatWithArgumentRanges(self._s[4290]!, self._r[4290]!, [_0]) } - public var AutoDownloadSettings_DataUsage: String { return self._s[4290]! } - public var Conversation_ViewTheme: String { return self._s[4291]! } - public var Contacts_InviteSearchLabel: String { return self._s[4292]! } - public var Settings_CancelUpload: String { return self._s[4294]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[4295]! } + public var AutoDownloadSettings_DataUsage: String { return self._s[4291]! } + public var Conversation_ViewTheme: String { return self._s[4292]! } + public var Contacts_InviteSearchLabel: String { return self._s[4293]! } + public var Settings_CancelUpload: String { return self._s[4295]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[4296]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4296]!, self._r[4296]!, [_0]) + return formatWithArgumentRanges(self._s[4297]!, self._r[4297]!, [_0]) } - public var ChatList_AddFolder: String { return self._s[4297]! } - public var Conversation_Location: String { return self._s[4299]! } - public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4300]! } - public var DialogList_AdLabel: String { return self._s[4301]! } + public var ChatList_AddFolder: String { return self._s[4298]! } + public var Conversation_Location: String { return self._s[4300]! } + public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4301]! } + public var DialogList_AdLabel: String { return self._s[4302]! } public func Time_TomorrowAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4303]!, self._r[4303]!, [_0]) + return formatWithArgumentRanges(self._s[4304]!, self._r[4304]!, [_0]) } - public var Message_InvoiceLabel: String { return self._s[4304]! } - public var Channel_TooMuchBots: String { return self._s[4305]! } + public var Message_InvoiceLabel: String { return self._s[4305]! } + public var Channel_TooMuchBots: String { return self._s[4306]! } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4307]!, self._r[4307]!, [_0]) + return formatWithArgumentRanges(self._s[4308]!, self._r[4308]!, [_0]) } - public var Call_IncomingVideoCall: String { return self._s[4308]! } - public var Conversation_LiveLocation: String { return self._s[4309]! } - public var VoiceChat_AskedToSpeakHelp: String { return self._s[4310]! } - public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4311]! } - public var Passport_Identity_EditPassport: String { return self._s[4312]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[4314]! } - public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4315]! } - public var GroupInfo_Permissions_AddException: String { return self._s[4316]! } + public var Call_IncomingVideoCall: String { return self._s[4309]! } + public var Conversation_LiveLocation: String { return self._s[4310]! } + public var VoiceChat_AskedToSpeakHelp: String { return self._s[4311]! } + public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4312]! } + public var Passport_Identity_EditPassport: String { return self._s[4313]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[4315]! } + public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4316]! } + public var GroupInfo_Permissions_AddException: String { return self._s[4317]! } public func VoiceChat_RemovePeerConfirmationChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4318]!, self._r[4318]!, [_0]) + return formatWithArgumentRanges(self._s[4319]!, self._r[4319]!, [_0]) } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[4319]! } - public var Channel_MessageVideoUpdated: String { return self._s[4320]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4321]! } - public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4324]! } - public var AccessDenied_Camera: String { return self._s[4325]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[4320]! } + public var Channel_MessageVideoUpdated: String { return self._s[4321]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4322]! } + public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4325]! } + public var AccessDenied_Camera: String { return self._s[4326]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4326]!, self._r[4326]!, [_0]) + return formatWithArgumentRanges(self._s[4327]!, self._r[4327]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[4327]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[4328]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[4329]! } - public var Login_CodeExpiredError: String { return self._s[4330]! } - public var State_ConnectingToProxy: String { return self._s[4331]! } - public var TextFormat_Link: String { return self._s[4332]! } - public var Passport_Language_lv: String { return self._s[4334]! } - public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4335]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[4336]! } - public var WallpaperPreview_SwipeBottomText: String { return self._s[4337]! } - public var ProfilePhoto_SetMainVideo: String { return self._s[4338]! } - public var AutoDownloadSettings_Cellular: String { return self._s[4340]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4341]! } - public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4342]! } + public var Theme_Context_ChangeColors: String { return self._s[4328]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[4329]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[4330]! } + public var Login_CodeExpiredError: String { return self._s[4331]! } + public var State_ConnectingToProxy: String { return self._s[4332]! } + public var TextFormat_Link: String { return self._s[4333]! } + public var Passport_Language_lv: String { return self._s[4335]! } + public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4336]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[4337]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[4338]! } + public var ProfilePhoto_SetMainVideo: String { return self._s[4339]! } + public var AutoDownloadSettings_Cellular: String { return self._s[4341]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4342]! } + public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4343]! } public func Channel_AdminLog_MessageKickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4343]!, self._r[4343]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4344]!, self._r[4344]!, [_1, _2]) } - public var ChatList_EmptyChatListFilterTitle: String { return self._s[4344]! } - public var Checkout_PayNone: String { return self._s[4345]! } - public var NotificationsSound_Complete: String { return self._s[4347]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4348]! } - public var InviteLink_CreateInfo: String { return self._s[4349]! } - public var AuthSessions_DevicesTitle: String { return self._s[4350]! } + public var ChatList_EmptyChatListFilterTitle: String { return self._s[4345]! } + public var Checkout_PayNone: String { return self._s[4346]! } + public var NotificationsSound_Complete: String { return self._s[4348]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4349]! } + public var InviteLink_CreateInfo: String { return self._s[4350]! } + public var AuthSessions_DevicesTitle: String { return self._s[4351]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4351]!, self._r[4351]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4352]!, self._r[4352]!, [_0, _1]) } - public var Message_LiveLocation: String { return self._s[4352]! } - public var Watch_Suggestion_BRB: String { return self._s[4353]! } - public var Channel_BanUser_Title: String { return self._s[4354]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4355]! } - public var Conversation_Dice_u1F3C0: String { return self._s[4356]! } - public var Conversation_ClearSelfHistory: String { return self._s[4357]! } - public var ProfilePhoto_OpenGallery: String { return self._s[4358]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[4359]! } - public var Weekday_Thursday: String { return self._s[4360]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4361]! } - public var Privacy_ProfilePhoto: String { return self._s[4363]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4364]! } + public var Message_LiveLocation: String { return self._s[4353]! } + public var Watch_Suggestion_BRB: String { return self._s[4354]! } + public var Channel_BanUser_Title: String { return self._s[4355]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4356]! } + public var Conversation_Dice_u1F3C0: String { return self._s[4357]! } + public var Conversation_ClearSelfHistory: String { return self._s[4358]! } + public var ProfilePhoto_OpenGallery: String { return self._s[4359]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[4360]! } + public var Weekday_Thursday: String { return self._s[4361]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4362]! } + public var Privacy_ProfilePhoto: String { return self._s[4364]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4365]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4365]!, self._r[4365]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4366]!, self._r[4366]!, [_1, _2]) } - public var Message_Audio: String { return self._s[4366]! } - public var Conversation_Info: String { return self._s[4367]! } - public var Cache_Videos: String { return self._s[4368]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4369]! } - public var Channel_ErrorAddTooMuch: String { return self._s[4370]! } + public var Message_Audio: String { return self._s[4367]! } + public var Conversation_Info: String { return self._s[4368]! } + public var Cache_Videos: String { return self._s[4369]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4370]! } + public var Channel_ErrorAddTooMuch: String { return self._s[4371]! } + public var TwoFactorSetup_ResetDone_Text: String { return self._s[4372]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4371]!, self._r[4371]!, [_0]) + return formatWithArgumentRanges(self._s[4373]!, self._r[4373]!, [_0]) } - public var VoiceChat_EditBio: String { return self._s[4372]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4374]! } - public var VoiceChat_ShareScreen: String { return self._s[4377]! } - public var ScheduledMessages_Title: String { return self._s[4378]! } - public var ShareFileTip_Title: String { return self._s[4381]! } - public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4382]! } - public var ChatList_RemoveFolderConfirmation: String { return self._s[4383]! } + public var VoiceChat_EditBio: String { return self._s[4374]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4376]! } + public var VoiceChat_ShareScreen: String { return self._s[4379]! } + public var ScheduledMessages_Title: String { return self._s[4380]! } + public var ShareFileTip_Title: String { return self._s[4383]! } + public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4384]! } + public var ChatList_RemoveFolderConfirmation: String { return self._s[4385]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4384]!, self._r[4384]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4386]!, self._r[4386]!, [_1, _2]) } - public var Conversation_ContextViewStats: String { return self._s[4386]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4387]! } - public var PasscodeSettings_Title: String { return self._s[4388]! } - public var Channel_AdminLog_SendPolls: String { return self._s[4389]! } - public var LastSeen_ALongTimeAgo: String { return self._s[4390]! } + public var Conversation_ContextViewStats: String { return self._s[4388]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4389]! } + public var PasscodeSettings_Title: String { return self._s[4390]! } + public var Channel_AdminLog_SendPolls: String { return self._s[4391]! } + public var LastSeen_ALongTimeAgo: String { return self._s[4392]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4391]!, self._r[4391]!, [_1]) + return formatWithArgumentRanges(self._s[4393]!, self._r[4393]!, [_1]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4392]! } - public var ChannelInfo_FakeChannelWarning: String { return self._s[4393]! } - public var CallFeedback_VideoReasonLowQuality: String { return self._s[4394]! } - public var Conversation_PinnedPreviousMessage: String { return self._s[4395]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[4396]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[4397]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4394]! } + public var ChannelInfo_FakeChannelWarning: String { return self._s[4395]! } + public var CallFeedback_VideoReasonLowQuality: String { return self._s[4396]! } + public var Conversation_PinnedPreviousMessage: String { return self._s[4397]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[4398]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[4399]! } public func ChatList_RemovedFromFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4398]!, self._r[4398]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4400]!, self._r[4400]!, [_1, _2]) } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4399]!, self._r[4399]!, [_0]) + return formatWithArgumentRanges(self._s[4401]!, self._r[4401]!, [_0]) } - public var Passport_Identity_GenderFemale: String { return self._s[4400]! } - public var Location_ProximityNotification_DistanceKM: String { return self._s[4403]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[4404]! } + public var Passport_Identity_GenderFemale: String { return self._s[4402]! } + public var Location_ProximityNotification_DistanceKM: String { return self._s[4405]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[4406]! } public func Message_ImportedDateFormat(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4405]!, self._r[4405]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4407]!, self._r[4407]!, [_1, _2, _3]) } - public var VoiceChat_Audio: String { return self._s[4406]! } - public var SharedMedia_TitleAll: String { return self._s[4407]! } - public var Settings_Context_Logout: String { return self._s[4408]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4411]! } - public var Settings_About_Title: String { return self._s[4412]! } - public var StickerSettings_ContextHide: String { return self._s[4413]! } + public var VoiceChat_Audio: String { return self._s[4408]! } + public var SharedMedia_TitleAll: String { return self._s[4409]! } + public var Settings_Context_Logout: String { return self._s[4410]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4413]! } + public var Settings_About_Title: String { return self._s[4414]! } + public var StickerSettings_ContextHide: String { return self._s[4415]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4414]!, self._r[4414]!, [_0]) + return formatWithArgumentRanges(self._s[4416]!, self._r[4416]!, [_0]) } public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4415]!, self._r[4415]!, [_0]) + return formatWithArgumentRanges(self._s[4417]!, self._r[4417]!, [_0]) } - public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4417]! } - public var Common_Cancel: String { return self._s[4418]! } - public var CallFeedback_Title: String { return self._s[4420]! } + public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4419]! } + public var Common_Cancel: String { return self._s[4420]! } + public var CallFeedback_Title: String { return self._s[4422]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4421]!, self._r[4421]!, [_0]) + return formatWithArgumentRanges(self._s[4423]!, self._r[4423]!, [_0]) } - public var Conversation_StickerAddedToFavorites: String { return self._s[4422]! } - public var Activity_UploadingVideoMessage: String { return self._s[4424]! } - public var MediaPicker_Send: String { return self._s[4425]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4426]! } - public var Conversation_LiveLocationYou: String { return self._s[4427]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[4428]! } + public var Conversation_StickerAddedToFavorites: String { return self._s[4424]! } + public var Activity_UploadingVideoMessage: String { return self._s[4426]! } + public var MediaPicker_Send: String { return self._s[4427]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4428]! } + public var Conversation_LiveLocationYou: String { return self._s[4429]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[4430]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4430]!, self._r[4430]!, [_0]) + return formatWithArgumentRanges(self._s[4432]!, self._r[4432]!, [_0]) } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4431]!, self._r[4431]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4433]!, self._r[4433]!, [_1, _2]) } - public var Checkout_PaymentLiabilityAlert: String { return self._s[4432]! } - public var Conversation_ViewBackground: String { return self._s[4433]! } - public var ChatSettings_PrivateChats: String { return self._s[4436]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[4437]! } - public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4438]! } - public var Appearance_ThemeNight: String { return self._s[4439]! } - public var Common_Search: String { return self._s[4440]! } - public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4441]! } - public var ChangePhoneNumberNumber_Help: String { return self._s[4443]! } - public var InviteLink_QRCode_Share: String { return self._s[4444]! } - public var Stickers_SuggestAdded: String { return self._s[4446]! } + public var Checkout_PaymentLiabilityAlert: String { return self._s[4434]! } + public var Conversation_ViewBackground: String { return self._s[4435]! } + public var ChatSettings_PrivateChats: String { return self._s[4438]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[4439]! } + public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4440]! } + public var Appearance_ThemeNight: String { return self._s[4441]! } + public var Common_Search: String { return self._s[4442]! } + public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4443]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[4445]! } + public var InviteLink_QRCode_Share: String { return self._s[4446]! } + public var Stickers_SuggestAdded: String { return self._s[4448]! } public func VoiceChat_VideoParticipantsLimitExceeded(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4448]!, self._r[4448]!, [_0]) + return formatWithArgumentRanges(self._s[4450]!, self._r[4450]!, [_0]) } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4450]! } - public var Widget_UpdatedTodayAt: String { return self._s[4451]! } - public var NetworkUsageSettings_Cellular: String { return self._s[4452]! } - public var CheckoutInfo_Title: String { return self._s[4453]! } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4454]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[4455]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4452]! } + public var Widget_UpdatedTodayAt: String { return self._s[4453]! } + public var NetworkUsageSettings_Cellular: String { return self._s[4454]! } + public var CheckoutInfo_Title: String { return self._s[4455]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4456]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[4457]! } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4456]!, self._r[4456]!, [_0]) + return formatWithArgumentRanges(self._s[4458]!, self._r[4458]!, [_0]) } - public var MaskStickerSettings_Info: String { return self._s[4458]! } - public var GroupRemoved_DeleteUser: String { return self._s[4460]! } - public var Contacts_ShareTelegram: String { return self._s[4461]! } - public var Group_UpgradeNoticeText1: String { return self._s[4462]! } + public var MaskStickerSettings_Info: String { return self._s[4460]! } + public var GroupRemoved_DeleteUser: String { return self._s[4462]! } + public var Contacts_ShareTelegram: String { return self._s[4463]! } + public var Group_UpgradeNoticeText1: String { return self._s[4464]! } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4463]!, self._r[4463]!, [_1]) + return formatWithArgumentRanges(self._s[4465]!, self._r[4465]!, [_1]) } - public var PrivacyLastSeenSettings_Title: String { return self._s[4464]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[4468]! } - public var PhotoEditor_TintTool: String { return self._s[4469]! } - public var ChatImportActivity_OpenApp: String { return self._s[4471]! } - public var GroupPermission_NoSendPolls: String { return self._s[4472]! } - public var NotificationsSound_None: String { return self._s[4473]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[4466]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[4470]! } + public var PhotoEditor_TintTool: String { return self._s[4471]! } + public var ChatImportActivity_OpenApp: String { return self._s[4473]! } + public var GroupPermission_NoSendPolls: String { return self._s[4474]! } + public var NotificationsSound_None: String { return self._s[4475]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4474]!, self._r[4474]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4476]!, self._r[4476]!, [_1, "\(_2)"]) } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4477]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4479]! } public func Conversation_AutoremoveTimerSetChannel(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4479]!, self._r[4479]!, [_1]) + return formatWithArgumentRanges(self._s[4481]!, self._r[4481]!, [_1]) } - public var ExplicitContent_AlertChannel: String { return self._s[4480]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[4481]! } - public var Contacts_SortedByPresence: String { return self._s[4482]! } - public var WallpaperSearch_ColorGray: String { return self._s[4483]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4484]! } - public var Conversation_ReportSpam: String { return self._s[4485]! } - public var ChatList_Search_NoResultsFilter: String { return self._s[4488]! } - public var WallpaperSearch_ColorBlack: String { return self._s[4489]! } - public var ArchivedChats_IntroTitle3: String { return self._s[4490]! } - public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4491]! } + public var ExplicitContent_AlertChannel: String { return self._s[4482]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[4483]! } + public var Contacts_SortedByPresence: String { return self._s[4484]! } + public var WallpaperSearch_ColorGray: String { return self._s[4485]! } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4486]! } + public var Conversation_ReportSpam: String { return self._s[4487]! } + public var ChatList_Search_NoResultsFilter: String { return self._s[4490]! } + public var WallpaperSearch_ColorBlack: String { return self._s[4491]! } + public var ArchivedChats_IntroTitle3: String { return self._s[4492]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4493]! } public func VoiceChat_PeerJoinedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4492]!, self._r[4492]!, [_0]) + return formatWithArgumentRanges(self._s[4494]!, self._r[4494]!, [_0]) } - public var Conversation_DefaultRestrictedText: String { return self._s[4493]! } - public var Settings_Devices: String { return self._s[4494]! } - public var Call_AudioRouteSpeaker: String { return self._s[4495]! } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[4496]! } - public var VoiceChat_StartsIn: String { return self._s[4497]! } - public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4498]! } - public var VoiceChat_EditDescriptionTitle: String { return self._s[4500]! } - public var Passport_Address_Country: String { return self._s[4501]! } - public var Cache_MaximumCacheSize: String { return self._s[4502]! } - public var Chat_PanelHidePinnedMessages: String { return self._s[4503]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[4504]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4506]! } - public var Login_TermsOfServiceLabel: String { return self._s[4507]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[4508]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4509]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4510]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[4511]! } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[4512]! } - public var ConvertToSupergroup_Note: String { return self._s[4514]! } - public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4515]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4516]! } - public var Common_More: String { return self._s[4517]! } - public var ShareMenu_SelectChats: String { return self._s[4519]! } + public var Conversation_DefaultRestrictedText: String { return self._s[4495]! } + public var Settings_Devices: String { return self._s[4496]! } + public var Call_AudioRouteSpeaker: String { return self._s[4497]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[4498]! } + public var VoiceChat_StartsIn: String { return self._s[4499]! } + public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4500]! } + public var VoiceChat_EditDescriptionTitle: String { return self._s[4502]! } + public var Passport_Address_Country: String { return self._s[4503]! } + public var Cache_MaximumCacheSize: String { return self._s[4504]! } + public var Chat_PanelHidePinnedMessages: String { return self._s[4505]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[4506]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4508]! } + public var Login_TermsOfServiceLabel: String { return self._s[4509]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[4510]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[4511]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4512]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[4513]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[4514]! } + public var ConvertToSupergroup_Note: String { return self._s[4516]! } + public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4517]! } + public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4518]! } + public var Common_More: String { return self._s[4519]! } + public var ShareMenu_SelectChats: String { return self._s[4521]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4520]!, self._r[4520]!, [_0]) + return formatWithArgumentRanges(self._s[4522]!, self._r[4522]!, [_0]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4521]!, self._r[4521]!, [_0]) + return formatWithArgumentRanges(self._s[4523]!, self._r[4523]!, [_0]) } - public var Contacts_PermissionsKeepDisabled: String { return self._s[4523]! } - public var VoiceChat_EditBioText: String { return self._s[4524]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[4525]! } + public var VoiceChat_EditBioText: String { return self._s[4526]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4525]!, self._r[4525]!, [_0]) + return formatWithArgumentRanges(self._s[4527]!, self._r[4527]!, [_0]) } - public var WatchRemote_AlertOpen: String { return self._s[4526]! } + public var WatchRemote_AlertOpen: String { return self._s[4528]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4527]!, self._r[4527]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4529]!, self._r[4529]!, [_1, _2, _3]) } - public var Channel_Members_AddMembersHelp: String { return self._s[4528]! } - public var Shortcut_SwitchAccount: String { return self._s[4529]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4530]! } + public var Channel_Members_AddMembersHelp: String { return self._s[4530]! } + public var Shortcut_SwitchAccount: String { return self._s[4531]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4532]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4531]!, self._r[4531]!, [_0]) + return formatWithArgumentRanges(self._s[4533]!, self._r[4533]!, [_0]) } - public var Compose_NewGroupTitle: String { return self._s[4532]! } - public var DialogList_You: String { return self._s[4533]! } - public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4534]! } - public var ReportPeer_ReasonViolence: String { return self._s[4535]! } + public var Compose_NewGroupTitle: String { return self._s[4534]! } + public var DialogList_You: String { return self._s[4535]! } + public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4536]! } + public var ReportPeer_ReasonViolence: String { return self._s[4537]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4536]!, self._r[4536]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4538]!, self._r[4538]!, [_1, _2]) } - public var VoiceChat_Reconnecting: String { return self._s[4538]! } - public var KeyCommand_ScrollDown: String { return self._s[4541]! } - public var ChatSettings_DownloadInBackground: String { return self._s[4542]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4543]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[4544]! } - public var ArchivedChats_IntroText3: String { return self._s[4545]! } - public var HashtagSearch_AllChats: String { return self._s[4547]! } - public var VoiceChat_EndVoiceChat: String { return self._s[4548]! } - public var Conversation_MessageCopied: String { return self._s[4550]! } - public var Channel_Info_BlackList: String { return self._s[4551]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4552]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4553]! } - public var Paint_Neon: String { return self._s[4555]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4556]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[4557]! } - public var ImportStickerPack_CreateNewStickerSet: String { return self._s[4558]! } + public var VoiceChat_Reconnecting: String { return self._s[4540]! } + public var KeyCommand_ScrollDown: String { return self._s[4543]! } + public var ChatSettings_DownloadInBackground: String { return self._s[4544]! } + public var Wallpaper_ResetWallpapers: String { return self._s[4545]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[4546]! } + public var ArchivedChats_IntroText3: String { return self._s[4547]! } + public var HashtagSearch_AllChats: String { return self._s[4549]! } + public var VoiceChat_EndVoiceChat: String { return self._s[4550]! } + public var Conversation_MessageCopied: String { return self._s[4552]! } + public var Channel_Info_BlackList: String { return self._s[4553]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4554]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4555]! } + public var Paint_Neon: String { return self._s[4557]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4558]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[4559]! } + public var ImportStickerPack_CreateNewStickerSet: String { return self._s[4560]! } public func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4560]!, self._r[4560]!, [_0]) + return formatWithArgumentRanges(self._s[4562]!, self._r[4562]!, [_0]) } - public var Map_StopLiveLocation: String { return self._s[4561]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4562]! } - public var Channel_Username_InvalidCharacters: String { return self._s[4563]! } - public var InstantPage_Reference: String { return self._s[4565]! } - public var Group_Members_AddMembers: String { return self._s[4567]! } + public var Map_StopLiveLocation: String { return self._s[4563]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4564]! } + public var Channel_Username_InvalidCharacters: String { return self._s[4565]! } + public var InstantPage_Reference: String { return self._s[4567]! } + public var Group_Members_AddMembers: String { return self._s[4569]! } public func Conversation_ScheduledVoiceChatStartsOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4568]!, self._r[4568]!, [_0]) + return formatWithArgumentRanges(self._s[4570]!, self._r[4570]!, [_0]) } - public var ChatList_HideAction: String { return self._s[4569]! } - public var Conversation_FileICloudDrive: String { return self._s[4571]! } + public var ChatList_HideAction: String { return self._s[4571]! } + public var Conversation_FileICloudDrive: String { return self._s[4573]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4572]!, self._r[4572]!, [_1]) + return formatWithArgumentRanges(self._s[4574]!, self._r[4574]!, [_1]) } - public var Passport_PasswordReset: String { return self._s[4574]! } - public var ChatList_Context_UnhideArchive: String { return self._s[4576]! } - public var ConvertToSupergroup_HelpText: String { return self._s[4577]! } - public var Calls_AddTab: String { return self._s[4578]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4580]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4581]! } - public var Privacy_GroupsAndChannels: String { return self._s[4584]! } - public var Conversation_UsernameCopied: String { return self._s[4585]! } - public var AutoNightTheme_Disabled: String { return self._s[4586]! } - public var CreatePoll_MultipleChoice: String { return self._s[4587]! } + public var Passport_PasswordReset: String { return self._s[4576]! } + public var ChatList_Context_UnhideArchive: String { return self._s[4578]! } + public var ConvertToSupergroup_HelpText: String { return self._s[4579]! } + public var Calls_AddTab: String { return self._s[4580]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4582]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4583]! } + public var Privacy_GroupsAndChannels: String { return self._s[4586]! } + public var Conversation_UsernameCopied: String { return self._s[4587]! } + public var AutoNightTheme_Disabled: String { return self._s[4588]! } + public var CreatePoll_MultipleChoice: String { return self._s[4589]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4588]!, self._r[4588]!, [_1]) + return formatWithArgumentRanges(self._s[4590]!, self._r[4590]!, [_1]) } - public var Watch_Bot_Restart: String { return self._s[4590]! } + public var Watch_Bot_Restart: String { return self._s[4592]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4591]!, self._r[4591]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[4593]!, self._r[4593]!, ["\(_0)"]) } - public var GroupInfo_ScamGroupWarning: String { return self._s[4593]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[4594]! } - public var Appearance_PreviewIncomingText: String { return self._s[4595]! } - public var ChatSettings_WidgetSettings: String { return self._s[4596]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4597]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4599]! } - public var Stats_GroupOverview: String { return self._s[4601]! } - public var ScheduledMessages_EditTime: String { return self._s[4604]! } - public var Month_GenFebruary: String { return self._s[4605]! } - public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4606]! } - public var Stickers_ClearRecent: String { return self._s[4607]! } - public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4608]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4609]! } - public var Stats_Message_PublicShares: String { return self._s[4610]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[4595]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[4596]! } + public var Appearance_PreviewIncomingText: String { return self._s[4597]! } + public var ChatSettings_WidgetSettings: String { return self._s[4598]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4599]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4601]! } + public var Stats_GroupOverview: String { return self._s[4603]! } + public var ScheduledMessages_EditTime: String { return self._s[4606]! } + public var Month_GenFebruary: String { return self._s[4607]! } + public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4608]! } + public var Stickers_ClearRecent: String { return self._s[4609]! } + public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4610]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4611]! } + public var Stats_Message_PublicShares: String { return self._s[4612]! } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4611]!, self._r[4611]!, [_0]) + return formatWithArgumentRanges(self._s[4613]!, self._r[4613]!, [_0]) } - public var Login_TermsOfServiceSignupDecline: String { return self._s[4612]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4613]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[4614]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4615]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4617]! } - public var CreatePoll_Create: String { return self._s[4618]! } - public var ChatList_Search_FilterLinks: String { return self._s[4619]! } - public var Your_cards_number_is_invalid: String { return self._s[4620]! } - public var Month_ShortApril: String { return self._s[4621]! } - public var SocksProxySetup_UseForCalls: String { return self._s[4622]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[4623]! } - public var SocksProxySetup_Status: String { return self._s[4624]! } - public var VoiceChat_UnmuteForMe: String { return self._s[4625]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4626]! } - public var ChatListFolder_CategoryBots: String { return self._s[4627]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[4629]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4630]! } - public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4631]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[4632]! } - public var Conversation_TitleUnmute: String { return self._s[4633]! } - public var Group_Setup_TypeHeader: String { return self._s[4634]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[4614]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4615]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[4616]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4617]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4619]! } + public var CreatePoll_Create: String { return self._s[4620]! } + public var ChatList_Search_FilterLinks: String { return self._s[4621]! } + public var Your_cards_number_is_invalid: String { return self._s[4622]! } + public var Month_ShortApril: String { return self._s[4623]! } + public var SocksProxySetup_UseForCalls: String { return self._s[4624]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[4625]! } + public var SocksProxySetup_Status: String { return self._s[4626]! } + public var VoiceChat_UnmuteForMe: String { return self._s[4627]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4628]! } + public var ChatListFolder_CategoryBots: String { return self._s[4629]! } + public var Passport_FieldIdentitySelfieHelp: String { return self._s[4631]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4632]! } + public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4633]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[4634]! } + public var Conversation_TitleUnmute: String { return self._s[4635]! } + public var Group_Setup_TypeHeader: String { return self._s[4636]! } public func Conversation_ForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4635]!, self._r[4635]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4637]!, self._r[4637]!, [_0, _1]) } - public var Stats_ViewsPerPost: String { return self._s[4636]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4637]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4638]! } + public var Stats_ViewsPerPost: String { return self._s[4638]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4639]! } + public var Passport_Identity_TranslationHelp: String { return self._s[4640]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4639]!, self._r[4639]!, [_1]) + return formatWithArgumentRanges(self._s[4641]!, self._r[4641]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[4640]! } + public var GroupInfo_Administrators_Title: String { return self._s[4642]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4641]!, self._r[4641]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4643]!, self._r[4643]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4642]!, self._r[4642]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4644]!, self._r[4644]!, [_1, _2, _3]) } - public var CheckoutInfo_ShippingInfoState: String { return self._s[4643]! } - public var Passport_Language_my: String { return self._s[4645]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4646]! } - public var VoiceChat_Unpin: String { return self._s[4647]! } - public var Map_PlacesNearby: String { return self._s[4648]! } - public var Channel_About_Help: String { return self._s[4649]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[4650]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[4651]! } - public var Channel_Username_Title: String { return self._s[4652]! } - public var Activity_RecordingVideoMessage: String { return self._s[4653]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[4645]! } + public var Passport_Language_my: String { return self._s[4647]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4648]! } + public var VoiceChat_Unpin: String { return self._s[4649]! } + public var Map_PlacesNearby: String { return self._s[4650]! } + public var Channel_About_Help: String { return self._s[4651]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[4652]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[4653]! } + public var Channel_Username_Title: String { return self._s[4654]! } + public var Activity_RecordingVideoMessage: String { return self._s[4655]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4654]!, self._r[4654]!, [_0]) + return formatWithArgumentRanges(self._s[4656]!, self._r[4656]!, [_0]) } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[4655]! } - public var Passport_DiscardMessageDescription: String { return self._s[4656]! } - public var Conversation_LinkDialogOpen: String { return self._s[4657]! } - public var ChatList_Context_HideArchive: String { return self._s[4658]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[4657]! } + public var Passport_DiscardMessageDescription: String { return self._s[4658]! } + public var Conversation_LinkDialogOpen: String { return self._s[4659]! } + public var ChatList_Context_HideArchive: String { return self._s[4660]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4659]!, self._r[4659]!, [_0]) + return formatWithArgumentRanges(self._s[4661]!, self._r[4661]!, [_0]) } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4660]! } - public var Conversation_Admin: String { return self._s[4661]! } - public var DialogList_TabTitle: String { return self._s[4662]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4662]! } + public var Conversation_Admin: String { return self._s[4663]! } + public var DialogList_TabTitle: String { return self._s[4664]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4663]!, self._r[4663]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4665]!, self._r[4665]!, [_1, _2]) } - public var Notifications_PermissionsUnreachableText: String { return self._s[4664]! } - public var Passport_Identity_GenderMale: String { return self._s[4666]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[4666]! } + public var Passport_Identity_GenderMale: String { return self._s[4668]! } public func VoiceChat_EditTitleSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4668]!, self._r[4668]!, [_0]) + return formatWithArgumentRanges(self._s[4670]!, self._r[4670]!, [_0]) } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4669]! } - public var PhoneNumberHelp_Alert: String { return self._s[4670]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4671]! } - public var Notifications_InAppNotifications: String { return self._s[4672]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4671]! } + public var PhoneNumberHelp_Alert: String { return self._s[4672]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4673]! } + public var Notifications_InAppNotifications: String { return self._s[4674]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4673]!, self._r[4673]!, [_0]) + return formatWithArgumentRanges(self._s[4675]!, self._r[4675]!, [_0]) } - public var Notification_VideoCallOutgoing: String { return self._s[4674]! } - public var Login_InvalidCodeError: String { return self._s[4675]! } - public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4676]! } + public var Notification_VideoCallOutgoing: String { return self._s[4676]! } + public var Login_InvalidCodeError: String { return self._s[4677]! } + public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4678]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4678]!, self._r[4678]!, [_0]) + return formatWithArgumentRanges(self._s[4680]!, self._r[4680]!, [_0]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4679]! } - public var ReportPeer_Report: String { return self._s[4680]! } - public var Camera_FlashOff: String { return self._s[4683]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4686]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4681]! } + public var ReportPeer_Report: String { return self._s[4682]! } + public var Camera_FlashOff: String { return self._s[4685]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4688]! } public func Notification_VoiceChatScheduledTomorrow(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4687]!, self._r[4687]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4689]!, self._r[4689]!, [_1, _2]) } - public var PrivacyPolicy_DeclineTitle: String { return self._s[4690]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4691]! } - public var Passport_FieldEmail: String { return self._s[4692]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[4692]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4693]! } + public var Passport_FieldEmail: String { return self._s[4694]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4693]!, self._r[4693]!, [_1]) + return formatWithArgumentRanges(self._s[4695]!, self._r[4695]!, [_1]) } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[4694]! } - public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4695]! } - public var Group_OwnershipTransfer_Title: String { return self._s[4696]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[4697]! } - public var Login_PhoneNumberHelp: String { return self._s[4699]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4700]! } - public var Conversation_PinnedQuiz: String { return self._s[4701]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[4702]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4703]! } - public var Group_MessagePhotoUpdated: String { return self._s[4704]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[4705]! } - public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4706]! } - public var Passport_Identity_Translations: String { return self._s[4708]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4709]! } - public var ChannelInfo_DeleteChannel: String { return self._s[4711]! } - public var PasscodeSettings_HelpBottom: String { return self._s[4712]! } - public var Channel_Members_AddMembers: String { return self._s[4713]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[4714]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4716]! } - public var Conversation_HoldForAudio: String { return self._s[4717]! } - public var Media_LimitedAccessChangeSettings: String { return self._s[4719]! } - public var Watch_LastSeen_Lately: String { return self._s[4720]! } - public var ChatList_Context_MarkAsRead: String { return self._s[4721]! } - public var Conversation_PinnedMessage: String { return self._s[4722]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4723]! } - public var VoiceChat_StopRecordingStop: String { return self._s[4725]! } - public var Passport_UpdateRequiredError: String { return self._s[4726]! } - public var PrivacySettings_Passcode: String { return self._s[4727]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[4696]! } + public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4697]! } + public var Group_OwnershipTransfer_Title: String { return self._s[4698]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[4699]! } + public var Login_PhoneNumberHelp: String { return self._s[4701]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4702]! } + public var Conversation_PinnedQuiz: String { return self._s[4703]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[4704]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4705]! } + public var Group_MessagePhotoUpdated: String { return self._s[4706]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[4707]! } + public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4708]! } + public var Passport_Identity_Translations: String { return self._s[4710]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4711]! } + public var ChannelInfo_DeleteChannel: String { return self._s[4713]! } + public var PasscodeSettings_HelpBottom: String { return self._s[4714]! } + public var Channel_Members_AddMembers: String { return self._s[4715]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[4716]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4718]! } + public var Conversation_HoldForAudio: String { return self._s[4719]! } + public var Media_LimitedAccessChangeSettings: String { return self._s[4721]! } + public var Watch_LastSeen_Lately: String { return self._s[4722]! } + public var ChatList_Context_MarkAsRead: String { return self._s[4723]! } + public var Conversation_PinnedMessage: String { return self._s[4724]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4725]! } + public var VoiceChat_StopRecordingStop: String { return self._s[4727]! } + public var Passport_UpdateRequiredError: String { return self._s[4728]! } + public var PrivacySettings_Passcode: String { return self._s[4729]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4728]!, self._r[4728]!, [_0]) + return formatWithArgumentRanges(self._s[4730]!, self._r[4730]!, [_0]) } - public var AutoNightTheme_NotAvailable: String { return self._s[4729]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[4730]! } - public var VoiceOver_Common_On: String { return self._s[4731]! } - public var LoginPassword_InvalidPasswordError: String { return self._s[4732]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4733]! } - public var Channel_SignMessages_Help: String { return self._s[4734]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4735]! } - public var Conversation_TitleNoComments: String { return self._s[4736]! } - public var MediaPicker_LivePhotoDescription: String { return self._s[4737]! } - public var GroupInfo_Permissions: String { return self._s[4738]! } - public var GroupPermission_NoSendLinks: String { return self._s[4741]! } + public var AutoNightTheme_NotAvailable: String { return self._s[4731]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[4732]! } + public var VoiceOver_Common_On: String { return self._s[4733]! } + public var LoginPassword_InvalidPasswordError: String { return self._s[4734]! } + public var ChatListFolder_IncludedSectionHeader: String { return self._s[4735]! } + public var Channel_SignMessages_Help: String { return self._s[4736]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4737]! } + public var Conversation_TitleNoComments: String { return self._s[4738]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[4739]! } + public var GroupInfo_Permissions: String { return self._s[4740]! } + public var GroupPermission_NoSendLinks: String { return self._s[4743]! } public func Conversation_ScheduledVoiceChatStartsTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4742]!, self._r[4742]!, [_0]) + return formatWithArgumentRanges(self._s[4744]!, self._r[4744]!, [_0]) } - public var Passport_Identity_ResidenceCountry: String { return self._s[4743]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[4745]! } - public var ChatList_ArchiveAction: String { return self._s[4746]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[4745]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[4747]! } + public var ChatList_ArchiveAction: String { return self._s[4748]! } public func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4747]!, self._r[4747]!, [_0]) + return formatWithArgumentRanges(self._s[4749]!, self._r[4749]!, [_0]) } - public var GroupInfo_GroupHistory: String { return self._s[4748]! } + public var GroupInfo_GroupHistory: String { return self._s[4750]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4750]!, self._r[4750]!, [_0]) + return formatWithArgumentRanges(self._s[4752]!, self._r[4752]!, [_0]) } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4752]! } - public var Channel_Info_Banned: String { return self._s[4753]! } - public var Paint_RecentStickers: String { return self._s[4754]! } - public var VoiceOver_MessageContextSend: String { return self._s[4755]! } - public var Group_ErrorNotMutualContact: String { return self._s[4756]! } - public var ReportPeer_ReasonOther: String { return self._s[4758]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4759]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4761]! } - public var KeyCommand_Find: String { return self._s[4762]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4754]! } + public var Channel_Info_Banned: String { return self._s[4755]! } + public var Paint_RecentStickers: String { return self._s[4756]! } + public var VoiceOver_MessageContextSend: String { return self._s[4757]! } + public var Group_ErrorNotMutualContact: String { return self._s[4758]! } + public var ReportPeer_ReasonOther: String { return self._s[4760]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4761]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4763]! } + public var KeyCommand_Find: String { return self._s[4764]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4763]!, self._r[4763]!, [_0]) + return formatWithArgumentRanges(self._s[4765]!, self._r[4765]!, [_0]) } - public var ChatList_Context_Unmute: String { return self._s[4764]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4765]! } - public var Stickers_GroupStickersHelp: String { return self._s[4766]! } - public var Checkout_Title: String { return self._s[4767]! } - public var Activity_RecordingAudio: String { return self._s[4768]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4769]! } - public var BlockedUsers_BlockTitle: String { return self._s[4770]! } - public var DialogList_SavedMessagesHelp: String { return self._s[4772]! } - public var Calls_All: String { return self._s[4773]! } - public var Settings_FAQ_Button: String { return self._s[4775]! } - public var Conversation_Dice_u1F3B0: String { return self._s[4777]! } + public var ChatList_Context_Unmute: String { return self._s[4766]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4767]! } + public var TwoFactorSetup_ResetDone_Action: String { return self._s[4768]! } + public var Stickers_GroupStickersHelp: String { return self._s[4769]! } + public var Checkout_Title: String { return self._s[4770]! } + public var Activity_RecordingAudio: String { return self._s[4771]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4772]! } + public var BlockedUsers_BlockTitle: String { return self._s[4773]! } + public var DialogList_SavedMessagesHelp: String { return self._s[4775]! } + public var Calls_All: String { return self._s[4776]! } + public var Settings_FAQ_Button: String { return self._s[4778]! } + public var Conversation_Dice_u1F3B0: String { return self._s[4780]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4778]!, self._r[4778]!, [_0]) + return formatWithArgumentRanges(self._s[4781]!, self._r[4781]!, [_0]) } - public var Conversation_ReportGroupLocation: String { return self._s[4779]! } - public var Passport_Scans_Upload: String { return self._s[4780]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4782]! } - public var ChatList_UnarchiveAction: String { return self._s[4783]! } - public var Stats_GroupTopInviter_History: String { return self._s[4784]! } - public var GroupInfo_Permissions_Title: String { return self._s[4785]! } - public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4786]! } - public var Passport_Language_el: String { return self._s[4787]! } - public var Channel_DiscussionMessageUnavailable: String { return self._s[4788]! } + public var Conversation_ReportGroupLocation: String { return self._s[4782]! } + public var Passport_Scans_Upload: String { return self._s[4783]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4785]! } + public var ChatList_UnarchiveAction: String { return self._s[4786]! } + public var Stats_GroupTopInviter_History: String { return self._s[4787]! } + public var GroupInfo_Permissions_Title: String { return self._s[4788]! } + public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4789]! } + public var Passport_Language_el: String { return self._s[4790]! } + public var Channel_DiscussionMessageUnavailable: String { return self._s[4791]! } public func UserInfo_ContactForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4789]!, self._r[4789]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4792]!, self._r[4792]!, [_0, _1]) } - public var GroupInfo_ActionPromote: String { return self._s[4790]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4791]! } - public var Media_LimitedAccessSelectMore: String { return self._s[4792]! } + public var GroupInfo_ActionPromote: String { return self._s[4793]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4794]! } + public var Media_LimitedAccessSelectMore: String { return self._s[4795]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4793]!, self._r[4793]!, [_0]) + return formatWithArgumentRanges(self._s[4796]!, self._r[4796]!, [_0]) } - public var VoiceOver_Chat_Reply: String { return self._s[4794]! } - public var Month_GenMay: String { return self._s[4795]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4796]! } - public var Chat_PsaTooltip_covid: String { return self._s[4797]! } - public var Watch_Suggestion_CantTalk: String { return self._s[4798]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4799]! } - public var AppUpgrade_Running: String { return self._s[4800]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4803]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4804]! } - public var SharedMedia_EmptyText: String { return self._s[4805]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[4806]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4807]! } - public var Message_PinnedGame: String { return self._s[4808]! } - public var KeyCommand_SearchInChat: String { return self._s[4809]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[4810]! } - public var ChatList_Search_FilterMedia: String { return self._s[4811]! } - public var Message_PinnedAudioMessage: String { return self._s[4812]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[4814]! } + public var VoiceOver_Chat_Reply: String { return self._s[4797]! } + public var Month_GenMay: String { return self._s[4798]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4799]! } + public var Chat_PsaTooltip_covid: String { return self._s[4800]! } + public var Watch_Suggestion_CantTalk: String { return self._s[4801]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4802]! } + public var AppUpgrade_Running: String { return self._s[4803]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4806]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4807]! } + public var SharedMedia_EmptyText: String { return self._s[4808]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[4809]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4810]! } + public var Message_PinnedGame: String { return self._s[4811]! } + public var KeyCommand_SearchInChat: String { return self._s[4812]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[4813]! } + public var ChatList_Search_FilterMedia: String { return self._s[4814]! } + public var Message_PinnedAudioMessage: String { return self._s[4815]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[4817]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4815]!, self._r[4815]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4818]!, self._r[4818]!, [_1, _2]) } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4816]! } - public var InviteLink_Create: String { return self._s[4817]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4819]! } + public var InviteLink_Create: String { return self._s[4820]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4818]!, self._r[4818]!, [_0]) + return formatWithArgumentRanges(self._s[4821]!, self._r[4821]!, [_0]) } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4819]!, self._r[4819]!, [_0]) + return formatWithArgumentRanges(self._s[4822]!, self._r[4822]!, [_0]) } - public var Settings_AddAccount: String { return self._s[4820]! } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4821]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4822]! } - public var Channel_JoinChannel: String { return self._s[4823]! } - public var Watch_UserInfo_Unblock: String { return self._s[4824]! } - public var PhoneLabel_Title: String { return self._s[4825]! } - public var VoiceChat_EditPermissions: String { return self._s[4827]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[4828]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4829]! } + public var Settings_AddAccount: String { return self._s[4823]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4824]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4825]! } + public var Channel_JoinChannel: String { return self._s[4826]! } + public var Watch_UserInfo_Unblock: String { return self._s[4827]! } + public var PhoneLabel_Title: String { return self._s[4828]! } + public var VoiceChat_EditPermissions: String { return self._s[4830]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[4831]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4832]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4830]!, self._r[4830]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[4833]!, self._r[4833]!, [_1, _2, _3, _4, _5, _6]) } - public var Channel_AddBotErrorHaveRights: String { return self._s[4831]! } - public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4832]! } - public var DialogList_EncryptionProcessing: String { return self._s[4833]! } - public var ChatList_Search_FilterChats: String { return self._s[4834]! } - public var WatchRemote_NotificationText: String { return self._s[4835]! } - public var EditTheme_ChangeColors: String { return self._s[4837]! } - public var GroupRemoved_ViewUserInfo: String { return self._s[4838]! } - public var CallSettings_OnMobile: String { return self._s[4840]! } - public var Month_ShortFebruary: String { return self._s[4842]! } - public var VoiceOver_MessageContextReply: String { return self._s[4843]! } - public var AutoremoveSetup_TimerValueNever: String { return self._s[4844]! } - public var Group_Location_ChangeLocation: String { return self._s[4846]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[4834]! } + public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4835]! } + public var DialogList_EncryptionProcessing: String { return self._s[4836]! } + public var ChatList_Search_FilterChats: String { return self._s[4837]! } + public var WatchRemote_NotificationText: String { return self._s[4838]! } + public var EditTheme_ChangeColors: String { return self._s[4840]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[4841]! } + public var CallSettings_OnMobile: String { return self._s[4843]! } + public var Month_ShortFebruary: String { return self._s[4845]! } + public var VoiceOver_MessageContextReply: String { return self._s[4846]! } + public var AutoremoveSetup_TimerValueNever: String { return self._s[4847]! } + public var Group_Location_ChangeLocation: String { return self._s[4849]! } public func PUSH_VIDEO_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4847]!, self._r[4847]!, [_1]) + return formatWithArgumentRanges(self._s[4850]!, self._r[4850]!, [_1]) } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4848]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[4849]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4850]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4851]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[4852]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4853]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4852]!, self._r[4852]!, [_0]) + return formatWithArgumentRanges(self._s[4855]!, self._r[4855]!, [_0]) } - public var PhotoEditor_WarmthTool: String { return self._s[4853]! } - public var Login_InfoAvatarPhoto: String { return self._s[4854]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4855]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4856]! } - public var Map_PlacesInThisArea: String { return self._s[4857]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[4858]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[4859]! } + public var PhotoEditor_WarmthTool: String { return self._s[4856]! } + public var Login_InfoAvatarPhoto: String { return self._s[4857]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4858]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4859]! } + public var Map_PlacesInThisArea: String { return self._s[4860]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[4861]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[4862]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4860]!, self._r[4860]!, [_1]) + return formatWithArgumentRanges(self._s[4863]!, self._r[4863]!, [_1]) } - public var PeerInfo_ReportProfileVideo: String { return self._s[4861]! } - public var ShareMenu_Send: String { return self._s[4862]! } - public var Username_InvalidStartsWithNumber: String { return self._s[4863]! } + public var PeerInfo_ReportProfileVideo: String { return self._s[4864]! } + public var ShareMenu_Send: String { return self._s[4865]! } + public var Username_InvalidStartsWithNumber: String { return self._s[4866]! } public func Channel_AdminLog_StartedVoiceChat(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4864]!, self._r[4864]!, [_1]) - } - public var Appearance_AppIconClassicX: String { return self._s[4865]! } - public var Report_Report: String { return self._s[4866]! } - public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4867]!, self._r[4867]!, [_1]) } - public var Conversation_StopPoll: String { return self._s[4868]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4870]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[4871]! } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4872]! } - public var Conversation_Timer_Title: String { return self._s[4873]! } - public var Common_Next: String { return self._s[4874]! } - public var Notification_Exceptions_NewException: String { return self._s[4875]! } + public var Appearance_AppIconClassicX: String { return self._s[4868]! } + public var Report_Report: String { return self._s[4869]! } + public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4870]!, self._r[4870]!, [_1]) + } + public var Conversation_StopPoll: String { return self._s[4871]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4873]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[4874]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4875]! } + public var Conversation_Timer_Title: String { return self._s[4876]! } + public var Common_Next: String { return self._s[4877]! } + public var Notification_Exceptions_NewException: String { return self._s[4878]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4876]!, self._r[4876]!, [_0]) + return formatWithArgumentRanges(self._s[4879]!, self._r[4879]!, [_0]) } - public var AccessDenied_CallMicrophone: String { return self._s[4877]! } - public var VoiceChat_UnmutePeer: String { return self._s[4878]! } - public var ChatImportActivity_Retry: String { return self._s[4879]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4880]! } - public var ChangePhoneNumberCode_Help: String { return self._s[4881]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4882]! } - public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4883]! } - public var BlockedUsers_LeavePrefix: String { return self._s[4884]! } + public var AccessDenied_CallMicrophone: String { return self._s[4880]! } + public var VoiceChat_UnmutePeer: String { return self._s[4881]! } + public var ChatImportActivity_Retry: String { return self._s[4882]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4883]! } + public var ChangePhoneNumberCode_Help: String { return self._s[4884]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4885]! } + public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4886]! } + public var BlockedUsers_LeavePrefix: String { return self._s[4887]! } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4885]!, self._r[4885]!, [_0]) + return formatWithArgumentRanges(self._s[4888]!, self._r[4888]!, [_0]) } - public var Group_About_Help: String { return self._s[4886]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4887]! } - public var Tour_Title3: String { return self._s[4888]! } - public var Watch_Conversation_Unblock: String { return self._s[4889]! } - public var Watch_UserInfo_Block: String { return self._s[4890]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[4891]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[4892]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4893]! } - public var TextFormat_AddLinkTitle: String { return self._s[4894]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4895]! } + public var Group_About_Help: String { return self._s[4889]! } + public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4890]! } + public var Tour_Title3: String { return self._s[4891]! } + public var Watch_Conversation_Unblock: String { return self._s[4892]! } + public var Watch_UserInfo_Block: String { return self._s[4893]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[4894]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[4895]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4896]! } + public var TextFormat_AddLinkTitle: String { return self._s[4897]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4898]! } public func Notification_VoiceChatScheduled(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4896]!, self._r[4896]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4899]!, self._r[4899]!, [_1, _2]) } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4897]! } - public var FastTwoStepSetup_PasswordSection: String { return self._s[4899]! } - public var Compose_ChannelMembers: String { return self._s[4900]! } - public var Conversation_ForwardTitle: String { return self._s[4901]! } - public var Conversation_PinnedPoll: String { return self._s[4904]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4900]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[4902]! } + public var Compose_ChannelMembers: String { return self._s[4903]! } + public var Conversation_ForwardTitle: String { return self._s[4904]! } + public var Conversation_PinnedPoll: String { return self._s[4907]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4905]!, self._r[4905]!, [_0]) + return formatWithArgumentRanges(self._s[4908]!, self._r[4908]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4906]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4908]! } - public var Stats_Overview: String { return self._s[4909]! } - public var Map_HomeAndWorkTitle: String { return self._s[4910]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4909]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4911]! } + public var Stats_Overview: String { return self._s[4912]! } + public var Map_HomeAndWorkTitle: String { return self._s[4913]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4911]!, self._r[4911]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4914]!, self._r[4914]!, [_1, _2, _3]) } - public var Passport_Address_CityPlaceholder: String { return self._s[4912]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4913]! } - public var Privacy_PhoneNumber: String { return self._s[4914]! } - public var ChatList_Search_FilterFiles: String { return self._s[4915]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4916]! } - public var ChannelIntro_CreateChannel: String { return self._s[4917]! } - public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4918]! } + public var Passport_Address_CityPlaceholder: String { return self._s[4915]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4916]! } + public var Privacy_PhoneNumber: String { return self._s[4917]! } + public var ChatList_Search_FilterFiles: String { return self._s[4918]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4919]! } + public var ChannelIntro_CreateChannel: String { return self._s[4920]! } + public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4921]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4919]!, self._r[4919]!, [_0]) + return formatWithArgumentRanges(self._s[4922]!, self._r[4922]!, [_0]) } - public var Weekday_ShortMonday: String { return self._s[4920]! } - public var Passport_Language_ar: String { return self._s[4922]! } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4923]! } - public var TwoFactorSetup_Done_Title: String { return self._s[4924]! } - public var Calls_RatingFeedback: String { return self._s[4925]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4926]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[4929]! } + public var Weekday_ShortMonday: String { return self._s[4923]! } + public var Passport_Language_ar: String { return self._s[4925]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4926]! } + public var TwoFactorSetup_Done_Title: String { return self._s[4927]! } + public var Calls_RatingFeedback: String { return self._s[4928]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4929]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[4932]! } public func VoiceOver_SelfDestructTimerOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4930]!, self._r[4930]!, [_0]) + return formatWithArgumentRanges(self._s[4933]!, self._r[4933]!, [_0]) } - public var Watch_Compose_Send: String { return self._s[4931]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[4932]! } - public var WebSearch_RecentSectionClear: String { return self._s[4933]! } + public var Watch_Compose_Send: String { return self._s[4934]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[4935]! } + public var WebSearch_RecentSectionClear: String { return self._s[4936]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4934]!, self._r[4934]!, [_0]) + return formatWithArgumentRanges(self._s[4937]!, self._r[4937]!, [_0]) } - public var WallpaperSearch_ColorTeal: String { return self._s[4935]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4936]! } - public var Permissions_ContactsTitle_v0: String { return self._s[4937]! } - public var Checkout_PasswordEntry_Pay: String { return self._s[4939]! } - public var Settings_SavedMessages: String { return self._s[4940]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4941]! } - public var Month_ShortMarch: String { return self._s[4942]! } - public var Message_Location: String { return self._s[4943]! } + public var WallpaperSearch_ColorTeal: String { return self._s[4938]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4939]! } + public var Permissions_ContactsTitle_v0: String { return self._s[4940]! } + public var Checkout_PasswordEntry_Pay: String { return self._s[4942]! } + public var Settings_SavedMessages: String { return self._s[4943]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4944]! } + public var Month_ShortMarch: String { return self._s[4945]! } + public var Message_Location: String { return self._s[4946]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4944]!, self._r[4944]!, [_1]) + return formatWithArgumentRanges(self._s[4947]!, self._r[4947]!, [_1]) } public func Channel_AdminLog_MessageRemovedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4945]!, self._r[4945]!, [_1]) + return formatWithArgumentRanges(self._s[4948]!, self._r[4948]!, [_1]) } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4946]!, self._r[4946]!, [_1, _2]) - } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[4948]! } - public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4949]!, self._r[4949]!, [_1, _2]) } - public var GroupPermission_NoSendMedia: String { return self._s[4950]! } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[4951]! } - public var SharedMedia_CategoryDocs: String { return self._s[4952]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[4953]! } - public var Paint_Framed: String { return self._s[4954]! } - public var Channel_Setup_LinkTypePublic: String { return self._s[4955]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4956]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[4957]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[4951]! } + public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4952]!, self._r[4952]!, [_1, _2]) + } + public var GroupPermission_NoSendMedia: String { return self._s[4953]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[4954]! } + public var SharedMedia_CategoryDocs: String { return self._s[4955]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[4956]! } + public var Paint_Framed: String { return self._s[4957]! } + public var Channel_Setup_LinkTypePublic: String { return self._s[4958]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4959]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[4960]! } public func ChatImport_SelectionConfirmationUserWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4958]!, self._r[4958]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4961]!, self._r[4961]!, [_1, _2]) } - public var TwoStepAuth_RecoveryUnavailableResetAction: String { return self._s[4959]! } - public var Channel_SignMessages: String { return self._s[4960]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[4961]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4962]! } + public var TwoStepAuth_RecoveryUnavailableResetAction: String { return self._s[4962]! } + public var Channel_SignMessages: String { return self._s[4963]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[4964]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4965]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4963]!, self._r[4963]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4966]!, self._r[4966]!, [_1, _2]) } - public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4964]! } - public var ImportStickerPack_ChooseName: String { return self._s[4965]! } - public var GroupInfo_UpgradeButton: String { return self._s[4966]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4967]! } + public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4967]! } + public var ImportStickerPack_ChooseName: String { return self._s[4968]! } + public var GroupInfo_UpgradeButton: String { return self._s[4969]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4970]! } public func Conversation_ScheduledVoiceChatStartsTomorrowShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4968]!, self._r[4968]!, [_0]) + return formatWithArgumentRanges(self._s[4971]!, self._r[4971]!, [_0]) } - public var AutoDownloadSettings_Files: String { return self._s[4969]! } + public var AutoDownloadSettings_Files: String { return self._s[4972]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4970]!, self._r[4970]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4973]!, self._r[4973]!, [_0, _1]) } - public var Login_SendCodeViaSms: String { return self._s[4972]! } - public var Update_UpdateApp: String { return self._s[4973]! } - public var Channel_Setup_TypePublic: String { return self._s[4974]! } - public var Watch_Compose_CreateMessage: String { return self._s[4975]! } + public var Login_SendCodeViaSms: String { return self._s[4975]! } + public var Update_UpdateApp: String { return self._s[4976]! } + public var Channel_Setup_TypePublic: String { return self._s[4977]! } + public var Watch_Compose_CreateMessage: String { return self._s[4978]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4976]!, self._r[4976]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4979]!, self._r[4979]!, [_1, _2, _3]) } - public var StickerPacksSettings_ManagingHelp: String { return self._s[4977]! } - public var VoiceOver_Chat_Video: String { return self._s[4978]! } - public var Forward_ChannelReadOnly: String { return self._s[4979]! } - public var StickerPack_HideStickers: String { return self._s[4980]! } - public var ChatListFolder_NameContacts: String { return self._s[4981]! } - public var Profile_BotInfo: String { return self._s[4982]! } - public var Document_TargetConfirmationFormat: String { return self._s[4983]! } - public var GroupInfo_InviteByLink: String { return self._s[4984]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4985]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[4986]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[4987]! } - public var Passport_NotLoggedInMessage: String { return self._s[4988]! } - public var Conversation_StopQuizConfirmation: String { return self._s[4989]! } - public var Checkout_PaymentMethod: String { return self._s[4990]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[4995]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4996]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4997]! } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4998]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4999]! } - public var Conversation_GigagroupDescription: String { return self._s[5000]! } - public var Camera_Title: String { return self._s[5001]! } - public var Map_Directions: String { return self._s[5002]! } - public var Stats_MessagePublicForwardsTitle: String { return self._s[5004]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[5005]! } - public var Profile_EncryptionKey: String { return self._s[5006]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[4980]! } + public var VoiceOver_Chat_Video: String { return self._s[4981]! } + public var Forward_ChannelReadOnly: String { return self._s[4982]! } + public var StickerPack_HideStickers: String { return self._s[4983]! } + public var ChatListFolder_NameContacts: String { return self._s[4984]! } + public var Profile_BotInfo: String { return self._s[4985]! } + public var Document_TargetConfirmationFormat: String { return self._s[4986]! } + public var GroupInfo_InviteByLink: String { return self._s[4987]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4988]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[4989]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[4990]! } + public var Passport_NotLoggedInMessage: String { return self._s[4991]! } + public var Conversation_StopQuizConfirmation: String { return self._s[4992]! } + public var Checkout_PaymentMethod: String { return self._s[4993]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[4998]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4999]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[5000]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[5001]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[5002]! } + public var Conversation_GigagroupDescription: String { return self._s[5003]! } + public var Camera_Title: String { return self._s[5004]! } + public var Map_Directions: String { return self._s[5005]! } + public var Stats_MessagePublicForwardsTitle: String { return self._s[5007]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[5008]! } + public var Profile_EncryptionKey: String { return self._s[5009]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5007]!, self._r[5007]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[5010]!, self._r[5010]!, [_1, "\(_2)"]) } - public var VoiceChat_VideoPreviewShareCamera: String { return self._s[5008]! } + public var VoiceChat_VideoPreviewShareCamera: String { return self._s[5011]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5009]!, self._r[5009]!, [_0, _1]) + return formatWithArgumentRanges(self._s[5012]!, self._r[5012]!, [_0, _1]) } - public var Passport_Identity_TypePassport: String { return self._s[5010]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[5012]! } - public var Common_No: String { return self._s[5013]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[5014]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[5015]! } - public var Settings_AboutEmpty: String { return self._s[5016]! } - public var TwoStepAuth_FloodError: String { return self._s[5018]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[5019]! } + public var Passport_Identity_TypePassport: String { return self._s[5013]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[5015]! } + public var Common_No: String { return self._s[5016]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[5017]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[5018]! } + public var Settings_AboutEmpty: String { return self._s[5019]! } + public var TwoStepAuth_FloodError: String { return self._s[5021]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[5022]! } public func Notification_VoiceChatScheduledChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5020]!, self._r[5020]!, [_0]) + return formatWithArgumentRanges(self._s[5023]!, self._r[5023]!, [_0]) } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5022]!, self._r[5022]!, [_1]) + return formatWithArgumentRanges(self._s[5025]!, self._r[5025]!, [_1]) } - public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[5025]! } - public var Conversation_Edit: String { return self._s[5026]! } - public var CheckoutInfo_SaveInfo: String { return self._s[5028]! } - public var VoiceOver_Chat_AnonymousPoll: String { return self._s[5029]! } - public var Call_CameraTooltip: String { return self._s[5031]! } - public var InstantPage_FeedbackButtonShort: String { return self._s[5032]! } - public var Contacts_InviteToTelegram: String { return self._s[5033]! } - public var Notifications_ResetAllNotifications: String { return self._s[5034]! } - public var Calls_NewCall: String { return self._s[5035]! } - public var VoiceOver_Chat_Music: String { return self._s[5038]! } - public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[5039]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[5040]! } - public var Channel_Edit_AboutItem: String { return self._s[5041]! } - public var Message_VideoExpired: String { return self._s[5042]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[5043]! } - public var Settings_TryEnterPassword: String { return self._s[5044]! } + public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[5028]! } + public var Conversation_Edit: String { return self._s[5029]! } + public var CheckoutInfo_SaveInfo: String { return self._s[5031]! } + public var VoiceOver_Chat_AnonymousPoll: String { return self._s[5032]! } + public var Call_CameraTooltip: String { return self._s[5034]! } + public var InstantPage_FeedbackButtonShort: String { return self._s[5035]! } + public var Contacts_InviteToTelegram: String { return self._s[5036]! } + public var Notifications_ResetAllNotifications: String { return self._s[5037]! } + public var Calls_NewCall: String { return self._s[5038]! } + public var VoiceOver_Chat_Music: String { return self._s[5041]! } + public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[5042]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[5043]! } + public var Channel_Edit_AboutItem: String { return self._s[5044]! } + public var Message_VideoExpired: String { return self._s[5045]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[5046]! } + public var Settings_TryEnterPassword: String { return self._s[5047]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5045]!, self._r[5045]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5048]!, self._r[5048]!, [_1, _2]) } - public var NotificationsSound_Input: String { return self._s[5047]! } - public var Notifications_ClassicTones: String { return self._s[5048]! } - public var Conversation_StatusTyping: String { return self._s[5049]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[5050]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[5051]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[5052]! } - public var Conversation_MessageLeaveComment: String { return self._s[5053]! } - public var UserInfo_TapToCall: String { return self._s[5054]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[5055]! } + public var NotificationsSound_Input: String { return self._s[5050]! } + public var Notifications_ClassicTones: String { return self._s[5051]! } + public var Conversation_StatusTyping: String { return self._s[5052]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[5053]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[5054]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[5055]! } + public var Conversation_MessageLeaveComment: String { return self._s[5056]! } + public var UserInfo_TapToCall: String { return self._s[5057]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[5058]! } public func ScheduleVoiceChat_ScheduleOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5056]!, self._r[5056]!, [_0, _1]) + return formatWithArgumentRanges(self._s[5059]!, self._r[5059]!, [_0, _1]) } - public var Conversation_ClearAll: String { return self._s[5058]! } - public var UserInfo_NotificationsDefault: String { return self._s[5059]! } - public var Location_ProximityGroupTip: String { return self._s[5060]! } - public var Map_ChooseAPlace: String { return self._s[5061]! } - public var GroupInfo_AddParticipantTitle: String { return self._s[5063]! } - public var ChatList_PeerTypeNonContact: String { return self._s[5064]! } - public var Conversation_SlideToCancel: String { return self._s[5065]! } - public var Month_ShortJuly: String { return self._s[5066]! } - public var SocksProxySetup_ProxyType: String { return self._s[5067]! } + public var Conversation_ClearAll: String { return self._s[5061]! } + public var UserInfo_NotificationsDefault: String { return self._s[5062]! } + public var Location_ProximityGroupTip: String { return self._s[5063]! } + public var Map_ChooseAPlace: String { return self._s[5064]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[5066]! } + public var ChatList_PeerTypeNonContact: String { return self._s[5067]! } + public var Conversation_SlideToCancel: String { return self._s[5068]! } + public var Month_ShortJuly: String { return self._s[5069]! } + public var SocksProxySetup_ProxyType: String { return self._s[5070]! } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5068]!, self._r[5068]!, [_0]) + return formatWithArgumentRanges(self._s[5071]!, self._r[5071]!, [_0]) } - public var StickerPacks_ActionArchive: String { return self._s[5069]! } - public var ChatList_EditFolders: String { return self._s[5070]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[5071]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[5073]! } + public var StickerPacks_ActionArchive: String { return self._s[5072]! } + public var ChatList_EditFolders: String { return self._s[5073]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[5074]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[5076]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5074]!, self._r[5074]!, [_0]) + return formatWithArgumentRanges(self._s[5077]!, self._r[5077]!, [_0]) } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5075]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[5076]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[5078]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5078]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[5079]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[5081]! } public func Conversation_ScheduledVoiceChatStartsOnShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5080]!, self._r[5080]!, [_0]) + return formatWithArgumentRanges(self._s[5083]!, self._r[5083]!, [_0]) } - public var Passport_DeleteAddress: String { return self._s[5081]! } - public var Passport_DeletePassportConfirmation: String { return self._s[5082]! } - public var Passport_Identity_ReverseSide: String { return self._s[5083]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5085]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[5086]! } - public var InviteLink_CreatedBy: String { return self._s[5087]! } - public var Passport_FieldAddress: String { return self._s[5088]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5089]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5092]! } - public var VoiceChat_Panel_TapToJoin: String { return self._s[5093]! } - public var Map_Home: String { return self._s[5094]! } - public var PollResults_Title: String { return self._s[5097]! } + public var Passport_DeleteAddress: String { return self._s[5084]! } + public var Passport_DeletePassportConfirmation: String { return self._s[5085]! } + public var Passport_Identity_ReverseSide: String { return self._s[5086]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5088]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[5089]! } + public var InviteLink_CreatedBy: String { return self._s[5090]! } + public var Passport_FieldAddress: String { return self._s[5091]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5092]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5095]! } + public var VoiceChat_Panel_TapToJoin: String { return self._s[5096]! } + public var Map_Home: String { return self._s[5097]! } + public var PollResults_Title: String { return self._s[5100]! } public func InviteLink_OtherPermanentLinkInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5098]!, self._r[5098]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5101]!, self._r[5101]!, [_1, _2]) } - public var ArchivedChats_IntroText2: String { return self._s[5100]! } - public var VoiceChat_VideoPreviewTitle: String { return self._s[5101]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5102]! } - public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5103]! } - public var VoiceChat_Muted: String { return self._s[5105]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[5106]! } - public var Passport_Identity_AddPersonalDetails: String { return self._s[5107]! } - public var Conversation_AutoremoveActionEnable: String { return self._s[5109]! } - public var Group_Info_AdminLog: String { return self._s[5110]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[5111]! } - public var Appearance_Animations: String { return self._s[5112]! } - public var Appearance_TextSizeSetting: String { return self._s[5113]! } - public func Call_Minutes(_ value: Int32) -> String { + public var ArchivedChats_IntroText2: String { return self._s[5103]! } + public var VoiceChat_VideoPreviewTitle: String { return self._s[5104]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5105]! } + public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5106]! } + public var VoiceChat_Muted: String { return self._s[5108]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[5109]! } + public var Passport_Identity_AddPersonalDetails: String { return self._s[5110]! } + public var Conversation_AutoremoveActionEnable: String { return self._s[5112]! } + public var Group_Info_AdminLog: String { return self._s[5113]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[5114]! } + public var Appearance_Animations: String { return self._s[5115]! } + public var Appearance_TextSizeSetting: String { return self._s[5116]! } + public func SharedMedia_Link(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + public func Conversation_AutoremoveRemainingDays(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { + public func InstantPage_Views(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Seconds(_ value: Int32) -> String { + public func ScheduledIn_Years(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func VoiceChat_InviteLink_InviteSpeakers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Weeks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPolls(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PeopleNearby_ShowMorePeople(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceChat_Panel_Members(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Months(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_SelectedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) - } - public func QuickSend_Photos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteLink_InviteLinks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_ShareItem(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupShowMoreTopInviters(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedGifs(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Generic(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_Search_Messages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_GroupFormat(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, _1, _2) } public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Video(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Weeks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_InactiveYear(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Years(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideoMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_InactiveMonth(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MuteFor_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) - } - public func UserCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Stats_MessageForwards(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_MessageViewComments(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteLink_PeopleJoinedShort(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_Leave(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusOnline(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Photo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PollResults_ShowMore(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopAdminKicks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Passport_Scans(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAudios(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Stats_GroupShowMoreTopAdmins(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessagePoll_VotedCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Months(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_File(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func InviteLink_PeopleRemaining(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_MessageVideos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_UnreadMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_SelectedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_Exceptions(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusMembers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Map_ETAHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Contacts_ImportersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Conversation_AutoremoveRemainingDays(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteLink_PeopleCanJoin(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Contacts_InviteContacts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedStickers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_TitleReplies(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) - } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_MessageViews(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedContacts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ChatList_MessagePhotos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPhotos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Media_ShareVideo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupShowMoreTopPosters(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopInviterInvites(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, stringValue) - } - public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Chat_MessagesUnpinned(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ScheduledIn_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[124 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedLocations(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_MessagesSelected(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[126 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_ContextMenuSelectAll(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[127 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_ContextViewReplies(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[129 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[130 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } public func StickerPack_StickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[131 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeletedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[132 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteText_ContactsCountText(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Chat_TitlePinnedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[134 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_MessageMusic(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[135 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[137 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopPosterChars(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[138 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[139 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Years(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[140 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendVideo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[141 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceChat_Status_Members(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[142 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_TitleComments(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[143 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[144 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) } public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[145 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, _1, _2) } - public func SharedMedia_Link(_ value: Int32) -> String { + public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[146 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } - public func InstantPage_Views(_ value: Int32) -> String { + public func PUSH_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedVideoMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[147 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessagePoll_QuizCount(_ value: Int32) -> String { + public func SharedMedia_File(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[148 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPacks_ArchiveStickerPacksConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[149 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[150 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_SharePhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[151 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[152 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[153 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_MessageFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[154 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceChat_InviteLink_InviteListeners(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[155 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[156 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_InactiveWeek(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[157 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopAdminBans(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[158 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[159 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[160 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Invitation_Members(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[161 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[162 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) } public func Stats_GroupTopPosterMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[163 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_DeleteConfirmation(_ value: Int32) -> String { + public func ScheduledIn_Months(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[164 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) } - public func Theme_UsersCount(_ value: Int32) -> String { + public func Stats_GroupShowMoreTopPosters(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[165 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortDays(_ value: Int32) -> String { + public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[166 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteLink_PeopleJoined(_ value: Int32) -> String { + public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[167 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedFiles(_ value: Int32) -> String { + public func ForwardedStickers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[168 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatListFilter_ShowMoreChats(_ value: Int32) -> String { + public func Map_ETAMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[169 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreExtended(_ value: Int32) -> String { + public func VoiceChat_InviteLink_InviteListeners(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[170 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + public func Stats_GroupTopInviterInvites(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[171 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + public func Conversation_StatusOnline(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[172 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func QuickSend_Photos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) } public func Conversation_StatusSubscribers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[173 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedLocations(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) + } + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteLink_PeopleRemaining(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_Search_Messages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Weeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupShowMoreTopAdmins(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_SelectedMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_ShareItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_Exceptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Call_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatListFilter_ShowMoreChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAudios(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) + } + public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessageFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Stats_GroupTopPosterChars(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_ShareVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_TitleComments(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Video(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func Call_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Theme_UsersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PollResults_ShowMore(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ImportStickerPack_StickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceChat_InviteLink_InviteSpeakers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_ImportersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceChat_Panel_Members(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopAdminKicks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPhotos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, _2, _1, _3) } public func StickerPacks_DeleteStickerPacksConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[174 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Passport_Scans(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPolls(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_UnreadMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Conversation_ContextMenuSelectAll(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedGifs(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteLink_PeopleJoined(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_MessagesSelected(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessageMusic(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_MessageViewComments(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Stats_GroupTopAdminBans(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, _1, _2) } public func MuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteText_ContactsCountText(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeletedChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_SharePhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortDays(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteLink_InviteLinks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func SharedMedia_Generic(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Weeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_GroupFormat(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_SelectedChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Years(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[124 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupShowMoreTopInviters(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[126 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessagePhotos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[127 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[129 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[130 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[131 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_MessageForwards(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[132 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_QuizCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[134 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PeopleNearby_ShowMorePeople(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[135 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Chat_TitlePinnedMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_InactiveWeek(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[137 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[138 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Chat_MessagesUnpinned(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[139 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[140 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[141 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendGif(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[142 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[143 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusMembers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[144 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessageVideos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[145 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Map_ETAHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[146 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_Leave(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[147 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_UserInfo_Mute(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[148 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[149 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ForwardedVideos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[150 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_InactiveYear(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[151 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[152 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteLink_PeopleCanJoin(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[153 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_InviteContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[154 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddMaskCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[155 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Invitation_Members(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[156 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[157 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[158 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[159 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_TitleReplies(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[160 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Months(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[161 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[162 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPacks_ArchiveStickerPacksConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[163 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[164 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_ContextViewReplies(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[165 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceChat_Status_Members(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[166 * 6 + Int(form.rawValue)]!, stringValue) + } + public func UserCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[167 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[168 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_MessageViews(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[169 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[170 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[171 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MessageTimer_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[172 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_InactiveMonth(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[173 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[174 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendItem(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[175 * 6 + Int(form.rawValue)]!, stringValue) } - public func ImportStickerPack_StickerCount(_ value: Int32) -> String { + public func InviteLink_PeopleJoinedShort(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[176 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index 0af439e007a278762dbc33eef3b3548936d5bb2b..edb139729d1ba11103cd7b4a28ae1a339d889683 100644 GIT binary patch delta 43384 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 G(*GZv0Dmk1 delta 44066 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�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 A2><{9 From 9973b37e97af3572b7752f0f00f9dc7ea4f7a444 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 6 Jul 2021 22:18:59 +0400 Subject: [PATCH 25/26] Update localization --- Telegram/Telegram-iOS/en.lproj/Localizable.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index d70f08f7fb..11300643ea 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -6532,7 +6532,7 @@ Sorry for the inconvenience."; "Settings.TryEnterPassword" = "Not sure, let me try"; "TwoFactorSetup.PasswordRecovery.Title" = "Create New Password"; -"TwoFactorSetup.PasswordRecovery.Text" = "Your password has been reset.\nPlease enter a new password to continue"; +"TwoFactorSetup.PasswordRecovery.Text" = "You can now set a new password that will be used to log into your account."; "TwoFactorSetup.PasswordRecovery.PlaceholderPassword" = "New Password"; "TwoFactorSetup.PasswordRecovery.PlaceholderConfirmPassword" = "Re-enter New Password"; "TwoFactorSetup.PasswordRecovery.Action" = "Continue"; From 9134bae90886bb63d9727bbf2c37ceb5f29b8a43 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Wed, 7 Jul 2021 01:59:12 +0400 Subject: [PATCH 26/26] Refactoring --- .../ChatListUI/Sources/ChatContextMenus.swift | 4 +- .../Sources/Node/ChatListNode.swift | 2 +- .../InviteContactsControllerNode.swift | 2 +- .../InstantPagePeerReferenceNode.swift | 2 +- submodules/MessageReactionListUI/BUILD | 24 - .../Sources/MessageReactionCategoryNode.swift | 104 ---- .../MessageReactionListController.swift | 447 ------------------ ...essageReactionListLoadingPlaceholder.swift | 81 ---- .../Sources/AvatarGalleryController.swift | 12 +- .../Sources/ChannelAdminController.swift | 2 +- .../Sources/ChannelAdminsController.swift | 2 +- .../ChannelBannedMemberController.swift | 6 +- .../Sources/ChannelBlacklistController.swift | 10 +- ...hannelDiscussionGroupSetupController.swift | 14 +- .../Sources/ChannelInfoController.swift | 6 +- .../Sources/ChannelMembersController.swift | 4 +- .../ChannelMembersSearchContainerNode.swift | 24 +- .../ChannelMembersSearchControllerNode.swift | 2 +- .../ChannelOwnershipTransferController.swift | 4 +- .../ChannelPermissionsController.swift | 8 +- .../Sources/DeviceContactInfoController.swift | 6 +- .../GroupPreHistorySetupController.swift | 4 +- .../GroupStickerPackSetupController.swift | 2 +- .../Sources/SearchPeerMembers.swift | 8 +- .../NotificationExceptionControllerNode.swift | 32 +- .../DataPrivacySettingsController.swift | 2 +- .../PrivacyAndSecurityController.swift | 10 +- .../SelectivePrivacySettingsController.swift | 6 +- .../Search/SettingsSearchableItems.swift | 6 +- .../Sources/PresentationGroupCall.swift | 6 +- .../Sources/VoiceChatController.swift | 2 +- .../Sources/{ => Account}/Account.swift | 0 .../AccountIntermediateState.swift | 0 .../{ => Account}/AccountManager.swift | 0 .../{ => ApiUtils}/ExportedInvitation.swift | 0 .../ReactionsMessageAttribute.swift | 0 .../RemoteStorageConfiguration.swift | 2 +- .../ReplyMarkupMessageAttribute.swift | 0 .../TelegramCore/Sources/ChannelAdmins.swift | 82 ---- .../Sources/ChannelParticipants.swift | 84 ---- .../Sources/FetchedMediaResource.swift | 2 +- .../{ => MacOS}/GroupReturnAndLeft.swift | 0 .../NotificationAutolockReportManager.swift | 0 .../Sources/MessageReactionList.swift | 210 -------- .../Sources/{ => Network}/Download.swift | 0 .../{ => Network}/FetchHttpResource.swift | 0 .../{ => Network}/MultipartFetch.swift | 0 .../{ => Network}/MultipartUpload.swift | 0 .../MultiplexedRequestManager.swift | 0 .../Sources/{ => Network}/Network.swift | 0 .../Sources/{ => Network}/NetworkType.swift | 0 .../{ => Network}/ProxyServersStatuses.swift | 0 .../Sources/PeerParticipants.swift | 40 -- .../ContentPrivacySettings.swift | 0 .../{ => Settings}/ContentSettings.swift | 0 .../Settings/PeerContactSettings.swift | 2 +- .../HistoryViewStateValidation.swift | 0 .../{ => State}/MessageReactions.swift | 0 .../{ => State}/PeerInputActivity.swift | 0 .../PeerInputActivityManager.swift | 0 .../Contacts}/ContactManagement.swift | 6 +- .../Contacts}/DeviceContact.swift | 0 .../Contacts}/ImportContact.swift | 7 +- .../Contacts}/PhoneNumber.swift | 0 .../TelegramDeviceContactImportInfo.swift | 2 +- .../Contacts/TelegramEngineContacts.swift | 44 ++ .../Contacts}/UpdateContactName.swift | 2 +- .../Messages}/LoadMessagesIfNecessary.swift | 2 +- .../Messages}/MarkAllChatsAsRead.swift | 2 +- .../Messages}/ReplyThreadHistory.swift | 2 +- .../Messages}/RequestStartBot.swift | 4 +- .../Messages/TelegramEngineMessages.swift | 28 ++ .../Messages}/UpdatePinnedMessage.swift | 4 +- .../ChangePeerNotificationSettings.swift | 14 +- .../Peers}/ChannelAdminEventLogContext.swift | 2 +- .../Peers}/ChannelAdminEventLogs.swift | 2 +- .../Peers}/ChannelBlacklist.swift | 133 +----- .../Peers}/ChannelCreation.swift | 6 +- .../ChannelHistoryAvailabilitySettings.swift | 2 +- .../Peers}/ChannelMembers.swift | 2 +- .../Peers}/ChannelOwnershipTransfer.swift | 4 +- .../Peers/ChannelParticipants.swift | 25 + .../Peers}/JoinChannel.swift | 2 +- .../Peers}/ManageChannelDiscussionGroup.swift | 4 +- .../Peers}/PeerCommands.swift | 2 +- .../Peers}/RemovePeerMember.swift | 4 +- .../Peers}/RequestUserPhotos.swift | 2 +- .../Peers}/SearchGroupMembers.swift | 39 +- .../Peers/TelegramEnginePeers.swift | 103 ++++ .../Peers}/ToggleChannelSignatures.swift | 2 +- .../UpdateGroupSpecificStickerset.swift | 2 +- .../Privacy}/ActiveSessionsContext.swift | 4 +- .../Privacy}/RecentAccountSession.swift | 0 .../Privacy}/RecentAccountSessions.swift | 6 +- .../Privacy}/RecentWebSessions.swift | 6 +- .../Privacy/TelegramEnginePrivacy.swift | 28 ++ .../UpdatedAccountPrivacySettings.swift | 11 +- .../TelegramEngine/TelegramEngine.swift | 4 + .../Sources/{ => Utils}/JSON.swift | 0 .../Sources/{ => Utils}/Log.swift | 0 .../{ => Utils}/MemoryBufferExtensions.swift | 0 .../Sources/{ => Utils}/MessageUtils.swift | 0 submodules/TelegramUI/BUILD | 1 - .../ChatChannelSubscriberInputPanelNode.swift | 4 +- .../TelegramUI/Sources/ChatController.swift | 49 +- .../Sources/ChatHistoryListNode.swift | 2 +- .../Sources/ChatHistoryViewForLocation.swift | 2 +- .../ChatInterfaceStateContextQueries.swift | 2 +- .../ChatRecentActionsControllerNode.swift | 4 +- .../ChatRecentActionsFilterController.swift | 2 +- ...CommandMenuChatInputContextPanelNode.swift | 2 +- .../Sources/CreateChannelController.swift | 2 +- .../Sources/CreateGroupController.swift | 4 +- .../TelegramUI/Sources/OpenResolvedUrl.swift | 6 +- .../Sources/PeerInfo/PeerInfoData.swift | 2 +- .../Sources/PeerInfo/PeerInfoMembers.swift | 6 +- .../Sources/PeerInfo/PeerInfoScreen.swift | 30 +- .../Sources/ShareExtensionContext.swift | 4 +- .../Sources/SharedAccountContext.swift | 2 +- .../ChannelMemberCategoryListContext.swift | 22 +- ...annelMemberCategoriesContextsManager.swift | 56 +-- .../UrlHandling/Sources/UrlHandling.swift | 4 +- .../Sources/WatchRequestHandlers.swift | 2 +- 123 files changed, 509 insertions(+), 1477 deletions(-) delete mode 100644 submodules/MessageReactionListUI/BUILD delete mode 100644 submodules/MessageReactionListUI/Sources/MessageReactionCategoryNode.swift delete mode 100644 submodules/MessageReactionListUI/Sources/MessageReactionListController.swift delete mode 100644 submodules/MessageReactionListUI/Sources/MessageReactionListLoadingPlaceholder.swift rename submodules/TelegramCore/Sources/{ => Account}/Account.swift (100%) rename submodules/TelegramCore/Sources/{ => Account}/AccountIntermediateState.swift (100%) rename submodules/TelegramCore/Sources/{ => Account}/AccountManager.swift (100%) rename submodules/TelegramCore/Sources/{ => ApiUtils}/ExportedInvitation.swift (100%) rename submodules/TelegramCore/Sources/{ => ApiUtils}/ReactionsMessageAttribute.swift (100%) rename submodules/TelegramCore/Sources/{ => ApiUtils}/RemoteStorageConfiguration.swift (88%) rename submodules/TelegramCore/Sources/{ => ApiUtils}/ReplyMarkupMessageAttribute.swift (100%) delete mode 100644 submodules/TelegramCore/Sources/ChannelAdmins.swift delete mode 100644 submodules/TelegramCore/Sources/ChannelParticipants.swift rename submodules/TelegramCore/Sources/{ => MacOS}/GroupReturnAndLeft.swift (100%) rename submodules/TelegramCore/Sources/{ => MacOS}/NotificationAutolockReportManager.swift (100%) delete mode 100644 submodules/TelegramCore/Sources/MessageReactionList.swift rename submodules/TelegramCore/Sources/{ => Network}/Download.swift (100%) rename submodules/TelegramCore/Sources/{ => Network}/FetchHttpResource.swift (100%) rename submodules/TelegramCore/Sources/{ => Network}/MultipartFetch.swift (100%) rename submodules/TelegramCore/Sources/{ => Network}/MultipartUpload.swift (100%) rename submodules/TelegramCore/Sources/{ => Network}/MultiplexedRequestManager.swift (100%) rename submodules/TelegramCore/Sources/{ => Network}/Network.swift (100%) rename submodules/TelegramCore/Sources/{ => Network}/NetworkType.swift (100%) rename submodules/TelegramCore/Sources/{ => Network}/ProxyServersStatuses.swift (100%) delete mode 100644 submodules/TelegramCore/Sources/PeerParticipants.swift rename submodules/TelegramCore/Sources/{ => Settings}/ContentPrivacySettings.swift (100%) rename submodules/TelegramCore/Sources/{ => Settings}/ContentSettings.swift (100%) rename submodules/TelegramCore/Sources/{ => State}/HistoryViewStateValidation.swift (100%) rename submodules/TelegramCore/Sources/{ => State}/MessageReactions.swift (100%) rename submodules/TelegramCore/Sources/{ => State}/PeerInputActivity.swift (100%) rename submodules/TelegramCore/Sources/{ => State}/PeerInputActivityManager.swift (100%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Contacts}/ContactManagement.swift (96%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Contacts}/DeviceContact.swift (100%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Contacts}/ImportContact.swift (90%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Contacts}/PhoneNumber.swift (100%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Contacts}/TelegramDeviceContactImportInfo.swift (92%) create mode 100644 submodules/TelegramCore/Sources/TelegramEngine/Contacts/TelegramEngineContacts.swift rename submodules/TelegramCore/Sources/{ => TelegramEngine/Contacts}/UpdateContactName.swift (86%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Messages}/LoadMessagesIfNecessary.swift (96%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Messages}/MarkAllChatsAsRead.swift (96%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Messages}/ReplyThreadHistory.swift (99%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Messages}/RequestStartBot.swift (93%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Messages}/UpdatePinnedMessage.swift (97%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/ChangePeerNotificationSettings.swift (86%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/ChannelAdminEventLogContext.swift (99%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/ChannelAdminEventLogs.swift (98%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/ChannelBlacklist.swift (61%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/ChannelCreation.swift (89%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/ChannelHistoryAvailabilitySettings.swift (88%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/ChannelMembers.swift (95%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/ChannelOwnershipTransfer.swift (96%) create mode 100644 submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelParticipants.swift rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/JoinChannel.swift (96%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/ManageChannelDiscussionGroup.swift (93%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/PeerCommands.swift (96%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/RemovePeerMember.swift (88%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/RequestUserPhotos.swift (98%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/SearchGroupMembers.swift (61%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/ToggleChannelSignatures.swift (83%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Peers}/UpdateGroupSpecificStickerset.swift (89%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Privacy}/ActiveSessionsContext.swift (99%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Privacy}/RecentAccountSession.swift (100%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Privacy}/RecentAccountSessions.swift (83%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Privacy}/RecentWebSessions.swift (89%) rename submodules/TelegramCore/Sources/{ => TelegramEngine/Privacy}/UpdatedAccountPrivacySettings.swift (95%) rename submodules/TelegramCore/Sources/{ => Utils}/JSON.swift (100%) rename submodules/TelegramCore/Sources/{ => Utils}/Log.swift (100%) rename submodules/TelegramCore/Sources/{ => Utils}/MemoryBufferExtensions.swift (100%) rename submodules/TelegramCore/Sources/{ => Utils}/MessageUtils.swift (100%) diff --git a/submodules/ChatListUI/Sources/ChatContextMenus.swift b/submodules/ChatListUI/Sources/ChatContextMenus.swift index 18de9475be..3d103eb618 100644 --- a/submodules/ChatListUI/Sources/ChatContextMenus.swift +++ b/submodules/ChatListUI/Sources/ChatContextMenus.swift @@ -322,7 +322,7 @@ func chatContextMenuItems(context: AccountContext, peerId: PeerId, promoInfo: Ch isMuted = true } items.append(.action(ContextMenuActionItem(text: isMuted ? strings.ChatList_Context_Unmute : strings.ChatList_Context_Mute, icon: { theme in generateTintedImage(image: UIImage(bundleImageName: isMuted ? "Chat/Context Menu/Unmute" : "Chat/Context Menu/Muted"), color: theme.contextMenu.primaryColor) }, action: { _, f in - let _ = (togglePeerMuted(account: context.account, peerId: peerId) + let _ = (context.engine.peers.togglePeerMuted(peerId: peerId) |> deliverOnMainQueue).start(completed: { f(.default) }) @@ -332,7 +332,7 @@ func chatContextMenuItems(context: AccountContext, peerId: PeerId, promoInfo: Ch if case .search = source { if let _ = peer as? TelegramChannel { items.append(.action(ContextMenuActionItem(text: strings.ChatList_Context_JoinChannel, icon: { theme in generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Add"), color: theme.contextMenu.primaryColor) }, action: { _, f in - var createSignal = context.peerChannelMemberCategoriesContextsManager.join(account: context.account, peerId: peerId, hash: nil) + var createSignal = context.peerChannelMemberCategoriesContextsManager.join(engine: context.engine, peerId: peerId, hash: nil) var cancelImpl: (() -> Void)? let progressSignal = Signal { subscriber in let presentationData = context.sharedContext.currentPresentationData.with { $0 } diff --git a/submodules/ChatListUI/Sources/Node/ChatListNode.swift b/submodules/ChatListUI/Sources/Node/ChatListNode.swift index 60711e2d13..f8ef4bbeeb 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListNode.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListNode.swift @@ -688,7 +688,7 @@ public final class ChatListNode: ListView { return } strongSelf.setCurrentRemovingPeerId(peerId) - let _ = (togglePeerMuted(account: context.account, peerId: peerId) + let _ = (context.engine.peers.togglePeerMuted(peerId: peerId) |> deliverOnMainQueue).start(completed: { self?.updateState { state in var state = state diff --git a/submodules/ContactListUI/Sources/InviteContactsControllerNode.swift b/submodules/ContactListUI/Sources/InviteContactsControllerNode.swift index a991208559..13e4f3283a 100644 --- a/submodules/ContactListUI/Sources/InviteContactsControllerNode.swift +++ b/submodules/ContactListUI/Sources/InviteContactsControllerNode.swift @@ -365,7 +365,7 @@ final class InviteContactsControllerNode: ASDisplayNode { return DeviceContactNormalizedPhoneNumber(rawValue: formatPhoneNumber(phoneNumber.value)) }))) } - return deviceContactsImportedByCount(postbox: context.account.postbox, contacts: mappedContacts) + return context.engine.contacts.deviceContactsImportedByCount(contacts: mappedContacts) |> map { counts -> [(DeviceContactStableId, DeviceContactBasicData, Int32)]? in var result: [(DeviceContactStableId, DeviceContactBasicData, Int32)] = [] var contactValues: [DeviceContactStableId: DeviceContactBasicData] = [:] diff --git a/submodules/InstantPageUI/Sources/InstantPagePeerReferenceNode.swift b/submodules/InstantPageUI/Sources/InstantPagePeerReferenceNode.swift index 7ee8b7a98e..642c6b5c51 100644 --- a/submodules/InstantPageUI/Sources/InstantPagePeerReferenceNode.swift +++ b/submodules/InstantPageUI/Sources/InstantPagePeerReferenceNode.swift @@ -310,7 +310,7 @@ final class InstantPagePeerReferenceNode: ASDisplayNode, InstantPageNode { @objc func joinPressed() { if let peer = self.peer, case .notJoined = self.joinState { self.updateJoinState(.inProgress) - self.joinDisposable.set((joinChannel(account: self.context.account, peerId: peer.id, hash: nil) |> deliverOnMainQueue).start(error: { [weak self] _ in + self.joinDisposable.set((self.context.engine.peers.joinChannel(peerId: peer.id, hash: nil) |> deliverOnMainQueue).start(error: { [weak self] _ in if let strongSelf = self { if case .inProgress = strongSelf.joinState { strongSelf.updateJoinState(.notJoined) diff --git a/submodules/MessageReactionListUI/BUILD b/submodules/MessageReactionListUI/BUILD deleted file mode 100644 index 36ff8e35c1..0000000000 --- a/submodules/MessageReactionListUI/BUILD +++ /dev/null @@ -1,24 +0,0 @@ -load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") - -swift_library( - name = "MessageReactionListUI", - module_name = "MessageReactionListUI", - srcs = glob([ - "Sources/**/*.swift", - ]), - deps = [ - "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", - "//submodules/TelegramCore:TelegramCore", - "//submodules/SyncCore:SyncCore", - "//submodules/Postbox:Postbox", - "//submodules/AsyncDisplayKit:AsyncDisplayKit", - "//submodules/Display:Display", - "//submodules/TelegramPresentationData:TelegramPresentationData", - "//submodules/AccountContext:AccountContext", - "//submodules/MergeLists:MergeLists", - "//submodules/ItemListPeerItem:ItemListPeerItem", - ], - visibility = [ - "//visibility:public", - ], -) diff --git a/submodules/MessageReactionListUI/Sources/MessageReactionCategoryNode.swift b/submodules/MessageReactionListUI/Sources/MessageReactionCategoryNode.swift deleted file mode 100644 index a71caccd9c..0000000000 --- a/submodules/MessageReactionListUI/Sources/MessageReactionCategoryNode.swift +++ /dev/null @@ -1,104 +0,0 @@ -import Foundation -import AsyncDisplayKit -import Display -import TelegramPresentationData -import TelegramCore -import SyncCore - -final class MessageReactionCategoryNode: ASDisplayNode { - let category: MessageReactionListCategory - private let action: () -> Void - - private let buttonNode: HighlightableButtonNode - private let highlightedBackgroundNode: ASImageNode - private let iconNode: ASImageNode - private let emojiNode: ImmediateTextNode - private let countNode: ImmediateTextNode - - var isSelected = false { - didSet { - self.highlightedBackgroundNode.alpha = self.isSelected ? 1.0 : 0.0 - } - } - - init(theme: PresentationTheme, category: MessageReactionListCategory, count: Int, action: @escaping () -> Void) { - self.category = category - self.action = action - - self.buttonNode = HighlightableButtonNode() - - self.highlightedBackgroundNode = ASImageNode() - self.highlightedBackgroundNode.displaysAsynchronously = false - self.highlightedBackgroundNode.displayWithoutProcessing = true - self.highlightedBackgroundNode.image = generateStretchableFilledCircleImage(diameter: 18.0, color: UIColor(rgb: 0xe6e6e8)) - self.highlightedBackgroundNode.alpha = 1.0 - - self.iconNode = ASImageNode() - - self.emojiNode = ImmediateTextNode() - self.emojiNode.displaysAsynchronously = false - let emojiText: String - switch category { - case .all: - emojiText = "" - self.iconNode.image = PresentationResourcesChat.chatInputTextFieldTimerImage(theme) - case let .reaction(value): - emojiText = value - } - self.emojiNode.attributedText = NSAttributedString(string: emojiText, font: Font.regular(18.0), textColor: .black) - - self.countNode = ImmediateTextNode() - self.countNode.displaysAsynchronously = false - self.countNode.attributedText = NSAttributedString(string: "\(count)", font: Font.regular(16.0), textColor: .black) - - super.init() - - self.addSubnode(self.highlightedBackgroundNode) - self.addSubnode(self.iconNode) - self.addSubnode(self.emojiNode) - self.addSubnode(self.countNode) - self.addSubnode(self.buttonNode) - - self.buttonNode.addTarget(self, action: #selector(self.buttonPressed), forControlEvents: .touchUpInside) - } - - func updateLayout() -> CGSize { - let sideInset: CGFloat = 6.0 - let spacing: CGFloat = 2.0 - let emojiSize = self.emojiNode.updateLayout(CGSize(width: 100.0, height: 100.0)) - let iconSize = self.iconNode.image?.size ?? CGSize() - let countSize = self.countNode.updateLayout(CGSize(width: 100.0, height: 100.0)) - - let height: CGFloat = 60.0 - let backgroundHeight: CGFloat = 36.0 - - self.emojiNode.frame = CGRect(origin: CGPoint(x: sideInset, y: floor((height - emojiSize.height) / 2.0)), size: emojiSize) - self.iconNode.frame = CGRect(origin: CGPoint(x: sideInset, y: floor((height - iconSize.height) / 2.0)), size: iconSize) - - let iconFrame: CGRect - if self.iconNode.image != nil { - iconFrame = self.iconNode.frame - } else { - iconFrame = self.emojiNode.frame - } - - self.countNode.frame = CGRect(origin: CGPoint(x: iconFrame.maxX + spacing, y: floor((height - countSize.height) / 2.0)), size: countSize) - let contentWidth = sideInset * 2.0 + spacing + iconFrame.width + countSize.width - self.highlightedBackgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: floor((height - backgroundHeight) / 2.0)), size: CGSize(width: contentWidth, height: backgroundHeight)) - - let size = CGSize(width: contentWidth, height: height) - self.buttonNode.frame = CGRect(origin: CGPoint(), size: size) - return size - } - - @objc private func buttonPressed() { - self.action() - } - - override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { - if self.buttonNode.frame.contains(point) { - return self.buttonNode.view - } - return nil - } -} diff --git a/submodules/MessageReactionListUI/Sources/MessageReactionListController.swift b/submodules/MessageReactionListUI/Sources/MessageReactionListController.swift deleted file mode 100644 index ba463333d1..0000000000 --- a/submodules/MessageReactionListUI/Sources/MessageReactionListController.swift +++ /dev/null @@ -1,447 +0,0 @@ -import Foundation -import UIKit -import AsyncDisplayKit -import Display -import AccountContext -import TelegramPresentationData -import Postbox -import TelegramCore -import SyncCore -import SwiftSignalKit -import MergeLists -import ItemListPeerItem -import ItemListUI - -public final class MessageReactionListController: ViewController { - private let context: AccountContext - private let messageId: MessageId - private let presentationData: PresentationData - private let initialReactions: [MessageReaction] - - private var controllerNode: MessageReactionListControllerNode { - return self.displayNode as! MessageReactionListControllerNode - } - - private var animatedIn: Bool = false - - private let _ready = Promise() - override public var ready: Promise { - return self._ready - } - - public init(context: AccountContext, messageId: MessageId, initialReactions: [MessageReaction]) { - self.context = context - self.messageId = messageId - self.presentationData = context.sharedContext.currentPresentationData.with { $0 } - self.initialReactions = initialReactions - - super.init(navigationBarPresentationData: nil) - - self.statusBar.statusBarStyle = .Ignore - } - - required public init(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - override public func loadDisplayNode() { - self.displayNode = MessageReactionListControllerNode(context: self.context, presentationData: self.presentationData, messageId: messageId, initialReactions: initialReactions, dismiss: { [weak self] in - self?.dismiss() - }) - - super.displayNodeDidLoad() - - self._ready.set(self.controllerNode.isReady.get()) - } - - override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { - super.containerLayoutUpdated(layout, transition: transition) - - self.controllerNode.containerLayoutUpdated(layout: layout, transition: transition) - } - - override public func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) - - if !self.animatedIn { - self.animatedIn = true - self.controllerNode.animateIn() - } - } - - override public func dismiss(completion: (() -> Void)? = nil) { - self.controllerNode.animateOut(completion: { [weak self] in - self?.presentingViewController?.dismiss(animated: false, completion: nil) - completion?() - }) - } -} - -private struct MessageReactionListTransaction { - let deletions: [ListViewDeleteItem] - let insertions: [ListViewInsertItem] - let updates: [ListViewUpdateItem] -} - -private struct MessageReactionListEntry: Comparable, Identifiable { - let index: Int - let item: MessageReactionListCategoryItem - - var stableId: PeerId { - return self.item.peer.id - } - - static func <(lhs: MessageReactionListEntry, rhs: MessageReactionListEntry) -> Bool { - return lhs.index < rhs.index - } - - func item(context: AccountContext, presentationData: PresentationData) -> ListViewItem { - return ItemListPeerItem(presentationData: ItemListPresentationData(presentationData), dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, context: context, peer: self.item.peer, height: .peerList, nameStyle: .distinctBold, presence: nil, text: .none, label: .text(self.item.reaction, .custom(Font.regular(19.0))), editing: ItemListPeerItemEditing(editable: false, editing: false, revealed: false), revealOptions: nil, switchValue: nil, enabled: true, selectable: false, sectionId: 0, action: { - - }, setPeerIdWithRevealedOptions: { _, _ in }, removePeer: { _ in }, noInsets: true, tag: nil) - } -} - -private func preparedTransition(from fromEntries: [MessageReactionListEntry], to toEntries: [MessageReactionListEntry], context: AccountContext, presentationData: PresentationData) -> MessageReactionListTransaction { - let (deleteIndices, indicesAndItems, updateIndices) = mergeListsStableWithUpdates(leftList: fromEntries, rightList: toEntries) - - let deletions = deleteIndices.map { ListViewDeleteItem(index: $0, directionHint: nil) } - let insertions = indicesAndItems.map { ListViewInsertItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, presentationData: presentationData), directionHint: nil) } - let updates = updateIndices.map { ListViewUpdateItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, presentationData: presentationData), directionHint: nil) } - - return MessageReactionListTransaction(deletions: deletions, insertions: insertions, updates: updates) -} - -private let headerHeight: CGFloat = 60.0 -private let itemHeight: CGFloat = 50.0 - -private func topInsetForLayout(layout: ContainerViewLayout, itemCount: Int) -> CGFloat { - let contentHeight = CGFloat(itemCount) * itemHeight - let minimumItemHeights: CGFloat = max(contentHeight, itemHeight * 5.0) - - return max(layout.size.height - layout.intrinsicInsets.bottom - minimumItemHeights, headerHeight) -} - -private final class MessageReactionListControllerNode: ViewControllerTracingNode { - private let context: AccountContext - private let presentationData: PresentationData - private let dismiss: () -> Void - - private let listContext: MessageReactionListContext - - private let dimNode: ASDisplayNode - private let backgroundNode: ASDisplayNode - private let contentHeaderContainerNode: ASDisplayNode - private let contentHeaderContainerBackgroundNode: ASImageNode - private let contentHeaderContainerSeparatorNode: ASDisplayNode - private var categoryItemNodes: [MessageReactionCategoryNode] = [] - private let categoryScrollNode: ASScrollNode - private let listNode: ListView - private var placeholderNode: MessageReactionListLoadingPlaceholder? - private var placeholderNodeIsAnimatingOut = false - - private var validLayout: ContainerViewLayout? - - private var currentCategory: MessageReactionListCategory = .all - private var currentState: MessageReactionListState? - - private var enqueuedTransactions: [MessageReactionListTransaction] = [] - - private let disposable = MetaDisposable() - - let isReady = Promise() - - private var forceHeaderTransition: ContainedViewLayoutTransition? - - init(context: AccountContext, presentationData: PresentationData, messageId: MessageId, initialReactions: [MessageReaction], dismiss: @escaping () -> Void) { - self.context = context - self.presentationData = presentationData - self.dismiss = dismiss - - self.dimNode = ASDisplayNode() - self.dimNode.backgroundColor = UIColor(white: 0.0, alpha: 0.5) - - self.backgroundNode = ASDisplayNode() - self.backgroundNode.backgroundColor = self.presentationData.theme.actionSheet.opaqueItemBackgroundColor - - self.contentHeaderContainerNode = ASDisplayNode() - self.contentHeaderContainerBackgroundNode = ASImageNode() - self.contentHeaderContainerBackgroundNode.displaysAsynchronously = false - - self.contentHeaderContainerSeparatorNode = ASDisplayNode() - self.contentHeaderContainerSeparatorNode.backgroundColor = self.presentationData.theme.list.itemPlainSeparatorColor - - self.categoryScrollNode = ASScrollNode() - self.contentHeaderContainerBackgroundNode.displayWithoutProcessing = true - self.contentHeaderContainerBackgroundNode.image = generateImage(CGSize(width: 10.0, height: 10.0), rotatedContext: { size, context in - context.clear(CGRect(origin: CGPoint(), size: size)) - context.setFillColor(presentationData.theme.rootController.navigationBar.opaqueBackgroundColor.cgColor) - context.fillEllipse(in: CGRect(origin: CGPoint(), size: size)) - context.fill(CGRect(origin: CGPoint(x: 0.0, y: size.height / 2.0), size: CGSize(width: size.width, height: size.height / 2.0))) - })?.stretchableImage(withLeftCapWidth: 5, topCapHeight: 5) - - self.listNode = ListView() - self.listNode.limitHitTestToNodes = true - self.listNode.accessibilityPageScrolledString = { row, count in - return presentationData.strings.VoiceOver_ScrollStatus(row, count).0 - } - - self.placeholderNode = MessageReactionListLoadingPlaceholder(theme: presentationData.theme, itemHeight: itemHeight) - self.placeholderNode?.isUserInteractionEnabled = false - - self.listContext = MessageReactionListContext(postbox: self.context.account.postbox, network: self.context.account.network, messageId: messageId, initialReactions: initialReactions) - - super.init() - - self.addSubnode(self.dimNode) - self.addSubnode(self.backgroundNode) - - self.listNode.stackFromBottom = false - self.addSubnode(self.listNode) - self.placeholderNode.flatMap(self.addSubnode) - - self.addSubnode(self.contentHeaderContainerNode) - self.contentHeaderContainerNode.addSubnode(self.contentHeaderContainerBackgroundNode) - self.contentHeaderContainerNode.addSubnode(self.contentHeaderContainerSeparatorNode) - self.contentHeaderContainerNode.addSubnode(self.categoryScrollNode) - - self.listNode.updateFloatingHeaderOffset = { [weak self] offset, listTransition in - guard let strongSelf = self, let layout = strongSelf.validLayout else { - return - } - - let transition = strongSelf.forceHeaderTransition ?? listTransition - strongSelf.forceHeaderTransition = nil - - let topOffset = offset - transition.updateFrame(node: strongSelf.contentHeaderContainerNode, frame: CGRect(origin: CGPoint(x: 0.0, y: topOffset - headerHeight), size: CGSize(width: layout.size.width, height: headerHeight))) - transition.updateFrame(node: strongSelf.contentHeaderContainerBackgroundNode, frame: CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: layout.size.width, height: headerHeight))) - transition.updateFrame(node: strongSelf.contentHeaderContainerSeparatorNode, frame: CGRect(origin: CGPoint(x: 0.0, y: headerHeight), size: CGSize(width: layout.size.width, height: UIScreenPixel))) - if let placeholderNode = strongSelf.placeholderNode { - transition.updateFrame(node: placeholderNode, frame: CGRect(origin: CGPoint(x: 0.0, y: topOffset), size: placeholderNode.bounds.size)) - } - transition.updateFrame(node: strongSelf.backgroundNode, frame: CGRect(origin: CGPoint(x: 0.0, y: topOffset - headerHeight / 2.0), size: CGSize(width: layout.size.width, height: layout.size.height + 300.0))) - } - - self.disposable.set((self.listContext.state - |> deliverOnMainQueue).start(next: { [weak self] state in - self?.updateState(state) - })) - } - - deinit { - self.disposable.dispose() - } - - override func didLoad() { - super.didLoad() - - self.dimNode.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.dimNodeTapGesture))) - } - - func containerLayoutUpdated(layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { - let isFirstLayout = self.validLayout == nil - self.validLayout = layout - - transition.updateFrame(node: self.dimNode, frame: CGRect(origin: CGPoint(), size: layout.size)) - - transition.updateBounds(node: self.listNode, bounds: CGRect(x: 0.0, y: 0.0, width: layout.size.width, height: layout.size.height)) - transition.updatePosition(node: self.listNode, position: CGPoint(x: layout.size.width / 2.0, y: layout.size.height / 2.0)) - - var currentCategoryItemCount = 0 - if let currentState = self.currentState { - for (category, categoryState) in currentState.states { - if category == self.currentCategory { - currentCategoryItemCount = categoryState.count - break - } - } - } - - var insets = UIEdgeInsets() - insets.top = topInsetForLayout(layout: layout, itemCount: currentCategoryItemCount) - insets.bottom = layout.intrinsicInsets.bottom - - if let placeholderNode = self.placeholderNode, !self.placeholderNodeIsAnimatingOut { - let placeholderHeight = min(CGFloat(currentCategoryItemCount) * itemHeight, layout.size.height) + UIScreenPixel - placeholderNode.frame = CGRect(origin: placeholderNode.frame.origin, size: CGSize(width: layout.size.width, height: placeholderHeight)) - placeholderNode.updateLayout(size: CGSize(width: layout.size.width, height: placeholderHeight)) - } - - let (duration, curve) = listViewAnimationDurationAndCurve(transition: transition) - self.listNode.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.Synchronous, .LowLatency], scrollToItem: nil, updateSizeAndInsets: ListViewUpdateSizeAndInsets(size: layout.size, insets: insets, duration: duration, curve: curve), stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in }) - - let sideInset: CGFloat = 12.0 - let spacing: CGFloat = 6.0 - var leftX = sideInset - for itemNode in self.categoryItemNodes { - let itemSize = itemNode.updateLayout() - itemNode.frame = CGRect(origin: CGPoint(x: leftX, y: 0.0), size: itemSize) - leftX += spacing + itemSize.width - } - leftX += sideInset - self.categoryScrollNode.view.contentSize = CGSize(width: leftX, height: 60.0) - self.categoryScrollNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: layout.size.width, height: 60.0)) - - if isFirstLayout { - while !self.enqueuedTransactions.isEmpty { - self.dequeueTransaction() - } - } - } - - func animateIn() { - self.dimNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.3) - self.dimNode.layer.animatePosition(from: CGPoint(x: self.dimNode.position.x, y: self.dimNode.position.y - self.layer.bounds.size.height), to: self.layer.position, duration: 0.5, timingFunction: kCAMediaTimingFunctionSpring, completion: { _ in - }) - self.layer.animatePosition(from: CGPoint(x: self.layer.position.x, y: self.layer.position.y + self.layer.bounds.size.height), to: self.layer.position, duration: 0.5, timingFunction: kCAMediaTimingFunctionSpring, completion: { _ in - }) - } - - func animateOut(completion: @escaping () -> Void) { - self.dimNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, removeOnCompletion: false) - self.dimNode.layer.animatePosition(from: self.dimNode.position, to: CGPoint(x: self.dimNode.position.x, y: self.dimNode.position.y - self.layer.bounds.size.height), duration: 0.2, timingFunction: CAMediaTimingFunctionName.easeInEaseOut.rawValue, removeOnCompletion: false) - self.layer.animatePosition(from: self.layer.position, to: CGPoint(x: self.layer.position.x, y: self.layer.position.y + self.layer.bounds.size.height), duration: 0.2, timingFunction: CAMediaTimingFunctionName.easeInEaseOut.rawValue, removeOnCompletion: false, completion: { _ in - completion() - }) - } - - func updateState(_ state: MessageReactionListState) { - if self.currentState != state { - self.currentState = state - - self.updateItems() - - if let validLayout = self.validLayout { - self.containerLayoutUpdated(layout: validLayout, transition: .immediate) - } - } - } - - private var currentEntries: [MessageReactionListEntry]? - private func updateItems() { - var entries: [MessageReactionListEntry] = [] - - var index = 0 - let states = self.currentState?.states ?? [] - for (category, categoryState) in states { - if self.categoryItemNodes.count <= index { - let itemNode = MessageReactionCategoryNode(theme: self.presentationData.theme, category: category, count: categoryState.count, action: { [weak self] in - self?.setCategory(category) - }) - self.categoryItemNodes.append(itemNode) - self.categoryScrollNode.addSubnode(itemNode) - if category == self.currentCategory { - itemNode.isSelected = true - } else { - itemNode.isSelected = false - } - } - - if category == self.currentCategory { - for item in categoryState.items { - entries.append(MessageReactionListEntry(index: entries.count, item: item)) - } - } - index += 1 - } - let transaction = preparedTransition(from: self.currentEntries ?? [], to: entries, context: self.context, presentationData: self.presentationData) - let previousWasEmpty = self.currentEntries == nil || self.currentEntries?.count == 0 - let isEmpty = entries.isEmpty - self.currentEntries = entries - - self.enqueuedTransactions.append(transaction) - self.dequeueTransaction() - - if previousWasEmpty && !isEmpty { - if let placeholderNode = self.placeholderNode { - self.placeholderNodeIsAnimatingOut = true - placeholderNode.allowsGroupOpacity = true - placeholderNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.18, removeOnCompletion: false, completion: { [weak self] _ in - guard let strongSelf = self else { - return - } - strongSelf.placeholderNode?.removeFromSupernode() - strongSelf.placeholderNode = nil - }) - } - self.listNode.forEachItemNode({ itemNode in - itemNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.18) - }) - } - } - - func setCategory(_ category: MessageReactionListCategory) { - if self.currentCategory != category { - self.currentCategory = category - - for itemNode in self.categoryItemNodes { - itemNode.isSelected = category == itemNode.category - } - - //self.forceHeaderTransition = .animated(duration: 0.3, curve: .spring) - if let validLayout = self.validLayout { - self.containerLayoutUpdated(layout: validLayout, transition: .animated(duration: 0.3, curve: .spring)) - } - - self.updateItems() - } - } - - private func dequeueTransaction() { - guard let layout = self.validLayout, let transaction = self.enqueuedTransactions.first else { - return - } - - self.enqueuedTransactions.remove(at: 0) - - var options = ListViewDeleteAndInsertOptions() - options.insert(.Synchronous) - options.insert(.PreferSynchronousResourceLoading) - options.insert(.PreferSynchronousDrawing) - - var currentCategoryItemCount = 0 - if let currentState = self.currentState { - for (category, categoryState) in currentState.states { - if category == self.currentCategory { - currentCategoryItemCount = categoryState.count - break - } - } - } - - var insets = UIEdgeInsets() - insets.top = topInsetForLayout(layout: layout, itemCount: currentCategoryItemCount) - insets.bottom = layout.intrinsicInsets.bottom - - let updateSizeAndInsets = ListViewUpdateSizeAndInsets(size: self.listNode.bounds.size, insets: insets, duration: 0.3, curve: .Default(duration: 0.3)) - - self.listNode.transaction(deleteIndices: transaction.deletions, insertIndicesAndItems: transaction.insertions, updateIndicesAndItems: transaction.updates, options: options, updateSizeAndInsets: updateSizeAndInsets, updateOpaqueState: nil, completion: { [weak self] _ in - self?.isReady.set(.single(true)) - }) - } - - @objc private func dimNodeTapGesture(_ recognizer: UITapGestureRecognizer) { - if case .ended = recognizer.state { - self.dismiss() - } - } - - override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { - for itemNode in self.categoryItemNodes { - if let result = itemNode.hitTest(self.view.convert(point, to: itemNode.view), with: event) { - return result - } - } - if let result = self.listNode.hitTest(self.view.convert(point, to: self.listNode.view), with: event) { - return result - } - if point.y >= self.contentHeaderContainerNode.frame.minY && point.y < self.bounds.height { - return self.listNode.view - } - if point.y >= 0 && point.y < self.contentHeaderContainerNode.frame.minY { - return self.dimNode.view - } - return nil - } -} diff --git a/submodules/MessageReactionListUI/Sources/MessageReactionListLoadingPlaceholder.swift b/submodules/MessageReactionListUI/Sources/MessageReactionListLoadingPlaceholder.swift deleted file mode 100644 index 7c5eebf198..0000000000 --- a/submodules/MessageReactionListUI/Sources/MessageReactionListLoadingPlaceholder.swift +++ /dev/null @@ -1,81 +0,0 @@ -import Foundation -import AsyncDisplayKit -import Display -import TelegramPresentationData -import TelegramCore -import SyncCore - -final class MessageReactionListLoadingPlaceholder: ASDisplayNode { - private let theme: PresentationTheme - private let itemHeight: CGFloat - private let itemImage: UIImage? - - private let backgroundNode: ASDisplayNode - private let separatorNode: ASDisplayNode - private let highlightNode: ASImageNode - private var itemNodes: [ASImageNode] = [] - - init(theme: PresentationTheme, itemHeight: CGFloat) { - self.theme = theme - self.itemHeight = itemHeight - - self.backgroundNode = ASDisplayNode() - self.backgroundNode.backgroundColor = UIColor(white: 0.92, alpha: 1.0) - - self.separatorNode = ASDisplayNode() - self.separatorNode.backgroundColor = theme.list.itemPlainSeparatorColor - - self.highlightNode = ASImageNode() - self.highlightNode.displaysAsynchronously = false - self.highlightNode.displayWithoutProcessing = true - - let leftInset: CGFloat = 15.0 - let avatarSize: CGFloat = 40.0 - let avatarSpacing: CGFloat = 11.0 - let contentWidth: CGFloat = 4.0 - let contentHeight: CGFloat = 14.0 - let rightInset: CGFloat = 54.0 - self.itemImage = generateImage(CGSize(width: leftInset + avatarSize + avatarSpacing + contentWidth + rightInset, height: itemHeight), rotatedContext: { size, context in - context.setFillColor(theme.actionSheet.opaqueItemBackgroundColor.cgColor) - context.fill(CGRect(origin: CGPoint(), size: size)) - context.setFillColor(theme.list.itemPlainSeparatorColor.cgColor) - context.fill(CGRect(origin: CGPoint(), size: CGSize(width: size.width, height: UIScreenPixel))) - context.setBlendMode(.copy) - context.setFillColor(UIColor.clear.cgColor) - context.fillEllipse(in: CGRect(origin: CGPoint(x: leftInset, y: floor((itemHeight - avatarSize) / 2.0)), size: CGSize(width: avatarSize, height: avatarSize))) - let contentOrigin = leftInset + avatarSize + avatarSpacing - context.fill(CGRect(origin: CGPoint(x: contentOrigin, y: floor((size.height - contentHeight) / 2.0)), size: CGSize(width: size.width - contentOrigin - rightInset, height: contentHeight))) - })?.stretchableImage(withLeftCapWidth: Int(leftInset + avatarSize + avatarSpacing + 1), topCapHeight: 0) - - super.init() - - self.addSubnode(self.backgroundNode) - self.addSubnode(self.highlightNode) - self.addSubnode(self.separatorNode) - } - - func updateLayout(size: CGSize) { - self.backgroundNode.frame = CGRect(origin: CGPoint(), size: size) - - var verticalOffset: CGFloat = 0.0 - var index = 0 - while verticalOffset < size.height - 1.0 { - if self.itemNodes.count >= index { - let itemNode = ASImageNode() - itemNode.image = self.itemImage - self.itemNodes.append(itemNode) - self.addSubnode(itemNode) - } - self.itemNodes[index].frame = CGRect(origin: CGPoint(x: 0.0, y: verticalOffset), size: CGSize(width: size.width, height: self.itemHeight)) - verticalOffset += self.itemHeight - index += 1 - } - self.separatorNode.frame = CGRect(origin: CGPoint(x: 0.0, y: verticalOffset), size: CGSize(width: size.width, height: UIScreenPixel)) - if index < self.itemNodes.count { - for i in index ..< self.itemNodes.count { - self.itemNodes[i].removeFromSupernode() - } - self.itemNodes.removeLast(self.itemNodes.count - index) - } - } -} diff --git a/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryController.swift b/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryController.swift index 97db198c76..eb88e7475f 100644 --- a/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryController.swift +++ b/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryController.swift @@ -36,7 +36,7 @@ public func peerInfoProfilePhotos(context: AccountContext, peerId: PeerId) -> Si if let firstEntry = entries.first { return context.account.postbox.loadedPeerWithId(peerId) |> mapToSignal { peer -> Signal<(Bool, [AvatarGalleryEntry])?, NoError>in - return fetchedAvatarGalleryEntries(account: context.account, peer: peer, firstEntry: firstEntry) + return fetchedAvatarGalleryEntries(engine: context.engine, account: context.account, peer: peer, firstEntry: firstEntry) |> map(Optional.init) } } else { @@ -210,7 +210,7 @@ public func initialAvatarGalleryEntries(account: Account, peer: Peer) -> Signal< } } -public func fetchedAvatarGalleryEntries(account: Account, peer: Peer) -> Signal<[AvatarGalleryEntry], NoError> { +public func fetchedAvatarGalleryEntries(engine: TelegramEngine, account: Account, peer: Peer) -> Signal<[AvatarGalleryEntry], NoError> { return initialAvatarGalleryEntries(account: account, peer: peer) |> map { entries -> [AvatarGalleryEntry] in return entries ?? [] @@ -218,7 +218,7 @@ public func fetchedAvatarGalleryEntries(account: Account, peer: Peer) -> Signal< |> mapToSignal { initialEntries in return .single(initialEntries) |> then( - requestPeerPhotos(postbox: account.postbox, network: account.network, peerId: peer.id) + engine.peers.requestPeerPhotos(peerId: peer.id) |> map { photos -> [AvatarGalleryEntry] in var result: [AvatarGalleryEntry] = [] if photos.isEmpty { @@ -269,11 +269,11 @@ public func fetchedAvatarGalleryEntries(account: Account, peer: Peer) -> Signal< } } -public func fetchedAvatarGalleryEntries(account: Account, peer: Peer, firstEntry: AvatarGalleryEntry) -> Signal<(Bool, [AvatarGalleryEntry]), NoError> { +public func fetchedAvatarGalleryEntries(engine: TelegramEngine, account: Account, peer: Peer, firstEntry: AvatarGalleryEntry) -> Signal<(Bool, [AvatarGalleryEntry]), NoError> { let initialEntries = [firstEntry] return Signal<(Bool, [AvatarGalleryEntry]), NoError>.single((false, initialEntries)) |> then( - requestPeerPhotos(postbox: account.postbox, network: account.network, peerId: peer.id) + engine.peers.requestPeerPhotos(peerId: peer.id) |> map { photos -> (Bool, [AvatarGalleryEntry]) in var result: [AvatarGalleryEntry] = [] let initialEntries = [firstEntry] @@ -403,7 +403,7 @@ public class AvatarGalleryController: ViewController, StandalonePresentableContr if let remoteEntries = remoteEntries { remoteEntriesSignal = remoteEntries.get() } else { - remoteEntriesSignal = fetchedAvatarGalleryEntries(account: context.account, peer: peer) + remoteEntriesSignal = fetchedAvatarGalleryEntries(engine: context.engine, account: context.account, peer: peer) } let initialSignal = initialAvatarGalleryEntries(account: context.account, peer: peer) diff --git a/submodules/PeerInfoUI/Sources/ChannelAdminController.swift b/submodules/PeerInfoUI/Sources/ChannelAdminController.swift index 24cb05f037..74ab715d1f 100644 --- a/submodules/PeerInfoUI/Sources/ChannelAdminController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelAdminController.swift @@ -889,7 +889,7 @@ public func channelAdminController(context: AccountContext, peerId: PeerId, admi return } - transferOwnershipDisposable.set((checkOwnershipTranfserAvailability(postbox: context.account.postbox, network: context.account.network, accountStateManager: context.account.stateManager, memberId: adminId) |> deliverOnMainQueue).start(error: { error in + transferOwnershipDisposable.set((context.engine.peers.checkOwnershipTranfserAvailability(memberId: adminId) |> deliverOnMainQueue).start(error: { error in let controller = channelOwnershipTransferController(context: context, peer: peer, member: member, initialError: error, present: { c, a in presentControllerImpl?(c, a) }, completion: { upgradedPeerId in diff --git a/submodules/PeerInfoUI/Sources/ChannelAdminsController.swift b/submodules/PeerInfoUI/Sources/ChannelAdminsController.swift index c53ad3081e..57354a8240 100644 --- a/submodules/PeerInfoUI/Sources/ChannelAdminsController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelAdminsController.swift @@ -665,7 +665,7 @@ public func channelAdminsController(context: AccountContext, peerId initialPeerI |> deliverOnMainQueue).start(next: { peerId in if peerId.namespace == Namespaces.Peer.CloudChannel { var didReportLoadCompleted = false - let membersAndLoadMoreControl: (Disposable, PeerChannelMemberCategoryControl?) = context.peerChannelMemberCategoriesContextsManager.admins(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId) { membersState in + let membersAndLoadMoreControl: (Disposable, PeerChannelMemberCategoryControl?) = context.peerChannelMemberCategoriesContextsManager.admins(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId) { membersState in if case .loading = membersState.loadingState, membersState.list.isEmpty { adminsPromise.set(.single(nil)) } else { diff --git a/submodules/PeerInfoUI/Sources/ChannelBannedMemberController.swift b/submodules/PeerInfoUI/Sources/ChannelBannedMemberController.swift index 6ddf88abf6..6b5a47e44b 100644 --- a/submodules/PeerInfoUI/Sources/ChannelBannedMemberController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelBannedMemberController.swift @@ -506,7 +506,7 @@ public func channelBannedMemberController(context: AccountContext, peerId: PeerI state.updating = true return state } - updateRightsDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: context.account, peerId: peerId, memberId: memberId, bannedRights: nil) + updateRightsDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(engine: context.engine, peerId: peerId, memberId: memberId, bannedRights: nil) |> deliverOnMainQueue).start(error: { _ in }, completed: { @@ -667,7 +667,7 @@ public func channelBannedMemberController(context: AccountContext, peerId: PeerI guard let upgradedPeerId = upgradedPeerId else { return .single(nil) } - return context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: context.account, peerId: upgradedPeerId, memberId: memberId, bannedRights: cleanResolvedRights) + return context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(engine: context.engine, peerId: upgradedPeerId, memberId: memberId, bannedRights: cleanResolvedRights) |> mapToSignal { _ -> Signal in return .complete() } @@ -700,7 +700,7 @@ public func channelBannedMemberController(context: AccountContext, peerId: PeerI } })) } else { - updateRightsDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: context.account, peerId: peerId, memberId: memberId, bannedRights: cleanResolvedRights) + updateRightsDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(engine: context.engine, peerId: peerId, memberId: memberId, bannedRights: cleanResolvedRights) |> deliverOnMainQueue).start(error: { _ in }, completed: { diff --git a/submodules/PeerInfoUI/Sources/ChannelBlacklistController.swift b/submodules/PeerInfoUI/Sources/ChannelBlacklistController.swift index 96685728bc..0e07ad58f6 100644 --- a/submodules/PeerInfoUI/Sources/ChannelBlacklistController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelBlacklistController.swift @@ -324,7 +324,7 @@ public func channelBlacklistController(context: AccountContext, peerId: PeerId) let presentationData = context.sharedContext.currentPresentationData.with { $0 } let progress = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: nil)) presentControllerImpl?(progress, nil) - removePeerDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: context.account, peerId: peerId, memberId: peer.id, bannedRights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: Int32.max)) + removePeerDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(engine: context.engine, peerId: peerId, memberId: peer.id, bannedRights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: Int32.max)) |> deliverOnMainQueue).start(error: { [weak progress] _ in progress?.dismiss() dismissController?() @@ -343,7 +343,7 @@ public func channelBlacklistController(context: AccountContext, peerId: PeerId) return $0.withUpdatedRemovingPeerId(memberId) } - removePeerDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: context.account, peerId: peerId, memberId: memberId, bannedRights: nil) |> deliverOnMainQueue).start(error: { _ in + removePeerDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(engine: context.engine, peerId: peerId, memberId: memberId, bannedRights: nil) |> deliverOnMainQueue).start(error: { _ in updateState { return $0.withUpdatedRemovingPeerId(nil) } @@ -388,7 +388,7 @@ public func channelBlacklistController(context: AccountContext, peerId: PeerId) updateState { return $0.withUpdatedRemovingPeerId(memberId) } - let signal = context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: context.account, peerId: peerId, memberId: memberId, bannedRights: nil) + let signal = context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(engine: context.engine, peerId: peerId, memberId: memberId, bannedRights: nil) |> ignoreValues |> then( context.peerChannelMemberCategoriesContextsManager.addMember(account: context.account, peerId: peerId, memberId: memberId) @@ -418,7 +418,7 @@ public func channelBlacklistController(context: AccountContext, peerId: PeerId) return $0.withUpdatedRemovingPeerId(memberId) } - removePeerDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: context.account, peerId: peerId, memberId: memberId, bannedRights: nil) |> deliverOnMainQueue).start(error: { _ in + removePeerDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(engine: context.engine, peerId: peerId, memberId: memberId, bannedRights: nil) |> deliverOnMainQueue).start(error: { _ in updateState { return $0.withUpdatedRemovingPeerId(nil) } @@ -437,7 +437,7 @@ public func channelBlacklistController(context: AccountContext, peerId: PeerId) }) }) - let (listDisposable, loadMoreControl) = context.peerChannelMemberCategoriesContextsManager.banned(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, updated: { listState in + let (listDisposable, loadMoreControl) = context.peerChannelMemberCategoriesContextsManager.banned(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, updated: { listState in if case .loading(true) = listState.loadingState, listState.list.isEmpty { blacklistPromise.set(.single(nil)) } else { diff --git a/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupController.swift b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupController.swift index eee1c7a3fa..dc2e738bf6 100644 --- a/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupController.swift @@ -230,7 +230,7 @@ public func channelDiscussionGroupSetupController(context: AccountContext, peerI let groupPeers = Promise<[Peer]?>() groupPeers.set(.single(nil) |> then( - availableGroupsForChannelDiscussion(postbox: context.account.postbox, network: context.account.network) + context.engine.peers.availableGroupsForChannelDiscussion() |> map(Optional.init) |> `catch` { _ -> Signal<[Peer]?, NoError> in return .single(nil) @@ -260,7 +260,7 @@ public func channelDiscussionGroupSetupController(context: AccountContext, peerI } let presentationData = context.sharedContext.currentPresentationData.with { $0 } pushControllerImpl?(context.sharedContext.makeCreateGroupController(context: context, peerIds: [], initialTitle: peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + " Chat", mode: .supergroup, completion: { groupId, dismiss in - var applySignal = updateGroupDiscussionForChannel(network: context.account.network, postbox: context.account.postbox, channelId: peerId, groupId: groupId) + var applySignal = context.engine.peers.updateGroupDiscussionForChannel(channelId: peerId, groupId: groupId) var cancelImpl: (() -> Void)? let progressSignal = Signal { subscriber in let presentationData = context.sharedContext.currentPresentationData.with { $0 } @@ -358,13 +358,13 @@ public func channelDiscussionGroupSetupController(context: AccountContext, peerI }) } - return updateGroupDiscussionForChannel(network: context.account.network, postbox: context.account.postbox, channelId: peerId, groupId: resultPeerId) + return context.engine.peers.updateGroupDiscussionForChannel(channelId: peerId, groupId: resultPeerId) } |> castError(ChannelDiscussionGroupError.self) |> switchToLatest } } else { - applySignal = updateGroupDiscussionForChannel(network: context.account.network, postbox: context.account.postbox, channelId: peerId, groupId: groupId) + applySignal = context.engine.peers.updateGroupDiscussionForChannel(channelId: peerId, groupId: groupId) } var cancelImpl: (() -> Void)? let progressSignal = Signal { subscriber in @@ -413,7 +413,7 @@ public func channelDiscussionGroupSetupController(context: AccountContext, peerI case .groupHistoryIsCurrentlyPrivate: let presentationData = context.sharedContext.currentPresentationData.with { $0 } presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.Channel_DiscussionGroup_MakeHistoryPublic, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.Channel_DiscussionGroup_MakeHistoryPublicProceed, action: { - var applySignal: Signal = updateChannelHistoryAvailabilitySettingsInteractively(postbox: context.account.postbox, network: context.account.network, accountStateManager: context.account.stateManager, peerId: updatedPeerId ?? groupId, historyAvailableForNewMembers: true) + var applySignal: Signal = context.engine.peers.updateChannelHistoryAvailabilitySettingsInteractively(peerId: updatedPeerId ?? groupId, historyAvailableForNewMembers: true) |> mapError { _ -> ChannelDiscussionGroupError in return .generic } @@ -421,7 +421,7 @@ public func channelDiscussionGroupSetupController(context: AccountContext, peerI return .complete() } |> then( - updateGroupDiscussionForChannel(network: context.account.network, postbox: context.account.postbox, channelId: peerId, groupId: updatedPeerId ?? groupId) + context.engine.peers.updateGroupDiscussionForChannel(channelId: peerId, groupId: updatedPeerId ?? groupId) ) var cancelImpl: (() -> Void)? let progressSignal = Signal { subscriber in @@ -502,7 +502,7 @@ public func channelDiscussionGroupSetupController(context: AccountContext, peerI return } - var applySignal = updateGroupDiscussionForChannel(network: context.account.network, postbox: context.account.postbox, channelId: applyPeerId, groupId: nil) + var applySignal = context.engine.peers.updateGroupDiscussionForChannel(channelId: applyPeerId, groupId: nil) var cancelImpl: (() -> Void)? let progressSignal = Signal { subscriber in let presentationData = context.sharedContext.currentPresentationData.with { $0 } diff --git a/submodules/PeerInfoUI/Sources/ChannelInfoController.swift b/submodules/PeerInfoUI/Sources/ChannelInfoController.swift index 8f309d83eb..85b62dcaf9 100644 --- a/submodules/PeerInfoUI/Sources/ChannelInfoController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelInfoController.swift @@ -836,11 +836,11 @@ public func channelInfoController(context: AccountContext, peerId: PeerId) -> Vi } let controller = notificationMuteSettingsController(presentationData: presentationData, notificationSettings: globalSettings.effective.groupChats, soundSettings: soundSettings, openSoundSettings: { let controller = notificationSoundSelectionController(context: context, isModal: true, currentSound: peerSettings.messageSound, defaultSound: globalSettings.effective.groupChats.sound, completion: { sound in - let _ = updatePeerNotificationSoundInteractive(account: context.account, peerId: peerId, sound: sound).start() + let _ = context.engine.peers.updatePeerNotificationSoundInteractive(peerId: peerId, sound: sound).start() }) presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }, updateSettings: { value in - changeMuteSettingsDisposable.set(updatePeerMuteSetting(account: context.account, peerId: peerId, muteInterval: value).start()) + changeMuteSettingsDisposable.set(context.engine.peers.updatePeerMuteSetting(peerId: peerId, muteInterval: value).start()) }) presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }) @@ -918,7 +918,7 @@ public func channelInfoController(context: AccountContext, peerId: PeerId) -> Vi }, aboutLinkAction: { action, itemLink in aboutLinkActionImpl?(action, itemLink) }, toggleSignatures: { enabled in - actionsDisposable.add(toggleShouldChannelMessagesSignatures(account: context.account, peerId: peerId, enabled: enabled).start()) + actionsDisposable.add(context.engine.peers.toggleShouldChannelMessagesSignatures(peerId: peerId, enabled: enabled).start()) }) var wasEditing: Bool? diff --git a/submodules/PeerInfoUI/Sources/ChannelMembersController.swift b/submodules/PeerInfoUI/Sources/ChannelMembersController.swift index 7400f4e348..575bc0ae00 100644 --- a/submodules/PeerInfoUI/Sources/ChannelMembersController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelMembersController.swift @@ -443,7 +443,7 @@ public func channelMembersController(context: AccountContext, peerId: PeerId) -> return $0.withUpdatedRemovingPeerId(memberId) } - removePeerDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: context.account, peerId: peerId, memberId: memberId, bannedRights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: Int32.max)) + removePeerDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(engine: context.engine, peerId: peerId, memberId: memberId, bannedRights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: Int32.max)) |> deliverOnMainQueue).start(completed: { updateState { return $0.withUpdatedRemovingPeerId(nil) @@ -462,7 +462,7 @@ public func channelMembersController(context: AccountContext, peerId: PeerId) -> let peerView = context.account.viewTracker.peerView(peerId) - let (disposable, loadMoreControl) = context.peerChannelMemberCategoriesContextsManager.recent(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, updated: { state in + let (disposable, loadMoreControl) = context.peerChannelMemberCategoriesContextsManager.recent(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, updated: { state in peersPromise.set(.single(state.list)) }) actionsDisposable.add(disposable) diff --git a/submodules/PeerInfoUI/Sources/ChannelMembersSearchContainerNode.swift b/submodules/PeerInfoUI/Sources/ChannelMembersSearchContainerNode.swift index 0b7c4e97c3..06b5870298 100644 --- a/submodules/PeerInfoUI/Sources/ChannelMembersSearchContainerNode.swift +++ b/submodules/PeerInfoUI/Sources/ChannelMembersSearchContainerNode.swift @@ -231,13 +231,13 @@ private func categorySignal(context: AccountContext, peerId: PeerId, category: G } switch category { case .admins: - disposableAndLoadMoreControl = context.peerChannelMemberCategoriesContextsManager.admins(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: nil, updated: processListState) + disposableAndLoadMoreControl = context.peerChannelMemberCategoriesContextsManager.admins(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: nil, updated: processListState) case .contacts: - disposableAndLoadMoreControl = context.peerChannelMemberCategoriesContextsManager.contacts(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: nil, updated: processListState) + disposableAndLoadMoreControl = context.peerChannelMemberCategoriesContextsManager.contacts(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: nil, updated: processListState) case .bots: - disposableAndLoadMoreControl = context.peerChannelMemberCategoriesContextsManager.bots(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: nil, updated: processListState) + disposableAndLoadMoreControl = context.peerChannelMemberCategoriesContextsManager.bots(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: nil, updated: processListState) case .members: - disposableAndLoadMoreControl = context.peerChannelMemberCategoriesContextsManager.recent(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: nil, updated: processListState) + disposableAndLoadMoreControl = context.peerChannelMemberCategoriesContextsManager.recent(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: nil, updated: processListState) } let (disposable, _) = disposableAndLoadMoreControl @@ -452,7 +452,7 @@ public final class ChannelMembersSearchContainerNode: SearchDisplayControllerCon } } - return context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: context.account, peerId: peerId, memberId: memberId, bannedRights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: Int32.max)) + return context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(engine: context.engine, peerId: peerId, memberId: memberId, bannedRights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: Int32.max)) |> afterDisposed { Queue.mainQueue().async { updateState { state in @@ -479,7 +479,7 @@ public final class ChannelMembersSearchContainerNode: SearchDisplayControllerCon } } - return removePeerMember(account: context.account, peerId: peerId, memberId: memberId) + return context.engine.peers.removePeerMember(peerId: peerId, memberId: memberId) |> deliverOnMainQueue |> afterDisposed { updateState { state in @@ -608,7 +608,7 @@ public final class ChannelMembersSearchContainerNode: SearchDisplayControllerCon switch mode { case .searchMembers, .banAndPromoteActions: foundGroupMembers = Signal { subscriber in - let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.recent(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: query, updated: { state in + let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.recent(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: query, updated: { state in if case .ready = state.loadingState { subscriber.putNext(state.list) } @@ -619,11 +619,11 @@ public final class ChannelMembersSearchContainerNode: SearchDisplayControllerCon foundMembers = .single([]) case .inviteActions: foundGroupMembers = .single([]) - foundMembers = channelMembers(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, category: .recent(.search(query))) + foundMembers = context.engine.peers.channelMembers(peerId: peerId, category: .recent(.search(query))) |> map { $0 ?? [] } case .searchAdmins: foundGroupMembers = Signal { subscriber in - let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.admins(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: query, updated: { state in + let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.admins(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: query, updated: { state in if case .ready = state.loadingState { subscriber.putNext(state.list) } @@ -633,7 +633,7 @@ public final class ChannelMembersSearchContainerNode: SearchDisplayControllerCon foundMembers = .single([]) case .searchBanned: foundGroupMembers = Signal { subscriber in - let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.restricted(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: query, updated: { state in + let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.restricted(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: query, updated: { state in if case .ready = state.loadingState { subscriber.putNext(state.list) subscriber.putCompletion() @@ -643,7 +643,7 @@ public final class ChannelMembersSearchContainerNode: SearchDisplayControllerCon } |> runOn(Queue.mainQueue()) foundMembers = Signal { subscriber in - let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.recent(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: query, updated: { state in + let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.recent(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: query, updated: { state in if case .ready = state.loadingState { subscriber.putNext(state.list.filter({ participant in return participant.peer.id != context.account.peerId @@ -655,7 +655,7 @@ public final class ChannelMembersSearchContainerNode: SearchDisplayControllerCon |> runOn(Queue.mainQueue()) case .searchKicked: foundGroupMembers = Signal { subscriber in - let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.banned(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: query, updated: { state in + let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.banned(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: query, updated: { state in if case .ready = state.loadingState { subscriber.putNext(state.list) subscriber.putCompletion() diff --git a/submodules/PeerInfoUI/Sources/ChannelMembersSearchControllerNode.swift b/submodules/PeerInfoUI/Sources/ChannelMembersSearchControllerNode.swift index bf303f3944..e4f1176aa7 100644 --- a/submodules/PeerInfoUI/Sources/ChannelMembersSearchControllerNode.swift +++ b/submodules/PeerInfoUI/Sources/ChannelMembersSearchControllerNode.swift @@ -419,7 +419,7 @@ class ChannelMembersSearchControllerNode: ASDisplayNode { } else { let membersState = Promise() - disposableAndLoadMoreControl = context.peerChannelMemberCategoriesContextsManager.recent(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, updated: { state in + disposableAndLoadMoreControl = context.peerChannelMemberCategoriesContextsManager.recent(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, updated: { state in membersState.set(.single(state)) }) diff --git a/submodules/PeerInfoUI/Sources/ChannelOwnershipTransferController.swift b/submodules/PeerInfoUI/Sources/ChannelOwnershipTransferController.swift index c25f8f176d..bd93b2c704 100644 --- a/submodules/PeerInfoUI/Sources/ChannelOwnershipTransferController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelOwnershipTransferController.swift @@ -455,7 +455,7 @@ private func commitChannelOwnershipTransferController(context: AccountContext, p let signal: Signal if let peer = peer as? TelegramChannel { - signal = context.peerChannelMemberCategoriesContextsManager.transferOwnership(account: context.account, peerId: peer.id, memberId: member.id, password: contentNode.password) |> mapToSignal { _ in + signal = context.peerChannelMemberCategoriesContextsManager.transferOwnership(engine: context.engine, peerId: peer.id, memberId: member.id, password: contentNode.password) |> mapToSignal { _ in return .complete() } |> then(.single(nil)) @@ -475,7 +475,7 @@ private func commitChannelOwnershipTransferController(context: AccountContext, p guard let upgradedPeerId = upgradedPeerId else { return .fail(.generic) } - return context.peerChannelMemberCategoriesContextsManager.transferOwnership(account: context.account, peerId: upgradedPeerId, memberId: member.id, password: contentNode.password) |> mapToSignal { _ in + return context.peerChannelMemberCategoriesContextsManager.transferOwnership(engine: context.engine, peerId: upgradedPeerId, memberId: member.id, password: contentNode.password) |> mapToSignal { _ in return .complete() } |> then(.single(upgradedPeerId)) diff --git a/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift b/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift index c60aa3387d..b2b2d60479 100644 --- a/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift @@ -536,7 +536,7 @@ public func channelPermissionsController(context: AccountContext, peerId origina peersPromise.set(.single((peerId, nil))) } else { var loadCompletedCalled = false - let disposableAndLoadMoreControl = context.peerChannelMemberCategoriesContextsManager.restricted(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, updated: { state in + let disposableAndLoadMoreControl = context.peerChannelMemberCategoriesContextsManager.restricted(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, updated: { state in if case .loading(true) = state.loadingState, !updated { peersPromise.set(.single((peerId, nil))) } else { @@ -594,7 +594,7 @@ public func channelPermissionsController(context: AccountContext, peerId origina } let state = stateValue.with { $0 } if let modifiedRightsFlags = state.modifiedRightsFlags { - updateDefaultRightsDisposable.set((updateDefaultChannelMemberBannedRights(account: context.account, peerId: view.peerId, rights: TelegramChatBannedRights(flags: completeRights(modifiedRightsFlags), untilDate: Int32.max)) + updateDefaultRightsDisposable.set((context.engine.peers.updateDefaultChannelMemberBannedRights(peerId: view.peerId, rights: TelegramChatBannedRights(flags: completeRights(modifiedRightsFlags), untilDate: Int32.max)) |> deliverOnMainQueue).start()) } } else if let group = view.peers[view.peerId] as? TelegramGroup, let _ = view.cachedData as? CachedGroupData { @@ -624,7 +624,7 @@ public func channelPermissionsController(context: AccountContext, peerId origina } let state = stateValue.with { $0 } if let modifiedRightsFlags = state.modifiedRightsFlags { - updateDefaultRightsDisposable.set((updateDefaultChannelMemberBannedRights(account: context.account, peerId: view.peerId, rights: TelegramChatBannedRights(flags: completeRights(modifiedRightsFlags), untilDate: Int32.max)) + updateDefaultRightsDisposable.set((context.engine.peers.updateDefaultChannelMemberBannedRights(peerId: view.peerId, rights: TelegramChatBannedRights(flags: completeRights(modifiedRightsFlags), untilDate: Int32.max)) |> deliverOnMainQueue).start()) } } @@ -679,7 +679,7 @@ public func channelPermissionsController(context: AccountContext, peerId origina return state } - removePeerDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: context.account, peerId: peerId, memberId: memberId, bannedRights: nil) + removePeerDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(engine: context.engine, peerId: peerId, memberId: memberId, bannedRights: nil) |> deliverOnMainQueue).start(error: { _ in updateState { state in var state = state diff --git a/submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift b/submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift index 2656226d71..eba9713cee 100644 --- a/submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift +++ b/submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift @@ -1104,7 +1104,7 @@ public func deviceContactInfoController(context: AccountContext, subject: Device switch subject { case let .create(peer, _, share, shareViaException, _): if share, filteredPhoneNumbers.count <= 1, let peer = peer { - addContactDisposable.set((addContactInteractively(account: context.account, peerId: peer.id, firstName: composedContactData.basicData.firstName, lastName: composedContactData.basicData.lastName, phoneNumber: filteredPhoneNumbers.first?.value ?? "", addToPrivacyExceptions: shareViaException && addToPrivacyExceptions) + addContactDisposable.set((context.engine.contacts.addContactInteractively(peerId: peer.id, firstName: composedContactData.basicData.firstName, lastName: composedContactData.basicData.lastName, phoneNumber: filteredPhoneNumbers.first?.value ?? "", addToPrivacyExceptions: shareViaException && addToPrivacyExceptions) |> deliverOnMainQueue).start(error: { _ in presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), nil) }, completed: { @@ -1138,7 +1138,7 @@ public func deviceContactInfoController(context: AccountContext, subject: Device switch subject { case let .create(peer, _, share, shareViaException, _): if share, let peer = peer { - return addContactInteractively(account: context.account, peerId: peer.id, firstName: composedContactData.basicData.firstName, lastName: composedContactData.basicData.lastName, phoneNumber: filteredPhoneNumbers.first?.value ?? "", addToPrivacyExceptions: shareViaException && addToPrivacyExceptions) + return context.engine.contacts.addContactInteractively(peerId: peer.id, firstName: composedContactData.basicData.firstName, lastName: composedContactData.basicData.lastName, phoneNumber: filteredPhoneNumbers.first?.value ?? "", addToPrivacyExceptions: shareViaException && addToPrivacyExceptions) |> mapToSignal { _ -> Signal<(DeviceContactStableId, DeviceContactExtendedData, Peer?)?, AddContactError> in return .complete() } @@ -1153,7 +1153,7 @@ public func deviceContactInfoController(context: AccountContext, subject: Device break } - return importContact(account: context.account, firstName: composedContactData.basicData.firstName, lastName: composedContactData.basicData.lastName, phoneNumber: filteredPhoneNumbers[0].value) + return context.engine.contacts.importContact(firstName: composedContactData.basicData.firstName, lastName: composedContactData.basicData.lastName, phoneNumber: filteredPhoneNumbers[0].value) |> castError(AddContactError.self) |> mapToSignal { peerId -> Signal<(DeviceContactStableId, DeviceContactExtendedData, Peer?)?, AddContactError> in if let peerId = peerId { diff --git a/submodules/PeerInfoUI/Sources/GroupPreHistorySetupController.swift b/submodules/PeerInfoUI/Sources/GroupPreHistorySetupController.swift index 6ef4e75beb..7468d566f6 100644 --- a/submodules/PeerInfoUI/Sources/GroupPreHistorySetupController.swift +++ b/submodules/PeerInfoUI/Sources/GroupPreHistorySetupController.swift @@ -163,7 +163,7 @@ public func groupPreHistorySetupController(context: AccountContext, peerId: Peer if peerId.namespace == Namespaces.Peer.CloudGroup { let signal = context.engine.peers.convertGroupToSupergroup(peerId: peerId) |> mapToSignal { upgradedPeerId -> Signal in - return updateChannelHistoryAvailabilitySettingsInteractively(postbox: context.account.postbox, network: context.account.network, accountStateManager: context.account.stateManager, peerId: upgradedPeerId, historyAvailableForNewMembers: value) + return context.engine.peers.updateChannelHistoryAvailabilitySettingsInteractively(peerId: upgradedPeerId, historyAvailableForNewMembers: value) |> `catch` { _ -> Signal in return .complete() } @@ -190,7 +190,7 @@ public func groupPreHistorySetupController(context: AccountContext, peerId: Peer } })) } else { - applyDisposable.set((updateChannelHistoryAvailabilitySettingsInteractively(postbox: context.account.postbox, network: context.account.network, accountStateManager: context.account.stateManager, peerId: peerId, historyAvailableForNewMembers: value) + applyDisposable.set((context.engine.peers.updateChannelHistoryAvailabilitySettingsInteractively(peerId: peerId, historyAvailableForNewMembers: value) |> deliverOnMainQueue).start(completed: { dismissImpl?() })) diff --git a/submodules/PeerInfoUI/Sources/GroupStickerPackSetupController.swift b/submodules/PeerInfoUI/Sources/GroupStickerPackSetupController.swift index 9ec05ffc23..8c465147ca 100644 --- a/submodules/PeerInfoUI/Sources/GroupStickerPackSetupController.swift +++ b/submodules/PeerInfoUI/Sources/GroupStickerPackSetupController.swift @@ -448,7 +448,7 @@ public func groupStickerPackSetupController(context: AccountContext, peerId: Pee state.isSaving = true return state } - saveDisposable.set((updateGroupSpecificStickerset(postbox: context.account.postbox, network: context.account.network, peerId: peerId, info: info) + saveDisposable.set((context.engine.peers.updateGroupSpecificStickerset(peerId: peerId, info: info) |> deliverOnMainQueue).start(error: { _ in updateState { state in var state = state diff --git a/submodules/SearchPeerMembers/Sources/SearchPeerMembers.swift b/submodules/SearchPeerMembers/Sources/SearchPeerMembers.swift index 05c001fd06..23329b5e41 100644 --- a/submodules/SearchPeerMembers/Sources/SearchPeerMembers.swift +++ b/submodules/SearchPeerMembers/Sources/SearchPeerMembers.swift @@ -18,7 +18,7 @@ public func searchPeerMembers(context: AccountContext, peerId: PeerId, chatLocat |> mapToSignal { cachedData -> Signal<([Peer], Bool), NoError> in if case .peer = chatLocation, let cachedData = cachedData, let memberCount = cachedData.participantsSummary.memberCount, memberCount <= 64 { return Signal { subscriber in - let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.recent(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: nil, requestUpdate: false, updated: { state in + let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.recent(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: nil, requestUpdate: false, updated: { state in if case .ready = state.loadingState { let normalizedQuery = query.lowercased() subscriber.putNext((state.list.compactMap { participant -> Peer? in @@ -54,7 +54,7 @@ public func searchPeerMembers(context: AccountContext, peerId: PeerId, chatLocat return Signal { subscriber in switch chatLocation { case let .peer(peerId): - let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.recent(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: query.isEmpty ? nil : query, updated: { state in + let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.recent(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, searchQuery: query.isEmpty ? nil : query, updated: { state in if case .ready = state.loadingState { subscriber.putNext((state.list.compactMap { participant in if participant.peer.isDeleted { @@ -69,7 +69,7 @@ public func searchPeerMembers(context: AccountContext, peerId: PeerId, chatLocat disposable.dispose() } case let .replyThread(replyThreadMessage): - let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.mentions(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, threadMessageId: replyThreadMessage.messageId, searchQuery: query.isEmpty ? nil : query, updated: { state in + let (disposable, _) = context.peerChannelMemberCategoriesContextsManager.mentions(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, threadMessageId: replyThreadMessage.messageId, searchQuery: query.isEmpty ? nil : query, updated: { state in if case .ready = state.loadingState { subscriber.putNext((state.list.compactMap { participant in if participant.peer.isDeleted { @@ -117,6 +117,6 @@ public func searchPeerMembers(context: AccountContext, peerId: PeerId, chatLocat } } } else { - return searchGroupMembers(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, query: query) + return context.engine.peers.searchGroupMembers(peerId: peerId, query: query) } } diff --git a/submodules/SettingsUI/Sources/Notifications/Exceptions/NotificationExceptionControllerNode.swift b/submodules/SettingsUI/Sources/Notifications/Exceptions/NotificationExceptionControllerNode.swift index 66a5dfe0ae..8d98a8c01e 100644 --- a/submodules/SettingsUI/Sources/Notifications/Exceptions/NotificationExceptionControllerNode.swift +++ b/submodules/SettingsUI/Sources/Notifications/Exceptions/NotificationExceptionControllerNode.swift @@ -780,16 +780,16 @@ final class NotificationExceptionsControllerNode: ViewControllerTracingNode { let presentationData = context.sharedContext.currentPresentationData.modify {$0} let updatePeerSound: (PeerId, PeerMessageSound) -> Signal = { peerId, sound in - return updatePeerNotificationSoundInteractive(account: context.account, peerId: peerId, sound: sound) |> deliverOnMainQueue + return context.engine.peers.updatePeerNotificationSoundInteractive(peerId: peerId, sound: sound) |> deliverOnMainQueue } - let updatePeerNotificationInterval:(PeerId, Int32?) -> Signal = { peerId, muteInterval in - return updatePeerMuteSetting(account: context.account, peerId: peerId, muteInterval: muteInterval) |> deliverOnMainQueue + let updatePeerNotificationInterval: (PeerId, Int32?) -> Signal = { peerId, muteInterval in + return context.engine.peers.updatePeerMuteSetting(peerId: peerId, muteInterval: muteInterval) |> deliverOnMainQueue } let updatePeerDisplayPreviews:(PeerId, PeerNotificationDisplayPreviews) -> Signal = { peerId, displayPreviews in - return updatePeerDisplayPreviewsSetting(account: context.account, peerId: peerId, displayPreviews: displayPreviews) |> deliverOnMainQueue + return context.engine.peers.updatePeerDisplayPreviewsSetting(peerId: peerId, displayPreviews: displayPreviews) |> deliverOnMainQueue } self.backgroundColor = presentationData.theme.list.blocksBackgroundColor @@ -842,13 +842,11 @@ final class NotificationExceptionsControllerNode: ViewControllerTracingNode { updateNotificationsView({}) }) }, removePeerFromExceptions: { - let _ = (context.account.postbox.transaction { transaction -> Peer? in - updatePeerMuteSetting(transaction: transaction, peerId: peerId, muteInterval: nil) - updatePeerDisplayPreviewsSetting(transaction: transaction, peerId: peerId, displayPreviews: .default) - updatePeerNotificationSoundInteractive(transaction: transaction, peerId: peerId, sound: .default) + let _ = (context.engine.peers.removeCustomNotificationSettings(peerIds: [peerId]) + |> map { _ -> Peer? in } + |> then(context.account.postbox.transaction { transaction -> Peer? in return transaction.getPeer(peerId) - } - |> deliverOnMainQueue).start(next: { peer in + })).start(next: { peer in guard let peer = peer else { return } @@ -917,11 +915,7 @@ final class NotificationExceptionsControllerNode: ViewControllerTracingNode { updateState { value in return value.withUpdatedPeerMuteInterval(peer, nil).withUpdatedPeerSound(peer, .default).withUpdatedPeerDisplayPreviews(peer, .default) } - _ = (context.account.postbox.transaction { transaction in - updatePeerNotificationSoundInteractive(transaction: transaction, peerId: peer.id, sound: .default) - updatePeerMuteSetting(transaction: transaction, peerId: peer.id, muteInterval: nil) - updatePeerDisplayPreviewsSetting(transaction: transaction, peerId: peer.id, displayPreviews: .default) - } + let _ = (context.engine.peers.removeCustomNotificationSettings(peerIds: [peer.id]) |> deliverOnMainQueue).start(completed: { updateNotificationsView({}) }) @@ -953,13 +947,7 @@ final class NotificationExceptionsControllerNode: ViewControllerTracingNode { } return state } - let _ = (context.account.postbox.transaction { transaction -> Void in - for value in values { - updatePeerNotificationSoundInteractive(transaction: transaction, peerId: value.peer.id, sound: .default) - updatePeerMuteSetting(transaction: transaction, peerId: value.peer.id, muteInterval: nil) - updatePeerDisplayPreviewsSetting(transaction: transaction, peerId: value.peer.id, displayPreviews: .default) - } - } + let _ = (context.engine.peers.removeCustomNotificationSettings(peerIds: values.map(\.peer.id)) |> deliverOnMainQueue).start(completed: { updateNotificationsView({}) }) diff --git a/submodules/SettingsUI/Sources/Privacy and Security/DataPrivacySettingsController.swift b/submodules/SettingsUI/Sources/Privacy and Security/DataPrivacySettingsController.swift index 04c8921075..f54573fca9 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/DataPrivacySettingsController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/DataPrivacySettingsController.swift @@ -426,7 +426,7 @@ public func dataPrivacyController(context: AccountContext) -> ViewController { }) }).start() - actionsDisposable.add((deleteAllContacts(account: context.account) + actionsDisposable.add((context.engine.contacts.deleteAllContacts() |> deliverOnMainQueue).start(completed: { updateState { state in var state = state diff --git a/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift b/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift index 7f2ada099e..ffd1980235 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift @@ -506,11 +506,11 @@ public func privacyAndSecurityController(context: AccountContext, initialSetting actionsDisposable.add(updateAutoArchiveDisposable) let privacySettingsPromise = Promise() - privacySettingsPromise.set(.single(initialSettings) |> then(requestAccountPrivacySettings(account: context.account) |> map(Optional.init))) + privacySettingsPromise.set(.single(initialSettings) |> then(context.engine.privacy.requestAccountPrivacySettings() |> map(Optional.init))) let blockedPeersContext = blockedPeersContext ?? BlockedPeersContext(account: context.account) - let activeSessionsContext = activeSessionsContext ?? ActiveSessionsContext(account: context.account) - let webSessionsContext = webSessionsContext ?? WebSessionsContext(account: context.account) + let activeSessionsContext = activeSessionsContext ?? context.engine.privacy.activeSessions() + let webSessionsContext = webSessionsContext ?? context.engine.privacy.webSessions() let blockedPeersState = Promise() blockedPeersState.set(blockedPeersContext.state) @@ -779,7 +779,7 @@ public func privacyAndSecurityController(context: AccountContext, initialSetting return .complete() } - updateAutoArchiveDisposable.set((updateAccountAutoArchiveChats(account: context.account, value: archiveValue) + updateAutoArchiveDisposable.set((context.engine.privacy.updateAccountAutoArchiveChats(value: archiveValue) |> mapToSignal { _ -> Signal in } |> then(applyTimeout) |> deliverOnMainQueue).start(completed: { @@ -817,7 +817,7 @@ public func privacyAndSecurityController(context: AccountContext, initialSetting } return .complete() } - updateAccountTimeoutDisposable.set((updateAccountRemovalTimeout(account: context.account, timeout: timeout) + updateAccountTimeoutDisposable.set((context.engine.privacy.updateAccountRemovalTimeout(timeout: timeout) |> then(applyTimeout) |> deliverOnMainQueue).start(completed: { updateState { state in diff --git a/submodules/SettingsUI/Sources/Privacy and Security/SelectivePrivacySettingsController.swift b/submodules/SettingsUI/Sources/Privacy and Security/SelectivePrivacySettingsController.swift index 1ba0704ebf..9d71c8b993 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/SelectivePrivacySettingsController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/SelectivePrivacySettingsController.swift @@ -1038,14 +1038,14 @@ func selectivePrivacySettingsController(context: AccountContext, kind: Selective type = .phoneNumber } - let updateSettingsSignal = updateSelectiveAccountPrivacySettings(account: context.account, type: type, settings: settings) + let updateSettingsSignal = context.engine.privacy.updateSelectiveAccountPrivacySettings(type: type, settings: settings) var updateCallP2PSettingsSignal: Signal = Signal.complete() if let callP2PSettings = callP2PSettings { - updateCallP2PSettingsSignal = updateSelectiveAccountPrivacySettings(account: context.account, type: .voiceCallsP2P, settings: callP2PSettings) + updateCallP2PSettingsSignal = context.engine.privacy.updateSelectiveAccountPrivacySettings(type: .voiceCallsP2P, settings: callP2PSettings) } var updatePhoneDiscoverySignal: Signal = Signal.complete() if let phoneDiscoveryEnabled = phoneDiscoveryEnabled { - updatePhoneDiscoverySignal = updatePhoneNumberDiscovery(account: context.account, value: phoneDiscoveryEnabled) + updatePhoneDiscoverySignal = context.engine.privacy.updatePhoneNumberDiscovery(value: phoneDiscoveryEnabled) } let _ = (combineLatest(updateSettingsSignal, updateCallP2PSettingsSignal, updatePhoneDiscoverySignal) diff --git a/submodules/SettingsUI/Sources/Search/SettingsSearchableItems.swift b/submodules/SettingsUI/Sources/Search/SettingsSearchableItems.swift index a3f57b7fd6..ddb16e8422 100644 --- a/submodules/SettingsUI/Sources/Search/SettingsSearchableItems.swift +++ b/submodules/SettingsUI/Sources/Search/SettingsSearchableItems.swift @@ -430,7 +430,7 @@ private func privacySearchableItems(context: AccountContext, privacySettings: Ac if let privacySettings = privacySettings { privacySignal = .single(privacySettings) } else { - privacySignal = requestAccountPrivacySettings(account: context.account) + privacySignal = context.engine.privacy.requestAccountPrivacySettings() } let callsSignal: Signal<(VoiceCallSettings, VoipConfiguration)?, NoError> if case .voiceCalls = kind { @@ -535,10 +535,10 @@ private func privacySearchableItems(context: AccountContext, privacySettings: Ac present(.push, twoStepVerificationUnlockSettingsController(context: context, mode: .access(intro: true, data: nil))) }), activeSessionsContext == nil ? nil : SettingsSearchableItem(id: .privacy(9), title: strings.Settings_Devices, alternate: synonyms(strings.SettingsSearch_Synonyms_Privacy_AuthSessions) + [strings.PrivacySettings_AuthSessions], icon: icon, breadcrumbs: [strings.Settings_PrivacySettings], present: { context, _, present in - present(.push, recentSessionsController(context: context, activeSessionsContext: activeSessionsContext!, webSessionsContext: webSessionsContext ?? WebSessionsContext(account: context.account), websitesOnly: false)) + present(.push, recentSessionsController(context: context, activeSessionsContext: activeSessionsContext!, webSessionsContext: webSessionsContext ?? context.engine.privacy.webSessions(), websitesOnly: false)) }), webSessionsContext == nil ? nil : SettingsSearchableItem(id: .privacy(10), title: strings.PrivacySettings_WebSessions, alternate: synonyms(strings.SettingsSearch_Synonyms_Privacy_AuthSessions), icon: icon, breadcrumbs: [strings.Settings_PrivacySettings], present: { context, _, present in - present(.push, recentSessionsController(context: context, activeSessionsContext: activeSessionsContext ?? ActiveSessionsContext(account: context.account), webSessionsContext: webSessionsContext ?? WebSessionsContext(account: context.account), websitesOnly: true)) + present(.push, recentSessionsController(context: context, activeSessionsContext: activeSessionsContext ?? context.engine.privacy.activeSessions(), webSessionsContext: webSessionsContext ?? context.engine.privacy.webSessions(), websitesOnly: true)) }), SettingsSearchableItem(id: .privacy(11), title: strings.PrivacySettings_DeleteAccountTitle, alternate: synonyms(strings.SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor), icon: icon, breadcrumbs: [strings.Settings_PrivacySettings], present: { context, _, present in presentPrivacySettings(context, present, .accountTimeout) diff --git a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift index 5d7cb5dc27..bd5dfb715f 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift @@ -1136,7 +1136,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { let rawAdminIds: Signal, NoError> if peerId.namespace == Namespaces.Peer.CloudChannel { rawAdminIds = Signal { subscriber in - let (disposable, _) = accountContext.peerChannelMemberCategoriesContextsManager.admins(postbox: accountContext.account.postbox, network: accountContext.account.network, accountPeerId: accountContext.account.peerId, peerId: peerId, updated: { list in + let (disposable, _) = accountContext.peerChannelMemberCategoriesContextsManager.admins(engine: accountContext.engine, postbox: accountContext.account.postbox, network: accountContext.account.network, accountPeerId: accountContext.account.peerId, peerId: peerId, updated: { list in var peerIds = Set() for item in list.list { if let adminInfo = item.participant.adminInfo, adminInfo.rights.rights.contains(.canManageCalls) { @@ -1425,7 +1425,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { let peerId = strongSelf.peerId if strongSelf.peerId.namespace == Namespaces.Peer.CloudChannel { peerAdminIds = Signal { subscriber in - let (disposable, _) = strongSelf.accountContext.peerChannelMemberCategoriesContextsManager.admins(postbox: strongSelf.accountContext.account.postbox, network: strongSelf.accountContext.account.network, accountPeerId: strongSelf.accountContext.account.peerId, peerId: peerId, updated: { list in + let (disposable, _) = strongSelf.accountContext.peerChannelMemberCategoriesContextsManager.admins(engine: strongSelf.accountContext.engine, postbox: strongSelf.accountContext.account.postbox, network: strongSelf.accountContext.account.network, accountPeerId: strongSelf.accountContext.account.peerId, peerId: peerId, updated: { list in var peerIds = Set() for item in list.list { if let adminInfo = item.participant.adminInfo, adminInfo.rights.rights.contains(.canManageCalls) { @@ -1670,7 +1670,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { let rawAdminIds: Signal, NoError> if peerId.namespace == Namespaces.Peer.CloudChannel { rawAdminIds = Signal { subscriber in - let (disposable, _) = accountContext.peerChannelMemberCategoriesContextsManager.admins(postbox: accountContext.account.postbox, network: accountContext.account.network, accountPeerId: accountContext.account.peerId, peerId: peerId, updated: { list in + let (disposable, _) = accountContext.peerChannelMemberCategoriesContextsManager.admins(engine: accountContext.engine, postbox: accountContext.account.postbox, network: accountContext.account.network, accountPeerId: accountContext.account.peerId, peerId: peerId, updated: { list in var peerIds = Set() for item in list.list { if let adminInfo = item.participant.adminInfo, adminInfo.rights.rights.contains(.canManageCalls) { diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift index 46614f78d2..1f8817c752 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift @@ -1711,7 +1711,7 @@ public final class VoiceChatController: ViewController { return } - let _ = strongSelf.context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: strongSelf.context.account, peerId: strongSelf.call.peerId, memberId: peer.id, bannedRights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: Int32.max)).start() + let _ = strongSelf.context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(engine: strongSelf.context.engine, peerId: strongSelf.call.peerId, memberId: peer.id, bannedRights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: Int32.max)).start() strongSelf.call.removedPeer(peer.id) strongSelf.presentUndoOverlay(content: .banned(text: strongSelf.presentationData.strings.VoiceChat_RemovedPeerText(peer.displayTitle(strings: strongSelf.presentationData.strings, displayOrder: strongSelf.presentationData.nameDisplayOrder)).0), action: { _ in return false }) diff --git a/submodules/TelegramCore/Sources/Account.swift b/submodules/TelegramCore/Sources/Account/Account.swift similarity index 100% rename from submodules/TelegramCore/Sources/Account.swift rename to submodules/TelegramCore/Sources/Account/Account.swift diff --git a/submodules/TelegramCore/Sources/AccountIntermediateState.swift b/submodules/TelegramCore/Sources/Account/AccountIntermediateState.swift similarity index 100% rename from submodules/TelegramCore/Sources/AccountIntermediateState.swift rename to submodules/TelegramCore/Sources/Account/AccountIntermediateState.swift diff --git a/submodules/TelegramCore/Sources/AccountManager.swift b/submodules/TelegramCore/Sources/Account/AccountManager.swift similarity index 100% rename from submodules/TelegramCore/Sources/AccountManager.swift rename to submodules/TelegramCore/Sources/Account/AccountManager.swift diff --git a/submodules/TelegramCore/Sources/ExportedInvitation.swift b/submodules/TelegramCore/Sources/ApiUtils/ExportedInvitation.swift similarity index 100% rename from submodules/TelegramCore/Sources/ExportedInvitation.swift rename to submodules/TelegramCore/Sources/ApiUtils/ExportedInvitation.swift diff --git a/submodules/TelegramCore/Sources/ReactionsMessageAttribute.swift b/submodules/TelegramCore/Sources/ApiUtils/ReactionsMessageAttribute.swift similarity index 100% rename from submodules/TelegramCore/Sources/ReactionsMessageAttribute.swift rename to submodules/TelegramCore/Sources/ApiUtils/ReactionsMessageAttribute.swift diff --git a/submodules/TelegramCore/Sources/RemoteStorageConfiguration.swift b/submodules/TelegramCore/Sources/ApiUtils/RemoteStorageConfiguration.swift similarity index 88% rename from submodules/TelegramCore/Sources/RemoteStorageConfiguration.swift rename to submodules/TelegramCore/Sources/ApiUtils/RemoteStorageConfiguration.swift index 174478236d..90a45f895d 100644 --- a/submodules/TelegramCore/Sources/RemoteStorageConfiguration.swift +++ b/submodules/TelegramCore/Sources/ApiUtils/RemoteStorageConfiguration.swift @@ -4,7 +4,7 @@ import SwiftSignalKit import SyncCore -public func currentWebDocumentsHostDatacenterId(postbox: Postbox, isTestingEnvironment: Bool) -> Signal { +func currentWebDocumentsHostDatacenterId(postbox: Postbox, isTestingEnvironment: Bool) -> Signal { return postbox.transaction { transaction -> Int32 in if let entry = transaction.getPreferencesEntry(key: PreferencesKeys.remoteStorageConfiguration) as? RemoteStorageConfiguration { return entry.webDocumentsHostDatacenterId diff --git a/submodules/TelegramCore/Sources/ReplyMarkupMessageAttribute.swift b/submodules/TelegramCore/Sources/ApiUtils/ReplyMarkupMessageAttribute.swift similarity index 100% rename from submodules/TelegramCore/Sources/ReplyMarkupMessageAttribute.swift rename to submodules/TelegramCore/Sources/ApiUtils/ReplyMarkupMessageAttribute.swift diff --git a/submodules/TelegramCore/Sources/ChannelAdmins.swift b/submodules/TelegramCore/Sources/ChannelAdmins.swift deleted file mode 100644 index 105e7070a8..0000000000 --- a/submodules/TelegramCore/Sources/ChannelAdmins.swift +++ /dev/null @@ -1,82 +0,0 @@ -import Foundation -import Postbox -import SwiftSignalKit -import TelegramApi -import MtProtoKit - -import SyncCore - -public func channelAdmins(account: Account, peerId: PeerId) -> Signal<[RenderedChannelParticipant], NoError> { - return account.postbox.transaction { transaction -> Signal<[RenderedChannelParticipant], NoError> in - if let peer = transaction.getPeer(peerId), let inputChannel = apiInputChannel(peer) { - return account.network.request(Api.functions.channels.getParticipants(channel: inputChannel, filter: .channelParticipantsAdmins, offset: 0, limit: 100, hash: 0)) - |> retryRequest - |> mapToSignal { result -> Signal<[RenderedChannelParticipant], NoError> in - switch result { - case let .channelParticipants(count, participants, chats, users): - var items: [RenderedChannelParticipant] = [] - - var peers: [PeerId: Peer] = [:] - var presences:[PeerId: PeerPresence] = [:] - for user in users { - let peer = TelegramUser(user: user) - peers[peer.id] = peer - if let presence = TelegramUserPresence(apiUser: user) { - presences[peer.id] = presence - } - } - - for participant in CachedChannelParticipants(apiParticipants: participants).participants { - if let peer = peers[participant.peerId] { - items.append(RenderedChannelParticipant(participant: participant, peer: peer, peers: peers, presences: presences)) - } - } - - return account.postbox.transaction { transaction -> [RenderedChannelParticipant] in - transaction.updatePeerCachedData(peerIds: Set([peerId]), update: { _, cachedData -> CachedPeerData? in - if let cachedData = cachedData as? CachedChannelData { - return cachedData.withUpdatedParticipantsSummary(cachedData.participantsSummary.withUpdatedAdminCount(count)) - } else { - return cachedData - } - }) - return items - } - case .channelParticipantsNotModified: - return .single([]) - } - } - } else { - return .single([]) - } - } |> switchToLatest -} - -public func channelAdminIds(postbox: Postbox, network: Network, peerId: PeerId, hash: Int32) -> Signal<[PeerId], NoError> { - return postbox.transaction { transaction in - if let peer = transaction.getPeer(peerId) as? TelegramChannel, case .group = peer.info, let apiChannel = apiInputChannel(peer) { - let api = Api.functions.channels.getParticipants(channel: apiChannel, filter: .channelParticipantsAdmins, offset: 0, limit: 100, hash: hash) - return network.request(api) |> retryRequest |> mapToSignal { result in - switch result { - case let .channelParticipants(_, participants, _, users): - let users = users.filter({ user in - return participants.contains(where: { participant in - switch participant { - case let .channelParticipantAdmin(_, userId, _, _, _, _, _): - return user.peerId.id._internalGetInt32Value() == userId - case let .channelParticipantCreator(_, userId, _, _): - return user.peerId.id._internalGetInt32Value() == userId - default: - return false - } - }) - }) - return .single(users.map({TelegramUser(user: $0).id})) - default: - return .complete() - } - } - } - return .complete() - } |> switchToLatest -} diff --git a/submodules/TelegramCore/Sources/ChannelParticipants.swift b/submodules/TelegramCore/Sources/ChannelParticipants.swift deleted file mode 100644 index ce29068808..0000000000 --- a/submodules/TelegramCore/Sources/ChannelParticipants.swift +++ /dev/null @@ -1,84 +0,0 @@ -import Foundation -import Postbox -import SwiftSignalKit -import TelegramApi -import MtProtoKit - -import SyncCore - -public struct RenderedChannelParticipant: Equatable { - public let participant: ChannelParticipant - public let peer: Peer - public let peers: [PeerId: Peer] - public let presences: [PeerId: PeerPresence] - - public init(participant: ChannelParticipant, peer: Peer, peers: [PeerId: Peer] = [:], presences: [PeerId: PeerPresence] = [:]) { - self.participant = participant - self.peer = peer - self.peers = peers - self.presences = presences - } - - public static func ==(lhs: RenderedChannelParticipant, rhs: RenderedChannelParticipant) -> Bool { - return lhs.participant == rhs.participant && lhs.peer.isEqual(rhs.peer) - } -} - -func updateChannelParticipantsSummary(account: Account, peerId: PeerId) -> Signal { - return account.postbox.transaction { transaction -> Signal in - if let peer = transaction.getPeer(peerId), let inputChannel = apiInputChannel(peer) { - let admins = account.network.request(Api.functions.channels.getParticipants(channel: inputChannel, filter: .channelParticipantsAdmins, offset: 0, limit: 0, hash: 0)) - let members = account.network.request(Api.functions.channels.getParticipants(channel: inputChannel, filter: .channelParticipantsRecent, offset: 0, limit: 0, hash: 0)) - let banned = account.network.request(Api.functions.channels.getParticipants(channel: inputChannel, filter: .channelParticipantsBanned(q: ""), offset: 0, limit: 0, hash: 0)) - let kicked = account.network.request(Api.functions.channels.getParticipants(channel: inputChannel, filter: .channelParticipantsKicked(q: ""), offset: 0, limit: 0, hash: 0)) - return combineLatest(admins, members, banned, kicked) - |> mapToSignal { admins, members, banned, kicked -> Signal in - return account.postbox.transaction { transaction -> Void in - transaction.updatePeerCachedData(peerIds: Set([peerId]), update: { _, current in - if let current = current as? CachedChannelData { - let adminCount: Int32 - switch admins { - case let .channelParticipants(count, _, _, _): - adminCount = count - case .channelParticipantsNotModified: - assertionFailure() - adminCount = 0 - } - let memberCount: Int32 - switch members { - case let .channelParticipants(count, _, _, _): - memberCount = count - case .channelParticipantsNotModified: - assertionFailure() - memberCount = 0 - } - let bannedCount: Int32 - switch banned { - case let .channelParticipants(count, _, _, _): - bannedCount = count - case .channelParticipantsNotModified: - assertionFailure() - bannedCount = 0 - } - let kickedCount: Int32 - switch kicked { - case let .channelParticipants(count, _, _, _): - kickedCount = count - case .channelParticipantsNotModified: - assertionFailure() - kickedCount = 0 - } - return current.withUpdatedParticipantsSummary(CachedChannelParticipantsSummary(memberCount: memberCount, adminCount: adminCount, bannedCount: bannedCount, kickedCount: kickedCount)) - } - return current - }) - } |> mapError { _ -> MTRpcError in return MTRpcError(errorCode: 0, errorDescription: "") } - } - |> `catch` { _ -> Signal in - return .complete() - } - } else { - return .complete() - } - } |> switchToLatest -} diff --git a/submodules/TelegramCore/Sources/FetchedMediaResource.swift b/submodules/TelegramCore/Sources/FetchedMediaResource.swift index 132264cce9..e45786cfe8 100644 --- a/submodules/TelegramCore/Sources/FetchedMediaResource.swift +++ b/submodules/TelegramCore/Sources/FetchedMediaResource.swift @@ -461,7 +461,7 @@ final class MediaReferenceRevalidationContext { func peerAvatars(postbox: Postbox, network: Network, background: Bool, peer: PeerReference) -> Signal<[TelegramPeerPhoto], RevalidateMediaReferenceError> { return self.genericItem(key: .peerAvatars(peer: peer), background: background, request: { next, error in - return (requestPeerPhotos(postbox: postbox, network: network, peerId: peer.id) + return (_internal_requestPeerPhotos(postbox: postbox, network: network, peerId: peer.id) |> mapError { _ -> RevalidateMediaReferenceError in return .generic }).start(next: { value in diff --git a/submodules/TelegramCore/Sources/GroupReturnAndLeft.swift b/submodules/TelegramCore/Sources/MacOS/GroupReturnAndLeft.swift similarity index 100% rename from submodules/TelegramCore/Sources/GroupReturnAndLeft.swift rename to submodules/TelegramCore/Sources/MacOS/GroupReturnAndLeft.swift diff --git a/submodules/TelegramCore/Sources/NotificationAutolockReportManager.swift b/submodules/TelegramCore/Sources/MacOS/NotificationAutolockReportManager.swift similarity index 100% rename from submodules/TelegramCore/Sources/NotificationAutolockReportManager.swift rename to submodules/TelegramCore/Sources/MacOS/NotificationAutolockReportManager.swift diff --git a/submodules/TelegramCore/Sources/MessageReactionList.swift b/submodules/TelegramCore/Sources/MessageReactionList.swift deleted file mode 100644 index e011fb66e4..0000000000 --- a/submodules/TelegramCore/Sources/MessageReactionList.swift +++ /dev/null @@ -1,210 +0,0 @@ -import Foundation -import Postbox -import SwiftSignalKit -import TelegramApi -import MtProtoKit - -import SyncCore - -public enum MessageReactionListCategory: Hashable { - case all - case reaction(String) -} - -public final class MessageReactionListCategoryItem: Equatable { - public let peer: Peer - public let reaction: String - - init(peer: Peer, reaction: String) { - self.peer = peer - self.reaction = reaction - } - - public static func ==(lhs: MessageReactionListCategoryItem, rhs: MessageReactionListCategoryItem) -> Bool { - if lhs.peer.id != rhs.peer.id { - return false - } - if lhs.reaction != rhs.reaction { - return false - } - return true - } -} - -public struct MessageReactionListCategoryState: Equatable { - public var count: Int - public var completed: Bool - public var items: [MessageReactionListCategoryItem] - public var loadingMore: Bool - fileprivate var nextOffset: String? -} - -private enum LoadReactionsError { - case generic -} - -private final class MessageReactionCategoryContext { - private let postbox: Postbox - private let network: Network - private let messageId: MessageId - private let category: MessageReactionListCategory - private var state: MessageReactionListCategoryState - var statePromise: ValuePromise - - private let loadingDisposable = MetaDisposable() - - init(postbox: Postbox, network: Network, messageId: MessageId, category: MessageReactionListCategory, initialState: MessageReactionListCategoryState) { - self.postbox = postbox - self.network = network - self.messageId = messageId - self.category = category - self.state = initialState - self.statePromise = ValuePromise(initialState) - } - - deinit { - self.loadingDisposable.dispose() - } - - func loadMore() { - if self.state.completed || self.state.loadingMore { - return - } - /*self.state.loadingMore = true - self.statePromise.set(self.state) - - var flags: Int32 = 0 - var reaction: String? - switch self.category { - case .all: - break - case let .reaction(value): - flags |= 1 << 0 - reaction = value - } - let messageId = self.messageId - let offset = self.state.nextOffset - var request = self.postbox.transaction { transaction -> Api.InputPeer? in - let inputPeer = transaction.getPeer(messageId.peerId).flatMap(apiInputPeer) - return inputPeer - } - |> castError(LoadReactionsError.self) - |> mapToSignal { inputPeer -> Signal in - guard let inputPeer = inputPeer else { - return .fail(.generic) - } - return self.network.request(Api.functions.messages.getMessageReactionsList(flags: flags, peer: inputPeer, id: messageId.id, reaction: reaction, offset: offset, limit: 64)) - |> mapError { _ -> LoadReactionsError in - return .generic - } - } - //#if DEBUG - //request = request |> delay(1.0, queue: .mainQueue()) - //#endif - self.loadingDisposable.set((request - |> deliverOnMainQueue).start(next: { [weak self] result in - guard let strongSelf = self else { - return - } - let currentState = strongSelf.state - let _ = (strongSelf.postbox.transaction { transaction -> MessageReactionListCategoryState in - var mergedItems = currentState.items - var currentIds = Set(mergedItems.lazy.map { $0.peer.id }) - switch result { - case let .messageReactionsList(_, count, reactions, users, nextOffset): - var peers: [Peer] = [] - for user in users { - let parsedUser = TelegramUser(user: user) - peers.append(parsedUser) - } - updatePeers(transaction: transaction, peers: peers, update: { _, updated in updated }) - for reaction in reactions { - switch reaction { - case let .messageUserReaction(userId, reaction): - if let peer = transaction.getPeer(PeerId(namespace: Namespaces.Peer.CloudUser, id: userId)) { - if !currentIds.contains(peer.id) { - currentIds.insert(peer.id) - mergedItems.append(MessageReactionListCategoryItem(peer: peer, reaction: reaction)) - } - } - } - } - return MessageReactionListCategoryState(count: max(mergedItems.count, Int(count)), completed: nextOffset == nil, items: mergedItems, loadingMore: false, nextOffset: nextOffset) - } - } - |> deliverOnMainQueue).start(next: { state in - guard let strongSelf = self else { - return - } - strongSelf.state = state - strongSelf.statePromise.set(state) - }) - }, error: { _ in - - }))*/ - } -} - -public struct MessageReactionListState: Equatable { - public var states: [(MessageReactionListCategory, MessageReactionListCategoryState)] - - public static func ==(lhs: MessageReactionListState, rhs: MessageReactionListState) -> Bool { - if lhs.states.count != rhs.states.count { - return false - } - for i in 0 ..< lhs.states.count { - if lhs.states[i].0 != rhs.states[i].0 { - return false - } - if lhs.states[i].1 != rhs.states[i].1 { - return false - } - } - return true - } -} - -public final class MessageReactionListContext { - private let postbox: Postbox - private let network: Network - - private var categoryContexts: [MessageReactionListCategory: MessageReactionCategoryContext] = [:] - - private let _state = Promise() - public var state: Signal { - return self._state.get() - } - - public init(postbox: Postbox, network: Network, messageId: MessageId, initialReactions: [MessageReaction]) { - self.postbox = postbox - self.network = network - - var allState = MessageReactionListCategoryState(count: 0, completed: false, items: [], loadingMore: false, nextOffset: nil) - var signals: [Signal<(MessageReactionListCategory, MessageReactionListCategoryState), NoError>] = [] - for reaction in initialReactions { - allState.count += Int(reaction.count) - let context = MessageReactionCategoryContext(postbox: postbox, network: network, messageId: messageId, category: .reaction(reaction.value), initialState: MessageReactionListCategoryState(count: Int(reaction.count), completed: false, items: [], loadingMore: false, nextOffset: nil)) - signals.append(context.statePromise.get() |> map { value -> (MessageReactionListCategory, MessageReactionListCategoryState) in - return (.reaction(reaction.value), value) - }) - self.categoryContexts[.reaction(reaction.value)] = context - context.loadMore() - } - let allContext = MessageReactionCategoryContext(postbox: postbox, network: network, messageId: messageId, category: .all, initialState: allState) - signals.insert(allContext.statePromise.get() |> map { value -> (MessageReactionListCategory, MessageReactionListCategoryState) in - return (.all, value) - }, at: 0) - self.categoryContexts[.all] = allContext - - self._state.set(combineLatest(queue: .mainQueue(), signals) - |> map { states in - return MessageReactionListState(states: states) - }) - - allContext.loadMore() - } - - public func loadMore(category: MessageReactionListCategory) { - self.categoryContexts[category]?.loadMore() - } -} diff --git a/submodules/TelegramCore/Sources/Download.swift b/submodules/TelegramCore/Sources/Network/Download.swift similarity index 100% rename from submodules/TelegramCore/Sources/Download.swift rename to submodules/TelegramCore/Sources/Network/Download.swift diff --git a/submodules/TelegramCore/Sources/FetchHttpResource.swift b/submodules/TelegramCore/Sources/Network/FetchHttpResource.swift similarity index 100% rename from submodules/TelegramCore/Sources/FetchHttpResource.swift rename to submodules/TelegramCore/Sources/Network/FetchHttpResource.swift diff --git a/submodules/TelegramCore/Sources/MultipartFetch.swift b/submodules/TelegramCore/Sources/Network/MultipartFetch.swift similarity index 100% rename from submodules/TelegramCore/Sources/MultipartFetch.swift rename to submodules/TelegramCore/Sources/Network/MultipartFetch.swift diff --git a/submodules/TelegramCore/Sources/MultipartUpload.swift b/submodules/TelegramCore/Sources/Network/MultipartUpload.swift similarity index 100% rename from submodules/TelegramCore/Sources/MultipartUpload.swift rename to submodules/TelegramCore/Sources/Network/MultipartUpload.swift diff --git a/submodules/TelegramCore/Sources/MultiplexedRequestManager.swift b/submodules/TelegramCore/Sources/Network/MultiplexedRequestManager.swift similarity index 100% rename from submodules/TelegramCore/Sources/MultiplexedRequestManager.swift rename to submodules/TelegramCore/Sources/Network/MultiplexedRequestManager.swift diff --git a/submodules/TelegramCore/Sources/Network.swift b/submodules/TelegramCore/Sources/Network/Network.swift similarity index 100% rename from submodules/TelegramCore/Sources/Network.swift rename to submodules/TelegramCore/Sources/Network/Network.swift diff --git a/submodules/TelegramCore/Sources/NetworkType.swift b/submodules/TelegramCore/Sources/Network/NetworkType.swift similarity index 100% rename from submodules/TelegramCore/Sources/NetworkType.swift rename to submodules/TelegramCore/Sources/Network/NetworkType.swift diff --git a/submodules/TelegramCore/Sources/ProxyServersStatuses.swift b/submodules/TelegramCore/Sources/Network/ProxyServersStatuses.swift similarity index 100% rename from submodules/TelegramCore/Sources/ProxyServersStatuses.swift rename to submodules/TelegramCore/Sources/Network/ProxyServersStatuses.swift diff --git a/submodules/TelegramCore/Sources/PeerParticipants.swift b/submodules/TelegramCore/Sources/PeerParticipants.swift deleted file mode 100644 index 6f12d25956..0000000000 --- a/submodules/TelegramCore/Sources/PeerParticipants.swift +++ /dev/null @@ -1,40 +0,0 @@ -import Foundation -import Postbox -import SwiftSignalKit - -import SyncCore - -private struct PeerParticipants: Equatable { - let peers: [Peer] - - static func ==(lhs: PeerParticipants, rhs: PeerParticipants) -> Bool { - if lhs.peers.count != rhs.peers.count { - return false - } - for i in 0 ..< lhs.peers.count { - if !lhs.peers[i].isEqual(rhs.peers[i]) { - return false - } - } - return true - } -} - -public func peerParticipants(postbox: Postbox, id: PeerId) -> Signal<[Peer], NoError> { - return postbox.peerView(id: id) |> map { view -> PeerParticipants in - if let cachedGroupData = view.cachedData as? CachedGroupData, let participants = cachedGroupData.participants { - var peers: [Peer] = [] - for participant in participants.participants { - if let peer = view.peers[participant.peerId] { - peers.append(peer) - } - } - return PeerParticipants(peers: peers) - } else { - return PeerParticipants(peers: []) - } - } - |> distinctUntilChanged |> map { participants in - return participants.peers - } -} diff --git a/submodules/TelegramCore/Sources/ContentPrivacySettings.swift b/submodules/TelegramCore/Sources/Settings/ContentPrivacySettings.swift similarity index 100% rename from submodules/TelegramCore/Sources/ContentPrivacySettings.swift rename to submodules/TelegramCore/Sources/Settings/ContentPrivacySettings.swift diff --git a/submodules/TelegramCore/Sources/ContentSettings.swift b/submodules/TelegramCore/Sources/Settings/ContentSettings.swift similarity index 100% rename from submodules/TelegramCore/Sources/ContentSettings.swift rename to submodules/TelegramCore/Sources/Settings/ContentSettings.swift diff --git a/submodules/TelegramCore/Sources/Settings/PeerContactSettings.swift b/submodules/TelegramCore/Sources/Settings/PeerContactSettings.swift index 6bc742bd87..d2ac0d1a85 100644 --- a/submodules/TelegramCore/Sources/Settings/PeerContactSettings.swift +++ b/submodules/TelegramCore/Sources/Settings/PeerContactSettings.swift @@ -65,5 +65,5 @@ public func unarchiveAutomaticallyArchivedPeer(account: Account, peerId: PeerId) } |> deliverOnMainQueue).start() - let _ = updatePeerMuteSetting(account: account, peerId: peerId, muteInterval: nil).start() + let _ = _internal_updatePeerMuteSetting(account: account, peerId: peerId, muteInterval: nil).start() } diff --git a/submodules/TelegramCore/Sources/HistoryViewStateValidation.swift b/submodules/TelegramCore/Sources/State/HistoryViewStateValidation.swift similarity index 100% rename from submodules/TelegramCore/Sources/HistoryViewStateValidation.swift rename to submodules/TelegramCore/Sources/State/HistoryViewStateValidation.swift diff --git a/submodules/TelegramCore/Sources/MessageReactions.swift b/submodules/TelegramCore/Sources/State/MessageReactions.swift similarity index 100% rename from submodules/TelegramCore/Sources/MessageReactions.swift rename to submodules/TelegramCore/Sources/State/MessageReactions.swift diff --git a/submodules/TelegramCore/Sources/PeerInputActivity.swift b/submodules/TelegramCore/Sources/State/PeerInputActivity.swift similarity index 100% rename from submodules/TelegramCore/Sources/PeerInputActivity.swift rename to submodules/TelegramCore/Sources/State/PeerInputActivity.swift diff --git a/submodules/TelegramCore/Sources/PeerInputActivityManager.swift b/submodules/TelegramCore/Sources/State/PeerInputActivityManager.swift similarity index 100% rename from submodules/TelegramCore/Sources/PeerInputActivityManager.swift rename to submodules/TelegramCore/Sources/State/PeerInputActivityManager.swift diff --git a/submodules/TelegramCore/Sources/ContactManagement.swift b/submodules/TelegramCore/Sources/TelegramEngine/Contacts/ContactManagement.swift similarity index 96% rename from submodules/TelegramCore/Sources/ContactManagement.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Contacts/ContactManagement.swift index 944e33db9e..43f9be29db 100644 --- a/submodules/TelegramCore/Sources/ContactManagement.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Contacts/ContactManagement.swift @@ -105,7 +105,7 @@ func syncContactsOnce(network: Network, postbox: Postbox, accountPeerId: PeerId) return appliedUpdatedPeers } -public func deleteContactPeerInteractively(account: Account, peerId: PeerId) -> Signal { +func _internal_deleteContactPeerInteractively(account: Account, peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> Signal in if let peer = transaction.getPeer(peerId), let inputUser = apiInputUser(peer) { return account.network.request(Api.functions.contacts.deleteContacts(id: [inputUser])) @@ -133,7 +133,7 @@ public func deleteContactPeerInteractively(account: Account, peerId: PeerId) -> |> switchToLatest } -public func deleteAllContacts(account: Account) -> Signal { +func _internal_deleteAllContacts(account: Account) -> Signal { return account.postbox.transaction { transaction -> [Api.InputUser] in return transaction.getContactPeerIds().compactMap(transaction.getPeer).compactMap({ apiInputUser($0) }).compactMap({ $0 }) } @@ -166,7 +166,7 @@ public func deleteAllContacts(account: Account) -> Signal { } } -public func resetSavedContacts(network: Network) -> Signal { +func _internal_resetSavedContacts(network: Network) -> Signal { return network.request(Api.functions.contacts.resetSaved()) |> `catch` { _ -> Signal in return .single(.boolFalse) diff --git a/submodules/TelegramCore/Sources/DeviceContact.swift b/submodules/TelegramCore/Sources/TelegramEngine/Contacts/DeviceContact.swift similarity index 100% rename from submodules/TelegramCore/Sources/DeviceContact.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Contacts/DeviceContact.swift diff --git a/submodules/TelegramCore/Sources/ImportContact.swift b/submodules/TelegramCore/Sources/TelegramEngine/Contacts/ImportContact.swift similarity index 90% rename from submodules/TelegramCore/Sources/ImportContact.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Contacts/ImportContact.swift index 0783431a6d..5f3d5cf6bb 100644 --- a/submodules/TelegramCore/Sources/ImportContact.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Contacts/ImportContact.swift @@ -4,8 +4,7 @@ import SwiftSignalKit import SyncCore -public func importContact(account: Account, firstName: String, lastName: String, phoneNumber: String) -> Signal { - +func _internal_importContact(account: Account, firstName: String, lastName: String, phoneNumber: String) -> Signal { let input = Api.InputContact.inputPhoneContact(clientId: 1, phone: phoneNumber, firstName: firstName, lastName: lastName) return account.network.request(Api.functions.contacts.importContacts(contacts: [input])) @@ -42,7 +41,7 @@ public enum AddContactError { case generic } -public func addContactInteractively(account: Account, peerId: PeerId, firstName: String, lastName: String, phoneNumber: String, addToPrivacyExceptions: Bool) -> Signal { +func _internal_addContactInteractively(account: Account, peerId: PeerId, firstName: String, lastName: String, phoneNumber: String, addToPrivacyExceptions: Bool) -> Signal { return account.postbox.transaction { transaction -> (Api.InputUser, String)? in if let user = transaction.getPeer(peerId) as? TelegramUser, let inputUser = apiInputUser(user) { return (inputUser, user.phone == nil ? phoneNumber : "") @@ -99,7 +98,7 @@ public enum AcceptAndShareContactError { case generic } -public func acceptAndShareContact(account: Account, peerId: PeerId) -> Signal { +func _internal_acceptAndShareContact(account: Account, peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> Api.InputUser? in return transaction.getPeer(peerId).flatMap(apiInputUser) } diff --git a/submodules/TelegramCore/Sources/PhoneNumber.swift b/submodules/TelegramCore/Sources/TelegramEngine/Contacts/PhoneNumber.swift similarity index 100% rename from submodules/TelegramCore/Sources/PhoneNumber.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Contacts/PhoneNumber.swift diff --git a/submodules/TelegramCore/Sources/TelegramDeviceContactImportInfo.swift b/submodules/TelegramCore/Sources/TelegramEngine/Contacts/TelegramDeviceContactImportInfo.swift similarity index 92% rename from submodules/TelegramCore/Sources/TelegramDeviceContactImportInfo.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Contacts/TelegramDeviceContactImportInfo.swift index 7d02ab0fa2..0a82dd2dc1 100644 --- a/submodules/TelegramCore/Sources/TelegramDeviceContactImportInfo.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Contacts/TelegramDeviceContactImportInfo.swift @@ -48,7 +48,7 @@ enum TelegramDeviceContactImportIdentifier: Hashable, Comparable, Equatable { } } -public func deviceContactsImportedByCount(postbox: Postbox, contacts: [(String, [DeviceContactNormalizedPhoneNumber])]) -> Signal<[String: Int32], NoError> { +func _internal_deviceContactsImportedByCount(postbox: Postbox, contacts: [(String, [DeviceContactNormalizedPhoneNumber])]) -> Signal<[String: Int32], NoError> { return postbox.transaction { transaction -> [String: Int32] in var result: [String: Int32] = [:] for (id, numbers) in contacts { diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Contacts/TelegramEngineContacts.swift b/submodules/TelegramCore/Sources/TelegramEngine/Contacts/TelegramEngineContacts.swift new file mode 100644 index 0000000000..172f879418 --- /dev/null +++ b/submodules/TelegramCore/Sources/TelegramEngine/Contacts/TelegramEngineContacts.swift @@ -0,0 +1,44 @@ +import SwiftSignalKit +import Postbox + +public extension TelegramEngine { + final class Contacts { + private let account: Account + + init(account: Account) { + self.account = account + } + + public func deleteContactPeerInteractively(peerId: PeerId) -> Signal { + return _internal_deleteContactPeerInteractively(account: self.account, peerId: peerId) + } + + public func deleteAllContacts() -> Signal { + return _internal_deleteAllContacts(account: self.account) + } + + public func resetSavedContacts() -> Signal { + return _internal_resetSavedContacts(network: self.account.network) + } + + public func updateContactName(peerId: PeerId, firstName: String, lastName: String) -> Signal { + return _internal_updateContactName(account: self.account, peerId: peerId, firstName: firstName, lastName: lastName) + } + + public func deviceContactsImportedByCount(contacts: [(String, [DeviceContactNormalizedPhoneNumber])]) -> Signal<[String: Int32], NoError> { + return _internal_deviceContactsImportedByCount(postbox: self.account.postbox, contacts: contacts) + } + + public func importContact(firstName: String, lastName: String, phoneNumber: String) -> Signal { + return _internal_importContact(account: self.account, firstName: firstName, lastName: lastName, phoneNumber: phoneNumber) + } + + public func addContactInteractively(peerId: PeerId, firstName: String, lastName: String, phoneNumber: String, addToPrivacyExceptions: Bool) -> Signal { + return _internal_addContactInteractively(account: self.account, peerId: peerId, firstName: firstName, lastName: lastName, phoneNumber: phoneNumber, addToPrivacyExceptions: addToPrivacyExceptions) + } + + public func acceptAndShareContact(peerId: PeerId) -> Signal { + return _internal_acceptAndShareContact(account: self.account, peerId: peerId) + } + } +} diff --git a/submodules/TelegramCore/Sources/UpdateContactName.swift b/submodules/TelegramCore/Sources/TelegramEngine/Contacts/UpdateContactName.swift similarity index 86% rename from submodules/TelegramCore/Sources/UpdateContactName.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Contacts/UpdateContactName.swift index cb5ba9f76e..dd6939d74d 100644 --- a/submodules/TelegramCore/Sources/UpdateContactName.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Contacts/UpdateContactName.swift @@ -10,7 +10,7 @@ public enum UpdateContactNameError { case generic } -public func updateContactName(account: Account, peerId: PeerId, firstName: String, lastName: String) -> Signal { +func _internal_updateContactName(account: Account, peerId: PeerId, firstName: String, lastName: String) -> Signal { return account.postbox.transaction { transaction -> Signal in if let peer = transaction.getPeer(peerId) as? TelegramUser, let inputUser = apiInputUser(peer) { return account.network.request(Api.functions.contacts.addContact(flags: 0, id: inputUser, firstName: firstName, lastName: lastName, phone: "")) diff --git a/submodules/TelegramCore/Sources/LoadMessagesIfNecessary.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/LoadMessagesIfNecessary.swift similarity index 96% rename from submodules/TelegramCore/Sources/LoadMessagesIfNecessary.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Messages/LoadMessagesIfNecessary.swift index 66ffa33865..f2e4bd052f 100644 --- a/submodules/TelegramCore/Sources/LoadMessagesIfNecessary.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/LoadMessagesIfNecessary.swift @@ -11,7 +11,7 @@ public enum GetMessagesStrategy { case cloud } -public func getMessagesLoadIfNecessary(_ messageIds: [MessageId], postbox: Postbox, network: Network, accountPeerId: PeerId, strategy: GetMessagesStrategy = .cloud) -> Signal <[Message], NoError> { +func _internal_getMessagesLoadIfNecessary(_ messageIds: [MessageId], postbox: Postbox, network: Network, accountPeerId: PeerId, strategy: GetMessagesStrategy = .cloud) -> Signal <[Message], NoError> { let postboxSignal = postbox.transaction { transaction -> ([Message], Set, SimpleDictionary) in var ids = messageIds diff --git a/submodules/TelegramCore/Sources/MarkAllChatsAsRead.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/MarkAllChatsAsRead.swift similarity index 96% rename from submodules/TelegramCore/Sources/MarkAllChatsAsRead.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Messages/MarkAllChatsAsRead.swift index 8a3481c9e5..69dbd159a7 100644 --- a/submodules/TelegramCore/Sources/MarkAllChatsAsRead.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/MarkAllChatsAsRead.swift @@ -6,7 +6,7 @@ import MtProtoKit import SyncCore -public func markAllChatsAsRead(postbox: Postbox, network: Network, stateManager: AccountStateManager) -> Signal { +func _internal_markAllChatsAsRead(postbox: Postbox, network: Network, stateManager: AccountStateManager) -> Signal { return network.request(Api.functions.messages.getDialogUnreadMarks()) |> map(Optional.init) |> `catch` { _ -> Signal<[Api.DialogPeer]?, NoError> in diff --git a/submodules/TelegramCore/Sources/ReplyThreadHistory.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/ReplyThreadHistory.swift similarity index 99% rename from submodules/TelegramCore/Sources/ReplyThreadHistory.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Messages/ReplyThreadHistory.swift index c9626ed73d..38df1cb764 100644 --- a/submodules/TelegramCore/Sources/ReplyThreadHistory.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/ReplyThreadHistory.swift @@ -453,7 +453,7 @@ public enum FetchChannelReplyThreadMessageError { case generic } -public func fetchChannelReplyThreadMessage(account: Account, messageId: MessageId, atMessageId: MessageId?) -> Signal { +func _internal_fetchChannelReplyThreadMessage(account: Account, messageId: MessageId, atMessageId: MessageId?) -> Signal { return account.postbox.transaction { transaction -> Api.InputPeer? in return transaction.getPeer(messageId.peerId).flatMap(apiInputPeer) } diff --git a/submodules/TelegramCore/Sources/RequestStartBot.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/RequestStartBot.swift similarity index 93% rename from submodules/TelegramCore/Sources/RequestStartBot.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Messages/RequestStartBot.swift index f6eebf7019..d0081e14f2 100644 --- a/submodules/TelegramCore/Sources/RequestStartBot.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/RequestStartBot.swift @@ -6,7 +6,7 @@ import MtProtoKit import SyncCore -public func requestStartBot(account: Account, botPeerId: PeerId, payload: String?) -> Signal { +func _internal_requestStartBot(account: Account, botPeerId: PeerId, payload: String?) -> Signal { if let payload = payload, !payload.isEmpty { return account.postbox.loadedPeerWithId(botPeerId) |> mapToSignal { botPeer -> Signal in @@ -41,7 +41,7 @@ public enum StartBotInGroupResult { case channelParticipant(RenderedChannelParticipant) } -public func requestStartBotInGroup(account: Account, botPeerId: PeerId, groupPeerId: PeerId, payload: String?) -> Signal { +func _internal_requestStartBotInGroup(account: Account, botPeerId: PeerId, groupPeerId: PeerId, payload: String?) -> Signal { return account.postbox.transaction { transaction -> (Peer?, Peer?) in return (transaction.getPeer(botPeerId), transaction.getPeer(groupPeerId)) } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift index 46a4e7a7d6..c29e9cfed1 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift @@ -94,5 +94,33 @@ public extension TelegramEngine { public func forwardGameWithScore(messageId: MessageId, to peerId: PeerId) -> Signal { return _internal_forwardGameWithScore(account: self.account, messageId: messageId, to: peerId) } + + public func requestUpdatePinnedMessage(peerId: PeerId, update: PinnedMessageUpdate) -> Signal { + return _internal_requestUpdatePinnedMessage(account: self.account, peerId: peerId, update: update) + } + + public func requestUnpinAllMessages(peerId: PeerId) -> Signal { + return _internal_requestUnpinAllMessages(account: self.account, peerId: peerId) + } + + public func fetchChannelReplyThreadMessage(messageId: MessageId, atMessageId: MessageId?) -> Signal { + return _internal_fetchChannelReplyThreadMessage(account: self.account, messageId: messageId, atMessageId: atMessageId) + } + + public func requestStartBot(botPeerId: PeerId, payload: String?) -> Signal { + return _internal_requestStartBot(account: self.account, botPeerId: botPeerId, payload: payload) + } + + public func requestStartBotInGroup(botPeerId: PeerId, groupPeerId: PeerId, payload: String?) -> Signal { + return _internal_requestStartBotInGroup(account: self.account, botPeerId: botPeerId, groupPeerId: groupPeerId, payload: payload) + } + + public func markAllChatsAsRead() -> Signal { + return _internal_markAllChatsAsRead(postbox: self.account.postbox, network: self.account.network, stateManager: self.account.stateManager) + } + + public func getMessagesLoadIfNecessary(_ messageIds: [MessageId], strategy: GetMessagesStrategy = .cloud) -> Signal <[Message], NoError> { + return _internal_getMessagesLoadIfNecessary(messageIds, postbox: self.account.postbox, network: self.account.network, accountPeerId: self.account.peerId, strategy: strategy) + } } } diff --git a/submodules/TelegramCore/Sources/UpdatePinnedMessage.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/UpdatePinnedMessage.swift similarity index 97% rename from submodules/TelegramCore/Sources/UpdatePinnedMessage.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Messages/UpdatePinnedMessage.swift index 869f3ba0c2..f7a140da28 100644 --- a/submodules/TelegramCore/Sources/UpdatePinnedMessage.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/UpdatePinnedMessage.swift @@ -15,7 +15,7 @@ public enum PinnedMessageUpdate { case clear(id: MessageId) } -public func requestUpdatePinnedMessage(account: Account, peerId: PeerId, update: PinnedMessageUpdate) -> Signal { +func _internal_requestUpdatePinnedMessage(account: Account, peerId: PeerId, update: PinnedMessageUpdate) -> Signal { return account.postbox.transaction { transaction -> (Peer?, CachedPeerData?) in return (transaction.getPeer(peerId), transaction.getPeerCachedData(peerId: peerId)) } @@ -112,7 +112,7 @@ public func requestUpdatePinnedMessage(account: Account, peerId: PeerId, update: } } -public func requestUnpinAllMessages(account: Account, peerId: PeerId) -> Signal { +func _internal_requestUnpinAllMessages(account: Account, peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> (Peer?, CachedPeerData?) in return (transaction.getPeer(peerId), transaction.getPeerCachedData(peerId: peerId)) } diff --git a/submodules/TelegramCore/Sources/ChangePeerNotificationSettings.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChangePeerNotificationSettings.swift similarity index 86% rename from submodules/TelegramCore/Sources/ChangePeerNotificationSettings.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/ChangePeerNotificationSettings.swift index 33df953355..1836f8e221 100644 --- a/submodules/TelegramCore/Sources/ChangePeerNotificationSettings.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChangePeerNotificationSettings.swift @@ -4,7 +4,7 @@ import SwiftSignalKit import SyncCore -public func togglePeerMuted(account: Account, peerId: PeerId) -> Signal { +func _internal_togglePeerMuted(account: Account, peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> Void in if let peer = transaction.getPeer(peerId) { var notificationPeerId = peerId @@ -39,13 +39,13 @@ public func togglePeerMuted(account: Account, peerId: PeerId) -> Signal Signal { +func _internal_updatePeerMuteSetting(account: Account, peerId: PeerId, muteInterval: Int32?) -> Signal { return account.postbox.transaction { transaction -> Void in updatePeerMuteSetting(transaction: transaction, peerId: peerId, muteInterval: muteInterval) } } -public func updatePeerMuteSetting(transaction: Transaction, peerId: PeerId, muteInterval: Int32?) { +func updatePeerMuteSetting(transaction: Transaction, peerId: PeerId, muteInterval: Int32?) { if let peer = transaction.getPeer(peerId) { var notificationPeerId = peerId if let associatedPeerId = peer.associatedPeerId { @@ -82,13 +82,13 @@ public func updatePeerMuteSetting(transaction: Transaction, peerId: PeerId, mute } } -public func updatePeerDisplayPreviewsSetting(account: Account, peerId: PeerId, displayPreviews: PeerNotificationDisplayPreviews) -> Signal { +func _internal_updatePeerDisplayPreviewsSetting(account: Account, peerId: PeerId, displayPreviews: PeerNotificationDisplayPreviews) -> Signal { return account.postbox.transaction { transaction -> Void in updatePeerDisplayPreviewsSetting(transaction: transaction, peerId: peerId, displayPreviews: displayPreviews) } } -public func updatePeerDisplayPreviewsSetting(transaction: Transaction, peerId: PeerId, displayPreviews: PeerNotificationDisplayPreviews) { +func updatePeerDisplayPreviewsSetting(transaction: Transaction, peerId: PeerId, displayPreviews: PeerNotificationDisplayPreviews) { if let peer = transaction.getPeer(peerId) { var notificationPeerId = peerId if let associatedPeerId = peer.associatedPeerId { @@ -108,13 +108,13 @@ public func updatePeerDisplayPreviewsSetting(transaction: Transaction, peerId: P } } -public func updatePeerNotificationSoundInteractive(account: Account, peerId: PeerId, sound: PeerMessageSound) -> Signal { +func _internal_updatePeerNotificationSoundInteractive(account: Account, peerId: PeerId, sound: PeerMessageSound) -> Signal { return account.postbox.transaction { transaction -> Void in updatePeerNotificationSoundInteractive(transaction: transaction, peerId: peerId, sound: sound) } } -public func updatePeerNotificationSoundInteractive(transaction: Transaction, peerId: PeerId, sound: PeerMessageSound) { +func updatePeerNotificationSoundInteractive(transaction: Transaction, peerId: PeerId, sound: PeerMessageSound) { if let peer = transaction.getPeer(peerId) { var notificationPeerId = peerId if let associatedPeerId = peer.associatedPeerId { diff --git a/submodules/TelegramCore/Sources/ChannelAdminEventLogContext.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelAdminEventLogContext.swift similarity index 99% rename from submodules/TelegramCore/Sources/ChannelAdminEventLogContext.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelAdminEventLogContext.swift index 5a158a671e..5568220adc 100644 --- a/submodules/TelegramCore/Sources/ChannelAdminEventLogContext.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelAdminEventLogContext.swift @@ -96,7 +96,7 @@ public final class ChannelAdminEventLogContext { private let loadMoreDisposable = MetaDisposable() - public init(postbox: Postbox, network: Network, peerId: PeerId) { + init(postbox: Postbox, network: Network, peerId: PeerId) { self.postbox = postbox self.network = network self.peerId = peerId diff --git a/submodules/TelegramCore/Sources/ChannelAdminEventLogs.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelAdminEventLogs.swift similarity index 98% rename from submodules/TelegramCore/Sources/ChannelAdminEventLogs.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelAdminEventLogs.swift index acafdd8af0..180244ebb2 100644 --- a/submodules/TelegramCore/Sources/ChannelAdminEventLogs.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelAdminEventLogs.swift @@ -114,7 +114,7 @@ private func boolFromApiValue(_ value: Api.Bool) -> Bool { } } -public func channelAdminLogEvents(postbox: Postbox, network: Network, peerId: PeerId, maxId: AdminLogEventId, minId: AdminLogEventId, limit: Int32 = 100, query: String? = nil, filter: AdminLogEventsFlags? = nil, admins: [PeerId]? = nil) -> Signal { +func channelAdminLogEvents(postbox: Postbox, network: Network, peerId: PeerId, maxId: AdminLogEventId, minId: AdminLogEventId, limit: Int32 = 100, query: String? = nil, filter: AdminLogEventsFlags? = nil, admins: [PeerId]? = nil) -> Signal { return postbox.transaction { transaction -> (Peer?, [Peer]?) in return (transaction.getPeer(peerId), admins?.compactMap { transaction.getPeer($0) }) } diff --git a/submodules/TelegramCore/Sources/ChannelBlacklist.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelBlacklist.swift similarity index 61% rename from submodules/TelegramCore/Sources/ChannelBlacklist.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelBlacklist.swift index 67eaaa4c24..7cab29aba5 100644 --- a/submodules/TelegramCore/Sources/ChannelBlacklist.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelBlacklist.swift @@ -3,138 +3,9 @@ import Postbox import SwiftSignalKit import TelegramApi import MtProtoKit - import SyncCore -private enum ChannelBlacklistFilter { - case restricted - case banned -} - -private func fetchChannelBlacklist(account: Account, peerId: PeerId, filter: ChannelBlacklistFilter) -> Signal<[RenderedChannelParticipant], NoError> { - return account.postbox.transaction { transaction -> Signal<[RenderedChannelParticipant], NoError> in - if let peer = transaction.getPeer(peerId), let inputChannel = apiInputChannel(peer) { - let apiFilter: Api.ChannelParticipantsFilter - switch filter { - case .restricted: - apiFilter = .channelParticipantsBanned(q: "") - case .banned: - apiFilter = .channelParticipantsKicked(q: "") - } - return account.network.request(Api.functions.channels.getParticipants(channel: inputChannel, filter: apiFilter, offset: 0, limit: 100, hash: 0)) - |> retryRequest - |> map { result -> [RenderedChannelParticipant] in - var items: [RenderedChannelParticipant] = [] - switch result { - case let .channelParticipants(_, participants, chats, users): - var peers: [PeerId: Peer] = [:] - var presences: [PeerId: PeerPresence] = [:] - for user in users { - let peer = TelegramUser(user: user) - peers[peer.id] = peer - if let presence = TelegramUserPresence(apiUser: user) { - presences[peer.id] = presence - } - } - for chat in chats { - if let groupOrChannel = parseTelegramGroupOrChannel(chat: chat) { - peers[groupOrChannel.id] = groupOrChannel - } - } - - for participant in CachedChannelParticipants(apiParticipants: participants).participants { - if let peer = peers[participant.peerId] { - items.append(RenderedChannelParticipant(participant: participant, peer: peer, peers: peers, presences: presences)) - } - - } - case .channelParticipantsNotModified: - assertionFailure() - break - } - return items - } - } else { - return .single([]) - } - } |> switchToLatest -} - -public struct ChannelBlacklist { - public let banned: [RenderedChannelParticipant] - public let restricted: [RenderedChannelParticipant] - - public init(banned: [RenderedChannelParticipant], restricted: [RenderedChannelParticipant]) { - self.banned = banned - self.restricted = restricted - } - - public var isEmpty: Bool { - return banned.isEmpty && restricted.isEmpty - } - - public func withRemovedPeerId(_ memberId:PeerId) -> ChannelBlacklist { - var updatedRestricted = restricted - var updatedBanned = banned - - for i in 0 ..< updatedBanned.count { - if updatedBanned[i].peer.id == memberId { - updatedBanned.remove(at: i) - break - } - } - for i in 0 ..< updatedRestricted.count { - if updatedRestricted[i].peer.id == memberId { - updatedRestricted.remove(at: i) - break - } - } - return ChannelBlacklist(banned: updatedBanned, restricted: updatedRestricted) - } - - public func withRemovedParticipant(_ participant:RenderedChannelParticipant) -> ChannelBlacklist { - let updated = self.withRemovedPeerId(participant.participant.peerId) - var updatedRestricted = updated.restricted - var updatedBanned = updated.banned - - if case let .member(_, _, _, maybeBanInfo, _) = participant.participant, let banInfo = maybeBanInfo { - if banInfo.rights.flags.contains(.banReadMessages) { - updatedBanned.insert(participant, at: 0) - } else { - if !banInfo.rights.flags.isEmpty { - updatedRestricted.insert(participant, at: 0) - } - } - } - - - return ChannelBlacklist(banned: updatedBanned, restricted: updatedRestricted) - } -} - -public func channelBlacklistParticipants(account: Account, peerId: PeerId) -> Signal { - return combineLatest(fetchChannelBlacklist(account: account, peerId: peerId, filter: .restricted), fetchChannelBlacklist(account: account, peerId: peerId, filter: .banned)) - |> map { restricted, banned in - var r: [RenderedChannelParticipant] = [] - var b: [RenderedChannelParticipant] = [] - var peerIds = Set() - for participant in restricted { - if !peerIds.contains(participant.peer.id) { - peerIds.insert(participant.peer.id) - r.append(participant) - } - } - for participant in banned { - if !peerIds.contains(participant.peer.id) { - peerIds.insert(participant.peer.id) - b.append(participant) - } - } - return ChannelBlacklist(banned: b, restricted: r) - } -} - -public func updateChannelMemberBannedRights(account: Account, peerId: PeerId, memberId: PeerId, rights: TelegramChatBannedRights?) -> Signal<(ChannelParticipant?, RenderedChannelParticipant?, Bool), NoError> { +func _internal_updateChannelMemberBannedRights(account: Account, peerId: PeerId, memberId: PeerId, rights: TelegramChatBannedRights?) -> Signal<(ChannelParticipant?, RenderedChannelParticipant?, Bool), NoError> { return fetchChannelParticipant(account: account, peerId: peerId, participantId: memberId) |> mapToSignal { currentParticipant -> Signal<(ChannelParticipant?, RenderedChannelParticipant?, Bool), NoError> in return account.postbox.transaction { transaction -> Signal<(ChannelParticipant?, RenderedChannelParticipant?, Bool), NoError> in @@ -263,7 +134,7 @@ public func updateChannelMemberBannedRights(account: Account, peerId: PeerId, me } } -public func updateDefaultChannelMemberBannedRights(account: Account, peerId: PeerId, rights: TelegramChatBannedRights) -> Signal { +func _internal_updateDefaultChannelMemberBannedRights(account: Account, peerId: PeerId, rights: TelegramChatBannedRights) -> Signal { return account.postbox.transaction { transaction -> Signal in guard let peer = transaction.getPeer(peerId), let inputPeer = apiInputPeer(peer), let _ = transaction.getPeer(account.peerId) else { return .complete() diff --git a/submodules/TelegramCore/Sources/ChannelCreation.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelCreation.swift similarity index 89% rename from submodules/TelegramCore/Sources/ChannelCreation.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelCreation.swift index 9066882f6d..afb9dfcbe6 100644 --- a/submodules/TelegramCore/Sources/ChannelCreation.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelCreation.swift @@ -71,11 +71,11 @@ private func createChannel(account: Account, title: String, description: String? |> switchToLatest } -public func createChannel(account: Account, title: String, description: String?) -> Signal { +func _internal_createChannel(account: Account, title: String, description: String?) -> Signal { return createChannel(account: account, title: title, description: description, isSupergroup: false) } -public func createSupergroup(account: Account, title: String, description: String?, location: (latitude: Double, longitude: Double, address: String)? = nil, isForHistoryImport: Bool = false) -> Signal { +func _internal_createSupergroup(account: Account, title: String, description: String?, location: (latitude: Double, longitude: Double, address: String)? = nil, isForHistoryImport: Bool = false) -> Signal { return createChannel(account: account, title: title, description: description, isSupergroup: true, location: location, isForHistoryImport: isForHistoryImport) } @@ -83,7 +83,7 @@ public enum DeleteChannelError { case generic } -public func deleteChannel(account: Account, peerId: PeerId) -> Signal { +func _internal_deleteChannel(account: Account, peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> Api.InputChannel? in return transaction.getPeer(peerId).flatMap(apiInputChannel) } diff --git a/submodules/TelegramCore/Sources/ChannelHistoryAvailabilitySettings.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelHistoryAvailabilitySettings.swift similarity index 88% rename from submodules/TelegramCore/Sources/ChannelHistoryAvailabilitySettings.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelHistoryAvailabilitySettings.swift index 3d05721897..dd66a2d550 100644 --- a/submodules/TelegramCore/Sources/ChannelHistoryAvailabilitySettings.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelHistoryAvailabilitySettings.swift @@ -9,7 +9,7 @@ public enum ChannelHistoryAvailabilityError { case hasNotPermissions } -public func updateChannelHistoryAvailabilitySettingsInteractively(postbox: Postbox, network: Network, accountStateManager: AccountStateManager, peerId: PeerId, historyAvailableForNewMembers: Bool) -> Signal { +func _internal_updateChannelHistoryAvailabilitySettingsInteractively(postbox: Postbox, network: Network, accountStateManager: AccountStateManager, peerId: PeerId, historyAvailableForNewMembers: Bool) -> Signal { return postbox.transaction { transaction -> Peer? in return transaction.getPeer(peerId) } diff --git a/submodules/TelegramCore/Sources/ChannelMembers.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelMembers.swift similarity index 95% rename from submodules/TelegramCore/Sources/ChannelMembers.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelMembers.swift index 4e893116f6..bcfee6c545 100644 --- a/submodules/TelegramCore/Sources/ChannelMembers.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelMembers.swift @@ -21,7 +21,7 @@ public enum ChannelMembersCategory { case mentions(threadId: MessageId?, filter: ChannelMembersCategoryFilter) } -public func channelMembers(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, category: ChannelMembersCategory = .recent(.all), offset: Int32 = 0, limit: Int32 = 64, hash: Int32 = 0) -> Signal<[RenderedChannelParticipant]?, NoError> { +func _internal_channelMembers(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, category: ChannelMembersCategory = .recent(.all), offset: Int32 = 0, limit: Int32 = 64, hash: Int32 = 0) -> Signal<[RenderedChannelParticipant]?, NoError> { return postbox.transaction { transaction -> Signal<[RenderedChannelParticipant]?, NoError> in if let peer = transaction.getPeer(peerId), let inputChannel = apiInputChannel(peer) { let apiFilter: Api.ChannelParticipantsFilter diff --git a/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelOwnershipTransfer.swift similarity index 96% rename from submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelOwnershipTransfer.swift index a79b0a2a56..2abce2834d 100644 --- a/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelOwnershipTransfer.swift @@ -21,7 +21,7 @@ public enum ChannelOwnershipTransferError { case userBlocked } -public func checkOwnershipTranfserAvailability(postbox: Postbox, network: Network, accountStateManager: AccountStateManager, memberId: PeerId) -> Signal { +func _internal_checkOwnershipTranfserAvailability(postbox: Postbox, network: Network, accountStateManager: AccountStateManager, memberId: PeerId) -> Signal { return postbox.transaction { transaction -> Peer? in return transaction.getPeer(memberId) } @@ -72,7 +72,7 @@ public func checkOwnershipTranfserAvailability(postbox: Postbox, network: Networ } } -public func updateChannelOwnership(account: Account, accountStateManager: AccountStateManager, channelId: PeerId, memberId: PeerId, password: String) -> Signal<[(ChannelParticipant?, RenderedChannelParticipant)], ChannelOwnershipTransferError> { +func _internal_updateChannelOwnership(account: Account, accountStateManager: AccountStateManager, channelId: PeerId, memberId: PeerId, password: String) -> Signal<[(ChannelParticipant?, RenderedChannelParticipant)], ChannelOwnershipTransferError> { guard !password.isEmpty else { return .fail(.invalidPassword) } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelParticipants.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelParticipants.swift new file mode 100644 index 0000000000..6f975acb71 --- /dev/null +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ChannelParticipants.swift @@ -0,0 +1,25 @@ +import Foundation +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit + +import SyncCore + +public struct RenderedChannelParticipant: Equatable { + public let participant: ChannelParticipant + public let peer: Peer + public let peers: [PeerId: Peer] + public let presences: [PeerId: PeerPresence] + + public init(participant: ChannelParticipant, peer: Peer, peers: [PeerId: Peer] = [:], presences: [PeerId: PeerPresence] = [:]) { + self.participant = participant + self.peer = peer + self.peers = peers + self.presences = presences + } + + public static func ==(lhs: RenderedChannelParticipant, rhs: RenderedChannelParticipant) -> Bool { + return lhs.participant == rhs.participant && lhs.peer.isEqual(rhs.peer) + } +} diff --git a/submodules/TelegramCore/Sources/JoinChannel.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/JoinChannel.swift similarity index 96% rename from submodules/TelegramCore/Sources/JoinChannel.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/JoinChannel.swift index abf5473202..88d2950e9f 100644 --- a/submodules/TelegramCore/Sources/JoinChannel.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/JoinChannel.swift @@ -12,7 +12,7 @@ public enum JoinChannelError { case tooMuchUsers } -public func joinChannel(account: Account, peerId: PeerId, hash: String?) -> Signal { +func _internal_joinChannel(account: Account, peerId: PeerId, hash: String?) -> Signal { return account.postbox.loadedPeerWithId(peerId) |> take(1) |> castError(JoinChannelError.self) diff --git a/submodules/TelegramCore/Sources/ManageChannelDiscussionGroup.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ManageChannelDiscussionGroup.swift similarity index 93% rename from submodules/TelegramCore/Sources/ManageChannelDiscussionGroup.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/ManageChannelDiscussionGroup.swift index e8fc694411..db0cd8f7d0 100644 --- a/submodules/TelegramCore/Sources/ManageChannelDiscussionGroup.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ManageChannelDiscussionGroup.swift @@ -9,7 +9,7 @@ public enum AvailableChannelDiscussionGroupError { case generic } -public func availableGroupsForChannelDiscussion(postbox: Postbox, network: Network) -> Signal<[Peer], AvailableChannelDiscussionGroupError> { +func _internal_availableGroupsForChannelDiscussion(postbox: Postbox, network: Network) -> Signal<[Peer], AvailableChannelDiscussionGroupError> { return network.request(Api.functions.channels.getGroupsForDiscussion()) |> mapError { error in return .generic @@ -39,7 +39,7 @@ public enum ChannelDiscussionGroupError { case tooManyChannels } -public func updateGroupDiscussionForChannel(network: Network, postbox: Postbox, channelId: PeerId?, groupId: PeerId?) -> Signal { +func _internal_updateGroupDiscussionForChannel(network: Network, postbox: Postbox, channelId: PeerId?, groupId: PeerId?) -> Signal { return postbox.transaction { transaction -> (channel: Peer?, group: Peer?) in return (channel: channelId.flatMap(transaction.getPeer), group: groupId.flatMap(transaction.getPeer)) } diff --git a/submodules/TelegramCore/Sources/PeerCommands.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/PeerCommands.swift similarity index 96% rename from submodules/TelegramCore/Sources/PeerCommands.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/PeerCommands.swift index 779ce5b7db..f4be8281bd 100644 --- a/submodules/TelegramCore/Sources/PeerCommands.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/PeerCommands.swift @@ -26,7 +26,7 @@ public struct PeerCommands: Equatable { } } -public func peerCommands(account: Account, id: PeerId) -> Signal { +func _internal_peerCommands(account: Account, id: PeerId) -> Signal { return account.postbox.peerView(id: id) |> map { view -> PeerCommands in if let cachedUserData = view.cachedData as? CachedUserData { if let botInfo = cachedUserData.botInfo { diff --git a/submodules/TelegramCore/Sources/RemovePeerMember.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/RemovePeerMember.swift similarity index 88% rename from submodules/TelegramCore/Sources/RemovePeerMember.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/RemovePeerMember.swift index 1e052b1659..c8cf17ba4b 100644 --- a/submodules/TelegramCore/Sources/RemovePeerMember.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/RemovePeerMember.swift @@ -6,9 +6,9 @@ import MtProtoKit import SyncCore -public func removePeerMember(account: Account, peerId: PeerId, memberId: PeerId) -> Signal { +func _internal_removePeerMember(account: Account, peerId: PeerId, memberId: PeerId) -> Signal { if peerId.namespace == Namespaces.Peer.CloudChannel { - return updateChannelMemberBannedRights(account: account, peerId: peerId, memberId: memberId, rights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: 0)) + return _internal_updateChannelMemberBannedRights(account: account, peerId: peerId, memberId: memberId, rights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: 0)) |> mapToSignal { _ -> Signal in return .complete() } diff --git a/submodules/TelegramCore/Sources/RequestUserPhotos.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/RequestUserPhotos.swift similarity index 98% rename from submodules/TelegramCore/Sources/RequestUserPhotos.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/RequestUserPhotos.swift index 9124bde8b2..a108b0b35c 100644 --- a/submodules/TelegramCore/Sources/RequestUserPhotos.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/RequestUserPhotos.swift @@ -24,7 +24,7 @@ public struct TelegramPeerPhoto { } } -public func requestPeerPhotos(postbox: Postbox, network: Network, peerId: PeerId) -> Signal<[TelegramPeerPhoto], NoError> { +func _internal_requestPeerPhotos(postbox: Postbox, network: Network, peerId: PeerId) -> Signal<[TelegramPeerPhoto], NoError> { return postbox.transaction{ transaction -> Peer? in return transaction.getPeer(peerId) } diff --git a/submodules/TelegramCore/Sources/SearchGroupMembers.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/SearchGroupMembers.swift similarity index 61% rename from submodules/TelegramCore/Sources/SearchGroupMembers.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/SearchGroupMembers.swift index 378e41837c..1a2f83e841 100644 --- a/submodules/TelegramCore/Sources/SearchGroupMembers.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/SearchGroupMembers.swift @@ -4,6 +4,41 @@ import SwiftSignalKit import SyncCore +private struct PeerParticipants: Equatable { + let peers: [Peer] + + static func ==(lhs: PeerParticipants, rhs: PeerParticipants) -> Bool { + if lhs.peers.count != rhs.peers.count { + return false + } + for i in 0 ..< lhs.peers.count { + if !lhs.peers[i].isEqual(rhs.peers[i]) { + return false + } + } + return true + } +} + +private func peerParticipants(postbox: Postbox, id: PeerId) -> Signal<[Peer], NoError> { + return postbox.peerView(id: id) |> map { view -> PeerParticipants in + if let cachedGroupData = view.cachedData as? CachedGroupData, let participants = cachedGroupData.participants { + var peers: [Peer] = [] + for participant in participants.participants { + if let peer = view.peers[participant.peerId] { + peers.append(peer) + } + } + return PeerParticipants(peers: peers) + } else { + return PeerParticipants(peers: []) + } + } + |> distinctUntilChanged |> map { participants in + return participants.peers + } +} + private func searchLocalGroupMembers(postbox: Postbox, peerId: PeerId, query: String) -> Signal<[Peer], NoError> { return peerParticipants(postbox: postbox, id: peerId) |> map { peers -> [Peer] in @@ -28,7 +63,7 @@ private func searchLocalGroupMembers(postbox: Postbox, peerId: PeerId, query: St } } -public func searchGroupMembers(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, query: String) -> Signal<[Peer], NoError> { +func _internal_searchGroupMembers(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, query: String) -> Signal<[Peer], NoError> { if peerId.namespace == Namespaces.Peer.CloudChannel && !query.isEmpty { return searchLocalGroupMembers(postbox: postbox, peerId: peerId, query: query) |> mapToSignal { local -> Signal<[Peer], NoError> in @@ -40,7 +75,7 @@ public func searchGroupMembers(postbox: Postbox, network: Network, accountPeerId } return localResult |> then( - channelMembers(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, category: .recent(.search(query))) + _internal_channelMembers(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, category: .recent(.search(query))) |> map { participants -> [Peer] in var result: [Peer] = local let existingIds = Set(local.map { $0.id }) diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Peers/TelegramEnginePeers.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/TelegramEnginePeers.swift index bf253708bd..312e3aeae2 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Peers/TelegramEnginePeers.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/TelegramEnginePeers.swift @@ -128,5 +128,108 @@ public extension TelegramEngine { public func reportRepliesMessage(messageId: MessageId, deleteMessage: Bool, deleteHistory: Bool, reportSpam: Bool) -> Signal { return _internal_reportRepliesMessage(account: self.account, messageId: messageId, deleteMessage: deleteMessage, deleteHistory: deleteHistory, reportSpam: reportSpam) } + + public func togglePeerMuted(peerId: PeerId) -> Signal { + return _internal_togglePeerMuted(account: self.account, peerId: peerId) + } + + public func updatePeerMuteSetting(peerId: PeerId, muteInterval: Int32?) -> Signal { + return _internal_updatePeerMuteSetting(account: self.account, peerId: peerId, muteInterval: muteInterval) + } + + public func updatePeerDisplayPreviewsSetting(peerId: PeerId, displayPreviews: PeerNotificationDisplayPreviews) -> Signal { + return _internal_updatePeerDisplayPreviewsSetting(account: self.account, peerId: peerId, displayPreviews: displayPreviews) + } + + public func updatePeerNotificationSoundInteractive(peerId: PeerId, sound: PeerMessageSound) -> Signal { + return _internal_updatePeerNotificationSoundInteractive(account: self.account, peerId: peerId, sound: sound) + } + + public func removeCustomNotificationSettings(peerIds: [PeerId]) -> Signal { + return self.account.postbox.transaction { transaction -> Void in + for peerId in peerIds { + TelegramCore.updatePeerNotificationSoundInteractive(transaction: transaction, peerId: peerId, sound: .default) + TelegramCore.updatePeerMuteSetting(transaction: transaction, peerId: peerId, muteInterval: nil) + TelegramCore.updatePeerDisplayPreviewsSetting(transaction: transaction, peerId: peerId, displayPreviews: .default) + } + } + |> ignoreValues + } + + public func channelAdminEventLog(peerId: PeerId) -> ChannelAdminEventLogContext { + return ChannelAdminEventLogContext(postbox: self.account.postbox, network: self.account.network, peerId: peerId) + } + + public func updateChannelMemberBannedRights(peerId: PeerId, memberId: PeerId, rights: TelegramChatBannedRights?) -> Signal<(ChannelParticipant?, RenderedChannelParticipant?, Bool), NoError> { + return _internal_updateChannelMemberBannedRights(account: self.account, peerId: peerId, memberId: memberId, rights: rights) + } + + public func updateDefaultChannelMemberBannedRights(peerId: PeerId, rights: TelegramChatBannedRights) -> Signal { + return _internal_updateDefaultChannelMemberBannedRights(account: self.account, peerId: peerId, rights: rights) + } + + public func createChannel(title: String, description: String?) -> Signal { + return _internal_createChannel(account: self.account, title: title, description: description) + } + + public func createSupergroup(title: String, description: String?, location: (latitude: Double, longitude: Double, address: String)? = nil, isForHistoryImport: Bool = false) -> Signal { + return _internal_createSupergroup(account: self.account, title: title, description: description, location: location, isForHistoryImport: isForHistoryImport) + } + + public func deleteChannel(peerId: PeerId) -> Signal { + return _internal_deleteChannel(account: self.account, peerId: peerId) + } + + public func updateChannelHistoryAvailabilitySettingsInteractively(peerId: PeerId, historyAvailableForNewMembers: Bool) -> Signal { + return _internal_updateChannelHistoryAvailabilitySettingsInteractively(postbox: self.account.postbox, network: self.account.network, accountStateManager: self.account.stateManager, peerId: peerId, historyAvailableForNewMembers: historyAvailableForNewMembers) + } + + public func channelMembers(peerId: PeerId, category: ChannelMembersCategory = .recent(.all), offset: Int32 = 0, limit: Int32 = 64, hash: Int32 = 0) -> Signal<[RenderedChannelParticipant]?, NoError> { + return _internal_channelMembers(postbox: self.account.postbox, network: self.account.network, accountPeerId: self.account.peerId, peerId: peerId, category: category, offset: offset, limit: limit, hash: hash) + } + + public func checkOwnershipTranfserAvailability(memberId: PeerId) -> Signal { + return _internal_checkOwnershipTranfserAvailability(postbox: self.account.postbox, network: self.account.network, accountStateManager: self.account.stateManager, memberId: memberId) + } + + public func updateChannelOwnership(channelId: PeerId, memberId: PeerId, password: String) -> Signal<[(ChannelParticipant?, RenderedChannelParticipant)], ChannelOwnershipTransferError> { + return _internal_updateChannelOwnership(account: self.account, accountStateManager: self.account.stateManager, channelId: channelId, memberId: memberId, password: password) + } + + public func searchGroupMembers(peerId: PeerId, query: String) -> Signal<[Peer], NoError> { + return _internal_searchGroupMembers(postbox: self.account.postbox, network: self.account.network, accountPeerId: self.account.peerId, peerId: peerId, query: query) + } + + public func toggleShouldChannelMessagesSignatures(peerId: PeerId, enabled: Bool) -> Signal { + return _internal_toggleShouldChannelMessagesSignatures(account: self.account, peerId: peerId, enabled: enabled) + } + + public func requestPeerPhotos(peerId: PeerId) -> Signal<[TelegramPeerPhoto], NoError> { + return _internal_requestPeerPhotos(postbox: self.account.postbox, network: self.account.network, peerId: peerId) + } + + public func updateGroupSpecificStickerset(peerId: PeerId, info: StickerPackCollectionInfo?) -> Signal { + return _internal_updateGroupSpecificStickerset(postbox: self.account.postbox, network: self.account.network, peerId: peerId, info: info) + } + + public func joinChannel(peerId: PeerId, hash: String?) -> Signal { + return _internal_joinChannel(account: self.account, peerId: peerId, hash: hash) + } + + public func removePeerMember(peerId: PeerId, memberId: PeerId) -> Signal { + return _internal_removePeerMember(account: self.account, peerId: peerId, memberId: memberId) + } + + public func availableGroupsForChannelDiscussion() -> Signal<[Peer], AvailableChannelDiscussionGroupError> { + return _internal_availableGroupsForChannelDiscussion(postbox: self.account.postbox, network: self.account.network) + } + + public func updateGroupDiscussionForChannel(channelId: PeerId?, groupId: PeerId?) -> Signal { + return _internal_updateGroupDiscussionForChannel(network: self.account.network, postbox: self.account.postbox, channelId: channelId, groupId: groupId) + } + + public func peerCommands(id: PeerId) -> Signal { + return _internal_peerCommands(account: self.account, id: id) + } } } diff --git a/submodules/TelegramCore/Sources/ToggleChannelSignatures.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ToggleChannelSignatures.swift similarity index 83% rename from submodules/TelegramCore/Sources/ToggleChannelSignatures.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/ToggleChannelSignatures.swift index 9505ce02db..27dc326ffc 100644 --- a/submodules/TelegramCore/Sources/ToggleChannelSignatures.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ToggleChannelSignatures.swift @@ -6,7 +6,7 @@ import MtProtoKit import SyncCore -public func toggleShouldChannelMessagesSignatures(account:Account, peerId:PeerId, enabled: Bool) -> Signal { +func _internal_toggleShouldChannelMessagesSignatures(account:Account, peerId:PeerId, enabled: Bool) -> Signal { return account.postbox.transaction { transaction -> Signal in if let peer = transaction.getPeer(peerId) as? TelegramChannel, let inputChannel = apiInputChannel(peer) { return account.network.request(Api.functions.channels.toggleSignatures(channel: inputChannel, enabled: enabled ? .boolTrue : .boolFalse)) |> retryRequest |> map { updates -> Void in diff --git a/submodules/TelegramCore/Sources/UpdateGroupSpecificStickerset.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/UpdateGroupSpecificStickerset.swift similarity index 89% rename from submodules/TelegramCore/Sources/UpdateGroupSpecificStickerset.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/UpdateGroupSpecificStickerset.swift index 860cdea9cc..22f063f1d4 100644 --- a/submodules/TelegramCore/Sources/UpdateGroupSpecificStickerset.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/UpdateGroupSpecificStickerset.swift @@ -9,7 +9,7 @@ public enum UpdateGroupSpecificStickersetError { case generic } -public func updateGroupSpecificStickerset(postbox: Postbox, network: Network, peerId: PeerId, info: StickerPackCollectionInfo?) -> Signal { +func _internal_updateGroupSpecificStickerset(postbox: Postbox, network: Network, peerId: PeerId, info: StickerPackCollectionInfo?) -> Signal { return postbox.loadedPeerWithId(peerId) |> castError(UpdateGroupSpecificStickersetError.self) |> mapToSignal { peer -> Signal in diff --git a/submodules/TelegramCore/Sources/ActiveSessionsContext.swift b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/ActiveSessionsContext.swift similarity index 99% rename from submodules/TelegramCore/Sources/ActiveSessionsContext.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Privacy/ActiveSessionsContext.swift index c060382a5a..637e075d18 100644 --- a/submodules/TelegramCore/Sources/ActiveSessionsContext.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/ActiveSessionsContext.swift @@ -136,7 +136,7 @@ public final class ActiveSessionsContext { } } - public init(account: Account) { + init(account: Account) { self.impl = QueueLocalObject(queue: Queue.mainQueue(), generate: { return ActiveSessionsContextImpl(account: account) }) @@ -218,7 +218,7 @@ public final class WebSessionsContext { private let disposable = MetaDisposable() - public init(account: Account) { + init(account: Account) { assert(Queue.mainQueue().isCurrent()) self.account = account diff --git a/submodules/TelegramCore/Sources/RecentAccountSession.swift b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/RecentAccountSession.swift similarity index 100% rename from submodules/TelegramCore/Sources/RecentAccountSession.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Privacy/RecentAccountSession.swift diff --git a/submodules/TelegramCore/Sources/RecentAccountSessions.swift b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/RecentAccountSessions.swift similarity index 83% rename from submodules/TelegramCore/Sources/RecentAccountSessions.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Privacy/RecentAccountSessions.swift index 68ee35add2..3ceba550e1 100644 --- a/submodules/TelegramCore/Sources/RecentAccountSessions.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/RecentAccountSessions.swift @@ -3,7 +3,7 @@ import Postbox import TelegramApi import SwiftSignalKit -public func requestRecentAccountSessions(account: Account) -> Signal<[RecentAccountSession], NoError> { +func requestRecentAccountSessions(account: Account) -> Signal<[RecentAccountSession], NoError> { return account.network.request(Api.functions.account.getAuthorizations()) |> retryRequest |> map { result -> [RecentAccountSession] in @@ -23,7 +23,7 @@ public enum TerminateSessionError { case freshReset } -public func terminateAccountSession(account: Account, hash: Int64) -> Signal { +func terminateAccountSession(account: Account, hash: Int64) -> Signal { return account.network.request(Api.functions.account.resetAuthorization(hash: hash)) |> mapError { error -> TerminateSessionError in if error.errorCode == 406 { @@ -36,7 +36,7 @@ public func terminateAccountSession(account: Account, hash: Int64) -> Signal Signal { +func terminateOtherAccountSessions(account: Account) -> Signal { return account.network.request(Api.functions.auth.resetAuthorizations()) |> mapError { error -> TerminateSessionError in if error.errorCode == 406 { diff --git a/submodules/TelegramCore/Sources/RecentWebSessions.swift b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/RecentWebSessions.swift similarity index 89% rename from submodules/TelegramCore/Sources/RecentWebSessions.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Privacy/RecentWebSessions.swift index e881ca75d1..d36c953a57 100644 --- a/submodules/TelegramCore/Sources/RecentWebSessions.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/RecentWebSessions.swift @@ -21,7 +21,7 @@ public struct WebAuthorization : Equatable { } } -public func webSessions(network: Network) -> Signal<([WebAuthorization], [PeerId: Peer]), NoError> { +func webSessions(network: Network) -> Signal<([WebAuthorization], [PeerId: Peer]), NoError> { return network.request(Api.functions.account.getWebAuthorizations()) |> retryRequest |> map { result -> ([WebAuthorization], [PeerId : Peer]) in @@ -46,7 +46,7 @@ public func webSessions(network: Network) -> Signal<([WebAuthorization], [PeerId } -public func terminateWebSession(network: Network, hash: Int64) -> Signal { +func terminateWebSession(network: Network, hash: Int64) -> Signal { return network.request(Api.functions.account.resetWebAuthorization(hash: hash)) |> retryRequest |> map { result in @@ -61,7 +61,7 @@ public func terminateWebSession(network: Network, hash: Int64) -> Signal Signal { +func terminateAllWebSessions(network: Network) -> Signal { return network.request(Api.functions.account.resetWebAuthorizations()) |> retryRequest |> map { _ in } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Privacy/TelegramEnginePrivacy.swift b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/TelegramEnginePrivacy.swift index 807a6c1a58..19533db705 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Privacy/TelegramEnginePrivacy.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/TelegramEnginePrivacy.swift @@ -12,5 +12,33 @@ public extension TelegramEngine { public func requestUpdatePeerIsBlocked(peerId: PeerId, isBlocked: Bool) -> Signal { return _internal_requestUpdatePeerIsBlocked(account: self.account, peerId: peerId, isBlocked: isBlocked) } + + public func activeSessions() -> ActiveSessionsContext { + return ActiveSessionsContext(account: self.account) + } + + public func webSessions() -> WebSessionsContext { + return WebSessionsContext(account: self.account) + } + + public func requestAccountPrivacySettings() -> Signal { + return _internal_requestAccountPrivacySettings(account: self.account) + } + + public func updateAccountAutoArchiveChats(value: Bool) -> Signal { + return _internal_updateAccountAutoArchiveChats(account: self.account, value: value) + } + + public func updateAccountRemovalTimeout(timeout: Int32) -> Signal { + return _internal_updateAccountRemovalTimeout(account: self.account, timeout: timeout) + } + + public func updatePhoneNumberDiscovery(value: Bool) -> Signal { + return _internal_updatePhoneNumberDiscovery(account: self.account, value: value) + } + + public func updateSelectiveAccountPrivacySettings(type: UpdateSelectiveAccountPrivacySettingsType, settings: SelectivePrivacySettings) -> Signal { + return _internal_updateSelectiveAccountPrivacySettings(account: self.account, type: type, settings: settings) + } } } diff --git a/submodules/TelegramCore/Sources/UpdatedAccountPrivacySettings.swift b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/UpdatedAccountPrivacySettings.swift similarity index 95% rename from submodules/TelegramCore/Sources/UpdatedAccountPrivacySettings.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Privacy/UpdatedAccountPrivacySettings.swift index ca6a3a84f5..b0e7daf71a 100644 --- a/submodules/TelegramCore/Sources/UpdatedAccountPrivacySettings.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/UpdatedAccountPrivacySettings.swift @@ -5,7 +5,7 @@ import SwiftSignalKit import SyncCore -public func requestAccountPrivacySettings(account: Account) -> Signal { +func _internal_requestAccountPrivacySettings(account: Account) -> Signal { let lastSeenPrivacy = account.network.request(Api.functions.account.getPrivacy(key: .inputPrivacyKeyStatusTimestamp)) let groupPrivacy = account.network.request(Api.functions.account.getPrivacy(key: .inputPrivacyKeyChatInvite)) let voiceCallPrivacy = account.network.request(Api.functions.account.getPrivacy(key: .inputPrivacyKeyPhoneCall)) @@ -140,8 +140,7 @@ public func requestAccountPrivacySettings(account: Account) -> Signal Signal { - +func _internal_updateAccountAutoArchiveChats(account: Account, value: Bool) -> Signal { return account.network.request(Api.functions.account.setGlobalPrivacySettings( settings: .globalPrivacySettings(flags: 1 << 0, archiveAndMuteNewNoncontactPeers: value ? .boolTrue : .boolFalse) )) @@ -149,7 +148,7 @@ public func updateAccountAutoArchiveChats(account: Account, value: Bool) -> Sign |> ignoreValues } -public func updateAccountRemovalTimeout(account: Account, timeout: Int32) -> Signal { +func _internal_updateAccountRemovalTimeout(account: Account, timeout: Int32) -> Signal { return account.network.request(Api.functions.account.setAccountTTL(ttl: .accountDaysTTL(days: timeout / (24 * 60 * 60)))) |> retryRequest |> mapToSignal { _ -> Signal in @@ -157,7 +156,7 @@ public func updateAccountRemovalTimeout(account: Account, timeout: Int32) -> Sig } } -public func updatePhoneNumberDiscovery(account: Account, value: Bool) -> Signal { +func _internal_updatePhoneNumberDiscovery(account: Account, value: Bool) -> Signal { var rules: [Api.InputPrivacyRule] = [] if value { rules.append(.inputPrivacyValueAllowAll) @@ -223,7 +222,7 @@ private func apiUserAndGroupIds(peerIds: [PeerId: SelectivePrivacyPeer]) -> (use return (users, groups) } -public func updateSelectiveAccountPrivacySettings(account: Account, type: UpdateSelectiveAccountPrivacySettingsType, settings: SelectivePrivacySettings) -> Signal { +func _internal_updateSelectiveAccountPrivacySettings(account: Account, type: UpdateSelectiveAccountPrivacySettingsType, settings: SelectivePrivacySettings) -> Signal { return account.postbox.transaction { transaction -> Signal in var rules: [Api.InputPrivacyRule] = [] switch settings { diff --git a/submodules/TelegramCore/Sources/TelegramEngine/TelegramEngine.swift b/submodules/TelegramCore/Sources/TelegramEngine/TelegramEngine.swift index c246adbccc..f6a5546d13 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/TelegramEngine.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/TelegramEngine.swift @@ -59,6 +59,10 @@ public final class TelegramEngine { public lazy var historyImport: HistoryImport = { return HistoryImport(account: self.account) }() + + public lazy var contacts: Contacts = { + return Contacts(account: self.account) + }() } public final class TelegramEngineUnauthorized { diff --git a/submodules/TelegramCore/Sources/JSON.swift b/submodules/TelegramCore/Sources/Utils/JSON.swift similarity index 100% rename from submodules/TelegramCore/Sources/JSON.swift rename to submodules/TelegramCore/Sources/Utils/JSON.swift diff --git a/submodules/TelegramCore/Sources/Log.swift b/submodules/TelegramCore/Sources/Utils/Log.swift similarity index 100% rename from submodules/TelegramCore/Sources/Log.swift rename to submodules/TelegramCore/Sources/Utils/Log.swift diff --git a/submodules/TelegramCore/Sources/MemoryBufferExtensions.swift b/submodules/TelegramCore/Sources/Utils/MemoryBufferExtensions.swift similarity index 100% rename from submodules/TelegramCore/Sources/MemoryBufferExtensions.swift rename to submodules/TelegramCore/Sources/Utils/MemoryBufferExtensions.swift diff --git a/submodules/TelegramCore/Sources/MessageUtils.swift b/submodules/TelegramCore/Sources/Utils/MessageUtils.swift similarity index 100% rename from submodules/TelegramCore/Sources/MessageUtils.swift rename to submodules/TelegramCore/Sources/Utils/MessageUtils.swift diff --git a/submodules/TelegramUI/BUILD b/submodules/TelegramUI/BUILD index c3a4a94c00..e3bd8fe635 100644 --- a/submodules/TelegramUI/BUILD +++ b/submodules/TelegramUI/BUILD @@ -197,7 +197,6 @@ swift_library( "//submodules/GridMessageSelectionNode:GridMessageSelectionNode", "//submodules/InstantPageCache:InstantPageCache", "//submodules/PersistentStringHash:PersistentStringHash", - "//submodules/MessageReactionListUI:MessageReactionListUI", "//submodules/SegmentedControlNode:SegmentedControlNode", "//submodules/AppBundle:AppBundle", "//submodules/Markdown:Markdown", diff --git a/submodules/TelegramUI/Sources/ChatChannelSubscriberInputPanelNode.swift b/submodules/TelegramUI/Sources/ChatChannelSubscriberInputPanelNode.swift index a9ae74e5b7..8c7a5d526d 100644 --- a/submodules/TelegramUI/Sources/ChatChannelSubscriberInputPanelNode.swift +++ b/submodules/TelegramUI/Sources/ChatChannelSubscriberInputPanelNode.swift @@ -197,7 +197,7 @@ final class ChatChannelSubscriberInputPanelNode: ChatInputPanelNode { if let (width, leftInset, rightInset, additionalSideInsets, maxHeight, isSecondary, metrics) = self.layoutData, let presentationInterfaceState = self.presentationInterfaceState { let _ = self.updateLayout(width: width, leftInset: leftInset, rightInset: rightInset, additionalSideInsets: additionalSideInsets, maxHeight: maxHeight, isSecondary: isSecondary, transition: .immediate, interfaceState: presentationInterfaceState, metrics: metrics, force: true) } - self.actionDisposable.set((context.peerChannelMemberCategoriesContextsManager.join(account: context.account, peerId: peer.id, hash: nil) + self.actionDisposable.set((context.peerChannelMemberCategoriesContextsManager.join(engine: context.engine, peerId: peer.id, hash: nil) |> afterDisposed { [weak self] in Queue.mainQueue().async { if let strongSelf = self { @@ -234,7 +234,7 @@ final class ChatChannelSubscriberInputPanelNode: ChatInputPanelNode { break case .muteNotifications, .unmuteNotifications: if let context = self.context, let presentationInterfaceState = self.presentationInterfaceState, let peer = presentationInterfaceState.renderedPeer?.peer { - self.actionDisposable.set(togglePeerMuted(account: context.account, peerId: peer.id).start()) + self.actionDisposable.set(context.engine.peers.togglePeerMuted(peerId: peer.id).start()) } case .hidePinnedMessages, .unpinMessages: self.interfaceInteraction?.unpinAllMessages() diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 5f9bedcc9d..0a0e87ffe1 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -47,7 +47,6 @@ import RaiseToListen import UrlHandling import ReactionSelectionNode import AvatarNode -import MessageReactionListUI import AppBundle import LocalizedPeerData import PhoneNumberFormat @@ -2475,29 +2474,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } else { let _ = updateMessageReactionsInteractively(postbox: strongSelf.context.account.postbox, messageId: messageId, reaction: nil).start() } - }, openMessageReactions: { [weak self] messageId in - guard let strongSelf = self else { - return - } - let _ = (strongSelf.context.account.postbox.transaction { transaction -> Message? in - return transaction.getMessage(messageId) - } - |> deliverOnMainQueue).start(next: { message in - guard let strongSelf = self, let message = message else { - return - } - var initialReactions: [MessageReaction] = [] - for attribute in message.attributes { - if let attribute = attribute as? ReactionsMessageAttribute { - initialReactions = attribute.reactions - } - } - - if !initialReactions.isEmpty { - strongSelf.chatDisplayNode.dismissInput() - strongSelf.present(MessageReactionListController(context: strongSelf.context, messageId: message.id, initialReactions: initialReactions), in: .window(.root)) - } - }) + }, openMessageReactions: { _ in }, displayImportedMessageTooltip: { [weak self] _ in guard let strongSelf = self else { return @@ -2922,7 +2899,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G return context.peerChannelMemberCategoriesContextsManager.recentOnline(account: context.account, accountPeerId: context.account.peerId, peerId: peerId) |> map(Optional.init) } else { - return context.peerChannelMemberCategoriesContextsManager.recentOnlineSmall(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId) + return context.peerChannelMemberCategoriesContextsManager.recentOnlineSmall(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId) |> map(Optional.init) } } else { @@ -3081,8 +3058,8 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G strongSelf.peerView = peerView if wasGroupChannel != isGroupChannel { if let isGroupChannel = isGroupChannel, isGroupChannel { - let (recentDisposable, _) = strongSelf.context.peerChannelMemberCategoriesContextsManager.recent(postbox: strongSelf.context.account.postbox, network: strongSelf.context.account.network, accountPeerId: context.account.peerId, peerId: peerView.peerId, updated: { _ in }) - let (adminsDisposable, _) = strongSelf.context.peerChannelMemberCategoriesContextsManager.admins(postbox: strongSelf.context.account.postbox, network: strongSelf.context.account.network, accountPeerId: context.account.peerId, peerId: peerView.peerId, updated: { _ in }) + let (recentDisposable, _) = strongSelf.context.peerChannelMemberCategoriesContextsManager.recent(engine: strongSelf.context.engine, postbox: strongSelf.context.account.postbox, network: strongSelf.context.account.network, accountPeerId: context.account.peerId, peerId: peerView.peerId, updated: { _ in }) + let (adminsDisposable, _) = strongSelf.context.peerChannelMemberCategoriesContextsManager.admins(engine: strongSelf.context.engine, postbox: strongSelf.context.account.postbox, network: strongSelf.context.account.network, accountPeerId: context.account.peerId, peerId: peerView.peerId, updated: { _ in }) let disposable = DisposableSet() disposable.add(recentDisposable) disposable.add(adminsDisposable) @@ -5491,7 +5468,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G }, togglePeerNotifications: { [weak self] in if let strongSelf = self { let peerId = strongSelf.chatLocation.peerId - let _ = togglePeerMuted(account: strongSelf.context.account, peerId: peerId).start() + let _ = strongSelf.context.engine.peers.togglePeerMuted(peerId: peerId).start() } }, sendContextResult: { [weak self] results, result, node, rect in guard let strongSelf = self else { @@ -5894,7 +5871,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G disposable = MetaDisposable() strongSelf.unpinMessageDisposable = disposable } - disposable.set(requestUpdatePinnedMessage(account: strongSelf.context.account, peerId: currentPeerId, update: .pin(id: messageId, silent: !notify, forThisPeerOnlyIfPossible: forThisPeerOnlyIfPossible)).start(completed: { + disposable.set(strongSelf.context.engine.messages.requestUpdatePinnedMessage(peerId: currentPeerId, update: .pin(id: messageId, silent: !notify, forThisPeerOnlyIfPossible: forThisPeerOnlyIfPossible)).start(completed: { guard let strongSelf = self else { return } @@ -6063,7 +6040,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G action: { action in switch action { case .commit: - disposable.set((requestUpdatePinnedMessage(account: strongSelf.context.account, peerId: peer.id, update: .clear(id: id)) + disposable.set((strongSelf.context.engine.messages.requestUpdatePinnedMessage(peerId: peer.id, update: .clear(id: id)) |> deliverOnMainQueue).start(error: { _ in guard let strongSelf = self else { return @@ -6113,7 +6090,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } switch action { case .commit: - let _ = (requestUpdatePinnedMessage(account: strongSelf.context.account, peerId: peer.id, update: .clear(id: id)) + let _ = (strongSelf.context.engine.messages.requestUpdatePinnedMessage(peerId: peer.id, update: .clear(id: id)) |> deliverOnMainQueue).start(completed: { Queue.mainQueue().after(1.0, { guard let strongSelf = self else { @@ -6133,7 +6110,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G in: .current ) } else { - disposable.set((requestUpdatePinnedMessage(account: strongSelf.context.account, peerId: peer.id, update: .clear(id: id)) + disposable.set((strongSelf.context.engine.messages.requestUpdatePinnedMessage(peerId: peer.id, update: .clear(id: id)) |> deliverOnMainQueue).start()) } } @@ -11462,7 +11439,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G guard let strongSelf = self else { return } - let _ = (acceptAndShareContact(account: strongSelf.context.account, peerId: peer.id) + let _ = (strongSelf.context.engine.contacts.acceptAndShareContact(peerId: peer.id) |> deliverOnMainQueue).start(error: { _ in guard let strongSelf = self else { return @@ -11538,7 +11515,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let startingBot = self.startingBot startingBot.set(true) - self.editMessageDisposable.set((requestStartBot(account: self.context.account, botPeerId: peerId, payload: payload) |> deliverOnMainQueue |> afterDisposed({ + self.editMessageDisposable.set((self.context.engine.messages.requestStartBot(botPeerId: peerId, payload: payload) |> deliverOnMainQueue |> afterDisposed({ startingBot.set(false) })).start(completed: { [weak self] in if let strongSelf = self { @@ -11834,7 +11811,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let _ = strongSelf.context.engine.messages.deleteMessagesInteractively(messageIds: Array(messageIds), type: .forEveryone).start() } if actions.contains(1) { - let _ = removePeerMember(account: strongSelf.context.account, peerId: peerId, memberId: author.id).start() + let _ = strongSelf.context.engine.peers.removePeerMember(peerId: peerId, memberId: author.id).start() } } })) @@ -12511,7 +12488,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G switch action { case .commit: - let _ = (requestUnpinAllMessages(account: strongSelf.context.account, peerId: strongSelf.chatLocation.peerId) + let _ = (strongSelf.context.engine.messages.requestUnpinAllMessages(peerId: strongSelf.chatLocation.peerId) |> deliverOnMainQueue).start(error: { _ in }, completed: { guard let strongSelf = self else { diff --git a/submodules/TelegramUI/Sources/ChatHistoryListNode.swift b/submodules/TelegramUI/Sources/ChatHistoryListNode.swift index f99b7b35fc..4f3f2fcf65 100644 --- a/submodules/TelegramUI/Sources/ChatHistoryListNode.swift +++ b/submodules/TelegramUI/Sources/ChatHistoryListNode.swift @@ -1187,7 +1187,7 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode { } |> distinctUntilChanged(isEqual: { $0 == $1 }) |> mapToSignal { messageId -> Signal in if let messageId = messageId { - return getMessagesLoadIfNecessary([messageId], postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId) |> map { _ -> Void in return Void() } + return context.engine.messages.getMessagesLoadIfNecessary([messageId]) |> map { _ -> Void in return Void() } } else { return .complete() } diff --git a/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift b/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift index 7f42d9f06b..ce80e0760b 100644 --- a/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift +++ b/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift @@ -341,7 +341,7 @@ func fetchAndPreloadReplyThreadInfo(context: AccountContext, subject: ReplyThrea let message: Signal switch subject { case .channelPost(let messageId), .groupMessage(let messageId): - message = fetchChannelReplyThreadMessage(account: context.account, messageId: messageId, atMessageId: atMessageId) + message = context.engine.messages.fetchChannelReplyThreadMessage(messageId: messageId, atMessageId: atMessageId) } return message diff --git a/submodules/TelegramUI/Sources/ChatInterfaceStateContextQueries.swift b/submodules/TelegramUI/Sources/ChatInterfaceStateContextQueries.swift index bd0f80f701..60298d5c02 100644 --- a/submodules/TelegramUI/Sources/ChatInterfaceStateContextQueries.swift +++ b/submodules/TelegramUI/Sources/ChatInterfaceStateContextQueries.swift @@ -233,7 +233,7 @@ private func updatedContextQueryResultStateForQuery(context: AccountContext, pee signal = .single({ _ in return .commands([]) }) } - let commands = peerCommands(account: context.account, id: peer.id) + let commands = context.engine.peers.peerCommands(id: peer.id) |> map { commands -> (ChatPresentationInputQueryResult?) -> ChatPresentationInputQueryResult? in let filteredCommands = commands.commands.filter { command in if command.command.text.hasPrefix(normalizedQuery) { diff --git a/submodules/TelegramUI/Sources/ChatRecentActionsControllerNode.swift b/submodules/TelegramUI/Sources/ChatRecentActionsControllerNode.swift index de97874f89..22f27d32ce 100644 --- a/submodules/TelegramUI/Sources/ChatRecentActionsControllerNode.swift +++ b/submodules/TelegramUI/Sources/ChatRecentActionsControllerNode.swift @@ -123,7 +123,7 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode { self.chatPresentationDataPromise = Promise(ChatPresentationData(theme: ChatPresentationThemeData(theme: self.presentationData.theme, wallpaper: self.presentationData.chatWallpaper), fontSize: self.presentationData.chatFontSize, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameDisplayOrder: self.presentationData.nameDisplayOrder, disableAnimations: true, largeEmoji: self.presentationData.largeEmoji, chatBubbleCorners: self.presentationData.chatBubbleCorners)) - self.eventLogContext = ChannelAdminEventLogContext(postbox: self.context.account.postbox, network: self.context.account.network, peerId: self.peer.id) + self.eventLogContext = self.context.engine.peers.channelAdminEventLog(peerId: self.peer.id) super.init() @@ -140,7 +140,7 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode { self.panelButtonNode.addTarget(self, action: #selector(self.infoButtonPressed), forControlEvents: .touchUpInside) - let (adminsDisposable, _) = self.context.peerChannelMemberCategoriesContextsManager.admins(postbox: self.context.account.postbox, network: self.context.account.network, accountPeerId: context.account.peerId, peerId: self.peer.id, searchQuery: nil, updated: { [weak self] state in + let (adminsDisposable, _) = self.context.peerChannelMemberCategoriesContextsManager.admins(engine: self.context.engine, postbox: self.context.account.postbox, network: self.context.account.network, accountPeerId: context.account.peerId, peerId: self.peer.id, searchQuery: nil, updated: { [weak self] state in self?.adminsState = state }) self.adminsDisposable = adminsDisposable diff --git a/submodules/TelegramUI/Sources/ChatRecentActionsFilterController.swift b/submodules/TelegramUI/Sources/ChatRecentActionsFilterController.swift index d4ee155c36..c667bf02b1 100644 --- a/submodules/TelegramUI/Sources/ChatRecentActionsFilterController.swift +++ b/submodules/TelegramUI/Sources/ChatRecentActionsFilterController.swift @@ -449,7 +449,7 @@ public func channelRecentActionsFilterController(context: AccountContext, peer: adminsPromise.set(.single(nil)) - let (membersDisposable, _) = context.peerChannelMemberCategoriesContextsManager.admins(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peer.id) { membersState in + let (membersDisposable, _) = context.peerChannelMemberCategoriesContextsManager.admins(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peer.id) { membersState in if case .loading = membersState.loadingState, membersState.list.isEmpty { adminsPromise.set(.single(nil)) } else { diff --git a/submodules/TelegramUI/Sources/CommandMenuChatInputContextPanelNode.swift b/submodules/TelegramUI/Sources/CommandMenuChatInputContextPanelNode.swift index 8a2f91fe2e..dfd628d004 100644 --- a/submodules/TelegramUI/Sources/CommandMenuChatInputContextPanelNode.swift +++ b/submodules/TelegramUI/Sources/CommandMenuChatInputContextPanelNode.swift @@ -85,7 +85,7 @@ final class CommandMenuChatInputContextPanelNode: ChatInputContextPanelNode { self.addSubnode(self.listView) - self.disposable.set((peerCommands(account: context.account, id: peerId) + self.disposable.set((context.engine.peers.peerCommands(id: peerId) |> deliverOnMainQueue).start(next: { [weak self] results in if let strongSelf = self { strongSelf.updateResults(results.commands) diff --git a/submodules/TelegramUI/Sources/CreateChannelController.swift b/submodules/TelegramUI/Sources/CreateChannelController.swift index acbcb9eacc..3083cd405e 100644 --- a/submodules/TelegramUI/Sources/CreateChannelController.swift +++ b/submodules/TelegramUI/Sources/CreateChannelController.swift @@ -258,7 +258,7 @@ public func createChannelController(context: AccountContext) -> ViewController { } endEditingImpl?() - actionsDisposable.add((createChannel(account: context.account, title: title, description: description.isEmpty ? nil : description) + actionsDisposable.add((context.engine.peers.createChannel(title: title, description: description.isEmpty ? nil : description) |> deliverOnMainQueue |> afterDisposed { Queue.mainQueue().async { diff --git a/submodules/TelegramUI/Sources/CreateGroupController.swift b/submodules/TelegramUI/Sources/CreateGroupController.swift index 98bb6cf961..ea4ee4ff42 100644 --- a/submodules/TelegramUI/Sources/CreateGroupController.swift +++ b/submodules/TelegramUI/Sources/CreateGroupController.swift @@ -427,7 +427,7 @@ public func createGroupControllerImpl(context: AccountContext, peerIds: [PeerId] case .generic: createSignal = context.engine.peers.createGroup(title: title, peerIds: peerIds) case .supergroup: - createSignal = createSupergroup(account: context.account, title: title, description: nil) + createSignal = context.engine.peers.createSupergroup(title: title, description: nil) |> map(Optional.init) |> mapError { error -> CreateGroupError in switch error { @@ -454,7 +454,7 @@ public func createGroupControllerImpl(context: AccountContext, peerIds: [PeerId] guard let address = address else { return .complete() } - return createSupergroup(account: context.account, title: title, description: nil, location: (location.latitude, location.longitude, address)) + return context.engine.peers.createSupergroup(title: title, description: nil, location: (location.latitude, location.longitude, address)) |> map(Optional.init) |> mapError { error -> CreateGroupError in switch error { diff --git a/submodules/TelegramUI/Sources/OpenResolvedUrl.swift b/submodules/TelegramUI/Sources/OpenResolvedUrl.swift index 320481e6ad..132f9be876 100644 --- a/submodules/TelegramUI/Sources/OpenResolvedUrl.swift +++ b/submodules/TelegramUI/Sources/OpenResolvedUrl.swift @@ -78,7 +78,7 @@ func openResolvedUrlImpl(_ resolvedUrl: ResolvedUrl, context: AccountContext, ur }) } } else { - let _ = (requestStartBotInGroup(account: context.account, botPeerId: botPeerId, groupPeerId: peerId, payload: payload) + let _ = (context.engine.messages.requestStartBotInGroup(botPeerId: botPeerId, groupPeerId: peerId, payload: payload) |> deliverOnMainQueue).start(next: { result in if let navigationController = navigationController { context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(peerId))) @@ -438,8 +438,8 @@ func openResolvedUrlImpl(_ resolvedUrl: ResolvedUrl, context: AccountContext, ur case .devices: if let navigationController = navigationController { let activeSessions = deferred { () -> Signal<(ActiveSessionsContext, Int, WebSessionsContext), NoError> in - let activeSessionsContext = ActiveSessionsContext(account: context.account) - let webSessionsContext = WebSessionsContext(account: context.account) + let activeSessionsContext = context.engine.privacy.activeSessions() + let webSessionsContext = context.engine.privacy.webSessions() let otherSessionCount = activeSessionsContext.state |> map { state -> Int in return state.sessions.filter({ !$0.isCurrent }).count diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoData.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoData.swift index 347f51418b..1a5062a83c 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoData.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoData.swift @@ -695,7 +695,7 @@ func peerInfoScreenData(context: AccountContext, peerId: PeerId, strings: Presen return context.peerChannelMemberCategoriesContextsManager.recentOnline(account: context.account, accountPeerId: context.account.peerId, peerId: peerId) |> map(Optional.init) } else { - return context.peerChannelMemberCategoriesContextsManager.recentOnlineSmall(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId) + return context.peerChannelMemberCategoriesContextsManager.recentOnlineSmall(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId) |> map(Optional.init) } } else { diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoMembers.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoMembers.swift index a8c0ba2799..d2caec111c 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoMembers.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoMembers.swift @@ -147,7 +147,7 @@ private final class PeerInfoMembersContextImpl { self.pushState() if peerId.namespace == Namespaces.Peer.CloudChannel { - let (disposable, control) = context.peerChannelMemberCategoriesContextsManager.recent(postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, updated: { [weak self] state in + let (disposable, control) = context.peerChannelMemberCategoriesContextsManager.recent(engine: context.engine, postbox: context.account.postbox, network: context.account.network, accountPeerId: context.account.peerId, peerId: peerId, updated: { [weak self] state in queue.async { guard let strongSelf = self else { return @@ -230,10 +230,10 @@ private final class PeerInfoMembersContextImpl { if removingMemberIds[memberId] == nil { let signal: Signal if self.peerId.namespace == Namespaces.Peer.CloudChannel { - signal = context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: self.context.account, peerId: self.peerId, memberId: memberId, bannedRights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: Int32.max)) + signal = context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(engine: self.context.engine, peerId: self.peerId, memberId: memberId, bannedRights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: Int32.max)) |> ignoreValues } else { - signal = removePeerMember(account: self.context.account, peerId: self.peerId, memberId: memberId) + signal = self.context.engine.peers.removePeerMember(peerId: self.peerId, memberId: memberId) |> ignoreValues } let completed: () -> Void = { [weak self] in diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift index a2c7a0f3d0..6f6d4fcd61 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift @@ -2536,7 +2536,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD } strongSelf.controller?.present(statusController, in: .window(.root)) - strongSelf.activeActionDisposable.set((updateContactName(account: context.account, peerId: peer.id, firstName: firstName, lastName: lastName) + strongSelf.activeActionDisposable.set((context.engine.contacts.updateContactName(peerId: peer.id, firstName: firstName, lastName: lastName) |> deliverOnMainQueue).start(error: { _ in dismissStatus?() @@ -2744,7 +2744,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD notificationExceptionsList(postbox: context.account.postbox, network: context.account.network) |> map(Optional.init) )) - self.privacySettings.set(.single(nil) |> then(requestAccountPrivacySettings(account: context.account) |> map(Optional.init))) + self.privacySettings.set(.single(nil) |> then(context.engine.privacy.requestAccountPrivacySettings() |> map(Optional.init))) self.archivedPacks.set(.single(nil) |> then(context.engine.stickers.archivedStickerPacks() |> map(Optional.init))) self.hasPassport.set(.single(false) |> then(context.engine.auth.twoStepAuthData() |> map { value -> Bool in @@ -3375,7 +3375,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD self.requestCall(isVideo: false, gesture: gesture) case .mute: if let notificationSettings = self.data?.notificationSettings, case .muted = notificationSettings.muteState { - let _ = updatePeerMuteSetting(account: self.context.account, peerId: self.peerId, muteInterval: nil).start() + let _ = self.context.engine.peers.updatePeerMuteSetting(peerId: self.peerId, muteInterval: nil).start() } else { self.state = self.state.withHighlightedButton(.mute) if let (layout, navigationHeight) = self.validLayout { @@ -3401,7 +3401,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD }, action: { _, f in f(.dismissWithoutContent) - let _ = updatePeerMuteSetting(account: self.context.account, peerId: self.peerId, muteInterval: delay).start() + let _ = self.context.engine.peers.updatePeerMuteSetting(peerId: self.peerId, muteInterval: delay).start() }))) } @@ -3418,16 +3418,16 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD let context = strongSelf.context let updatePeerSound: (PeerId, PeerMessageSound) -> Signal = { peerId, sound in - return updatePeerNotificationSoundInteractive(account: context.account, peerId: peerId, sound: sound) |> deliverOnMainQueue + return context.engine.peers.updatePeerNotificationSoundInteractive(peerId: peerId, sound: sound) |> deliverOnMainQueue } let updatePeerNotificationInterval: (PeerId, Int32?) -> Signal = { peerId, muteInterval in - return updatePeerMuteSetting(account: context.account, peerId: peerId, muteInterval: muteInterval) |> deliverOnMainQueue + return context.engine.peers.updatePeerMuteSetting(peerId: peerId, muteInterval: muteInterval) |> deliverOnMainQueue } let updatePeerDisplayPreviews:(PeerId, PeerNotificationDisplayPreviews) -> Signal = { peerId, displayPreviews in - return updatePeerDisplayPreviewsSetting(account: context.account, peerId: peerId, displayPreviews: displayPreviews) |> deliverOnMainQueue + return context.engine.peers.updatePeerDisplayPreviewsSetting(peerId: peerId, displayPreviews: displayPreviews) |> deliverOnMainQueue } let exceptionController = notificationPeerExceptionController(context: context, peer: peer, mode: .users([:]), edit: true, updatePeerSound: { peerId, sound in @@ -4106,7 +4106,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD guard let strongSelf = self else { return } - let _ = updatePeerNotificationSoundInteractive(account: strongSelf.context.account, peerId: strongSelf.peerId, sound: sound).start() + let _ = strongSelf.context.engine.peers.updatePeerNotificationSoundInteractive(peerId: strongSelf.peerId, sound: sound).start() }) soundController.navigationPresentation = .modal strongSelf.controller?.push(soundController) @@ -4114,7 +4114,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD guard let strongSelf = self else { return } - let _ = updatePeerMuteSetting(account: strongSelf.context.account, peerId: strongSelf.peerId, muteInterval: value).start() + let _ = strongSelf.context.engine.peers.updatePeerMuteSetting(peerId: strongSelf.peerId, muteInterval: value).start() }) strongSelf.view.endEditing(true) strongSelf.controller?.present(muteSettingsController, in: .window(.root)) @@ -4137,7 +4137,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD guard let strongSelf = self else { return } - let _ = updatePeerNotificationSoundInteractive(account: strongSelf.context.account, peerId: strongSelf.peerId, sound: sound).start() + let _ = strongSelf.context.engine.peers.updatePeerNotificationSoundInteractive(peerId: strongSelf.peerId, sound: sound).start() }) strongSelf.controller?.push(soundController) }) @@ -4149,7 +4149,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD guard let strongSelf = self, let peer = peer else { return } - let _ = updatePeerDisplayPreviewsSetting(account: strongSelf.context.account, peerId: peer.id, displayPreviews: value ? .show : .hide).start() + let _ = strongSelf.context.engine.peers.updatePeerDisplayPreviewsSetting(peerId: peer.id, displayPreviews: value ? .show : .hide).start() }) } @@ -4177,7 +4177,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD deleteContactFromDevice = .complete() } - var deleteSignal = deleteContactPeerInteractively(account: strongSelf.context.account, peerId: peer.id) + var deleteSignal = strongSelf.context.engine.contacts.deleteContactPeerInteractively(peerId: peer.id) |> then(deleteContactFromDevice) let progressSignal = Signal { subscriber in @@ -4664,7 +4664,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD } private func editingToggleMessageSignatures(value: Bool) { - self.toggleShouldChannelMessagesSignaturesDisposable.set(toggleShouldChannelMessagesSignatures(account: self.context.account, peerId: self.peerId, enabled: value).start()) + self.toggleShouldChannelMessagesSignaturesDisposable.set(self.context.engine.peers.toggleShouldChannelMessagesSignatures(peerId: self.peerId, enabled: value).start()) } private func openParticipantsSection(section: PeerInfoParticipantsSection) { @@ -6492,8 +6492,8 @@ public final class PeerInfoScreenImpl: ViewController, PeerInfoScreen { if isSettings { let activeSessionsContextAndCountSignal = deferred { () -> Signal<(ActiveSessionsContext, Int, WebSessionsContext)?, NoError> in - let activeSessionsContext = ActiveSessionsContext(account: context.account) - let webSessionsContext = WebSessionsContext(account: context.account) + let activeSessionsContext = context.engine.privacy.activeSessions() + let webSessionsContext = context.engine.privacy.webSessions() let otherSessionCount = activeSessionsContext.state |> map { state -> Int in return state.sessions.filter({ !$0.isCurrent }).count diff --git a/submodules/TelegramUI/Sources/ShareExtensionContext.swift b/submodules/TelegramUI/Sources/ShareExtensionContext.swift index d3a24f5dfc..99bb75a188 100644 --- a/submodules/TelegramUI/Sources/ShareExtensionContext.swift +++ b/submodules/TelegramUI/Sources/ShareExtensionContext.swift @@ -778,7 +778,7 @@ public class ShareRootControllerImpl { resolvedGroupTitle = "Group" } let controller = standardTextAlertController(theme: AlertControllerTheme(presentationData: presentationData), title: presentationData.strings.ChatImport_CreateGroupAlertTitle, text: presentationData.strings.ChatImport_CreateGroupAlertText(resolvedGroupTitle).0, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.ChatImport_CreateGroupAlertImportAction, action: { - var signal: Signal = createSupergroup(account: context.account, title: resolvedGroupTitle, description: nil, isForHistoryImport: true) + var signal: Signal = context.engine.peers.createSupergroup(title: resolvedGroupTitle, description: nil, isForHistoryImport: true) |> map(Optional.init) |> `catch` { _ -> Signal in return .single(nil) @@ -1022,7 +1022,7 @@ public class ShareRootControllerImpl { resolvedGroupTitle = "Group" } let controller = standardTextAlertController(theme: AlertControllerTheme(presentationData: presentationData), title: presentationData.strings.ChatImport_CreateGroupAlertTitle, text: presentationData.strings.ChatImport_CreateGroupAlertText(resolvedGroupTitle).0, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.ChatImport_CreateGroupAlertImportAction, action: { - var signal: Signal = createSupergroup(account: context.account, title: resolvedGroupTitle, description: nil, isForHistoryImport: true) + var signal: Signal = context.engine.peers.createSupergroup(title: resolvedGroupTitle, description: nil, isForHistoryImport: true) |> map(Optional.init) |> `catch` { _ -> Signal in return .single(nil) diff --git a/submodules/TelegramUI/Sources/SharedAccountContext.swift b/submodules/TelegramUI/Sources/SharedAccountContext.swift index c40310a218..5f2eac1bf6 100644 --- a/submodules/TelegramUI/Sources/SharedAccountContext.swift +++ b/submodules/TelegramUI/Sources/SharedAccountContext.swift @@ -1391,7 +1391,7 @@ public final class SharedAccountContextImpl: SharedAccountContext { } public func makeRecentSessionsController(context: AccountContext, activeSessionsContext: ActiveSessionsContext) -> ViewController & RecentSessionsController { - return recentSessionsController(context: context, activeSessionsContext: activeSessionsContext, webSessionsContext: WebSessionsContext(account: context.account), websitesOnly: false) + return recentSessionsController(context: context, activeSessionsContext: activeSessionsContext, webSessionsContext: context.engine.privacy.webSessions(), websitesOnly: false) } public func makePrivacyAndSecurityController(context: AccountContext) -> ViewController { diff --git a/submodules/TemporaryCachedPeerDataManager/Sources/ChannelMemberCategoryListContext.swift b/submodules/TemporaryCachedPeerDataManager/Sources/ChannelMemberCategoryListContext.swift index 9c86d77e5a..682d5ea4c6 100644 --- a/submodules/TemporaryCachedPeerDataManager/Sources/ChannelMemberCategoryListContext.swift +++ b/submodules/TemporaryCachedPeerDataManager/Sources/ChannelMemberCategoryListContext.swift @@ -111,6 +111,7 @@ private extension CachedChannelAdminRank { } private final class ChannelMemberSingleCategoryListContext: ChannelMemberCategoryListContext { + private let engine: TelegramEngine private let postbox: Postbox private let network: Network private let accountPeerId: PeerId @@ -147,7 +148,8 @@ private final class ChannelMemberSingleCategoryListContext: ChannelMemberCategor private var headUpdateTimer: SwiftSignalKit.Timer? - init(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, category: ChannelMemberListCategory) { + init(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, category: ChannelMemberListCategory) { + self.engine = engine self.postbox = postbox self.network = network self.accountPeerId = accountPeerId @@ -230,7 +232,7 @@ private final class ChannelMemberSingleCategoryListContext: ChannelMemberCategor case let .banned(query): requestCategory = .banned(query.flatMap(ChannelMembersCategoryFilter.search) ?? .all) } - return channelMembers(postbox: self.postbox, network: self.network, accountPeerId: self.accountPeerId, peerId: self.peerId, category: requestCategory, offset: offset, limit: count, hash: hash) |> map { members in + return self.engine.peers.channelMembers(peerId: self.peerId, category: requestCategory, offset: offset, limit: count, hash: hash) |> map { members in switch requestCategory { case .admins: if let query = adminQuery { @@ -590,9 +592,9 @@ private final class ChannelMemberMultiCategoryListContext: ChannelMemberCategory } } - init(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, categories: [ChannelMemberListCategory]) { + init(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, categories: [ChannelMemberListCategory]) { self.contexts = categories.map { category in - return ChannelMemberSingleCategoryListContext(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, category: category) + return ChannelMemberSingleCategoryListContext(engine: engine, postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, category: category) } } @@ -698,6 +700,7 @@ private final class PeerChannelMemberContextWithSubscribers { } final class PeerChannelMemberCategoriesContext { + private let engine: TelegramEngine private let postbox: Postbox private let network: Network private let accountPeerId: PeerId @@ -706,7 +709,8 @@ final class PeerChannelMemberCategoriesContext { private var contexts: [PeerChannelMemberContextKey: PeerChannelMemberContextWithSubscribers] = [:] - init(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, becameEmpty: @escaping (Bool) -> Void) { + init(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, becameEmpty: @escaping (Bool) -> Void) { + self.engine = engine self.postbox = postbox self.network = network self.accountPeerId = accountPeerId @@ -755,13 +759,13 @@ final class PeerChannelMemberCategoriesContext { default: mappedCategory = .recent } - context = ChannelMemberSingleCategoryListContext(postbox: self.postbox, network: self.network, accountPeerId: self.accountPeerId, peerId: self.peerId, category: mappedCategory) + context = ChannelMemberSingleCategoryListContext(engine: self.engine, postbox: self.postbox, network: self.network, accountPeerId: self.accountPeerId, peerId: self.peerId, category: mappedCategory) case let .restrictedAndBanned(query): - context = ChannelMemberMultiCategoryListContext(postbox: self.postbox, network: self.network, accountPeerId: self.accountPeerId, peerId: self.peerId, categories: [.restricted(query), .banned(query)]) + context = ChannelMemberMultiCategoryListContext(engine: self.engine, postbox: self.postbox, network: self.network, accountPeerId: self.accountPeerId, peerId: self.peerId, categories: [.restricted(query), .banned(query)]) case let .restricted(query): - context = ChannelMemberSingleCategoryListContext(postbox: self.postbox, network: self.network, accountPeerId: self.accountPeerId, peerId: self.peerId, category: .restricted(query)) + context = ChannelMemberSingleCategoryListContext(engine: self.engine, postbox: self.postbox, network: self.network, accountPeerId: self.accountPeerId, peerId: self.peerId, category: .restricted(query)) case let .banned(query): - context = ChannelMemberSingleCategoryListContext(postbox: self.postbox, network: self.network, accountPeerId: self.accountPeerId, peerId: self.peerId, category: .banned(query)) + context = ChannelMemberSingleCategoryListContext(engine: self.engine, postbox: self.postbox, network: self.network, accountPeerId: self.accountPeerId, peerId: self.peerId, category: .banned(query)) } let contextWithSubscribers = PeerChannelMemberContextWithSubscribers(context: context, emptyTimeout: emptyTimeout, becameEmpty: { [weak self] in assert(Queue.mainQueue().isCurrent()) diff --git a/submodules/TemporaryCachedPeerDataManager/Sources/PeerChannelMemberCategoriesContextsManager.swift b/submodules/TemporaryCachedPeerDataManager/Sources/PeerChannelMemberCategoriesContextsManager.swift index 39169aae5d..7ec4920062 100644 --- a/submodules/TemporaryCachedPeerDataManager/Sources/PeerChannelMemberCategoriesContextsManager.swift +++ b/submodules/TemporaryCachedPeerDataManager/Sources/PeerChannelMemberCategoriesContextsManager.swift @@ -57,12 +57,12 @@ private final class PeerChannelMemberCategoriesContextsManagerImpl { fileprivate var profileDataPreloadContexts: [PeerId: ProfileDataPreloadContext] = [:] fileprivate var profileDataPhotoPreloadContexts: [PeerId: ProfileDataPhotoPreloadContext] = [:] - func getContext(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, key: PeerChannelMemberContextKey, requestUpdate: Bool, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl) { + func getContext(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, key: PeerChannelMemberContextKey, requestUpdate: Bool, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl) { if let current = self.contexts[peerId] { return current.getContext(key: key, requestUpdate: requestUpdate, updated: updated) } else { var becameEmptyImpl: ((Bool) -> Void)? - let context = PeerChannelMemberCategoriesContext(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, becameEmpty: { value in + let context = PeerChannelMemberCategoriesContext(engine: engine, postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, becameEmpty: { value in becameEmptyImpl?(value) }) becameEmptyImpl = { [weak self, weak context] value in @@ -286,10 +286,10 @@ public final class PeerChannelMemberCategoriesContextsManager { } } - private func getContext(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, key: PeerChannelMemberContextKey, requestUpdate: Bool, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { + private func getContext(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, key: PeerChannelMemberContextKey, requestUpdate: Bool, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { assert(Queue.mainQueue().isCurrent()) if let (disposable, control) = self.impl.syncWith({ impl in - return impl.getContext(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: key, requestUpdate: requestUpdate, updated: updated) + return impl.getContext(engine: engine, postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: key, requestUpdate: requestUpdate, updated: updated) }) { return (disposable, control) } else { @@ -317,47 +317,47 @@ public final class PeerChannelMemberCategoriesContextsManager { } } - public func recent(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, requestUpdate: Bool = true, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { + public func recent(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, requestUpdate: Bool = true, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { let key: PeerChannelMemberContextKey if let searchQuery = searchQuery { key = .recentSearch(searchQuery) } else { key = .recent } - return self.getContext(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: key, requestUpdate: requestUpdate, updated: updated) + return self.getContext(engine: engine, postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: key, requestUpdate: requestUpdate, updated: updated) } - public func mentions(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, threadMessageId: MessageId?, searchQuery: String? = nil, requestUpdate: Bool = true, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { + public func mentions(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, threadMessageId: MessageId?, searchQuery: String? = nil, requestUpdate: Bool = true, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { let key: PeerChannelMemberContextKey = .mentions(threadId: threadMessageId, query: searchQuery) - return self.getContext(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: key, requestUpdate: requestUpdate, updated: updated) + return self.getContext(engine: engine, postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: key, requestUpdate: requestUpdate, updated: updated) } - public func admins(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { - return self.getContext(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: .admins(searchQuery), requestUpdate: true, updated: updated) + public func admins(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { + return self.getContext(engine: engine, postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: .admins(searchQuery), requestUpdate: true, updated: updated) } - public func contacts(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { - return self.getContext(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: .contacts(searchQuery), requestUpdate: true, updated: updated) + public func contacts(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { + return self.getContext(engine: engine, postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: .contacts(searchQuery), requestUpdate: true, updated: updated) } - public func bots(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { - return self.getContext(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: .bots(searchQuery), requestUpdate: true, updated: updated) + public func bots(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { + return self.getContext(engine: engine, postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: .bots(searchQuery), requestUpdate: true, updated: updated) } - public func restricted(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { - return self.getContext(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: .restricted(searchQuery), requestUpdate: true, updated: updated) + public func restricted(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { + return self.getContext(engine: engine, postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: .restricted(searchQuery), requestUpdate: true, updated: updated) } - public func banned(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { - return self.getContext(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: .banned(searchQuery), requestUpdate: true, updated: updated) + public func banned(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { + return self.getContext(engine: engine, postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: .banned(searchQuery), requestUpdate: true, updated: updated) } - public func restrictedAndBanned(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { - return self.getContext(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: .restrictedAndBanned(searchQuery), requestUpdate: true, updated: updated) + public func restrictedAndBanned(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, searchQuery: String? = nil, updated: @escaping (ChannelMemberListState) -> Void) -> (Disposable, PeerChannelMemberCategoryControl?) { + return self.getContext(engine: engine, postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, key: .restrictedAndBanned(searchQuery), requestUpdate: true, updated: updated) } - public func updateMemberBannedRights(account: Account, peerId: PeerId, memberId: PeerId, bannedRights: TelegramChatBannedRights?) -> Signal { - return updateChannelMemberBannedRights(account: account, peerId: peerId, memberId: memberId, rights: bannedRights) + public func updateMemberBannedRights(engine: TelegramEngine, peerId: PeerId, memberId: PeerId, bannedRights: TelegramChatBannedRights?) -> Signal { + return engine.peers.updateChannelMemberBannedRights(peerId: peerId, memberId: memberId, rights: bannedRights) |> deliverOnMainQueue |> beforeNext { [weak self] (previous, updated, isMember) in if let strongSelf = self { @@ -398,8 +398,8 @@ public final class PeerChannelMemberCategoriesContextsManager { } } - public func transferOwnership(account: Account, peerId: PeerId, memberId: PeerId, password: String) -> Signal { - return updateChannelOwnership(account: account, accountStateManager: account.stateManager, channelId: peerId, memberId: memberId, password: password) + public func transferOwnership(engine: TelegramEngine, peerId: PeerId, memberId: PeerId, password: String) -> Signal { + return engine.peers.updateChannelOwnership(channelId: peerId, memberId: memberId, password: password) |> map(Optional.init) |> deliverOnMainQueue |> beforeNext { [weak self] results in @@ -418,8 +418,8 @@ public final class PeerChannelMemberCategoriesContextsManager { } } - public func join(account: Account, peerId: PeerId, hash: String?) -> Signal { - return joinChannel(account: account, peerId: peerId, hash: hash) + public func join(engine: TelegramEngine, peerId: PeerId, hash: String?) -> Signal { + return engine.peers.joinChannel(peerId: peerId, hash: hash) |> deliverOnMainQueue |> beforeNext { [weak self] result in if let strongSelf = self, let updated = result { @@ -500,11 +500,11 @@ public final class PeerChannelMemberCategoriesContextsManager { |> runOn(Queue.mainQueue()) } - public func recentOnlineSmall(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId) -> Signal { + public func recentOnlineSmall(engine: TelegramEngine, postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId) -> Signal { return Signal { [weak self] subscriber in var previousIds: Set? let statusesDisposable = MetaDisposable() - let disposableAndControl = self?.recent(postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, updated: { state in + let disposableAndControl = self?.recent(engine: engine, postbox: postbox, network: network, accountPeerId: accountPeerId, peerId: peerId, updated: { state in var idList: [PeerId] = [] for item in state.list { idList.append(item.peer.id) diff --git a/submodules/UrlHandling/Sources/UrlHandling.swift b/submodules/UrlHandling/Sources/UrlHandling.swift index fe14cff19f..c9a54a0a95 100644 --- a/submodules/UrlHandling/Sources/UrlHandling.swift +++ b/submodules/UrlHandling/Sources/UrlHandling.swift @@ -361,7 +361,7 @@ private func resolveInternalUrl(context: AccountContext, url: ParsedInternalUrl) return .single(.channelMessage(peerId: peer.id, messageId: MessageId(peerId: peer.id, namespace: Namespaces.Message.Cloud, id: id))) case let .replyThread(id, replyId): let replyThreadMessageId = MessageId(peerId: peer.id, namespace: Namespaces.Message.Cloud, id: id) - return fetchChannelReplyThreadMessage(account: context.account, messageId: replyThreadMessageId, atMessageId: nil) + return context.engine.messages.fetchChannelReplyThreadMessage(messageId: replyThreadMessageId, atMessageId: nil) |> map(Optional.init) |> `catch` { _ -> Signal in return .single(nil) @@ -413,7 +413,7 @@ private func resolveInternalUrl(context: AccountContext, url: ParsedInternalUrl) if let foundPeer = foundPeer { if let threadId = threadId { let replyThreadMessageId = MessageId(peerId: foundPeer.id, namespace: Namespaces.Message.Cloud, id: threadId) - return fetchChannelReplyThreadMessage(account: context.account, messageId: replyThreadMessageId, atMessageId: nil) + return context.engine.messages.fetchChannelReplyThreadMessage(messageId: replyThreadMessageId, atMessageId: nil) |> map(Optional.init) |> `catch` { _ -> Signal in return .single(nil) diff --git a/submodules/WatchBridge/Sources/WatchRequestHandlers.swift b/submodules/WatchBridge/Sources/WatchRequestHandlers.swift index 1796fe97d7..533cd32c5e 100644 --- a/submodules/WatchBridge/Sources/WatchRequestHandlers.swift +++ b/submodules/WatchBridge/Sources/WatchRequestHandlers.swift @@ -841,7 +841,7 @@ final class WatchPeerSettingsHandler: WatchRequestHandler { var signal: Signal? if let args = subscription as? TGBridgePeerUpdateNotificationSettingsSubscription, let peerId = makePeerIdFromBridgeIdentifier(args.peerId) { - signal = togglePeerMuted(account: context.account, peerId: peerId) + signal = context.engine.peers.togglePeerMuted(peerId: peerId) } else if let args = subscription as? TGBridgePeerUpdateBlockStatusSubscription, let peerId = makePeerIdFromBridgeIdentifier(args.peerId) { signal = context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peerId, isBlocked: args.blocked) }