From 8990df8e70a54a9f22944714550029d6df5c89b8 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Wed, 30 Jun 2021 00:17:20 +0300 Subject: [PATCH] Add forwarding to multiple people simultaneously --- .../Telegram-iOS/en.lproj/Localizable.strings | 4 +- .../Sources/PeerSelectionController.swift | 1 + .../Sources/ChatListSearchContainerNode.swift | 82 +- .../Sources/Node/ChatListItem.swift | 6 +- .../Sources/Node/ChatListNode.swift | 45 +- .../Sources/Node/ChatListNodeEntries.swift | 20 +- .../Sources/ContactListNode.swift | 3 + .../ImportStickerPackControllerNode.swift | 99 +- .../Sources/PresentationStrings.swift | 6256 ++++++++--------- .../Resources/PresentationStrings.mapping | Bin 174357 -> 174466 bytes .../TelegramUI/Sources/ChatController.swift | 77 +- .../Sources/ChatTextInputPanelNode.swift | 27 +- ...CommandMenuChatInputContextPanelNode.swift | 2 +- .../Sources/PeerInfo/PeerInfoScreen.swift | 84 +- .../Sources/PeerSelectionController.swift | 14 + .../Sources/PeerSelectionControllerNode.swift | 336 +- .../PeerSelectionTextInputPanelNode.swift | 935 +++ 17 files changed, 4777 insertions(+), 3214 deletions(-) create mode 100644 submodules/TelegramUI/Sources/PeerSelectionTextInputPanelNode.swift diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index 667e446aa1..0250e2bbd8 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -6504,6 +6504,9 @@ Sorry for the inconvenience."; "ImportStickerPack.StickerCount_many" = "%@ Stickers"; "ImportStickerPack.StickerCount_0" = "%@ Stickers"; "ImportStickerPack.CreateStickerSet" = "Create Sticker Set"; +"ImportStickerPack.CreateNewStickerSet" = "Create a New Sticker Set"; +"ImportStickerPack.AddToExistingStickerSet" = "Add to an Existing Sticker Set"; +"ImportStickerPack.ChooseStickerSet" = "Choose Sticker Set"; "ImportStickerPack.RemoveFromImport" = "Remove From Import"; "ImportStickerPack.ChooseName" = "Choose Name"; "ImportStickerPack.ChooseNameDescription" = "Please choose a name for your set."; @@ -6524,7 +6527,6 @@ Sorry for the inconvenience."; "Conversation.InputMenu" = "Menu"; "Conversation.MessageDoesntExist" = "Message doesn't exist"; -"Settings.CheckPasswordTitle" = "Is %@ still your number?"; "Settings.CheckPasswordText" = "Your account is protected by 2-Step Verification. Do you still remember your password?"; "Settings.KeepPassword" = "Yes, definitely"; "Settings.TryEnterPassword" = "Not sure, let me try"; diff --git a/submodules/AccountContext/Sources/PeerSelectionController.swift b/submodules/AccountContext/Sources/PeerSelectionController.swift index e84b0669b5..90794e83dd 100644 --- a/submodules/AccountContext/Sources/PeerSelectionController.swift +++ b/submodules/AccountContext/Sources/PeerSelectionController.swift @@ -57,6 +57,7 @@ public final class PeerSelectionControllerParams { public protocol PeerSelectionController: ViewController { var peerSelected: ((Peer) -> Void)? { get set } + var multiplePeersSelected: (([Peer], NSAttributedString) -> Void)? { get set } var inProgress: Bool { get set } var customDismiss: (() -> Void)? { get set } } diff --git a/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift b/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift index 5da162da88..b27856de7b 100644 --- a/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift +++ b/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift @@ -30,6 +30,7 @@ import InstantPageUI import ChatInterfaceState import ShareController import UndoUI +import TextFormat private enum ChatListTokenId: Int32 { case filter @@ -107,6 +108,8 @@ public final class ChatListSearchContainerNode: SearchDisplayControllerContentNo private var suggestedFilters: [ChatListSearchFilter]? private let suggestedFiltersDisposable = MetaDisposable() + private var shareStatusDisposable: MetaDisposable? + private var stateValue = ChatListSearchContainerNodeSearchState() private let statePromise = ValuePromise() @@ -415,6 +418,7 @@ public final class ChatListSearchContainerNode: SearchDisplayControllerContentNo self.activeActionDisposable.dispose() self.presentationDataDisposable?.dispose() self.suggestedFiltersDisposable.dispose() + self.shareStatusDisposable?.dispose() } private func updateState(_ f: (ChatListSearchContainerNodeSearchState) -> ChatListSearchContainerNodeSearchState) { @@ -902,7 +906,83 @@ public final class ChatListSearchContainerNode: SearchDisplayControllerContentNo } }).start() - let peerSelectionController = self.context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: self.context, filter: [.onlyWriteable, .excludeDisabled])) + let peerSelectionController = self.context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: self.context, filter: [.onlyWriteable, .excludeDisabled], multipleSelection: true)) + peerSelectionController.multiplePeersSelected = { [weak self, weak peerSelectionController] peers, messageText in + guard let strongSelf = self, let strongController = peerSelectionController else { + return + } + strongController.dismiss() + + for peer in peers { + var result: [EnqueueMessage] = [] + if messageText.string.count > 0 { + let inputText = convertMarkdownToAttributes(messageText) + for text in breakChatInputText(trimChatInputText(inputText)) { + if text.length != 0 { + var attributes: [MessageAttribute] = [] + let entities = generateTextEntities(text.string, enabledTypes: .all, currentEntities: generateChatInputTextEntities(text)) + if !entities.isEmpty { + attributes.append(TextEntitiesMessageAttribute(entities: entities)) + } + result.append(.message(text: text.string, attributes: attributes, mediaReference: nil, replyToMessageId: nil, localGroupingKey: nil, correlationId: nil)) + } + } + } + + result.append(contentsOf: messageIds.map { messageId -> EnqueueMessage in + return .forward(source: messageId, grouping: .auto, attributes: [], correlationId: nil) + }) + + let _ = (enqueueMessages(account: strongSelf.context.account, peerId: peer.id, messages: result) + |> deliverOnMainQueue).start(next: { messageIds in + if let strongSelf = self { + let signals: [Signal] = messageIds.compactMap({ id -> Signal? in + guard let id = id else { + return nil + } + return strongSelf.context.account.pendingMessageManager.pendingMessageStatus(id) + |> mapToSignal { status, _ -> Signal in + if status != nil { + return .never() + } else { + return .single(true) + } + } + |> take(1) + }) + if strongSelf.shareStatusDisposable == nil { + strongSelf.shareStatusDisposable = MetaDisposable() + } + strongSelf.shareStatusDisposable?.set((combineLatest(signals) + |> deliverOnMainQueue).start()) + } + }) + + let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 } + let text: String + var savedMessages = false + if peers.count == 1, let peerId = peers.first?.id, peerId == strongSelf.context.account.peerId { + text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_SavedMessages_One : presentationData.strings.Conversation_ForwardTooltip_SavedMessages_Many + savedMessages = true + } else { + if peers.count == 1, let peer = peers.first { + let peerName = peer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_Chat_One(peerName).0 : presentationData.strings.Conversation_ForwardTooltip_Chat_Many(peerName).0 + } else if peers.count == 2, let firstPeer = peers.first, let secondPeer = peers.last { + let firstPeerName = firstPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : firstPeer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + let secondPeerName = secondPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : secondPeer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_TwoChats_One(firstPeerName, secondPeerName).0 : presentationData.strings.Conversation_ForwardTooltip_TwoChats_Many(firstPeerName, secondPeerName).0 + } else if let peer = peers.first { + let peerName = peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_ManyChats_One(peerName, "\(peers.count - 1)").0 : presentationData.strings.Conversation_ForwardTooltip_ManyChats_Many(peerName, "\(peers.count - 1)").0 + } else { + text = "" + } + } + + strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .forward(savedMessages: savedMessages, text: text), elevatedLayout: false, animateInAsReplacement: true, action: { _ in return false }), in: .current) + } + } peerSelectionController.peerSelected = { [weak self, weak peerSelectionController] peer in let peerId = peer.id if let strongSelf = self, let _ = peerSelectionController { diff --git a/submodules/ChatListUI/Sources/Node/ChatListItem.swift b/submodules/ChatListUI/Sources/Node/ChatListItem.swift index 0a45d31b18..09a433d5f6 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListItem.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListItem.swift @@ -773,9 +773,9 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { guard let item = self.item, item.editing else { return } - if case let .peer(_, _, _, _, _, _, _, _, promoInfo, _, _, _) = item.content { - if promoInfo == nil { - item.interaction.togglePeerSelected(item.index.messageIndex.id.peerId) + if case let .peer(_, peer, _, _, _, _, _, _, promoInfo, _, _, _) = item.content { + if promoInfo == nil, let mainPeer = peer.chatMainPeer { + item.interaction.togglePeerSelected(mainPeer) } } } diff --git a/submodules/ChatListUI/Sources/Node/ChatListNode.swift b/submodules/ChatListUI/Sources/Node/ChatListNode.swift index b12a6f3461..60711e2d13 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListNode.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListNode.swift @@ -51,7 +51,7 @@ public final class ChatListNodeInteraction { let activateSearch: () -> Void let peerSelected: (Peer, ChatListNodeEntryPromoInfo?) -> Void let disabledPeerSelected: (Peer) -> Void - let togglePeerSelected: (PeerId) -> Void + let togglePeerSelected: (Peer) -> Void let additionalCategorySelected: (Int) -> Void let messageSelected: (Peer, Message, ChatListNodeEntryPromoInfo?) -> Void let groupSelected: (PeerGroupId) -> Void @@ -70,7 +70,7 @@ public final class ChatListNodeInteraction { public var searchTextHighightState: String? var highlightedChatLocation: ChatListHighlightedLocation? - public init(activateSearch: @escaping () -> Void, peerSelected: @escaping (Peer, ChatListNodeEntryPromoInfo?) -> Void, disabledPeerSelected: @escaping (Peer) -> Void, togglePeerSelected: @escaping (PeerId) -> Void, additionalCategorySelected: @escaping (Int) -> Void, messageSelected: @escaping (Peer, Message, ChatListNodeEntryPromoInfo?) -> Void, groupSelected: @escaping (PeerGroupId) -> Void, addContact: @escaping (String) -> Void, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, setItemPinned: @escaping (PinnedItemId, Bool) -> Void, setPeerMuted: @escaping (PeerId, Bool) -> Void, deletePeer: @escaping (PeerId, Bool) -> Void, updatePeerGrouping: @escaping (PeerId, Bool) -> Void, togglePeerMarkedUnread: @escaping (PeerId, Bool) -> Void, toggleArchivedFolderHiddenByDefault: @escaping () -> Void, hidePsa: @escaping (PeerId) -> Void, activateChatPreview: @escaping (ChatListItem, ASDisplayNode, ContextGesture?) -> Void, present: @escaping (ViewController) -> Void) { + public init(activateSearch: @escaping () -> Void, peerSelected: @escaping (Peer, ChatListNodeEntryPromoInfo?) -> Void, disabledPeerSelected: @escaping (Peer) -> Void, togglePeerSelected: @escaping (Peer) -> Void, additionalCategorySelected: @escaping (Int) -> Void, messageSelected: @escaping (Peer, Message, ChatListNodeEntryPromoInfo?) -> Void, groupSelected: @escaping (PeerGroupId) -> Void, addContact: @escaping (String) -> Void, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, setItemPinned: @escaping (PinnedItemId, Bool) -> Void, setPeerMuted: @escaping (PeerId, Bool) -> Void, deletePeer: @escaping (PeerId, Bool) -> Void, updatePeerGrouping: @escaping (PeerId, Bool) -> Void, togglePeerMarkedUnread: @escaping (PeerId, Bool) -> Void, toggleArchivedFolderHiddenByDefault: @escaping () -> Void, hidePsa: @escaping (PeerId) -> Void, activateChatPreview: @escaping (ChatListItem, ASDisplayNode, ContextGesture?) -> Void, present: @escaping (ViewController) -> Void) { self.activateSearch = activateSearch self.peerSelected = peerSelected self.disabledPeerSelected = disabledPeerSelected @@ -111,13 +111,17 @@ public struct ChatListNodeState: Equatable { public var archiveShouldBeTemporaryRevealed: Bool public var selectedAdditionalCategoryIds: Set public var hiddenPsaPeerId: PeerId? + public var foundPeers: [Peer] + public var selectedPeerMap: [PeerId: Peer] - public init(presentationData: ChatListPresentationData, editing: Bool, peerIdWithRevealedOptions: PeerId?, selectedPeerIds: Set, selectedAdditionalCategoryIds: Set, peerInputActivities: ChatListNodePeerInputActivities?, pendingRemovalPeerIds: Set, pendingClearHistoryPeerIds: Set, archiveShouldBeTemporaryRevealed: Bool, hiddenPsaPeerId: PeerId?) { + public init(presentationData: ChatListPresentationData, editing: Bool, peerIdWithRevealedOptions: PeerId?, selectedPeerIds: Set, foundPeers: [Peer], selectedPeerMap: [PeerId: Peer], selectedAdditionalCategoryIds: Set, peerInputActivities: ChatListNodePeerInputActivities?, pendingRemovalPeerIds: Set, pendingClearHistoryPeerIds: Set, archiveShouldBeTemporaryRevealed: Bool, hiddenPsaPeerId: PeerId?) { self.presentationData = presentationData self.editing = editing self.peerIdWithRevealedOptions = peerIdWithRevealedOptions self.selectedPeerIds = selectedPeerIds self.selectedAdditionalCategoryIds = selectedAdditionalCategoryIds + self.foundPeers = foundPeers + self.selectedPeerMap = selectedPeerMap self.peerInputActivities = peerInputActivities self.pendingRemovalPeerIds = pendingRemovalPeerIds self.pendingClearHistoryPeerIds = pendingClearHistoryPeerIds @@ -138,6 +142,12 @@ public struct ChatListNodeState: Equatable { if lhs.selectedPeerIds != rhs.selectedPeerIds { return false } + if arePeerArraysEqual(lhs.foundPeers, rhs.foundPeers) { + return false + } + if arePeerDictionariesEqual(lhs.selectedPeerMap, rhs.selectedPeerMap) { + return false + } if lhs.selectedAdditionalCategoryIds != rhs.selectedAdditionalCategoryIds { return false } @@ -283,7 +293,11 @@ private func mappedInsertEntries(context: AccountContext, nodeInteraction: ChatL return ListViewInsertItem(index: entry.index, previousIndex: entry.previousIndex, item: ContactsPeerItem(presentationData: ItemListPresentationData(theme: presentationData.theme, fontSize: presentationData.fontSize, strings: presentationData.strings), sortOrder: presentationData.nameSortOrder, displayOrder: presentationData.nameDisplayOrder, context: context, peerMode: .generalSearch, peer: .peer(peer: itemPeer, chatPeer: chatPeer), status: status, enabled: enabled, selection: editing ? .selectable(selected: selected) : .none, editing: ContactsPeerItemEditing(editable: false, editing: false, revealed: false), index: nil, header: header, action: { _ in if let chatPeer = chatPeer { - nodeInteraction.peerSelected(chatPeer, nil) + if editing { + nodeInteraction.togglePeerSelected(chatPeer) + } else { + nodeInteraction.peerSelected(chatPeer, nil) + } } }, disabledAction: { _ in if let chatPeer = chatPeer { @@ -360,7 +374,11 @@ private func mappedUpdateEntries(context: AccountContext, nodeInteraction: ChatL return ListViewUpdateItem(index: entry.index, previousIndex: entry.previousIndex, item: ContactsPeerItem(presentationData: ItemListPresentationData(theme: presentationData.theme, fontSize: presentationData.fontSize, strings: presentationData.strings), sortOrder: presentationData.nameSortOrder, displayOrder: presentationData.nameDisplayOrder, context: context, peerMode: .generalSearch, peer: .peer(peer: itemPeer, chatPeer: chatPeer), status: status, enabled: enabled, selection: editing ? .selectable(selected: selected) : .none, editing: ContactsPeerItemEditing(editable: false, editing: false, revealed: false), index: nil, header: header, action: { _ in if let chatPeer = chatPeer { - nodeInteraction.peerSelected(chatPeer, nil) + if editing { + nodeInteraction.togglePeerSelected(chatPeer) + } else { + nodeInteraction.peerSelected(chatPeer, nil) + } } }, disabledAction: { _ in if let chatPeer = chatPeer { @@ -545,6 +563,7 @@ public final class ChatListNode: ListView { let preloadItems = Promise<[ChatHistoryPreloadItem]>([]) var didBeginSelectingChats: (() -> Void)? + public var selectionCountChanged: ((Int) -> Void)? public init(context: AccountContext, groupId: PeerGroupId, chatListFilter: ChatListFilter? = nil, previewing: Bool, fillPreloadItems: Bool, mode: ChatListNodeMode, theme: PresentationTheme, fontSize: PresentationFontSize, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameSortOrder: PresentationPersonNameOrder, nameDisplayOrder: PresentationPersonNameOrder, disableAnimations: Bool) { self.context = context @@ -559,7 +578,7 @@ public final class ChatListNode: ListView { isSelecting = true } - self.currentState = ChatListNodeState(presentationData: ChatListPresentationData(theme: theme, fontSize: fontSize, strings: strings, dateTimeFormat: dateTimeFormat, nameSortOrder: nameSortOrder, nameDisplayOrder: nameDisplayOrder, disableAnimations: disableAnimations), editing: isSelecting, peerIdWithRevealedOptions: nil, selectedPeerIds: Set(), selectedAdditionalCategoryIds: Set(), peerInputActivities: nil, pendingRemovalPeerIds: Set(), pendingClearHistoryPeerIds: Set(), archiveShouldBeTemporaryRevealed: false, hiddenPsaPeerId: nil) + self.currentState = ChatListNodeState(presentationData: ChatListPresentationData(theme: theme, fontSize: fontSize, strings: strings, dateTimeFormat: dateTimeFormat, nameSortOrder: nameSortOrder, nameDisplayOrder: nameDisplayOrder, disableAnimations: disableAnimations), editing: isSelecting, peerIdWithRevealedOptions: nil, selectedPeerIds: Set(), foundPeers: [], selectedPeerMap: [:], selectedAdditionalCategoryIds: Set(), peerInputActivities: nil, pendingRemovalPeerIds: Set(), pendingClearHistoryPeerIds: Set(), archiveShouldBeTemporaryRevealed: false, hiddenPsaPeerId: nil) self.statePromise = ValuePromise(self.currentState, ignoreRepeated: true) self.theme = theme @@ -583,22 +602,26 @@ public final class ChatListNode: ListView { if let strongSelf = self, let disabledPeerSelected = strongSelf.disabledPeerSelected { disabledPeerSelected(peer) } - }, togglePeerSelected: { [weak self] peerId in + }, togglePeerSelected: { [weak self] peer in var didBeginSelecting = false + var count = 0 self?.updateState { state in var state = state - if state.selectedPeerIds.contains(peerId) { - state.selectedPeerIds.remove(peerId) + if state.selectedPeerIds.contains(peer.id) { + state.selectedPeerIds.remove(peer.id) } else { if state.selectedPeerIds.count < 100 { if state.selectedPeerIds.isEmpty { didBeginSelecting = true } - state.selectedPeerIds.insert(peerId) + state.selectedPeerIds.insert(peer.id) + state.selectedPeerMap[peer.id] = peer } } + count = state.selectedPeerIds.count return state } + self?.selectionCountChanged?(count) if didBeginSelecting { self?.didBeginSelectingChats?() } @@ -772,7 +795,7 @@ public final class ChatListNode: ListView { let previousHideArchivedFolderByDefaultValue = previousHideArchivedFolderByDefault.swap(hideArchivedFolderByDefault) - let (rawEntries, isLoading) = chatListNodeEntriesForView(update.view, state: state, savedMessagesPeer: savedMessagesPeer, hideArchivedFolderByDefault: hideArchivedFolderByDefault, displayArchiveIntro: displayArchiveIntro, mode: mode) + let (rawEntries, isLoading) = chatListNodeEntriesForView(update.view, state: state, savedMessagesPeer: savedMessagesPeer, foundPeers: state.foundPeers, hideArchivedFolderByDefault: hideArchivedFolderByDefault, displayArchiveIntro: displayArchiveIntro, mode: mode) let entries = rawEntries.filter { entry in switch entry { case let .PeerEntry(_, _, _, _, _, _, peer, _, _, _, _, _, _, _, _, _): diff --git a/submodules/ChatListUI/Sources/Node/ChatListNodeEntries.swift b/submodules/ChatListUI/Sources/Node/ChatListNodeEntries.swift index 1862609e7b..96eb178e95 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListNodeEntries.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListNodeEntries.swift @@ -282,7 +282,7 @@ private func offsetPinnedIndex(_ index: ChatListIndex, offset: UInt16) -> ChatLi } } -func chatListNodeEntriesForView(_ view: ChatListView, state: ChatListNodeState, savedMessagesPeer: Peer?, hideArchivedFolderByDefault: Bool, displayArchiveIntro: Bool, mode: ChatListNodeMode) -> (entries: [ChatListNodeEntry], loading: Bool) { +func chatListNodeEntriesForView(_ view: ChatListView, state: ChatListNodeState, savedMessagesPeer: Peer?, foundPeers: [Peer], hideArchivedFolderByDefault: Bool, displayArchiveIntro: Bool, mode: ChatListNodeMode) -> (entries: [ChatListNodeEntry], loading: Bool) { var result: [ChatListNodeEntry] = [] var pinnedIndexOffset: UInt16 = 0 @@ -299,6 +299,11 @@ func chatListNodeEntriesForView(_ view: ChatListView, state: ChatListNodeState, return item.info.peerId != state.hiddenPsaPeerId } + var foundPeerIds = Set() + for peer in foundPeers { + foundPeerIds.insert(peer.id) + } + if view.laterIndex == nil && savedMessagesPeer == nil { pinnedIndexOffset += UInt16(filteredAdditionalItemEntries.count) } @@ -306,7 +311,7 @@ func chatListNodeEntriesForView(_ view: ChatListView, state: ChatListNodeState, loop: for entry in view.entries { switch entry { case let .MessageEntry(index, messages, combinedReadState, isRemovedFromTotalUnreadCount, embeddedState, peer, peerPresence, summaryInfo, hasFailed, isContact): - if let savedMessagesPeer = savedMessagesPeer, savedMessagesPeer.id == index.messageIndex.id.peerId { + if let savedMessagesPeer = savedMessagesPeer, savedMessagesPeer.id == index.messageIndex.id.peerId || foundPeerIds.contains(index.messageIndex.id.peerId) { continue loop } if state.pendingRemovalPeerIds.contains(index.messageIndex.id.peerId) { @@ -331,6 +336,17 @@ func chatListNodeEntriesForView(_ view: ChatListView, state: ChatListNodeState, var pinningIndex: UInt16 = UInt16(pinnedIndexOffset == 0 ? 0 : (pinnedIndexOffset - 1)) if let savedMessagesPeer = savedMessagesPeer { + if !foundPeers.isEmpty { + var foundPinningIndex: UInt16 = UInt16(foundPeers.count) + for peer in foundPeers.reversed() { + let messageIndex = MessageIndex(id: MessageId(peerId: peer.id, namespace: 0, id: 0), timestamp: 1) + result.append(.PeerEntry(index: ChatListIndex(pinningIndex: foundPinningIndex, messageIndex: messageIndex), presentationData: state.presentationData, messages: [], readState: nil, isRemovedFromTotalUnreadCount: false, embeddedInterfaceState: nil, peer: RenderedPeer(peerId: peer.id, peers: SimpleDictionary([peer.id: peer])), presence: nil, summaryInfo: ChatListMessageTagSummaryInfo(), editing: state.editing, hasActiveRevealControls: false, selected: state.selectedPeerIds.contains(peer.id), inputActivities: nil, promoInfo: nil, hasFailedMessages: false, isContact: false)) + if foundPinningIndex != 0 { + foundPinningIndex -= 1 + } + } + } + result.append(.PeerEntry(index: ChatListIndex.absoluteUpperBound.predecessor, presentationData: state.presentationData, messages: [], readState: nil, isRemovedFromTotalUnreadCount: false, embeddedInterfaceState: nil, peer: RenderedPeer(peerId: savedMessagesPeer.id, peers: SimpleDictionary([savedMessagesPeer.id: savedMessagesPeer])), presence: nil, summaryInfo: ChatListMessageTagSummaryInfo(), editing: state.editing, hasActiveRevealControls: false, selected: false, inputActivities: nil, promoInfo: nil, hasFailedMessages: false, isContact: false)) } else { if !filteredAdditionalItemEntries.isEmpty { diff --git a/submodules/ContactListUI/Sources/ContactListNode.swift b/submodules/ContactListUI/Sources/ContactListNode.swift index c6c6b9ffa6..0149b4b795 100644 --- a/submodules/ContactListUI/Sources/ContactListNode.swift +++ b/submodules/ContactListUI/Sources/ContactListNode.swift @@ -874,11 +874,14 @@ public final class ContactListNode: ASDisplayNode { private var authorizationNode: PermissionContentNode private let displayPermissionPlaceholder: Bool + public var multipleSelection = false + public init(context: AccountContext, presentation: Signal, filters: [ContactListFilter] = [.excludeSelf], selectionState: ContactListNodeGroupSelectionState? = nil, displayPermissionPlaceholder: Bool = true, displaySortOptions: Bool = false, displayCallIcons: Bool = false, contextAction: ((Peer, ASDisplayNode, ContextGesture?) -> Void)? = nil, isSearch: Bool = false, multipleSelection: Bool = false) { self.context = context self.filters = filters self.displayPermissionPlaceholder = displayPermissionPlaceholder self.contextAction = contextAction + self.multipleSelection = multipleSelection let presentationData = context.sharedContext.currentPresentationData.with { $0 } self.presentationData = presentationData diff --git a/submodules/ImportStickerPackUI/Sources/ImportStickerPackControllerNode.swift b/submodules/ImportStickerPackUI/Sources/ImportStickerPackControllerNode.swift index 9cf9bd85d2..6e6aebae5e 100644 --- a/submodules/ImportStickerPackUI/Sources/ImportStickerPackControllerNode.swift +++ b/submodules/ImportStickerPackUI/Sources/ImportStickerPackControllerNode.swift @@ -69,8 +69,10 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll private let contentContainerNode: ASDisplayNode private let contentBackgroundNode: ASImageNode private let contentGridNode: GridNode - private let installActionButtonNode: ASButtonNode - private let installActionSeparatorNode: ASDisplayNode + private let createActionButtonNode: ASButtonNode + private let createActionSeparatorNode: ASDisplayNode + private let addToExistingActionButtonNode: ASButtonNode + private let addToExistingActionSeparatorNode: ASDisplayNode private let contentTitleNode: ImmediateTextNode private let contentSeparatorNode: ASDisplayNode @@ -128,9 +130,13 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll self.contentGridNode = GridNode() - self.installActionButtonNode = HighlightTrackingButtonNode() - self.installActionButtonNode.displaysAsynchronously = false - self.installActionButtonNode.titleNode.displaysAsynchronously = false + self.createActionButtonNode = HighlightTrackingButtonNode() + self.createActionButtonNode.displaysAsynchronously = false + self.createActionButtonNode.titleNode.displaysAsynchronously = false + + self.addToExistingActionButtonNode = HighlightTrackingButtonNode() + self.addToExistingActionButtonNode.displaysAsynchronously = false + self.addToExistingActionButtonNode.titleNode.displaysAsynchronously = false self.contentTitleNode = ImmediateTextNode() self.contentTitleNode.displaysAsynchronously = false @@ -140,9 +146,13 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll self.contentSeparatorNode = ASDisplayNode() self.contentSeparatorNode.isLayerBacked = true - self.installActionSeparatorNode = ASDisplayNode() - self.installActionSeparatorNode.isLayerBacked = true - self.installActionSeparatorNode.displaysAsynchronously = false + self.createActionSeparatorNode = ASDisplayNode() + self.createActionSeparatorNode.isLayerBacked = true + self.createActionSeparatorNode.displaysAsynchronously = false + + self.addToExistingActionSeparatorNode = ASDisplayNode() + self.addToExistingActionSeparatorNode.isLayerBacked = true + self.addToExistingActionSeparatorNode.displaysAsynchronously = false self.radialStatus = RadialStatusNode(backgroundNodeColor: .clear) self.radialStatus.alpha = 0.0 @@ -193,14 +203,17 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll self.wrappingScrollNode.addSubnode(self.cancelButtonNode) self.cancelButtonNode.addTarget(self, action: #selector(self.cancelButtonPressed), forControlEvents: .touchUpInside) - self.installActionButtonNode.addTarget(self, action: #selector(self.installActionButtonPressed), forControlEvents: .touchUpInside) + self.createActionButtonNode.addTarget(self, action: #selector(self.createActionButtonPressed), forControlEvents: .touchUpInside) + self.addToExistingActionButtonNode.addTarget(self, action: #selector(self.addToExistingActionButtonPressed), forControlEvents: .touchUpInside) self.wrappingScrollNode.addSubnode(self.contentBackgroundNode) self.wrappingScrollNode.addSubnode(self.contentContainerNode) self.contentContainerNode.addSubnode(self.contentGridNode) - self.contentContainerNode.addSubnode(self.installActionSeparatorNode) - self.contentContainerNode.addSubnode(self.installActionButtonNode) + self.contentContainerNode.addSubnode(self.createActionSeparatorNode) + self.contentContainerNode.addSubnode(self.createActionButtonNode) + self.contentContainerNode.addSubnode(self.addToExistingActionSeparatorNode) + self.contentContainerNode.addSubnode(self.addToExistingActionButtonNode) self.wrappingScrollNode.addSubnode(self.contentTitleNode) self.wrappingScrollNode.addSubnode(self.contentSeparatorNode) @@ -211,7 +224,8 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll self.wrappingScrollNode.addSubnode(self.progressText) self.wrappingScrollNode.addSubnode(self.infoText) - self.installActionButtonNode.setTitle(self.presentationData.strings.ImportStickerPack_CreateStickerSet, with: Font.regular(20.0), with: self.presentationData.theme.actionSheet.controlAccentColor, for: .normal) + self.createActionButtonNode.setTitle(self.presentationData.strings.ImportStickerPack_CreateNewStickerSet, with: Font.regular(20.0), with: self.presentationData.theme.actionSheet.controlAccentColor, for: .normal) + self.addToExistingActionButtonNode.setTitle(self.presentationData.strings.ImportStickerPack_AddToExistingStickerSet, with: Font.regular(20.0), with: self.presentationData.theme.actionSheet.controlAccentColor, for: .normal) self.contentGridNode.presentationLayoutUpdated = { [weak self] presentationLayout, transition in self?.gridPresentationLayoutUpdated(presentationLayout, transition: transition) @@ -283,6 +297,18 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll self.presentationData = presentationData let theme = presentationData.theme + let solidBackground = generateImage(CGSize(width: 1.0, height: 1.0), rotatedContext: { size, context in + context.clear(CGRect(origin: CGPoint(), size: size)) + context.setFillColor(theme.actionSheet.opaqueItemBackgroundColor.cgColor) + context.fill(CGRect(origin: CGPoint(), size: CGSize(width: size.width, height: size.height))) + })?.stretchableImage(withLeftCapWidth: 16, topCapHeight: 1) + + let highlightedSolidBackground = generateImage(CGSize(width: 1.0, height: 1.0), rotatedContext: { size, context in + context.clear(CGRect(origin: CGPoint(), size: size)) + context.setFillColor(theme.actionSheet.opaqueItemHighlightedBackgroundColor.cgColor) + context.fill(CGRect(origin: CGPoint(), size: CGSize(width: size.width, height: size.height))) + })?.stretchableImage(withLeftCapWidth: 16, topCapHeight: 1) + let halfRoundedBackground = generateImage(CGSize(width: 32.0, height: 32.0), rotatedContext: { size, context in context.clear(CGRect(origin: CGPoint(), size: size)) context.setFillColor(theme.actionSheet.opaqueItemBackgroundColor.cgColor) @@ -305,12 +331,21 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll self.cancelButtonNode.setBackgroundImage(roundedBackground, for: .normal) self.cancelButtonNode.setBackgroundImage(highlightedRoundedBackground, for: .highlighted) - self.installActionButtonNode.setBackgroundImage(halfRoundedBackground, for: .normal) - self.installActionButtonNode.setBackgroundImage(highlightedHalfRoundedBackground, for: .highlighted) - + if self.addToExistingActionButtonNode.supernode != nil { + self.createActionButtonNode.setBackgroundImage(solidBackground, for: .normal) + self.createActionButtonNode.setBackgroundImage(highlightedSolidBackground, for: .highlighted) + } else { + self.createActionButtonNode.setBackgroundImage(halfRoundedBackground, for: .normal) + self.createActionButtonNode.setBackgroundImage(highlightedHalfRoundedBackground, for: .highlighted) + } + + self.addToExistingActionButtonNode.setBackgroundImage(halfRoundedBackground, for: .normal) + self.addToExistingActionButtonNode.setBackgroundImage(highlightedHalfRoundedBackground, for: .highlighted) + self.contentSeparatorNode.backgroundColor = presentationData.theme.actionSheet.opaqueItemSeparatorColor - self.installActionSeparatorNode.backgroundColor = presentationData.theme.actionSheet.opaqueItemSeparatorColor - + self.createActionSeparatorNode.backgroundColor = presentationData.theme.actionSheet.opaqueItemSeparatorColor + self.addToExistingActionSeparatorNode.backgroundColor = presentationData.theme.actionSheet.opaqueItemSeparatorColor + self.cancelButtonNode.setTitle(presentationData.strings.Common_Cancel, with: Font.medium(20.0), with: presentationData.theme.actionSheet.standardActionTextColor, for: .normal) self.contentTitleNode.linkHighlightColor = presentationData.theme.actionSheet.controlAccentColor.withAlphaComponent(0.5) @@ -330,6 +365,8 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll insets.top = max(10.0, insets.top) let cleanInsets = layout.insets(options: [.statusBar]) + let hasAddToExistingButton = self.addToExistingActionButtonNode.supernode != nil + transition.updateFrame(node: self.dimNode, frame: CGRect(origin: CGPoint(), size: layout.size)) var bottomInset: CGFloat = 10.0 + cleanInsets.bottom @@ -395,17 +432,20 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll let minimallyRevealedRowCount: CGFloat = 3.5 let initiallyRevealedRowCount = min(minimallyRevealedRowCount, CGFloat(rowCount)) - var bottomGridInset = buttonHeight + var bottomGridInset = hasAddToExistingButton ? 2.0 * buttonHeight : buttonHeight if let _ = self.progress { bottomGridInset += 210.0 } let topInset = max(0.0, contentFrame.size.height - initiallyRevealedRowCount * itemWidth - titleAreaHeight - bottomGridInset) transition.updateFrame(node: self.contentContainerNode, frame: contentContainerFrame) - let installButtonOffset = buttonHeight - transition.updateFrame(node: self.installActionButtonNode, frame: CGRect(origin: CGPoint(x: 0.0, y: contentContainerFrame.size.height - installButtonOffset), size: CGSize(width: contentContainerFrame.size.width, height: buttonHeight))) - transition.updateFrame(node: self.installActionSeparatorNode, frame: CGRect(origin: CGPoint(x: 0.0, y: contentContainerFrame.size.height - installButtonOffset - UIScreenPixel), size: CGSize(width: contentContainerFrame.size.width, height: UIScreenPixel))) + let createButtonOffset = hasAddToExistingButton ? 2.0 * buttonHeight : buttonHeight + transition.updateFrame(node: self.createActionButtonNode, frame: CGRect(origin: CGPoint(x: 0.0, y: contentContainerFrame.size.height - createButtonOffset), size: CGSize(width: contentContainerFrame.size.width, height: buttonHeight))) + transition.updateFrame(node: self.createActionSeparatorNode, frame: CGRect(origin: CGPoint(x: 0.0, y: contentContainerFrame.size.height - createButtonOffset - UIScreenPixel), size: CGSize(width: contentContainerFrame.size.width, height: UIScreenPixel))) + transition.updateFrame(node: self.addToExistingActionButtonNode, frame: CGRect(origin: CGPoint(x: 0.0, y: contentContainerFrame.size.height - buttonHeight), size: CGSize(width: contentContainerFrame.size.width, height: buttonHeight))) + transition.updateFrame(node: self.addToExistingActionSeparatorNode, frame: CGRect(origin: CGPoint(x: 0.0, y: contentContainerFrame.size.height - buttonHeight - UIScreenPixel), size: CGSize(width: contentContainerFrame.size.width, height: UIScreenPixel))) + let gridSize = CGSize(width: contentFrame.size.width, height: max(32.0, contentFrame.size.height - titleAreaHeight)) self.contentGridNode.transaction(GridNodeTransaction(deleteItems: transaction?.deletions ?? [], insertItems: transaction?.insertions ?? [], updateItems: transaction?.updates ?? [], scrollToItem: nil, updateLayout: GridNodeUpdateLayout(layout: GridNodeLayout(size: gridSize, insets: UIEdgeInsets(top: topInset, left: 0.0, bottom: bottomGridInset, right: 0.0), preloadSize: 80.0, type: .fixed(itemSize: CGSize(width: itemWidth, height: itemWidth), fillWidth: nil, lineSpacing: 0.0, itemSpacing: nil)), transition: transition), itemTransition: .immediate, stationaryItems: .none, updateFirstIndexInSectionOffset: nil), completion: { _ in }) @@ -463,9 +503,11 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll transition.updateAlpha(node: self.infoText, alpha: 1.0) transition.updateAlpha(node: self.radialCheck, alpha: 1.0) transition.updateAlpha(node: self.radialStatusBackground, alpha: 1.0) - transition.updateAlpha(node: self.installActionButtonNode, alpha: 0.0) + transition.updateAlpha(node: self.createActionButtonNode, alpha: 0.0) transition.updateAlpha(node: self.contentSeparatorNode, alpha: 0.0) - transition.updateAlpha(node: self.installActionSeparatorNode, alpha: 0.0) + transition.updateAlpha(node: self.createActionSeparatorNode, alpha: 0.0) + transition.updateAlpha(node: self.addToExistingActionButtonNode, alpha: 0.0) + transition.updateAlpha(node: self.addToExistingActionSeparatorNode, alpha: 0.0) } self.radialStatusText.attributedText = NSAttributedString(string: "\(Int(effectiveProgress * 100.0))%", font: Font.with(size: floor(36.0 * maxK), design: .round, weight: .semibold), textColor: self.presentationData.theme.list.itemPrimaryTextColor) @@ -660,7 +702,7 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll })) } - @objc func installActionButtonPressed() { + @objc private func createActionButtonPressed() { var proceedImpl: ((String, String?) -> Void)? let titleController = importStickerPackTitleController(context: self.context, title: self.presentationData.strings.ImportStickerPack_ChooseName, text: self.presentationData.strings.ImportStickerPack_ChooseNameDescription, placeholder: self.presentationData.strings.ImportStickerPack_NamePlaceholder, value: nil, maxLength: 128, apply: { [weak self] title in if let strongSelf = self, let title = title { @@ -688,6 +730,10 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll self.present?(titleController, nil) } + @objc private func addToExistingActionButtonPressed() { + + } + func animateIn() { self.dimNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.4) @@ -770,7 +816,8 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll self.contentGridNode.layer.animateAlpha(from: self.contentGridNode.alpha, to: 1.0, duration: 0.2) let buttonTransition: ContainedViewLayoutTransition = .animated(duration: 0.3, curve: .easeInOut) - buttonTransition.updateAlpha(node: self.installActionButtonNode, alpha: self.stickerPackReady ? 1.0 : 0.3) + buttonTransition.updateAlpha(node: self.createActionButtonNode, alpha: self.stickerPackReady ? 1.0 : 0.3) + buttonTransition.updateAlpha(node: self.addToExistingActionButtonNode, alpha: self.stickerPackReady ? 1.0 : 0.3) self.containerLayoutUpdated(layout, navigationBarHeight: navigationBarHeight, transition: transition) @@ -782,7 +829,7 @@ final class ImportStickerPackControllerNode: ViewControllerTracingNode, UIScroll } override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { - if let result = self.installActionButtonNode.hitTest(self.installActionButtonNode.convert(point, from: self), with: event) { + if let result = self.createActionButtonNode.hitTest(self.createActionButtonNode.convert(point, from: self), with: event) { return result } if self.bounds.contains(point) { diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 0f0f49d475..4260e1dbcb 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -2196,896 +2196,894 @@ public final class PresentationStrings: Equatable { } public var EditTheme_ErrorInvalidCharacters: String { return self._s[1842]! } public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[1843]! } - public func Settings_CheckPasswordTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1844]!, self._r[1844]!, [_0]) - } - 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 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 func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1849]!, self._r[1849]!, [_0]) + return formatWithArgumentRanges(self._s[1848]!, self._r[1848]!, [_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[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 func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1869]!, self._r[1869]!, [_0]) + return formatWithArgumentRanges(self._s[1868]!, self._r[1868]!, [_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[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 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[1878]!, self._r[1878]!, [_1, _2]) } - public var GroupInfo_GroupHistoryVisible: String { return self._s[1880]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[1879]! } public func PUSH_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1881]!, self._r[1881]!, [_1]) + return formatWithArgumentRanges(self._s[1880]!, self._r[1880]!, [_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[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 func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1891]!, self._r[1891]!, [_0]) + return formatWithArgumentRanges(self._s[1890]!, self._r[1890]!, [_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[1891]! } + public var Paint_Outlined: String { return self._s[1892]! } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1894]!, self._r[1894]!, [_0]) + return formatWithArgumentRanges(self._s[1893]!, self._r[1893]!, [_0]) } public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1895]!, self._r[1895]!, [_0]) + return formatWithArgumentRanges(self._s[1894]!, self._r[1894]!, [_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 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 Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1932]!, self._r[1932]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1931]!, self._r[1931]!, [_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[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 func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1941]!, self._r[1941]!, [_0]) + return formatWithArgumentRanges(self._s[1940]!, self._r[1940]!, [_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[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 func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1952]!, self._r[1952]!, [_0]) + return formatWithArgumentRanges(self._s[1951]!, self._r[1951]!, [_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[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 func MediaPicker_Nof(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1984]!, self._r[1984]!, [_0]) + return formatWithArgumentRanges(self._s[1983]!, self._r[1983]!, [_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[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 func Chat_SlowmodeTooltip(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1990]!, self._r[1990]!, [_0]) + return formatWithArgumentRanges(self._s[1989]!, self._r[1989]!, [_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[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 func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1999]!, self._r[1999]!, [_0]) + return formatWithArgumentRanges(self._s[1998]!, self._r[1998]!, [_0]) } - public var InviteLink_DeleteAllRevokedLinks: String { return self._s[2000]! } + public var InviteLink_DeleteAllRevokedLinks: String { return self._s[1999]! } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2001]!, self._r[2001]!, [_1]) + return formatWithArgumentRanges(self._s[2000]!, self._r[2000]!, [_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[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 func AutoDownloadSettings_PreloadVideoInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2006]!, self._r[2006]!, [_0]) + return formatWithArgumentRanges(self._s[2005]!, self._r[2005]!, [_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[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 func VoiceChat_InviteMemberToChannelFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2023]!, self._r[2023]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2022]!, self._r[2022]!, [_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[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 func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2030]!, self._r[2030]!, [_1]) + return formatWithArgumentRanges(self._s[2029]!, self._r[2029]!, [_1]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2031]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2030]! } public func Conversation_AutoremoveTimerRemovedUser(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2032]!, self._r[2032]!, [_1]) + return formatWithArgumentRanges(self._s[2031]!, self._r[2031]!, [_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[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 func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2043]!, self._r[2043]!, [_0]) + return formatWithArgumentRanges(self._s[2042]!, self._r[2042]!, [_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[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 func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2076]!, self._r[2076]!, [_0]) + return formatWithArgumentRanges(self._s[2075]!, self._r[2075]!, [_0]) } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2078]!, self._r[2078]!, [_0]) + return formatWithArgumentRanges(self._s[2077]!, self._r[2077]!, [_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[2078]! } + public var Passport_Language_az: String { return self._s[2080]! } public func Conversation_AutoremoveChanged(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2082]!, self._r[2082]!, [_0]) + return formatWithArgumentRanges(self._s[2081]!, self._r[2081]!, [_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[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 func Channel_AdminLog_MutedNewMembers(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2095]!, self._r[2095]!, [_1]) + return formatWithArgumentRanges(self._s[2094]!, self._r[2094]!, [_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[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 func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2104]!, self._r[2104]!, [_0]) + return formatWithArgumentRanges(self._s[2103]!, self._r[2103]!, [_0]) } public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2105]!, self._r[2105]!, [_0]) + return formatWithArgumentRanges(self._s[2104]!, self._r[2104]!, [_0]) } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2107]!, self._r[2107]!, [_0]) + return formatWithArgumentRanges(self._s[2106]!, self._r[2106]!, [_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[2107]! } + public var InviteLink_Share: String { return self._s[2109]! } public func Conversation_ImportProgress(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2112]!, self._r[2112]!, [_0]) + return formatWithArgumentRanges(self._s[2111]!, self._r[2111]!, [_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[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 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[2134]!, self._r[2134]!, [_1, _2]) } public func ScheduleVoiceChat_ScheduleTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_0]) + return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_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[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 func Conversation_TitleRepliesFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2162]!, self._r[2162]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2161]!, self._r[2161]!, [_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[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 func PUSH_VIDEO_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2186]!, self._r[2186]!, [_1]) + return formatWithArgumentRanges(self._s[2185]!, self._r[2185]!, [_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[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 func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2192]!, self._r[2192]!, [_0]) + return formatWithArgumentRanges(self._s[2191]!, self._r[2191]!, [_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[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 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[2199]!, self._r[2199]!, [_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[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 func Channel_AdminLog_AllowedNewMembersToSpeak(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2221]!, self._r[2221]!, [_1]) + return formatWithArgumentRanges(self._s[2220]!, self._r[2220]!, [_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[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 func Notification_Invited(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2227]!, self._r[2227]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2226]!, self._r[2226]!, [_0, _1]) } - public var ChatList_PeerTypeBot: String { return self._s[2230]! } + public var ChatList_PeerTypeBot: String { return self._s[2229]! } 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[2230]!, self._r[2230]!, [_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[2231]! } 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[2232]!, self._r[2232]!, [_1, _2, _3]) } - public var Camera_PhotoMode: String { return self._s[2235]! } + public var Camera_PhotoMode: String { return self._s[2234]! } 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[2235]!, self._r[2235]!, [_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[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 func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2242]!, self._r[2242]!, [_0]) + return formatWithArgumentRanges(self._s[2241]!, self._r[2241]!, [_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[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 func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2254]!, self._r[2254]!, [_0]) + return formatWithArgumentRanges(self._s[2253]!, self._r[2253]!, [_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[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 func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2271]!, self._r[2271]!, [_0]) + return formatWithArgumentRanges(self._s[2270]!, self._r[2270]!, [_0]) } public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2272]!, self._r[2272]!, [_0]) + return formatWithArgumentRanges(self._s[2271]!, self._r[2271]!, [_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 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 PUSH_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2276]!, self._r[2276]!, [_1]) + return formatWithArgumentRanges(self._s[2275]!, self._r[2275]!, [_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[2276]! } + public var Checkout_NewCard_SaveInfo: String { return self._s[2277]! } 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[2278]!, self._r[2278]!, [_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[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 func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2300]!, self._r[2300]!, [_0]) + return formatWithArgumentRanges(self._s[2299]!, self._r[2299]!, [_0]) } - public var Wallpaper_Wallpaper: String { return self._s[2302]! } + public var Wallpaper_Wallpaper: String { return self._s[2301]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2303]!, self._r[2303]!, [_1]) + return formatWithArgumentRanges(self._s[2302]!, self._r[2302]!, [_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[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 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[2312]!, self._r[2312]!, [_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 Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2331]! } + 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 func Time_MonthOfYear_m8(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2332]!, self._r[2332]!, [_0]) + return formatWithArgumentRanges(self._s[2331]!, self._r[2331]!, [_0]) } - public var KeyCommand_NewMessage: String { return self._s[2333]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2336]! } + public var KeyCommand_NewMessage: String { return self._s[2332]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2335]! } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2338]!, self._r[2338]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2337]!, self._r[2337]!, [_1, _2]) } - public var ContactList_Context_StartSecretChat: String { return self._s[2339]! } - public var VoiceOver_Chat_File: String { return self._s[2340]! } - public var ChatList_EditFolder: String { return self._s[2342]! } - public var Appearance_BubbleCorners_Title: String { return self._s[2343]! } - public var PeerInfo_PaneAudio: String { return self._s[2344]! } - public var ChatListFolder_CategoryContacts: String { return self._s[2346]! } - public var VoiceOver_ScheduledMessages: String { return self._s[2347]! } + 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 func Login_InvalidPhoneEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2348]!, self._r[2348]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[2347]!, self._r[2347]!, [_1, _2, _3, _4, _5]) } - public var ChatList_PeerTypeChannel: String { return self._s[2349]! } - public var VoiceOver_Navigation_Search: String { return self._s[2350]! } - public var Settings_Search: String { return self._s[2351]! } - public var WallpaperSearch_ColorYellow: String { return self._s[2352]! } - public var Login_PhoneBannedError: String { return self._s[2353]! } - public var KeyCommand_JumpToNextChat: String { return self._s[2354]! } - public var Passport_Language_fa: String { return self._s[2355]! } - public var Settings_About: String { return self._s[2356]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[2357]! } - public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[2358]! } - public var AutoDownloadSettings_DataUsageHigh: String { return self._s[2359]! } + 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 func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2360]!, self._r[2360]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2359]!, self._r[2359]!, [_1, _2, _3]) } - public var Common_OK: String { return self._s[2361]! } - public var Contacts_SortBy: String { return self._s[2362]! } - public var ImportStickerPack_LinkTaken: String { return self._s[2363]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[2364]! } + 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 func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2366]!, self._r[2366]!, [_0]) + return formatWithArgumentRanges(self._s[2365]!, self._r[2365]!, [_0]) } - public var CallFeedback_IncludeLogs: String { return self._s[2369]! } + public var CallFeedback_IncludeLogs: String { return self._s[2368]! } public func External_OpenIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2370]!, self._r[2370]!, [_0]) + return formatWithArgumentRanges(self._s[2369]!, self._r[2369]!, [_0]) } - public var ImportStickerPack_ChooseLink: String { return self._s[2372]! } - public var Passcode_AppLockedAlert: String { return self._s[2373]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2374]! } - public var Channel_NotificationLoading: String { return self._s[2376]! } - public var Passport_Identity_DocumentNumber: String { return self._s[2377]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2378]! } - public var VoiceOver_Chat_OpenHint: String { return self._s[2379]! } - public var Weekday_ShortFriday: String { return self._s[2380]! } - public var Conversation_TitleMute: String { return self._s[2381]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2382]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[2383]! } - public var DialogList_LanguageTooltip: String { return self._s[2385]! } - public var BroadcastGroups_IntroTitle: String { return self._s[2386]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[2387]! } + 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 func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2388]!, self._r[2388]!, [_0]) + return formatWithArgumentRanges(self._s[2387]!, self._r[2387]!, [_0]) } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[2390]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[2391]! } - public var Settings_EditVideo: String { return self._s[2392]! } - public var VoiceOver_Common_Off: String { return self._s[2393]! } - public var Stickers_FrequentlyUsed: String { return self._s[2394]! } - public var GroupPermission_Title: String { return self._s[2395]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[2396]! } - public var Appearance_ThemeCarouselDay: String { return self._s[2397]! } + 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 func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2398]!, self._r[2398]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2397]!, self._r[2397]!, [_1, _2]) } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2399]! } - public var Tour_Title6: String { return self._s[2400]! } - public var EmptyGroupInfo_Title: String { return self._s[2401]! } + 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 func Channel_AdminLog_MessageToggleSignaturesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2402]!, self._r[2402]!, [_0]) + return formatWithArgumentRanges(self._s[2401]!, self._r[2401]!, [_0]) } - public var Passport_Language_sk: String { return self._s[2403]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[2404]! } - public var Preview_SaveToCameraRoll: String { return self._s[2405]! } + 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 func VoiceChat_YouCanNowSpeakIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2406]!, self._r[2406]!, [_0]) + return formatWithArgumentRanges(self._s[2405]!, self._r[2405]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[2407]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2408]! } - public var Conversation_ContextMenuMore: String { return self._s[2409]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2410]! } - public var Channel_AdminLog_CanBeAnonymous: String { return self._s[2411]! } - public var CallFeedback_ReasonSilentLocal: String { return self._s[2413]! } + 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 func Channel_AdminLog_UnmutedMutedParticipant(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2414]!, self._r[2414]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2413]!, self._r[2413]!, [_1, _2]) } - public var UserInfo_NotificationsDisable: String { return self._s[2415]! } + public var UserInfo_NotificationsDisable: String { return self._s[2414]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2417]!, self._r[2417]!, [_0]) + return formatWithArgumentRanges(self._s[2416]!, self._r[2416]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2418]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2417]! } public func Date_ChatDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2420]!, self._r[2420]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2419]!, self._r[2419]!, [_1, _2]) } - public var WallpaperSearch_ColorPrefix: String { return self._s[2421]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2420]! } public func Message_ForwardedPsa_covid(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2422]!, self._r[2422]!, [_0]) + return formatWithArgumentRanges(self._s[2421]!, self._r[2421]!, [_0]) } - public var VoiceChat_NoiseSuppressionDisabled: String { return self._s[2424]! } - public var Conversation_RestrictedMedia: String { return self._s[2425]! } - public var Group_MessageVideoUpdated: String { return self._s[2426]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2427]! } - public var GroupInfo_DeleteAndExit: String { return self._s[2428]! } - public var TwoFactorSetup_Email_Action: String { return self._s[2429]! } - public var Media_ShareThisVideo: String { return self._s[2431]! } - public var DialogList_Replies: String { return self._s[2433]! } + 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 func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2434]!, self._r[2434]!, [_0]) + return formatWithArgumentRanges(self._s[2433]!, self._r[2433]!, [_0]) } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2435]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[2436]! } - public var ImportStickerPack_ImportingStickers: String { return self._s[2437]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2438]! } + 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 func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2439]!, self._r[2439]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2438]!, self._r[2438]!, [_1, _2]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2440]!, self._r[2440]!, [_0]) + return formatWithArgumentRanges(self._s[2439]!, self._r[2439]!, [_0]) } - public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[2441]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2442]! } - public var ChatList_Search_NoResultsFitlerMedia: String { return self._s[2443]! } - public var Channel_Members_InviteLink: String { return self._s[2444]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[2445]! } - public var WatchRemote_AlertText: String { return self._s[2446]! } + 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 func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2447]!, self._r[2447]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2446]!, self._r[2446]!, [_1, _2]) } - public var Conversation_Pin: String { return self._s[2448]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2449]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2450]! } - public var Conversation_CancelForwardTitle: String { return self._s[2451]! } + 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 func Notification_PinnedPollMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2452]!, self._r[2452]!, [_0]) + return formatWithArgumentRanges(self._s[2451]!, self._r[2451]!, [_0]) } - public var Appearance_AppIconFilled: String { return self._s[2453]! } - public var StickerPack_ErrorNotFound: String { return self._s[2454]! } + public var Appearance_AppIconFilled: String { return self._s[2452]! } + public var StickerPack_ErrorNotFound: String { return self._s[2453]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2455]!, self._r[2455]!, [_1]) + return formatWithArgumentRanges(self._s[2454]!, self._r[2454]!, [_1]) } - public var Passport_Identity_AddIdentityCard: String { return self._s[2456]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[2455]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2458]!, self._r[2458]!, [_1]) + return formatWithArgumentRanges(self._s[2457]!, self._r[2457]!, [_1]) } - public var Call_Camera: String { return self._s[2459]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2460]! } - public var Group_Location_Info: String { return self._s[2461]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[2462]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[2463]! } + 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 func DialogList_PinLimitError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2464]!, self._r[2464]!, [_0]) + return formatWithArgumentRanges(self._s[2463]!, self._r[2463]!, [_0]) } - public var Weekday_Yesterday: String { return self._s[2465]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[2466]! } - public var InviteLink_Create_UsersLimit: String { return self._s[2467]! } + 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 func Notification_VoiceChatScheduledTodayChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2468]!, self._r[2468]!, [_0]) + return formatWithArgumentRanges(self._s[2467]!, self._r[2467]!, [_0]) } - public var ArchivedPacksAlert_Title: String { return self._s[2469]! } - public var PeerInfo_PaneMembers: String { return self._s[2470]! } - public var PhotoEditor_SelectCoverFrame: String { return self._s[2471]! } + 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 func Location_ProximityAlertSetTextGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2472]!, self._r[2472]!, [_0]) + return formatWithArgumentRanges(self._s[2471]!, self._r[2471]!, [_0]) } - public var ContactInfo_PhoneLabelMain: String { return self._s[2473]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[2472]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2474]!, self._r[2474]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2473]!, self._r[2473]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[2475]! } - public var Channel_DiscussionGroup: String { return self._s[2476]! } - public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[2477]! } - public var InviteLink_Create_TimeLimit: String { return self._s[2479]! } - public var Channel_EditAdmin_PermissionsHeader: String { return self._s[2480]! } - public var VoiceOver_MessageContextForward: String { return self._s[2481]! } - public var SocksProxySetup_TypeNone: String { return self._s[2482]! } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[2484]! } - public var ProfilePhoto_OpenInEditor: String { return self._s[2486]! } - public var WallpaperSearch_ColorPurple: String { return self._s[2487]! } - public var ChatListFolder_IncludeChatsTitle: String { return self._s[2488]! } - public var Group_Username_InvalidTooShort: String { return self._s[2489]! } - public var Location_ProximityNotification_DistanceM: String { return self._s[2490]! } - public var VoiceChat_EditTitleText: String { return self._s[2491]! } + 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 func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2492]!, self._r[2492]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2491]!, self._r[2491]!, [_0, _1, _2]) } - public var Passport_Language_tk: String { return self._s[2493]! } - public var ConvertToSupergroup_Title: String { return self._s[2494]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[2495]! } - public var Cache_KeepMediaHelp: String { return self._s[2496]! } - public var Channel_Management_Title: String { return self._s[2497]! } + 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 func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2498]!, self._r[2498]!, [_1]) + return formatWithArgumentRanges(self._s[2497]!, self._r[2497]!, [_1]) } - public var Conversation_ForwardChats: String { return self._s[2499]! } - public var Passport_Language_bg: String { return self._s[2500]! } - public var SocksProxySetup_TypeSocks: String { return self._s[2501]! } - public var Permissions_PrivacyPolicy: String { return self._s[2502]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2503]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2504]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2505]! } - public var Conversation_ContextMenuOpenChannel: String { return self._s[2506]! } - public var Report_AdditionalDetailsPlaceholder: String { return self._s[2507]! } - public var Activity_UploadingVideo: String { return self._s[2508]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[2510]! } - public var Widget_LongTapToEdit: String { return self._s[2511]! } - public var VoiceChat_InviteLink_Listener: String { return self._s[2513]! } - public var SocksProxySetup_Credentials: String { return self._s[2514]! } - public var Preview_SaveGif: String { return self._s[2515]! } - public var Cache_Photos: String { return self._s[2516]! } - public var Channel_AdminLogFilter_EventsCalls: String { return self._s[2517]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[2518]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[2519]! } + 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 func VoiceChat_RemoveAndBanPeerConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2520]!, self._r[2520]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2519]!, self._r[2519]!, [_1, _2]) } - public var Passport_Language_lt: String { return self._s[2521]! } - public var Passport_DeleteDocument: String { return self._s[2523]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2524]! } + 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 func Location_ProximityNotification_NotifyLong(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2525]!, self._r[2525]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2524]!, self._r[2524]!, [_1, _2]) } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[2526]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[2525]! } public func PeopleNearby_VisibleUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2527]!, self._r[2527]!, [_0]) + return formatWithArgumentRanges(self._s[2526]!, self._r[2526]!, [_0]) } - public var AccessDenied_VideoCallCamera: String { return self._s[2528]! } + public var AccessDenied_VideoCallCamera: String { return self._s[2527]! } public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2529]!, self._r[2529]!, [_0]) + return formatWithArgumentRanges(self._s[2528]!, self._r[2528]!, [_0]) } - public var PhotoEditor_SharpenTool: String { return self._s[2530]! } + public var PhotoEditor_SharpenTool: String { return self._s[2529]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2531]!, self._r[2531]!, [_1]) + return formatWithArgumentRanges(self._s[2530]!, self._r[2530]!, [_1]) } - public var DialogList_Unpin: String { return self._s[2532]! } - public var Stickers_NoStickersFound: String { return self._s[2533]! } - public var UserInfo_AddContact: String { return self._s[2535]! } + 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 func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2537]!, self._r[2537]!, [_0]) + return formatWithArgumentRanges(self._s[2536]!, self._r[2536]!, [_0]) } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2538]!, self._r[2538]!, [_0]) + return formatWithArgumentRanges(self._s[2537]!, self._r[2537]!, [_0]) } - public var CallFeedback_VideoReasonDistorted: String { return self._s[2539]! } - public var Tour_Text2: String { return self._s[2540]! } + public var CallFeedback_VideoReasonDistorted: String { return self._s[2538]! } + public var Tour_Text2: String { return self._s[2539]! } public func Conversation_TitleCommentsFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2542]!, self._r[2542]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2541]!, self._r[2541]!, [_1, _2]) } - public var InviteLink_DeleteAllRevokedLinksAlert_Text: String { return self._s[2544]! } - public var Paint_Delete: String { return self._s[2545]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Text: String { return self._s[2543]! } + public var Paint_Delete: String { return self._s[2544]! } public func Call_VoiceChatInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2546]!, self._r[2546]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2545]!, self._r[2545]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2547]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2546]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2549]!, self._r[2549]!, [_0]) + return formatWithArgumentRanges(self._s[2548]!, self._r[2548]!, [_0]) } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[2550]! } - public var Notification_CallOutgoingShort: String { return self._s[2551]! } - public var Checkout_PasswordEntry_Title: String { return self._s[2552]! } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[2553]! } - public var Notification_MessageLifetime1m: String { return self._s[2554]! } - public var BlockedUsers_AddNew: String { return self._s[2556]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2557]! } - public var Settings_SaveEditedPhotos: String { return self._s[2558]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[2559]! } + 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 func ImportStickerPack_Of(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2560]!, self._r[2560]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2559]!, self._r[2559]!, [_1, _2]) } - public var Channel_AboutItem: String { return self._s[2561]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[2562]! } - public var Privacy_Calls_P2PNever: String { return self._s[2564]! } - public var Passport_Language_uk: String { return self._s[2565]! } - public var NetworkUsageSettings_Wifi: String { return self._s[2566]! } - public var Conversation_Moderate_Report: String { return self._s[2567]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2568]! } - public var VoiceOver_Chat_SeenByRecipients: String { return self._s[2569]! } - public var Permissions_SiriText_v0: String { return self._s[2570]! } - public var Theme_Colors_Background: String { return self._s[2571]! } - public var Notification_CallMissed: String { return self._s[2572]! } - public var Stats_ZoomOut: String { return self._s[2573]! } - public var Profile_AddToExisting: String { return self._s[2574]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2577]! } - public var VoiceChat_RemovePeerRemove: String { return self._s[2578]! } - public var Undo_DeletedChannel: String { return self._s[2579]! } + 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 func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2580]!, self._r[2580]!, [_0]) + return formatWithArgumentRanges(self._s[2579]!, self._r[2579]!, [_0]) } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2581]! } - public var Map_LiveLocationGroupDescription: String { return self._s[2582]! } - public var Passport_InfoFAQ_URL: String { return self._s[2583]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2586]! } + 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 func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2587]!, self._r[2587]!, [_1]) + return formatWithArgumentRanges(self._s[2586]!, self._r[2586]!, [_1]) } - public var State_connecting: String { return self._s[2588]! } - public var Passport_Identity_Country: String { return self._s[2589]! } - public var Passport_PasswordDescription: String { return self._s[2590]! } - public var ChatList_PsaLabel_covid: String { return self._s[2591]! } + 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 func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2592]!, self._r[2592]!, [_1]) + return formatWithArgumentRanges(self._s[2591]!, self._r[2591]!, [_1]) } - public var Contacts_AddPeopleNearby: String { return self._s[2593]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[2594]! } - public var ClearCache_Description: String { return self._s[2595]! } - public var Localization_LanguageName: String { return self._s[2596]! } + 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 func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2597]!, self._r[2597]!, [_0]) + return formatWithArgumentRanges(self._s[2596]!, self._r[2596]!, [_0]) } - public var Conversation_AddMembers: String { return self._s[2598]! } - public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[2599]! } - public var UserInfo_CreateNewContact: String { return self._s[2600]! } - public var Channel_Stickers_NotFound: String { return self._s[2602]! } - public var Message_FakeAccount: String { return self._s[2603]! } - public var Watch_Message_Poll: String { return self._s[2604]! } - public var Group_Members_Title: String { return self._s[2605]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2606]! } + 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 func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2607]!, self._r[2607]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2606]!, self._r[2606]!, [_0, _1]) } - public var VoiceChat_CancelConfirmationText: String { return self._s[2608]! } - public var BroadcastGroups_Convert: String { return self._s[2609]! } - public var Login_InfoDeletePhoto: String { return self._s[2610]! } - public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[2611]! } - public var InstantPage_FeedbackButton: String { return self._s[2612]! } - public var Appearance_PreviewReplyText: String { return self._s[2613]! } - public var Passport_FieldPhoneHelp: String { return self._s[2614]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2615]! } - public var Media_SendingOptionsTooltip: String { return self._s[2616]! } - public var ScheduledMessages_ScheduledOnline: String { return self._s[2617]! } - public var Notifications_Badge: String { return self._s[2618]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[2619]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2620]! } + 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 func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2622]!, self._r[2622]!, [_0]) + return formatWithArgumentRanges(self._s[2621]!, self._r[2621]!, [_0]) } - public var Passport_InfoLearnMore: String { return self._s[2623]! } - public var EnterPasscode_EnterTitle: String { return self._s[2624]! } - public var Appearance_EditTheme: String { return self._s[2625]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2626]! } - public var Stats_FollowersTitle: String { return self._s[2627]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[2628]! } - public var Channel_Subscribers_Title: String { return self._s[2629]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2630]! } - public var ChatImportActivity_ErrorGeneric: String { return self._s[2631]! } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[2632]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2633]! } - public var Conversation_AddToReadingList: String { return self._s[2634]! } - public var VoiceChat_EditBioPlaceholder: String { return self._s[2635]! } + 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 func Notifications_ExceptionsChangeSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2636]!, self._r[2636]!, [_0]) + return formatWithArgumentRanges(self._s[2635]!, self._r[2635]!, [_0]) } - public var Group_AdminLog_EmptyText: String { return self._s[2637]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[2638]! } - public var Watch_Location_Current: String { return self._s[2639]! } - public var Appearance_AppIconNew1: String { return self._s[2640]! } - public var PrivacyPolicy_Title: String { return self._s[2641]! } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2648]! } - public var Channel_TypeSetup_Title: String { return self._s[2652]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[2653]! } - public var Passport_Language_ja: String { return self._s[2654]! } - public var ReportPeer_ReasonSpam: String { return self._s[2655]! } - public var Widget_GalleryDescription: String { return self._s[2656]! } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2657]! } - public var VoiceChat_ChangePhoto: String { return self._s[2659]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[2660]! } - public var Channel_AdminLog_ChangeInfo: String { return self._s[2661]! } - public var ChatListFolder_NameNonContacts: String { return self._s[2662]! } + 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 func InviteLink_ExpiresIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2663]!, self._r[2663]!, [_0]) + return formatWithArgumentRanges(self._s[2662]!, self._r[2662]!, [_0]) } - public var Call_Audio: String { return self._s[2664]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2665]! } - public var ChatList_Search_NoResultsFitlerFiles: String { return self._s[2666]! } - public var Settings_PrivacySettings: String { return self._s[2667]! } - public var InviteLink_UsageLimitReached: String { return self._s[2668]! } - public var Stats_Followers: String { return self._s[2669]! } - public var Notifications_AddExceptionTitle: String { return self._s[2670]! } - public var TwoFactorSetup_Password_Title: String { return self._s[2671]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2672]! } - public var OldChannels_NoticeText: String { return self._s[2673]! } - public var Conversation_SavedMessages: String { return self._s[2674]! } - public var Intents_ErrorLockedText: String { return self._s[2675]! } + 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 func Conversation_PeerNearbyTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2677]!, self._r[2677]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2676]!, self._r[2676]!, [_1, _2]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2678]! } - public var Appearance_ThemeNightBlue: String { return self._s[2679]! } - public var Notification_ChannelInviterSelf: String { return self._s[2680]! } - public var Conversation_ForwardTooltip_SavedMessages_Many: String { return self._s[2681]! } - public var InviteLink_Create_TimeLimitExpiryDateNever: String { return self._s[2683]! } - public var Watch_UserInfo_Service: String { return self._s[2684]! } - public var ChatList_Context_Back: String { return self._s[2685]! } - public var Passport_Email_Title: String { return self._s[2686]! } + 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 func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2688]!, self._r[2688]!, [_1]) @@ -3603,2916 +3601,2918 @@ public final class PresentationStrings: Equatable { } public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3172]! } public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3173]! } - public var Conversation_ContextMenuForward: String { return self._s[3175]! } - public var Channel_AdminLog_CanManageCalls: String { return self._s[3176]! } + 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 func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3178]!, self._r[3178]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3179]!, self._r[3179]!, [_1, _2, _3]) } - public var Notification_GroupInviterSelf: String { return self._s[3180]! } - public var Privacy_Forwards_NeverLink: String { return self._s[3181]! } - public var AuthSessions_CurrentSession: String { return self._s[3182]! } - public var Passport_Address_EditPassportRegistration: String { return self._s[3183]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3184]! } - public var ChatSearch_ResultsTooltip: String { return self._s[3186]! } - public var CheckoutInfo_Pay: String { return self._s[3187]! } + 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 func Conversation_PinMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3189]!, self._r[3189]!, [_0]) + return formatWithArgumentRanges(self._s[3190]!, self._r[3190]!, [_0]) } - public var GroupInfo_AddParticipant: String { return self._s[3190]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[3191]! } + public var GroupInfo_AddParticipant: String { return self._s[3191]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[3192]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3192]!, self._r[3192]!, [_0]) + return formatWithArgumentRanges(self._s[3193]!, self._r[3193]!, [_0]) } - public var Localization_LanguageCustom: String { return self._s[3193]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[3194]! } - public var Settings_UsernameEmpty: String { return self._s[3195]! } - public var Settings_FAQ_URL: String { return self._s[3196]! } - public var ChatList_UndoArchiveText1: String { return self._s[3197]! } - public var Common_Select: String { return self._s[3199]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3200]! } - public var Notification_PassportValueAddress: String { return self._s[3201]! } - public var Conversation_MessageDialogDelete: String { return self._s[3202]! } - public var Map_OpenInYandexNavigator: String { return self._s[3204]! } - public var DialogList_SearchSectionDialogs: String { return self._s[3205]! } - public var AccessDenied_Contacts: String { return self._s[3206]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3208]! } - public var Passport_ScanPassportHelp: String { return self._s[3209]! } - public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3210]! } - public var ChatListFolder_NameChannels: String { return self._s[3211]! } - public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3212]! } + 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 func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3213]!, self._r[3213]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3214]!, self._r[3214]!, [_1, _2]) } - public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3214]! } + public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3215]! } public func VoiceChat_InviteMemberToGroupFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3215]!, self._r[3215]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3216]!, self._r[3216]!, [_1, _2]) } - public var Conversation_GifTooltip: String { return self._s[3216]! } - public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3217]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3219]! } - public var VoiceChat_Connecting: String { return self._s[3220]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3221]! } + 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 func Channel_AdminLog_CreatedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3222]!, self._r[3222]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3223]!, self._r[3223]!, [_1, _2]) } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3223]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3224]! } - public var CreatePoll_Quiz: String { return self._s[3225]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[3227]! } - public var Watch_Message_Invoice: String { return self._s[3228]! } - public var Settings_AddAnotherAccount_Help: String { return self._s[3229]! } - public var Watch_Message_Unsupported: String { return self._s[3230]! } + 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 func Call_CameraOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3232]!, self._r[3232]!, [_0]) + return formatWithArgumentRanges(self._s[3233]!, self._r[3233]!, [_0]) } - public var AuthSessions_TerminateOtherSessions: String { return self._s[3233]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[3235]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3236]! } - public var Call_IncomingVoiceCall: String { return self._s[3237]! } + 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 func Channel_AdminLog_MessageTransferedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3238]!, self._r[3238]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3239]!, self._r[3239]!, [_1, _2]) } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[3239]! } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3240]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3241]! } - public var Group_ErrorAccessDenied: String { return self._s[3242]! } - public var PasscodeSettings_HelpTop: String { return self._s[3243]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3244]! } - public var AddContact_SharedContactException: String { return self._s[3245]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[3246]! } - public var Privacy_TopPeers: String { return self._s[3247]! } - public var Web_OpenExternal: String { return self._s[3248]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[3249]! } - public var Channel_Management_LabelAdministrator: String { return self._s[3250]! } + 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 func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3251]!, self._r[3251]!, [_0]) + return formatWithArgumentRanges(self._s[3252]!, self._r[3252]!, [_0]) } - public var Conversation_PhoneCopied: String { return self._s[3252]! } - public var Permissions_Skip: String { return self._s[3253]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3254]! } + 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 func VoiceChat_ForwardTooltip_TwoChats(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3255]!, self._r[3255]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3256]!, self._r[3256]!, [_0, _1]) } - public var PeopleNearby_Title: String { return self._s[3256]! } - public var GroupInfo_SharedMediaNone: String { return self._s[3257]! } + public var PeopleNearby_Title: String { return self._s[3257]! } + public var GroupInfo_SharedMediaNone: String { return self._s[3258]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3259]!, self._r[3259]!, [_1]) + return formatWithArgumentRanges(self._s[3260]!, self._r[3260]!, [_1]) } - public var Profile_MessageLifetime1w: String { return self._s[3260]! } + public var Profile_MessageLifetime1w: String { return self._s[3261]! } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3261]!, self._r[3261]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3262]!, self._r[3262]!, [_1, _2, _3]) } - public var WebBrowser_DefaultBrowser: String { return self._s[3262]! } - public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3264]! } - public var EditTheme_Edit_BottomInfo: String { return self._s[3265]! } - public var Privacy_Forwards_Preview: String { return self._s[3266]! } - public var Settings_EditAccount: String { return self._s[3267]! } + 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 func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3268]!, self._r[3268]!, [_0]) + return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_0]) } - public var TwoFactorSetup_Intro_Title: String { return self._s[3269]! } + public var TwoFactorSetup_Intro_Title: String { return self._s[3270]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3271]!, self._r[3271]!, [_1]) + return formatWithArgumentRanges(self._s[3272]!, self._r[3272]!, [_1]) } - public var PeerInfo_ButtonVideoCall: String { return self._s[3272]! } + public var PeerInfo_ButtonVideoCall: String { return self._s[3273]! } public func DialogList_SingleUploadingPhotoSuffix(_ _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 Login_InfoHelp: String { return self._s[3274]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3275]! } - public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3276]! } - public var Profile_MessageLifetime1d: String { return self._s[3277]! } - public var Group_UpgradeConfirmation: String { return self._s[3278]! } + 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 func PUSH_PINNED_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3279]!, self._r[3279]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3280]!, self._r[3280]!, [_1, _2]) } - public var Appearance_RemoveThemeColor: String { return self._s[3280]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3281]! } + public var Appearance_RemoveThemeColor: String { return self._s[3281]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3282]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3282]!, self._r[3282]!, [_0]) + return formatWithArgumentRanges(self._s[3283]!, self._r[3283]!, [_0]) } - public var UserInfo_BotSettings: String { return self._s[3283]! } + public var UserInfo_BotSettings: String { return self._s[3284]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3285]!, self._r[3285]!, [_0]) + return formatWithArgumentRanges(self._s[3286]!, self._r[3286]!, [_0]) } - public var Permissions_ContactsText_v0: String { return self._s[3286]! } - public var Conversation_PinMessagesForMe: String { return self._s[3287]! } - public var VoiceChat_PanelJoin: String { return self._s[3288]! } - public var Conversation_DiscussionStarted: String { return self._s[3290]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3291]! } - public var SharedMedia_SearchNoResults: String { return self._s[3293]! } + 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 func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3295]!, self._r[3295]!, [_0]) + return formatWithArgumentRanges(self._s[3296]!, self._r[3296]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3297]!, self._r[3297]!, [_0]) + return formatWithArgumentRanges(self._s[3298]!, self._r[3298]!, [_0]) } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3298]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3299]! } - public var Call_AudioRouteHeadphones: String { return self._s[3300]! } + 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 func Notification_VoiceChatScheduledTomorrowChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3302]!, self._r[3302]!, [_0]) + return formatWithArgumentRanges(self._s[3303]!, self._r[3303]!, [_0]) } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3303]!, self._r[3303]!, [_1]) + return formatWithArgumentRanges(self._s[3304]!, self._r[3304]!, [_1]) } - public var Passport_Identity_FilesView: String { return self._s[3304]! } - public var TwoStepAuth_SetupEmail: String { return self._s[3305]! } - public var Widget_ApplicationStartRequired: String { return self._s[3306]! } - public var PhotoEditor_Original: String { return self._s[3307]! } - public var Call_YourMicrophoneOff: String { return self._s[3308]! } - public var Permissions_ContactsAllow_v0: String { return self._s[3309]! } - public var Conversation_CardNumberCopied: String { return self._s[3310]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3311]! } - public var PrivacyPolicy_Decline: String { return self._s[3312]! } - public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3313]! } - public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3314]! } - public var ChatListFolder_IncludeSectionInfo: String { return self._s[3315]! } + 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 func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3316]!, self._r[3316]!, [_0]) + return formatWithArgumentRanges(self._s[3317]!, self._r[3317]!, [_0]) } - public var Passport_Identity_Name: String { return self._s[3317]! } - public var WallpaperPreview_PatternTitle: String { return self._s[3319]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3320]! } - public var WallpaperSearch_ColorOrange: String { return self._s[3322]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3323]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3324]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3325]! } - public var IntentsSettings_ResetAll: String { return self._s[3326]! } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3328]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3329]! } - public var ChatList_DeleteForAllSubscribers: String { return self._s[3330]! } - public var Notification_Exceptions_Add: String { return self._s[3331]! } - public var Group_DeleteGroup: String { return self._s[3332]! } - public var Cache_Help: String { return self._s[3333]! } - public var Call_AudioRouteMute: String { return self._s[3334]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3335]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[3336]! } + 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 func VoiceChat_Status_MembersFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3337]!, self._r[3337]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3338]!, self._r[3338]!, [_1, _2]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3338]!, self._r[3338]!, [_1]) + return formatWithArgumentRanges(self._s[3339]!, self._r[3339]!, [_1]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3339]!, self._r[3339]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3340]!, self._r[3340]!, [_1, _2]) } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3340]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[3341]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3341]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[3342]! } public func PUSH_CHAT_VOICECHAT_INVITE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3342]!, self._r[3342]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3343]!, self._r[3343]!, [_1, _2, _3]) } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3343]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3344]! } - public var ClearCache_StorageFree: String { return self._s[3345]! } + 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 func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3346]!, self._r[3346]!, [_0]) + return formatWithArgumentRanges(self._s[3347]!, self._r[3347]!, [_0]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[3347]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[3348]! } public func Channel_AdminLog_EditedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3349]!, self._r[3349]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3350]!, self._r[3350]!, [_1, _2]) } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[3350]! } - public var DialogList_Typing: String { return self._s[3351]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[3351]! } + public var DialogList_Typing: String { return self._s[3352]! } public func Login_EmailCodeSubject(_ _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 Target_SelectGroup: String { return self._s[3353]! } - public var AuthSessions_IncompleteAttempts: String { return self._s[3354]! } + public var Target_SelectGroup: String { return self._s[3354]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3355]! } public func Notification_ProximityReached(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3355]!, self._r[3355]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, [_1, _2, _3]) } - public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3356]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3357]! } + public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3357]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3358]! } public func Settings_CheckPhoneNumberTitle(_ _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 Channel_AdminLog_CanSendMessages: String { return self._s[3359]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3360]! } - public var ChatSettings_TextSize: String { return self._s[3361]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3363]! } - public var Map_SendThisPlace: String { return self._s[3364]! } - public var Conversation_TextCopied: String { return self._s[3365]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3366]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3367]! } - public var Call_ShareStats: String { return self._s[3368]! } + 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 func PUSH_CHAT_VOICECHAT_END(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3370]!, self._r[3370]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3371]!, self._r[3371]!, [_1, _2]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3371]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[3372]! } - public var Settings_Support: String { return self._s[3373]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3374]! } + 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 func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3376]!, self._r[3376]!, [_0]) + return formatWithArgumentRanges(self._s[3377]!, self._r[3377]!, [_0]) } - public var Watch_Conversation_GroupInfo: String { return self._s[3377]! } - public var Tour_Text4: String { return self._s[3378]! } - public var VoiceChat_CancelReminder: String { return self._s[3379]! } - public var Calls_StartNewCall: String { return self._s[3380]! } - public var UserInfo_FakeUserWarning: String { return self._s[3382]! } - public var PasscodeSettings_AutoLock: String { return self._s[3383]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3384]! } - public var Bot_DescriptionTitle: String { return self._s[3386]! } - public var Map_LocationTitle: String { return self._s[3387]! } - public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3388]! } - public var Conversation_HashtagCopied: String { return self._s[3389]! } + 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 func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3390]!, self._r[3390]!, [_1]) + return formatWithArgumentRanges(self._s[3391]!, self._r[3391]!, [_1]) } - public var VoiceChat_ReminderNotify: String { return self._s[3391]! } - public var Login_EmailNotConfiguredError: String { return self._s[3392]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[3393]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[3394]! } - public var Permissions_CellularDataText_v0: String { return self._s[3395]! } - public var Conversation_EncryptionProcessing: String { return self._s[3396]! } - public var GroupPermission_Delete: String { return self._s[3398]! } - public var Contacts_SortByName: String { return self._s[3399]! } - public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3400]! } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[3401]! } - public var Group_Management_AddModeratorHelp: String { return self._s[3403]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3404]! } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3405]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[3407]! } + 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 func PUSH_CHANNEL_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3408]!, self._r[3408]!, [_1]) + return formatWithArgumentRanges(self._s[3409]!, self._r[3409]!, [_1]) } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3409]!, self._r[3409]!, [_0]) + return formatWithArgumentRanges(self._s[3410]!, self._r[3410]!, [_0]) } - public var ChatList_Context_Delete: String { return self._s[3410]! } - public var VoiceChat_InviteMember: String { return self._s[3411]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3412]! } - public var Conversation_Processing: String { return self._s[3413]! } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[3414]! } - public var ChatSettings_Stickers: String { return self._s[3415]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3416]! } - public var Passport_Language_cs: String { return self._s[3417]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3419]! } - public var Conversation_Contact: String { return self._s[3420]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[3421]! } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[3423]! } - public var Theme_Unsupported: String { return self._s[3424]! } - public var Privacy_TopPeersWarning: String { return self._s[3425]! } + 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 func Conversation_ScheduledVoiceChatStartsTodayShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3426]!, self._r[3426]!, [_0]) + return formatWithArgumentRanges(self._s[3427]!, self._r[3427]!, [_0]) } - public var InviteLink_Title: String { return self._s[3428]! } + public var InviteLink_Title: String { return self._s[3429]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3429]!, self._r[3429]!, [_0]) + return formatWithArgumentRanges(self._s[3430]!, self._r[3430]!, [_0]) } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3430]! } - public var TwoStepAuth_RemovePassword: String { return self._s[3431]! } - public var Settings_CheckPhoneNumberText: String { return self._s[3432]! } - public var PeopleNearby_Users: String { return self._s[3433]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3434]! } - public var Settings_SetProfilePhoto: String { return self._s[3435]! } - public var Conversation_ContextMenuBan: String { return self._s[3436]! } - public var KeyCommand_ScrollUp: String { return self._s[3437]! } - public var Settings_ChatSettings: String { return self._s[3439]! } - public var CallList_RecentCallsHeader: String { return self._s[3440]! } + 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 func PUSH_CHAT_MESSAGE_VIDEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3441]!, self._r[3441]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3442]!, self._r[3442]!, [_1, _2]) } - public var Stats_GroupTopInvitersTitle: String { return self._s[3442]! } - public var Passport_Phone_EnterOtherNumber: String { return self._s[3443]! } - public var VoiceChat_StartRecordingTitle: String { return self._s[3444]! } + 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 func Notification_VoiceChatScheduledToday(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3445]!, self._r[3445]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3446]!, self._r[3446]!, [_1, _2]) } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3447]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3448]! } - public var VoiceOver_ChatList_MessageRead: String { return self._s[3450]! } - public var Stats_GroupTopPoster_Promote: String { return self._s[3453]! } - public var Cache_Title: String { return self._s[3454]! } + 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 func Conversation_AutoremoveTimerSetToastText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3455]!, self._r[3455]!, [_0]) + return formatWithArgumentRanges(self._s[3456]!, self._r[3456]!, [_0]) } - public var Clipboard_SendPhoto: String { return self._s[3456]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3458]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3459]! } - public var WatchRemote_AlertTitle: String { return self._s[3462]! } - public var Appearance_ReduceMotion: String { return self._s[3463]! } + 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 func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3466]!, self._r[3466]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3467]!, self._r[3467]!, [_1, _2]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[3467]! } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3468]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[3469]! } + 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 func Call_CallInProgressVoiceChatMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3470]!, self._r[3470]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3471]!, self._r[3471]!, [_1, _2]) } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3472]!, self._r[3472]!, [_0]) + return formatWithArgumentRanges(self._s[3473]!, self._r[3473]!, [_0]) } - public var ChatListFolder_DiscardConfirmation: String { return self._s[3473]! } + public var ChatListFolder_DiscardConfirmation: String { return self._s[3474]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3475]!, self._r[3475]!, [_0]) + return formatWithArgumentRanges(self._s[3476]!, self._r[3476]!, [_0]) } - public var InstantPage_Search: String { return self._s[3476]! } - public var ChatState_WaitingForNetwork: String { return self._s[3477]! } - public var GroupInfo_Sound: String { return self._s[3478]! } - public var NotificationsSound_Telegraph: String { return self._s[3479]! } + 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 func VoiceChat_ParticipantIsSpeaking(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3480]!, self._r[3480]!, [_1]) + return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_1]) } - public var NotificationsSound_Hello: String { return self._s[3481]! } - public var VoiceChat_LeaveConfirmation: String { return self._s[3482]! } - public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3483]! } - public var Passport_FieldIdentityDetailsHelp: String { return self._s[3484]! } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3485]! } - public var Conversation_HoldForVideo: String { return self._s[3486]! } - public var Conversation_PinOlderMessageAlertText: String { return self._s[3487]! } - public var Appearance_ShareTheme: String { return self._s[3488]! } - public var TwoStepAuth_SetupHint: String { return self._s[3489]! } - public var Stats_GrowthTitle: String { return self._s[3492]! } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3493]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[3494]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3495]! } - public var GroupPermission_NoSendMessages: String { return self._s[3498]! } - public var Conversation_SetReminder_Title: String { return self._s[3499]! } - public var Privacy_Calls_CustomHelp: String { return self._s[3500]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3501]! } + 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 func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3502]!, self._r[3502]!, [_0]) + return formatWithArgumentRanges(self._s[3503]!, self._r[3503]!, [_0]) } - public var InviteLinks_InviteLinkExpired: String { return self._s[3504]! } - public var Undo_SecretChatDeleted: String { return self._s[3505]! } - public var PhotoEditor_ContrastTool: String { return self._s[3506]! } - public var Privacy_Forwards: String { return self._s[3507]! } - public var AuthSessions_LoggedInWithTelegram: String { return self._s[3508]! } - public var KeyCommand_SendMessage: String { return self._s[3510]! } - public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3511]! } + 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 func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3512]!, self._r[3512]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3513]!, self._r[3513]!, [_1, _2]) } - public var VoiceChat_VideoPaused: String { return self._s[3513]! } - public var GroupPermission_NoSendGifs: String { return self._s[3514]! } + public var VoiceChat_VideoPaused: String { return self._s[3514]! } + public var GroupPermission_NoSendGifs: String { return self._s[3515]! } public func Notification_VoiceChatEndedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3515]!, self._r[3515]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3516]!, self._r[3516]!, [_1, _2]) } - public var Notification_MessageLifetime2s: String { return self._s[3516]! } - public var Message_Theme: String { return self._s[3517]! } - public var Conversation_Dice_u1F3AF: String { return self._s[3520]! } + 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 func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3521]!, self._r[3521]!, [_0]) + return formatWithArgumentRanges(self._s[3522]!, self._r[3522]!, [_0]) } - public var Group_UpgradeNoticeHeader: String { return self._s[3523]! } - public var PeerInfo_BioExpand: String { return self._s[3524]! } - public var Passport_DeletePersonalDetails: String { return self._s[3525]! } - public var Widget_NoUsers: String { return self._s[3526]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[3527]! } - public var VoiceChat_VideoPreviewDescription: String { return self._s[3528]! } - public var Login_TermsOfServiceDecline: String { return self._s[3529]! } - public var VoiceChat_UnmuteSuggestion: String { return self._s[3530]! } - public var CreatePoll_QuizTip: String { return self._s[3532]! } - public var Watch_LastSeen_WithinAWeek: String { return self._s[3533]! } - public var MessagePoll_SubmitVote: String { return self._s[3535]! } - public var ChatSettings_AutoDownloadEnabled: String { return self._s[3536]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[3537]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3538]! } - public var Conversation_UpdateTelegram: String { return self._s[3539]! } + 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 func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3540]!, self._r[3540]!, [_0]) + return formatWithArgumentRanges(self._s[3541]!, self._r[3541]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3541]! } - public var CallSettings_Always: String { return self._s[3542]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[3543]! } - public var VoiceChat_MutedByAdminHelp: String { return self._s[3544]! } - public var Login_TermsOfServiceHeader: String { return self._s[3545]! } - public var KeyCommand_ChatInfo: String { return self._s[3546]! } - public var MessagePoll_LabelPoll: String { return self._s[3547]! } - public var Paint_Clear: String { return self._s[3548]! } - public var PeerInfo_ButtonMute: String { return self._s[3549]! } - public var LastSeen_WithinAWeek: String { return self._s[3550]! } - public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3551]! } - public var Passport_Identity_FrontSide: String { return self._s[3552]! } - public var Stickers_GroupStickers: String { return self._s[3553]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3554]! } + 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 func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3555]!, self._r[3555]!, [_0]) + return formatWithArgumentRanges(self._s[3556]!, self._r[3556]!, [_0]) } - public var VoiceOver_BotCommands: String { return self._s[3556]! } + public var VoiceOver_BotCommands: String { return self._s[3557]! } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3559]!, self._r[3559]!, [_1]) + return formatWithArgumentRanges(self._s[3560]!, self._r[3560]!, [_1]) } - public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3560]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[3561]! } - public var InviteLink_ContextDelete: String { return self._s[3562]! } + 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 func Notification_LeftChat(_ _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 WebSearch_SearchNoResults: String { return self._s[3565]! } - public var Channel_DiscussionGroup_Create: String { return self._s[3566]! } - public var Passport_Language_es: String { return self._s[3567]! } - public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3568]! } - public var Map_LiveLocationShowAll: String { return self._s[3569]! } - public var Cache_MaximumCacheSizeHelp: String { return self._s[3571]! } - public var Map_OpenInGoogleMaps: String { return self._s[3572]! } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3574]! } - public var EditTheme_Create_BottomInfo: String { return self._s[3575]! } - public var PhotoEditor_BlurToolLinear: String { return self._s[3576]! } + 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 func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3577]!, self._r[3577]!, [_0]) + return formatWithArgumentRanges(self._s[3578]!, self._r[3578]!, [_0]) } - public var Passport_Phone_Delete: String { return self._s[3578]! } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3579]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[3580]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3581]! } + 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 func EncryptionKey_Description(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3582]!, self._r[3582]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3583]!, self._r[3583]!, [_1, _2]) } - public var LogoutOptions_LogOutInfo: String { return self._s[3583]! } - public var Cache_ByPeerHeader: String { return self._s[3585]! } - public var Username_InvalidCharacters: String { return self._s[3586]! } - public var Checkout_ShippingAddress: String { return self._s[3588]! } + 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 func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3589]!, self._r[3589]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[3590]!, self._r[3590]!, [_1, _2, _3, _4]) } - public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3591]! } - public var Conversation_AddContact: String { return self._s[3592]! } - public var Passport_Address_EditUtilityBill: String { return self._s[3593]! } - public var InviteLink_ContextGetQRCode: String { return self._s[3594]! } - public var Conversation_ChecksTooltip_Delivered: String { return self._s[3596]! } + 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 func Channel_AdminLog_MessageAddedAdminNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3597]!, self._r[3597]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3598]!, self._r[3598]!, [_1, _2]) } - public var Message_Video: String { return self._s[3598]! } + public var Message_Video: String { return self._s[3599]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3599]!, self._r[3599]!, [_0]) + return formatWithArgumentRanges(self._s[3600]!, self._r[3600]!, [_0]) } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3600]!, self._r[3600]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[3601]!, self._r[3601]!, ["\(_0)"]) } - public var InviteLink_ReactivateLink: String { return self._s[3601]! } - public var Passport_Language_km: String { return self._s[3603]! } + public var InviteLink_ReactivateLink: String { return self._s[3602]! } + public var Passport_Language_km: String { return self._s[3604]! } public func PUSH_MESSAGE_CHANNEL_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3604]!, self._r[3604]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3605]!, self._r[3605]!, [_1, _2, _3]) } - public var EmptyGroupInfo_Line4: String { return self._s[3605]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3607]! } - public var Notification_CallCanceledShort: String { return self._s[3608]! } - public var PhotoEditor_FadeTool: String { return self._s[3609]! } - public var Group_PublicLink_Info: String { return self._s[3610]! } - public var Contacts_DeselectAll: String { return self._s[3611]! } - public var Conversation_Moderate_Delete: String { return self._s[3613]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3614]! } - public var NotificationsSound_Note: String { return self._s[3617]! } + 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 func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3618]!, self._r[3618]!, [_0]) + return formatWithArgumentRanges(self._s[3619]!, self._r[3619]!, [_0]) } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3619]! } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3621]! } - public var DialogList_SearchSectionGlobal: String { return self._s[3622]! } - public var AccessDenied_Settings: String { return self._s[3623]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3624]! } - public var AuthSessions_EmptyTitle: String { return self._s[3625]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3626]! } - public var GroupInfo_GroupType: String { return self._s[3627]! } - public var Calls_Missed: String { return self._s[3628]! } - public var Contacts_VoiceOver_AddContact: String { return self._s[3629]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3631]! } - public var Passport_Language_uz: String { return self._s[3632]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3633]! } - public var PhotoEditor_BlurToolPortrait: String { return self._s[3634]! } - public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3635]! } - public var Map_ChooseLocationTitle: String { return self._s[3636]! } - public var Checkout_EnterPassword: String { return self._s[3637]! } - public var GroupInfo_ConvertToSupergroup: String { return self._s[3638]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3639]! } - public var NetworkUsageSettings_Title: String { return self._s[3640]! } - public var Location_ProximityAlertCancelled: String { return self._s[3641]! } - public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3642]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[3643]! } - public var Compose_NewChannel: String { return self._s[3644]! } - public var Privacy_PaymentsClearInfo: String { return self._s[3646]! } + 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 func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3647]!, self._r[3647]!, [_1]) + return formatWithArgumentRanges(self._s[3648]!, self._r[3648]!, [_1]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3648]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3649]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[3652]! } - public var WallpaperSearch_ColorBrown: String { return self._s[3653]! } - public var Appearance_AppIconDefault: String { return self._s[3654]! } - public var StickerSettings_ContextInfo: String { return self._s[3657]! } - public var Channel_AddBotErrorNoRights: String { return self._s[3658]! } - public var Passport_FieldPhone: String { return self._s[3660]! } - public var Contacts_PermissionsTitle: String { return self._s[3661]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3662]! } + 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 func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3663]!, self._r[3663]!, [_0]) + return formatWithArgumentRanges(self._s[3664]!, self._r[3664]!, [_0]) } - public var Bot_Unblock: String { return self._s[3664]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[3665]! } - public var InviteLink_InviteLinkCopiedText: String { return self._s[3666]! } - public var Passport_PasswordHelp: String { return self._s[3667]! } - public var TwoFactorSetup_PasswordRecovery_PlaceholderConfirmPassword: String { return self._s[3668]! } - public var Watch_Conversation_UserInfo: String { return self._s[3669]! } + 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 func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3673]!, self._r[3673]!, [_0]) + return formatWithArgumentRanges(self._s[3674]!, self._r[3674]!, [_0]) } - public var State_Connecting: String { return self._s[3675]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3676]! } - public var TextFormat_AddLinkPlaceholder: String { return self._s[3677]! } - public var Conversation_Dice_u1F3B2: String { return self._s[3678]! } + 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[3679]!, self._r[3679]!, [_0]) + return formatWithArgumentRanges(self._s[3680]!, self._r[3680]!, [_0]) } - public var Conversation_SendingOptionsTooltip: String { return self._s[3680]! } - public var ChatList_UndoArchiveTitle: String { return self._s[3681]! } - public var ChatList_EmptyChatListNewMessage: String { return self._s[3682]! } - public var WallpaperSearch_ColorGreen: String { return self._s[3684]! } - public var PhotoEditor_BlurToolOff: String { return self._s[3685]! } - public var Conversation_AutoremoveOff: String { return self._s[3686]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[3687]! } - public var Weekday_Saturday: String { return self._s[3688]! } - public var DialogList_Unread: String { return self._s[3689]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3690]! } - public var Stats_GroupPosters: String { return self._s[3691]! } + 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[3692]!, self._r[3692]!, [_1]) + return formatWithArgumentRanges(self._s[3693]!, self._r[3693]!, [_1]) } - public var Conversation_AlsoClearCacheTitle: String { return self._s[3693]! } + public var Conversation_AlsoClearCacheTitle: String { return self._s[3694]! } public func Conversation_ForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3694]!, self._r[3694]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3695]!, self._r[3695]!, [_0, _1]) } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3697]!, self._r[3697]!, [_0]) + return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_0]) } - public var ReportPeer_ReasonChildAbuse: String { return self._s[3698]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[3699]! } public func Channel_AdminLog_MessageUnkickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3699]!, self._r[3699]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3700]!, self._r[3700]!, [_1, _2]) } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[3700]! } - public var Conversation_EmailCopied: String { return self._s[3702]! } - public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3703]! } - public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3704]! } - public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3705]! } - public var VoiceChat_LateBy: String { return self._s[3706]! } - public var Passport_Language_dv: String { return self._s[3707]! } - public var TwoFactorSetup_PasswordRecovery_Text: String { return self._s[3708]! } - public var GroupPermission_AddSuccess: String { return self._s[3710]! } - public var Passport_Email_Help: String { return self._s[3711]! } - public var Call_ReportPlaceholder: String { return self._s[3712]! } - public var CreatePoll_AddOption: String { return self._s[3713]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3715]! } - public var PeerInfo_ButtonLeave: String { return self._s[3716]! } - public var PhotoEditor_TiltShift: String { return self._s[3719]! } - public var SecretGif_Title: String { return self._s[3721]! } - public var GroupInfo_InviteLinks: String { return self._s[3722]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[3723]! } - public var SocksProxySetup_Connecting: String { return self._s[3725]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3726]! } - public var ContactInfo_PhoneLabelWork: String { return self._s[3727]! } - public var Stats_GroupTopHoursTitle: String { return self._s[3728]! } - public var Compose_NewMessage: String { return self._s[3729]! } - public var VoiceOver_Common_SwitchHint: String { return self._s[3730]! } - public var NotificationsSound_Synth: String { return self._s[3731]! } - public var ChatImport_UserErrorNotMutual: String { return self._s[3732]! } - public var Conversation_FileOpenIn: String { return self._s[3733]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[3734]! } - public var UserInfo_SendMessage: String { return self._s[3735]! } - public var Checkout_PayWithFaceId: String { return self._s[3736]! } + 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 func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3737]!, self._r[3737]!, [_0]) + return formatWithArgumentRanges(self._s[3738]!, self._r[3738]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[3738]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3739]! } - public var Conversation_ViewChannel: String { return self._s[3740]! } + 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 func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3741]!, self._r[3741]!, [_0]) + return formatWithArgumentRanges(self._s[3742]!, self._r[3742]!, [_0]) } - public var Channel_Stickers_Placeholder: String { return self._s[3742]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3743]! } - public var Message_ScamAccount: String { return self._s[3744]! } - public var Camera_FlashAuto: String { return self._s[3745]! } - public var Conversation_EncryptedDescription1: String { return self._s[3746]! } - public var LocalGroup_Text: String { return self._s[3747]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3748]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[3749]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[3750]! } - public var Conversation_EncryptedDescription2: String { return self._s[3751]! } - public var Conversation_CancelForwardText: String { return self._s[3752]! } - public var Notification_GroupActivated: String { return self._s[3753]! } - public var LastSeen_Lately: String { return self._s[3754]! } - public var Conversation_EncryptedDescription3: String { return self._s[3755]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3756]! } - public var Conversation_SwipeToReplyHintText: String { return self._s[3757]! } - public var Conversation_EncryptedDescription4: String { return self._s[3758]! } - public var SharedMedia_EmptyTitle: String { return self._s[3759]! } - public var Appearance_CreateTheme: String { return self._s[3761]! } - public var Stats_SharesPerPost: String { return self._s[3762]! } - public var Contacts_TabTitle: String { return self._s[3763]! } - public var Weekday_ShortThursday: String { return self._s[3764]! } - public var MessageTimer_Forever: String { return self._s[3765]! } - public var ChatListFolder_CategoryArchived: String { return self._s[3766]! } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3767]! } - public var EditTheme_Create_TopInfo: String { return self._s[3769]! } + 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 func VoiceOver_ChatList_MessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3770]!, self._r[3770]!, [_0]) + return formatWithArgumentRanges(self._s[3771]!, self._r[3771]!, [_0]) } - public var Month_GenDecember: String { return self._s[3771]! } - public var EnterPasscode_EnterPasscode: String { return self._s[3772]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3773]! } - public var PeopleNearby_CreateGroup: String { return self._s[3775]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3776]! } - public var Paint_ClearConfirm: String { return self._s[3777]! } - public var ChatList_ReadAll: String { return self._s[3778]! } - public var ChatSettings_IntentsSettings: String { return self._s[3779]! } - public var Passport_PassportInformation: String { return self._s[3781]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3783]! } - public var Location_ProximityNotification_DistanceMI: String { return self._s[3786]! } - public var PhotoEditor_ExposureTool: String { return self._s[3787]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3788]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[3789]! } - public var Stats_GroupTopPoster_History: String { return self._s[3790]! } - public var UserInfo_AddPhone: String { return self._s[3791]! } - public var Media_SendWithTimer: String { return self._s[3793]! } - public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3794]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3795]! } - public var GroupInfo_GroupHistoryShort: String { return self._s[3796]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3797]! } - public var ChatList_Context_Unarchive: String { return self._s[3799]! } + 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 func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3800]!, self._r[3800]!, [_0]) + return formatWithArgumentRanges(self._s[3801]!, self._r[3801]!, [_0]) } - public var BlockedUsers_Title: String { return self._s[3802]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[3803]! } - public var Media_ShareThisPhoto: String { return self._s[3804]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3805]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[3806]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3810]! } - public var CallFeedback_ReasonNoise: String { return self._s[3812]! } - public var WebBrowser_Title: String { return self._s[3813]! } + 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 func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3814]!, self._r[3814]!, [_0]) + return formatWithArgumentRanges(self._s[3815]!, self._r[3815]!, [_0]) } - public var Notification_MessageLifetime5s: String { return self._s[3816]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3817]! } - public var Profile_MessageLifetime1m: String { return self._s[3819]! } - public var Passport_ScanPassport: String { return self._s[3820]! } - public var Stats_LoadingTitle: String { return self._s[3821]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3823]! } - public var Permissions_NotificationsAllow_v0: String { return self._s[3824]! } - public var Login_InvalidFirstNameError: String { return self._s[3825]! } - public var Undo_ChatCleared: String { return self._s[3827]! } + 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 func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3829]!, self._r[3829]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3830]!, self._r[3830]!, [_1, _2]) } - public var Conversation_PinMessageAlertPin: String { return self._s[3830]! } + public var Conversation_PinMessageAlertPin: String { return self._s[3831]! } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3831]!, self._r[3831]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[3832]!, self._r[3832]!, [_1, _2, _3, _4, _5]) } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3832]!, self._r[3832]!, [_1]) + return formatWithArgumentRanges(self._s[3833]!, self._r[3833]!, [_1]) } - public var Share_MultipleMessagesDisabled: String { return self._s[3833]! } - public var TwoStepAuth_EmailInvalid: String { return self._s[3834]! } - public var EnterPasscode_ChangeTitle: String { return self._s[3836]! } - public var VoiceChat_InviteLink_Speaker: String { return self._s[3837]! } - public var CallSettings_RecentCalls: String { return self._s[3838]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[3839]! } - public var AuthSessions_OtherSessions: String { return self._s[3840]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3841]! } - public var Tour_Text5: String { return self._s[3842]! } - public var Login_PadPhoneHelp: String { return self._s[3843]! } - public var Wallpaper_PhotoLibrary: String { return self._s[3846]! } - public var Conversation_ViewGroup: String { return self._s[3847]! } - public var PeopleNearby_MakeVisibleTitle: String { return self._s[3849]! } - public var VoiceOver_Chat_YourContact: String { return self._s[3850]! } - public var Watch_AuthRequired: String { return self._s[3851]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3853]! } - public var Conversation_ForwardContacts: String { return self._s[3854]! } - public var Conversation_InputTextPlaceholder: String { return self._s[3855]! } + 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 func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3856]!, self._r[3856]!, [_1]) + return formatWithArgumentRanges(self._s[3857]!, self._r[3857]!, [_1]) } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3857]!, self._r[3857]!, [_0]) + return formatWithArgumentRanges(self._s[3858]!, self._r[3858]!, [_0]) } - public var Channel_Setup_TypePrivate: String { return self._s[3858]! } + public var Channel_Setup_TypePrivate: String { return self._s[3859]! } public func Conversation_NoticeInvitedByInChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3859]!, self._r[3859]!, [_0]) + return formatWithArgumentRanges(self._s[3860]!, self._r[3860]!, [_0]) } - public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3860]! } - public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3861]! } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[3862]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[3863]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[3864]! } - public var UserInfo_StartSecretChatStart: String { return self._s[3865]! } + 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 func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3866]!, self._r[3866]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3867]!, self._r[3867]!, [_1, _2]) } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3867]!, self._r[3867]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[3868]!, self._r[3868]!, [_0, _1, _2]) } public func Conversation_ForwardTooltip_TwoChats_Many(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3868]!, self._r[3868]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3869]!, self._r[3869]!, [_0, _1]) } - public var PrivacySettings_AutoArchiveTitle: String { return self._s[3869]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[3870]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3871]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[3873]! } - public var NewContact_Title: String { return self._s[3876]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3877]! } - public var VoiceChat_StatusSpeaking: String { return self._s[3878]! } - public var Notifications_PermissionsKeepDisabled: String { return self._s[3879]! } + 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 func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3880]!, self._r[3880]!, [_0]) + return formatWithArgumentRanges(self._s[3881]!, self._r[3881]!, [_0]) } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3881]!, self._r[3881]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3882]!, self._r[3882]!, [_0, _1]) } - public var Chat_SlowmodeTooltipPending: String { return self._s[3882]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[3883]! } public func Time_MediumDate(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3884]!, self._r[3884]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3885]!, self._r[3885]!, [_1, _2]) } - public var ContactInfo_PhoneLabelHome: String { return self._s[3885]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3886]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3887]! } - public var Conversation_MessageEditedLabel: String { return self._s[3890]! } - public var CallList_ActiveVoiceChatsHeader: String { return self._s[3891]! } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3892]! } - public var ChatList_Context_AddToContacts: String { return self._s[3893]! } - public var Passport_Language_is: String { return self._s[3894]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[3895]! } - public var PhotoEditor_CurvesBlue: String { return self._s[3896]! } + 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 func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3897]!, self._r[3897]!, [_0]) + return formatWithArgumentRanges(self._s[3898]!, self._r[3898]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[3898]! } - public var Login_SmsRequestState3: String { return self._s[3899]! } - public var Message_PinnedVideoMessage: String { return self._s[3900]! } - public var SharedMedia_TitleLink: String { return self._s[3901]! } - public var Passport_FieldIdentity: String { return self._s[3902]! } - public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3904]! } + 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 func Conversation_EncryptedPlaceholderTitleOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3907]!, self._r[3907]!, [_0]) + return formatWithArgumentRanges(self._s[3908]!, self._r[3908]!, [_0]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3910]! } - public var ReportSpam_DeleteThisChat: String { return self._s[3911]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3912]! } - public var Passport_Identity_DateOfBirth: String { return self._s[3913]! } - public var Call_StatusIncoming: String { return self._s[3914]! } - public var ChatAdmins_AdminLabel: String { return self._s[3915]! } + 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 func InstantPage_OpenInBrowser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3916]!, self._r[3916]!, [_0]) + return formatWithArgumentRanges(self._s[3917]!, self._r[3917]!, [_0]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3918]!, self._r[3918]!, [_0]) + return formatWithArgumentRanges(self._s[3919]!, self._r[3919]!, [_0]) } - public var Message_PinnedAnimationMessage: String { return self._s[3919]! } - public var VoiceChat_TapToViewCameraVideo: String { return self._s[3920]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[3921]! } - public var Preview_CopyAddress: String { return self._s[3922]! } - public var MediaPlayer_UnknownTrack: String { return self._s[3924]! } - public var Login_CancelSignUpConfirmation: String { return self._s[3925]! } - public var Map_OpenInYandexMaps: String { return self._s[3927]! } + 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 func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3930]!, self._r[3930]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3931]!, self._r[3931]!, [_1, _2, _3]) } - public var GroupRemoved_Remove: String { return self._s[3931]! } - public var ChatListFolder_TitleCreate: String { return self._s[3932]! } + public var GroupRemoved_Remove: String { return self._s[3932]! } + public var ChatListFolder_TitleCreate: String { return self._s[3933]! } public func InstantPage_AuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3934]!, self._r[3934]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3935]!, self._r[3935]!, [_1, _2]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[3935]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[3936]! } public func UserInfo_LinkForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3937]!, self._r[3937]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3938]!, self._r[3938]!, [_0, _1]) } - public var Group_UpgradeNoticeText2: String { return self._s[3938]! } - public var Stats_GroupGrowthTitle: String { return self._s[3939]! } - public var CreatePoll_CancelConfirmation: String { return self._s[3942]! } - public var Month_GenOctober: String { return self._s[3943]! } - public var Conversation_TitleCommentsEmpty: String { return self._s[3944]! } - public var Settings_Appearance: String { return self._s[3945]! } + 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 func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3946]!, self._r[3946]!, [_0]) + return formatWithArgumentRanges(self._s[3947]!, self._r[3947]!, [_0]) } - public var UserInfo_AddToExisting: String { return self._s[3947]! } - public var Call_PhoneCallInProgressMessage: String { return self._s[3949]! } - public var Map_HomeAndWorkInfo: String { return self._s[3950]! } - public var VoiceChat_ContextAudio: String { return self._s[3951]! } - public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3952]! } - public var Paint_Arrow: String { return self._s[3953]! } - public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3954]! } + 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 func DialogList_MultipleTypingPair(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3955]!, self._r[3955]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3956]!, self._r[3956]!, [_0, _1]) } - public var CancelResetAccount_Title: String { return self._s[3956]! } - public var NotificationsSound_Circles: String { return self._s[3957]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3958]! } - public var ChatState_Connecting: String { return self._s[3960]! } - public var Profile_MessageLifetime5s: String { return self._s[3961]! } + 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 func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3962]!, self._r[3962]!, [_0]) + return formatWithArgumentRanges(self._s[3963]!, self._r[3963]!, [_0]) } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3963]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3964]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3965]! } - public var Conversation_DefaultRestrictedStickers: String { return self._s[3967]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[3968]! } + 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[3969]!, self._r[3969]!, [_0]) + return formatWithArgumentRanges(self._s[3970]!, self._r[3970]!, [_0]) } - public var Passport_Phone_Help: String { return self._s[3970]! } - public var Privacy_ContactsSync: String { return self._s[3971]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3972]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3974]! } - public var Map_SendMyCurrentLocation: String { return self._s[3975]! } - public var Map_AddressOnMap: String { return self._s[3976]! } - public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3978]! } - public var DialogList_SearchLabel: String { return self._s[3979]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3980]! } - public var GroupInfo_FakeGroupWarning: String { return self._s[3981]! } - public var Conversation_ChecksTooltip_Read: String { return self._s[3983]! } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3985]! } - public var ChatList_Search_ShowMore: String { return self._s[3986]! } - public var DialogList_EncryptionRejected: String { return self._s[3987]! } - public var VoiceChat_InviteLinkCopiedText: String { return self._s[3988]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[3989]! } - public var VoiceChat_StartRecordingText: String { return self._s[3990]! } - public var Privacy_TopPeersDelete: String { return self._s[3991]! } - public var AttachmentMenu_SendAsFile: String { return self._s[3993]! } - public var ChatList_GenericPsaAlert: String { return self._s[3995]! } - public var SecretTimer_ImageDescription: String { return self._s[3997]! } + 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 func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3998]!, self._r[3998]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3999]!, self._r[3999]!, [_0, _1]) } - public var VoiceChat_EditNameSuccess: String { return self._s[3999]! } - public var ChatSettings_TextSizeUnits: String { return self._s[4000]! } - public var Notification_RenamedGroup: String { return self._s[4002]! } - public var Tour_Title2: String { return self._s[4003]! } - public var Settings_CopyUsername: String { return self._s[4004]! } - public var Compose_NewEncryptedChat: String { return self._s[4005]! } - public var Conversation_CloudStorageInfo_Title: String { return self._s[4006]! } - public var VoiceChat_SetReminder: String { return self._s[4007]! } - public var Month_ShortSeptember: String { return self._s[4008]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[4009]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[4010]! } - public var VoiceChat_StartNow: String { return self._s[4011]! } - public var Call_StatusConnecting: String { return self._s[4013]! } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[4014]! } - public var Map_ShareLiveLocationHelp: String { return self._s[4015]! } - public var Cache_Files: String { return self._s[4016]! } - public var Notifications_Reset: String { return self._s[4017]! } + 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 func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4018]!, self._r[4018]!, [_0]) + return formatWithArgumentRanges(self._s[4019]!, self._r[4019]!, [_0]) } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[4019]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[4020]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4020]!, self._r[4020]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4021]!, self._r[4021]!, [_1, _2]) } - public var Notification_CallIncomingShort: String { return self._s[4021]! } - public var UserInfo_BotPrivacy: String { return self._s[4024]! } - public var Appearance_BubbleCorners_Apply: String { return self._s[4025]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[4026]! } - public var Conversation_ContextMenuLookUp: String { return self._s[4028]! } - public var Calls_RatingTitle: String { return self._s[4029]! } - public var SecretImage_Title: String { return self._s[4030]! } - public var Weekday_Monday: String { return self._s[4031]! } + 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 func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4032]!, self._r[4032]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4033]!, self._r[4033]!, [_1, _2]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[4033]! } - public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[4034]! } - public var Invitation_JoinVoiceChatAsListener: String { return self._s[4035]! } + 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 func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4036]!, self._r[4036]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4037]!, self._r[4037]!, [_1, _2]) } - public var Stats_GroupMembers: String { return self._s[4037]! } - public var Camera_Retake: String { return self._s[4038]! } - public var Conversation_SearchPlaceholder: String { return self._s[4040]! } + 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 func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4041]!, self._r[4041]!, [_0]) + return formatWithArgumentRanges(self._s[4042]!, self._r[4042]!, [_0]) } - public var Channel_DiscussionGroup_Info: String { return self._s[4042]! } - public var SocksProxySetup_Hostname: String { return self._s[4043]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4044]! } - public var Privacy_DeleteDrafts: String { return self._s[4046]! } - public var Login_CancelPhoneVerification: String { return self._s[4048]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[4049]! } - public var VoiceOver_Chat_Profile: String { return self._s[4050]! } + 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 func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4051]!, self._r[4051]!, [_0]) + return formatWithArgumentRanges(self._s[4052]!, self._r[4052]!, [_0]) } - public var TwoStepAuth_EmailSent: String { return self._s[4052]! } - public var Cache_Indexing: String { return self._s[4053]! } - public var Notifications_ExceptionsNone: String { return self._s[4054]! } - public var MessagePoll_LabelQuiz: String { return self._s[4055]! } - public var Call_EncryptionKey_Title: String { return self._s[4056]! } - public var Common_Yes: String { return self._s[4057]! } - public var Channel_ErrorAddBlocked: String { return self._s[4058]! } - public var Month_GenJanuary: String { return self._s[4059]! } - public var Checkout_NewCard_Title: String { return self._s[4060]! } + 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 func TwoStepAuth_EnterPasswordHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4061]!, self._r[4061]!, [_0]) + return formatWithArgumentRanges(self._s[4062]!, self._r[4062]!, [_0]) } - public var Conversation_InputTextPlaceholderReply: String { return self._s[4063]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4064]! } - public var Conversation_SendDice: String { return self._s[4065]! } + 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 func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4066]!, self._r[4066]!, [_0]) - } - public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4067]!, self._r[4067]!, [_0]) } - public var Weekday_Wednesday: String { return self._s[4068]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[4069]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[4070]! } - public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4071]! } - public var OldChannels_NoticeTitle: String { return self._s[4072]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[4073]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[4074]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4075]! } - public var Passport_Address_AddUtilityBill: String { return self._s[4076]! } + public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4068]!, self._r[4068]!, [_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 func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4078]!, self._r[4078]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4079]!, self._r[4079]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4080]! } - public var Stats_GroupTopAdminsTitle: String { return self._s[4081]! } - public var Paint_Regular: String { return self._s[4083]! } - public var Message_Contact: String { return self._s[4084]! } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4085]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[4086]! } - public var Notification_Mute1hMin: String { return self._s[4087]! } + 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 func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4088]!, self._r[4088]!, [_0]) + return formatWithArgumentRanges(self._s[4089]!, self._r[4089]!, [_0]) } - public var Profile_MessageLifetime1h: String { return self._s[4089]! } - public var TwoStepAuth_GenericHelp: String { return self._s[4090]! } - public var TwoFactorSetup_PasswordRecovery_Skip: String { return self._s[4091]! } - public var TextFormat_Monospace: String { return self._s[4092]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4094]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[4095]! } - public var ChatList_DeleteChat: String { return self._s[4096]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4099]! } + 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 func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4100]!, self._r[4100]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[4101]!, self._r[4101]!, [_1, _2, _3, _4]) } - public var Login_CancelPhoneVerificationStop: String { return self._s[4101]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4102]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4103]! } + 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 func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4104]!, self._r[4104]!, [_0]) + return formatWithArgumentRanges(self._s[4105]!, self._r[4105]!, [_0]) } - public var Notifications_Badge_IncludeChannels: String { return self._s[4105]! } - public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4106]! } - public var StickerPack_ViewPack: String { return self._s[4109]! } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4111]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4112]! } - public var Notifications_Title: String { return self._s[4113]! } - public var Conversation_InputTextPlaceholderComment: String { return self._s[4114]! } - public var GroupInfo_PublicLink: String { return self._s[4115]! } + 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 func ScheduleVoiceChat_GroupText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4116]!, self._r[4116]!, [_0]) + return formatWithArgumentRanges(self._s[4117]!, self._r[4117]!, [_0]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[4117]! } - public var Conversation_Moderate_Ban: String { return self._s[4121]! } - public var InviteLink_Manage: String { return self._s[4122]! } - public var InstantPage_FontNewYork: String { return self._s[4123]! } + 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 func Activity_RemindAboutGroup(_ _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 TextFormat_Underline: String { return self._s[4125]! } + public var TextFormat_Underline: String { return self._s[4126]! } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4126]!, self._r[4126]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4127]!, self._r[4127]!, [_0, _1]) } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4127]!, self._r[4127]!, [_1]) + return formatWithArgumentRanges(self._s[4128]!, self._r[4128]!, [_1]) } - public var PollResults_Collapse: String { return self._s[4129]! } - public var Contacts_GlobalSearch: String { return self._s[4130]! } + public var PollResults_Collapse: String { return self._s[4130]! } + public var Contacts_GlobalSearch: String { return self._s[4131]! } public func Conversation_EncryptionWaiting(_ _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 Channel_Management_LabelEditor: String { return self._s[4133]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4135]! } - public var Conversation_Theme: String { return self._s[4136]! } + 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 func PUSH_CHANNEL_MESSAGE_DOCS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4137]!, self._r[4137]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4138]!, self._r[4138]!, [_1, "\(_2)"]) } - public var Conversation_LinkDialogSave: String { return self._s[4138]! } - public var EnterPasscode_TouchId: String { return self._s[4139]! } - public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4140]! } - public var Group_ErrorAdminsTooMuch: String { return self._s[4141]! } - public var Stats_MessageOverview: String { return self._s[4142]! } - public var Privacy_Calls_P2PAlways: String { return self._s[4144]! } - public var Message_Sticker: String { return self._s[4145]! } - public var TwoFactorSetup_PasswordRecovery_SkipAlertTitle: String { return self._s[4146]! } - public var Conversation_Mute: String { return self._s[4149]! } - public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4150]! } - public var ContactInfo_Title: String { return self._s[4151]! } + 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 func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4152]!, self._r[4152]!, [_1]) + return formatWithArgumentRanges(self._s[4153]!, self._r[4153]!, [_1]) } - public var Channel_Setup_TypeHeader: String { return self._s[4153]! } - public var AuthSessions_LogOut: String { return self._s[4154]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[4155]! } - public var VoiceChat_PinVideo: String { return self._s[4156]! } - public var Group_Info_Members: String { return self._s[4158]! } - public var ChatListFolderSettings_NewFolder: String { return self._s[4159]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4160]! } - public var CreatePoll_Title: String { return self._s[4161]! } - public var EditTheme_EditTitle: String { return self._s[4162]! } - public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4163]! } - public var TwoStepAuth_SetPassword: String { return self._s[4164]! } + 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 func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4165]!, self._r[4165]!, [_0]) + return formatWithArgumentRanges(self._s[4166]!, self._r[4166]!, [_0]) } - public var BlockedUsers_Info: String { return self._s[4166]! } - public var AuthSessions_Sessions: String { return self._s[4167]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4168]! } - public var Common_ActionNotAllowedError: String { return self._s[4169]! } - public var WebPreview_GettingLinkInfo: String { return self._s[4170]! } - public var Appearance_AppIconFilledX: String { return self._s[4171]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[4172]! } - public var FeaturedStickers_OtherSection: String { return self._s[4173]! } - public var VoiceChat_RecordingStarted: String { return self._s[4174]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4175]! } - public var Profile_Username: String { return self._s[4176]! } - public var Settings_TipsUsername: String { return self._s[4177]! } - public var Appearance_RemoveTheme: String { return self._s[4178]! } - public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4179]! } - public var Message_PinnedStickerMessage: String { return self._s[4180]! } - public var AccessDenied_VideoMicrophone: String { return self._s[4181]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[4182]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[4183]! } - public var Conversation_VoiceChat: String { return self._s[4184]! } - public var VoiceChat_EditBioSuccess: String { return self._s[4185]! } - public var ImportStickerPack_LinkAvailable: String { return self._s[4186]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4187]! } - public var TwoStepAuth_Title: String { return self._s[4188]! } - public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4189]! } - public var Checkout_WebConfirmation_Title: String { return self._s[4190]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4191]! } - public var ChatListFolder_CategoryGroups: String { return self._s[4193]! } - public var Stats_GroupTopInviter_Promote: String { return self._s[4194]! } - public var Conversation_EditingPhotoPanelTitle: String { return self._s[4195]! } - public var Month_GenJuly: String { return self._s[4196]! } - public var Passport_Identity_Gender: String { return self._s[4197]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4198]! } - public var Notification_Exceptions_DeleteAll: String { return self._s[4199]! } - public var VoiceChat_StopRecording: String { return self._s[4200]! } + 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 func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4201]!, self._r[4201]!, [_0]) + return formatWithArgumentRanges(self._s[4202]!, self._r[4202]!, [_0]) } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4202]!, self._r[4202]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[4203]!, self._r[4203]!, [_0, _1, _2]) } - public var Login_CodeSentSms: String { return self._s[4203]! } + public var Login_CodeSentSms: String { return self._s[4204]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4204]!, self._r[4204]!, [_0]) + return formatWithArgumentRanges(self._s[4205]!, self._r[4205]!, [_0]) } - public var Login_CallRequestState2: String { return self._s[4205]! } - public var Channel_DiscussionGroup_Header: String { return self._s[4206]! } + public var Login_CallRequestState2: String { return self._s[4206]! } + public var Channel_DiscussionGroup_Header: String { return self._s[4207]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4207]!, self._r[4207]!, [_0]) + return formatWithArgumentRanges(self._s[4208]!, self._r[4208]!, [_0]) } - public var Passport_Language_ms: String { return self._s[4208]! } - public var PeopleNearby_MakeInvisible: String { return self._s[4210]! } - public var ImportStickerPack_CreateStickerSet: String { return self._s[4212]! } - public var ChatList_Search_FilterVoice: String { return self._s[4213]! } - public var Camera_TapAndHoldForVideo: String { return self._s[4215]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4216]! } + 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 func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4217]!, self._r[4217]!, [_0]) + return formatWithArgumentRanges(self._s[4218]!, self._r[4218]!, [_0]) } public func Call_VoiceChatInProgressMessageCall(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4218]!, self._r[4218]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4219]!, self._r[4219]!, [_1, _2]) } - public var Map_Locating: String { return self._s[4219]! } + public var Map_Locating: String { return self._s[4220]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4221]!, self._r[4221]!, [_0]) + return formatWithArgumentRanges(self._s[4222]!, self._r[4222]!, [_0]) } - public var Passport_Identity_TypeInternalPassport: String { return self._s[4223]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4224]! } - public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4225]! } - public var Stickers_Installed: String { return self._s[4226]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[4227]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[4228]! } - public var CallSettings_Never: String { return self._s[4230]! } - public var Channel_Setup_TypePublicHelp: String { return self._s[4231]! } + 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 func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4233]!, self._r[4233]!, [_0]) + return formatWithArgumentRanges(self._s[4234]!, self._r[4234]!, [_0]) } - public var Message_Game: String { return self._s[4234]! } - public var Call_Message: String { return self._s[4235]! } + public var Message_Game: String { return self._s[4235]! } + public var Call_Message: String { return self._s[4236]! } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4236]!, self._r[4236]!, [_1]) + return formatWithArgumentRanges(self._s[4237]!, self._r[4237]!, [_1]) } - public var ChannelIntro_Text: String { return self._s[4237]! } - public var VoiceChat_NoiseSuppressionEnabled: String { return self._s[4238]! } - public var StickerPack_Send: String { return self._s[4239]! } - public var Share_AuthDescription: String { return self._s[4240]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4241]! } - public var CallFeedback_WhatWentWrong: String { return self._s[4242]! } - public var Common_Create: String { return self._s[4245]! } - public var Passport_Language_hy: String { return self._s[4246]! } - public var CreatePoll_Explanation: String { return self._s[4247]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[4248]! } - public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4249]! } - public var PeerInfo_ButtonVoiceChat: String { return self._s[4250]! } - public var Undo_ChatClearedForBothSides: String { return self._s[4251]! } - public var DialogList_NoMessagesTitle: String { return self._s[4252]! } - public var GroupInfo_Title: String { return self._s[4254]! } + 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 func ScheduleVoiceChat_ScheduleToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4255]!, self._r[4255]!, [_0]) + return formatWithArgumentRanges(self._s[4256]!, self._r[4256]!, [_0]) } - public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4256]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[4257]! } - public var PhoneNumberHelp_Help: String { return self._s[4258]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4259]! } - public var Settings_Logout: String { return self._s[4260]! } - public var Privacy_PaymentsTitle: String { return self._s[4261]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[4262]! } - public var Tour_Text6: String { return self._s[4263]! } - public var ChatImportActivity_Title: String { return self._s[4265]! } - public var Channel_Username_Help: String { return self._s[4266]! } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4267]! } - public var AttachmentMenu_Poll: String { return self._s[4268]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4269]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4270]! } - public var Passport_DeletePassport: String { return self._s[4271]! } - public var Login_Code: String { return self._s[4272]! } - public var Notification_SecretChatScreenshot: String { return self._s[4273]! } - public var VoiceChat_AddBio: String { return self._s[4274]! } - public var Login_CodeFloodError: String { return self._s[4275]! } + 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 func Notification_PinnedAnimationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4276]!, self._r[4276]!, [_0]) - } - public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4277]!, self._r[4277]!, [_0]) } - public var Watch_Stickers_Recents: String { return self._s[4278]! } - public var Generic_ErrorMoreInfo: String { return self._s[4279]! } + public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4278]!, self._r[4278]!, [_0]) + } + public var Watch_Stickers_Recents: String { return self._s[4279]! } + public var Generic_ErrorMoreInfo: String { return self._s[4280]! } public func Call_AccountIsLoggedOnCurrentDevice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4280]!, self._r[4280]!, [_0]) + return formatWithArgumentRanges(self._s[4281]!, self._r[4281]!, [_0]) } - public var AutoDownloadSettings_DataUsage: String { return self._s[4281]! } - public var Conversation_ViewTheme: String { return self._s[4282]! } - public var Contacts_InviteSearchLabel: String { return self._s[4283]! } - public var Settings_CancelUpload: String { return self._s[4285]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[4286]! } + 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[4287]!, self._r[4287]!, [_0]) + return formatWithArgumentRanges(self._s[4288]!, self._r[4288]!, [_0]) } - public var ChatList_AddFolder: String { return self._s[4288]! } - public var Conversation_Location: String { return self._s[4290]! } - public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4291]! } - public var DialogList_AdLabel: String { return self._s[4292]! } + 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)]) { - return formatWithArgumentRanges(self._s[4294]!, self._r[4294]!, [_0]) + return formatWithArgumentRanges(self._s[4295]!, self._r[4295]!, [_0]) } - public var Message_InvoiceLabel: String { return self._s[4295]! } - public var Channel_TooMuchBots: String { return self._s[4296]! } + public var Message_InvoiceLabel: String { return self._s[4296]! } + public var Channel_TooMuchBots: String { return self._s[4297]! } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4298]!, self._r[4298]!, [_0]) + return formatWithArgumentRanges(self._s[4299]!, self._r[4299]!, [_0]) } - public var Call_IncomingVideoCall: String { return self._s[4299]! } - public var Conversation_LiveLocation: String { return self._s[4300]! } - public var VoiceChat_AskedToSpeakHelp: String { return self._s[4301]! } - public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4302]! } - public var Passport_Identity_EditPassport: String { return self._s[4303]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[4305]! } - public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4306]! } - public var GroupInfo_Permissions_AddException: String { return self._s[4307]! } + 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 func VoiceChat_RemovePeerConfirmationChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4309]!, self._r[4309]!, [_0]) + return formatWithArgumentRanges(self._s[4310]!, self._r[4310]!, [_0]) } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[4310]! } - public var Channel_MessageVideoUpdated: String { return self._s[4311]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4312]! } - public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4315]! } - public var AccessDenied_Camera: String { return self._s[4316]! } + 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 func Target_InviteToGroupConfirmation(_ _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 Theme_Context_ChangeColors: String { return self._s[4318]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[4319]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[4320]! } - public var Login_CodeExpiredError: String { return self._s[4321]! } - public var State_ConnectingToProxy: String { return self._s[4322]! } - public var TextFormat_Link: String { return self._s[4323]! } - public var Passport_Language_lv: String { return self._s[4325]! } - public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4326]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[4327]! } - public var WallpaperPreview_SwipeBottomText: String { return self._s[4328]! } - public var ProfilePhoto_SetMainVideo: String { return self._s[4329]! } - public var AutoDownloadSettings_Cellular: String { return self._s[4331]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4332]! } - public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4333]! } + 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 func Channel_AdminLog_MessageKickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4334]!, self._r[4334]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4335]!, self._r[4335]!, [_1, _2]) } - public var ChatList_EmptyChatListFilterTitle: String { return self._s[4335]! } - public var Checkout_PayNone: String { return self._s[4336]! } - public var NotificationsSound_Complete: String { return self._s[4338]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4339]! } - public var InviteLink_CreateInfo: String { return self._s[4340]! } - public var AuthSessions_DevicesTitle: String { return self._s[4341]! } + 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 func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4342]!, self._r[4342]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4343]!, self._r[4343]!, [_0, _1]) } - public var Message_LiveLocation: String { return self._s[4343]! } - public var Watch_Suggestion_BRB: String { return self._s[4344]! } - public var Channel_BanUser_Title: String { return self._s[4345]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4346]! } - public var Conversation_Dice_u1F3C0: String { return self._s[4347]! } - public var Conversation_ClearSelfHistory: String { return self._s[4348]! } - public var ProfilePhoto_OpenGallery: String { return self._s[4349]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[4350]! } - public var Weekday_Thursday: String { return self._s[4351]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4352]! } - public var Privacy_ProfilePhoto: String { return self._s[4354]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4355]! } + 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 func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4356]!, self._r[4356]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4357]!, self._r[4357]!, [_1, _2]) } - public var Message_Audio: String { return self._s[4357]! } - public var Conversation_Info: String { return self._s[4358]! } - public var Cache_Videos: String { return self._s[4359]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4360]! } - public var Channel_ErrorAddTooMuch: String { return self._s[4361]! } + 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 func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4362]!, self._r[4362]!, [_0]) + return formatWithArgumentRanges(self._s[4363]!, self._r[4363]!, [_0]) } - public var VoiceChat_EditBio: String { return self._s[4363]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4365]! } - public var VoiceChat_ShareScreen: String { return self._s[4368]! } - public var ScheduledMessages_Title: String { return self._s[4369]! } - public var ShareFileTip_Title: String { return self._s[4372]! } - public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4373]! } - public var ChatList_RemoveFolderConfirmation: String { return self._s[4374]! } + 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 func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4375]!, self._r[4375]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4376]!, self._r[4376]!, [_1, _2]) } - public var Conversation_ContextViewStats: String { return self._s[4377]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4378]! } - public var PasscodeSettings_Title: String { return self._s[4379]! } - public var Channel_AdminLog_SendPolls: String { return self._s[4380]! } - public var LastSeen_ALongTimeAgo: String { return self._s[4381]! } + 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 func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4382]!, self._r[4382]!, [_1]) + return formatWithArgumentRanges(self._s[4383]!, self._r[4383]!, [_1]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4383]! } - public var ChannelInfo_FakeChannelWarning: String { return self._s[4384]! } - public var CallFeedback_VideoReasonLowQuality: String { return self._s[4385]! } - public var Conversation_PinnedPreviousMessage: String { return self._s[4386]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[4387]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[4388]! } + 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 func ChatList_RemovedFromFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4389]!, self._r[4389]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4390]!, self._r[4390]!, [_1, _2]) } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4390]!, self._r[4390]!, [_0]) + return formatWithArgumentRanges(self._s[4391]!, self._r[4391]!, [_0]) } - public var Passport_Identity_GenderFemale: String { return self._s[4391]! } - public var Location_ProximityNotification_DistanceKM: String { return self._s[4394]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[4395]! } + 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 func Message_ImportedDateFormat(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4396]!, self._r[4396]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4397]!, self._r[4397]!, [_1, _2, _3]) } - public var VoiceChat_Audio: String { return self._s[4397]! } - public var SharedMedia_TitleAll: String { return self._s[4398]! } - public var Settings_Context_Logout: String { return self._s[4399]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4402]! } - public var Settings_About_Title: String { return self._s[4403]! } - public var StickerSettings_ContextHide: String { return self._s[4404]! } + 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 func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4405]!, self._r[4405]!, [_0]) - } - public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4406]!, self._r[4406]!, [_0]) } - public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4408]! } - public var Common_Cancel: String { return self._s[4409]! } - public var CallFeedback_Title: String { return self._s[4411]! } - public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4412]!, self._r[4412]!, [_0]) + public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4407]!, self._r[4407]!, [_0]) } - public var Conversation_StickerAddedToFavorites: String { return self._s[4413]! } - public var Activity_UploadingVideoMessage: String { return self._s[4415]! } - public var MediaPicker_Send: String { return self._s[4416]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4417]! } - public var Conversation_LiveLocationYou: String { return self._s[4418]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[4419]! } + 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 Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4421]!, self._r[4421]!, [_0]) + return formatWithArgumentRanges(self._s[4422]!, self._r[4422]!, [_0]) } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4422]!, self._r[4422]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4423]!, self._r[4423]!, [_1, _2]) } - public var Checkout_PaymentLiabilityAlert: String { return self._s[4423]! } - public var Conversation_ViewBackground: String { return self._s[4424]! } - public var ChatSettings_PrivateChats: String { return self._s[4427]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[4428]! } - public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4429]! } - public var Appearance_ThemeNight: String { return self._s[4430]! } - public var Common_Search: String { return self._s[4431]! } - public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4432]! } - public var ChangePhoneNumberNumber_Help: String { return self._s[4434]! } - public var InviteLink_QRCode_Share: String { return self._s[4435]! } - public var Stickers_SuggestAdded: String { return self._s[4437]! } + 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 func VoiceChat_VideoParticipantsLimitExceeded(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4439]!, self._r[4439]!, [_0]) + return formatWithArgumentRanges(self._s[4440]!, self._r[4440]!, [_0]) } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4441]! } - public var Widget_UpdatedTodayAt: String { return self._s[4442]! } - public var NetworkUsageSettings_Cellular: String { return self._s[4443]! } - public var CheckoutInfo_Title: String { return self._s[4444]! } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4445]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[4446]! } + 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 func DialogList_SingleRecordingAudioSuffix(_ _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 MaskStickerSettings_Info: String { return self._s[4449]! } - public var GroupRemoved_DeleteUser: String { return self._s[4451]! } - public var Contacts_ShareTelegram: String { return self._s[4452]! } - public var Group_UpgradeNoticeText1: String { return self._s[4453]! } + 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 func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4454]!, self._r[4454]!, [_1]) + return formatWithArgumentRanges(self._s[4455]!, self._r[4455]!, [_1]) } - public var PrivacyLastSeenSettings_Title: String { return self._s[4455]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[4459]! } - public var PhotoEditor_TintTool: String { return self._s[4460]! } - public var ChatImportActivity_OpenApp: String { return self._s[4462]! } - public var GroupPermission_NoSendPolls: String { return self._s[4463]! } - public var NotificationsSound_None: String { return self._s[4464]! } + 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 func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4465]!, self._r[4465]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4466]!, self._r[4466]!, [_1, "\(_2)"]) } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4468]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4469]! } public func Conversation_AutoremoveTimerSetChannel(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4470]!, self._r[4470]!, [_1]) + return formatWithArgumentRanges(self._s[4471]!, self._r[4471]!, [_1]) } - public var ExplicitContent_AlertChannel: String { return self._s[4471]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[4472]! } - public var Contacts_SortedByPresence: String { return self._s[4473]! } - public var WallpaperSearch_ColorGray: String { return self._s[4474]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4475]! } - public var Conversation_ReportSpam: String { return self._s[4476]! } - public var ChatList_Search_NoResultsFilter: String { return self._s[4479]! } - public var WallpaperSearch_ColorBlack: String { return self._s[4480]! } - public var ArchivedChats_IntroTitle3: String { return self._s[4481]! } - public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4482]! } + 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 func VoiceChat_PeerJoinedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4483]!, self._r[4483]!, [_0]) + return formatWithArgumentRanges(self._s[4484]!, self._r[4484]!, [_0]) } - public var Conversation_DefaultRestrictedText: String { return self._s[4484]! } - public var Settings_Devices: String { return self._s[4485]! } - public var Call_AudioRouteSpeaker: String { return self._s[4486]! } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[4487]! } - public var VoiceChat_StartsIn: String { return self._s[4488]! } - public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4489]! } - public var VoiceChat_EditDescriptionTitle: String { return self._s[4491]! } - public var Passport_Address_Country: String { return self._s[4492]! } - public var Cache_MaximumCacheSize: String { return self._s[4493]! } - public var Chat_PanelHidePinnedMessages: String { return self._s[4494]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[4495]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4497]! } - public var Login_TermsOfServiceLabel: String { return self._s[4498]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[4499]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4500]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4501]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[4502]! } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[4503]! } - public var ConvertToSupergroup_Note: String { return self._s[4505]! } - public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4506]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4507]! } - public var Common_More: String { return self._s[4508]! } - public var ShareMenu_SelectChats: String { return self._s[4510]! } + 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 func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4511]!, self._r[4511]!, [_0]) - } - public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4512]!, self._r[4512]!, [_0]) } - public var Contacts_PermissionsKeepDisabled: String { return self._s[4514]! } - public var VoiceChat_EditBioText: String { return self._s[4515]! } + public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4513]!, self._r[4513]!, [_0]) + } + public var Contacts_PermissionsKeepDisabled: String { return self._s[4515]! } + public var VoiceChat_EditBioText: String { return self._s[4516]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4516]!, self._r[4516]!, [_0]) + return formatWithArgumentRanges(self._s[4517]!, self._r[4517]!, [_0]) } - public var WatchRemote_AlertOpen: String { return self._s[4517]! } + public var WatchRemote_AlertOpen: String { return self._s[4518]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4518]!, self._r[4518]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4519]!, self._r[4519]!, [_1, _2, _3]) } - public var Channel_Members_AddMembersHelp: String { return self._s[4519]! } - public var Shortcut_SwitchAccount: String { return self._s[4520]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4521]! } + 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 func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4522]!, self._r[4522]!, [_0]) + return formatWithArgumentRanges(self._s[4523]!, self._r[4523]!, [_0]) } - public var Compose_NewGroupTitle: String { return self._s[4523]! } - public var DialogList_You: String { return self._s[4524]! } - public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4525]! } - public var ReportPeer_ReasonViolence: String { return self._s[4526]! } + 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 func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4527]!, self._r[4527]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4528]!, self._r[4528]!, [_1, _2]) } - public var VoiceChat_Reconnecting: String { return self._s[4529]! } - public var KeyCommand_ScrollDown: String { return self._s[4532]! } - public var ChatSettings_DownloadInBackground: String { return self._s[4533]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4534]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[4535]! } - public var ArchivedChats_IntroText3: String { return self._s[4536]! } - public var HashtagSearch_AllChats: String { return self._s[4538]! } - public var VoiceChat_EndVoiceChat: String { return self._s[4539]! } - public var Conversation_MessageCopied: String { return self._s[4541]! } - public var Channel_Info_BlackList: String { return self._s[4542]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4543]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4544]! } - public var Paint_Neon: String { return self._s[4546]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4547]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[4548]! } + 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 func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4550]!, self._r[4550]!, [_0]) + return formatWithArgumentRanges(self._s[4552]!, self._r[4552]!, [_0]) } - public var Map_StopLiveLocation: String { return self._s[4551]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4552]! } - public var Channel_Username_InvalidCharacters: String { return self._s[4553]! } - public var InstantPage_Reference: String { return self._s[4555]! } - public var Group_Members_AddMembers: String { return self._s[4557]! } + 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 func Conversation_ScheduledVoiceChatStartsOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4558]!, self._r[4558]!, [_0]) + return formatWithArgumentRanges(self._s[4560]!, self._r[4560]!, [_0]) } - public var ChatList_HideAction: String { return self._s[4559]! } - public var Conversation_FileICloudDrive: String { return self._s[4561]! } + public var ChatList_HideAction: String { return self._s[4561]! } + public var Conversation_FileICloudDrive: String { return self._s[4563]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4562]!, self._r[4562]!, [_1]) + return formatWithArgumentRanges(self._s[4564]!, self._r[4564]!, [_1]) } - public var Passport_PasswordReset: String { return self._s[4564]! } - public var ChatList_Context_UnhideArchive: String { return self._s[4566]! } - public var ConvertToSupergroup_HelpText: String { return self._s[4567]! } - public var Calls_AddTab: String { return self._s[4568]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4570]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4571]! } - public var Privacy_GroupsAndChannels: String { return self._s[4574]! } - public var Conversation_UsernameCopied: String { return self._s[4575]! } - public var AutoNightTheme_Disabled: String { return self._s[4576]! } - public var CreatePoll_MultipleChoice: String { return self._s[4577]! } + 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 func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4578]!, self._r[4578]!, [_1]) + return formatWithArgumentRanges(self._s[4580]!, self._r[4580]!, [_1]) } - public var Watch_Bot_Restart: String { return self._s[4580]! } + public var Watch_Bot_Restart: String { return self._s[4582]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4581]!, self._r[4581]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[4583]!, self._r[4583]!, ["\(_0)"]) } - public var GroupInfo_ScamGroupWarning: String { return self._s[4583]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[4584]! } - public var Appearance_PreviewIncomingText: String { return self._s[4585]! } - public var ChatSettings_WidgetSettings: String { return self._s[4586]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4587]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4589]! } - public var Stats_GroupOverview: String { return self._s[4591]! } - public var ScheduledMessages_EditTime: String { return self._s[4594]! } - public var Month_GenFebruary: String { return self._s[4595]! } - public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4596]! } - public var Stickers_ClearRecent: String { return self._s[4597]! } - public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4598]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4599]! } - public var Stats_Message_PublicShares: String { return self._s[4600]! } + 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 func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4601]!, self._r[4601]!, [_0]) + return formatWithArgumentRanges(self._s[4603]!, self._r[4603]!, [_0]) } - public var Login_TermsOfServiceSignupDecline: String { return self._s[4602]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4603]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[4604]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4605]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4607]! } - public var CreatePoll_Create: String { return self._s[4608]! } - public var ChatList_Search_FilterLinks: String { return self._s[4609]! } - public var Your_cards_number_is_invalid: String { return self._s[4610]! } - public var Month_ShortApril: String { return self._s[4611]! } - public var SocksProxySetup_UseForCalls: String { return self._s[4612]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[4613]! } - public var SocksProxySetup_Status: String { return self._s[4614]! } - public var VoiceChat_UnmuteForMe: String { return self._s[4615]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4616]! } - public var ChatListFolder_CategoryBots: String { return self._s[4617]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[4619]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4620]! } - public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4621]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[4622]! } - public var Conversation_TitleUnmute: String { return self._s[4623]! } - public var Group_Setup_TypeHeader: String { return self._s[4624]! } + 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 func Conversation_ForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4625]!, self._r[4625]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4627]!, self._r[4627]!, [_0, _1]) } - public var Stats_ViewsPerPost: String { return self._s[4626]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4627]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4628]! } + 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 func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4629]!, self._r[4629]!, [_1]) + return formatWithArgumentRanges(self._s[4631]!, self._r[4631]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[4630]! } + public var GroupInfo_Administrators_Title: String { return self._s[4632]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4631]!, self._r[4631]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4633]!, self._r[4633]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4632]!, self._r[4632]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4634]!, self._r[4634]!, [_1, _2, _3]) } - public var CheckoutInfo_ShippingInfoState: String { return self._s[4633]! } - public var Passport_Language_my: String { return self._s[4635]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4636]! } - public var VoiceChat_Unpin: String { return self._s[4637]! } - public var Map_PlacesNearby: String { return self._s[4638]! } - public var Channel_About_Help: String { return self._s[4639]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[4640]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[4641]! } - public var Channel_Username_Title: String { return self._s[4642]! } - public var Activity_RecordingVideoMessage: String { return self._s[4643]! } + 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 func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4644]!, self._r[4644]!, [_0]) + return formatWithArgumentRanges(self._s[4646]!, self._r[4646]!, [_0]) } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[4645]! } - public var Passport_DiscardMessageDescription: String { return self._s[4646]! } - public var Conversation_LinkDialogOpen: String { return self._s[4647]! } - public var ChatList_Context_HideArchive: String { return self._s[4648]! } + 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 func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4649]!, self._r[4649]!, [_0]) + return formatWithArgumentRanges(self._s[4651]!, self._r[4651]!, [_0]) } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4650]! } - public var Conversation_Admin: String { return self._s[4651]! } - public var DialogList_TabTitle: String { return self._s[4652]! } + 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 func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4653]!, self._r[4653]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4655]!, self._r[4655]!, [_1, _2]) } - public var Notifications_PermissionsUnreachableText: String { return self._s[4654]! } - public var Passport_Identity_GenderMale: String { return self._s[4656]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[4656]! } + public var Passport_Identity_GenderMale: String { return self._s[4658]! } public func VoiceChat_EditTitleSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4658]!, self._r[4658]!, [_0]) + return formatWithArgumentRanges(self._s[4660]!, self._r[4660]!, [_0]) } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4659]! } - public var PhoneNumberHelp_Alert: String { return self._s[4660]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4661]! } - public var Notifications_InAppNotifications: String { return self._s[4662]! } + 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 func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4663]!, self._r[4663]!, [_0]) + return formatWithArgumentRanges(self._s[4665]!, self._r[4665]!, [_0]) } - public var Notification_VideoCallOutgoing: String { return self._s[4664]! } - public var Login_InvalidCodeError: String { return self._s[4665]! } - public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4666]! } + 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 func LastSeen_TodayAt(_ _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 Conversation_InputTextCaptionPlaceholder: String { return self._s[4669]! } - public var ReportPeer_Report: String { return self._s[4670]! } - public var Camera_FlashOff: String { return self._s[4673]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4676]! } + 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 func Notification_VoiceChatScheduledTomorrow(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4677]!, self._r[4677]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4679]!, self._r[4679]!, [_1, _2]) } - public var PrivacyPolicy_DeclineTitle: String { return self._s[4680]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4681]! } - public var Passport_FieldEmail: String { return self._s[4682]! } + 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 func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4683]!, self._r[4683]!, [_1]) + return formatWithArgumentRanges(self._s[4685]!, self._r[4685]!, [_1]) } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[4684]! } - public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4685]! } - public var Group_OwnershipTransfer_Title: String { return self._s[4686]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[4687]! } - public var Login_PhoneNumberHelp: String { return self._s[4689]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4690]! } - public var Conversation_PinnedQuiz: String { return self._s[4691]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[4692]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4693]! } - public var Group_MessagePhotoUpdated: String { return self._s[4694]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[4695]! } - public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4696]! } - public var Passport_Identity_Translations: String { return self._s[4698]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4699]! } - public var ChannelInfo_DeleteChannel: String { return self._s[4701]! } - public var PasscodeSettings_HelpBottom: String { return self._s[4702]! } - public var Channel_Members_AddMembers: String { return self._s[4703]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[4704]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4706]! } - public var Conversation_HoldForAudio: String { return self._s[4707]! } - public var Media_LimitedAccessChangeSettings: String { return self._s[4709]! } - public var Watch_LastSeen_Lately: String { return self._s[4710]! } - public var ChatList_Context_MarkAsRead: String { return self._s[4711]! } - public var Conversation_PinnedMessage: String { return self._s[4712]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4713]! } - public var VoiceChat_StopRecordingStop: String { return self._s[4715]! } - public var Passport_UpdateRequiredError: String { return self._s[4716]! } - public var PrivacySettings_Passcode: String { return self._s[4717]! } + 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 func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4718]!, self._r[4718]!, [_0]) + return formatWithArgumentRanges(self._s[4720]!, self._r[4720]!, [_0]) } - public var AutoNightTheme_NotAvailable: String { return self._s[4719]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[4720]! } - public var VoiceOver_Common_On: String { return self._s[4721]! } - public var LoginPassword_InvalidPasswordError: String { return self._s[4722]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4723]! } - public var Channel_SignMessages_Help: String { return self._s[4724]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4725]! } - public var Conversation_TitleNoComments: String { return self._s[4726]! } - public var MediaPicker_LivePhotoDescription: String { return self._s[4727]! } - public var GroupInfo_Permissions: String { return self._s[4728]! } - public var GroupPermission_NoSendLinks: String { return self._s[4731]! } + 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 func Conversation_ScheduledVoiceChatStartsTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4732]!, self._r[4732]!, [_0]) + return formatWithArgumentRanges(self._s[4734]!, self._r[4734]!, [_0]) } - public var Passport_Identity_ResidenceCountry: String { return self._s[4733]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[4735]! } - public var ChatList_ArchiveAction: String { return self._s[4736]! } + 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 func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4737]!, self._r[4737]!, [_0]) + return formatWithArgumentRanges(self._s[4739]!, self._r[4739]!, [_0]) } - public var GroupInfo_GroupHistory: String { return self._s[4738]! } + public var GroupInfo_GroupHistory: String { return self._s[4740]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4740]!, self._r[4740]!, [_0]) + return formatWithArgumentRanges(self._s[4742]!, self._r[4742]!, [_0]) } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4742]! } - public var Channel_Info_Banned: String { return self._s[4743]! } - public var Paint_RecentStickers: String { return self._s[4744]! } - public var VoiceOver_MessageContextSend: String { return self._s[4745]! } - public var Group_ErrorNotMutualContact: String { return self._s[4746]! } - public var ReportPeer_ReasonOther: String { return self._s[4748]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4749]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4751]! } - public var KeyCommand_Find: String { return self._s[4752]! } + 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 func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4753]!, self._r[4753]!, [_0]) + return formatWithArgumentRanges(self._s[4755]!, self._r[4755]!, [_0]) } - public var ChatList_Context_Unmute: String { return self._s[4754]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4755]! } - public var Stickers_GroupStickersHelp: String { return self._s[4756]! } - public var Checkout_Title: String { return self._s[4757]! } - public var Activity_RecordingAudio: String { return self._s[4758]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4759]! } - public var BlockedUsers_BlockTitle: String { return self._s[4760]! } - public var DialogList_SavedMessagesHelp: String { return self._s[4762]! } - public var Calls_All: String { return self._s[4763]! } - public var Settings_FAQ_Button: String { return self._s[4765]! } - public var Conversation_Dice_u1F3B0: String { return self._s[4767]! } + 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 func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4768]!, self._r[4768]!, [_0]) + return formatWithArgumentRanges(self._s[4770]!, self._r[4770]!, [_0]) } - public var Conversation_ReportGroupLocation: String { return self._s[4769]! } - public var Passport_Scans_Upload: String { return self._s[4770]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4772]! } - public var ChatList_UnarchiveAction: String { return self._s[4773]! } - public var Stats_GroupTopInviter_History: String { return self._s[4774]! } - public var GroupInfo_Permissions_Title: String { return self._s[4775]! } - public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4776]! } - public var Passport_Language_el: String { return self._s[4777]! } - public var Channel_DiscussionMessageUnavailable: String { return self._s[4778]! } + 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 func UserInfo_ContactForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4779]!, self._r[4779]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4781]!, self._r[4781]!, [_0, _1]) } - public var GroupInfo_ActionPromote: String { return self._s[4780]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4781]! } - public var Media_LimitedAccessSelectMore: String { return self._s[4782]! } + 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 func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4783]!, self._r[4783]!, [_0]) + return formatWithArgumentRanges(self._s[4785]!, self._r[4785]!, [_0]) } - public var VoiceOver_Chat_Reply: String { return self._s[4784]! } - public var Month_GenMay: String { return self._s[4785]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4786]! } - public var Chat_PsaTooltip_covid: String { return self._s[4787]! } - public var Watch_Suggestion_CantTalk: String { return self._s[4788]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4789]! } - public var AppUpgrade_Running: String { return self._s[4790]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4793]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4794]! } - public var SharedMedia_EmptyText: String { return self._s[4795]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[4796]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4797]! } - public var Message_PinnedGame: String { return self._s[4798]! } - public var KeyCommand_SearchInChat: String { return self._s[4799]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[4800]! } - public var ChatList_Search_FilterMedia: String { return self._s[4801]! } - public var Message_PinnedAudioMessage: String { return self._s[4802]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[4804]! } + 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 func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4805]!, self._r[4805]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4807]!, self._r[4807]!, [_1, _2]) } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4806]! } - public var InviteLink_Create: String { return self._s[4807]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4808]! } + public var InviteLink_Create: String { return self._s[4809]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4808]!, self._r[4808]!, [_0]) + return formatWithArgumentRanges(self._s[4810]!, self._r[4810]!, [_0]) } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4809]!, self._r[4809]!, [_0]) + return formatWithArgumentRanges(self._s[4811]!, self._r[4811]!, [_0]) } - public var Settings_AddAccount: String { return self._s[4810]! } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4811]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4812]! } - public var Channel_JoinChannel: String { return self._s[4813]! } - public var Watch_UserInfo_Unblock: String { return self._s[4814]! } - public var PhoneLabel_Title: String { return self._s[4815]! } - public var VoiceChat_EditPermissions: String { return self._s[4817]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[4818]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4819]! } + 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 func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4820]!, self._r[4820]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[4822]!, self._r[4822]!, [_1, _2, _3, _4, _5, _6]) } - public var Channel_AddBotErrorHaveRights: String { return self._s[4821]! } - public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4822]! } - public var DialogList_EncryptionProcessing: String { return self._s[4823]! } - public var ChatList_Search_FilterChats: String { return self._s[4824]! } - public var WatchRemote_NotificationText: String { return self._s[4825]! } - public var EditTheme_ChangeColors: String { return self._s[4827]! } - public var GroupRemoved_ViewUserInfo: String { return self._s[4828]! } - public var CallSettings_OnMobile: String { return self._s[4830]! } - public var Month_ShortFebruary: String { return self._s[4832]! } - public var VoiceOver_MessageContextReply: String { return self._s[4833]! } - public var AutoremoveSetup_TimerValueNever: String { return self._s[4834]! } - public var Group_Location_ChangeLocation: String { return self._s[4836]! } + 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 func PUSH_VIDEO_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4837]!, self._r[4837]!, [_1]) + return formatWithArgumentRanges(self._s[4839]!, self._r[4839]!, [_1]) } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4838]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[4839]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4840]! } + 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 func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4842]!, self._r[4842]!, [_0]) + return formatWithArgumentRanges(self._s[4844]!, self._r[4844]!, [_0]) } - public var PhotoEditor_WarmthTool: String { return self._s[4843]! } - public var Login_InfoAvatarPhoto: String { return self._s[4844]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4845]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4846]! } - public var Map_PlacesInThisArea: String { return self._s[4847]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[4848]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[4849]! } + 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 func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4850]!, self._r[4850]!, [_1]) + return formatWithArgumentRanges(self._s[4852]!, self._r[4852]!, [_1]) } - public var PeerInfo_ReportProfileVideo: String { return self._s[4851]! } - public var ShareMenu_Send: String { return self._s[4852]! } - public var Username_InvalidStartsWithNumber: String { return self._s[4853]! } + 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[4854]!, self._r[4854]!, [_1]) + return formatWithArgumentRanges(self._s[4856]!, self._r[4856]!, [_1]) } - public var Appearance_AppIconClassicX: String { return self._s[4855]! } - public var Report_Report: String { return self._s[4856]! } + 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[4857]!, self._r[4857]!, [_1]) + return formatWithArgumentRanges(self._s[4859]!, self._r[4859]!, [_1]) } - public var Conversation_StopPoll: String { return self._s[4858]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4860]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[4861]! } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4862]! } - public var Conversation_Timer_Title: String { return self._s[4863]! } - public var Common_Next: String { return self._s[4864]! } - public var Notification_Exceptions_NewException: String { return self._s[4865]! } + 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 func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4866]!, self._r[4866]!, [_0]) + return formatWithArgumentRanges(self._s[4868]!, self._r[4868]!, [_0]) } - public var AccessDenied_CallMicrophone: String { return self._s[4867]! } - public var VoiceChat_UnmutePeer: String { return self._s[4868]! } - public var ChatImportActivity_Retry: String { return self._s[4869]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4870]! } - public var ChangePhoneNumberCode_Help: String { return self._s[4871]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4872]! } - public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4873]! } - public var BlockedUsers_LeavePrefix: String { return self._s[4874]! } + 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 func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4875]!, self._r[4875]!, [_0]) + return formatWithArgumentRanges(self._s[4877]!, self._r[4877]!, [_0]) } - public var Group_About_Help: String { return self._s[4876]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4877]! } - public var Tour_Title3: String { return self._s[4878]! } - public var Watch_Conversation_Unblock: String { return self._s[4879]! } - public var Watch_UserInfo_Block: String { return self._s[4880]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[4881]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[4882]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4883]! } - public var TextFormat_AddLinkTitle: String { return self._s[4884]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4885]! } + 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 func Notification_VoiceChatScheduled(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4886]!, self._r[4886]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4888]!, self._r[4888]!, [_1, _2]) } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4887]! } - public var FastTwoStepSetup_PasswordSection: String { return self._s[4889]! } - public var Compose_ChannelMembers: String { return self._s[4890]! } - public var Conversation_ForwardTitle: String { return self._s[4891]! } - public var Conversation_PinnedPoll: String { return self._s[4894]! } + 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 func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4895]!, self._r[4895]!, [_0]) + return formatWithArgumentRanges(self._s[4897]!, self._r[4897]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4896]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4898]! } - public var Stats_Overview: String { return self._s[4899]! } - public var Map_HomeAndWorkTitle: String { return self._s[4900]! } + 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 func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4901]!, self._r[4901]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4903]!, self._r[4903]!, [_1, _2, _3]) } - public var Passport_Address_CityPlaceholder: String { return self._s[4902]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4903]! } - public var Privacy_PhoneNumber: String { return self._s[4904]! } - public var ChatList_Search_FilterFiles: String { return self._s[4905]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4906]! } - public var ChannelIntro_CreateChannel: String { return self._s[4907]! } - public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4908]! } + 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 func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4909]!, self._r[4909]!, [_0]) + return formatWithArgumentRanges(self._s[4911]!, self._r[4911]!, [_0]) } - public var Weekday_ShortMonday: String { return self._s[4910]! } - public var Passport_Language_ar: String { return self._s[4912]! } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4913]! } - public var TwoFactorSetup_Done_Title: String { return self._s[4914]! } - public var Calls_RatingFeedback: String { return self._s[4915]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4916]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[4919]! } + 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 func VoiceOver_SelfDestructTimerOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4920]!, self._r[4920]!, [_0]) + return formatWithArgumentRanges(self._s[4922]!, self._r[4922]!, [_0]) } - public var Watch_Compose_Send: String { return self._s[4921]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[4922]! } - public var WebSearch_RecentSectionClear: String { return self._s[4923]! } + 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 func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4924]!, self._r[4924]!, [_0]) + return formatWithArgumentRanges(self._s[4926]!, self._r[4926]!, [_0]) } - public var WallpaperSearch_ColorTeal: String { return self._s[4925]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4926]! } - public var Permissions_ContactsTitle_v0: String { return self._s[4927]! } - public var Checkout_PasswordEntry_Pay: String { return self._s[4929]! } - public var Settings_SavedMessages: String { return self._s[4930]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4931]! } - public var Month_ShortMarch: String { return self._s[4932]! } - public var Message_Location: String { return self._s[4933]! } + 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 func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4934]!, self._r[4934]!, [_1]) + return formatWithArgumentRanges(self._s[4936]!, self._r[4936]!, [_1]) } public func Channel_AdminLog_MessageRemovedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4935]!, self._r[4935]!, [_1]) + return formatWithArgumentRanges(self._s[4937]!, self._r[4937]!, [_1]) } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4936]!, self._r[4936]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4938]!, self._r[4938]!, [_1, _2]) } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[4938]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[4940]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4939]!, self._r[4939]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4941]!, self._r[4941]!, [_1, _2]) } - public var GroupPermission_NoSendMedia: String { return self._s[4940]! } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[4941]! } - public var SharedMedia_CategoryDocs: String { return self._s[4942]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[4943]! } - public var Paint_Framed: String { return self._s[4944]! } - public var Channel_Setup_LinkTypePublic: String { return self._s[4945]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4946]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[4947]! } + 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 func ChatImport_SelectionConfirmationUserWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4948]!, self._r[4948]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4950]!, self._r[4950]!, [_1, _2]) } - public var Channel_SignMessages: String { return self._s[4949]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[4950]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4951]! } + 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 func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4952]!, self._r[4952]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4954]!, self._r[4954]!, [_1, _2]) } - public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4953]! } - public var ImportStickerPack_ChooseName: String { return self._s[4954]! } - public var GroupInfo_UpgradeButton: String { return self._s[4955]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4956]! } + 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 func Conversation_ScheduledVoiceChatStartsTomorrowShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4957]!, self._r[4957]!, [_0]) + return formatWithArgumentRanges(self._s[4959]!, self._r[4959]!, [_0]) } - public var AutoDownloadSettings_Files: String { return self._s[4958]! } + public var AutoDownloadSettings_Files: String { return self._s[4960]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4959]!, self._r[4959]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4961]!, self._r[4961]!, [_0, _1]) } - public var Login_SendCodeViaSms: String { return self._s[4961]! } - public var Update_UpdateApp: String { return self._s[4962]! } - public var Channel_Setup_TypePublic: String { return self._s[4963]! } - public var Watch_Compose_CreateMessage: String { return self._s[4964]! } + 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 func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4965]!, self._r[4965]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4967]!, self._r[4967]!, [_1, _2, _3]) } - public var StickerPacksSettings_ManagingHelp: String { return self._s[4966]! } - public var VoiceOver_Chat_Video: String { return self._s[4967]! } - public var Forward_ChannelReadOnly: String { return self._s[4968]! } - public var StickerPack_HideStickers: String { return self._s[4969]! } - public var ChatListFolder_NameContacts: String { return self._s[4970]! } - public var Profile_BotInfo: String { return self._s[4971]! } - public var Document_TargetConfirmationFormat: String { return self._s[4972]! } - public var GroupInfo_InviteByLink: String { return self._s[4973]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4974]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[4975]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[4976]! } - public var Passport_NotLoggedInMessage: String { return self._s[4977]! } - public var Conversation_StopQuizConfirmation: String { return self._s[4978]! } - public var Checkout_PaymentMethod: String { return self._s[4979]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[4984]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4985]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4986]! } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4987]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4988]! } - public var Conversation_GigagroupDescription: String { return self._s[4989]! } - public var Camera_Title: String { return self._s[4990]! } - public var Map_Directions: String { return self._s[4991]! } - public var Stats_MessagePublicForwardsTitle: String { return self._s[4993]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4994]! } - public var Profile_EncryptionKey: String { return self._s[4995]! } + 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 func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4996]!, self._r[4996]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4998]!, self._r[4998]!, [_1, "\(_2)"]) } - public var VoiceChat_VideoPreviewShareCamera: String { return self._s[4997]! } + public var VoiceChat_VideoPreviewShareCamera: String { return self._s[4999]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4998]!, self._r[4998]!, [_0, _1]) + return formatWithArgumentRanges(self._s[5000]!, self._r[5000]!, [_0, _1]) } - public var Passport_Identity_TypePassport: String { return self._s[4999]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[5001]! } - public var Common_No: String { return self._s[5002]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[5003]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[5004]! } - public var Settings_AboutEmpty: String { return self._s[5005]! } - public var TwoStepAuth_FloodError: String { return self._s[5007]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[5008]! } + 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 func Notification_VoiceChatScheduledChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5009]!, self._r[5009]!, [_0]) + return formatWithArgumentRanges(self._s[5011]!, self._r[5011]!, [_0]) } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5011]!, self._r[5011]!, [_1]) + return formatWithArgumentRanges(self._s[5013]!, self._r[5013]!, [_1]) } - public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[5014]! } - public var Conversation_Edit: String { return self._s[5015]! } - public var CheckoutInfo_SaveInfo: String { return self._s[5017]! } - public var VoiceOver_Chat_AnonymousPoll: String { return self._s[5018]! } - public var Call_CameraTooltip: String { return self._s[5020]! } - public var InstantPage_FeedbackButtonShort: String { return self._s[5021]! } - public var Contacts_InviteToTelegram: String { return self._s[5022]! } - public var Notifications_ResetAllNotifications: String { return self._s[5023]! } - public var Calls_NewCall: String { return self._s[5024]! } - public var VoiceOver_Chat_Music: String { return self._s[5027]! } - public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[5028]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[5029]! } - public var Channel_Edit_AboutItem: String { return self._s[5030]! } - public var Message_VideoExpired: String { return self._s[5031]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[5032]! } - public var Settings_TryEnterPassword: String { return self._s[5033]! } + 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 func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5034]!, self._r[5034]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5036]!, self._r[5036]!, [_1, _2]) } - public var NotificationsSound_Input: String { return self._s[5036]! } - public var Notifications_ClassicTones: String { return self._s[5037]! } - public var Conversation_StatusTyping: String { return self._s[5038]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[5039]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[5040]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[5041]! } - public var Conversation_MessageLeaveComment: String { return self._s[5042]! } - public var UserInfo_TapToCall: String { return self._s[5043]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[5044]! } + 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 func ScheduleVoiceChat_ScheduleOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5045]!, self._r[5045]!, [_0, _1]) + return formatWithArgumentRanges(self._s[5047]!, self._r[5047]!, [_0, _1]) } - public var Conversation_ClearAll: String { return self._s[5047]! } - public var UserInfo_NotificationsDefault: String { return self._s[5048]! } - public var Location_ProximityGroupTip: String { return self._s[5049]! } - public var Map_ChooseAPlace: String { return self._s[5050]! } - public var GroupInfo_AddParticipantTitle: String { return self._s[5052]! } - public var ChatList_PeerTypeNonContact: String { return self._s[5053]! } - public var Conversation_SlideToCancel: String { return self._s[5054]! } - public var Month_ShortJuly: String { return self._s[5055]! } - public var SocksProxySetup_ProxyType: String { return self._s[5056]! } + 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 func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5057]!, self._r[5057]!, [_0]) + return formatWithArgumentRanges(self._s[5059]!, self._r[5059]!, [_0]) } - public var StickerPacks_ActionArchive: String { return self._s[5058]! } - public var ChatList_EditFolders: String { return self._s[5059]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[5060]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[5062]! } + 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 func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5063]!, self._r[5063]!, [_0]) + return formatWithArgumentRanges(self._s[5065]!, self._r[5065]!, [_0]) } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5064]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[5065]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[5067]! } + 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 func Conversation_ScheduledVoiceChatStartsOnShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5069]!, self._r[5069]!, [_0]) + return formatWithArgumentRanges(self._s[5071]!, self._r[5071]!, [_0]) } - public var Passport_DeleteAddress: String { return self._s[5070]! } - public var Passport_DeletePassportConfirmation: String { return self._s[5071]! } - public var Passport_Identity_ReverseSide: String { return self._s[5072]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5074]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[5075]! } - public var InviteLink_CreatedBy: String { return self._s[5076]! } - public var Passport_FieldAddress: String { return self._s[5077]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5078]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5081]! } - public var VoiceChat_Panel_TapToJoin: String { return self._s[5082]! } - public var Map_Home: String { return self._s[5083]! } - public var PollResults_Title: String { return self._s[5086]! } + 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 func InviteLink_OtherPermanentLinkInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5087]!, self._r[5087]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5089]!, self._r[5089]!, [_1, _2]) } - public var ArchivedChats_IntroText2: String { return self._s[5089]! } - public var VoiceChat_VideoPreviewTitle: String { return self._s[5090]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5091]! } - public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5092]! } - public var VoiceChat_Muted: String { return self._s[5094]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[5095]! } - public var Passport_Identity_AddPersonalDetails: String { return self._s[5096]! } - public var Conversation_AutoremoveActionEnable: String { return self._s[5098]! } - public var Group_Info_AdminLog: String { return self._s[5099]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[5100]! } - public var Appearance_Animations: String { return self._s[5101]! } - public var Appearance_TextSizeSetting: String { return self._s[5102]! } - public func Stats_GroupTopAdminKicks(_ value: Int32) -> String { + 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 func ChatList_DeleteConfirmation(_ 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[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Seconds(_ 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[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + 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)]!, _1, _2) - } - public func Stats_GroupTopAdminDeletions(_ 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 ImportStickerPack_StickerCount(_ 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 QuickSend_Photos(_ 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 Passport_Scans(_ 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 VoiceOver_Chat_PollVotes(_ 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 Conversation_StatusMembers(_ 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 Chat_TitlePinnedMessages(_ 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 ChatList_MessageFiles(_ 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 AttachmentMenu_SendPhoto(_ 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 Call_Seconds(_ 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 Theme_UsersCount(_ 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 ForwardedFiles(_ 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 Conversation_TitleComments(_ 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 Conversation_TitleReplies(_ 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 PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[18 * 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[19 * 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[20 * 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[21 * 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[22 * 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[23 * 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[24 * 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[25 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func AttachmentMenu_SendGif(_ 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 PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Days(_ 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_ShortSeconds(_ 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 StickerPacks_DeleteStickerPacksConfirmation(_ 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 InviteText_ContactsCountText(_ 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 MuteExpires_Hours(_ 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 Conversation_LiveLocationMembersCount(_ 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 AttachmentMenu_SendItem(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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 PasscodeSettings_FailedAttempts(_ 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 Contacts_ImportersCount(_ 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 Stats_GroupShowMoreTopInviters(_ 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 InviteLink_PeopleRemaining(_ 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_Weeks(_ 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 Invitation_Members(_ 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 VoiceChat_InviteLink_InviteSpeakers(_ 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 ScheduledIn_Weeks(_ 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 InviteLink_PeopleCanJoin(_ 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 ScheduledIn_Days(_ 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 OldChannels_InactiveYear(_ 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 PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Wallpaper_DeleteConfirmation(_ 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 PeopleNearby_ShowMorePeople(_ 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 Conversation_SelectedMessages(_ 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 Call_Minutes(_ 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 StickerPack_RemoveMaskCount(_ 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 Notification_GameScoreSimple(_ 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 LastSeen_HoursAgo(_ 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 PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[56 * 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[57 * 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[58 * 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[59 * 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[60 * 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[61 * 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[62 * 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[63 * 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[64 * 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[65 * 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[66 * 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[67 * 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[68 * 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[69 * 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[70 * 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[71 * 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[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 ChatList_MessageMusic(_ 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_Video(_ 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 ScheduledIn_Seconds(_ 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 Conversation_MessageViewComments(_ 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 MessageTimer_ShortDays(_ 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 ChatList_SelectedChats(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - 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[82 * 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[83 * 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[84 * 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[85 * 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[86 * 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[87 * 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[88 * 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[89 * 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[90 * 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[91 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MuteFor_Hours(_ 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[3 * 6 + Int(form.rawValue)]!, _2, _1, _3) } public func Stats_GroupTopAdminBans(_ 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[4 * 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[95 * 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[96 * 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[97 * 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[98 * 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[99 * 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[100 * 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[101 * 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[102 * 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[103 * 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[104 * 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[105 * 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[106 * 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[107 * 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[108 * 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[109 * 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[110 * 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[111 * 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[112 * 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[113 * 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[114 * 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[115 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Contacts_InviteContacts(_ 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 Notification_GameScoreSelfSimple(_ 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 GroupInfo_ShowMoreMembers(_ 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 Call_ShortMinutes(_ 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 OldChannels_InactiveWeek(_ 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 Media_ShareVideo(_ 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 ChatListFilter_ShowMoreChats(_ 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 ChatList_MessageVideos(_ 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 Map_ETAMinutes(_ 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 UserCount(_ 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_AutoremoveRemainingDays(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func Stats_GroupTopPosterChars(_ 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 MessageTimer_ShortMinutes(_ 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 ForwardedPhotos(_ 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 InviteLink_PeopleJoinedShort(_ 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 Watch_LastSeen_MinutesAgo(_ 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 LiveLocationUpdated_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 VoiceOver_Chat_UnreadMessages(_ 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 PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[137 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_ShortWeeks(_ 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_PeopleJoined(_ 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_ShortHours(_ 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 ForwardedVideos(_ 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_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[142 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func InstantPage_Views(_ 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 Watch_LastSeen_HoursAgo(_ 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 StickerPack_StickerCount(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[146 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Notification_GameScoreExtended(_ 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 MessageTimer_Minutes(_ 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 Notifications_ExceptionMuteExpires_Days(_ 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 AttachmentMenu_SendVideo(_ 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 ServiceMessage_GameScoreExtended(_ 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 ChatList_DeletedChats(_ 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_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[153 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Hours(_ 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 Chat_MessagesUnpinned(_ 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 ForwardedLocations(_ 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 VoiceChat_Panel_Members(_ 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 ForwardedPolls(_ 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 ForwardedVideoMessages(_ 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 ScheduledIn_Minutes(_ 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 Media_ShareItem(_ 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 VoiceOver_Chat_PollOptionCount(_ 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 MessageTimer_Months(_ 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 ForwardedStickers(_ 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 ServiceMessage_GameScoreSelfExtended(_ 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 SharedMedia_Link(_ 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 ScheduledIn_Years(_ 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 SharedMedia_Generic(_ 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 ForwardedGifs(_ 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_Months(_ 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 StickerPacks_ArchiveStickerPacksConfirmation(_ 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[5 * 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[172 * 6 + Int(form.rawValue)]!, stringValue) + 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 LastSeen_MinutesAgo(_ 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 { + 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 { + 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 { + 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 { + 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 ScheduledIn_Hours(_ 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 MessageTimer_Seconds(_ 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 { + 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 { + 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 { + 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 Conversation_StatusSubscribers(_ 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 Conversation_TitleReplies(_ 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 { + 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 { + 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 Conversation_LiveLocationMembersCount(_ 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 { + 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 { + 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 { + 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 MessagePoll_VotedCount(_ 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 { + 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 MuteFor_Hours(_ 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 Map_ETAHours(_ 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 { + 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 { + 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[173 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: 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[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 { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[174 * 6 + Int(form.rawValue)]!, _1, _2) + 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) + } + 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) + } + public func ChatList_MessageMusic(_ 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 SharedMedia_Photo(_ 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 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 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 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) + } + public func LiveLocationUpdated_MinutesAgo(_ 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 VoiceChat_Panel_Members(_ 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 ForwardedPolls(_ 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 Notification_GameScoreSimple(_ 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 AttachmentMenu_SendGif(_ 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 ForwardedVideoMessages(_ 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 Stats_GroupTopAdminKicks(_ 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 InviteLink_PeopleJoined(_ 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 Stats_MessageViews(_ 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 Stats_GroupShowMoreTopAdmins(_ 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 { + 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 { + 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 { + 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 { + 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 { + 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 ServiceMessage_GameScoreSimple(_ 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 { + 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 { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[128 * 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[129 * 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[130 * 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[131 * 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[132 * 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[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 Conversation_SelectedMessages(_ 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 ServiceMessage_GameScoreSelfSimple(_ 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 Call_Days(_ 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 { + 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 { + 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 { + 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 { + 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 SharedMedia_Video(_ 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 { + 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 { + 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 { + 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 Call_Minutes(_ 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 { + 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 Contacts_InviteContacts(_ 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 PollResults_ShowMore(_ 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 { + 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 { + 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 ServiceMessage_GameScoreExtended(_ 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 ForwardedStickers(_ 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 ForwardedContacts(_ 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[176 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index e00f10193d15f50fa58f96cbcf3da0a736977583..836cf6c9df06172a6e5563ff2c927a753c4d3822 100644 GIT binary patch delta 31368 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 CjoKCf diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index fcfeddd4d0..2f7d3a8833 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -1613,7 +1613,6 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } |> deliverOnMainQueue).start(next: { [weak self] peers in if let strongSelf = self { let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 } - let text: String var savedMessages = false if peerIds.count == 1, let peerId = peerIds.first, peerId == strongSelf.context.account.peerId { @@ -10852,6 +10851,82 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } controller.present(textAlertController(context: context, title: nil, text: presentationData.strings.Forward_ErrorDisabledForChat, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) } + controller.multiplePeersSelected = { [weak self, weak controller] peers, messageText in + guard let strongSelf = self, let strongController = controller else { + return + } + strongController.dismiss() + + for peer in peers { + var result: [EnqueueMessage] = [] + if messageText.string.count > 0 { + let inputText = convertMarkdownToAttributes(messageText) + for text in breakChatInputText(trimChatInputText(inputText)) { + if text.length != 0 { + var attributes: [MessageAttribute] = [] + let entities = generateTextEntities(text.string, enabledTypes: .all, currentEntities: generateChatInputTextEntities(text)) + if !entities.isEmpty { + attributes.append(TextEntitiesMessageAttribute(entities: entities)) + } + result.append(.message(text: text.string, attributes: attributes, mediaReference: nil, replyToMessageId: nil, localGroupingKey: nil, correlationId: nil)) + } + } + } + + result.append(contentsOf: messages.map { message -> EnqueueMessage in + return .forward(source: message.id, grouping: .auto, attributes: [], correlationId: nil) + }) + + let _ = (enqueueMessages(account: strongSelf.context.account, peerId: peer.id, messages: result) + |> deliverOnMainQueue).start(next: { messageIds in + if let strongSelf = self { + let signals: [Signal] = messageIds.compactMap({ id -> Signal? in + guard let id = id else { + return nil + } + return strongSelf.context.account.pendingMessageManager.pendingMessageStatus(id) + |> mapToSignal { status, _ -> Signal in + if status != nil { + return .never() + } else { + return .single(true) + } + } + |> take(1) + }) + if strongSelf.shareStatusDisposable == nil { + strongSelf.shareStatusDisposable = MetaDisposable() + } + strongSelf.shareStatusDisposable?.set((combineLatest(signals) + |> deliverOnMainQueue).start()) + } + }) + + let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 } + let text: String + var savedMessages = false + if peers.count == 1, let peerId = peers.first?.id, peerId == strongSelf.context.account.peerId { + text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_SavedMessages_One : presentationData.strings.Conversation_ForwardTooltip_SavedMessages_Many + savedMessages = true + } else { + if peers.count == 1, let peer = peers.first { + let peerName = peer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_Chat_One(peerName).0 : presentationData.strings.Conversation_ForwardTooltip_Chat_Many(peerName).0 + } else if peers.count == 2, let firstPeer = peers.first, let secondPeer = peers.last { + let firstPeerName = firstPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : firstPeer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + let secondPeerName = secondPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : secondPeer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_TwoChats_One(firstPeerName, secondPeerName).0 : presentationData.strings.Conversation_ForwardTooltip_TwoChats_Many(firstPeerName, secondPeerName).0 + } else if let peer = peers.first { + let peerName = peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_ManyChats_One(peerName, "\(peers.count - 1)").0 : presentationData.strings.Conversation_ForwardTooltip_ManyChats_Many(peerName, "\(peers.count - 1)").0 + } else { + text = "" + } + } + + strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .forward(savedMessages: savedMessages, text: text), elevatedLayout: false, animateInAsReplacement: true, action: { _ in return false }), in: .current) + } + } controller.peerSelected = { [weak self, weak controller] peer in let peerId = peer.id diff --git a/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift b/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift index e8e3de7754..fe1c49909e 100644 --- a/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift +++ b/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift @@ -1046,16 +1046,16 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { let mediaRecordingState = interfaceState.inputTextPanelState.mediaRecordingState + var inputHasText = false + if let textInputNode = self.textInputNode, let attributedText = textInputNode.attributedText, attributedText.length != 0 { + inputHasText = true + } + var hasMenuButton = false var menuButtonExpanded = false if let peer = interfaceState.renderedPeer?.peer as? TelegramUser, let _ = peer.botInfo, interfaceState.hasBotCommands && interfaceState.editMessageState == nil { hasMenuButton = true - var inputHasText = false - if let textInputNode = self.textInputNode, let attributedText = textInputNode.attributedText, attributedText.length != 0 { - inputHasText = true - } - if !inputHasText { switch interfaceState.inputMode { case .none, .inputButtons: @@ -1501,12 +1501,7 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { self.slowmodePlaceholderNode = nil slowmodePlaceholderNode.removeFromSupernode() } - - var inputHasText = false - if let textInputNode = self.textInputNode, let attributedText = textInputNode.attributedText, attributedText.length != 0 { - inputHasText = true - } - + if (interfaceState.slowmodeState != nil && !isScheduledMessages && interfaceState.editMessageState == nil) || interfaceState.inputTextPanelState.contextPlaceholder != nil { self.textPlaceholderNode.isHidden = true self.slowmodePlaceholderNode?.isHidden = inputHasText @@ -1552,13 +1547,7 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { } } - var hasText = false - if let textInputNode = self.textInputNode, let attributedText = textInputNode.attributedText, attributedText.length != 0 { - hasText = true - hideMicButton = true - } - - if self.extendedSearchLayout { + if inputHasText || self.extendedSearchLayout { hideMicButton = true } @@ -1574,7 +1563,7 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { } self.actionButtons.micButton.fadeDisabled = mediaInputDisabled - self.updateActionButtons(hasText: hasText, hideMicButton: hideMicButton, animated: transition.isAnimated) + self.updateActionButtons(hasText: inputHasText, hideMicButton: hideMicButton, animated: transition.isAnimated) if let prevInputPanelNode = self.prevInputPanelNode { prevInputPanelNode.frame = CGRect(origin: .zero, size: prevInputPanelNode.frame.size) diff --git a/submodules/TelegramUI/Sources/CommandMenuChatInputContextPanelNode.swift b/submodules/TelegramUI/Sources/CommandMenuChatInputContextPanelNode.swift index c44c7b9061..8a2f91fe2e 100644 --- a/submodules/TelegramUI/Sources/CommandMenuChatInputContextPanelNode.swift +++ b/submodules/TelegramUI/Sources/CommandMenuChatInputContextPanelNode.swift @@ -71,7 +71,7 @@ final class CommandMenuChatInputContextPanelNode: ChatInputContextPanelNode { self.listView.clipsToBounds = false self.listView.isOpaque = false self.listView.stackFromBottom = true - self.listView.keepBottomItemOverscrollBackground = theme.list.plainBackgroundColor +// self.listView.keepBottomItemOverscrollBackground = theme.list.plainBackgroundColor self.listView.limitHitTestToNodes = true self.listView.view.disablesInteractiveTransitionGestureRecognizer = true self.listView.accessibilityPageScrolledString = { row, count in diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift index d533612e73..e94d617715 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift @@ -3694,7 +3694,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD items.append(.separator) } items.append(.action(ContextMenuActionItem(text: presentationData.strings.Channel_LeaveChannel, textColor: .destructive, icon: { theme in - generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Delete"), color: theme.contextMenu.destructiveColor) + generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Logout"), color: theme.contextMenu.destructiveColor) }, action: { [weak self] _, f in f(.dismissWithoutContent) @@ -3720,7 +3720,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD items.append(.separator) } items.append(.action(ContextMenuActionItem(text: presentationData.strings.Group_LeaveGroup, textColor: .destructive, icon: { theme in - generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Delete"), color: theme.contextMenu.destructiveColor) + generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Logout"), color: theme.contextMenu.destructiveColor) }, action: { [weak self] _, f in f(.dismissWithoutContent) @@ -3735,7 +3735,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD items.append(.separator) } items.append(.action(ContextMenuActionItem(text: presentationData.strings.Group_LeaveGroup, textColor: .destructive, icon: { theme in - generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Delete"), color: theme.contextMenu.destructiveColor) + generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Logout"), color: theme.contextMenu.destructiveColor) }, action: { [weak self] _, f in f(.dismissWithoutContent) @@ -5639,7 +5639,83 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD func forwardMessages(messageIds: Set?) { if let messageIds = messageIds ?? self.state.selectedMessageIds, !messageIds.isEmpty { - let peerSelectionController = self.context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: self.context, filter: [.onlyWriteable, .excludeDisabled])) + let peerSelectionController = self.context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: self.context, filter: [.onlyWriteable, .excludeDisabled], multipleSelection: true)) + peerSelectionController.multiplePeersSelected = { [weak self, weak peerSelectionController] peers, messageText in + guard let strongSelf = self, let strongController = peerSelectionController else { + return + } + strongController.dismiss() + + for peer in peers { + var result: [EnqueueMessage] = [] + if messageText.string.count > 0 { + let inputText = convertMarkdownToAttributes(messageText) + for text in breakChatInputText(trimChatInputText(inputText)) { + if text.length != 0 { + var attributes: [MessageAttribute] = [] + let entities = generateTextEntities(text.string, enabledTypes: .all, currentEntities: generateChatInputTextEntities(text)) + if !entities.isEmpty { + attributes.append(TextEntitiesMessageAttribute(entities: entities)) + } + result.append(.message(text: text.string, attributes: attributes, mediaReference: nil, replyToMessageId: nil, localGroupingKey: nil, correlationId: nil)) + } + } + } + + result.append(contentsOf: messageIds.map { messageId -> EnqueueMessage in + return .forward(source: messageId, grouping: .auto, attributes: [], correlationId: nil) + }) + + let _ = (enqueueMessages(account: strongSelf.context.account, peerId: peer.id, messages: result) + |> deliverOnMainQueue).start(next: { messageIds in + if let strongSelf = self { + let signals: [Signal] = messageIds.compactMap({ id -> Signal? in + guard let id = id else { + return nil + } + return strongSelf.context.account.pendingMessageManager.pendingMessageStatus(id) + |> mapToSignal { status, _ -> Signal in + if status != nil { + return .never() + } else { + return .single(true) + } + } + |> take(1) + }) + if strongSelf.shareStatusDisposable == nil { + strongSelf.shareStatusDisposable = MetaDisposable() + } + strongSelf.shareStatusDisposable?.set((combineLatest(signals) + |> deliverOnMainQueue).start()) + } + }) + + let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 } + let text: String + var savedMessages = false + if peers.count == 1, let peerId = peers.first?.id, peerId == strongSelf.context.account.peerId { + text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_SavedMessages_One : presentationData.strings.Conversation_ForwardTooltip_SavedMessages_Many + savedMessages = true + } else { + if peers.count == 1, let peer = peers.first { + let peerName = peer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_Chat_One(peerName).0 : presentationData.strings.Conversation_ForwardTooltip_Chat_Many(peerName).0 + } else if peers.count == 2, let firstPeer = peers.first, let secondPeer = peers.last { + let firstPeerName = firstPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : firstPeer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + let secondPeerName = secondPeer.id == strongSelf.context.account.peerId ? presentationData.strings.DialogList_SavedMessages : secondPeer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_TwoChats_One(firstPeerName, secondPeerName).0 : presentationData.strings.Conversation_ForwardTooltip_TwoChats_Many(firstPeerName, secondPeerName).0 + } else if let peer = peers.first { + let peerName = peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) + text = messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_ManyChats_One(peerName, "\(peers.count - 1)").0 : presentationData.strings.Conversation_ForwardTooltip_ManyChats_Many(peerName, "\(peers.count - 1)").0 + } else { + text = "" + } + } + + strongSelf.controller?.present(UndoOverlayController(presentationData: presentationData, content: .forward(savedMessages: savedMessages, text: text), elevatedLayout: false, animateInAsReplacement: true, action: { _ in return false }), in: .current) + } + } peerSelectionController.peerSelected = { [weak self, weak peerSelectionController] peer in let peerId = peer.id diff --git a/submodules/TelegramUI/Sources/PeerSelectionController.swift b/submodules/TelegramUI/Sources/PeerSelectionController.swift index 92b555de7b..8a3a59fce2 100644 --- a/submodules/TelegramUI/Sources/PeerSelectionController.swift +++ b/submodules/TelegramUI/Sources/PeerSelectionController.swift @@ -20,6 +20,7 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon private var customTitle: String? public var peerSelected: ((Peer) -> Void)? + public var multiplePeersSelected: (([Peer], NSAttributedString) -> Void)? private let filter: ChatListNodePeersFilter private let attemptSelection: ((Peer) -> Void)? @@ -124,6 +125,10 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon self?.activateSearch() }) self.navigationBar?.setContentNode(self.searchContentNode, animated: false) + + if params.multipleSelection { + self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: self.presentationData.strings.Common_Select, style: .plain, target: self, action: #selector(self.beginSelection)) + } } required public init(coder aDecoder: NSCoder) { @@ -152,6 +157,10 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon self.peerSelectionNode.navigationBar = self.navigationBar + self.peerSelectionNode.requestSend = { [weak self] peers, text in + self?.multiplePeersSelected?(peers, text) + } + self.peerSelectionNode.requestDeactivateSearch = { [weak self] in self?.deactivateSearch() } @@ -220,6 +229,11 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon self.peerSelectionNode.containerLayoutUpdated(layout, navigationBarHeight: self.cleanNavigationHeight, actualNavigationBarHeight: self.navigationLayout(layout: layout).navigationFrame.maxY, transition: transition) } + @objc private func beginSelection() { + self.navigationItem.rightBarButtonItem = nil + self.peerSelectionNode.beginSelection() + } + @objc func cancelPressed() { if let customDismiss = self.customDismiss { customDismiss() diff --git a/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift b/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift index 74f1d5d7bf..39e7fdb50e 100644 --- a/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift +++ b/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift @@ -21,6 +21,9 @@ final class PeerSelectionControllerNode: ASDisplayNode { private let filter: ChatListNodePeersFilter private let hasGlobalSearch: Bool + private var presentationInterfaceState: ChatPresentationInterfaceState + private var interfaceInteraction: ChatPanelInterfaceInteraction? + var inProgress: Bool = false { didSet { @@ -33,6 +36,8 @@ final class PeerSelectionControllerNode: ASDisplayNode { private let toolbarSeparatorNode: ASDisplayNode? private let segmentedControlNode: SegmentedControlNode? + private var textInputPanelNode: PeerSelectionTextInputPanelNode? + var contactListNode: ContactListNode? let chatListNode: ChatListNode @@ -51,6 +56,7 @@ final class PeerSelectionControllerNode: ASDisplayNode { var requestOpenDisabledPeer: ((Peer) -> Void)? var requestOpenPeerFromSearch: ((Peer) -> Void)? var requestOpenMessageFromSearch: ((Peer, MessageId) -> Void)? + var requestSend: (([Peer], NSAttributedString) -> Void)? private var presentationData: PresentationData private var presentationDataDisposable: Disposable? @@ -70,6 +76,8 @@ final class PeerSelectionControllerNode: ASDisplayNode { let presentationData = context.sharedContext.currentPresentationData.with { $0 } self.presentationData = presentationData + self.presentationInterfaceState = ChatPresentationInterfaceState(chatWallpaper: .builtin(WallpaperSettings()), theme: self.presentationData.theme, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameDisplayOrder: self.presentationData.nameDisplayOrder, limitsConfiguration: self.context.currentLimitsConfiguration.with { $0 }, fontSize: self.presentationData.chatFontSize, bubbleCorners: self.presentationData.chatBubbleCorners, accountPeerId: self.context.account.peerId, mode: .standard(previewing: false), chatLocation: .peer(PeerId(0)), subject: nil, peerNearbyData: nil, greetingData: nil, pendingUnpinnedAllMessages: false, activeGroupCallInfo: nil, hasActiveGroupCall: false, importState: nil) + if hasChatListSelector && hasContactSelector { self.toolbarBackgroundNode = NavigationBackgroundNode(color: self.presentationData.theme.rootController.navigationBar.blurredBackgroundColor) @@ -107,6 +115,9 @@ final class PeerSelectionControllerNode: ASDisplayNode { self.backgroundColor = self.presentationData.theme.chatList.backgroundColor + self.chatListNode.selectionCountChanged = { [weak self] count in + self?.textInputPanelNode?.updateSendButtonEnabled(count > 0, animated: true) + } self.chatListNode.accessibilityPageScrolledString = { row, count in return presentationData.strings.VoiceOver_ScrollStatus(row, count).0 } @@ -163,6 +174,112 @@ final class PeerSelectionControllerNode: ASDisplayNode { if !hasChatListSelector && hasContactSelector { self.indexChanged(1) } + + self.interfaceInteraction = ChatPanelInterfaceInteraction(setupReplyMessage: { _, _ in + }, setupEditMessage: { _, _ in + }, beginMessageSelection: { _, _ in + }, deleteSelectedMessages: { + }, reportSelectedMessages: { + }, reportMessages: { _, _ in + }, blockMessageAuthor: { _, _ in + }, deleteMessages: { _, _, f in + f(.default) + }, forwardSelectedMessages: { + }, forwardCurrentForwardMessages: { + }, forwardMessages: { _ in + }, shareSelectedMessages: { + }, updateTextInputStateAndMode: { [weak self] f in + if let strongSelf = self { + strongSelf.updateChatPresentationInterfaceState(animated: true, { state in + let (updatedState, updatedMode) = f(state.interfaceState.effectiveInputState, state.inputMode) + return state.updatedInterfaceState { interfaceState in + return interfaceState.withUpdatedEffectiveInputState(updatedState) + }.updatedInputMode({ _ in updatedMode }) + }) + } + }, updateInputModeAndDismissedButtonKeyboardMessageId: { [weak self] f in + if let strongSelf = self { + strongSelf.updateChatPresentationInterfaceState(animated: true, { + let (updatedInputMode, updatedClosedButtonKeyboardMessageId) = f($0) + return $0.updatedInputMode({ _ in return updatedInputMode }).updatedInterfaceState({ + $0.withUpdatedMessageActionsState({ value in + var value = value + value.closedButtonKeyboardMessageId = updatedClosedButtonKeyboardMessageId + return value + }) + }) + }) + } + }, openStickers: { + }, editMessage: { + }, beginMessageSearch: { _, _ in + }, dismissMessageSearch: { + }, updateMessageSearch: { _ in + }, openSearchResults: { + }, navigateMessageSearch: { _ in + }, openCalendarSearch: { + }, toggleMembersSearch: { _ in + }, navigateToMessage: { _, _, _, _ in + }, navigateToChat: { _ in + }, navigateToProfile: { _ in + }, openPeerInfo: { + }, togglePeerNotifications: { + }, sendContextResult: { _, _, _, _ in + return false + }, sendBotCommand: { _, _ in + }, sendBotStart: { _ in + }, botSwitchChatWithPayload: { _, _ in + }, beginMediaRecording: { _ in + }, finishMediaRecording: { _ in + }, stopMediaRecording: { + }, lockMediaRecording: { + }, deleteRecordedMedia: { + }, sendRecordedMedia: { _ in + }, displayRestrictedInfo: { _, _ in + }, displayVideoUnmuteTip: { _ in + }, switchMediaRecordingMode: { + }, setupMessageAutoremoveTimeout: { + }, sendSticker: { _, _, _, _ in + return false + }, unblockPeer: { + }, pinMessage: { _, _ in + }, unpinMessage: { _, _, _ in + }, unpinAllMessages: { + }, openPinnedList: { _ in + }, shareAccountContact: { + }, reportPeer: { + }, presentPeerContact: { + }, dismissReportPeer: { + }, deleteChat: { + }, beginCall: { _ in + }, toggleMessageStickerStarred: { _ in + }, presentController: { _, _ in + }, getNavigationController: { + return nil + }, presentGlobalOverlayController: { _, _ in + }, navigateFeed: { + }, openGrouping: { + }, toggleSilentPost: { + }, requestUnvoteInMessage: { _ in + }, requestStopPollInMessage: { _ in + }, updateInputLanguage: { _ in + }, unarchiveChat: { + }, openLinkEditing: { + }, reportPeerIrrelevantGeoLocation: { + }, displaySlowmodeTooltip: { _, _ in + }, displaySendMessageOptions: { _, _ in + }, openScheduledMessages: { + }, openPeersNearby: { + }, displaySearchResultsTooltip: { _, _ in + }, unarchivePeer: { + }, scrollToTop: { + }, viewReplies: { _, _ in + }, activatePinnedListPreview: { _, _ in + }, joinGroupCall: { _ in + }, presentInviteMembers: { + }, presentGigagroupHelp: { + }, editMessageMedia: { _, _ in + }, updateShowCommands: { _ in }, statuses: nil) self.readyValue.set(self.chatListNode.ready) } @@ -171,6 +288,89 @@ final class PeerSelectionControllerNode: ASDisplayNode { self.presentationDataDisposable?.dispose() } + private func updateChatPresentationInterfaceState(animated: Bool = true, _ f: (ChatPresentationInterfaceState) -> ChatPresentationInterfaceState, completion: @escaping (ContainedViewLayoutTransition) -> Void = { _ in }) { + self.updateChatPresentationInterfaceState(transition: animated ? .animated(duration: 0.4, curve: .spring) : .immediate, f, completion: completion) + } + + private func updateChatPresentationInterfaceState(transition: ContainedViewLayoutTransition, _ f: (ChatPresentationInterfaceState) -> ChatPresentationInterfaceState, completion externalCompletion: @escaping (ContainedViewLayoutTransition) -> Void = { _ in }) { + let presentationInterfaceState = f(self.presentationInterfaceState) + let updateInputTextState = self.presentationInterfaceState.interfaceState.effectiveInputState != presentationInterfaceState.interfaceState.effectiveInputState + + self.presentationInterfaceState = presentationInterfaceState + + if let textInputPanelNode = self.textInputPanelNode, updateInputTextState { + textInputPanelNode.updateInputTextState(presentationInterfaceState.interfaceState.effectiveInputState, animated: transition.isAnimated) + } + + if let (layout, navigationBarHeight, actualNavigationBarHeight) = self.containerLayout { + self.containerLayoutUpdated(layout, navigationBarHeight: navigationBarHeight, actualNavigationBarHeight: actualNavigationBarHeight, transition: transition) + } + } + + func beginSelection() { + if let _ = self.textInputPanelNode { + } else { + let textInputPanelNode = PeerSelectionTextInputPanelNode(presentationInterfaceState: self.presentationInterfaceState, presentController: { [weak self] c in self?.present(c, nil) }) + textInputPanelNode.interfaceInteraction = self.interfaceInteraction + textInputPanelNode.sendMessage = { [weak self] in + guard let strongSelf = self else { + return + } + + if strongSelf.contactListActive { + strongSelf.contactListNode?.multipleSelection = true + let selectedContactPeers = strongSelf.contactListNode?.selectedPeers ?? [] + let effectiveInputText = strongSelf.presentationInterfaceState.interfaceState.composeInputState.inputText + var selectedPeers: [Peer] = [] + for contactPeer in selectedContactPeers { + if case let .peer(peer, _, _) = contactPeer { + selectedPeers.append(peer) + } + } + if !selectedPeers.isEmpty { + strongSelf.requestSend?(selectedPeers, effectiveInputText) + } + } else { + var selectedPeerIds: [PeerId] = [] + var selectedPeerMap: [PeerId: Peer] = [:] + strongSelf.chatListNode.updateState { state in + selectedPeerIds = Array(state.selectedPeerIds) + selectedPeerMap = state.selectedPeerMap + return state + } + if !selectedPeerIds.isEmpty { + let effectiveInputText = strongSelf.presentationInterfaceState.interfaceState.composeInputState.inputText + var selectedPeers: [Peer] = [] + for peerId in selectedPeerIds { + if let peer = selectedPeerMap[peerId] { + selectedPeers.append(peer) + } + } + strongSelf.requestSend?(selectedPeers, effectiveInputText) + } + } + } + self.addSubnode(textInputPanelNode) + self.textInputPanelNode = textInputPanelNode + + if let (layout, navigationBarHeight, actualNavigationBarHeight) = self.containerLayout { + self.containerLayoutUpdated(layout, navigationBarHeight: navigationBarHeight, actualNavigationBarHeight: actualNavigationBarHeight, transition: .animated(duration: 0.3, curve: .spring)) + } + } + + if self.contactListActive { + self.contactListNode?.updateSelectionState({ _ in + return ContactListNodeGroupSelectionState() + }) + } else { + self.chatListNode.updateState { state in + var state = state + state.editing = true + return state + } + } + } + private func updateThemeAndStrings() { self.backgroundColor = self.presentationData.theme.chatList.backgroundColor self.searchDisplayController?.updatePresentationData(self.presentationData) @@ -185,20 +385,48 @@ final class PeerSelectionControllerNode: ASDisplayNode { self.containerLayout = (layout, navigationBarHeight, actualNavigationBarHeight) let cleanInsets = layout.insets(options: []) + var insets = layout.insets(options: [.input]) var toolbarHeight: CGFloat = cleanInsets.bottom - + var textPanelHeight: CGFloat? + + if let textInputPanelNode = self.textInputPanelNode { + var panelTransition = transition + if textInputPanelNode.frame.width.isZero { + panelTransition = .immediate + } + var panelHeight = textInputPanelNode.updateLayout(width: layout.size.width, leftInset: layout.safeInsets.left, rightInset: layout.safeInsets.right, additionalSideInsets: UIEdgeInsets(), maxHeight: layout.size.height / 2.0, isSecondary: false, transition: panelTransition, interfaceState: self.presentationInterfaceState, metrics: layout.metrics) + if self.searchDisplayController == nil { + panelHeight += insets.bottom + } else { + panelHeight += cleanInsets.bottom + } + textPanelHeight = panelHeight + + let panelFrame = CGRect(x: 0.0, y: layout.size.height - panelHeight, width: layout.size.width, height: panelHeight) + if textInputPanelNode.frame.width.isZero { + var initialPanelFrame = panelFrame + initialPanelFrame.origin.y = layout.size.height + textInputPanelNode.frame = initialPanelFrame + } + transition.updateFrame(node: textInputPanelNode, frame: panelFrame) + } + if let segmentedControlNode = self.segmentedControlNode, let toolbarBackgroundNode = self.toolbarBackgroundNode, let toolbarSeparatorNode = self.toolbarSeparatorNode { - toolbarHeight += 44.0 + if let textPanelHeight = textPanelHeight { + toolbarHeight = textPanelHeight + } else { + toolbarHeight += 44.0 + } transition.updateFrame(node: toolbarBackgroundNode, frame: CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - toolbarHeight), size: CGSize(width: layout.size.width, height: toolbarHeight))) toolbarBackgroundNode.update(size: toolbarBackgroundNode.bounds.size, transition: transition) transition.updateFrame(node: toolbarSeparatorNode, frame: CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - toolbarHeight), size: CGSize(width: layout.size.width, height: UIScreenPixel))) let controlSize = segmentedControlNode.updateLayout(.sizeToFit(maximumWidth: layout.size.width, minimumWidth: 200.0, height: 32.0), transition: transition) - transition.updateFrame(node: segmentedControlNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - controlSize.width) / 2.0), y: layout.size.height - toolbarHeight + floor((44.0 - controlSize.height) / 2.0)), size: controlSize)) + let controlOrigin = layout.size.height - (textPanelHeight == nil ? toolbarHeight : 0.0) + floor((44.0 - controlSize.height) / 2.0) + transition.updateFrame(node: segmentedControlNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - controlSize.width) / 2.0), y: controlOrigin), size: controlSize)) } - - var insets = layout.insets(options: [.input]) + insets.top += navigationBarHeight insets.bottom = max(insets.bottom, cleanInsets.bottom + 44.0) insets.left += layout.safeInsets.left @@ -239,7 +467,45 @@ final class PeerSelectionControllerNode: ASDisplayNode { if self.chatListNode.supernode != nil { self.searchDisplayController = SearchDisplayController(presentationData: self.presentationData, contentNode: ChatListSearchContainerNode(context: self.context, filter: self.filter, groupId: .root, displaySearchFilters: false, openPeer: { [weak self] peer, _ in - if let requestOpenPeerFromSearch = self?.requestOpenPeerFromSearch { + guard let strongSelf = self else { + return + } + var updated = false + var count = 0 + strongSelf.chatListNode.updateState { state in + if state.editing { + updated = true + var state = state + var foundPeers = state.foundPeers + var selectedPeerMap = state.selectedPeerMap + selectedPeerMap[peer.id] = peer + var exists = false + for foundPeer in foundPeers { + if peer.id == foundPeer.id { + exists = true + break + } + } + if !exists { + foundPeers.insert(peer, at: 0) + } + if state.selectedPeerIds.contains(peer.id) { + state.selectedPeerIds.remove(peer.id) + } else { + state.selectedPeerIds.insert(peer.id) + } + state.foundPeers = foundPeers + state.selectedPeerMap = selectedPeerMap + count = state.selectedPeerIds.count + return state + } else { + return state + } + } + if updated { + strongSelf.textInputPanelNode?.updateSendButtonEnabled(count > 0, animated: true) + strongSelf.requestDeactivateSearch?() + } else if let requestOpenPeerFromSearch = strongSelf.requestOpenPeerFromSearch { requestOpenPeerFromSearch(peer) } }, openDisabledPeer: { [weak self] peer in @@ -276,17 +542,48 @@ final class PeerSelectionControllerNode: ASDisplayNode { } self.searchDisplayController = SearchDisplayController(presentationData: self.presentationData, contentNode: ContactsSearchContainerNode(context: self.context, onlyWriteable: true, categories: categories, addContact: nil, openPeer: { [weak self] peer in if let strongSelf = self { - switch peer { - case let .peer(peer, _, _): - let _ = (strongSelf.context.account.postbox.transaction { transaction -> Peer? in - return transaction.getPeer(peer.id) - } |> deliverOnMainQueue).start(next: { peer in - if let strongSelf = self, let peer = peer { - strongSelf.requestOpenPeerFromSearch?(peer) + var updated = false + var count = 0 + strongSelf.contactListNode?.updateSelectionState { state -> ContactListNodeGroupSelectionState? in + if let state = state { + updated = true + var foundPeers = state.foundPeers + var selectedPeerMap = state.selectedPeerMap + selectedPeerMap[peer.id] = peer + var exists = false + for foundPeer in foundPeers { + if peer.id == foundPeer.id { + exists = true + break } - }) - case .deviceContact: - break + } + if !exists { + foundPeers.insert(peer, at: 0) + } + let updatedState = state.withToggledPeerId(peer.id).withFoundPeers(foundPeers).withSelectedPeerMap(selectedPeerMap) + count = updatedState.selectedPeerIndices.count + return updatedState + } else { + return nil + } + } + + if updated { + strongSelf.textInputPanelNode?.updateSendButtonEnabled(count > 0, animated: true) + strongSelf.requestDeactivateSearch?() + } else { + switch peer { + case let .peer(peer, _, _): + let _ = (strongSelf.context.account.postbox.transaction { transaction -> Peer? in + return transaction.getPeer(peer.id) + } |> deliverOnMainQueue).start(next: { peer in + if let strongSelf = self, let peer = peer { + strongSelf.requestOpenPeerFromSearch?(peer) + } + }) + case .deviceContact: + break + } } } }, contextAction: nil), cancel: { [weak self] in @@ -342,6 +639,11 @@ final class PeerSelectionControllerNode: ASDisplayNode { let contactListNode = ContactListNode(context: context, presentation: .single(.natural(options: [], includeChatList: false))) self.contactListNode = contactListNode contactListNode.enableUpdates = true + contactListNode.selectionStateUpdated = { [weak self] selectionState in + if let strongSelf = self { + strongSelf.textInputPanelNode?.updateSendButtonEnabled((selectionState?.selectedPeerIndices.count ?? 0) > 0, animated: true) + } + } contactListNode.activateSearch = { [weak self] in self?.requestActivateSearch?() } @@ -394,7 +696,7 @@ final class PeerSelectionControllerNode: ASDisplayNode { } else if let contactListNode = self.contactListNode { contactListNode.enableUpdates = false - self.insertSubnode(chatListNode, aboveSubnode: contactListNode) + self.insertSubnode(self.chatListNode, aboveSubnode: contactListNode) contactListNode.removeFromSupernode() } } diff --git a/submodules/TelegramUI/Sources/PeerSelectionTextInputPanelNode.swift b/submodules/TelegramUI/Sources/PeerSelectionTextInputPanelNode.swift new file mode 100644 index 0000000000..08e7a34f55 --- /dev/null +++ b/submodules/TelegramUI/Sources/PeerSelectionTextInputPanelNode.swift @@ -0,0 +1,935 @@ +import Foundation +import UIKit +import Display +import AsyncDisplayKit +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore +import MobileCoreServices +import TelegramPresentationData +import TextFormat +import AccountContext +import TouchDownGesture +import ActivityIndicator +import Speak + +private let counterFont = Font.with(size: 14.0, design: .regular, traits: [.monospacedNumbers]) +private let minInputFontSize = chatTextInputMinFontSize + +private func calclulateTextFieldMinHeight(_ presentationInterfaceState: ChatPresentationInterfaceState, metrics: LayoutMetrics) -> CGFloat { + let baseFontSize = max(minInputFontSize, presentationInterfaceState.fontSize.baseDisplaySize) + var result: CGFloat + if baseFontSize.isEqual(to: 26.0) { + result = 42.0 + } else if baseFontSize.isEqual(to: 23.0) { + result = 38.0 + } else if baseFontSize.isEqual(to: 17.0) { + result = 31.0 + } else if baseFontSize.isEqual(to: 19.0) { + result = 33.0 + } else if baseFontSize.isEqual(to: 21.0) { + result = 35.0 + } else { + result = 31.0 + } + + if case .regular = metrics.widthClass { + result = max(33.0, result) + } + + return result +} + +private func calculateTextFieldRealInsets(_ presentationInterfaceState: ChatPresentationInterfaceState) -> UIEdgeInsets { + let baseFontSize = max(minInputFontSize, presentationInterfaceState.fontSize.baseDisplaySize) + let top: CGFloat + let bottom: CGFloat + if baseFontSize.isEqual(to: 14.0) { + top = 2.0 + bottom = 1.0 + } else if baseFontSize.isEqual(to: 15.0) { + top = 1.0 + bottom = 1.0 + } else if baseFontSize.isEqual(to: 16.0) { + top = 0.5 + bottom = 0.0 + } else { + top = 0.0 + bottom = 0.0 + } + return UIEdgeInsets(top: 4.5 + top, left: 0.0, bottom: 5.5 + bottom, right: 0.0) +} + +private var currentTextInputBackgroundImage: (UIColor, UIColor, CGFloat, UIImage)? +private func textInputBackgroundImage(backgroundColor: UIColor?, inputBackgroundColor: UIColor?, strokeColor: UIColor, diameter: CGFloat) -> UIImage? { + if let backgroundColor = backgroundColor, let current = currentTextInputBackgroundImage { + if current.0.isEqual(backgroundColor) && current.1.isEqual(strokeColor) && current.2.isEqual(to: diameter) { + return current.3 + } + } + + let image = generateImage(CGSize(width: diameter, height: diameter), rotatedContext: { size, context in + context.clear(CGRect(x: 0.0, y: 0.0, width: diameter, height: diameter)) + + if let inputBackgroundColor = inputBackgroundColor { + context.setBlendMode(.normal) + context.setFillColor(inputBackgroundColor.cgColor) + } else { + context.setBlendMode(.clear) + context.setFillColor(UIColor.clear.cgColor) + } + context.fillEllipse(in: CGRect(x: 0.0, y: 0.0, width: diameter, height: diameter)) + + context.setBlendMode(.normal) + context.setStrokeColor(strokeColor.cgColor) + let strokeWidth: CGFloat = 1.0 + context.setLineWidth(strokeWidth) + context.strokeEllipse(in: CGRect(x: strokeWidth / 2.0, y: strokeWidth / 2.0, width: diameter - strokeWidth, height: diameter - strokeWidth)) + })?.stretchableImage(withLeftCapWidth: Int(diameter) / 2, topCapHeight: Int(diameter) / 2) + if let image = image { + if let backgroundColor = backgroundColor { + currentTextInputBackgroundImage = (backgroundColor, strokeColor, diameter, image) + } + return image + } else { + return nil + } +} + +class PeerSelectionTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { + var textPlaceholderNode: ImmediateTextNode + let textInputContainerBackgroundNode: ASImageNode + let textInputContainer: ASDisplayNode + var textInputNode: EditableTextNode? + + let textInputBackgroundNode: ASImageNode + private var transparentTextInputBackgroundImage: UIImage? + let actionButtons: ChatTextInputActionButtonsNode + private let counterTextNode: ImmediateTextNode + + private var validLayout: (CGFloat, CGFloat, CGFloat, UIEdgeInsets, CGFloat, LayoutMetrics, Bool)? + + var sendMessage: () -> Void = { } + var updateHeight: (Bool) -> Void = { _ in } + + private var updatingInputState = false + + private var currentPlaceholder: String? + + private var presentationInterfaceState: ChatPresentationInterfaceState? + private var initializedPlaceholder = false + + private let inputMenu = ChatTextInputMenu() + + private var theme: PresentationTheme? + private var strings: PresentationStrings? + + private let hapticFeedback = HapticFeedback() + + var inputTextState: ChatTextInputState { + if let textInputNode = self.textInputNode { + let selectionRange: Range = textInputNode.selectedRange.location ..< (textInputNode.selectedRange.location + textInputNode.selectedRange.length) + return ChatTextInputState(inputText: stateAttributedStringForText(textInputNode.attributedText ?? NSAttributedString()), selectionRange: selectionRange) + } else { + return ChatTextInputState() + } + } + + var storedInputLanguage: String? + var effectiveInputLanguage: String? { + if let textInputNode = textInputNode, textInputNode.isFirstResponder() { + return textInputNode.textInputMode.primaryLanguage + } else { + return self.storedInputLanguage + } + } + + var enablePredictiveInput: Bool = true { + didSet { + if let textInputNode = self.textInputNode { + textInputNode.textView.autocorrectionType = self.enablePredictiveInput ? .default : .no + } + } + } + + override var context: AccountContext? { + didSet { + self.actionButtons.micButton.account = self.context?.account + } + } + + var micButton: ChatTextInputMediaRecordingButton? { + return self.actionButtons.micButton + } + + func updateSendButtonEnabled(_ enabled: Bool, animated: Bool) { + self.actionButtons.isUserInteractionEnabled = enabled + + let transition: ContainedViewLayoutTransition = animated ? .animated(duration: 0.2, curve: .easeInOut) : .immediate + transition.updateAlpha(node: self.actionButtons, alpha: enabled ? 1.0 : 0.3) + } + + func updateInputTextState(_ state: ChatTextInputState, animated: Bool) { + if state.inputText.length != 0 && self.textInputNode == nil { + self.loadTextInputNode() + } + + if let textInputNode = self.textInputNode, let _ = self.presentationInterfaceState { + self.updatingInputState = true + + var textColor: UIColor = .black + var accentTextColor: UIColor = .blue + var baseFontSize: CGFloat = 17.0 + if let presentationInterfaceState = self.presentationInterfaceState { + textColor = presentationInterfaceState.theme.chat.inputPanel.inputTextColor + accentTextColor = presentationInterfaceState.theme.chat.inputPanel.panelControlAccentColor + baseFontSize = max(minInputFontSize, presentationInterfaceState.fontSize.baseDisplaySize) + } + textInputNode.attributedText = textAttributedStringForStateText(state.inputText, fontSize: baseFontSize, textColor: textColor, accentTextColor: accentTextColor, writingDirection: nil) + textInputNode.selectedRange = NSMakeRange(state.selectionRange.lowerBound, state.selectionRange.count) + self.updatingInputState = false + self.updateTextNodeText(animated: animated) + } + } + + var text: String { + get { + return self.textInputNode?.attributedText?.string ?? "" + } set(value) { + if let textInputNode = self.textInputNode { + var textColor: UIColor = .black + var baseFontSize: CGFloat = 17.0 + if let presentationInterfaceState = self.presentationInterfaceState { + textColor = presentationInterfaceState.theme.chat.inputPanel.inputTextColor + baseFontSize = max(minInputFontSize, presentationInterfaceState.fontSize.baseDisplaySize) + } + textInputNode.attributedText = NSAttributedString(string: value, font: Font.regular(baseFontSize), textColor: textColor) + self.editableTextNodeDidUpdateText(textInputNode) + } + } + } + + private let textInputViewInternalInsets = UIEdgeInsets(top: 1.0, left: 13.0, bottom: 1.0, right: 13.0) + + init(presentationInterfaceState: ChatPresentationInterfaceState, presentController: @escaping (ViewController) -> Void) { + self.textInputContainerBackgroundNode = ASImageNode() + self.textInputContainerBackgroundNode.isUserInteractionEnabled = false + self.textInputContainerBackgroundNode.displaysAsynchronously = false + + self.textInputContainer = ASDisplayNode() + self.textInputContainer.addSubnode(self.textInputContainerBackgroundNode) + self.textInputContainer.clipsToBounds = true + + self.textInputBackgroundNode = ASImageNode() + self.textInputBackgroundNode.displaysAsynchronously = false + self.textInputBackgroundNode.displayWithoutProcessing = true + self.textPlaceholderNode = ImmediateTextNode() + self.textPlaceholderNode.maximumNumberOfLines = 1 + self.textPlaceholderNode.isUserInteractionEnabled = false + + self.actionButtons = ChatTextInputActionButtonsNode(theme: presentationInterfaceState.theme, strings: presentationInterfaceState.strings, presentController: presentController) + self.counterTextNode = ImmediateTextNode() + self.counterTextNode.textAlignment = .center + + super.init() + + self.actionButtons.sendButtonLongPressed = { [weak self] node, gesture in + self?.interfaceInteraction?.displaySendMessageOptions(node, gesture) + } + + self.actionButtons.sendButton.addTarget(self, action: #selector(self.sendButtonPressed), forControlEvents: .touchUpInside) + self.actionButtons.sendButton.alpha = 1.0 + self.actionButtons.micButton.alpha = 0.0 + self.actionButtons.expandMediaInputButton.alpha = 0.0 + self.actionButtons.updateAccessibility() + + self.addSubnode(self.textInputContainer) + self.addSubnode(self.textInputBackgroundNode) + + self.addSubnode(self.textPlaceholderNode) + + self.addSubnode(self.actionButtons) + self.addSubnode(self.counterTextNode) + + self.textInputBackgroundNode.clipsToBounds = true + let recognizer = TouchDownGestureRecognizer(target: self, action: #selector(self.textInputBackgroundViewTap(_:))) + recognizer.touchDown = { [weak self] in + if let strongSelf = self { + strongSelf.ensureFocused() + } + } + self.textInputBackgroundNode.isUserInteractionEnabled = true + self.textInputBackgroundNode.view.addGestureRecognizer(recognizer) + + self.updateSendButtonEnabled(false, animated: false) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func loadTextInputNodeIfNeeded() { + if self.textInputNode == nil { + self.loadTextInputNode() + } + } + + private func loadTextInputNode() { + let textInputNode = EditableTextNode() + textInputNode.initialPrimaryLanguage = self.presentationInterfaceState?.interfaceState.inputLanguage + var textColor: UIColor = .black + var tintColor: UIColor = .blue + var baseFontSize: CGFloat = 17.0 + var keyboardAppearance: UIKeyboardAppearance = UIKeyboardAppearance.default + if let presentationInterfaceState = self.presentationInterfaceState { + textColor = presentationInterfaceState.theme.chat.inputPanel.inputTextColor + tintColor = presentationInterfaceState.theme.list.itemAccentColor + baseFontSize = max(minInputFontSize, presentationInterfaceState.fontSize.baseDisplaySize) + keyboardAppearance = presentationInterfaceState.theme.rootController.keyboardColor.keyboardAppearance + } + + let paragraphStyle = NSMutableParagraphStyle() + paragraphStyle.lineSpacing = 1.0 + paragraphStyle.lineHeightMultiple = 1.0 + paragraphStyle.paragraphSpacing = 1.0 + paragraphStyle.maximumLineHeight = 20.0 + paragraphStyle.minimumLineHeight = 20.0 + + textInputNode.typingAttributes = [NSAttributedString.Key.font.rawValue: Font.regular(max(minInputFontSize, baseFontSize)), NSAttributedString.Key.foregroundColor.rawValue: textColor, NSAttributedString.Key.paragraphStyle.rawValue: paragraphStyle] + textInputNode.clipsToBounds = false + textInputNode.textView.clipsToBounds = false + textInputNode.delegate = self + textInputNode.hitTestSlop = UIEdgeInsets(top: -5.0, left: -5.0, bottom: -5.0, right: -5.0) + textInputNode.keyboardAppearance = keyboardAppearance + textInputNode.tintColor = tintColor + textInputNode.textView.scrollIndicatorInsets = UIEdgeInsets(top: 9.0, left: 0.0, bottom: 9.0, right: -13.0) + self.textInputContainer.addSubnode(textInputNode) + textInputNode.view.disablesInteractiveTransitionGestureRecognizer = true + self.textInputNode = textInputNode + + if let presentationInterfaceState = self.presentationInterfaceState { + refreshChatTextInputTypingAttributes(textInputNode, theme: presentationInterfaceState.theme, baseFontSize: baseFontSize) + textInputNode.textContainerInset = calculateTextFieldRealInsets(presentationInterfaceState) + } + + if !self.textInputContainer.bounds.size.width.isZero { + let textInputFrame = self.textInputContainer.frame + + textInputNode.frame = CGRect(origin: CGPoint(x: self.textInputViewInternalInsets.left, y: self.textInputViewInternalInsets.top), size: CGSize(width: textInputFrame.size.width - (self.textInputViewInternalInsets.left + self.textInputViewInternalInsets.right), height: textInputFrame.size.height - self.textInputViewInternalInsets.top - self.textInputViewInternalInsets.bottom)) + } + + self.textInputBackgroundNode.isUserInteractionEnabled = false + self.textInputBackgroundNode.view.removeGestureRecognizer(self.textInputBackgroundNode.view.gestureRecognizers![0]) + + let recognizer = TouchDownGestureRecognizer(target: self, action: #selector(self.textInputBackgroundViewTap(_:))) + recognizer.touchDown = { [weak self] in + if let strongSelf = self { + strongSelf.ensureFocused() + } + } + textInputNode.view.addGestureRecognizer(recognizer) + + textInputNode.textView.accessibilityHint = self.textPlaceholderNode.attributedText?.string + } + + private func textFieldMaxHeight(_ maxHeight: CGFloat, metrics: LayoutMetrics) -> CGFloat { + let textFieldInsets = self.textFieldInsets(metrics: metrics) + return max(33.0, maxHeight - (textFieldInsets.top + textFieldInsets.bottom + self.textInputViewInternalInsets.top + self.textInputViewInternalInsets.bottom)) + } + + private func calculateTextFieldMetrics(width: CGFloat, maxHeight: CGFloat, metrics: LayoutMetrics) -> (accessoryButtonsWidth: CGFloat, textFieldHeight: CGFloat) { + let textFieldInsets = self.textFieldInsets(metrics: metrics) + + let fieldMaxHeight = textFieldMaxHeight(maxHeight, metrics: metrics) + + var textFieldMinHeight: CGFloat = 35.0 + if let presentationInterfaceState = self.presentationInterfaceState { + textFieldMinHeight = calclulateTextFieldMinHeight(presentationInterfaceState, metrics: metrics) + } + + let textFieldHeight: CGFloat + if let textInputNode = self.textInputNode { + let maxTextWidth = width - textFieldInsets.left - textFieldInsets.right - self.textInputViewInternalInsets.left - self.textInputViewInternalInsets.right + let measuredHeight = textInputNode.measure(CGSize(width: maxTextWidth, height: CGFloat.greatestFiniteMagnitude)) + let unboundTextFieldHeight = max(textFieldMinHeight, ceil(measuredHeight.height)) + + let maxNumberOfLines = min(12, (Int(fieldMaxHeight - 11.0) - 33) / 22) + + let updatedMaxHeight = (CGFloat(maxNumberOfLines) * (22.0 + 2.0) + 10.0) + + textFieldHeight = max(textFieldMinHeight, min(updatedMaxHeight, unboundTextFieldHeight)) + } else { + textFieldHeight = textFieldMinHeight + } + + return (0.0, textFieldHeight) + } + + private func textFieldInsets(metrics: LayoutMetrics) -> UIEdgeInsets { + var insets = UIEdgeInsets(top: 6.0, left: 6.0, bottom: 6.0, right: 42.0) + if case .regular = metrics.widthClass, case .regular = metrics.heightClass { + insets.top += 1.0 + insets.bottom += 1.0 + } + return insets + } + + private func panelHeight(textFieldHeight: CGFloat, metrics: LayoutMetrics) -> CGFloat { + let textFieldInsets = self.textFieldInsets(metrics: metrics) + let result = textFieldHeight + textFieldInsets.top + textFieldInsets.bottom + self.textInputViewInternalInsets.top + self.textInputViewInternalInsets.bottom + return result + } + + override func minimalHeight(interfaceState: ChatPresentationInterfaceState, metrics: LayoutMetrics) -> CGFloat { + let textFieldMinHeight = calclulateTextFieldMinHeight(interfaceState, metrics: metrics) + var minimalHeight: CGFloat = 14.0 + textFieldMinHeight + if case .regular = metrics.widthClass, case .regular = metrics.heightClass { + minimalHeight += 2.0 + } + return minimalHeight + } + + override func updateLayout(width: CGFloat, leftInset: CGFloat, rightInset: CGFloat, additionalSideInsets: UIEdgeInsets, maxHeight: CGFloat, isSecondary: Bool, transition: ContainedViewLayoutTransition, interfaceState: ChatPresentationInterfaceState, metrics: LayoutMetrics) -> CGFloat { + let previousAdditionalSideInsets = self.validLayout?.3 + self.validLayout = (width, leftInset, rightInset, additionalSideInsets, maxHeight, metrics, isSecondary) + + var transition = transition + var additionalOffset: CGFloat = 0.0 + if let previousAdditionalSideInsets = previousAdditionalSideInsets, previousAdditionalSideInsets.right != additionalSideInsets.right { + additionalOffset = (previousAdditionalSideInsets.right - additionalSideInsets.right) / 3.0 + + if case .animated = transition { + transition = .animated(duration: 0.2, curve: .easeInOut) + } + } + + if self.presentationInterfaceState != interfaceState { + let previousState = self.presentationInterfaceState + self.presentationInterfaceState = interfaceState + + let themeUpdated = previousState?.theme !== interfaceState.theme + + var updateSendButtonIcon = false + if (previousState?.interfaceState.editMessage != nil) != (interfaceState.interfaceState.editMessage != nil) { + updateSendButtonIcon = true + } + if self.theme !== interfaceState.theme { + updateSendButtonIcon = true + + if self.theme == nil || !self.theme!.chat.inputPanel.inputTextColor.isEqual(interfaceState.theme.chat.inputPanel.inputTextColor) { + let textColor = interfaceState.theme.chat.inputPanel.inputTextColor + let baseFontSize = max(minInputFontSize, interfaceState.fontSize.baseDisplaySize) + + if let textInputNode = self.textInputNode { + if let text = textInputNode.attributedText?.string { + let range = textInputNode.selectedRange + textInputNode.attributedText = NSAttributedString(string: text, font: Font.regular(baseFontSize), textColor: textColor) + textInputNode.selectedRange = range + } + textInputNode.typingAttributes = [NSAttributedString.Key.font.rawValue: Font.regular(baseFontSize), NSAttributedString.Key.foregroundColor.rawValue: textColor] + } + } + + let keyboardAppearance = interfaceState.theme.rootController.keyboardColor.keyboardAppearance + if let textInputNode = self.textInputNode, textInputNode.keyboardAppearance != keyboardAppearance, textInputNode.isFirstResponder() { + if textInputNode.isCurrentlyEmoji() { + textInputNode.initialPrimaryLanguage = "emoji" + textInputNode.resetInitialPrimaryLanguage() + } + textInputNode.keyboardAppearance = keyboardAppearance + } + + self.theme = interfaceState.theme + + self.actionButtons.updateTheme(theme: interfaceState.theme) + + let textFieldMinHeight = calclulateTextFieldMinHeight(interfaceState, metrics: metrics) + let minimalInputHeight: CGFloat = 2.0 + textFieldMinHeight + + let backgroundColor: UIColor + if case let .color(color) = interfaceState.chatWallpaper, UIColor(rgb: color).isEqual(interfaceState.theme.chat.inputPanel.panelBackgroundColorNoWallpaper) { + backgroundColor = interfaceState.theme.chat.inputPanel.panelBackgroundColorNoWallpaper + } else { + backgroundColor = interfaceState.theme.chat.inputPanel.panelBackgroundColor + } + + self.textInputBackgroundNode.image = textInputBackgroundImage(backgroundColor: backgroundColor, inputBackgroundColor: nil, strokeColor: interfaceState.theme.chat.inputPanel.inputStrokeColor, diameter: minimalInputHeight) + self.transparentTextInputBackgroundImage = textInputBackgroundImage(backgroundColor: nil, inputBackgroundColor: interfaceState.theme.chat.inputPanel.inputBackgroundColor, strokeColor: interfaceState.theme.chat.inputPanel.inputStrokeColor, diameter: minimalInputHeight) + self.textInputContainerBackgroundNode.image = generateStretchableFilledCircleImage(diameter: minimalInputHeight, color: interfaceState.theme.chat.inputPanel.inputBackgroundColor) + } else { + if self.strings !== interfaceState.strings { + self.strings = interfaceState.strings + self.inputMenu.updateStrings(interfaceState.strings) + } + } + + if themeUpdated || !self.initializedPlaceholder { + self.initializedPlaceholder = true + + let placeholder = interfaceState.strings.Conversation_InputTextPlaceholder + + if self.currentPlaceholder != placeholder || themeUpdated { + self.currentPlaceholder = placeholder + let baseFontSize = max(minInputFontSize, interfaceState.fontSize.baseDisplaySize) + self.textPlaceholderNode.attributedText = NSAttributedString(string: placeholder, font: Font.regular(baseFontSize), textColor: interfaceState.theme.chat.inputPanel.inputPlaceholderColor) + self.textInputNode?.textView.accessibilityHint = placeholder + let placeholderSize = self.textPlaceholderNode.updateLayout(CGSize(width: 320.0, height: CGFloat.greatestFiniteMagnitude)) + if transition.isAnimated, let snapshotLayer = self.textPlaceholderNode.layer.snapshotContentTree() { + self.textPlaceholderNode.supernode?.layer.insertSublayer(snapshotLayer, above: self.textPlaceholderNode.layer) + snapshotLayer.animateAlpha(from: 1.0, to: 0.0, duration: 0.22, removeOnCompletion: false, completion: { [weak snapshotLayer] _ in + snapshotLayer?.removeFromSuperlayer() + }) + self.textPlaceholderNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.18) + } + self.textPlaceholderNode.frame = CGRect(origin: self.textPlaceholderNode.frame.origin, size: placeholderSize) + } + + self.actionButtons.sendButtonLongPressEnabled = true + } + + let sendButtonHasApplyIcon = interfaceState.interfaceState.editMessage != nil + + if updateSendButtonIcon { + if !self.actionButtons.animatingSendButton { + let imageNode = self.actionButtons.sendButton.imageNode + + if transition.isAnimated && !self.actionButtons.sendButton.alpha.isZero && self.actionButtons.sendButton.layer.animation(forKey: "opacity") == nil, let previousImage = imageNode.image { + let tempView = UIImageView(image: previousImage) + self.actionButtons.sendButton.view.addSubview(tempView) + tempView.frame = imageNode.frame + tempView.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, removeOnCompletion: false, completion: { [weak tempView] _ in + tempView?.removeFromSuperview() + }) + tempView.layer.animateScale(from: 1.0, to: 0.2, duration: 0.2, removeOnCompletion: false) + + imageNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2) + imageNode.layer.animateScale(from: 0.2, to: 1.0, duration: 0.2) + } + self.actionButtons.sendButtonHasApplyIcon = sendButtonHasApplyIcon + if self.actionButtons.sendButtonHasApplyIcon { + self.actionButtons.sendButton.setImage(PresentationResourcesChat.chatInputPanelApplyButtonImage(interfaceState.theme), for: []) + } else { + self.actionButtons.sendButton.setImage(PresentationResourcesChat.chatInputPanelSendButtonImage(interfaceState.theme), for: []) + } + } + } + } + + var textFieldMinHeight: CGFloat = 33.0 + if let presentationInterfaceState = self.presentationInterfaceState { + textFieldMinHeight = calclulateTextFieldMinHeight(presentationInterfaceState, metrics: metrics) + } + let minimalHeight: CGFloat = 14.0 + textFieldMinHeight + let minimalInputHeight: CGFloat = 2.0 + textFieldMinHeight + + var animatedTransition = true + if case .immediate = transition { + animatedTransition = false + } + + let baseWidth = width - leftInset - rightInset + let (accessoryButtonsWidth, textFieldHeight) = self.calculateTextFieldMetrics(width: baseWidth, maxHeight: maxHeight, metrics: metrics) + let panelHeight = self.panelHeight(textFieldHeight: textFieldHeight, metrics: metrics) + + var composeButtonsOffset: CGFloat = 0.0 + var textInputBackgroundWidthOffset: CGFloat = 0.0 + + self.updateCounterTextNode(transition: transition) + + let actionButtonsFrame = CGRect(origin: CGPoint(x: width - rightInset - 43.0 - UIScreenPixel + composeButtonsOffset, y: panelHeight - minimalHeight), size: CGSize(width: 44.0, height: minimalHeight)) + transition.updateFrame(node: self.actionButtons, frame: actionButtonsFrame) + + if let presentationInterfaceState = self.presentationInterfaceState { + self.actionButtons.updateLayout(size: CGSize(width: 44.0, height: minimalHeight), transition: transition, interfaceState: presentationInterfaceState) + } + + let searchLayoutClearButtonSize = CGSize(width: 44.0, height: minimalHeight) + var textFieldInsets = self.textFieldInsets(metrics: metrics) + if additionalSideInsets.right > 0.0 { + textFieldInsets.right += additionalSideInsets.right / 3.0 + } + + var textInputViewRealInsets = UIEdgeInsets() + if let presentationInterfaceState = self.presentationInterfaceState { + textInputViewRealInsets = calculateTextFieldRealInsets(presentationInterfaceState) + } + + let textInputFrame = CGRect(x: leftInset + textFieldInsets.left, y: textFieldInsets.top, width: baseWidth - textFieldInsets.left - textFieldInsets.right + textInputBackgroundWidthOffset, height: panelHeight - textFieldInsets.top - textFieldInsets.bottom) + transition.updateFrame(node: self.textInputContainer, frame: textInputFrame) + transition.updateFrame(node: self.textInputContainerBackgroundNode, frame: CGRect(origin: CGPoint(), size: textInputFrame.size)) + + if let textInputNode = self.textInputNode { + let textFieldFrame = CGRect(origin: CGPoint(x: self.textInputViewInternalInsets.left, y: self.textInputViewInternalInsets.top), size: CGSize(width: textInputFrame.size.width - (self.textInputViewInternalInsets.left + self.textInputViewInternalInsets.right), height: textInputFrame.size.height - self.textInputViewInternalInsets.top - textInputViewInternalInsets.bottom)) + let shouldUpdateLayout = textFieldFrame.size != textInputNode.frame.size + transition.updateFrame(node: textInputNode, frame: textFieldFrame) + if shouldUpdateLayout { + textInputNode.layout() + } + } + + var inputHasText = false + if let textInputNode = self.textInputNode, let attributedText = textInputNode.attributedText, attributedText.length != 0 { + inputHasText = true + } + + self.textPlaceholderNode.isHidden = inputHasText + + transition.updateFrame(node: self.textPlaceholderNode, frame: CGRect(origin: CGPoint(x: leftInset + textFieldInsets.left + self.textInputViewInternalInsets.left, y: textFieldInsets.top + self.textInputViewInternalInsets.top + textInputViewRealInsets.top + UIScreenPixel), size: self.textPlaceholderNode.frame.size)) + transition.updateFrame(layer: self.textInputBackgroundNode.layer, frame: CGRect(x: leftInset + textFieldInsets.left, y: textFieldInsets.top, width: baseWidth - textFieldInsets.left - textFieldInsets.right + textInputBackgroundWidthOffset, height: panelHeight - textFieldInsets.top - textFieldInsets.bottom)) + + self.actionButtons.updateAccessibility() + + if let prevInputPanelNode = self.prevInputPanelNode { + prevInputPanelNode.frame = CGRect(origin: .zero, size: prevInputPanelNode.frame.size) + } + + return panelHeight + } + + override func canHandleTransition(from prevInputPanelNode: ChatInputPanelNode?) -> Bool { + return false + } + + @objc func editableTextNodeDidUpdateText(_ editableTextNode: ASEditableTextNode) { + if let textInputNode = self.textInputNode, let presentationInterfaceState = self.presentationInterfaceState { + let baseFontSize = max(minInputFontSize, presentationInterfaceState.fontSize.baseDisplaySize) + refreshChatTextInputAttributes(textInputNode, theme: presentationInterfaceState.theme, baseFontSize: baseFontSize) + refreshChatTextInputTypingAttributes(textInputNode, theme: presentationInterfaceState.theme, baseFontSize: baseFontSize) + + let inputTextState = self.inputTextState + + self.interfaceInteraction?.updateTextInputStateAndMode({ _, inputMode in return (inputTextState, inputMode) }) + self.interfaceInteraction?.updateInputLanguage({ _ in return textInputNode.textInputMode.primaryLanguage }) + self.updateTextNodeText(animated: true) + + self.updateCounterTextNode(transition: .immediate) + } + } + + private func updateCounterTextNode(transition: ContainedViewLayoutTransition) { + if let textInputNode = self.textInputNode, let presentationInterfaceState = self.presentationInterfaceState, let editMessage = presentationInterfaceState.interfaceState.editMessage, let inputTextMaxLength = editMessage.inputTextMaxLength { + let textCount = Int32(textInputNode.textView.text.count) + let counterColor: UIColor = textCount > inputTextMaxLength ? presentationInterfaceState.theme.chat.inputPanel.panelControlDestructiveColor : presentationInterfaceState.theme.chat.inputPanel.panelControlColor + + let remainingCount = max(-999, inputTextMaxLength - textCount) + let counterText = remainingCount >= 5 ? "" : "\(remainingCount)" + self.counterTextNode.attributedText = NSAttributedString(string: counterText, font: counterFont, textColor: counterColor) + } else { + self.counterTextNode.attributedText = NSAttributedString(string: "", font: counterFont, textColor: .black) + } + + if let (width, leftInset, rightInset, _, maxHeight, metrics, _) = self.validLayout { + var composeButtonsOffset: CGFloat = 0.0 + + let (_, textFieldHeight) = self.calculateTextFieldMetrics(width: width - leftInset - rightInset, maxHeight: maxHeight, metrics: metrics) + let panelHeight = self.panelHeight(textFieldHeight: textFieldHeight, metrics: metrics) + var textFieldMinHeight: CGFloat = 33.0 + if let presentationInterfaceState = self.presentationInterfaceState { + textFieldMinHeight = calclulateTextFieldMinHeight(presentationInterfaceState, metrics: metrics) + } + let minimalHeight: CGFloat = 14.0 + textFieldMinHeight + + let counterSize = self.counterTextNode.updateLayout(CGSize(width: 44.0, height: 44.0)) + let actionButtonsOriginX = width - rightInset - 43.0 - UIScreenPixel + composeButtonsOffset + let counterFrame = CGRect(origin: CGPoint(x: actionButtonsOriginX, y: panelHeight - minimalHeight - counterSize.height + 3.0), size: CGSize(width: width - actionButtonsOriginX - rightInset, height: counterSize.height)) + transition.updateFrame(node: self.counterTextNode, frame: counterFrame) + } + } + + private func updateTextNodeText(animated: Bool) { + var inputHasText = false + if let textInputNode = self.textInputNode, let attributedText = textInputNode.attributedText, attributedText.length != 0 { + inputHasText = true + } + + if let _ = self.presentationInterfaceState { + self.textPlaceholderNode.isHidden = inputHasText + } + + self.updateTextHeight(animated: animated) + } + + private func updateTextHeight(animated: Bool) { + if let (width, leftInset, rightInset, additionalSideInsets, maxHeight, metrics, _) = self.validLayout { + let (_, textFieldHeight) = self.calculateTextFieldMetrics(width: width - leftInset - rightInset - additionalSideInsets.right, maxHeight: maxHeight, metrics: metrics) + let panelHeight = self.panelHeight(textFieldHeight: textFieldHeight, metrics: metrics) + if !self.bounds.size.height.isEqual(to: panelHeight) { + self.updateHeight(animated) + } + } + } + + @objc func editableTextNodeShouldReturn(_ editableTextNode: ASEditableTextNode) -> Bool { + if self.actionButtons.sendButton.supernode != nil && !self.actionButtons.sendButton.isHidden && !self.actionButtons.sendButton.alpha.isZero { + self.sendButtonPressed() + } + return false + } + + private func applyUpdateSendButtonIcon() { + if let interfaceState = self.presentationInterfaceState { + let sendButtonHasApplyIcon = interfaceState.interfaceState.editMessage != nil + + if sendButtonHasApplyIcon != self.actionButtons.sendButtonHasApplyIcon { + self.actionButtons.sendButtonHasApplyIcon = sendButtonHasApplyIcon + if self.actionButtons.sendButtonHasApplyIcon { + self.actionButtons.sendButton.setImage(PresentationResourcesChat.chatInputPanelApplyButtonImage(interfaceState.theme), for: []) + } else { + if case .scheduledMessages = interfaceState.subject { + self.actionButtons.sendButton.setImage(PresentationResourcesChat.chatInputPanelScheduleButtonImage(interfaceState.theme), for: []) + } else { + self.actionButtons.sendButton.setImage(PresentationResourcesChat.chatInputPanelSendButtonImage(interfaceState.theme), for: []) + } + } + } + } + } + + @objc func editableTextNodeDidChangeSelection(_ editableTextNode: ASEditableTextNode, fromSelectedRange: NSRange, toSelectedRange: NSRange, dueToEditing: Bool) { + if !dueToEditing && !self.updatingInputState { + let inputTextState = self.inputTextState + self.interfaceInteraction?.updateTextInputStateAndMode({ _, inputMode in return (inputTextState, inputMode) }) + } + + if let textInputNode = self.textInputNode, let presentationInterfaceState = self.presentationInterfaceState { + if case .format = self.inputMenu.state { + self.inputMenu.deactivate() + UIMenuController.shared.update() + } + + let baseFontSize = max(minInputFontSize, presentationInterfaceState.fontSize.baseDisplaySize) + refreshChatTextInputTypingAttributes(textInputNode, theme: presentationInterfaceState.theme, baseFontSize: baseFontSize) + } + } + + @objc func editableTextNodeDidBeginEditing(_ editableTextNode: ASEditableTextNode) { + self.interfaceInteraction?.updateInputModeAndDismissedButtonKeyboardMessageId({ state in + return (.text, state.keyboardButtonsMessage?.id) + }) + self.inputMenu.activate() + } + + func editableTextNodeDidFinishEditing(_ editableTextNode: ASEditableTextNode) { + self.storedInputLanguage = editableTextNode.textInputMode.primaryLanguage + self.inputMenu.deactivate() + } + + func editableTextNodeTarget(forAction action: Selector) -> ASEditableTextNodeTargetForAction? { + if action == Selector(("_accessibilitySpeak:")) { + if case .format = self.inputMenu.state { + return ASEditableTextNodeTargetForAction(target: nil) + } else if let textInputNode = self.textInputNode, textInputNode.selectedRange.length > 0 { + return ASEditableTextNodeTargetForAction(target: self) + } else { + return ASEditableTextNodeTargetForAction(target: nil) + } + } else if action == Selector(("_accessibilitySpeakSpellOut:")) { + if case .format = self.inputMenu.state { + return ASEditableTextNodeTargetForAction(target: nil) + } else if let textInputNode = self.textInputNode, textInputNode.selectedRange.length > 0 { + return nil + } else { + return ASEditableTextNodeTargetForAction(target: nil) + } + } + else if action == Selector("_accessibilitySpeakLanguageSelection:") || action == Selector("_accessibilityPauseSpeaking:") || action == Selector("_accessibilitySpeakSentence:") { + return ASEditableTextNodeTargetForAction(target: nil) + } else if action == Selector(("_showTextStyleOptions:")) { + if case .general = self.inputMenu.state { + if let textInputNode = self.textInputNode, textInputNode.attributedText == nil || textInputNode.attributedText!.length == 0 || textInputNode.selectedRange.length == 0 { + return ASEditableTextNodeTargetForAction(target: nil) + } + return ASEditableTextNodeTargetForAction(target: self) + } else { + return ASEditableTextNodeTargetForAction(target: nil) + } + } else if action == #selector(self.formatAttributesBold(_:)) || action == #selector(self.formatAttributesItalic(_:)) || action == #selector(self.formatAttributesMonospace(_:)) || action == #selector(self.formatAttributesLink(_:)) || action == #selector(self.formatAttributesStrikethrough(_:)) || action == #selector(self.formatAttributesUnderline(_:)) { + if case .format = self.inputMenu.state { + return ASEditableTextNodeTargetForAction(target: self) + } else { + return ASEditableTextNodeTargetForAction(target: nil) + } + } + if case .format = self.inputMenu.state { + return ASEditableTextNodeTargetForAction(target: nil) + } + return nil + } + + @objc func _accessibilitySpeak(_ sender: Any) { + var text = "" + self.interfaceInteraction?.updateTextInputStateAndMode { current, inputMode in + text = current.inputText.attributedSubstring(from: NSMakeRange(current.selectionRange.lowerBound, current.selectionRange.count)).string + return (current, inputMode) + } + speakText(text) + + if #available(iOS 13.0, *) { + UIMenuController.shared.hideMenu() + } else { + UIMenuController.shared.isMenuVisible = false + UIMenuController.shared.update() + } + } + + @objc func _showTextStyleOptions(_ sender: Any) { + if let textInputNode = self.textInputNode { + self.inputMenu.format(view: textInputNode.view, rect: textInputNode.selectionRect.offsetBy(dx: 0.0, dy: -textInputNode.textView.contentOffset.y).insetBy(dx: 0.0, dy: -1.0)) + } + } + + @objc func formatAttributesBold(_ sender: Any) { + self.inputMenu.back() + self.interfaceInteraction?.updateTextInputStateAndMode { current, inputMode in + return (chatTextInputAddFormattingAttribute(current, attribute: ChatTextInputAttributes.bold), inputMode) + } + } + + @objc func formatAttributesItalic(_ sender: Any) { + self.inputMenu.back() + self.interfaceInteraction?.updateTextInputStateAndMode { current, inputMode in + return (chatTextInputAddFormattingAttribute(current, attribute: ChatTextInputAttributes.italic), inputMode) + } + } + + @objc func formatAttributesMonospace(_ sender: Any) { + self.inputMenu.back() + self.interfaceInteraction?.updateTextInputStateAndMode { current, inputMode in + return (chatTextInputAddFormattingAttribute(current, attribute: ChatTextInputAttributes.monospace), inputMode) + } + } + + @objc func formatAttributesLink(_ sender: Any) { + self.inputMenu.back() + self.interfaceInteraction?.openLinkEditing() + } + + @objc func formatAttributesStrikethrough(_ sender: Any) { + self.inputMenu.back() + self.interfaceInteraction?.updateTextInputStateAndMode { current, inputMode in + return (chatTextInputAddFormattingAttribute(current, attribute: ChatTextInputAttributes.strikethrough), inputMode) + } + } + + @objc func formatAttributesUnderline(_ sender: Any) { + self.inputMenu.back() + self.interfaceInteraction?.updateTextInputStateAndMode { current, inputMode in + return (chatTextInputAddFormattingAttribute(current, attribute: ChatTextInputAttributes.underline), inputMode) + } + } + + @objc func editableTextNode(_ editableTextNode: ASEditableTextNode, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { + var cleanText = text + let removeSequences: [String] = ["\u{202d}", "\u{202c}"] + for sequence in removeSequences { + inner: while true { + if let range = cleanText.range(of: sequence) { + cleanText.removeSubrange(range) + } else { + break inner + } + } + } + + if cleanText != text { + let string = NSMutableAttributedString(attributedString: editableTextNode.attributedText ?? NSAttributedString()) + var textColor: UIColor = .black + var accentTextColor: UIColor = .blue + var baseFontSize: CGFloat = 17.0 + if let presentationInterfaceState = self.presentationInterfaceState { + textColor = presentationInterfaceState.theme.chat.inputPanel.inputTextColor + accentTextColor = presentationInterfaceState.theme.chat.inputPanel.panelControlAccentColor + baseFontSize = max(minInputFontSize, presentationInterfaceState.fontSize.baseDisplaySize) + } + let cleanReplacementString = textAttributedStringForStateText(NSAttributedString(string: cleanText), fontSize: baseFontSize, textColor: textColor, accentTextColor: accentTextColor, writingDirection: nil) + string.replaceCharacters(in: range, with: cleanReplacementString) + self.textInputNode?.attributedText = string + self.textInputNode?.selectedRange = NSMakeRange(range.lowerBound + cleanReplacementString.length, 0) + self.updateTextNodeText(animated: true) + return false + } + return true + } + + @objc func editableTextNodeShouldCopy(_ editableTextNode: ASEditableTextNode) -> Bool { + self.interfaceInteraction?.updateTextInputStateAndMode { current, inputMode in + storeInputTextInPasteboard(current.inputText.attributedSubstring(from: NSMakeRange(current.selectionRange.lowerBound, current.selectionRange.count))) + return (current, inputMode) + } + return false + } + + @objc func editableTextNodeShouldPaste(_ editableTextNode: ASEditableTextNode) -> Bool { + let pasteboard = UIPasteboard.general + + var attributedString: NSAttributedString? + if let data = pasteboard.data(forPasteboardType: kUTTypeRTF as String) { + attributedString = chatInputStateStringFromRTF(data, type: NSAttributedString.DocumentType.rtf) + } else if let data = pasteboard.data(forPasteboardType: "com.apple.flat-rtfd") { + attributedString = chatInputStateStringFromRTF(data, type: NSAttributedString.DocumentType.rtfd) + } + + if let attributedString = attributedString { + self.interfaceInteraction?.updateTextInputStateAndMode { current, inputMode in + if let inputText = current.inputText.mutableCopy() as? NSMutableAttributedString { + inputText.replaceCharacters(in: NSMakeRange(current.selectionRange.lowerBound, current.selectionRange.count), with: attributedString) + let updatedRange = current.selectionRange.lowerBound + attributedString.length + return (ChatTextInputState(inputText: inputText, selectionRange: updatedRange ..< updatedRange), inputMode) + } else { + return (ChatTextInputState(inputText: attributedString), inputMode) + } + } + return false + } + return true + } + + @objc func sendButtonPressed() { + if let textInputNode = self.textInputNode, let presentationInterfaceState = self.presentationInterfaceState, let editMessage = presentationInterfaceState.interfaceState.editMessage, let inputTextMaxLength = editMessage.inputTextMaxLength { + let textCount = Int32(textInputNode.textView.text.count) + let remainingCount = inputTextMaxLength - textCount + + if remainingCount < 0 { + textInputNode.layer.addShakeAnimation() + self.hapticFeedback.error() + return + } + } + + self.sendMessage() + } + + @objc func textInputBackgroundViewTap(_ recognizer: UITapGestureRecognizer) { + if case .ended = recognizer.state { + self.ensureFocused() + } + } + + var isFocused: Bool { + return self.textInputNode?.isFirstResponder() ?? false + } + + func ensureUnfocused() { + self.textInputNode?.resignFirstResponder() + } + + func ensureFocused() { + if self.textInputNode == nil { + self.loadTextInputNode() + } + + self.textInputNode?.becomeFirstResponder() + } + + func frameForInputActionButton() -> CGRect? { + if !self.actionButtons.alpha.isZero { + if self.actionButtons.micButton.alpha.isZero { + return self.actionButtons.frame.insetBy(dx: 0.0, dy: 6.0).offsetBy(dx: 4.0, dy: 0.0) + } else { + return self.actionButtons.frame.insetBy(dx: 0.0, dy: 6.0).offsetBy(dx: 2.0, dy: 0.0) + } + } + return nil + } +}